{
  "account": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "account",
    "friends": [],
    "structs": {
      "AuthenticatorFunctionRefV1Key": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "dummy_field",
            "type": "Bool"
          }
        ]
      },
      "AuthenticatorFunctionRefV1Rotated": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Key"
              ]
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "account_id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "from",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "authenticator_function",
                "name": "AuthenticatorFunctionRefV1",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "name": "to",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "authenticator_function",
                "name": "AuthenticatorFunctionRefV1",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ]
      },
      "ImmutableAccountCreated": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Key"
              ]
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "account_id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "authenticator",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "authenticator_function",
                "name": "AuthenticatorFunctionRefV1",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ]
      },
      "MutableAccountCreated": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Key"
              ]
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "account_id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "authenticator",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "authenticator_function",
                "name": "AuthenticatorFunctionRefV1",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "borrow_auth_function_ref_v1": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "authenticator_function",
                "name": "AuthenticatorFunctionRefV1",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ]
      },
      "create_account_v1": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "authenticator_function",
              "name": "AuthenticatorFunctionRefV1",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": []
      },
      "create_immutable_account_v1": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "authenticator_function",
              "name": "AuthenticatorFunctionRefV1",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": []
      },
      "has_auth_function_ref_v1": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "rotate_auth_function_ref_v1": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "TypeParameter": 0
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "authenticator_function",
              "name": "AuthenticatorFunctionRefV1",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "authenticator_function",
              "name": "AuthenticatorFunctionRefV1",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      }
    }
  },
  "address": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "address",
    "friends": [],
    "structs": {},
    "exposedFunctions": {
      "from_ascii_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ],
        "return": [
          "Address"
        ]
      },
      "from_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Vector": "U8"
          }
        ],
        "return": [
          "Address"
        ]
      },
      "from_u256": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          "U256"
        ],
        "return": [
          "Address"
        ]
      },
      "length": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          "U64"
        ]
      },
      "max": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          "U256"
        ]
      },
      "to_ascii_string": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          "Address"
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "ascii",
              "name": "String",
              "typeArguments": []
            }
          }
        ]
      },
      "to_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          "Address"
        ],
        "return": [
          {
            "Vector": "U8"
          }
        ]
      },
      "to_string": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          "Address"
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          }
        ]
      },
      "to_u256": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          "Address"
        ],
        "return": [
          "U256"
        ]
      }
    }
  },
  "auth_context": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "auth_context",
    "friends": [],
    "structs": {
      "AuthContext": {
        "abilities": {
          "abilities": [
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "auth_digest",
            "type": {
              "Vector": "U8"
            }
          },
          {
            "name": "tx_inputs",
            "type": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_call_arg",
                  "name": "CallArg",
                  "typeArguments": []
                }
              }
            }
          },
          {
            "name": "tx_commands",
            "type": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_command",
                  "name": "Command",
                  "typeArguments": []
                }
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "digest": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "auth_context",
                "name": "AuthContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ]
      },
      "intent_tx_data_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "auth_context",
                "name": "AuthContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Vector": "U8"
          }
        ]
      },
      "signing_digest": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "auth_context",
                "name": "AuthContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Vector": "U8"
          }
        ]
      },
      "tx_commands": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "auth_context",
                "name": "AuthContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_command",
                  "name": "Command",
                  "typeArguments": []
                }
              }
            }
          }
        ]
      },
      "tx_data_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "auth_context",
                "name": "AuthContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ]
      },
      "tx_inputs": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "auth_context",
                "name": "AuthContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_call_arg",
                  "name": "CallArg",
                  "typeArguments": []
                }
              }
            }
          }
        ]
      }
    }
  },
  "authenticator_function": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "authenticator_function",
    "friends": [],
    "structs": {
      "AuthenticatorFunctionRefV1": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Key"
              ]
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "package",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "module_name",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "ascii",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "name": "function_name",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "ascii",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "create_auth_function_ref_v1": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package_metadata",
                "name": "PackageMetadataV1",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "ascii",
              "name": "String",
              "typeArguments": []
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "ascii",
              "name": "String",
              "typeArguments": []
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "authenticator_function",
              "name": "AuthenticatorFunctionRefV1",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "function_name": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "authenticator_function",
                "name": "AuthenticatorFunctionRefV1",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "ascii",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "module_name": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "authenticator_function",
                "name": "AuthenticatorFunctionRefV1",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "ascii",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "package": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "authenticator_function",
                "name": "AuthenticatorFunctionRefV1",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      }
    }
  },
  "authenticator_state": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "authenticator_state",
    "friends": [],
    "structs": {
      "ActiveJwk": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "jwk_id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "authenticator_state",
                "name": "JwkId",
                "typeArguments": []
              }
            }
          },
          {
            "name": "jwk",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "authenticator_state",
                "name": "JWK",
                "typeArguments": []
              }
            }
          },
          {
            "name": "epoch",
            "type": "U64"
          }
        ]
      },
      "AuthenticatorState": {
        "abilities": {
          "abilities": [
            "Key"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "version",
            "type": "U64"
          }
        ]
      },
      "AuthenticatorStateInner": {
        "abilities": {
          "abilities": [
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "version",
            "type": "U64"
          },
          {
            "name": "active_jwks",
            "type": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "authenticator_state",
                  "name": "ActiveJwk",
                  "typeArguments": []
                }
              }
            }
          }
        ]
      },
      "JWK": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "kty",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "name": "e",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "name": "n",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "name": "alg",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "JwkId": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "iss",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "name": "kid",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {}
  },
  "bag": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "bag",
    "friends": [],
    "structs": {
      "Bag": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "size",
            "type": "U64"
          }
        ]
      }
    },
    "exposedFunctions": {
      "add": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bag",
                "name": "Bag",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          },
          {
            "TypeParameter": 1
          }
        ],
        "return": []
      },
      "borrow": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "bag",
                "name": "Bag",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "Reference": {
              "TypeParameter": 1
            }
          }
        ]
      },
      "borrow_mut": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bag",
                "name": "Bag",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "MutableReference": {
              "TypeParameter": 1
            }
          }
        ]
      },
      "contains": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "bag",
                "name": "Bag",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "contains_with_type": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "bag",
                "name": "Bag",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "destroy_empty": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "bag",
              "name": "Bag",
              "typeArguments": []
            }
          }
        ],
        "return": []
      },
      "is_empty": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "bag",
                "name": "Bag",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "length": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "bag",
                "name": "Bag",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "new": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "bag",
              "name": "Bag",
              "typeArguments": []
            }
          }
        ]
      },
      "remove": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bag",
                "name": "Bag",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "TypeParameter": 1
          }
        ]
      }
    }
  },
  "balance": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "balance",
    "friends": [],
    "structs": {
      "Balance": {
        "abilities": {
          "abilities": [
            "Store"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "value",
            "type": "U64"
          }
        ]
      },
      "Supply": {
        "abilities": {
          "abilities": [
            "Store"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "value",
            "type": "U64"
          }
        ]
      }
    },
    "exposedFunctions": {
      "create_supply": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Supply",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "decrease_supply": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Supply",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "destroy_supply": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Supply",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "destroy_zero": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": []
      },
      "increase_supply": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Supply",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "U64"
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "join": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Balance",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "split": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Balance",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "U64"
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "supply_value": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Supply",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "value": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Balance",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "withdraw_all": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Balance",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "zero": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      }
    }
  },
  "bcs": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "bcs",
    "friends": [],
    "structs": {
      "BCS": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "bytes",
            "type": {
              "Vector": "U8"
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "into_remainder_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "bcs",
              "name": "BCS",
              "typeArguments": []
            }
          }
        ],
        "return": [
          {
            "Vector": "U8"
          }
        ]
      },
      "new": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Vector": "U8"
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "bcs",
              "name": "BCS",
              "typeArguments": []
            }
          }
        ]
      },
      "peel_address": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Address"
        ]
      },
      "peel_bool": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "peel_enum_tag": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U32"
        ]
      },
      "peel_option_address": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "Address"
              ]
            }
          }
        ]
      },
      "peel_option_bool": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "Bool"
              ]
            }
          }
        ]
      },
      "peel_option_u128": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "U128"
              ]
            }
          }
        ]
      },
      "peel_option_u16": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "U16"
              ]
            }
          }
        ]
      },
      "peel_option_u256": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "U256"
              ]
            }
          }
        ]
      },
      "peel_option_u32": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "U32"
              ]
            }
          }
        ]
      },
      "peel_option_u64": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "U64"
              ]
            }
          }
        ]
      },
      "peel_option_u8": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "U8"
              ]
            }
          }
        ]
      },
      "peel_u128": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U128"
        ]
      },
      "peel_u16": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U16"
        ]
      },
      "peel_u256": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U256"
        ]
      },
      "peel_u32": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U32"
        ]
      },
      "peel_u64": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "peel_u8": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U8"
        ]
      },
      "peel_vec_address": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Vector": "Address"
          }
        ]
      },
      "peel_vec_bool": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Vector": "Bool"
          }
        ]
      },
      "peel_vec_length": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "peel_vec_u128": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Vector": "U128"
          }
        ]
      },
      "peel_vec_u16": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Vector": "U16"
          }
        ]
      },
      "peel_vec_u256": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Vector": "U256"
          }
        ]
      },
      "peel_vec_u32": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Vector": "U32"
          }
        ]
      },
      "peel_vec_u64": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Vector": "U64"
          }
        ]
      },
      "peel_vec_u8": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Vector": "U8"
          }
        ]
      },
      "peel_vec_vec_u8": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bcs",
                "name": "BCS",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Vector": {
              "Vector": "U8"
            }
          }
        ]
      },
      "to_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "TypeParameter": 0
            }
          }
        ],
        "return": [
          {
            "Vector": "U8"
          }
        ]
      }
    }
  },
  "bls12381": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "bls12381",
    "friends": [],
    "structs": {
      "G1": {
        "abilities": {
          "abilities": []
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "dummy_field",
            "type": "Bool"
          }
        ]
      },
      "G2": {
        "abilities": {
          "abilities": []
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "dummy_field",
            "type": "Bool"
          }
        ]
      },
      "GT": {
        "abilities": {
          "abilities": []
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "dummy_field",
            "type": "Bool"
          }
        ]
      },
      "Scalar": {
        "abilities": {
          "abilities": []
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "dummy_field",
            "type": "Bool"
          }
        ]
      },
      "UncompressedG1": {
        "abilities": {
          "abilities": []
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "dummy_field",
            "type": "Bool"
          }
        ]
      }
    },
    "exposedFunctions": {
      "bls12381_min_pk_verify": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": "U8"
            }
          },
          {
            "Reference": {
              "Vector": "U8"
            }
          },
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "bls12381_min_sig_verify": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": "U8"
            }
          },
          {
            "Reference": {
              "Vector": "U8"
            }
          },
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "g1_add": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "G1",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "G1",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "G1",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "g1_div": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "Scalar",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "G1",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "G1",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "g1_from_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "G1",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "g1_generator": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "G1",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "g1_identity": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "G1",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "g1_mul": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "Scalar",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "G1",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "G1",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "g1_multi_scalar_multiplication": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "group_ops",
                  "name": "Element",
                  "typeArguments": [
                    {
                      "Struct": {
                        "address": "0x2",
                        "module": "bls12381",
                        "name": "Scalar",
                        "typeArguments": []
                      }
                    }
                  ]
                }
              }
            }
          },
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "group_ops",
                  "name": "Element",
                  "typeArguments": [
                    {
                      "Struct": {
                        "address": "0x2",
                        "module": "bls12381",
                        "name": "G1",
                        "typeArguments": []
                      }
                    }
                  ]
                }
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "G1",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "g1_neg": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "G1",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "G1",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "g1_sub": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "G1",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "G1",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "G1",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "g1_to_uncompressed_g1": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "G1",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "UncompressedG1",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "g2_add": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "G2",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "G2",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "G2",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "g2_div": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "Scalar",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "G2",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "G2",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "g2_from_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "G2",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "g2_generator": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "G2",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "g2_identity": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "G2",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "g2_mul": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "Scalar",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "G2",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "G2",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "g2_multi_scalar_multiplication": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "group_ops",
                  "name": "Element",
                  "typeArguments": [
                    {
                      "Struct": {
                        "address": "0x2",
                        "module": "bls12381",
                        "name": "Scalar",
                        "typeArguments": []
                      }
                    }
                  ]
                }
              }
            }
          },
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "group_ops",
                  "name": "Element",
                  "typeArguments": [
                    {
                      "Struct": {
                        "address": "0x2",
                        "module": "bls12381",
                        "name": "G2",
                        "typeArguments": []
                      }
                    }
                  ]
                }
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "G2",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "g2_neg": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "G2",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "G2",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "g2_sub": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "G2",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "G2",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "G2",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "gt_add": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "GT",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "GT",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "GT",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "gt_div": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "Scalar",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "GT",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "GT",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "gt_generator": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "GT",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "gt_identity": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "GT",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "gt_mul": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "Scalar",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "GT",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "GT",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "gt_neg": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "GT",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "GT",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "gt_sub": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "GT",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "GT",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "GT",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "hash_to_g1": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "G1",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "hash_to_g2": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "G2",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "pairing": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "G1",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "G2",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "GT",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "scalar_add": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "Scalar",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "Scalar",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "Scalar",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "scalar_div": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "Scalar",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "Scalar",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "Scalar",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "scalar_from_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "Scalar",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "scalar_from_u64": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          "U64"
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "Scalar",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "scalar_inv": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "Scalar",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "Scalar",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "scalar_mul": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "Scalar",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "Scalar",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "Scalar",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "scalar_neg": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "Scalar",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "Scalar",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "scalar_one": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "Scalar",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "scalar_sub": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "Scalar",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "Scalar",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "Scalar",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "scalar_zero": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "Scalar",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "uncompressed_g1_sum": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "group_ops",
                  "name": "Element",
                  "typeArguments": [
                    {
                      "Struct": {
                        "address": "0x2",
                        "module": "bls12381",
                        "name": "UncompressedG1",
                        "typeArguments": []
                      }
                    }
                  ]
                }
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "UncompressedG1",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "uncompressed_g1_to_g1": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "bls12381",
                      "name": "UncompressedG1",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "bls12381",
                    "name": "G1",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      }
    }
  },
  "borrow": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "borrow",
    "friends": [],
    "structs": {
      "Borrow": {
        "abilities": {
          "abilities": []
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "ref",
            "type": "Address"
          },
          {
            "name": "obj",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "Referent": {
        "abilities": {
          "abilities": [
            "Store"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Store",
                "Key"
              ]
            },
            "isPhantom": false
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": "Address"
          },
          {
            "name": "value",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "borrow": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "borrow",
                "name": "Referent",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "TypeParameter": 0
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "borrow",
              "name": "Borrow",
              "typeArguments": []
            }
          }
        ]
      },
      "destroy": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "borrow",
              "name": "Referent",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": [
          {
            "TypeParameter": 0
          }
        ]
      },
      "new": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "borrow",
              "name": "Referent",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "put_back": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "borrow",
                "name": "Referent",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "borrow",
              "name": "Borrow",
              "typeArguments": []
            }
          }
        ],
        "return": []
      }
    }
  },
  "clock": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "clock",
    "friends": [],
    "structs": {
      "Clock": {
        "abilities": {
          "abilities": [
            "Key"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "timestamp_ms",
            "type": "U64"
          }
        ]
      }
    },
    "exposedFunctions": {
      "timestamp_ms": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "clock",
                "name": "Clock",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      }
    }
  },
  "coin": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "coin",
    "friends": [],
    "structs": {
      "Coin": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "balance",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Balance",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ]
      },
      "CoinMetadata": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "decimals",
            "type": "U8"
          },
          {
            "name": "name",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "name": "symbol",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "ascii",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "name": "description",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "name": "icon_url",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "url",
                      "name": "Url",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ]
      },
      "DenyCapV1": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "allow_global_pause",
            "type": "Bool"
          }
        ]
      },
      "RegulatedCoinMetadata": {
        "abilities": {
          "abilities": [
            "Key"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "coin_metadata_object",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "deny_cap_object",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "TreasuryCap": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "total_supply",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Supply",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "balance": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "Coin",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Balance",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ]
      },
      "balance_mut": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "Coin",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Balance",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ]
      },
      "burn": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "TreasuryCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "create_currency": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          },
          "U8",
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "url",
                    "name": "Url",
                    "typeArguments": []
                  }
                }
              ]
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "TreasuryCap",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "CoinMetadata",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "create_regulated_currency_v1": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          },
          "U8",
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "url",
                    "name": "Url",
                    "typeArguments": []
                  }
                }
              ]
            }
          },
          "Bool",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "TreasuryCap",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "DenyCapV1",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "CoinMetadata",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "deny_list_v1_add": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "deny_list",
                "name": "DenyList",
                "typeArguments": []
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "DenyCapV1",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "Address",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "deny_list_v1_contains_current_epoch": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "deny_list",
                "name": "DenyList",
                "typeArguments": []
              }
            }
          },
          "Address",
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "deny_list_v1_contains_next_epoch": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "deny_list",
                "name": "DenyList",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": [
          "Bool"
        ]
      },
      "deny_list_v1_disable_global_pause": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "deny_list",
                "name": "DenyList",
                "typeArguments": []
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "DenyCapV1",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "deny_list_v1_enable_global_pause": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "deny_list",
                "name": "DenyList",
                "typeArguments": []
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "DenyCapV1",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "deny_list_v1_is_global_pause_enabled_current_epoch": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "deny_list",
                "name": "DenyList",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "deny_list_v1_is_global_pause_enabled_next_epoch": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "deny_list",
                "name": "DenyList",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "deny_list_v1_remove": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "deny_list",
                "name": "DenyList",
                "typeArguments": []
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "DenyCapV1",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "Address",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "destroy_zero": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": []
      },
      "divide_into_n": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "Coin",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Vector": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "Coin",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ]
      },
      "from_balance": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "get_decimals": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "CoinMetadata",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "U8"
        ]
      },
      "get_description": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "CoinMetadata",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          }
        ]
      },
      "get_icon_url": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "CoinMetadata",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "url",
                    "name": "Url",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "get_name": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "CoinMetadata",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          }
        ]
      },
      "get_symbol": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "CoinMetadata",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "ascii",
              "name": "String",
              "typeArguments": []
            }
          }
        ]
      },
      "into_balance": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "join": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "Coin",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": []
      },
      "mint": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "TreasuryCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "mint_and_transfer": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "TreasuryCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "U64",
          "Address",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "mint_balance": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "TreasuryCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "U64"
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "put": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Balance",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": []
      },
      "split": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "Coin",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "supply_immut": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "TreasuryCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Supply",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ]
      },
      "supply_mut": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "TreasuryCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Supply",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ]
      },
      "take": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Balance",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "total_supply": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "TreasuryCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "treasury_into_supply": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "TreasuryCap",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Supply",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "update_description": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "TreasuryCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "CoinMetadata",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          }
        ],
        "return": []
      },
      "update_icon_url": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "TreasuryCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "CoinMetadata",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "ascii",
              "name": "String",
              "typeArguments": []
            }
          }
        ],
        "return": []
      },
      "update_name": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "TreasuryCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "CoinMetadata",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          }
        ],
        "return": []
      },
      "update_symbol": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "TreasuryCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "CoinMetadata",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "ascii",
              "name": "String",
              "typeArguments": []
            }
          }
        ],
        "return": []
      },
      "value": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "Coin",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "zero": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      }
    }
  },
  "coin_manager": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "coin_manager",
    "friends": [],
    "structs": {
      "CoinManaged": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "coin_name",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "ascii",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "CoinManager": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "treasury_cap",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "TreasuryCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "name": "metadata",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "coin",
                      "name": "CoinMetadata",
                      "typeArguments": [
                        {
                          "TypeParameter": 0
                        }
                      ]
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "immutable_metadata",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "coin_manager",
                      "name": "ImmutableCoinMetadata",
                      "typeArguments": [
                        {
                          "TypeParameter": 0
                        }
                      ]
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "maximum_supply",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  "U64"
                ]
              }
            }
          },
          {
            "name": "supply_immutable",
            "type": "Bool"
          },
          {
            "name": "metadata_immutable",
            "type": "Bool"
          }
        ]
      },
      "CoinManagerMetadataCap": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "CoinManagerTreasuryCap": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "ImmutableCoinMetadata": {
        "abilities": {
          "abilities": [
            "Store"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "decimals",
            "type": "U8"
          },
          {
            "name": "name",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "name": "symbol",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "ascii",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "name": "description",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "name": "icon_url",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "url",
                      "name": "Url",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ]
      },
      "MetadataOwnershipRenounced": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "coin_name",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "ascii",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "TreasuryOwnershipRenounced": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "coin_name",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "ascii",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "add_additional_metadata": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManagerMetadataCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 1
          }
        ],
        "return": []
      },
      "additional_metadata": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "TypeParameter": 1
            }
          }
        ]
      },
      "available_supply": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "burn": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManagerTreasuryCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "create": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          },
          "U8",
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "url",
                    "name": "Url",
                    "typeArguments": []
                  }
                }
              ]
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin_manager",
              "name": "CoinManagerTreasuryCap",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "coin_manager",
              "name": "CoinManagerMetadataCap",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "coin_manager",
              "name": "CoinManager",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "decimals": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "U8"
        ]
      },
      "description": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          }
        ]
      },
      "enforce_maximum_supply": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManagerTreasuryCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "U64"
        ],
        "return": []
      },
      "get_additional_metadata": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "TypeParameter": 1
            }
          }
        ]
      },
      "has_maximum_supply": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "icon_url": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "url",
                    "name": "Url",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "immutable_metadata": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "ImmutableCoinMetadata",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ]
      },
      "maximum_supply": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "metadata": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "CoinMetadata",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ]
      },
      "metadata_is_immutable": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "mint": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManagerTreasuryCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "mint_and_transfer": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManagerTreasuryCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "U64",
          "Address",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "mint_balance": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManagerTreasuryCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "U64"
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "name": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          }
        ]
      },
      "new": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "TreasuryCap",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "CoinMetadata",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin_manager",
              "name": "CoinManagerTreasuryCap",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "coin_manager",
              "name": "CoinManagerMetadataCap",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "coin_manager",
              "name": "CoinManager",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "new_with_immutable_metadata": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "TreasuryCap",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "CoinMetadata",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin_manager",
              "name": "CoinManagerTreasuryCap",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "coin_manager",
              "name": "CoinManager",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "renounce_metadata_ownership": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin_manager",
              "name": "CoinManagerMetadataCap",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": []
      },
      "renounce_treasury_ownership": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin_manager",
              "name": "CoinManagerTreasuryCap",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": []
      },
      "replace_additional_metadata": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": [
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManagerMetadataCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 1
          }
        ],
        "return": [
          {
            "TypeParameter": 2
          }
        ]
      },
      "supply_immut": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Supply",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ]
      },
      "supply_is_immutable": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "symbol": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "ascii",
              "name": "String",
              "typeArguments": []
            }
          }
        ]
      },
      "total_supply": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "update_description": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManagerMetadataCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          }
        ],
        "return": []
      },
      "update_icon_url": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManagerMetadataCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "ascii",
              "name": "String",
              "typeArguments": []
            }
          }
        ],
        "return": []
      },
      "update_name": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManagerMetadataCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          }
        ],
        "return": []
      },
      "update_symbol": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManagerMetadataCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin_manager",
                "name": "CoinManager",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "ascii",
              "name": "String",
              "typeArguments": []
            }
          }
        ],
        "return": []
      }
    }
  },
  "config": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "config",
    "friends": [
      {
        "address": "0x2",
        "name": "deny_list"
      }
    ],
    "structs": {
      "Config": {
        "abilities": {
          "abilities": [
            "Key"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "Setting": {
        "abilities": {
          "abilities": [
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Copy",
                "Drop",
                "Store"
              ]
            },
            "isPhantom": false
          }
        ],
        "fields": [
          {
            "name": "data",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "config",
                      "name": "SettingData",
                      "typeArguments": [
                        {
                          "TypeParameter": 0
                        }
                      ]
                    }
                  }
                ]
              }
            }
          }
        ]
      },
      "SettingData": {
        "abilities": {
          "abilities": [
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Copy",
                "Drop",
                "Store"
              ]
            },
            "isPhantom": false
          }
        ],
        "fields": [
          {
            "name": "newer_value_epoch",
            "type": "U64"
          },
          {
            "name": "newer_value",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "name": "older_value_opt",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "add_for_next_epoch": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "config",
                "name": "Config",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "TypeParameter": 0
            }
          },
          {
            "TypeParameter": 1
          },
          {
            "TypeParameter": 2
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "TypeParameter": 2
                }
              ]
            }
          }
        ]
      },
      "borrow_for_next_epoch_mut": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "config",
                "name": "Config",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "TypeParameter": 0
            }
          },
          {
            "TypeParameter": 1
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "MutableReference": {
              "TypeParameter": 2
            }
          }
        ]
      },
      "exists_with_type": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "config",
                "name": "Config",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 1
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "exists_with_type_for_next_epoch": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "config",
                "name": "Config",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 1
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "new": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "TypeParameter": 0
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "config",
              "name": "Config",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "read_setting": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          },
          {
            "TypeParameter": 0
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "TypeParameter": 1
                }
              ]
            }
          }
        ]
      },
      "read_setting_for_next_epoch": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "config",
                "name": "Config",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 1
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "TypeParameter": 2
                }
              ]
            }
          }
        ]
      },
      "remove_for_next_epoch": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "config",
                "name": "Config",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "TypeParameter": 0
            }
          },
          {
            "TypeParameter": 1
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "TypeParameter": 2
                }
              ]
            }
          }
        ]
      },
      "share": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "config",
              "name": "Config",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": []
      },
      "transfer": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "config",
              "name": "Config",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          "Address"
        ],
        "return": []
      }
    }
  },
  "deny_list": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "deny_list",
    "friends": [
      {
        "address": "0x2",
        "name": "coin"
      }
    ],
    "structs": {
      "AddressKey": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "pos0",
            "type": "Address"
          }
        ]
      },
      "ConfigKey": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "per_type_index",
            "type": "U64"
          },
          {
            "name": "per_type_key",
            "type": {
              "Vector": "U8"
            }
          }
        ]
      },
      "ConfigWriteCap": {
        "abilities": {
          "abilities": [
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "dummy_field",
            "type": "Bool"
          }
        ]
      },
      "DenyList": {
        "abilities": {
          "abilities": [
            "Key"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "lists",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "bag",
                "name": "Bag",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "GlobalPauseKey": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "dummy_field",
            "type": "Bool"
          }
        ]
      },
      "PerTypeConfigCreated": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "key",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "deny_list",
                "name": "ConfigKey",
                "typeArguments": []
              }
            }
          },
          {
            "name": "config_id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "add": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "deny_list",
                "name": "DenyList",
                "typeArguments": []
              }
            }
          },
          "U64",
          {
            "Vector": "U8"
          },
          "Address",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "contains_current_epoch": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "deny_list",
                "name": "DenyList",
                "typeArguments": []
              }
            }
          },
          "U64",
          {
            "Vector": "U8"
          },
          "Address",
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "contains_next_epoch": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "deny_list",
                "name": "DenyList",
                "typeArguments": []
              }
            }
          },
          "U64",
          {
            "Vector": "U8"
          },
          "Address"
        ],
        "return": [
          "Bool"
        ]
      },
      "disable_global_pause": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "deny_list",
                "name": "DenyList",
                "typeArguments": []
              }
            }
          },
          "U64",
          {
            "Vector": "U8"
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "enable_global_pause": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "deny_list",
                "name": "DenyList",
                "typeArguments": []
              }
            }
          },
          "U64",
          {
            "Vector": "U8"
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "is_global_pause_enabled_current_epoch": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "deny_list",
                "name": "DenyList",
                "typeArguments": []
              }
            }
          },
          "U64",
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_global_pause_enabled_next_epoch": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "deny_list",
                "name": "DenyList",
                "typeArguments": []
              }
            }
          },
          "U64",
          {
            "Vector": "U8"
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "remove": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "deny_list",
                "name": "DenyList",
                "typeArguments": []
              }
            }
          },
          "U64",
          {
            "Vector": "U8"
          },
          "Address",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      }
    }
  },
  "derived_object": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "derived_object",
    "friends": [],
    "structs": {
      "DerivedObjectKey": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Copy",
                "Drop",
                "Store"
              ]
            },
            "isPhantom": false
          }
        ],
        "fields": [
          {
            "name": "pos0",
            "type": {
              "TypeParameter": 0
            }
          }
        ]
      }
    },
    "exposedFunctions": {}
  },
  "display": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "display",
    "friends": [],
    "structs": {
      "Display": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Key"
              ]
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "fields",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x1",
                      "module": "string",
                      "name": "String",
                      "typeArguments": []
                    }
                  },
                  {
                    "Struct": {
                      "address": "0x1",
                      "module": "string",
                      "name": "String",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "version",
            "type": "U16"
          }
        ]
      },
      "DisplayCreated": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Key"
              ]
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "VersionUpdated": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Key"
              ]
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "version",
            "type": "U16"
          },
          {
            "name": "fields",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x1",
                      "module": "string",
                      "name": "String",
                      "typeArguments": []
                    }
                  },
                  {
                    "Struct": {
                      "address": "0x1",
                      "module": "string",
                      "name": "String",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "add": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "display",
                "name": "Display",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          }
        ],
        "return": []
      },
      "add_multiple": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "display",
                "name": "Display",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Vector": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "create_and_keep": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package",
                "name": "Publisher",
                "typeArguments": []
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "edit": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "display",
                "name": "Display",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          }
        ],
        "return": []
      },
      "fields": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "display",
                "name": "Display",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x1",
                      "module": "string",
                      "name": "String",
                      "typeArguments": []
                    }
                  },
                  {
                    "Struct": {
                      "address": "0x1",
                      "module": "string",
                      "name": "String",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ]
      },
      "is_authorized": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package",
                "name": "Publisher",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "new": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package",
                "name": "Publisher",
                "typeArguments": []
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "display",
              "name": "Display",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "new_with_fields": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package",
                "name": "Publisher",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "display",
              "name": "Display",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "remove": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "display",
                "name": "Display",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          }
        ],
        "return": []
      },
      "update_version": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "display",
                "name": "Display",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": []
      },
      "version": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "display",
                "name": "Display",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "U16"
        ]
      }
    }
  },
  "dynamic_field": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "dynamic_field",
    "friends": [
      {
        "address": "0x2",
        "name": "config"
      },
      {
        "address": "0x2",
        "name": "dynamic_object_field"
      }
    ],
    "structs": {
      "Field": {
        "abilities": {
          "abilities": [
            "Key"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Copy",
                "Drop",
                "Store"
              ]
            },
            "isPhantom": false
          },
          {
            "constraints": {
              "abilities": [
                "Store"
              ]
            },
            "isPhantom": false
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "name",
            "type": {
              "TypeParameter": 0
            }
          },
          {
            "name": "value",
            "type": {
              "TypeParameter": 1
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "add": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          },
          {
            "TypeParameter": 1
          }
        ],
        "return": []
      },
      "add_child_object": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          "Address",
          {
            "TypeParameter": 0
          }
        ],
        "return": []
      },
      "borrow": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "Reference": {
              "TypeParameter": 1
            }
          }
        ]
      },
      "borrow_child_object": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": [
          {
            "Reference": {
              "TypeParameter": 0
            }
          }
        ]
      },
      "borrow_child_object_mut": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": [
          {
            "MutableReference": {
              "TypeParameter": 0
            }
          }
        ]
      },
      "borrow_mut": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "MutableReference": {
              "TypeParameter": 1
            }
          }
        ]
      },
      "exists_": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "exists_with_type": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "field_info": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          "Address"
        ]
      },
      "field_info_mut": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          "Address"
        ]
      },
      "has_child_object": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          "Address",
          "Address"
        ],
        "return": [
          "Bool"
        ]
      },
      "has_child_object_with_ty": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          "Address",
          "Address"
        ],
        "return": [
          "Bool"
        ]
      },
      "hash_type_and_key": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          }
        ],
        "parameters": [
          "Address",
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          "Address"
        ]
      },
      "remove": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "TypeParameter": 1
          }
        ]
      },
      "remove_child_object": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          "Address",
          "Address"
        ],
        "return": [
          {
            "TypeParameter": 0
          }
        ]
      },
      "remove_if_exists": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "TypeParameter": 1
                }
              ]
            }
          }
        ]
      }
    }
  },
  "dynamic_object_field": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "dynamic_object_field",
    "friends": [
      {
        "address": "0x2",
        "name": "deny_list"
      }
    ],
    "structs": {
      "Wrapper": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": false
          }
        ],
        "fields": [
          {
            "name": "name",
            "type": {
              "TypeParameter": 0
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "add": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          },
          {
            "TypeParameter": 1
          }
        ],
        "return": []
      },
      "borrow": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "Reference": {
              "TypeParameter": 1
            }
          }
        ]
      },
      "borrow_mut": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "MutableReference": {
              "TypeParameter": 1
            }
          }
        ]
      },
      "exists_": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "exists_with_type": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "id": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "object",
                    "name": "ID",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "internal_add": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          },
          {
            "TypeParameter": 1
          }
        ],
        "return": []
      },
      "internal_borrow": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "Reference": {
              "TypeParameter": 1
            }
          }
        ]
      },
      "internal_borrow_mut": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "MutableReference": {
              "TypeParameter": 1
            }
          }
        ]
      },
      "internal_exists_with_type": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "internal_remove": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "TypeParameter": 1
          }
        ]
      },
      "remove": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "TypeParameter": 1
          }
        ]
      }
    }
  },
  "ecdsa_k1": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "ecdsa_k1",
    "friends": [],
    "structs": {},
    "exposedFunctions": {
      "decompress_pubkey": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ],
        "return": [
          {
            "Vector": "U8"
          }
        ]
      },
      "secp256k1_ecrecover": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": "U8"
            }
          },
          {
            "Reference": {
              "Vector": "U8"
            }
          },
          "U8"
        ],
        "return": [
          {
            "Vector": "U8"
          }
        ]
      },
      "secp256k1_verify": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": "U8"
            }
          },
          {
            "Reference": {
              "Vector": "U8"
            }
          },
          {
            "Reference": {
              "Vector": "U8"
            }
          },
          "U8"
        ],
        "return": [
          "Bool"
        ]
      }
    }
  },
  "ecdsa_r1": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "ecdsa_r1",
    "friends": [],
    "structs": {},
    "exposedFunctions": {
      "secp256r1_ecrecover": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": "U8"
            }
          },
          {
            "Reference": {
              "Vector": "U8"
            }
          },
          "U8"
        ],
        "return": [
          {
            "Vector": "U8"
          }
        ]
      },
      "secp256r1_verify": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": "U8"
            }
          },
          {
            "Reference": {
              "Vector": "U8"
            }
          },
          {
            "Reference": {
              "Vector": "U8"
            }
          },
          "U8"
        ],
        "return": [
          "Bool"
        ]
      }
    }
  },
  "ecvrf": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "ecvrf",
    "friends": [],
    "structs": {},
    "exposedFunctions": {
      "ecvrf_verify": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": "U8"
            }
          },
          {
            "Reference": {
              "Vector": "U8"
            }
          },
          {
            "Reference": {
              "Vector": "U8"
            }
          },
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ],
        "return": [
          "Bool"
        ]
      }
    }
  },
  "ed25519": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "ed25519",
    "friends": [],
    "structs": {},
    "exposedFunctions": {
      "ed25519_verify": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": "U8"
            }
          },
          {
            "Reference": {
              "Vector": "U8"
            }
          },
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ],
        "return": [
          "Bool"
        ]
      }
    }
  },
  "event": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "event",
    "friends": [],
    "structs": {},
    "exposedFunctions": {
      "emit": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          }
        ],
        "return": []
      }
    }
  },
  "groth16": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "groth16",
    "friends": [],
    "structs": {
      "Curve": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "id",
            "type": "U8"
          }
        ]
      },
      "PreparedVerifyingKey": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "vk_gamma_abc_g1_bytes",
            "type": {
              "Vector": "U8"
            }
          },
          {
            "name": "alpha_g1_beta_g2_bytes",
            "type": {
              "Vector": "U8"
            }
          },
          {
            "name": "gamma_g2_neg_pc_bytes",
            "type": {
              "Vector": "U8"
            }
          },
          {
            "name": "delta_g2_neg_pc_bytes",
            "type": {
              "Vector": "U8"
            }
          }
        ]
      },
      "ProofPoints": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "bytes",
            "type": {
              "Vector": "U8"
            }
          }
        ]
      },
      "PublicProofInputs": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "bytes",
            "type": {
              "Vector": "U8"
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "bls12381": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "groth16",
              "name": "Curve",
              "typeArguments": []
            }
          }
        ]
      },
      "bn254": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "groth16",
              "name": "Curve",
              "typeArguments": []
            }
          }
        ]
      },
      "prepare_verifying_key": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "groth16",
                "name": "Curve",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "groth16",
              "name": "PreparedVerifyingKey",
              "typeArguments": []
            }
          }
        ]
      },
      "proof_points_from_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Vector": "U8"
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "groth16",
              "name": "ProofPoints",
              "typeArguments": []
            }
          }
        ]
      },
      "public_proof_inputs_from_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Vector": "U8"
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "groth16",
              "name": "PublicProofInputs",
              "typeArguments": []
            }
          }
        ]
      },
      "pvk_from_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "groth16",
              "name": "PreparedVerifyingKey",
              "typeArguments": []
            }
          }
        ]
      },
      "pvk_to_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "groth16",
              "name": "PreparedVerifyingKey",
              "typeArguments": []
            }
          }
        ],
        "return": [
          {
            "Vector": {
              "Vector": "U8"
            }
          }
        ]
      },
      "verify_groth16_proof": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "groth16",
                "name": "Curve",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "groth16",
                "name": "PreparedVerifyingKey",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "groth16",
                "name": "PublicProofInputs",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "groth16",
                "name": "ProofPoints",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      }
    }
  },
  "group_ops": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "group_ops",
    "friends": [
      {
        "address": "0x2",
        "name": "bls12381"
      }
    ],
    "structs": {
      "Element": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "bytes",
            "type": {
              "Vector": "U8"
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "add": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          "U8",
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ]
      },
      "convert": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          "U8",
          "U8",
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "TypeParameter": 1
                }
              ]
            }
          }
        ]
      },
      "div": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          "U8",
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "TypeParameter": 1
                }
              ]
            }
          }
        ]
      },
      "equal": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "from_bytes": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          "U8",
          {
            "Reference": {
              "Vector": "U8"
            }
          },
          "Bool"
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "hash_to": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          "U8",
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "mul": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          "U8",
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "TypeParameter": 1
                }
              ]
            }
          }
        ]
      },
      "multi_scalar_multiplication": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          "U8",
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "group_ops",
                  "name": "Element",
                  "typeArguments": [
                    {
                      "TypeParameter": 0
                    }
                  ]
                }
              }
            }
          },
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "group_ops",
                  "name": "Element",
                  "typeArguments": [
                    {
                      "TypeParameter": 1
                    }
                  ]
                }
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "TypeParameter": 1
                }
              ]
            }
          }
        ]
      },
      "pairing": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": []
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          "U8",
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "TypeParameter": 2
                }
              ]
            }
          }
        ]
      },
      "set_as_prefix": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          "U64",
          "Bool",
          {
            "MutableReference": {
              "Vector": "U8"
            }
          }
        ],
        "return": []
      },
      "sub": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          "U8",
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "group_ops",
                "name": "Element",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "sum": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          "U8",
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "group_ops",
                  "name": "Element",
                  "typeArguments": [
                    {
                      "TypeParameter": 0
                    }
                  ]
                }
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "group_ops",
              "name": "Element",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      }
    }
  },
  "hash": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "hash",
    "friends": [],
    "structs": {},
    "exposedFunctions": {
      "blake2b256": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ],
        "return": [
          {
            "Vector": "U8"
          }
        ]
      },
      "keccak256": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ],
        "return": [
          {
            "Vector": "U8"
          }
        ]
      }
    }
  },
  "hex": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "hex",
    "friends": [],
    "structs": {},
    "exposedFunctions": {
      "decode": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Vector": "U8"
          }
        ],
        "return": [
          {
            "Vector": "U8"
          }
        ]
      },
      "encode": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Vector": "U8"
          }
        ],
        "return": [
          {
            "Vector": "U8"
          }
        ]
      }
    }
  },
  "hmac": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "hmac",
    "friends": [],
    "structs": {},
    "exposedFunctions": {
      "hmac_sha3_256": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": "U8"
            }
          },
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ],
        "return": [
          {
            "Vector": "U8"
          }
        ]
      }
    }
  },
  "intent": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "intent",
    "friends": [],
    "structs": {
      "Intent": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "scope",
            "type": "U8"
          },
          {
            "name": "version",
            "type": "U8"
          },
          {
            "name": "app_id",
            "type": "U8"
          }
        ]
      }
    },
    "exposedFunctions": {
      "app_id": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "intent",
                "name": "Intent",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U8"
        ]
      },
      "app_id_consensus": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          "U8"
        ]
      },
      "app_id_iota": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          "U8"
        ]
      },
      "iota_personal_message": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "intent",
              "name": "Intent",
              "typeArguments": []
            }
          }
        ]
      },
      "iota_transaction": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "intent",
              "name": "Intent",
              "typeArguments": []
            }
          }
        ]
      },
      "new": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          "U8",
          "U8",
          "U8"
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "intent",
              "name": "Intent",
              "typeArguments": []
            }
          }
        ]
      },
      "scope": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "intent",
                "name": "Intent",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U8"
        ]
      },
      "scope_authority_capabilities": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          "U8"
        ]
      },
      "scope_bridge_event_deprecated": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          "U8"
        ]
      },
      "scope_checkpoint_summary": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          "U8"
        ]
      },
      "scope_consensus_block": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          "U8"
        ]
      },
      "scope_discovery_peers": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          "U8"
        ]
      },
      "scope_personal_message": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          "U8"
        ]
      },
      "scope_proof_of_possession": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          "U8"
        ]
      },
      "scope_sender_signed_transaction": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          "U8"
        ]
      },
      "scope_transaction_data": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          "U8"
        ]
      },
      "scope_transaction_effects": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          "U8"
        ]
      },
      "to_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "intent",
                "name": "Intent",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Vector": "U8"
          }
        ]
      },
      "version": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "intent",
                "name": "Intent",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U8"
        ]
      },
      "version_v0": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          "U8"
        ]
      }
    }
  },
  "iota": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "iota",
    "friends": [],
    "structs": {
      "IOTA": {
        "abilities": {
          "abilities": [
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "dummy_field",
            "type": "Bool"
          }
        ]
      },
      "IotaTreasuryCap": {
        "abilities": {
          "abilities": [
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "inner",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "TreasuryCap",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "iota",
                      "name": "IOTA",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "burn": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "iota",
                "name": "IotaTreasuryCap",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "burn_balance": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "iota",
                "name": "IotaTreasuryCap",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "mint": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "iota",
                "name": "IotaTreasuryCap",
                "typeArguments": []
              }
            }
          },
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "mint_balance": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "iota",
                "name": "IotaTreasuryCap",
                "typeArguments": []
              }
            }
          },
          "U64",
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "total_supply": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "iota",
                "name": "IotaTreasuryCap",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "transfer": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          },
          "Address"
        ],
        "return": []
      }
    }
  },
  "kiosk": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "kiosk",
    "friends": [
      {
        "address": "0x2",
        "name": "kiosk_extension"
      }
    ],
    "structs": {
      "Borrow": {
        "abilities": {
          "abilities": []
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "kiosk_id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "item_id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "Item": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "ItemDelisted": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Store",
                "Key"
              ]
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "kiosk",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "ItemListed": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Store",
                "Key"
              ]
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "kiosk",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "price",
            "type": "U64"
          }
        ]
      },
      "ItemPurchased": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Store",
                "Key"
              ]
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "kiosk",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "price",
            "type": "U64"
          }
        ]
      },
      "Kiosk": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "profits",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Balance",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "iota",
                      "name": "IOTA",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "owner",
            "type": "Address"
          },
          {
            "name": "item_count",
            "type": "U32"
          }
        ]
      },
      "KioskOwnerCap": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "for",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "Listing": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "is_exclusive",
            "type": "Bool"
          }
        ]
      },
      "Lock": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "PurchaseCap": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Store",
                "Key"
              ]
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "kiosk_id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "item_id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "min_price",
            "type": "U64"
          }
        ]
      }
    },
    "exposedFunctions": {
      "borrow": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "KioskOwnerCap",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "TypeParameter": 0
            }
          }
        ]
      },
      "borrow_mut": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "KioskOwnerCap",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ],
        "return": [
          {
            "MutableReference": {
              "TypeParameter": 0
            }
          }
        ]
      },
      "borrow_val": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "KioskOwnerCap",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ],
        "return": [
          {
            "TypeParameter": 0
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "kiosk",
              "name": "Borrow",
              "typeArguments": []
            }
          }
        ]
      },
      "close_and_withdraw": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "kiosk",
              "name": "Kiosk",
              "typeArguments": []
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "kiosk",
              "name": "KioskOwnerCap",
              "typeArguments": []
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "default": {
        "visibility": "Private",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "delist": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "KioskOwnerCap",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ],
        "return": []
      },
      "has_access": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "KioskOwnerCap",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "has_item": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "has_item_with_type": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_listed": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_listed_exclusively": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_locked": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "item_count": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U32"
        ]
      },
      "kiosk_owner_cap_for": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "KioskOwnerCap",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      },
      "list": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "KioskOwnerCap",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          },
          "U64"
        ],
        "return": []
      },
      "list_with_purchase_cap": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "KioskOwnerCap",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          },
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "kiosk",
              "name": "PurchaseCap",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "lock": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "KioskOwnerCap",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "transfer_policy",
                "name": "TransferPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": []
      },
      "lock_internal": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": []
      },
      "new": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "kiosk",
              "name": "Kiosk",
              "typeArguments": []
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "kiosk",
              "name": "KioskOwnerCap",
              "typeArguments": []
            }
          }
        ]
      },
      "owner": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Address"
        ]
      },
      "place": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "KioskOwnerCap",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": []
      },
      "place_and_list": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "KioskOwnerCap",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          },
          "U64"
        ],
        "return": []
      },
      "place_internal": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": []
      },
      "profits_amount": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "profits_mut": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "KioskOwnerCap",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Balance",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "iota",
                      "name": "IOTA",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ]
      },
      "purchase": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ],
        "return": [
          {
            "TypeParameter": 0
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "transfer_policy",
              "name": "TransferRequest",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "purchase_cap_item": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "PurchaseCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      },
      "purchase_cap_kiosk": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "PurchaseCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      },
      "purchase_cap_min_price": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "PurchaseCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "purchase_with_cap": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "kiosk",
              "name": "PurchaseCap",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ],
        "return": [
          {
            "TypeParameter": 0
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "transfer_policy",
              "name": "TransferRequest",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "return_purchase_cap": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "kiosk",
              "name": "PurchaseCap",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": []
      },
      "return_val": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "kiosk",
              "name": "Borrow",
              "typeArguments": []
            }
          }
        ],
        "return": []
      },
      "set_owner": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "KioskOwnerCap",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "set_owner_custom": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "KioskOwnerCap",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": []
      },
      "take": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "KioskOwnerCap",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ],
        "return": [
          {
            "TypeParameter": 0
          }
        ]
      },
      "uid": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "uid_mut_as_owner": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "KioskOwnerCap",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "uid_mut_internal": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "withdraw": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "KioskOwnerCap",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "U64"
              ]
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      }
    }
  },
  "kiosk_extension": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "kiosk_extension",
    "friends": [],
    "structs": {
      "Extension": {
        "abilities": {
          "abilities": [
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "storage",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "bag",
                "name": "Bag",
                "typeArguments": []
              }
            }
          },
          {
            "name": "permissions",
            "type": "U128"
          },
          {
            "name": "is_enabled",
            "type": "Bool"
          }
        ]
      },
      "ExtensionKey": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "dummy_field",
            "type": "Bool"
          }
        ]
      }
    },
    "exposedFunctions": {
      "add": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "KioskOwnerCap",
                "typeArguments": []
              }
            }
          },
          "U128",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "can_lock": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "can_place": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "disable": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "KioskOwnerCap",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "enable": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "KioskOwnerCap",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "is_enabled": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_installed": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "lock": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          },
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 1
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "transfer_policy",
                "name": "TransferPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          }
        ],
        "return": []
      },
      "place": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          },
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 1
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "transfer_policy",
                "name": "TransferPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          }
        ],
        "return": []
      },
      "remove": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "KioskOwnerCap",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "storage": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "bag",
                "name": "Bag",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "storage_mut": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "kiosk",
                "name": "Kiosk",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "bag",
                "name": "Bag",
                "typeArguments": []
              }
            }
          }
        ]
      }
    }
  },
  "labeler": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "labeler",
    "friends": [],
    "structs": {
      "LabelerCap": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "create_labeler_cap": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "labeler",
              "name": "LabelerCap",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "destroy_labeler_cap": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "labeler",
              "name": "LabelerCap",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": []
      }
    }
  },
  "linked_table": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "linked_table",
    "friends": [],
    "structs": {
      "LinkedTable": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Copy",
                "Drop",
                "Store"
              ]
            },
            "isPhantom": false
          },
          {
            "constraints": {
              "abilities": [
                "Store"
              ]
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "size",
            "type": "U64"
          },
          {
            "name": "head",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "name": "tail",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ]
      },
      "Node": {
        "abilities": {
          "abilities": [
            "Store"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Copy",
                "Drop",
                "Store"
              ]
            },
            "isPhantom": false
          },
          {
            "constraints": {
              "abilities": [
                "Store"
              ]
            },
            "isPhantom": false
          }
        ],
        "fields": [
          {
            "name": "prev",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "name": "next",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "name": "value",
            "type": {
              "TypeParameter": 1
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "back": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "linked_table",
                "name": "LinkedTable",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ]
      },
      "borrow": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "linked_table",
                "name": "LinkedTable",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "Reference": {
              "TypeParameter": 1
            }
          }
        ]
      },
      "borrow_mut": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "linked_table",
                "name": "LinkedTable",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "MutableReference": {
              "TypeParameter": 1
            }
          }
        ]
      },
      "contains": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "linked_table",
                "name": "LinkedTable",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "destroy_empty": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "linked_table",
              "name": "LinkedTable",
              "typeArguments": [
                {
                  "TypeParameter": 0
                },
                {
                  "TypeParameter": 1
                }
              ]
            }
          }
        ],
        "return": []
      },
      "drop": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Drop",
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "linked_table",
              "name": "LinkedTable",
              "typeArguments": [
                {
                  "TypeParameter": 0
                },
                {
                  "TypeParameter": 1
                }
              ]
            }
          }
        ],
        "return": []
      },
      "front": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "linked_table",
                "name": "LinkedTable",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ]
      },
      "is_empty": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "linked_table",
                "name": "LinkedTable",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "length": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "linked_table",
                "name": "LinkedTable",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "new": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "linked_table",
              "name": "LinkedTable",
              "typeArguments": [
                {
                  "TypeParameter": 0
                },
                {
                  "TypeParameter": 1
                }
              ]
            }
          }
        ]
      },
      "next": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "linked_table",
                "name": "LinkedTable",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ]
      },
      "pop_back": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "linked_table",
                "name": "LinkedTable",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "TypeParameter": 0
          },
          {
            "TypeParameter": 1
          }
        ]
      },
      "pop_front": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "linked_table",
                "name": "LinkedTable",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "TypeParameter": 0
          },
          {
            "TypeParameter": 1
          }
        ]
      },
      "prev": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "linked_table",
                "name": "LinkedTable",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ]
      },
      "push_back": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "linked_table",
                "name": "LinkedTable",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          },
          {
            "TypeParameter": 1
          }
        ],
        "return": []
      },
      "push_front": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "linked_table",
                "name": "LinkedTable",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          },
          {
            "TypeParameter": 1
          }
        ],
        "return": []
      },
      "remove": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "linked_table",
                "name": "LinkedTable",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "TypeParameter": 1
          }
        ]
      }
    }
  },
  "object": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "object",
    "friends": [
      {
        "address": "0x2",
        "name": "clock"
      },
      {
        "address": "0x2",
        "name": "deny_list"
      },
      {
        "address": "0x2",
        "name": "dynamic_field"
      },
      {
        "address": "0x2",
        "name": "random"
      }
    ],
    "structs": {
      "ID": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "bytes",
            "type": "Address"
          }
        ]
      },
      "UID": {
        "abilities": {
          "abilities": [
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "authenticator_state": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "UID",
              "typeArguments": []
            }
          }
        ]
      },
      "borrow_id": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "TypeParameter": 0
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "clock": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "UID",
              "typeArguments": []
            }
          }
        ]
      },
      "delete": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "UID",
              "typeArguments": []
            }
          }
        ],
        "return": []
      },
      "id": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "TypeParameter": 0
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      },
      "id_address": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "TypeParameter": 0
            }
          }
        ],
        "return": [
          "Address"
        ]
      },
      "id_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "TypeParameter": 0
            }
          }
        ],
        "return": [
          {
            "Vector": "U8"
          }
        ]
      },
      "id_from_address": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          "Address"
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      },
      "id_from_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Vector": "U8"
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      },
      "id_to_address": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Address"
        ]
      },
      "id_to_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Vector": "U8"
          }
        ]
      },
      "iota_deny_list_object_id": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "UID",
              "typeArguments": []
            }
          }
        ]
      },
      "new": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "UID",
              "typeArguments": []
            }
          }
        ]
      },
      "new_uid_from_hash": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          "Address"
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "UID",
              "typeArguments": []
            }
          }
        ]
      },
      "randomness_state": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "UID",
              "typeArguments": []
            }
          }
        ]
      },
      "uid_as_inner": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "uid_to_address": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Address"
        ]
      },
      "uid_to_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Vector": "U8"
          }
        ]
      },
      "uid_to_inner": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      }
    }
  },
  "object_bag": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "object_bag",
    "friends": [],
    "structs": {
      "ObjectBag": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "size",
            "type": "U64"
          }
        ]
      }
    },
    "exposedFunctions": {
      "add": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "object_bag",
                "name": "ObjectBag",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          },
          {
            "TypeParameter": 1
          }
        ],
        "return": []
      },
      "borrow": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object_bag",
                "name": "ObjectBag",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "Reference": {
              "TypeParameter": 1
            }
          }
        ]
      },
      "borrow_mut": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "object_bag",
                "name": "ObjectBag",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "MutableReference": {
              "TypeParameter": 1
            }
          }
        ]
      },
      "contains": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object_bag",
                "name": "ObjectBag",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "contains_with_type": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object_bag",
                "name": "ObjectBag",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "destroy_empty": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object_bag",
              "name": "ObjectBag",
              "typeArguments": []
            }
          }
        ],
        "return": []
      },
      "is_empty": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object_bag",
                "name": "ObjectBag",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "length": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object_bag",
                "name": "ObjectBag",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "new": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object_bag",
              "name": "ObjectBag",
              "typeArguments": []
            }
          }
        ]
      },
      "remove": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "object_bag",
                "name": "ObjectBag",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "TypeParameter": 1
          }
        ]
      },
      "value_id": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object_bag",
                "name": "ObjectBag",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "object",
                    "name": "ID",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      }
    }
  },
  "object_table": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "object_table",
    "friends": [],
    "structs": {
      "ObjectTable": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Copy",
                "Drop",
                "Store"
              ]
            },
            "isPhantom": true
          },
          {
            "constraints": {
              "abilities": [
                "Store",
                "Key"
              ]
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "size",
            "type": "U64"
          }
        ]
      }
    },
    "exposedFunctions": {
      "add": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "object_table",
                "name": "ObjectTable",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          },
          {
            "TypeParameter": 1
          }
        ],
        "return": []
      },
      "borrow": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object_table",
                "name": "ObjectTable",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "Reference": {
              "TypeParameter": 1
            }
          }
        ]
      },
      "borrow_mut": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "object_table",
                "name": "ObjectTable",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "MutableReference": {
              "TypeParameter": 1
            }
          }
        ]
      },
      "contains": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object_table",
                "name": "ObjectTable",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "destroy_empty": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object_table",
              "name": "ObjectTable",
              "typeArguments": [
                {
                  "TypeParameter": 0
                },
                {
                  "TypeParameter": 1
                }
              ]
            }
          }
        ],
        "return": []
      },
      "is_empty": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object_table",
                "name": "ObjectTable",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "length": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object_table",
                "name": "ObjectTable",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "new": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object_table",
              "name": "ObjectTable",
              "typeArguments": [
                {
                  "TypeParameter": 0
                },
                {
                  "TypeParameter": 1
                }
              ]
            }
          }
        ]
      },
      "remove": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "object_table",
                "name": "ObjectTable",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "TypeParameter": 1
          }
        ]
      },
      "value_id": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object_table",
                "name": "ObjectTable",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "object",
                    "name": "ID",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      }
    }
  },
  "package": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "package",
    "friends": [],
    "structs": {
      "Publisher": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "package",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "ascii",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "name": "module_name",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "ascii",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "UpgradeCap": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "package",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "version",
            "type": "U64"
          },
          {
            "name": "policy",
            "type": "U8"
          }
        ]
      },
      "UpgradeReceipt": {
        "abilities": {
          "abilities": []
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "cap",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "package",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "UpgradeTicket": {
        "abilities": {
          "abilities": []
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "cap",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "package",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "policy",
            "type": "U8"
          },
          {
            "name": "digest",
            "type": {
              "Vector": "U8"
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "additive_policy": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          "U8"
        ]
      },
      "authorize_upgrade": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "package",
                "name": "UpgradeCap",
                "typeArguments": []
              }
            }
          },
          "U8",
          {
            "Vector": "U8"
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "package",
              "name": "UpgradeTicket",
              "typeArguments": []
            }
          }
        ]
      },
      "burn_publisher": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "package",
              "name": "Publisher",
              "typeArguments": []
            }
          }
        ],
        "return": []
      },
      "claim": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "package",
              "name": "Publisher",
              "typeArguments": []
            }
          }
        ]
      },
      "claim_and_keep": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "commit_upgrade": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "package",
                "name": "UpgradeCap",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "package",
              "name": "UpgradeReceipt",
              "typeArguments": []
            }
          }
        ],
        "return": []
      },
      "compatible_policy": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          "U8"
        ]
      },
      "dep_only_policy": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          "U8"
        ]
      },
      "from_module": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package",
                "name": "Publisher",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "from_package": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package",
                "name": "Publisher",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "make_immutable": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "package",
              "name": "UpgradeCap",
              "typeArguments": []
            }
          }
        ],
        "return": []
      },
      "only_additive_upgrades": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "package",
                "name": "UpgradeCap",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "only_dep_upgrades": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "package",
                "name": "UpgradeCap",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "published_module": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package",
                "name": "Publisher",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "ascii",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "published_package": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package",
                "name": "Publisher",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "ascii",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "receipt_cap": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package",
                "name": "UpgradeReceipt",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      },
      "receipt_package": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package",
                "name": "UpgradeReceipt",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      },
      "ticket_digest": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package",
                "name": "UpgradeTicket",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ]
      },
      "ticket_package": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package",
                "name": "UpgradeTicket",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      },
      "ticket_policy": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package",
                "name": "UpgradeTicket",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U8"
        ]
      },
      "upgrade_package": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package",
                "name": "UpgradeCap",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      },
      "upgrade_policy": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package",
                "name": "UpgradeCap",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U8"
        ]
      },
      "version": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package",
                "name": "UpgradeCap",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      }
    }
  },
  "package_metadata": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "package_metadata",
    "friends": [],
    "structs": {
      "AuthenticatorMetadataV1": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "function_name",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "ascii",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "name": "account_type",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "type_name",
                "name": "TypeName",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "ModuleMetadataV1": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "authenticator_metadata",
            "type": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "package_metadata",
                  "name": "AuthenticatorMetadataV1",
                  "typeArguments": []
                }
              }
            }
          }
        ]
      },
      "PackageMetadataKey": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "dummy_field",
            "type": "Bool"
          }
        ]
      },
      "PackageMetadataV1": {
        "abilities": {
          "abilities": [
            "Key"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "storage_id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "runtime_id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "package_version",
            "type": "U64"
          },
          {
            "name": "modules_metadata",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x1",
                      "module": "ascii",
                      "name": "String",
                      "typeArguments": []
                    }
                  },
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "package_metadata",
                      "name": "ModuleMetadataV1",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "account_type": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package_metadata",
                "name": "AuthenticatorMetadataV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "type_name",
              "name": "TypeName",
              "typeArguments": []
            }
          }
        ]
      },
      "authenticator_metadata_v1": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package_metadata",
                "name": "ModuleMetadataV1",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "ascii",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package_metadata",
                "name": "AuthenticatorMetadataV1",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "modules_metadata_v1": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package_metadata",
                "name": "PackageMetadataV1",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "ascii",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package_metadata",
                "name": "ModuleMetadataV1",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "package_version": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package_metadata",
                "name": "PackageMetadataV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "runtime_id": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package_metadata",
                "name": "PackageMetadataV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      },
      "storage_id": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package_metadata",
                "name": "PackageMetadataV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      },
      "try_get_authenticator_metadata_v1": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package_metadata",
                "name": "ModuleMetadataV1",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "ascii",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "package_metadata",
                    "name": "AuthenticatorMetadataV1",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "try_get_modules_metadata_v1": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package_metadata",
                "name": "PackageMetadataV1",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "ascii",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "package_metadata",
                    "name": "ModuleMetadataV1",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      }
    }
  },
  "pay": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "pay",
    "friends": [],
    "structs": {},
    "exposedFunctions": {
      "divide_and_keep": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "Coin",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "join_vec": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "Coin",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Vector": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "Coin",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": []
      },
      "join_vec_and_transfer": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Vector": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "Coin",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "Address"
        ],
        "return": []
      },
      "keep": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "split": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "Coin",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "split_and_transfer": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "Coin",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "U64",
          "Address",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "split_vec": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "Coin",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Vector": "U64"
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      }
    }
  },
  "poseidon": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "poseidon",
    "friends": [],
    "structs": {},
    "exposedFunctions": {
      "poseidon_bn254": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": "U256"
            }
          }
        ],
        "return": [
          "U256"
        ]
      }
    }
  },
  "priority_queue": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "priority_queue",
    "friends": [],
    "structs": {
      "Entry": {
        "abilities": {
          "abilities": [
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Drop"
              ]
            },
            "isPhantom": false
          }
        ],
        "fields": [
          {
            "name": "priority",
            "type": "U64"
          },
          {
            "name": "value",
            "type": {
              "TypeParameter": 0
            }
          }
        ]
      },
      "PriorityQueue": {
        "abilities": {
          "abilities": [
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Drop"
              ]
            },
            "isPhantom": false
          }
        ],
        "fields": [
          {
            "name": "entries",
            "type": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "priority_queue",
                  "name": "Entry",
                  "typeArguments": [
                    {
                      "TypeParameter": 0
                    }
                  ]
                }
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "create_entries": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "Vector": "U64"
          },
          {
            "Vector": {
              "TypeParameter": 0
            }
          }
        ],
        "return": [
          {
            "Vector": {
              "Struct": {
                "address": "0x2",
                "module": "priority_queue",
                "name": "Entry",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ]
      },
      "insert": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "priority_queue",
                "name": "PriorityQueue",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "U64",
          {
            "TypeParameter": 0
          }
        ],
        "return": []
      },
      "new": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "Vector": {
              "Struct": {
                "address": "0x2",
                "module": "priority_queue",
                "name": "Entry",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "priority_queue",
              "name": "PriorityQueue",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "new_entry": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          "U64",
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "priority_queue",
              "name": "Entry",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "pop_max": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "priority_queue",
                "name": "PriorityQueue",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "U64",
          {
            "TypeParameter": 0
          }
        ]
      },
      "priorities": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "priority_queue",
                "name": "PriorityQueue",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Vector": "U64"
          }
        ]
      }
    }
  },
  "protocol_config": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "protocol_config",
    "friends": [],
    "structs": {},
    "exposedFunctions": {
      "is_feature_enabled": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Vector": "U8"
          }
        ],
        "return": [
          "Bool"
        ]
      }
    }
  },
  "prover": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "prover",
    "friends": [],
    "structs": {},
    "exposedFunctions": {}
  },
  "ptb": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "ptb",
    "friends": [],
    "structs": {
      "ProgrammableTransaction": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "inputs",
            "type": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_call_arg",
                  "name": "CallArg",
                  "typeArguments": []
                }
              }
            }
          },
          {
            "name": "commands",
            "type": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_command",
                  "name": "Command",
                  "typeArguments": []
                }
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "commands": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb",
                "name": "ProgrammableTransaction",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_command",
                  "name": "Command",
                  "typeArguments": []
                }
              }
            }
          }
        ]
      },
      "inputs": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb",
                "name": "ProgrammableTransaction",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_call_arg",
                  "name": "CallArg",
                  "typeArguments": []
                }
              }
            }
          }
        ]
      },
      "new_programmable_transaction_for_testing": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Vector": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_call_arg",
                "name": "CallArg",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Command",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "ptb",
              "name": "ProgrammableTransaction",
              "typeArguments": []
            }
          }
        ]
      }
    }
  },
  "ptb_call_arg": {
    "fileFormatVersion": 7,
    "address": "0x2",
    "name": "ptb_call_arg",
    "friends": [],
    "structs": {
      "ObjectRef": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "object_id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "sequence_number",
            "type": "U64"
          },
          {
            "name": "object_digest",
            "type": {
              "Vector": "U8"
            }
          }
        ]
      }
    },
    "enums": {
      "CallArg": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "variants": {
          "ObjectData": [
            {
              "name": "pos0",
              "type": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_call_arg",
                  "name": "ObjectArg",
                  "typeArguments": []
                }
              }
            }
          ],
          "PureData": [
            {
              "name": "pos0",
              "type": {
                "Vector": "U8"
              }
            }
          ]
        }
      },
      "ObjectArg": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "variants": {
          "ImmOrOwnedObject": [
            {
              "name": "pos0",
              "type": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_call_arg",
                  "name": "ObjectRef",
                  "typeArguments": []
                }
              }
            }
          ],
          "ReceivingObject": [
            {
              "name": "pos0",
              "type": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_call_arg",
                  "name": "ObjectRef",
                  "typeArguments": []
                }
              }
            }
          ],
          "SharedObject": [
            {
              "name": "id",
              "type": {
                "Struct": {
                  "address": "0x2",
                  "module": "object",
                  "name": "ID",
                  "typeArguments": []
                }
              }
            },
            {
              "name": "initial_shared_version",
              "type": "U64"
            },
            {
              "name": "mutable",
              "type": "Bool"
            }
          ]
        }
      }
    },
    "exposedFunctions": {
      "as_object_data": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_call_arg",
                "name": "CallArg",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "ptb_call_arg",
                    "name": "ObjectArg",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "as_pure_data": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_call_arg",
                "name": "CallArg",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Vector": "U8"
                }
              ]
            }
          }
        ]
      },
      "digest": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_call_arg",
                "name": "ObjectRef",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ]
      },
      "id": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_call_arg",
                "name": "ObjectRef",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "is_imm_or_owned_object": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_call_arg",
                "name": "ObjectArg",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_mutable_shared_object": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_call_arg",
                "name": "ObjectArg",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "Bool"
              ]
            }
          }
        ]
      },
      "is_object_data": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_call_arg",
                "name": "CallArg",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_pure_data": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_call_arg",
                "name": "CallArg",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_receiving_object": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_call_arg",
                "name": "ObjectArg",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_shared_object": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_call_arg",
                "name": "ObjectArg",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "object_digest": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_call_arg",
                "name": "ObjectArg",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Vector": "U8"
                }
              ]
            }
          }
        ]
      },
      "object_id": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_call_arg",
                "name": "ObjectArg",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "object",
                    "name": "ID",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "object_ref": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_call_arg",
                "name": "ObjectArg",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "ptb_call_arg",
                    "name": "ObjectRef",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "object_version": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_call_arg",
                "name": "ObjectArg",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "U64"
              ]
            }
          }
        ]
      },
      "sequence_number": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_call_arg",
                "name": "ObjectRef",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      }
    }
  },
  "ptb_command": {
    "fileFormatVersion": 7,
    "address": "0x2",
    "name": "ptb_command",
    "friends": [],
    "structs": {
      "MakeMoveVecData": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "type_arg",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x1",
                      "module": "type_name",
                      "name": "TypeName",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "elements",
            "type": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_command",
                  "name": "Argument",
                  "typeArguments": []
                }
              }
            }
          }
        ]
      },
      "MergeCoinsData": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "target_coin",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Argument",
                "typeArguments": []
              }
            }
          },
          {
            "name": "source_coins",
            "type": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_command",
                  "name": "Argument",
                  "typeArguments": []
                }
              }
            }
          }
        ]
      },
      "ProgrammableMoveCall": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "package",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "module_name",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "ascii",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "name": "function",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "ascii",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "name": "type_arguments",
            "type": {
              "Vector": {
                "Struct": {
                  "address": "0x1",
                  "module": "type_name",
                  "name": "TypeName",
                  "typeArguments": []
                }
              }
            }
          },
          {
            "name": "arguments",
            "type": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_command",
                  "name": "Argument",
                  "typeArguments": []
                }
              }
            }
          }
        ]
      },
      "PublishData": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "modules",
            "type": {
              "Vector": {
                "Vector": "U8"
              }
            }
          },
          {
            "name": "dependencies",
            "type": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "object",
                  "name": "ID",
                  "typeArguments": []
                }
              }
            }
          }
        ]
      },
      "SplitCoinsData": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "coin",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Argument",
                "typeArguments": []
              }
            }
          },
          {
            "name": "amounts",
            "type": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_command",
                  "name": "Argument",
                  "typeArguments": []
                }
              }
            }
          }
        ]
      },
      "TransferObjectsData": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "objects",
            "type": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_command",
                  "name": "Argument",
                  "typeArguments": []
                }
              }
            }
          },
          {
            "name": "recipient",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Argument",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "UpgradeData": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "modules",
            "type": {
              "Vector": {
                "Vector": "U8"
              }
            }
          },
          {
            "name": "dependencies",
            "type": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "object",
                  "name": "ID",
                  "typeArguments": []
                }
              }
            }
          },
          {
            "name": "package",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "upgrade_ticket",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Argument",
                "typeArguments": []
              }
            }
          }
        ]
      }
    },
    "enums": {
      "Argument": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "variants": {
          "GasCoin": [],
          "Input": [
            {
              "name": "pos0",
              "type": "U16"
            }
          ],
          "NestedResult": [
            {
              "name": "pos0",
              "type": "U16"
            },
            {
              "name": "pos1",
              "type": "U16"
            }
          ],
          "Result": [
            {
              "name": "pos0",
              "type": "U16"
            }
          ]
        }
      },
      "Command": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "variants": {
          "MakeMoveVec": [
            {
              "name": "pos0",
              "type": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_command",
                  "name": "MakeMoveVecData",
                  "typeArguments": []
                }
              }
            }
          ],
          "MergeCoins": [
            {
              "name": "pos0",
              "type": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_command",
                  "name": "MergeCoinsData",
                  "typeArguments": []
                }
              }
            }
          ],
          "MoveCall": [
            {
              "name": "pos0",
              "type": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_command",
                  "name": "ProgrammableMoveCall",
                  "typeArguments": []
                }
              }
            }
          ],
          "Publish": [
            {
              "name": "pos0",
              "type": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_command",
                  "name": "PublishData",
                  "typeArguments": []
                }
              }
            }
          ],
          "SplitCoins": [
            {
              "name": "pos0",
              "type": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_command",
                  "name": "SplitCoinsData",
                  "typeArguments": []
                }
              }
            }
          ],
          "TransferObjects": [
            {
              "name": "pos0",
              "type": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_command",
                  "name": "TransferObjectsData",
                  "typeArguments": []
                }
              }
            }
          ],
          "Upgrade": [
            {
              "name": "pos0",
              "type": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_command",
                  "name": "UpgradeData",
                  "typeArguments": []
                }
              }
            }
          ]
        }
      }
    },
    "exposedFunctions": {
      "amounts": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "SplitCoinsData",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_command",
                  "name": "Argument",
                  "typeArguments": []
                }
              }
            }
          }
        ]
      },
      "arguments": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "ProgrammableMoveCall",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_command",
                  "name": "Argument",
                  "typeArguments": []
                }
              }
            }
          }
        ]
      },
      "as_make_move_vec": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Command",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "ptb_command",
                    "name": "MakeMoveVecData",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "as_merge_coins": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Command",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "ptb_command",
                    "name": "MergeCoinsData",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "as_move_call": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Command",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "ptb_command",
                    "name": "ProgrammableMoveCall",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "as_publish": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Command",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "ptb_command",
                    "name": "PublishData",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "as_split_coins": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Command",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "ptb_command",
                    "name": "SplitCoinsData",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "as_transfer_objects": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Command",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "ptb_command",
                    "name": "TransferObjectsData",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "as_upgrade": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Command",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "ptb_command",
                    "name": "UpgradeData",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "coin": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "SplitCoinsData",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Argument",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "dependencies": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "PublishData",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "object",
                  "name": "ID",
                  "typeArguments": []
                }
              }
            }
          }
        ]
      },
      "elements": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "MakeMoveVecData",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_command",
                  "name": "Argument",
                  "typeArguments": []
                }
              }
            }
          }
        ]
      },
      "function": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "ProgrammableMoveCall",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "ascii",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "input_index": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Argument",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "U16"
              ]
            }
          }
        ]
      },
      "is_gas_coin": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Argument",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_input": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Argument",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_make_move_vec": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Command",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_merge_coins": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Command",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_move_call": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Command",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_nested_result": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Argument",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_publish": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Command",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_result": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Argument",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_split_coins": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Command",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_transfer_objects": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Command",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_upgrade": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Command",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "module_name": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "ProgrammableMoveCall",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "ascii",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "modules": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "PublishData",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": {
                "Vector": "U8"
              }
            }
          }
        ]
      },
      "nested_result_command_index": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Argument",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "U16"
              ]
            }
          }
        ]
      },
      "nested_result_inner_index": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Argument",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "U16"
              ]
            }
          }
        ]
      },
      "objects": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "TransferObjectsData",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_command",
                  "name": "Argument",
                  "typeArguments": []
                }
              }
            }
          }
        ]
      },
      "package": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "ProgrammableMoveCall",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "recipient": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "TransferObjectsData",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Argument",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "result_command_index": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Argument",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "U16"
              ]
            }
          }
        ]
      },
      "source_coins": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "MergeCoinsData",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "ptb_command",
                  "name": "Argument",
                  "typeArguments": []
                }
              }
            }
          }
        ]
      },
      "target_coin": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "MergeCoinsData",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Argument",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "type_arg": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "MakeMoveVecData",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x1",
                      "module": "type_name",
                      "name": "TypeName",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ]
      },
      "type_arguments": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "ProgrammableMoveCall",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x1",
                  "module": "type_name",
                  "name": "TypeName",
                  "typeArguments": []
                }
              }
            }
          }
        ]
      },
      "upgrade_dependencies": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "UpgradeData",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "object",
                  "name": "ID",
                  "typeArguments": []
                }
              }
            }
          }
        ]
      },
      "upgrade_modules": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "UpgradeData",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": {
                "Vector": "U8"
              }
            }
          }
        ]
      },
      "upgrade_package": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "UpgradeData",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "upgrade_ticket": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "UpgradeData",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "ptb_command",
                "name": "Argument",
                "typeArguments": []
              }
            }
          }
        ]
      }
    }
  },
  "random": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "random",
    "friends": [],
    "structs": {
      "Random": {
        "abilities": {
          "abilities": [
            "Key"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "inner",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "versioned",
                "name": "Versioned",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "RandomGenerator": {
        "abilities": {
          "abilities": [
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "seed",
            "type": {
              "Vector": "U8"
            }
          },
          {
            "name": "counter",
            "type": "U16"
          },
          {
            "name": "buffer",
            "type": {
              "Vector": "U8"
            }
          }
        ]
      },
      "RandomInner": {
        "abilities": {
          "abilities": [
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "version",
            "type": "U64"
          },
          {
            "name": "epoch",
            "type": "U64"
          },
          {
            "name": "randomness_round",
            "type": "U64"
          },
          {
            "name": "random_bytes",
            "type": {
              "Vector": "U8"
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "generate_bool": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "random",
                "name": "RandomGenerator",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "generate_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "random",
                "name": "RandomGenerator",
                "typeArguments": []
              }
            }
          },
          "U16"
        ],
        "return": [
          {
            "Vector": "U8"
          }
        ]
      },
      "generate_u128": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "random",
                "name": "RandomGenerator",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U128"
        ]
      },
      "generate_u128_in_range": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "random",
                "name": "RandomGenerator",
                "typeArguments": []
              }
            }
          },
          "U128",
          "U128"
        ],
        "return": [
          "U128"
        ]
      },
      "generate_u16": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "random",
                "name": "RandomGenerator",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U16"
        ]
      },
      "generate_u16_in_range": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "random",
                "name": "RandomGenerator",
                "typeArguments": []
              }
            }
          },
          "U16",
          "U16"
        ],
        "return": [
          "U16"
        ]
      },
      "generate_u256": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "random",
                "name": "RandomGenerator",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U256"
        ]
      },
      "generate_u32": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "random",
                "name": "RandomGenerator",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U32"
        ]
      },
      "generate_u32_in_range": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "random",
                "name": "RandomGenerator",
                "typeArguments": []
              }
            }
          },
          "U32",
          "U32"
        ],
        "return": [
          "U32"
        ]
      },
      "generate_u64": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "random",
                "name": "RandomGenerator",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "generate_u64_in_range": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "random",
                "name": "RandomGenerator",
                "typeArguments": []
              }
            }
          },
          "U64",
          "U64"
        ],
        "return": [
          "U64"
        ]
      },
      "generate_u8": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "random",
                "name": "RandomGenerator",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U8"
        ]
      },
      "generate_u8_in_range": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "random",
                "name": "RandomGenerator",
                "typeArguments": []
              }
            }
          },
          "U8",
          "U8"
        ],
        "return": [
          "U8"
        ]
      },
      "new_generator": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "random",
                "name": "Random",
                "typeArguments": []
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "random",
              "name": "RandomGenerator",
              "typeArguments": []
            }
          }
        ]
      },
      "shuffle": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "random",
                "name": "RandomGenerator",
                "typeArguments": []
              }
            }
          },
          {
            "MutableReference": {
              "Vector": {
                "TypeParameter": 0
              }
            }
          }
        ],
        "return": []
      }
    }
  },
  "system_admin_cap": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "system_admin_cap",
    "friends": [],
    "structs": {
      "IotaSystemAdminCap": {
        "abilities": {
          "abilities": [
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "dummy_field",
            "type": "Bool"
          }
        ]
      }
    },
    "exposedFunctions": {}
  },
  "table": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "table",
    "friends": [],
    "structs": {
      "Table": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Copy",
                "Drop",
                "Store"
              ]
            },
            "isPhantom": true
          },
          {
            "constraints": {
              "abilities": [
                "Store"
              ]
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "size",
            "type": "U64"
          }
        ]
      }
    },
    "exposedFunctions": {
      "add": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "table",
                "name": "Table",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          },
          {
            "TypeParameter": 1
          }
        ],
        "return": []
      },
      "borrow": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "table",
                "name": "Table",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "Reference": {
              "TypeParameter": 1
            }
          }
        ]
      },
      "borrow_mut": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "table",
                "name": "Table",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "MutableReference": {
              "TypeParameter": 1
            }
          }
        ]
      },
      "contains": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "table",
                "name": "Table",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "destroy_empty": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "table",
              "name": "Table",
              "typeArguments": [
                {
                  "TypeParameter": 0
                },
                {
                  "TypeParameter": 1
                }
              ]
            }
          }
        ],
        "return": []
      },
      "drop": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Drop",
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "table",
              "name": "Table",
              "typeArguments": [
                {
                  "TypeParameter": 0
                },
                {
                  "TypeParameter": 1
                }
              ]
            }
          }
        ],
        "return": []
      },
      "is_empty": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "table",
                "name": "Table",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "length": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "table",
                "name": "Table",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "new": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "table",
              "name": "Table",
              "typeArguments": [
                {
                  "TypeParameter": 0
                },
                {
                  "TypeParameter": 1
                }
              ]
            }
          }
        ]
      },
      "remove": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop",
              "Store"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "table",
                "name": "Table",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "TypeParameter": 1
          }
        ]
      }
    }
  },
  "table_vec": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "table_vec",
    "friends": [],
    "structs": {
      "TableVec": {
        "abilities": {
          "abilities": [
            "Store"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Store"
              ]
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "contents",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "table",
                "name": "Table",
                "typeArguments": [
                  "U64",
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "borrow": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "table_vec",
                "name": "TableVec",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "U64"
        ],
        "return": [
          {
            "Reference": {
              "TypeParameter": 0
            }
          }
        ]
      },
      "borrow_mut": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "table_vec",
                "name": "TableVec",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "U64"
        ],
        "return": [
          {
            "MutableReference": {
              "TypeParameter": 0
            }
          }
        ]
      },
      "destroy_empty": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "table_vec",
              "name": "TableVec",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": []
      },
      "drop": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop",
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "table_vec",
              "name": "TableVec",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": []
      },
      "empty": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "table_vec",
              "name": "TableVec",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "is_empty": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "table_vec",
                "name": "TableVec",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "length": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "table_vec",
                "name": "TableVec",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "pop_back": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "table_vec",
                "name": "TableVec",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "TypeParameter": 0
          }
        ]
      },
      "push_back": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "table_vec",
                "name": "TableVec",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": []
      },
      "singleton": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "table_vec",
              "name": "TableVec",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "swap": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "table_vec",
                "name": "TableVec",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "U64",
          "U64"
        ],
        "return": []
      },
      "swap_remove": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "table_vec",
                "name": "TableVec",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "U64"
        ],
        "return": [
          {
            "TypeParameter": 0
          }
        ]
      }
    }
  },
  "timelock": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "timelock",
    "friends": [],
    "structs": {
      "TimeLock": {
        "abilities": {
          "abilities": [
            "Key"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Store"
              ]
            },
            "isPhantom": false
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "locked",
            "type": {
              "TypeParameter": 0
            }
          },
          {
            "name": "expiration_timestamp_ms",
            "type": "U64"
          },
          {
            "name": "label",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x1",
                      "module": "string",
                      "name": "String",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "expiration_timestamp_ms": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "timelock",
                "name": "TimeLock",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "is_labeled_with": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "timelock",
                "name": "TimeLock",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_locked": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "timelock",
                "name": "TimeLock",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_locked_with_clock": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "timelock",
                "name": "TimeLock",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "clock",
                "name": "Clock",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "join": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "timelock",
                "name": "TimeLock",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "balance",
                      "name": "Balance",
                      "typeArguments": [
                        {
                          "TypeParameter": 0
                        }
                      ]
                    }
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "timelock",
              "name": "TimeLock",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "balance",
                    "name": "Balance",
                    "typeArguments": [
                      {
                        "TypeParameter": 0
                      }
                    ]
                  }
                }
              ]
            }
          }
        ],
        "return": []
      },
      "join_vec": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "timelock",
                "name": "TimeLock",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "balance",
                      "name": "Balance",
                      "typeArguments": [
                        {
                          "TypeParameter": 0
                        }
                      ]
                    }
                  }
                ]
              }
            }
          },
          {
            "Vector": {
              "Struct": {
                "address": "0x2",
                "module": "timelock",
                "name": "TimeLock",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "balance",
                      "name": "Balance",
                      "typeArguments": [
                        {
                          "TypeParameter": 0
                        }
                      ]
                    }
                  }
                ]
              }
            }
          }
        ],
        "return": []
      },
      "label": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "timelock",
                "name": "TimeLock",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x1",
                    "module": "string",
                    "name": "String",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "lock": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          },
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "timelock",
              "name": "TimeLock",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "lock_and_transfer": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          },
          "Address",
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "lock_with_label": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "labeler",
                "name": "LabelerCap",
                "typeArguments": [
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          },
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "timelock",
              "name": "TimeLock",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "lock_with_label_and_transfer": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "labeler",
                "name": "LabelerCap",
                "typeArguments": [
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          },
          "Address",
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "locked": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "timelock",
                "name": "TimeLock",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "TypeParameter": 0
            }
          }
        ]
      },
      "remaining_time": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "timelock",
                "name": "TimeLock",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "remaining_time_with_clock": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "timelock",
                "name": "TimeLock",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "clock",
                "name": "Clock",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "split": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "timelock",
                "name": "TimeLock",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "balance",
                      "name": "Balance",
                      "typeArguments": [
                        {
                          "TypeParameter": 0
                        }
                      ]
                    }
                  }
                ]
              }
            }
          },
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "timelock",
              "name": "TimeLock",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "balance",
                    "name": "Balance",
                    "typeArguments": [
                      {
                        "TypeParameter": 0
                      }
                    ]
                  }
                }
              ]
            }
          }
        ]
      },
      "split_balance": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "timelock",
                "name": "TimeLock",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "balance",
                      "name": "Balance",
                      "typeArguments": [
                        {
                          "TypeParameter": 0
                        }
                      ]
                    }
                  }
                ]
              }
            }
          },
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "system_pack": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "system_admin_cap",
                "name": "IotaSystemAdminCap",
                "typeArguments": []
              }
            }
          },
          {
            "TypeParameter": 0
          },
          "U64",
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x1",
                    "module": "string",
                    "name": "String",
                    "typeArguments": []
                  }
                }
              ]
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "timelock",
              "name": "TimeLock",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "system_unpack": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "system_admin_cap",
                "name": "IotaSystemAdminCap",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "timelock",
              "name": "TimeLock",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": [
          {
            "TypeParameter": 0
          },
          "U64",
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x1",
                    "module": "string",
                    "name": "String",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "transfer_to_sender": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "timelock",
              "name": "TimeLock",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "type_name": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          }
        ]
      },
      "unlock": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "timelock",
              "name": "TimeLock",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "TypeParameter": 0
          }
        ]
      },
      "unlock_with_clock": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "timelock",
              "name": "TimeLock",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "clock",
                "name": "Clock",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "TypeParameter": 0
          }
        ]
      }
    }
  },
  "token": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "token",
    "friends": [],
    "structs": {
      "ActionRequest": {
        "abilities": {
          "abilities": []
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "name",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "name": "amount",
            "type": "U64"
          },
          {
            "name": "sender",
            "type": "Address"
          },
          {
            "name": "recipient",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  "Address"
                ]
              }
            }
          },
          {
            "name": "spent_balance",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "balance",
                      "name": "Balance",
                      "typeArguments": [
                        {
                          "TypeParameter": 0
                        }
                      ]
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "approvals",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "vec_set",
                "name": "VecSet",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x1",
                      "module": "type_name",
                      "name": "TypeName",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ]
      },
      "RuleKey": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "is_protected",
            "type": "Bool"
          }
        ]
      },
      "Token": {
        "abilities": {
          "abilities": [
            "Key"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "balance",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Balance",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ]
      },
      "TokenPolicy": {
        "abilities": {
          "abilities": [
            "Key"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "spent_balance",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Balance",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "name": "rules",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x1",
                      "module": "string",
                      "name": "String",
                      "typeArguments": []
                    }
                  },
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "vec_set",
                      "name": "VecSet",
                      "typeArguments": [
                        {
                          "Struct": {
                            "address": "0x1",
                            "module": "type_name",
                            "name": "TypeName",
                            "typeArguments": []
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          }
        ]
      },
      "TokenPolicyCap": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "for",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "TokenPolicyCreated": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "is_mutable",
            "type": "Bool"
          }
        ]
      }
    },
    "exposedFunctions": {
      "action": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "ActionRequest",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          }
        ]
      },
      "add_approval": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 1
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "ActionRequest",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "add_rule_config": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": [
              "Drop"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 1
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "TokenPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "TokenPolicyCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 2
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "add_rule_for_action": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "TokenPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "TokenPolicyCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "allow": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "TokenPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "TokenPolicyCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "amount": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "ActionRequest",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "approvals": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "ActionRequest",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "vec_set",
              "name": "VecSet",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x1",
                    "module": "type_name",
                    "name": "TypeName",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "burn": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "TreasuryCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "token",
              "name": "Token",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": []
      },
      "confirm_request": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "TokenPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "token",
              "name": "ActionRequest",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          },
          "U64",
          "Address",
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "Address"
              ]
            }
          }
        ]
      },
      "confirm_request_mut": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "TokenPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "token",
              "name": "ActionRequest",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          },
          "U64",
          "Address",
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "Address"
              ]
            }
          }
        ]
      },
      "confirm_with_policy_cap": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "TokenPolicyCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "token",
              "name": "ActionRequest",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          },
          "U64",
          "Address",
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "Address"
              ]
            }
          }
        ]
      },
      "confirm_with_treasury_cap": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "TreasuryCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "token",
              "name": "ActionRequest",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          },
          "U64",
          "Address",
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "Address"
              ]
            }
          }
        ]
      },
      "destroy_zero": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "token",
              "name": "Token",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": []
      },
      "disallow": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "TokenPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "TokenPolicyCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "flush": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "TokenPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "TreasuryCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "from_coin": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "token",
              "name": "Token",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "token",
              "name": "ActionRequest",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "from_coin_action": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          }
        ]
      },
      "has_rule_config": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "TokenPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "has_rule_config_with_type": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": []
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "TokenPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_allowed": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "TokenPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "join": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "Token",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "token",
              "name": "Token",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": []
      },
      "keep": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "token",
              "name": "Token",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "mint": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "TreasuryCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "token",
              "name": "Token",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "new_policy": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "TreasuryCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "token",
              "name": "TokenPolicy",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "token",
              "name": "TokenPolicyCap",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "new_request": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          },
          "U64",
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "Address"
              ]
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "balance",
                    "name": "Balance",
                    "typeArguments": [
                      {
                        "TypeParameter": 0
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "token",
              "name": "ActionRequest",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "recipient": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "ActionRequest",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "Address"
              ]
            }
          }
        ]
      },
      "remove_rule_config": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": []
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "TokenPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "TokenPolicyCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "TypeParameter": 2
          }
        ]
      },
      "remove_rule_for_action": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "TokenPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "TokenPolicyCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "rule_config": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": [
              "Drop"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 1
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "TokenPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "TypeParameter": 2
            }
          }
        ]
      },
      "rule_config_mut": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": [
              "Drop"
            ]
          },
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 1
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "TokenPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "TokenPolicyCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "MutableReference": {
              "TypeParameter": 2
            }
          }
        ]
      },
      "rules": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "TokenPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "vec_set",
              "name": "VecSet",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x1",
                    "module": "type_name",
                    "name": "TypeName",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "sender": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "ActionRequest",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "Address"
        ]
      },
      "share_policy": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "token",
              "name": "TokenPolicy",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": []
      },
      "spend": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "token",
              "name": "Token",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "token",
              "name": "ActionRequest",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "spend_action": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          }
        ]
      },
      "spent": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "ActionRequest",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "U64"
              ]
            }
          }
        ]
      },
      "spent_balance": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "TokenPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "split": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "Token",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "token",
              "name": "Token",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "to_coin": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "token",
              "name": "Token",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "token",
              "name": "ActionRequest",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "to_coin_action": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          }
        ]
      },
      "transfer": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "token",
              "name": "Token",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          "Address",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "token",
              "name": "ActionRequest",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "transfer_action": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          }
        ]
      },
      "value": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "token",
                "name": "Token",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "zero": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "token",
              "name": "Token",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      }
    }
  },
  "transfer": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "transfer",
    "friends": [],
    "structs": {
      "Receiving": {
        "abilities": {
          "abilities": [
            "Drop"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Key"
              ]
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "version",
            "type": "U64"
          }
        ]
      }
    },
    "exposedFunctions": {
      "freeze_object": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          }
        ],
        "return": []
      },
      "freeze_object_impl": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          }
        ],
        "return": []
      },
      "public_freeze_object": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          }
        ],
        "return": []
      },
      "public_receive": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "transfer",
              "name": "Receiving",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": [
          {
            "TypeParameter": 0
          }
        ]
      },
      "public_share_object": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          }
        ],
        "return": []
      },
      "public_transfer": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store",
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          },
          "Address"
        ],
        "return": []
      },
      "receive": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "transfer",
              "name": "Receiving",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": [
          {
            "TypeParameter": 0
          }
        ]
      },
      "receiving_object_id": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "transfer",
                "name": "Receiving",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      },
      "share_object": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          }
        ],
        "return": []
      },
      "share_object_impl": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          }
        ],
        "return": []
      },
      "transfer": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          },
          "Address"
        ],
        "return": []
      },
      "transfer_impl": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Key"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          },
          "Address"
        ],
        "return": []
      }
    }
  },
  "transfer_policy": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "transfer_policy",
    "friends": [],
    "structs": {
      "RuleKey": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Drop"
              ]
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "dummy_field",
            "type": "Bool"
          }
        ]
      },
      "TransferPolicy": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "balance",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Balance",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "iota",
                      "name": "IOTA",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "rules",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "vec_set",
                "name": "VecSet",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x1",
                      "module": "type_name",
                      "name": "TypeName",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ]
      },
      "TransferPolicyCap": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "policy_id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "TransferPolicyCreated": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "TransferPolicyDestroyed": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "TransferRequest": {
        "abilities": {
          "abilities": []
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": true
          }
        ],
        "fields": [
          {
            "name": "item",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "paid",
            "type": "U64"
          },
          {
            "name": "from",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "receipts",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "vec_set",
                "name": "VecSet",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x1",
                      "module": "type_name",
                      "name": "TypeName",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "add_receipt": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 1
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "transfer_policy",
                "name": "TransferRequest",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": []
      },
      "add_rule": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": [
              "Drop"
            ]
          },
          {
            "abilities": [
              "Drop",
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 1
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "transfer_policy",
                "name": "TransferPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "transfer_policy",
                "name": "TransferPolicyCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 2
          }
        ],
        "return": []
      },
      "add_to_balance": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 1
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "transfer_policy",
                "name": "TransferPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ],
        "return": []
      },
      "confirm_request": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "transfer_policy",
                "name": "TransferPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "transfer_policy",
              "name": "TransferRequest",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          },
          "U64",
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      },
      "default": {
        "visibility": "Private",
        "isEntry": true,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package",
                "name": "Publisher",
                "typeArguments": []
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "destroy_and_withdraw": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "transfer_policy",
              "name": "TransferPolicy",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "transfer_policy",
              "name": "TransferPolicyCap",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "from": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "transfer_policy",
                "name": "TransferRequest",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      },
      "get_rule": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": [
              "Drop"
            ]
          },
          {
            "abilities": [
              "Drop",
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 1
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "transfer_policy",
                "name": "TransferPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "TypeParameter": 2
            }
          }
        ]
      },
      "has_rule": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "transfer_policy",
                "name": "TransferPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "item": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "transfer_policy",
                "name": "TransferRequest",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      },
      "new": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "package",
                "name": "Publisher",
                "typeArguments": []
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "transfer_policy",
              "name": "TransferPolicy",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "transfer_policy",
              "name": "TransferPolicyCap",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "new_request": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          },
          "U64",
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "transfer_policy",
              "name": "TransferRequest",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "paid": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "transfer_policy",
                "name": "TransferRequest",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "remove_rule": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          },
          {
            "abilities": [
              "Drop"
            ]
          },
          {
            "abilities": [
              "Drop",
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "transfer_policy",
                "name": "TransferPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "transfer_policy",
                "name": "TransferPolicyCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": []
      },
      "rules": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "transfer_policy",
                "name": "TransferPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "vec_set",
                "name": "VecSet",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x1",
                      "module": "type_name",
                      "name": "TypeName",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ]
      },
      "uid": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "transfer_policy",
                "name": "TransferPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "uid_mut_as_owner": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "transfer_policy",
                "name": "TransferPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "transfer_policy",
                "name": "TransferPolicyCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "withdraw": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "transfer_policy",
                "name": "TransferPolicy",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "transfer_policy",
                "name": "TransferPolicyCap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "U64"
              ]
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      }
    }
  },
  "tx_context": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "tx_context",
    "friends": [],
    "structs": {
      "TxContext": {
        "abilities": {
          "abilities": [
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "sender",
            "type": "Address"
          },
          {
            "name": "tx_hash",
            "type": {
              "Vector": "U8"
            }
          },
          {
            "name": "epoch",
            "type": "U64"
          },
          {
            "name": "epoch_timestamp_ms",
            "type": "U64"
          },
          {
            "name": "ids_created",
            "type": "U64"
          }
        ]
      }
    },
    "exposedFunctions": {
      "digest": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ]
      },
      "epoch": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "epoch_timestamp_ms": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "fresh_object_address": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Address"
        ]
      },
      "gas_budget": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "gas_price": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "reference_gas_price": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "sender": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Address"
        ]
      },
      "sponsor": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "Address"
              ]
            }
          }
        ]
      }
    }
  },
  "types": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "types",
    "friends": [],
    "structs": {},
    "exposedFunctions": {
      "is_one_time_witness": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "TypeParameter": 0
            }
          }
        ],
        "return": [
          "Bool"
        ]
      }
    }
  },
  "url": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "url",
    "friends": [],
    "structs": {
      "Url": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "url",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "ascii",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "inner_url": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "url",
                "name": "Url",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "ascii",
              "name": "String",
              "typeArguments": []
            }
          }
        ]
      },
      "new_unsafe": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Struct": {
              "address": "0x1",
              "module": "ascii",
              "name": "String",
              "typeArguments": []
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "url",
              "name": "Url",
              "typeArguments": []
            }
          }
        ]
      },
      "new_unsafe_from_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Vector": "U8"
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "url",
              "name": "Url",
              "typeArguments": []
            }
          }
        ]
      },
      "update": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "url",
                "name": "Url",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "ascii",
              "name": "String",
              "typeArguments": []
            }
          }
        ],
        "return": []
      }
    }
  },
  "vdf": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "vdf",
    "friends": [],
    "structs": {},
    "exposedFunctions": {
      "hash_to_input": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ],
        "return": [
          {
            "Vector": "U8"
          }
        ]
      },
      "vdf_verify": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": "U8"
            }
          },
          {
            "Reference": {
              "Vector": "U8"
            }
          },
          {
            "Reference": {
              "Vector": "U8"
            }
          },
          "U64"
        ],
        "return": [
          "Bool"
        ]
      }
    }
  },
  "vec_map": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "vec_map",
    "friends": [],
    "structs": {
      "Entry": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Copy"
              ]
            },
            "isPhantom": false
          },
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": false
          }
        ],
        "fields": [
          {
            "name": "key",
            "type": {
              "TypeParameter": 0
            }
          },
          {
            "name": "value",
            "type": {
              "TypeParameter": 1
            }
          }
        ]
      },
      "VecMap": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Copy"
              ]
            },
            "isPhantom": false
          },
          {
            "constraints": {
              "abilities": []
            },
            "isPhantom": false
          }
        ],
        "fields": [
          {
            "name": "contents",
            "type": {
              "Vector": {
                "Struct": {
                  "address": "0x2",
                  "module": "vec_map",
                  "name": "Entry",
                  "typeArguments": [
                    {
                      "TypeParameter": 0
                    },
                    {
                      "TypeParameter": 1
                    }
                  ]
                }
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "contains": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy"
            ]
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "TypeParameter": 0
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "destroy_empty": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy"
            ]
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "vec_map",
              "name": "VecMap",
              "typeArguments": [
                {
                  "TypeParameter": 0
                },
                {
                  "TypeParameter": 1
                }
              ]
            }
          }
        ],
        "return": []
      },
      "empty": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy"
            ]
          },
          {
            "abilities": []
          }
        ],
        "parameters": [],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "vec_map",
              "name": "VecMap",
              "typeArguments": [
                {
                  "TypeParameter": 0
                },
                {
                  "TypeParameter": 1
                }
              ]
            }
          }
        ]
      },
      "from_keys_values": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy"
            ]
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Vector": {
              "TypeParameter": 0
            }
          },
          {
            "Vector": {
              "TypeParameter": 1
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "vec_map",
              "name": "VecMap",
              "typeArguments": [
                {
                  "TypeParameter": 0
                },
                {
                  "TypeParameter": 1
                }
              ]
            }
          }
        ]
      },
      "get": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy"
            ]
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "TypeParameter": 0
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "TypeParameter": 1
            }
          }
        ]
      },
      "get_entry_by_idx": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy"
            ]
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          "U64"
        ],
        "return": [
          {
            "Reference": {
              "TypeParameter": 0
            }
          },
          {
            "Reference": {
              "TypeParameter": 1
            }
          }
        ]
      },
      "get_entry_by_idx_mut": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy"
            ]
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          "U64"
        ],
        "return": [
          {
            "Reference": {
              "TypeParameter": 0
            }
          },
          {
            "MutableReference": {
              "TypeParameter": 1
            }
          }
        ]
      },
      "get_idx": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy"
            ]
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "TypeParameter": 0
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "get_idx_opt": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy"
            ]
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "TypeParameter": 0
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "U64"
              ]
            }
          }
        ]
      },
      "get_mut": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy"
            ]
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "TypeParameter": 0
            }
          }
        ],
        "return": [
          {
            "MutableReference": {
              "TypeParameter": 1
            }
          }
        ]
      },
      "insert": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy"
            ]
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          },
          {
            "TypeParameter": 1
          }
        ],
        "return": []
      },
      "into_keys_values": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy"
            ]
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "vec_map",
              "name": "VecMap",
              "typeArguments": [
                {
                  "TypeParameter": 0
                },
                {
                  "TypeParameter": 1
                }
              ]
            }
          }
        ],
        "return": [
          {
            "Vector": {
              "TypeParameter": 0
            }
          },
          {
            "Vector": {
              "TypeParameter": 1
            }
          }
        ]
      },
      "is_empty": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy"
            ]
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "keys": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy"
            ]
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Vector": {
              "TypeParameter": 0
            }
          }
        ]
      },
      "pop": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy"
            ]
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "TypeParameter": 0
          },
          {
            "TypeParameter": 1
          }
        ]
      },
      "remove": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy"
            ]
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "TypeParameter": 0
            }
          }
        ],
        "return": [
          {
            "TypeParameter": 0
          },
          {
            "TypeParameter": 1
          }
        ]
      },
      "remove_entry_by_idx": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy"
            ]
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          "U64"
        ],
        "return": [
          {
            "TypeParameter": 0
          },
          {
            "TypeParameter": 1
          }
        ]
      },
      "size": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy"
            ]
          },
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "try_get": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy"
            ]
          },
          {
            "abilities": [
              "Copy"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  },
                  {
                    "TypeParameter": 1
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "TypeParameter": 0
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "TypeParameter": 1
                }
              ]
            }
          }
        ]
      }
    }
  },
  "vec_set": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "vec_set",
    "friends": [],
    "structs": {
      "VecSet": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [
          {
            "constraints": {
              "abilities": [
                "Copy",
                "Drop"
              ]
            },
            "isPhantom": false
          }
        ],
        "fields": [
          {
            "name": "contents",
            "type": {
              "Vector": {
                "TypeParameter": 0
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "contains": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "vec_set",
                "name": "VecSet",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "TypeParameter": 0
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "empty": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop"
            ]
          }
        ],
        "parameters": [],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "vec_set",
              "name": "VecSet",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "from_keys": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "Vector": {
              "TypeParameter": 0
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "vec_set",
              "name": "VecSet",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "insert": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "vec_set",
                "name": "VecSet",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "TypeParameter": 0
          }
        ],
        "return": []
      },
      "into_keys": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "vec_set",
              "name": "VecSet",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ],
        "return": [
          {
            "Vector": {
              "TypeParameter": 0
            }
          }
        ]
      },
      "is_empty": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "vec_set",
                "name": "VecSet",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "keys": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "vec_set",
                "name": "VecSet",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": {
                "TypeParameter": 0
              }
            }
          }
        ]
      },
      "remove": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "vec_set",
                "name": "VecSet",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          },
          {
            "Reference": {
              "TypeParameter": 0
            }
          }
        ],
        "return": []
      },
      "singleton": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "TypeParameter": 0
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "vec_set",
              "name": "VecSet",
              "typeArguments": [
                {
                  "TypeParameter": 0
                }
              ]
            }
          }
        ]
      },
      "size": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Copy",
              "Drop"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "vec_set",
                "name": "VecSet",
                "typeArguments": [
                  {
                    "TypeParameter": 0
                  }
                ]
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      }
    }
  },
  "versioned": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "versioned",
    "friends": [],
    "structs": {
      "VersionChangeCap": {
        "abilities": {
          "abilities": []
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "versioned_id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "old_version",
            "type": "U64"
          }
        ]
      },
      "Versioned": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "version",
            "type": "U64"
          }
        ]
      }
    },
    "exposedFunctions": {
      "create": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          "U64",
          {
            "TypeParameter": 0
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "versioned",
              "name": "Versioned",
              "typeArguments": []
            }
          }
        ]
      },
      "destroy": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "versioned",
              "name": "Versioned",
              "typeArguments": []
            }
          }
        ],
        "return": [
          {
            "TypeParameter": 0
          }
        ]
      },
      "load_value": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "versioned",
                "name": "Versioned",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "TypeParameter": 0
            }
          }
        ]
      },
      "load_value_mut": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "versioned",
                "name": "Versioned",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "MutableReference": {
              "TypeParameter": 0
            }
          }
        ]
      },
      "remove_value_for_upgrade": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "versioned",
                "name": "Versioned",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "TypeParameter": 0
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "versioned",
              "name": "VersionChangeCap",
              "typeArguments": []
            }
          }
        ]
      },
      "upgrade": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": [
              "Store"
            ]
          }
        ],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "versioned",
                "name": "Versioned",
                "typeArguments": []
              }
            }
          },
          "U64",
          {
            "TypeParameter": 0
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "versioned",
              "name": "VersionChangeCap",
              "typeArguments": []
            }
          }
        ],
        "return": []
      },
      "version": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "versioned",
                "name": "Versioned",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      }
    }
  },
  "zklogin_verified_id": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "zklogin_verified_id",
    "friends": [],
    "structs": {
      "VerifiedID": {
        "abilities": {
          "abilities": [
            "Key"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "owner",
            "type": "Address"
          },
          {
            "name": "key_claim_name",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "name": "key_claim_value",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "name": "issuer",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "name": "audience",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "audience": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "zklogin_verified_id",
                "name": "VerifiedID",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "check_zklogin_id": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          "Address",
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          "U256"
        ],
        "return": [
          "Bool"
        ]
      },
      "delete": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "zklogin_verified_id",
              "name": "VerifiedID",
              "typeArguments": []
            }
          }
        ],
        "return": []
      },
      "issuer": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "zklogin_verified_id",
                "name": "VerifiedID",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "key_claim_name": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "zklogin_verified_id",
                "name": "VerifiedID",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "key_claim_value": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "zklogin_verified_id",
                "name": "VerifiedID",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "owner": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "zklogin_verified_id",
                "name": "VerifiedID",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Address"
        ]
      },
      "verify_zklogin_id": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          },
          "U256",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      }
    }
  },
  "zklogin_verified_issuer": {
    "fileFormatVersion": 6,
    "address": "0x2",
    "name": "zklogin_verified_issuer",
    "friends": [],
    "structs": {
      "VerifiedIssuer": {
        "abilities": {
          "abilities": [
            "Key"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "owner",
            "type": "Address"
          },
          {
            "name": "issuer",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "check_zklogin_issuer": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          "Address",
          "U256",
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "delete": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "zklogin_verified_issuer",
              "name": "VerifiedIssuer",
              "typeArguments": []
            }
          }
        ],
        "return": []
      },
      "issuer": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "zklogin_verified_issuer",
                "name": "VerifiedIssuer",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "owner": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "zklogin_verified_issuer",
                "name": "VerifiedIssuer",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Address"
        ]
      },
      "verify_zklogin_issuer": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          "U256",
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      }
    }
  }
}