[
  {
    "abi": {
      "address": "0x3",
      "name": "token",
      "friends": [],
      "exposed_functions": [
        {
          "name": "merge",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x3::token::Token",
            "0x3::token::Token"
          ],
          "return": []
        },
        {
          "name": "burn",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "0x1::string::String",
            "0x1::string::String",
            "u64",
            "u64"
          ],
          "return": []
        },
        {
          "name": "transfer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x3::token::TokenId",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "balance_of",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x3::token::TokenId"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "burn_by_creator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "0x1::string::String",
            "0x1::string::String",
            "u64",
            "u64"
          ],
          "return": []
        },
        {
          "name": "check_collection_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::string::String"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "check_tokendata_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "create_collection",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::string::String",
            "0x1::string::String",
            "0x1::string::String",
            "u64",
            "vector<bool>"
          ],
          "return": []
        },
        {
          "name": "create_collection_mutability_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&vector<bool>"
          ],
          "return": [
            "0x3::token::CollectionMutabilityConfig"
          ]
        },
        {
          "name": "create_collection_script",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::string::String",
            "0x1::string::String",
            "0x1::string::String",
            "u64",
            "vector<bool>"
          ],
          "return": []
        },
        {
          "name": "create_royalty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64",
            "address"
          ],
          "return": [
            "0x3::token::Royalty"
          ]
        },
        {
          "name": "create_token_data_id",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": [
            "0x3::token::TokenDataId"
          ]
        },
        {
          "name": "create_token_id",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x3::token::TokenDataId",
            "u64"
          ],
          "return": [
            "0x3::token::TokenId"
          ]
        },
        {
          "name": "create_token_id_raw",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::string::String",
            "0x1::string::String",
            "u64"
          ],
          "return": [
            "0x3::token::TokenId"
          ]
        },
        {
          "name": "create_token_mutability_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&vector<bool>"
          ],
          "return": [
            "0x3::token::TokenMutabilityConfig"
          ]
        },
        {
          "name": "create_token_script",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::string::String",
            "0x1::string::String",
            "0x1::string::String",
            "u64",
            "u64",
            "0x1::string::String",
            "address",
            "u64",
            "u64",
            "vector<bool>",
            "vector<0x1::string::String>",
            "vector<vector<u8>>",
            "vector<0x1::string::String>"
          ],
          "return": []
        },
        {
          "name": "create_tokendata",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::string::String",
            "0x1::string::String",
            "0x1::string::String",
            "u64",
            "0x1::string::String",
            "address",
            "u64",
            "u64",
            "0x3::token::TokenMutabilityConfig",
            "vector<0x1::string::String>",
            "vector<vector<u8>>",
            "vector<0x1::string::String>"
          ],
          "return": [
            "0x3::token::TokenDataId"
          ]
        },
        {
          "name": "create_withdraw_capability",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x3::token::TokenId",
            "u64",
            "u64"
          ],
          "return": [
            "0x3::token::WithdrawCapability"
          ]
        },
        {
          "name": "token_id",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::token::Token"
          ],
          "return": [
            "&0x3::token::TokenId"
          ]
        },
        {
          "name": "deposit_token",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x3::token::Token"
          ],
          "return": []
        },
        {
          "name": "direct_deposit_with_opt_in",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x3::token::Token"
          ],
          "return": []
        },
        {
          "name": "direct_transfer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer",
            "0x3::token::TokenId",
            "u64"
          ],
          "return": []
        },
        {
          "name": "direct_transfer_script",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer",
            "address",
            "0x1::string::String",
            "0x1::string::String",
            "u64",
            "u64"
          ],
          "return": []
        },
        {
          "name": "get_collection_description",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::string::String"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "get_collection_maximum",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::string::String"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_collection_mutability_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::string::String"
          ],
          "return": [
            "0x3::token::CollectionMutabilityConfig"
          ]
        },
        {
          "name": "get_collection_mutability_description",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::token::CollectionMutabilityConfig"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "get_collection_mutability_maximum",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::token::CollectionMutabilityConfig"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "get_collection_mutability_uri",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::token::CollectionMutabilityConfig"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "get_collection_supply",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::string::String"
          ],
          "return": [
            "0x1::option::Option<u64>"
          ]
        },
        {
          "name": "get_collection_uri",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::string::String"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "get_direct_transfer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "get_property_map",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x3::token::TokenId"
          ],
          "return": [
            "0x3::property_map::PropertyMap"
          ]
        },
        {
          "name": "get_royalty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x3::token::TokenId"
          ],
          "return": [
            "0x3::token::Royalty"
          ]
        },
        {
          "name": "get_royalty_denominator",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::token::Royalty"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_royalty_numerator",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::token::Royalty"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_royalty_payee",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::token::Royalty"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_token_amount",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::token::Token"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_token_data_id_fields",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::token::TokenDataId"
          ],
          "return": [
            "address",
            "0x1::string::String",
            "0x1::string::String"
          ]
        },
        {
          "name": "get_token_id",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::token::Token"
          ],
          "return": [
            "0x3::token::TokenId"
          ]
        },
        {
          "name": "get_token_id_fields",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::token::TokenId"
          ],
          "return": [
            "address",
            "0x1::string::String",
            "0x1::string::String",
            "u64"
          ]
        },
        {
          "name": "get_token_mutability_default_properties",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::token::TokenMutabilityConfig"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "get_token_mutability_description",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::token::TokenMutabilityConfig"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "get_token_mutability_maximum",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::token::TokenMutabilityConfig"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "get_token_mutability_royalty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::token::TokenMutabilityConfig"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "get_token_mutability_uri",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::token::TokenMutabilityConfig"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "get_token_supply",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x3::token::TokenDataId"
          ],
          "return": [
            "0x1::option::Option<u64>"
          ]
        },
        {
          "name": "get_tokendata_description",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x3::token::TokenDataId"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "get_tokendata_id",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x3::token::TokenId"
          ],
          "return": [
            "0x3::token::TokenDataId"
          ]
        },
        {
          "name": "get_tokendata_largest_property_version",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x3::token::TokenDataId"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_tokendata_maximum",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x3::token::TokenDataId"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_tokendata_mutability_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x3::token::TokenDataId"
          ],
          "return": [
            "0x3::token::TokenMutabilityConfig"
          ]
        },
        {
          "name": "get_tokendata_royalty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x3::token::TokenDataId"
          ],
          "return": [
            "0x3::token::Royalty"
          ]
        },
        {
          "name": "get_tokendata_uri",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x3::token::TokenDataId"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "has_token_store",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "initialize_token",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x3::token::TokenId"
          ],
          "return": []
        },
        {
          "name": "initialize_token_script",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "initialize_token_store",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "mint_script",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "0x1::string::String",
            "0x1::string::String",
            "u64"
          ],
          "return": []
        },
        {
          "name": "mint_token",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x3::token::TokenDataId",
            "u64"
          ],
          "return": [
            "0x3::token::TokenId"
          ]
        },
        {
          "name": "mint_token_to",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "0x3::token::TokenDataId",
            "u64"
          ],
          "return": []
        },
        {
          "name": "mutate_collection_description",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "mutate_collection_maximum",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::string::String",
            "u64"
          ],
          "return": []
        },
        {
          "name": "mutate_collection_uri",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "mutate_one_token",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "0x3::token::TokenId",
            "vector<0x1::string::String>",
            "vector<vector<u8>>",
            "vector<0x1::string::String>"
          ],
          "return": [
            "0x3::token::TokenId"
          ]
        },
        {
          "name": "mutate_token_properties",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address",
            "0x1::string::String",
            "0x1::string::String",
            "u64",
            "u64",
            "vector<0x1::string::String>",
            "vector<vector<u8>>",
            "vector<0x1::string::String>"
          ],
          "return": []
        },
        {
          "name": "mutate_tokendata_description",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x3::token::TokenDataId",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "mutate_tokendata_maximum",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x3::token::TokenDataId",
            "u64"
          ],
          "return": []
        },
        {
          "name": "mutate_tokendata_property",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x3::token::TokenDataId",
            "vector<0x1::string::String>",
            "vector<vector<u8>>",
            "vector<0x1::string::String>"
          ],
          "return": []
        },
        {
          "name": "mutate_tokendata_royalty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x3::token::TokenDataId",
            "0x3::token::Royalty"
          ],
          "return": []
        },
        {
          "name": "mutate_tokendata_uri",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x3::token::TokenDataId",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "opt_in_direct_transfer",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "bool"
          ],
          "return": []
        },
        {
          "name": "partial_withdraw_with_capability",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x3::token::WithdrawCapability",
            "u64"
          ],
          "return": [
            "0x3::token::Token",
            "0x1::option::Option<0x3::token::WithdrawCapability>"
          ]
        },
        {
          "name": "split",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x3::token::Token",
            "u64"
          ],
          "return": [
            "0x3::token::Token"
          ]
        },
        {
          "name": "transfer_with_opt_in",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "0x1::string::String",
            "0x1::string::String",
            "u64",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "withdraw_token",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x3::token::TokenId",
            "u64"
          ],
          "return": [
            "0x3::token::Token"
          ]
        },
        {
          "name": "withdraw_with_capability",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x3::token::WithdrawCapability"
          ],
          "return": [
            "0x3::token::Token"
          ]
        }
      ],
      "structs": [
        {
          "name": "Deposit",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "DepositEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "Withdraw",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "WithdrawEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "Burn",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "BurnToken",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "BurnTokenEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "CollectionData",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "description",
              "type": "0x1::string::String"
            },
            {
              "name": "name",
              "type": "0x1::string::String"
            },
            {
              "name": "uri",
              "type": "0x1::string::String"
            },
            {
              "name": "supply",
              "type": "u64"
            },
            {
              "name": "maximum",
              "type": "u64"
            },
            {
              "name": "mutability_config",
              "type": "0x3::token::CollectionMutabilityConfig"
            }
          ],
          "variants": []
        },
        {
          "name": "CollectionMutabilityConfig",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "description",
              "type": "bool"
            },
            {
              "name": "uri",
              "type": "bool"
            },
            {
              "name": "maximum",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "Collections",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "collection_data",
              "type": "0x1::table::Table<0x1::string::String, 0x3::token::CollectionData>"
            },
            {
              "name": "token_data",
              "type": "0x1::table::Table<0x3::token::TokenDataId, 0x3::token::TokenData>"
            },
            {
              "name": "create_collection_events",
              "type": "0x1::event::EventHandle<0x3::token::CreateCollectionEvent>"
            },
            {
              "name": "create_token_data_events",
              "type": "0x1::event::EventHandle<0x3::token::CreateTokenDataEvent>"
            },
            {
              "name": "mint_token_events",
              "type": "0x1::event::EventHandle<0x3::token::MintTokenEvent>"
            }
          ],
          "variants": []
        },
        {
          "name": "CreateCollection",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creator",
              "type": "address"
            },
            {
              "name": "collection_name",
              "type": "0x1::string::String"
            },
            {
              "name": "uri",
              "type": "0x1::string::String"
            },
            {
              "name": "description",
              "type": "0x1::string::String"
            },
            {
              "name": "maximum",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "CreateCollectionEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creator",
              "type": "address"
            },
            {
              "name": "collection_name",
              "type": "0x1::string::String"
            },
            {
              "name": "uri",
              "type": "0x1::string::String"
            },
            {
              "name": "description",
              "type": "0x1::string::String"
            },
            {
              "name": "maximum",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "CreateTokenData",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "id",
              "type": "0x3::token::TokenDataId"
            },
            {
              "name": "description",
              "type": "0x1::string::String"
            },
            {
              "name": "maximum",
              "type": "u64"
            },
            {
              "name": "uri",
              "type": "0x1::string::String"
            },
            {
              "name": "royalty_payee_address",
              "type": "address"
            },
            {
              "name": "royalty_points_denominator",
              "type": "u64"
            },
            {
              "name": "royalty_points_numerator",
              "type": "u64"
            },
            {
              "name": "name",
              "type": "0x1::string::String"
            },
            {
              "name": "mutability_config",
              "type": "0x3::token::TokenMutabilityConfig"
            },
            {
              "name": "property_keys",
              "type": "vector<0x1::string::String>"
            },
            {
              "name": "property_values",
              "type": "vector<vector<u8>>"
            },
            {
              "name": "property_types",
              "type": "vector<0x1::string::String>"
            }
          ],
          "variants": []
        },
        {
          "name": "CreateTokenDataEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "id",
              "type": "0x3::token::TokenDataId"
            },
            {
              "name": "description",
              "type": "0x1::string::String"
            },
            {
              "name": "maximum",
              "type": "u64"
            },
            {
              "name": "uri",
              "type": "0x1::string::String"
            },
            {
              "name": "royalty_payee_address",
              "type": "address"
            },
            {
              "name": "royalty_points_denominator",
              "type": "u64"
            },
            {
              "name": "royalty_points_numerator",
              "type": "u64"
            },
            {
              "name": "name",
              "type": "0x1::string::String"
            },
            {
              "name": "mutability_config",
              "type": "0x3::token::TokenMutabilityConfig"
            },
            {
              "name": "property_keys",
              "type": "vector<0x1::string::String>"
            },
            {
              "name": "property_values",
              "type": "vector<vector<u8>>"
            },
            {
              "name": "property_types",
              "type": "vector<0x1::string::String>"
            }
          ],
          "variants": []
        },
        {
          "name": "Mint",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creator",
              "type": "address"
            },
            {
              "name": "id",
              "type": "0x3::token::TokenDataId"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "MintToken",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "id",
              "type": "0x3::token::TokenDataId"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "MintTokenEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "id",
              "type": "0x3::token::TokenDataId"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "MutatePropertyMap",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "old_id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "new_id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "keys",
              "type": "vector<0x1::string::String>"
            },
            {
              "name": "values",
              "type": "vector<vector<u8>>"
            },
            {
              "name": "types",
              "type": "vector<0x1::string::String>"
            }
          ],
          "variants": []
        },
        {
          "name": "MutateTokenPropertyMap",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "old_id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "new_id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "keys",
              "type": "vector<0x1::string::String>"
            },
            {
              "name": "values",
              "type": "vector<vector<u8>>"
            },
            {
              "name": "types",
              "type": "vector<0x1::string::String>"
            }
          ],
          "variants": []
        },
        {
          "name": "MutateTokenPropertyMapEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "old_id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "new_id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "keys",
              "type": "vector<0x1::string::String>"
            },
            {
              "name": "values",
              "type": "vector<vector<u8>>"
            },
            {
              "name": "types",
              "type": "vector<0x1::string::String>"
            }
          ],
          "variants": []
        },
        {
          "name": "Royalty",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "royalty_points_numerator",
              "type": "u64"
            },
            {
              "name": "royalty_points_denominator",
              "type": "u64"
            },
            {
              "name": "payee_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "Token",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "amount",
              "type": "u64"
            },
            {
              "name": "token_properties",
              "type": "0x3::property_map::PropertyMap"
            }
          ],
          "variants": []
        },
        {
          "name": "TokenData",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "maximum",
              "type": "u64"
            },
            {
              "name": "largest_property_version",
              "type": "u64"
            },
            {
              "name": "supply",
              "type": "u64"
            },
            {
              "name": "uri",
              "type": "0x1::string::String"
            },
            {
              "name": "royalty",
              "type": "0x3::token::Royalty"
            },
            {
              "name": "name",
              "type": "0x1::string::String"
            },
            {
              "name": "description",
              "type": "0x1::string::String"
            },
            {
              "name": "default_properties",
              "type": "0x3::property_map::PropertyMap"
            },
            {
              "name": "mutability_config",
              "type": "0x3::token::TokenMutabilityConfig"
            }
          ],
          "variants": []
        },
        {
          "name": "TokenDataCreation",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creator",
              "type": "address"
            },
            {
              "name": "id",
              "type": "0x3::token::TokenDataId"
            },
            {
              "name": "description",
              "type": "0x1::string::String"
            },
            {
              "name": "maximum",
              "type": "u64"
            },
            {
              "name": "uri",
              "type": "0x1::string::String"
            },
            {
              "name": "royalty_payee_address",
              "type": "address"
            },
            {
              "name": "royalty_points_denominator",
              "type": "u64"
            },
            {
              "name": "royalty_points_numerator",
              "type": "u64"
            },
            {
              "name": "name",
              "type": "0x1::string::String"
            },
            {
              "name": "mutability_config",
              "type": "0x3::token::TokenMutabilityConfig"
            },
            {
              "name": "property_keys",
              "type": "vector<0x1::string::String>"
            },
            {
              "name": "property_values",
              "type": "vector<vector<u8>>"
            },
            {
              "name": "property_types",
              "type": "vector<0x1::string::String>"
            }
          ],
          "variants": []
        },
        {
          "name": "TokenDataId",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creator",
              "type": "address"
            },
            {
              "name": "collection",
              "type": "0x1::string::String"
            },
            {
              "name": "name",
              "type": "0x1::string::String"
            }
          ],
          "variants": []
        },
        {
          "name": "TokenDeposit",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "TokenId",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "token_data_id",
              "type": "0x3::token::TokenDataId"
            },
            {
              "name": "property_version",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "TokenMutabilityConfig",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "maximum",
              "type": "bool"
            },
            {
              "name": "uri",
              "type": "bool"
            },
            {
              "name": "royalty",
              "type": "bool"
            },
            {
              "name": "description",
              "type": "bool"
            },
            {
              "name": "properties",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "TokenStore",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "tokens",
              "type": "0x1::table::Table<0x3::token::TokenId, 0x3::token::Token>"
            },
            {
              "name": "direct_transfer",
              "type": "bool"
            },
            {
              "name": "deposit_events",
              "type": "0x1::event::EventHandle<0x3::token::DepositEvent>"
            },
            {
              "name": "withdraw_events",
              "type": "0x1::event::EventHandle<0x3::token::WithdrawEvent>"
            },
            {
              "name": "burn_events",
              "type": "0x1::event::EventHandle<0x3::token::BurnTokenEvent>"
            },
            {
              "name": "mutate_token_property_events",
              "type": "0x1::event::EventHandle<0x3::token::MutateTokenPropertyMapEvent>"
            }
          ],
          "variants": []
        },
        {
          "name": "TokenWithdraw",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "WithdrawCapability",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "token_owner",
              "type": "address"
            },
            {
              "name": "token_id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "amount",
              "type": "u64"
            },
            {
              "name": "expiration_sec",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x3",
      "name": "property_map",
      "friends": [],
      "exposed_functions": [
        {
          "name": "remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x3::property_map::PropertyMap",
            "&0x1::string::String"
          ],
          "return": [
            "0x1::string::String",
            "0x3::property_map::PropertyValue"
          ]
        },
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<0x1::string::String>",
            "vector<vector<u8>>",
            "vector<0x1::string::String>"
          ],
          "return": [
            "0x3::property_map::PropertyMap"
          ]
        },
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::property_map::PropertyMap",
            "&0x1::string::String"
          ],
          "return": [
            "&0x3::property_map::PropertyValue"
          ]
        },
        {
          "name": "empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x3::property_map::PropertyMap"
          ]
        },
        {
          "name": "length",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::property_map::PropertyMap"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x3::property_map::PropertyMap",
            "0x1::string::String",
            "0x3::property_map::PropertyValue"
          ],
          "return": []
        },
        {
          "name": "keys",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::property_map::PropertyMap"
          ],
          "return": [
            "vector<0x1::string::String>"
          ]
        },
        {
          "name": "values",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::property_map::PropertyMap"
          ],
          "return": [
            "vector<vector<u8>>"
          ]
        },
        {
          "name": "contains_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::property_map::PropertyMap",
            "&0x1::string::String"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "borrow_type",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::property_map::PropertyValue"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "borrow_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::property_map::PropertyValue"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "create_property_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy"
              ]
            }
          ],
          "params": [
            "&T0"
          ],
          "return": [
            "0x3::property_map::PropertyValue"
          ]
        },
        {
          "name": "create_property_value_raw",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>",
            "0x1::string::String"
          ],
          "return": [
            "0x3::property_map::PropertyValue"
          ]
        },
        {
          "name": "types",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::property_map::PropertyMap"
          ],
          "return": [
            "vector<0x1::string::String>"
          ]
        },
        {
          "name": "new_with_key_and_property_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<0x1::string::String>",
            "vector<0x3::property_map::PropertyValue>"
          ],
          "return": [
            "0x3::property_map::PropertyMap"
          ]
        },
        {
          "name": "read_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::property_map::PropertyMap",
            "&0x1::string::String"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "read_bool",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::property_map::PropertyMap",
            "&0x1::string::String"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "read_string",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::property_map::PropertyMap",
            "&0x1::string::String"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "read_u128",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::property_map::PropertyMap",
            "&0x1::string::String"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "read_u64",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::property_map::PropertyMap",
            "&0x1::string::String"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "read_u8",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x3::property_map::PropertyMap",
            "&0x1::string::String"
          ],
          "return": [
            "u8"
          ]
        },
        {
          "name": "update_property_map",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x3::property_map::PropertyMap",
            "vector<0x1::string::String>",
            "vector<vector<u8>>",
            "vector<0x1::string::String>"
          ],
          "return": []
        },
        {
          "name": "update_property_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x3::property_map::PropertyMap",
            "&0x1::string::String",
            "0x3::property_map::PropertyValue"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "PropertyMap",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "map",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, 0x3::property_map::PropertyValue>"
            }
          ],
          "variants": []
        },
        {
          "name": "PropertyValue",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "value",
              "type": "vector<u8>"
            },
            {
              "name": "type",
              "type": "0x1::string::String"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x3",
      "name": "token_coin_swap",
      "friends": [],
      "exposed_functions": [
        {
          "name": "cancel_token_listing",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "0x3::token::TokenId",
            "u64"
          ],
          "return": []
        },
        {
          "name": "deposit_token_to_escrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x3::token::TokenId",
            "0x3::token::Token",
            "u64"
          ],
          "return": []
        },
        {
          "name": "does_listing_exist",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address",
            "0x3::token::TokenId"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "exchange_coin_for_token",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "u64",
            "address",
            "address",
            "0x1::string::String",
            "0x1::string::String",
            "u64",
            "u64"
          ],
          "return": []
        },
        {
          "name": "list_token_for_swap",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "address",
            "0x1::string::String",
            "0x1::string::String",
            "u64",
            "u64",
            "u64",
            "u64"
          ],
          "return": []
        },
        {
          "name": "withdraw_token_from_escrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x3::token::TokenId",
            "u64"
          ],
          "return": [
            "0x3::token::Token"
          ]
        }
      ],
      "structs": [
        {
          "name": "TokenCoinSwap",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "token_amount",
              "type": "u64"
            },
            {
              "name": "min_price_per_token",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "TokenEscrow",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "token",
              "type": "0x3::token::Token"
            },
            {
              "name": "locked_until_secs",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "TokenListingEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "token_id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "amount",
              "type": "u64"
            },
            {
              "name": "min_price",
              "type": "u64"
            },
            {
              "name": "locked_until_secs",
              "type": "u64"
            },
            {
              "name": "coin_type_info",
              "type": "0x1::type_info::TypeInfo"
            }
          ],
          "variants": []
        },
        {
          "name": "TokenListings",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "listings",
              "type": "0x1::table::Table<0x3::token::TokenId, 0x3::token_coin_swap::TokenCoinSwap<T0>>"
            },
            {
              "name": "listing_events",
              "type": "0x1::event::EventHandle<0x3::token_coin_swap::TokenListingEvent>"
            },
            {
              "name": "swap_events",
              "type": "0x1::event::EventHandle<0x3::token_coin_swap::TokenSwapEvent>"
            }
          ],
          "variants": []
        },
        {
          "name": "TokenStoreEscrow",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "token_escrows",
              "type": "0x1::table::Table<0x3::token::TokenId, 0x3::token_coin_swap::TokenEscrow>"
            }
          ],
          "variants": []
        },
        {
          "name": "TokenSwapEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "token_id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "token_buyer",
              "type": "address"
            },
            {
              "name": "token_amount",
              "type": "u64"
            },
            {
              "name": "coin_amount",
              "type": "u64"
            },
            {
              "name": "coin_type_info",
              "type": "0x1::type_info::TypeInfo"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x3",
      "name": "token_transfers",
      "friends": [],
      "exposed_functions": [
        {
          "name": "cancel_offer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "0x3::token::TokenId"
          ],
          "return": []
        },
        {
          "name": "cancel_offer_script",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "signer",
            "address",
            "address",
            "0x1::string::String",
            "0x1::string::String",
            "u64"
          ],
          "return": []
        },
        {
          "name": "claim",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "0x3::token::TokenId"
          ],
          "return": []
        },
        {
          "name": "claim_script",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "signer",
            "address",
            "address",
            "0x1::string::String",
            "0x1::string::String",
            "u64"
          ],
          "return": []
        },
        {
          "name": "offer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "0x3::token::TokenId",
            "u64"
          ],
          "return": []
        },
        {
          "name": "offer_script",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "signer",
            "address",
            "address",
            "0x1::string::String",
            "0x1::string::String",
            "u64",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "CancelOffer",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "to_address",
              "type": "address"
            },
            {
              "name": "token_id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "Claim",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "to_address",
              "type": "address"
            },
            {
              "name": "token_id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "Offer",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "to_address",
              "type": "address"
            },
            {
              "name": "token_id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "PendingClaims",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pending_claims",
              "type": "0x1::table::Table<0x3::token_transfers::TokenOfferId, 0x3::token::Token>"
            },
            {
              "name": "offer_events",
              "type": "0x1::event::EventHandle<0x3::token_transfers::TokenOfferEvent>"
            },
            {
              "name": "cancel_offer_events",
              "type": "0x1::event::EventHandle<0x3::token_transfers::TokenCancelOfferEvent>"
            },
            {
              "name": "claim_events",
              "type": "0x1::event::EventHandle<0x3::token_transfers::TokenClaimEvent>"
            }
          ],
          "variants": []
        },
        {
          "name": "TokenCancelOffer",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "to_address",
              "type": "address"
            },
            {
              "name": "token_id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "TokenCancelOfferEvent",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "to_address",
              "type": "address"
            },
            {
              "name": "token_id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "TokenClaim",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "to_address",
              "type": "address"
            },
            {
              "name": "token_id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "TokenClaimEvent",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "to_address",
              "type": "address"
            },
            {
              "name": "token_id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "TokenOffer",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "to_address",
              "type": "address"
            },
            {
              "name": "token_id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "TokenOfferEvent",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "to_address",
              "type": "address"
            },
            {
              "name": "token_id",
              "type": "0x3::token::TokenId"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "TokenOfferId",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "to_addr",
              "type": "address"
            },
            {
              "name": "token_id",
              "type": "0x3::token::TokenId"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x3",
      "name": "token_event_store",
      "friends": [
        "0x3::token"
      ],
      "exposed_functions": [
        {
          "name": "emit_collection_description_mutate_event",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::string::String",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "emit_collection_maximum_mutate_event",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::string::String",
            "u64",
            "u64"
          ],
          "return": []
        },
        {
          "name": "emit_collection_uri_mutate_event",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::string::String",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "emit_default_property_mutate_event",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::string::String",
            "0x1::string::String",
            "vector<0x1::string::String>",
            "vector<0x1::option::Option<0x3::property_map::PropertyValue>>",
            "vector<0x3::property_map::PropertyValue>"
          ],
          "return": []
        },
        {
          "name": "emit_token_descrition_mutate_event",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::string::String",
            "0x1::string::String",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "emit_token_maximum_mutate_event",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::string::String",
            "0x1::string::String",
            "u64",
            "u64"
          ],
          "return": []
        },
        {
          "name": "emit_token_opt_in_event",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "bool"
          ],
          "return": []
        },
        {
          "name": "emit_token_royalty_mutate_event",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::string::String",
            "0x1::string::String",
            "u64",
            "u64",
            "address",
            "u64",
            "u64",
            "address"
          ],
          "return": []
        },
        {
          "name": "emit_token_uri_mutate_event",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::string::String",
            "0x1::string::String",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "CollectionDescriptionMutate",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creator_addr",
              "type": "address"
            },
            {
              "name": "collection_name",
              "type": "0x1::string::String"
            },
            {
              "name": "old_description",
              "type": "0x1::string::String"
            },
            {
              "name": "new_description",
              "type": "0x1::string::String"
            }
          ],
          "variants": []
        },
        {
          "name": "CollectionDescriptionMutateEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creator_addr",
              "type": "address"
            },
            {
              "name": "collection_name",
              "type": "0x1::string::String"
            },
            {
              "name": "old_description",
              "type": "0x1::string::String"
            },
            {
              "name": "new_description",
              "type": "0x1::string::String"
            }
          ],
          "variants": []
        },
        {
          "name": "CollectionMaximumMutate",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creator_addr",
              "type": "address"
            },
            {
              "name": "collection_name",
              "type": "0x1::string::String"
            },
            {
              "name": "old_maximum",
              "type": "u64"
            },
            {
              "name": "new_maximum",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "CollectionMaxiumMutate",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creator_addr",
              "type": "address"
            },
            {
              "name": "collection_name",
              "type": "0x1::string::String"
            },
            {
              "name": "old_maximum",
              "type": "u64"
            },
            {
              "name": "new_maximum",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "CollectionMaxiumMutateEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creator_addr",
              "type": "address"
            },
            {
              "name": "collection_name",
              "type": "0x1::string::String"
            },
            {
              "name": "old_maximum",
              "type": "u64"
            },
            {
              "name": "new_maximum",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "CollectionUriMutate",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creator_addr",
              "type": "address"
            },
            {
              "name": "collection_name",
              "type": "0x1::string::String"
            },
            {
              "name": "old_uri",
              "type": "0x1::string::String"
            },
            {
              "name": "new_uri",
              "type": "0x1::string::String"
            }
          ],
          "variants": []
        },
        {
          "name": "CollectionUriMutateEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creator_addr",
              "type": "address"
            },
            {
              "name": "collection_name",
              "type": "0x1::string::String"
            },
            {
              "name": "old_uri",
              "type": "0x1::string::String"
            },
            {
              "name": "new_uri",
              "type": "0x1::string::String"
            }
          ],
          "variants": []
        },
        {
          "name": "DefaultPropertyMutate",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creator",
              "type": "address"
            },
            {
              "name": "collection",
              "type": "0x1::string::String"
            },
            {
              "name": "token",
              "type": "0x1::string::String"
            },
            {
              "name": "keys",
              "type": "vector<0x1::string::String>"
            },
            {
              "name": "old_values",
              "type": "vector<0x1::option::Option<0x3::property_map::PropertyValue>>"
            },
            {
              "name": "new_values",
              "type": "vector<0x3::property_map::PropertyValue>"
            }
          ],
          "variants": []
        },
        {
          "name": "DefaultPropertyMutateEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creator",
              "type": "address"
            },
            {
              "name": "collection",
              "type": "0x1::string::String"
            },
            {
              "name": "token",
              "type": "0x1::string::String"
            },
            {
              "name": "keys",
              "type": "vector<0x1::string::String>"
            },
            {
              "name": "old_values",
              "type": "vector<0x1::option::Option<0x3::property_map::PropertyValue>>"
            },
            {
              "name": "new_values",
              "type": "vector<0x3::property_map::PropertyValue>"
            }
          ],
          "variants": []
        },
        {
          "name": "DescriptionMutate",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creator",
              "type": "address"
            },
            {
              "name": "collection",
              "type": "0x1::string::String"
            },
            {
              "name": "token",
              "type": "0x1::string::String"
            },
            {
              "name": "old_description",
              "type": "0x1::string::String"
            },
            {
              "name": "new_description",
              "type": "0x1::string::String"
            }
          ],
          "variants": []
        },
        {
          "name": "DescriptionMutateEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creator",
              "type": "address"
            },
            {
              "name": "collection",
              "type": "0x1::string::String"
            },
            {
              "name": "token",
              "type": "0x1::string::String"
            },
            {
              "name": "old_description",
              "type": "0x1::string::String"
            },
            {
              "name": "new_description",
              "type": "0x1::string::String"
            }
          ],
          "variants": []
        },
        {
          "name": "MaximumMutate",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creator",
              "type": "address"
            },
            {
              "name": "collection",
              "type": "0x1::string::String"
            },
            {
              "name": "token",
              "type": "0x1::string::String"
            },
            {
              "name": "old_maximum",
              "type": "u64"
            },
            {
              "name": "new_maximum",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "MaxiumMutateEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creator",
              "type": "address"
            },
            {
              "name": "collection",
              "type": "0x1::string::String"
            },
            {
              "name": "token",
              "type": "0x1::string::String"
            },
            {
              "name": "old_maximum",
              "type": "u64"
            },
            {
              "name": "new_maximum",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "OptInTransfer",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account_address",
              "type": "address"
            },
            {
              "name": "opt_in",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "OptInTransferEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "opt_in",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "RoyaltyMutate",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creator",
              "type": "address"
            },
            {
              "name": "collection",
              "type": "0x1::string::String"
            },
            {
              "name": "token",
              "type": "0x1::string::String"
            },
            {
              "name": "old_royalty_numerator",
              "type": "u64"
            },
            {
              "name": "old_royalty_denominator",
              "type": "u64"
            },
            {
              "name": "old_royalty_payee_addr",
              "type": "address"
            },
            {
              "name": "new_royalty_numerator",
              "type": "u64"
            },
            {
              "name": "new_royalty_denominator",
              "type": "u64"
            },
            {
              "name": "new_royalty_payee_addr",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "RoyaltyMutateEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creator",
              "type": "address"
            },
            {
              "name": "collection",
              "type": "0x1::string::String"
            },
            {
              "name": "token",
              "type": "0x1::string::String"
            },
            {
              "name": "old_royalty_numerator",
              "type": "u64"
            },
            {
              "name": "old_royalty_denominator",
              "type": "u64"
            },
            {
              "name": "old_royalty_payee_addr",
              "type": "address"
            },
            {
              "name": "new_royalty_numerator",
              "type": "u64"
            },
            {
              "name": "new_royalty_denominator",
              "type": "u64"
            },
            {
              "name": "new_royalty_payee_addr",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "TokenEventStoreV1",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "collection_uri_mutate_events",
              "type": "0x1::event::EventHandle<0x3::token_event_store::CollectionUriMutateEvent>"
            },
            {
              "name": "collection_maximum_mutate_events",
              "type": "0x1::event::EventHandle<0x3::token_event_store::CollectionMaxiumMutateEvent>"
            },
            {
              "name": "collection_description_mutate_events",
              "type": "0x1::event::EventHandle<0x3::token_event_store::CollectionDescriptionMutateEvent>"
            },
            {
              "name": "opt_in_events",
              "type": "0x1::event::EventHandle<0x3::token_event_store::OptInTransferEvent>"
            },
            {
              "name": "uri_mutate_events",
              "type": "0x1::event::EventHandle<0x3::token_event_store::UriMutationEvent>"
            },
            {
              "name": "default_property_mutate_events",
              "type": "0x1::event::EventHandle<0x3::token_event_store::DefaultPropertyMutateEvent>"
            },
            {
              "name": "description_mutate_events",
              "type": "0x1::event::EventHandle<0x3::token_event_store::DescriptionMutateEvent>"
            },
            {
              "name": "royalty_mutate_events",
              "type": "0x1::event::EventHandle<0x3::token_event_store::RoyaltyMutateEvent>"
            },
            {
              "name": "maximum_mutate_events",
              "type": "0x1::event::EventHandle<0x3::token_event_store::MaxiumMutateEvent>"
            },
            {
              "name": "extension",
              "type": "0x1::option::Option<0x1::any::Any>"
            }
          ],
          "variants": []
        },
        {
          "name": "UriMutation",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creator",
              "type": "address"
            },
            {
              "name": "collection",
              "type": "0x1::string::String"
            },
            {
              "name": "token",
              "type": "0x1::string::String"
            },
            {
              "name": "old_uri",
              "type": "0x1::string::String"
            },
            {
              "name": "new_uri",
              "type": "0x1::string::String"
            }
          ],
          "variants": []
        },
        {
          "name": "UriMutationEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creator",
              "type": "address"
            },
            {
              "name": "collection",
              "type": "0x1::string::String"
            },
            {
              "name": "token",
              "type": "0x1::string::String"
            },
            {
              "name": "old_uri",
              "type": "0x1::string::String"
            },
            {
              "name": "new_uri",
              "type": "0x1::string::String"
            }
          ],
          "variants": []
        }
      ]
    }
  }
]