[
  {
    "abi": {
      "address": "0x1",
      "name": "acl",
      "friends": [],
      "exposed_functions": [
        {
          "name": "contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::acl::ACL",
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::acl::ACL",
            "address"
          ],
          "return": []
        },
        {
          "name": "empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::acl::ACL"
          ]
        },
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::acl::ACL",
            "address"
          ],
          "return": []
        },
        {
          "name": "assert_contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::acl::ACL",
            "address"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "ACL",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "list",
              "type": "vector<address>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "any",
      "friends": [
        "0x1::copyable_any"
      ],
      "exposed_functions": [
        {
          "name": "type_name",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::any::Any"
          ],
          "return": [
            "&0x1::string::String"
          ]
        },
        {
          "name": "pack",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "T0"
          ],
          "return": [
            "0x1::any::Any"
          ]
        },
        {
          "name": "unpack",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::any::Any"
          ],
          "return": [
            "T0"
          ]
        }
      ],
      "structs": [
        {
          "name": "Any",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "type_name",
              "type": "0x1::string::String"
            },
            {
              "name": "data",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "bcs",
      "friends": [],
      "exposed_functions": [
        {
          "name": "constant_serialized_size",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::option::Option<u64>"
          ]
        },
        {
          "name": "serialized_size",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&T0"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&T0"
          ],
          "return": [
            "vector<u8>"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "cmp",
      "friends": [],
      "exposed_functions": [
        {
          "name": "compare",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&T0",
            "&T0"
          ],
          "return": [
            "0x1::cmp::Ordering"
          ]
        },
        {
          "name": "is_eq",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::cmp::Ordering"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_ge",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::cmp::Ordering"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_gt",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::cmp::Ordering"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_le",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::cmp::Ordering"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_lt",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::cmp::Ordering"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_ne",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::cmp::Ordering"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "Ordering",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "Less",
              "fields": []
            },
            {
              "name": "Equal",
              "fields": []
            },
            {
              "name": "Greater",
              "fields": []
            }
          ]
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "dkg",
      "friends": [
        "0x1::reconfiguration_with_dkg",
        "0x1::block"
      ],
      "exposed_functions": [
        {
          "name": "start",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "0x1::randomness_config::RandomnessConfig",
            "vector<0x1::validator_consensus_info::ValidatorConsensusInfo>",
            "vector<0x1::validator_consensus_info::ValidatorConsensusInfo>"
          ],
          "return": []
        },
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "finish",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "incomplete_session",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::option::Option<0x1::dkg::DKGSessionState>"
          ]
        },
        {
          "name": "is_session_started",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "last_completed_session",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::option::Option<0x1::dkg::DKGSessionState>"
          ]
        },
        {
          "name": "session_dealer_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::dkg::DKGSessionState"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "try_clear_incomplete_session",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "DKGSessionMetadata",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dealer_epoch",
              "type": "u64"
            },
            {
              "name": "randomness_config",
              "type": "0x1::randomness_config::RandomnessConfig"
            },
            {
              "name": "dealer_validator_set",
              "type": "vector<0x1::validator_consensus_info::ValidatorConsensusInfo>"
            },
            {
              "name": "target_validator_set",
              "type": "vector<0x1::validator_consensus_info::ValidatorConsensusInfo>"
            }
          ],
          "variants": []
        },
        {
          "name": "DKGSessionState",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::dkg::DKGSessionMetadata"
            },
            {
              "name": "start_time_us",
              "type": "u64"
            },
            {
              "name": "transcript",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "DKGStartEvent",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "session_metadata",
              "type": "0x1::dkg::DKGSessionMetadata"
            },
            {
              "name": "start_time_us",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "DKGState",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "last_completed",
              "type": "0x1::option::Option<0x1::dkg::DKGSessionState>"
            },
            {
              "name": "in_progress",
              "type": "0x1::option::Option<0x1::dkg::DKGSessionState>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "mem",
      "friends": [],
      "exposed_functions": [
        {
          "name": "replace",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut T0",
            "T0"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "swap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut T0",
            "&mut T0"
          ],
          "return": []
        }
      ],
      "structs": []
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "code",
      "friends": [
        "0x1::object_code_deployment"
      ],
      "exposed_functions": [
        {
          "name": "grant_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer"
          ],
          "return": []
        },
        {
          "name": "can_change_upgrade_policy_to",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::code::UpgradePolicy",
            "0x1::code::UpgradePolicy"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "check_code_publishing_permission",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "freeze_code_object",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::code::PackageRegistry>"
          ],
          "return": []
        },
        {
          "name": "publish_package",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::code::PackageMetadata",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "publish_package_txn",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "upgrade_policy_arbitrary",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::code::UpgradePolicy"
          ]
        },
        {
          "name": "upgrade_policy_compat",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::code::UpgradePolicy"
          ]
        },
        {
          "name": "upgrade_policy_immutable",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::code::UpgradePolicy"
          ]
        }
      ],
      "structs": [
        {
          "name": "AllowedDep",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "module_name",
              "type": "0x1::string::String"
            }
          ],
          "variants": []
        },
        {
          "name": "CodePublishingPermission",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "ModuleMetadata",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "name",
              "type": "0x1::string::String"
            },
            {
              "name": "source",
              "type": "vector<u8>"
            },
            {
              "name": "source_map",
              "type": "vector<u8>"
            },
            {
              "name": "extension",
              "type": "0x1::option::Option<0x1::copyable_any::Any>"
            }
          ],
          "variants": []
        },
        {
          "name": "PackageDep",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "package_name",
              "type": "0x1::string::String"
            }
          ],
          "variants": []
        },
        {
          "name": "PackageMetadata",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "name",
              "type": "0x1::string::String"
            },
            {
              "name": "upgrade_policy",
              "type": "0x1::code::UpgradePolicy"
            },
            {
              "name": "upgrade_number",
              "type": "u64"
            },
            {
              "name": "source_digest",
              "type": "0x1::string::String"
            },
            {
              "name": "manifest",
              "type": "vector<u8>"
            },
            {
              "name": "modules",
              "type": "vector<0x1::code::ModuleMetadata>"
            },
            {
              "name": "deps",
              "type": "vector<0x1::code::PackageDep>"
            },
            {
              "name": "extension",
              "type": "0x1::option::Option<0x1::copyable_any::Any>"
            }
          ],
          "variants": []
        },
        {
          "name": "PackageRegistry",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "packages",
              "type": "vector<0x1::code::PackageMetadata>"
            }
          ],
          "variants": []
        },
        {
          "name": "PublishPackage",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "code_address",
              "type": "address"
            },
            {
              "name": "is_upgrade",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "UpgradePolicy",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "policy",
              "type": "u8"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "coin",
      "friends": [
        "0x1::aptos_coin",
        "0x1::transaction_fee",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "extract",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::coin::Coin<T0>",
            "u64"
          ],
          "return": [
            "0x1::coin::Coin<T0>"
          ]
        },
        {
          "name": "value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::coin::Coin<T0>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "merge",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::coin::Coin<T0>",
            "0x1::coin::Coin<T0>"
          ],
          "return": []
        },
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "0x1::string::String",
            "0x1::string::String",
            "u8",
            "bool"
          ],
          "return": [
            "0x1::coin::BurnCapability<T0>",
            "0x1::coin::FreezeCapability<T0>",
            "0x1::coin::MintCapability<T0>"
          ]
        },
        {
          "name": "burn",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::coin::Coin<T0>",
            "&0x1::coin::BurnCapability<T0>"
          ],
          "return": []
        },
        {
          "name": "name",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "transfer",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "symbol",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "decimals",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "u8"
          ]
        },
        {
          "name": "balance",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "burn_from",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address",
            "u64",
            "&0x1::coin::BurnCapability<T0>"
          ],
          "return": []
        },
        {
          "name": "deposit",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address",
            "0x1::coin::Coin<T0>"
          ],
          "return": []
        },
        {
          "name": "destroy_zero",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::coin::Coin<T0>"
          ],
          "return": []
        },
        {
          "name": "is_balance_at_least",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "mint",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "u64",
            "&0x1::coin::MintCapability<T0>"
          ],
          "return": [
            "0x1::coin::Coin<T0>"
          ]
        },
        {
          "name": "supply",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::option::Option<u128>"
          ]
        },
        {
          "name": "withdraw",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "u64"
          ],
          "return": [
            "0x1::coin::Coin<T0>"
          ]
        },
        {
          "name": "zero",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::coin::Coin<T0>"
          ]
        },
        {
          "name": "deposit_with_signer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "0x1::coin::Coin<T0>"
          ],
          "return": []
        },
        {
          "name": "allow_supply_upgrades",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "bool"
          ],
          "return": []
        },
        {
          "name": "burn_from_for_gas",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address",
            "u64",
            "&0x1::coin::BurnCapability<T0>"
          ],
          "return": []
        },
        {
          "name": "coin_supply",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::option::Option<u128>"
          ]
        },
        {
          "name": "coin_to_fungible_asset",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::coin::Coin<T0>"
          ],
          "return": [
            "0x1::fungible_asset::FungibleAsset"
          ]
        },
        {
          "name": "convert_and_take_paired_burn_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::coin::BurnCapability<T0>"
          ],
          "return": [
            "0x1::fungible_asset::BurnRef"
          ]
        },
        {
          "name": "create_coin_conversion_map",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "create_pairing",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "deposit_for_gas_fee",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address",
            "0x1::coin::Coin<T0>"
          ],
          "return": []
        },
        {
          "name": "destroy_burn_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::coin::BurnCapability<T0>"
          ],
          "return": []
        },
        {
          "name": "destroy_freeze_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::coin::FreezeCapability<T0>"
          ],
          "return": []
        },
        {
          "name": "destroy_mint_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::coin::MintCapability<T0>"
          ],
          "return": []
        },
        {
          "name": "ensure_paired_metadata",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ]
        },
        {
          "name": "extract_all",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::coin::Coin<T0>"
          ],
          "return": [
            "0x1::coin::Coin<T0>"
          ]
        },
        {
          "name": "freeze_coin_store",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address",
            "&0x1::coin::FreezeCapability<T0>"
          ],
          "return": []
        },
        {
          "name": "get_paired_burn_copy_ref",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::coin::BurnCapability<T0>"
          ],
          "return": [
            "0x1::fungible_asset::BurnRef"
          ]
        },
        {
          "name": "get_paired_burn_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::coin::BurnCapability<T0>"
          ],
          "return": [
            "0x1::fungible_asset::BurnRef",
            "0x1::coin::BurnRefReceipt"
          ]
        },
        {
          "name": "get_paired_mint_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::coin::MintCapability<T0>"
          ],
          "return": [
            "0x1::fungible_asset::MintRef",
            "0x1::coin::MintRefReceipt"
          ]
        },
        {
          "name": "get_paired_transfer_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::coin::FreezeCapability<T0>"
          ],
          "return": [
            "0x1::fungible_asset::TransferRef",
            "0x1::coin::TransferRefReceipt"
          ]
        },
        {
          "name": "initialize_with_parallelizable_supply",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "0x1::string::String",
            "0x1::string::String",
            "u8",
            "bool"
          ],
          "return": [
            "0x1::coin::BurnCapability<T0>",
            "0x1::coin::FreezeCapability<T0>",
            "0x1::coin::MintCapability<T0>"
          ]
        },
        {
          "name": "is_account_registered",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_coin_initialized",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_coin_store_frozen",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "migrate_coin_store_to_fungible_store",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "vector<address>"
          ],
          "return": []
        },
        {
          "name": "migrate_to_fungible_store",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "paired_burn_ref_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "paired_coin",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ],
          "return": [
            "0x1::option::Option<0x1::type_info::TypeInfo>"
          ]
        },
        {
          "name": "paired_metadata",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::option::Option<0x1::object::Object<0x1::fungible_asset::Metadata>>"
          ]
        },
        {
          "name": "paired_mint_ref_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "paired_transfer_ref_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "register",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "return_paired_burn_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fungible_asset::BurnRef",
            "0x1::coin::BurnRefReceipt"
          ],
          "return": []
        },
        {
          "name": "return_paired_mint_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fungible_asset::MintRef",
            "0x1::coin::MintRefReceipt"
          ],
          "return": []
        },
        {
          "name": "return_paired_transfer_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fungible_asset::TransferRef",
            "0x1::coin::TransferRefReceipt"
          ],
          "return": []
        },
        {
          "name": "unfreeze_coin_store",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address",
            "&0x1::coin::FreezeCapability<T0>"
          ],
          "return": []
        },
        {
          "name": "upgrade_supply",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Deposit",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "DepositEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "Withdraw",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "WithdrawEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "AggregatableCoin",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "value",
              "type": "0x1::aggregator::Aggregator"
            }
          ],
          "variants": []
        },
        {
          "name": "BurnCapability",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "BurnRefReceipt",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            }
          ],
          "variants": []
        },
        {
          "name": "Coin",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "value",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "CoinConversionMap",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "coin_to_fungible_asset_map",
              "type": "0x1::table::Table<0x1::type_info::TypeInfo, 0x1::object::Object<0x1::fungible_asset::Metadata>>"
            }
          ],
          "variants": []
        },
        {
          "name": "CoinDeposit",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "coin_type",
              "type": "0x1::string::String"
            },
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "CoinEventHandleDeletion",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "event_handle_creation_address",
              "type": "address"
            },
            {
              "name": "deleted_deposit_event_handle_creation_number",
              "type": "u64"
            },
            {
              "name": "deleted_withdraw_event_handle_creation_number",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "CoinInfo",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "name",
              "type": "0x1::string::String"
            },
            {
              "name": "symbol",
              "type": "0x1::string::String"
            },
            {
              "name": "decimals",
              "type": "u8"
            },
            {
              "name": "supply",
              "type": "0x1::option::Option<0x1::optional_aggregator::OptionalAggregator>"
            }
          ],
          "variants": []
        },
        {
          "name": "CoinStore",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "coin",
              "type": "0x1::coin::Coin<T0>"
            },
            {
              "name": "frozen",
              "type": "bool"
            },
            {
              "name": "deposit_events",
              "type": "0x1::event::EventHandle<0x1::coin::DepositEvent>"
            },
            {
              "name": "withdraw_events",
              "type": "0x1::event::EventHandle<0x1::coin::WithdrawEvent>"
            }
          ],
          "variants": []
        },
        {
          "name": "CoinStoreDeletion",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "coin_type",
              "type": "0x1::string::String"
            },
            {
              "name": "event_handle_creation_address",
              "type": "address"
            },
            {
              "name": "deleted_deposit_event_handle_creation_number",
              "type": "u64"
            },
            {
              "name": "deleted_withdraw_event_handle_creation_number",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "CoinWithdraw",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "coin_type",
              "type": "0x1::string::String"
            },
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "FreezeCapability",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "MigrationFlag",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "MintCapability",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "MintRefReceipt",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            }
          ],
          "variants": []
        },
        {
          "name": "PairCreation",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "coin_type",
              "type": "0x1::type_info::TypeInfo"
            },
            {
              "name": "fungible_asset_metadata_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "PairedCoinType",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "type",
              "type": "0x1::type_info::TypeInfo"
            }
          ],
          "variants": []
        },
        {
          "name": "PairedFungibleAssetRefs",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "mint_ref_opt",
              "type": "0x1::option::Option<0x1::fungible_asset::MintRef>"
            },
            {
              "name": "transfer_ref_opt",
              "type": "0x1::option::Option<0x1::fungible_asset::TransferRef>"
            },
            {
              "name": "burn_ref_opt",
              "type": "0x1::option::Option<0x1::fungible_asset::BurnRef>"
            }
          ],
          "variants": []
        },
        {
          "name": "SupplyConfig",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "allow_upgrades",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "TransferRefReceipt",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "guid",
      "friends": [
        "0x1::account",
        "0x1::object"
      ],
      "exposed_functions": [
        {
          "name": "create",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "&mut u64"
          ],
          "return": [
            "0x1::guid::GUID"
          ]
        },
        {
          "name": "create_id",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "0x1::guid::ID"
          ]
        },
        {
          "name": "creation_num",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::guid::GUID"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "creator_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::guid::GUID"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "eq_id",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::guid::GUID",
            "&0x1::guid::ID"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "id",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::guid::GUID"
          ],
          "return": [
            "0x1::guid::ID"
          ]
        },
        {
          "name": "id_creation_num",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::guid::ID"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "id_creator_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::guid::ID"
          ],
          "return": [
            "address"
          ]
        }
      ],
      "structs": [
        {
          "name": "GUID",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "id",
              "type": "0x1::guid::ID"
            }
          ],
          "variants": []
        },
        {
          "name": "ID",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creation_num",
              "type": "u64"
            },
            {
              "name": "addr",
              "type": "address"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "hash",
      "friends": [],
      "exposed_functions": [
        {
          "name": "sha2_256",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "sha3_256",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "vector<u8>"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "jwks",
      "friends": [
        "0x1::reconfiguration_with_dkg",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "get_patched_jwk",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>",
            "vector<u8>"
          ],
          "return": [
            "0x1::jwks::JWK"
          ]
        },
        {
          "name": "initialize_with_defaults",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<0x1::jwks::OIDCProvider>",
            "vector<0x1::jwks::Patch>"
          ],
          "return": []
        },
        {
          "name": "new_patch_remove_all",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::jwks::Patch"
          ]
        },
        {
          "name": "new_patch_remove_issuer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::jwks::Patch"
          ]
        },
        {
          "name": "new_patch_remove_jwk",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>",
            "vector<u8>"
          ],
          "return": [
            "0x1::jwks::Patch"
          ]
        },
        {
          "name": "new_patch_upsert_jwk",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>",
            "0x1::jwks::JWK"
          ],
          "return": [
            "0x1::jwks::Patch"
          ]
        },
        {
          "name": "new_rsa_jwk",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::string::String",
            "0x1::string::String",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": [
            "0x1::jwks::JWK"
          ]
        },
        {
          "name": "new_unsupported_jwk",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>",
            "vector<u8>"
          ],
          "return": [
            "0x1::jwks::JWK"
          ]
        },
        {
          "name": "patch_federated_jwks",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<0x1::jwks::Patch>"
          ],
          "return": []
        },
        {
          "name": "remove_issuer_from_observed_jwks",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::jwks::ProviderJWKs>"
          ]
        },
        {
          "name": "remove_oidc_provider",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<vector<u8>>"
          ]
        },
        {
          "name": "remove_oidc_provider_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<vector<u8>>"
          ]
        },
        {
          "name": "set_patches",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<0x1::jwks::Patch>"
          ],
          "return": []
        },
        {
          "name": "try_get_patched_jwk",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>",
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::jwks::JWK>"
          ]
        },
        {
          "name": "update_federated_jwk_set",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<0x1::string::String>",
            "vector<0x1::string::String>",
            "vector<0x1::string::String>",
            "vector<0x1::string::String>"
          ],
          "return": []
        },
        {
          "name": "upsert_into_observed_jwks",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<0x1::jwks::ProviderJWKs>"
          ],
          "return": []
        },
        {
          "name": "upsert_oidc_provider",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<vector<u8>>"
          ]
        },
        {
          "name": "upsert_oidc_provider_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<vector<u8>>"
          ]
        }
      ],
      "structs": [
        {
          "name": "AllProvidersJWKs",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "entries",
              "type": "vector<0x1::jwks::ProviderJWKs>"
            }
          ],
          "variants": []
        },
        {
          "name": "FederatedJWKs",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "jwks",
              "type": "0x1::jwks::AllProvidersJWKs"
            }
          ],
          "variants": []
        },
        {
          "name": "JWK",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "variant",
              "type": "0x1::copyable_any::Any"
            }
          ],
          "variants": []
        },
        {
          "name": "OIDCProvider",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "name",
              "type": "vector<u8>"
            },
            {
              "name": "config_url",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "ObservedJWKs",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "jwks",
              "type": "0x1::jwks::AllProvidersJWKs"
            }
          ],
          "variants": []
        },
        {
          "name": "ObservedJWKsUpdated",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "epoch",
              "type": "u64"
            },
            {
              "name": "jwks",
              "type": "0x1::jwks::AllProvidersJWKs"
            }
          ],
          "variants": []
        },
        {
          "name": "Patch",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "variant",
              "type": "0x1::copyable_any::Any"
            }
          ],
          "variants": []
        },
        {
          "name": "PatchRemoveAll",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "PatchRemoveIssuer",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "issuer",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "PatchRemoveJWK",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "issuer",
              "type": "vector<u8>"
            },
            {
              "name": "jwk_id",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "PatchUpsertJWK",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "issuer",
              "type": "vector<u8>"
            },
            {
              "name": "jwk",
              "type": "0x1::jwks::JWK"
            }
          ],
          "variants": []
        },
        {
          "name": "PatchedJWKs",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "jwks",
              "type": "0x1::jwks::AllProvidersJWKs"
            }
          ],
          "variants": []
        },
        {
          "name": "Patches",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "patches",
              "type": "vector<0x1::jwks::Patch>"
            }
          ],
          "variants": []
        },
        {
          "name": "ProviderJWKs",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "issuer",
              "type": "vector<u8>"
            },
            {
              "name": "version",
              "type": "u64"
            },
            {
              "name": "jwks",
              "type": "vector<0x1::jwks::JWK>"
            }
          ],
          "variants": []
        },
        {
          "name": "RSA_JWK",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "kid",
              "type": "0x1::string::String"
            },
            {
              "name": "kty",
              "type": "0x1::string::String"
            },
            {
              "name": "alg",
              "type": "0x1::string::String"
            },
            {
              "name": "e",
              "type": "0x1::string::String"
            },
            {
              "name": "n",
              "type": "0x1::string::String"
            }
          ],
          "variants": []
        },
        {
          "name": "SupportedOIDCProviders",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "providers",
              "type": "vector<0x1::jwks::OIDCProvider>"
            }
          ],
          "variants": []
        },
        {
          "name": "UnsupportedJWK",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "id",
              "type": "vector<u8>"
            },
            {
              "name": "payload",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "util",
      "friends": [
        "0x1::gas_schedule",
        "0x1::code"
      ],
      "exposed_functions": [
        {
          "name": "from_bytes",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "address_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "address"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "block",
      "friends": [
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "emit_writeset_block_event",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "get_current_block_height",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_epoch_interval_secs",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "initialize_commit_history",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u32"
          ],
          "return": []
        },
        {
          "name": "update_epoch_interval_microsecs",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "BlockResource",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "height",
              "type": "u64"
            },
            {
              "name": "epoch_interval",
              "type": "u64"
            },
            {
              "name": "new_block_events",
              "type": "0x1::event::EventHandle<0x1::block::NewBlockEvent>"
            },
            {
              "name": "update_epoch_interval_events",
              "type": "0x1::event::EventHandle<0x1::block::UpdateEpochIntervalEvent>"
            }
          ],
          "variants": []
        },
        {
          "name": "CommitHistory",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "max_capacity",
              "type": "u32"
            },
            {
              "name": "next_idx",
              "type": "u32"
            },
            {
              "name": "table",
              "type": "0x1::table_with_length::TableWithLength<u32, 0x1::block::NewBlockEvent>"
            }
          ],
          "variants": []
        },
        {
          "name": "NewBlock",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "hash",
              "type": "address"
            },
            {
              "name": "epoch",
              "type": "u64"
            },
            {
              "name": "round",
              "type": "u64"
            },
            {
              "name": "height",
              "type": "u64"
            },
            {
              "name": "previous_block_votes_bitvec",
              "type": "vector<u8>"
            },
            {
              "name": "proposer",
              "type": "address"
            },
            {
              "name": "failed_proposer_indices",
              "type": "vector<u64>"
            },
            {
              "name": "time_microseconds",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "NewBlockEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "hash",
              "type": "address"
            },
            {
              "name": "epoch",
              "type": "u64"
            },
            {
              "name": "round",
              "type": "u64"
            },
            {
              "name": "height",
              "type": "u64"
            },
            {
              "name": "previous_block_votes_bitvec",
              "type": "vector<u8>"
            },
            {
              "name": "proposer",
              "type": "address"
            },
            {
              "name": "failed_proposer_indices",
              "type": "vector<u64>"
            },
            {
              "name": "time_microseconds",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "UpdateEpochInterval",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "old_epoch_interval",
              "type": "u64"
            },
            {
              "name": "new_epoch_interval",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "UpdateEpochIntervalEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "old_epoch_interval",
              "type": "u64"
            },
            {
              "name": "new_epoch_interval",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "debug",
      "friends": [],
      "exposed_functions": [
        {
          "name": "print",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&T0"
          ],
          "return": []
        },
        {
          "name": "print_stack_trace",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        }
      ],
      "structs": []
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "error",
      "friends": [],
      "exposed_functions": [
        {
          "name": "aborted",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "already_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "canonical",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "internal",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "invalid_argument",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "invalid_state",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "not_found",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "not_implemented",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "out_of_range",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "permission_denied",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "resource_exhausted",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "unauthenticated",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "unavailable",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "event",
      "friends": [
        "0x1::account",
        "0x1::object"
      ],
      "exposed_functions": [
        {
          "name": "guid",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::event::EventHandle<T0>"
          ],
          "return": [
            "&0x1::guid::GUID"
          ]
        },
        {
          "name": "counter",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::event::EventHandle<T0>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "destroy_handle",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "0x1::event::EventHandle<T0>"
          ],
          "return": []
        },
        {
          "name": "emit",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "T0"
          ],
          "return": []
        },
        {
          "name": "emit_event",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::event::EventHandle<T0>",
            "T0"
          ],
          "return": []
        },
        {
          "name": "new_event_handle",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "0x1::guid::GUID"
          ],
          "return": [
            "0x1::event::EventHandle<T0>"
          ]
        }
      ],
      "structs": [
        {
          "name": "EventHandle",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            }
          ],
          "fields": [
            {
              "name": "counter",
              "type": "u64"
            },
            {
              "name": "guid",
              "type": "0x1::guid::GUID"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "stake",
      "friends": [
        "0x1::transaction_fee",
        "0x1::reconfiguration",
        "0x1::reconfiguration_with_dkg",
        "0x1::block",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        },
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "grant_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer"
          ],
          "return": []
        },
        {
          "name": "withdraw",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "add_stake",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "add_stake_with_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::stake::OwnerCapability",
            "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>"
          ],
          "return": []
        },
        {
          "name": "configure_allowed_validators",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>"
          ],
          "return": []
        },
        {
          "name": "cur_validator_consensus_infos",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "vector<0x1::validator_consensus_info::ValidatorConsensusInfo>"
          ]
        },
        {
          "name": "deposit_owner_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::stake::OwnerCapability"
          ],
          "return": []
        },
        {
          "name": "destroy_owner_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::stake::OwnerCapability"
          ],
          "return": []
        },
        {
          "name": "extract_owner_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "0x1::stake::OwnerCapability"
          ]
        },
        {
          "name": "get_current_epoch_proposal_counts",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64",
            "u64"
          ]
        },
        {
          "name": "get_current_epoch_voting_power",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_delegated_voter",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_lockup_secs",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_operator",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_owned_pool_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::stake::OwnerCapability"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_pending_transaction_fee",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "vector<u64>"
          ]
        },
        {
          "name": "get_pool_address_for_owner",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_remaining_lockup_secs",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_stake",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64",
            "u64",
            "u64",
            "u64"
          ]
        },
        {
          "name": "get_validator_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "vector<u8>",
            "vector<u8>",
            "vector<u8>"
          ]
        },
        {
          "name": "get_validator_index",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_validator_state",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "increase_lockup",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "increase_lockup_with_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::stake::OwnerCapability"
          ],
          "return": []
        },
        {
          "name": "initialize_pending_transaction_fee",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "initialize_stake_owner",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "initialize_validator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<u8>",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "is_current_epoch_validator",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "join_validator_set",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "join_validator_set_internal",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "leave_validator_set",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "next_validator_consensus_infos",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "vector<0x1::validator_consensus_info::ValidatorConsensusInfo>"
          ]
        },
        {
          "name": "next_validator_consensus_infos_v2",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::stake::ValidatorSet"
          ]
        },
        {
          "name": "owner_cap_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "reactivate_stake",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "reactivate_stake_with_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::stake::OwnerCapability",
            "u64"
          ],
          "return": []
        },
        {
          "name": "record_fee",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u64>",
            "vector<u64>"
          ],
          "return": []
        },
        {
          "name": "remove_validators",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&vector<address>"
          ],
          "return": []
        },
        {
          "name": "rotate_consensus_key",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "set_delegated_voter",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_delegated_voter_with_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::stake::OwnerCapability",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_operator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_operator_with_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::stake::OwnerCapability",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_transaction_fee_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::stake::TransactionFeeConfig"
          ],
          "return": []
        },
        {
          "name": "set_transaction_fee_limit_per_epoch_per_pool",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "stake_pool_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "store_aptos_coin_mint_cap",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::coin::MintCapability<0x1::aptos_coin::AptosCoin>"
          ],
          "return": []
        },
        {
          "name": "unlock",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "unlock_with_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "&0x1::stake::OwnerCapability"
          ],
          "return": []
        },
        {
          "name": "update_network_and_fullnode_addresses",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "update_performance_statistics",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::option::Option<u64>",
            "vector<u64>"
          ],
          "return": []
        },
        {
          "name": "validator_consensus_infos_from_validator_set",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::stake::ValidatorSet"
          ],
          "return": [
            "vector<0x1::validator_consensus_info::ValidatorConsensusInfo>"
          ]
        },
        {
          "name": "withdraw_with_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::stake::OwnerCapability",
            "u64"
          ],
          "return": [
            "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>"
          ]
        }
      ],
      "structs": [
        {
          "name": "AddStake",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount_added",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "AddStakeEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount_added",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "AllowedValidators",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "accounts",
              "type": "vector<address>"
            }
          ],
          "variants": []
        },
        {
          "name": "AptosCoinCapabilities",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "mint_cap",
              "type": "0x1::coin::MintCapability<0x1::aptos_coin::AptosCoin>"
            }
          ],
          "variants": []
        },
        {
          "name": "DistributeRewards",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "rewards_amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "DistributeRewardsEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "rewards_amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "DistributeTransactionFee",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "fee_amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "IncreaseLockup",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "old_locked_until_secs",
              "type": "u64"
            },
            {
              "name": "new_locked_until_secs",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "IncreaseLockupEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "old_locked_until_secs",
              "type": "u64"
            },
            {
              "name": "new_locked_until_secs",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "IndividualValidatorPerformance",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "successful_proposals",
              "type": "u64"
            },
            {
              "name": "failed_proposals",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "JoinValidatorSet",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "JoinValidatorSetEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "LeaveValidatorSet",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "LeaveValidatorSetEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "OwnerCapability",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "PendingTransactionFee",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pending_fee_by_validator",
              "type": "0x1::big_ordered_map::BigOrderedMap<u64, 0x1::aggregator_v2::Aggregator<u64>>"
            }
          ],
          "variants": []
        },
        {
          "name": "PrecomputedValidatorSet",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "validator_set",
              "type": "0x1::stake::ValidatorSet"
            },
            {
              "name": "is_liveness_fallback",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "ReactivateStake",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "ReactivateStakeEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "RegisterValidatorCandidate",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "RegisterValidatorCandidateEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "RotateConsensusKey",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "old_consensus_pubkey",
              "type": "vector<u8>"
            },
            {
              "name": "new_consensus_pubkey",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "RotateConsensusKeyEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "old_consensus_pubkey",
              "type": "vector<u8>"
            },
            {
              "name": "new_consensus_pubkey",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "SetOperator",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "old_operator",
              "type": "address"
            },
            {
              "name": "new_operator",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "SetOperatorEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "old_operator",
              "type": "address"
            },
            {
              "name": "new_operator",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "StakeManagementPermission",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "StakePool",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "active",
              "type": "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>"
            },
            {
              "name": "inactive",
              "type": "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>"
            },
            {
              "name": "pending_active",
              "type": "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>"
            },
            {
              "name": "pending_inactive",
              "type": "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>"
            },
            {
              "name": "locked_until_secs",
              "type": "u64"
            },
            {
              "name": "operator_address",
              "type": "address"
            },
            {
              "name": "delegated_voter",
              "type": "address"
            },
            {
              "name": "initialize_validator_events",
              "type": "0x1::event::EventHandle<0x1::stake::RegisterValidatorCandidateEvent>"
            },
            {
              "name": "set_operator_events",
              "type": "0x1::event::EventHandle<0x1::stake::SetOperatorEvent>"
            },
            {
              "name": "add_stake_events",
              "type": "0x1::event::EventHandle<0x1::stake::AddStakeEvent>"
            },
            {
              "name": "reactivate_stake_events",
              "type": "0x1::event::EventHandle<0x1::stake::ReactivateStakeEvent>"
            },
            {
              "name": "rotate_consensus_key_events",
              "type": "0x1::event::EventHandle<0x1::stake::RotateConsensusKeyEvent>"
            },
            {
              "name": "update_network_and_fullnode_addresses_events",
              "type": "0x1::event::EventHandle<0x1::stake::UpdateNetworkAndFullnodeAddressesEvent>"
            },
            {
              "name": "increase_lockup_events",
              "type": "0x1::event::EventHandle<0x1::stake::IncreaseLockupEvent>"
            },
            {
              "name": "join_validator_set_events",
              "type": "0x1::event::EventHandle<0x1::stake::JoinValidatorSetEvent>"
            },
            {
              "name": "distribute_rewards_events",
              "type": "0x1::event::EventHandle<0x1::stake::DistributeRewardsEvent>"
            },
            {
              "name": "unlock_stake_events",
              "type": "0x1::event::EventHandle<0x1::stake::UnlockStakeEvent>"
            },
            {
              "name": "withdraw_stake_events",
              "type": "0x1::event::EventHandle<0x1::stake::WithdrawStakeEvent>"
            },
            {
              "name": "leave_validator_set_events",
              "type": "0x1::event::EventHandle<0x1::stake::LeaveValidatorSetEvent>"
            }
          ],
          "variants": []
        },
        {
          "name": "TransactionFeeConfig",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V0",
              "fields": [
                {
                  "name": "max_fee_octa_allowed_per_epoch_per_pool",
                  "type": "u64"
                }
              ]
            }
          ]
        },
        {
          "name": "UnlockStake",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount_unlocked",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "UnlockStakeEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount_unlocked",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "UpdateNetworkAndFullnodeAddresses",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "old_network_addresses",
              "type": "vector<u8>"
            },
            {
              "name": "new_network_addresses",
              "type": "vector<u8>"
            },
            {
              "name": "old_fullnode_addresses",
              "type": "vector<u8>"
            },
            {
              "name": "new_fullnode_addresses",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "UpdateNetworkAndFullnodeAddressesEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "old_network_addresses",
              "type": "vector<u8>"
            },
            {
              "name": "new_network_addresses",
              "type": "vector<u8>"
            },
            {
              "name": "old_fullnode_addresses",
              "type": "vector<u8>"
            },
            {
              "name": "new_fullnode_addresses",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "ValidatorConfig",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "consensus_pubkey",
              "type": "vector<u8>"
            },
            {
              "name": "network_addresses",
              "type": "vector<u8>"
            },
            {
              "name": "fullnode_addresses",
              "type": "vector<u8>"
            },
            {
              "name": "validator_index",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "ValidatorFees",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "fees_table",
              "type": "0x1::table::Table<address, 0x1::coin::Coin<0x1::aptos_coin::AptosCoin>>"
            }
          ],
          "variants": []
        },
        {
          "name": "ValidatorInfo",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "addr",
              "type": "address"
            },
            {
              "name": "voting_power",
              "type": "u64"
            },
            {
              "name": "config",
              "type": "0x1::stake::ValidatorConfig"
            }
          ],
          "variants": []
        },
        {
          "name": "ValidatorPerformance",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "validators",
              "type": "vector<0x1::stake::IndividualValidatorPerformance>"
            }
          ],
          "variants": []
        },
        {
          "name": "ValidatorSet",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "consensus_scheme",
              "type": "u8"
            },
            {
              "name": "active_validators",
              "type": "vector<0x1::stake::ValidatorInfo>"
            },
            {
              "name": "pending_inactive",
              "type": "vector<0x1::stake::ValidatorInfo>"
            },
            {
              "name": "pending_active",
              "type": "vector<0x1::stake::ValidatorInfo>"
            },
            {
              "name": "total_voting_power",
              "type": "u128"
            },
            {
              "name": "total_joining_power",
              "type": "u128"
            }
          ],
          "variants": []
        },
        {
          "name": "ValidatorSetLivenessFallback",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "minimum_stake",
              "type": "u64"
            },
            {
              "name": "emergency_validator_count",
              "type": "u64"
            },
            {
              "name": "total_emergency_voting_power",
              "type": "u128"
            }
          ],
          "variants": []
        },
        {
          "name": "WithdrawStake",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount_withdrawn",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "WithdrawStakeEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount_withdrawn",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "table",
      "friends": [
        "0x1::table_with_length",
        "0x1::storage_slots_allocator"
      ],
      "exposed_functions": [
        {
          "name": "contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::table::Table<T0, T1>",
            "T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::table::Table<T0, T1>",
            "T0"
          ],
          "return": [
            "T1"
          ]
        },
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [],
          "return": [
            "0x1::table::Table<T0, T1>"
          ]
        },
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::table::Table<T0, T1>",
            "T0"
          ],
          "return": [
            "&T1"
          ]
        },
        {
          "name": "borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::table::Table<T0, T1>",
            "T0"
          ],
          "return": [
            "&mut T1"
          ]
        },
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::table::Table<T0, T1>",
            "T0",
            "T1"
          ],
          "return": []
        },
        {
          "name": "borrow_with_default",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::table::Table<T0, T1>",
            "T0",
            "&T1"
          ],
          "return": [
            "&T1"
          ]
        },
        {
          "name": "borrow_mut_with_default",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&mut 0x1::table::Table<T0, T1>",
            "T0",
            "T1"
          ],
          "return": [
            "&mut T1"
          ]
        },
        {
          "name": "destroy_known_empty_unsafe",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::table::Table<T0, T1>"
          ],
          "return": []
        },
        {
          "name": "upsert",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&mut 0x1::table::Table<T0, T1>",
            "T0",
            "T1"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Box",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "val",
              "type": "T0"
            }
          ],
          "variants": []
        },
        {
          "name": "Table",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "handle",
              "type": "address"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "base16",
      "friends": [
        "0x1::ethereum_derivable_account"
      ],
      "exposed_functions": [
        {
          "name": "base16_utf8_to_vec_u8",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "hex_char_to_u8",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u8"
          ],
          "return": [
            "u8"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "math64",
      "friends": [],
      "exposed_functions": [
        {
          "name": "max",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "min",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "average",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "clamp",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "floor_log2",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u8"
          ]
        },
        {
          "name": "log2",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        },
        {
          "name": "pow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "sqrt",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "u64"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "object",
      "friends": [
        "0x1::primary_fungible_store",
        "0x1::coin"
      ],
      "exposed_functions": [
        {
          "name": "new_event_handle",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&signer"
          ],
          "return": [
            "0x1::event::EventHandle<T0>"
          ]
        },
        {
          "name": "create_guid",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "0x1::guid::GUID"
          ]
        },
        {
          "name": "address_from_constructor_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "address_from_delete_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::DeleteRef"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "address_from_extend_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ExtendRef"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "address_to_object",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "address"
          ],
          "return": [
            "0x1::object::Object<T0>"
          ]
        },
        {
          "name": "burn",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>"
          ],
          "return": []
        },
        {
          "name": "owner",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "can_generate_delete_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "convert",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            },
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::object::Object<T1>"
          ]
        },
        {
          "name": "create_guid_object_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "create_named_object",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": [
            "0x1::object::ConstructorRef"
          ]
        },
        {
          "name": "create_named_unowned_onchain_signer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": [
            "0x1::object::ExtendRef"
          ]
        },
        {
          "name": "create_object",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "0x1::object::ConstructorRef"
          ]
        },
        {
          "name": "create_object_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&address",
            "vector<u8>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "create_object_from_account",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "0x1::object::ConstructorRef"
          ]
        },
        {
          "name": "create_object_from_object",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "0x1::object::ConstructorRef"
          ]
        },
        {
          "name": "create_sticky_object",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "0x1::object::ConstructorRef"
          ]
        },
        {
          "name": "create_sticky_object_at_address",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "0x1::object::ConstructorRef"
          ]
        },
        {
          "name": "object_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&0x1::object::Object<T0>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "create_unique_onchain_signer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::object::ExtendRef"
          ]
        },
        {
          "name": "create_user_derived_object",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "&0x1::object::DeriveRef"
          ],
          "return": [
            "0x1::object::ConstructorRef"
          ]
        },
        {
          "name": "create_user_derived_object_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "delete",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::object::DeleteRef"
          ],
          "return": []
        },
        {
          "name": "disable_ungated_transfer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::TransferRef"
          ],
          "return": []
        },
        {
          "name": "enable_ungated_transfer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::TransferRef"
          ],
          "return": []
        },
        {
          "name": "generate_delete_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "0x1::object::DeleteRef"
          ]
        },
        {
          "name": "generate_derive_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "0x1::object::DeriveRef"
          ]
        },
        {
          "name": "generate_extend_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "0x1::object::ExtendRef"
          ]
        },
        {
          "name": "generate_linear_transfer_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::TransferRef"
          ],
          "return": [
            "0x1::object::LinearTransferRef"
          ]
        },
        {
          "name": "generate_signer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "generate_signer_for_extending",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ExtendRef"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "generate_transfer_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "0x1::object::TransferRef"
          ]
        },
        {
          "name": "grant_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "&signer",
            "0x1::object::Object<T0>"
          ],
          "return": []
        },
        {
          "name": "grant_permission_with_transfer_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&0x1::object::TransferRef"
          ],
          "return": []
        },
        {
          "name": "is_burnt",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_object",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_owner",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>",
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_untransferable",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "object_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "object_from_constructor_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "0x1::object::Object<T0>"
          ]
        },
        {
          "name": "object_from_delete_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&0x1::object::DeleteRef"
          ],
          "return": [
            "0x1::object::Object<T0>"
          ]
        },
        {
          "name": "owns",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>",
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "root_owner",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "set_untransferable",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": []
        },
        {
          "name": "transfer",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>",
            "address"
          ],
          "return": []
        },
        {
          "name": "transfer_call",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "transfer_raw",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "transfer_to_object",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            },
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>",
            "0x1::object::Object<T1>"
          ],
          "return": []
        },
        {
          "name": "transfer_with_constructor_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef",
            "address"
          ],
          "return": []
        },
        {
          "name": "transfer_with_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::object::LinearTransferRef",
            "address"
          ],
          "return": []
        },
        {
          "name": "unburn",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>"
          ],
          "return": []
        },
        {
          "name": "ungated_transfer_allowed",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "ConstructorRef",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "self",
              "type": "address"
            },
            {
              "name": "can_delete",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "DeleteRef",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "self",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "DeriveRef",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "self",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "ExtendRef",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "self",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "LinearTransferRef",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "self",
              "type": "address"
            },
            {
              "name": "owner",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "Object",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "inner",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "ObjectCore",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "guid_creation_num",
              "type": "u64"
            },
            {
              "name": "owner",
              "type": "address"
            },
            {
              "name": "allow_ungated_transfer",
              "type": "bool"
            },
            {
              "name": "transfer_events",
              "type": "0x1::event::EventHandle<0x1::object::TransferEvent>"
            }
          ],
          "variants": []
        },
        {
          "name": "ObjectGroup",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "TombStone",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "original_owner",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "Transfer",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "object",
              "type": "address"
            },
            {
              "name": "from",
              "type": "address"
            },
            {
              "name": "to",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "TransferEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "object",
              "type": "address"
            },
            {
              "name": "from",
              "type": "address"
            },
            {
              "name": "to",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "TransferPermission",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "object",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "TransferRef",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "self",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "Untransferable",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "option",
      "friends": [],
      "exposed_functions": [
        {
          "name": "contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::option::Option<T0>",
            "&T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "swap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::option::Option<T0>",
            "T0"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::option::Option<T0>"
          ],
          "return": [
            "&T0"
          ]
        },
        {
          "name": "borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::option::Option<T0>"
          ],
          "return": [
            "&mut T0"
          ]
        },
        {
          "name": "borrow_with_default",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::option::Option<T0>",
            "&T0"
          ],
          "return": [
            "&T0"
          ]
        },
        {
          "name": "destroy_none",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::option::Option<T0>"
          ],
          "return": []
        },
        {
          "name": "destroy_some",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::option::Option<T0>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "destroy_with_default",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "0x1::option::Option<T0>",
            "T0"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "extract",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::option::Option<T0>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "fill",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::option::Option<T0>",
            "T0"
          ],
          "return": []
        },
        {
          "name": "from_vec",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "vector<T0>"
          ],
          "return": [
            "0x1::option::Option<T0>"
          ]
        },
        {
          "name": "get_with_default",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            }
          ],
          "params": [
            "&0x1::option::Option<T0>",
            "T0"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "is_none",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::option::Option<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_some",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::option::Option<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "none",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::option::Option<T0>"
          ]
        },
        {
          "name": "some",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "T0"
          ],
          "return": [
            "0x1::option::Option<T0>"
          ]
        },
        {
          "name": "swap_or_fill",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::option::Option<T0>",
            "T0"
          ],
          "return": [
            "0x1::option::Option<T0>"
          ]
        },
        {
          "name": "to_vec",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::option::Option<T0>"
          ],
          "return": [
            "vector<T0>"
          ]
        }
      ],
      "structs": [
        {
          "name": "Option",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "vec",
              "type": "vector<T0>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "result",
      "friends": [],
      "exposed_functions": [
        {
          "name": "is_err",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::result::Result<T0, T1>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_ok",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::result::Result<T0, T1>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "unwrap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::result::Result<T0, T1>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "unwrap_err",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::result::Result<T0, T1>"
          ],
          "return": [
            "T1"
          ]
        }
      ],
      "structs": [
        {
          "name": "Result",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [],
          "variants": [
            {
              "name": "Ok",
              "fields": [
                {
                  "name": "_0",
                  "type": "T0"
                }
              ]
            },
            {
              "name": "Err",
              "fields": [
                {
                  "name": "_0",
                  "type": "T1"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "signer",
      "friends": [],
      "exposed_functions": [
        {
          "name": "address_of",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "borrow_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "&address"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "string",
      "friends": [],
      "exposed_functions": [
        {
          "name": "index_of",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::string::String",
            "&0x1::string::String"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "append",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::string::String",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "insert",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::string::String",
            "u64",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "is_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::string::String"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "length",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::string::String"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "append_utf8",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::string::String",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::string::String"
          ],
          "return": [
            "&vector<u8>"
          ]
        },
        {
          "name": "internal_check_utf8",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&vector<u8>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "into_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::string::String"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "sub_string",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::string::String",
            "u64",
            "u64"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "try_utf8",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::string::String>"
          ]
        },
        {
          "name": "utf8",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::string::String"
          ]
        }
      ],
      "structs": [
        {
          "name": "String",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "vector",
      "friends": [],
      "exposed_functions": [
        {
          "name": "contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&vector<T0>",
            "&T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "index_of",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&vector<T0>",
            "&T0"
          ],
          "return": [
            "bool",
            "u64"
          ]
        },
        {
          "name": "range",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "vector<u64>"
          ]
        },
        {
          "name": "remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "u64"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "replace",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "u64",
            "T0"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "swap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "u64",
            "u64"
          ],
          "return": []
        },
        {
          "name": "append",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "vector<T0>"
          ],
          "return": []
        },
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&vector<T0>",
            "u64"
          ],
          "return": [
            "&T0"
          ]
        },
        {
          "name": "borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "u64"
          ],
          "return": [
            "&mut T0"
          ]
        },
        {
          "name": "destroy_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "vector<T0>"
          ],
          "return": []
        },
        {
          "name": "empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "vector<T0>"
          ]
        },
        {
          "name": "insert",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "u64",
            "T0"
          ],
          "return": []
        },
        {
          "name": "is_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&vector<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "last",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&vector<T0>"
          ],
          "return": [
            "&T0"
          ]
        },
        {
          "name": "last_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>"
          ],
          "return": [
            "&mut T0"
          ]
        },
        {
          "name": "length",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&vector<T0>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "move_range",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "u64",
            "u64",
            "&mut vector<T0>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "pop_back",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "push_back",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "T0"
          ],
          "return": []
        },
        {
          "name": "range_with_step",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64",
            "u64"
          ],
          "return": [
            "vector<u64>"
          ]
        },
        {
          "name": "remove_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "&T0"
          ],
          "return": [
            "vector<T0>"
          ]
        },
        {
          "name": "reverse",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>"
          ],
          "return": []
        },
        {
          "name": "reverse_append",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "vector<T0>"
          ],
          "return": []
        },
        {
          "name": "reverse_slice",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "u64",
            "u64"
          ],
          "return": []
        },
        {
          "name": "rotate",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "rotate_slice",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "u64",
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "singleton",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "T0"
          ],
          "return": [
            "vector<T0>"
          ]
        },
        {
          "name": "slice",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy"
              ]
            }
          ],
          "params": [
            "&vector<T0>",
            "u64",
            "u64"
          ],
          "return": [
            "vector<T0>"
          ]
        },
        {
          "name": "swap_remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "u64"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "trim",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "u64"
          ],
          "return": [
            "vector<T0>"
          ]
        },
        {
          "name": "trim_reverse",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut vector<T0>",
            "u64"
          ],
          "return": [
            "vector<T0>"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "voting",
      "friends": [],
      "exposed_functions": [
        {
          "name": "grant_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer"
          ],
          "return": []
        },
        {
          "name": "register",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "can_be_resolved_early",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::voting::Proposal<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "create_proposal",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "address",
            "T0",
            "vector<u8>",
            "u128",
            "u64",
            "0x1::option::Option<u128>",
            "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "create_proposal_v2",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "address",
            "T0",
            "vector<u8>",
            "u128",
            "u64",
            "0x1::option::Option<u128>",
            "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>",
            "bool"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_early_resolution_vote_threshold",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "0x1::option::Option<u128>"
          ]
        },
        {
          "name": "get_execution_hash",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "get_min_vote_threshold",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "get_proposal_creation_secs",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_proposal_expiration_secs",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_proposal_metadata",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
          ]
        },
        {
          "name": "get_proposal_metadata_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64",
            "0x1::string::String"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "get_proposal_state",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_proposer",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_resolution_time_secs",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_votes",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "u128",
            "u128"
          ]
        },
        {
          "name": "is_multi_step_proposal_in_execution",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_resolved",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_voting_closed",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "next_proposal_id",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "resolve",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "resolve_proposal_v2",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "address",
            "u64",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "vote",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&T0",
            "address",
            "u64",
            "u64",
            "bool"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "CreateProposal",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "early_resolution_vote_threshold",
              "type": "0x1::option::Option<u128>"
            },
            {
              "name": "execution_hash",
              "type": "vector<u8>"
            },
            {
              "name": "expiration_secs",
              "type": "u64"
            },
            {
              "name": "metadata",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
            },
            {
              "name": "min_vote_threshold",
              "type": "u128"
            }
          ],
          "variants": []
        },
        {
          "name": "CreateProposalEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "early_resolution_vote_threshold",
              "type": "0x1::option::Option<u128>"
            },
            {
              "name": "execution_hash",
              "type": "vector<u8>"
            },
            {
              "name": "expiration_secs",
              "type": "u64"
            },
            {
              "name": "metadata",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
            },
            {
              "name": "min_vote_threshold",
              "type": "u128"
            }
          ],
          "variants": []
        },
        {
          "name": "Proposal",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "fields": [
            {
              "name": "proposer",
              "type": "address"
            },
            {
              "name": "execution_content",
              "type": "0x1::option::Option<T0>"
            },
            {
              "name": "metadata",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
            },
            {
              "name": "creation_time_secs",
              "type": "u64"
            },
            {
              "name": "execution_hash",
              "type": "vector<u8>"
            },
            {
              "name": "min_vote_threshold",
              "type": "u128"
            },
            {
              "name": "expiration_secs",
              "type": "u64"
            },
            {
              "name": "early_resolution_vote_threshold",
              "type": "0x1::option::Option<u128>"
            },
            {
              "name": "yes_votes",
              "type": "u128"
            },
            {
              "name": "no_votes",
              "type": "u128"
            },
            {
              "name": "is_resolved",
              "type": "bool"
            },
            {
              "name": "resolution_time_secs",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "RegisterForum",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "hosting_account",
              "type": "address"
            },
            {
              "name": "proposal_type_info",
              "type": "0x1::type_info::TypeInfo"
            }
          ],
          "variants": []
        },
        {
          "name": "RegisterForumEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "hosting_account",
              "type": "address"
            },
            {
              "name": "proposal_type_info",
              "type": "0x1::type_info::TypeInfo"
            }
          ],
          "variants": []
        },
        {
          "name": "ResolveProposal",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "yes_votes",
              "type": "u128"
            },
            {
              "name": "no_votes",
              "type": "u128"
            },
            {
              "name": "resolved_early",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "Vote",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "num_votes",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "VoteEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "num_votes",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "VotePermission",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "VotingEvents",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "create_proposal_events",
              "type": "0x1::event::EventHandle<0x1::voting::CreateProposalEvent>"
            },
            {
              "name": "register_forum_events",
              "type": "0x1::event::EventHandle<0x1::voting::RegisterForumEvent>"
            },
            {
              "name": "resolve_proposal_events",
              "type": "0x1::event::EventHandle<0x1::voting::ResolveProposal>"
            },
            {
              "name": "vote_events",
              "type": "0x1::event::EventHandle<0x1::voting::VoteEvent>"
            }
          ],
          "variants": []
        },
        {
          "name": "VotingForum",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "fields": [
            {
              "name": "proposals",
              "type": "0x1::table::Table<u64, 0x1::voting::Proposal<T0>>"
            },
            {
              "name": "events",
              "type": "0x1::voting::VotingEvents"
            },
            {
              "name": "next_proposal_id",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "account",
      "friends": [
        "0x1::coin",
        "0x1::aptos_account",
        "0x1::keyless_account",
        "0x1::transaction_validation",
        "0x1::genesis",
        "0x1::multisig_account",
        "0x1::resource_account"
      ],
      "exposed_functions": [
        {
          "name": "new_event_handle",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&signer"
          ],
          "return": [
            "0x1::event::EventHandle<T0>"
          ]
        },
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "create_account",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "create_account_if_does_not_exist",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "create_authorized_signer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "create_framework_reserved_account",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "signer",
            "0x1::account::SignerCapability"
          ]
        },
        {
          "name": "create_guid",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "0x1::guid::GUID"
          ]
        },
        {
          "name": "create_resource_account",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": [
            "signer",
            "0x1::account::SignerCapability"
          ]
        },
        {
          "name": "create_resource_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&address",
            "vector<u8>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "create_signer_with_capability",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::account::SignerCapability"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "encrypted_dk_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "exists_at",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "get_authentication_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "get_encrypted_dk",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "0x1::account::EncryptedDK"
          ]
        },
        {
          "name": "get_guid_next_creation_num",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_rotation_capability_offer_for",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_sequence_number",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_signer_capability_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::account::SignerCapability"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_signer_capability_offer_for",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "grant_key_offering_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer"
          ],
          "return": []
        },
        {
          "name": "grant_key_rotation_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer"
          ],
          "return": []
        },
        {
          "name": "increment_sequence_number",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "is_rotation_capability_offered",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_signer_capability_offered",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "offer_rotation_capability",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "u8",
            "vector<u8>",
            "address"
          ],
          "return": []
        },
        {
          "name": "offer_signer_capability",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "u8",
            "vector<u8>",
            "address"
          ],
          "return": []
        },
        {
          "name": "originating_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "0x1::option::Option<address>"
          ]
        },
        {
          "name": "register_coin",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "revoke_any_rotation_capability",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "revoke_any_signer_capability",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "revoke_rotation_capability",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "revoke_signer_capability",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "rotate_authentication_key",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u8",
            "vector<u8>",
            "u8",
            "vector<u8>",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "rotate_authentication_key_call",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "rotate_authentication_key_from_public_key",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u8",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "rotate_authentication_key_internal",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "rotate_authentication_key_with_rotation_capability",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u8",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "set_originating_address",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "upsert_ed25519_backup_key_and_encrypt_dk",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<u8>",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "upsert_ed25519_backup_key_on_keyless_account",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "upsert_encrypted_dk",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "verify_signed_message",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "address",
            "u8",
            "vector<u8>",
            "vector<u8>",
            "T0"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Account",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "authentication_key",
              "type": "vector<u8>"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "guid_creation_num",
              "type": "u64"
            },
            {
              "name": "coin_register_events",
              "type": "0x1::event::EventHandle<0x1::account::CoinRegisterEvent>"
            },
            {
              "name": "key_rotation_events",
              "type": "0x1::event::EventHandle<0x1::account::KeyRotationEvent>"
            },
            {
              "name": "rotation_capability_offer",
              "type": "0x1::account::CapabilityOffer<0x1::account::RotationCapability>"
            },
            {
              "name": "signer_capability_offer",
              "type": "0x1::account::CapabilityOffer<0x1::account::SignerCapability>"
            }
          ],
          "variants": []
        },
        {
          "name": "AccountPermission",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "KeyRotation",
              "fields": []
            },
            {
              "name": "Offering",
              "fields": []
            }
          ]
        },
        {
          "name": "CapabilityOffer",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "for",
              "type": "0x1::option::Option<address>"
            }
          ],
          "variants": []
        },
        {
          "name": "CoinRegister",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "type_info",
              "type": "0x1::type_info::TypeInfo"
            }
          ],
          "variants": []
        },
        {
          "name": "CoinRegisterEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "type_info",
              "type": "0x1::type_info::TypeInfo"
            }
          ],
          "variants": []
        },
        {
          "name": "EncryptedDK",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "ciphertext",
                  "type": "vector<u8>"
                }
              ]
            }
          ]
        },
        {
          "name": "KeyRotation",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "old_authentication_key",
              "type": "vector<u8>"
            },
            {
              "name": "new_authentication_key",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "KeyRotationEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "old_authentication_key",
              "type": "vector<u8>"
            },
            {
              "name": "new_authentication_key",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "KeyRotationToPublicKey",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "verified_public_key_bit_map",
              "type": "vector<u8>"
            },
            {
              "name": "public_key_scheme",
              "type": "u8"
            },
            {
              "name": "public_key",
              "type": "vector<u8>"
            },
            {
              "name": "old_auth_key",
              "type": "vector<u8>"
            },
            {
              "name": "new_auth_key",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "OriginatingAddress",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "address_map",
              "type": "0x1::table::Table<address, address>"
            }
          ],
          "variants": []
        },
        {
          "name": "RotationCapability",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "RotationCapabilityOfferProofChallenge",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "recipient_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "RotationCapabilityOfferProofChallengeV2",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "chain_id",
              "type": "u8"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "source_address",
              "type": "address"
            },
            {
              "name": "recipient_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "RotationProofChallenge",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "originator",
              "type": "address"
            },
            {
              "name": "current_auth_key",
              "type": "address"
            },
            {
              "name": "new_public_key",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "SignerCapability",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "SignerCapabilityOfferProofChallenge",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "recipient_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "SignerCapabilityOfferProofChallengeV2",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "source_address",
              "type": "address"
            },
            {
              "name": "recipient_address",
              "type": "address"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "ed25519",
      "friends": [],
      "exposed_functions": [
        {
          "name": "signature_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ed25519::Signature"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "new_signature_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::ed25519::Signature"
          ]
        },
        {
          "name": "new_signed_message",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "T0"
          ],
          "return": [
            "0x1::ed25519::SignedMessage<T0>"
          ]
        },
        {
          "name": "new_unvalidated_public_key_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::ed25519::UnvalidatedPublicKey"
          ]
        },
        {
          "name": "new_validated_public_key_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::ed25519::ValidatedPublicKey>"
          ]
        },
        {
          "name": "public_key_into_unvalidated",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ed25519::ValidatedPublicKey"
          ],
          "return": [
            "0x1::ed25519::UnvalidatedPublicKey"
          ]
        },
        {
          "name": "public_key_to_unvalidated",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ed25519::ValidatedPublicKey"
          ],
          "return": [
            "0x1::ed25519::UnvalidatedPublicKey"
          ]
        },
        {
          "name": "public_key_validate",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ed25519::UnvalidatedPublicKey"
          ],
          "return": [
            "0x1::option::Option<0x1::ed25519::ValidatedPublicKey>"
          ]
        },
        {
          "name": "signature_verify_strict",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ed25519::Signature",
            "&0x1::ed25519::UnvalidatedPublicKey",
            "vector<u8>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "signature_verify_strict_t",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&0x1::ed25519::Signature",
            "&0x1::ed25519::UnvalidatedPublicKey",
            "T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "unvalidated_public_key_to_authentication_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ed25519::UnvalidatedPublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "unvalidated_public_key_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ed25519::UnvalidatedPublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "validated_public_key_to_authentication_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ed25519::ValidatedPublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "validated_public_key_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ed25519::ValidatedPublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        }
      ],
      "structs": [
        {
          "name": "Signature",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "SignedMessage",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "type_info",
              "type": "0x1::type_info::TypeInfo"
            },
            {
              "name": "inner",
              "type": "T0"
            }
          ],
          "variants": []
        },
        {
          "name": "UnvalidatedPublicKey",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "ValidatedPublicKey",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "genesis",
      "friends": [],
      "exposed_functions": [],
      "structs": [
        {
          "name": "AccountMap",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account_address",
              "type": "address"
            },
            {
              "name": "balance",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "EmployeeAccountMap",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "accounts",
              "type": "vector<address>"
            },
            {
              "name": "validator",
              "type": "0x1::genesis::ValidatorConfigurationWithCommission"
            },
            {
              "name": "vesting_schedule_numerator",
              "type": "vector<u64>"
            },
            {
              "name": "vesting_schedule_denominator",
              "type": "u64"
            },
            {
              "name": "beneficiary_resetter",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "ValidatorConfiguration",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "owner_address",
              "type": "address"
            },
            {
              "name": "operator_address",
              "type": "address"
            },
            {
              "name": "voter_address",
              "type": "address"
            },
            {
              "name": "stake_amount",
              "type": "u64"
            },
            {
              "name": "consensus_pubkey",
              "type": "vector<u8>"
            },
            {
              "name": "proof_of_possession",
              "type": "vector<u8>"
            },
            {
              "name": "network_addresses",
              "type": "vector<u8>"
            },
            {
              "name": "full_node_network_addresses",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "ValidatorConfigurationWithCommission",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "validator_config",
              "type": "0x1::genesis::ValidatorConfiguration"
            },
            {
              "name": "commission_percentage",
              "type": "u64"
            },
            {
              "name": "join_during_genesis",
              "type": "bool"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "keyless",
      "friends": [
        "0x1::federated_keyless"
      ],
      "exposed_functions": [
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::string::String",
            "vector<u8>"
          ],
          "return": [
            "0x1::keyless::PublicKey"
          ]
        },
        {
          "name": "deserialize_public_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "0x1::keyless::PublicKey"
          ]
        },
        {
          "name": "get_idc",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::keyless::PublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "get_iss",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::keyless::PublicKey"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "new_public_key_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::keyless::PublicKey"
          ]
        }
      ],
      "structs": [
        {
          "name": "PublicKey",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "iss",
              "type": "0x1::string::String"
            },
            {
              "name": "idc",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "math128",
      "friends": [],
      "exposed_functions": [
        {
          "name": "max",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128",
            "u128"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "min",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128",
            "u128"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "average",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128",
            "u128"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "clamp",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128",
            "u128",
            "u128"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "floor_log2",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128"
          ],
          "return": [
            "u8"
          ]
        },
        {
          "name": "log2",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        },
        {
          "name": "log2_64",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "pow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128",
            "u128"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "sqrt",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128"
          ],
          "return": [
            "u128"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "reflect",
      "friends": [],
      "exposed_functions": [
        {
          "name": "error_code",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::reflect::ReflectionError"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "resolve",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address",
            "&0x1::string::String",
            "&0x1::string::String"
          ],
          "return": [
            "0x1::result::Result<T0, 0x1::reflect::ReflectionError>"
          ]
        }
      ],
      "structs": [
        {
          "name": "ReflectionError",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "InvalidIdentifier",
              "fields": []
            },
            {
              "name": "FunctionNotFound",
              "fields": []
            },
            {
              "name": "FunctionNotAccessible",
              "fields": []
            },
            {
              "name": "FunctionIncompatibleType",
              "fields": []
            },
            {
              "name": "FunctionNotInstantiated",
              "fields": []
            }
          ]
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "version",
      "friends": [
        "0x1::reconfiguration_with_dkg",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "set_for_next_epoch",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "set_version",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "SetVersionCapability",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "Version",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "major",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "vesting",
      "friends": [
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "grant_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer"
          ],
          "return": []
        },
        {
          "name": "operator",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "voter",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "shareholder",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "operator_commission_percentage",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "set_beneficiary_for_operator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "update_commission_percentage",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "beneficiary",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "shareholders",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "vector<address>"
          ]
        },
        {
          "name": "distribute",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "reset_lockup",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "stake_pool_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "unlock_rewards",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "update_voter",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "accumulated_rewards",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "admin_withdraw",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "create_vesting_contract",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&vector<address>",
            "0x1::simple_map::SimpleMap<address, 0x1::coin::Coin<0x1::aptos_coin::AptosCoin>>",
            "0x1::vesting::VestingSchedule",
            "address",
            "address",
            "address",
            "u64",
            "vector<u8>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "vesting_schedule",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "0x1::vesting::VestingSchedule"
          ]
        },
        {
          "name": "create_vesting_schedule",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<0x1::fixed_point32::FixedPoint32>",
            "u64",
            "u64"
          ],
          "return": [
            "0x1::vesting::VestingSchedule"
          ]
        },
        {
          "name": "distribute_many",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<address>"
          ],
          "return": []
        },
        {
          "name": "get_role_holder",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::string::String"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_vesting_account_signer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "period_duration_secs",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "remaining_grant",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "reset_beneficiary",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_beneficiary",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_beneficiary_resetter",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_management_role",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "0x1::string::String",
            "address"
          ],
          "return": []
        },
        {
          "name": "terminate_vesting_contract",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "total_accumulated_rewards",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "unlock_rewards_many",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<address>"
          ],
          "return": []
        },
        {
          "name": "update_operator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "update_operator_with_same_commission",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "vest",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "vest_many",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<address>"
          ],
          "return": []
        },
        {
          "name": "vesting_contracts",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "vector<address>"
          ]
        },
        {
          "name": "vesting_start_secs",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        }
      ],
      "structs": [
        {
          "name": "Distribute",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "DistributeEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "ResetLockup",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "staking_pool_address",
              "type": "address"
            },
            {
              "name": "new_lockup_expiration_secs",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "ResetLockupEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "staking_pool_address",
              "type": "address"
            },
            {
              "name": "new_lockup_expiration_secs",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "UpdateVoter",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "staking_pool_address",
              "type": "address"
            },
            {
              "name": "old_voter",
              "type": "address"
            },
            {
              "name": "new_voter",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "UpdateVoterEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "staking_pool_address",
              "type": "address"
            },
            {
              "name": "old_voter",
              "type": "address"
            },
            {
              "name": "new_voter",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "AdminStore",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "vesting_contracts",
              "type": "vector<address>"
            },
            {
              "name": "nonce",
              "type": "u64"
            },
            {
              "name": "create_events",
              "type": "0x1::event::EventHandle<0x1::vesting::CreateVestingContractEvent>"
            }
          ],
          "variants": []
        },
        {
          "name": "AdminWithdraw",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "AdminWithdrawEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "CreateVestingContract",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "grant_amount",
              "type": "u64"
            },
            {
              "name": "withdrawal_address",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "staking_pool_address",
              "type": "address"
            },
            {
              "name": "commission_percentage",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "CreateVestingContractEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "grant_amount",
              "type": "u64"
            },
            {
              "name": "withdrawal_address",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "staking_pool_address",
              "type": "address"
            },
            {
              "name": "commission_percentage",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "SetBeneficiary",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "shareholder",
              "type": "address"
            },
            {
              "name": "old_beneficiary",
              "type": "address"
            },
            {
              "name": "new_beneficiary",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "SetBeneficiaryEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "shareholder",
              "type": "address"
            },
            {
              "name": "old_beneficiary",
              "type": "address"
            },
            {
              "name": "new_beneficiary",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "StakingInfo",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "commission_percentage",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "Terminate",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "TerminateEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "UnlockRewards",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "staking_pool_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "UnlockRewardsEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "staking_pool_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "UpdateOperator",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "staking_pool_address",
              "type": "address"
            },
            {
              "name": "old_operator",
              "type": "address"
            },
            {
              "name": "new_operator",
              "type": "address"
            },
            {
              "name": "commission_percentage",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "UpdateOperatorEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "staking_pool_address",
              "type": "address"
            },
            {
              "name": "old_operator",
              "type": "address"
            },
            {
              "name": "new_operator",
              "type": "address"
            },
            {
              "name": "commission_percentage",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "Vest",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "staking_pool_address",
              "type": "address"
            },
            {
              "name": "period_vested",
              "type": "u64"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "VestEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "vesting_contract_address",
              "type": "address"
            },
            {
              "name": "staking_pool_address",
              "type": "address"
            },
            {
              "name": "period_vested",
              "type": "u64"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "VestPermission",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "VestingAccountManagement",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "roles",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, address>"
            }
          ],
          "variants": []
        },
        {
          "name": "VestingContract",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "state",
              "type": "u64"
            },
            {
              "name": "admin",
              "type": "address"
            },
            {
              "name": "grant_pool",
              "type": "0x1::pool_u64::Pool"
            },
            {
              "name": "beneficiaries",
              "type": "0x1::simple_map::SimpleMap<address, address>"
            },
            {
              "name": "vesting_schedule",
              "type": "0x1::vesting::VestingSchedule"
            },
            {
              "name": "withdrawal_address",
              "type": "address"
            },
            {
              "name": "staking",
              "type": "0x1::vesting::StakingInfo"
            },
            {
              "name": "remaining_grant",
              "type": "u64"
            },
            {
              "name": "signer_cap",
              "type": "0x1::account::SignerCapability"
            },
            {
              "name": "update_operator_events",
              "type": "0x1::event::EventHandle<0x1::vesting::UpdateOperatorEvent>"
            },
            {
              "name": "update_voter_events",
              "type": "0x1::event::EventHandle<0x1::vesting::UpdateVoterEvent>"
            },
            {
              "name": "reset_lockup_events",
              "type": "0x1::event::EventHandle<0x1::vesting::ResetLockupEvent>"
            },
            {
              "name": "set_beneficiary_events",
              "type": "0x1::event::EventHandle<0x1::vesting::SetBeneficiaryEvent>"
            },
            {
              "name": "unlock_rewards_events",
              "type": "0x1::event::EventHandle<0x1::vesting::UnlockRewardsEvent>"
            },
            {
              "name": "vest_events",
              "type": "0x1::event::EventHandle<0x1::vesting::VestEvent>"
            },
            {
              "name": "distribute_events",
              "type": "0x1::event::EventHandle<0x1::vesting::DistributeEvent>"
            },
            {
              "name": "terminate_events",
              "type": "0x1::event::EventHandle<0x1::vesting::TerminateEvent>"
            },
            {
              "name": "admin_withdraw_events",
              "type": "0x1::event::EventHandle<0x1::vesting::AdminWithdrawEvent>"
            }
          ],
          "variants": []
        },
        {
          "name": "VestingSchedule",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "schedule",
              "type": "vector<0x1::fixed_point32::FixedPoint32>"
            },
            {
              "name": "start_timestamp_secs",
              "type": "u64"
            },
            {
              "name": "period_duration",
              "type": "u64"
            },
            {
              "name": "last_vested_period",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "bls12381",
      "friends": [],
      "exposed_functions": [
        {
          "name": "aggr_or_multi_signature_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::bls12381::AggrOrMultiSignature"
          ]
        },
        {
          "name": "aggr_or_multi_signature_subgroup_check",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::AggrOrMultiSignature"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "aggr_or_multi_signature_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::AggrOrMultiSignature"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "aggregate_pubkey_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::AggrPublicKeysWithPoP"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "aggregate_pubkeys",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<0x1::bls12381::PublicKeyWithPoP>"
          ],
          "return": [
            "0x1::bls12381::AggrPublicKeysWithPoP"
          ]
        },
        {
          "name": "aggregate_signatures",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<0x1::bls12381::Signature>"
          ],
          "return": [
            "0x1::option::Option<0x1::bls12381::AggrOrMultiSignature>"
          ]
        },
        {
          "name": "proof_of_possession_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::bls12381::ProofOfPossession"
          ]
        },
        {
          "name": "proof_of_possession_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::ProofOfPossession"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "public_key_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::bls12381::PublicKey>"
          ]
        },
        {
          "name": "public_key_from_bytes_with_pop",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>",
            "&0x1::bls12381::ProofOfPossession"
          ],
          "return": [
            "0x1::option::Option<0x1::bls12381::PublicKeyWithPoP>"
          ]
        },
        {
          "name": "public_key_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::PublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "public_key_with_pop_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::PublicKeyWithPoP"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "public_key_with_pop_to_normal",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::PublicKeyWithPoP"
          ],
          "return": [
            "0x1::bls12381::PublicKey"
          ]
        },
        {
          "name": "signature_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::bls12381::Signature"
          ]
        },
        {
          "name": "signature_subgroup_check",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::Signature"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "signature_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::Signature"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "verify_aggregate_signature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::AggrOrMultiSignature",
            "vector<0x1::bls12381::PublicKeyWithPoP>",
            "vector<vector<u8>>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "verify_multisignature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::AggrOrMultiSignature",
            "&0x1::bls12381::AggrPublicKeysWithPoP",
            "vector<u8>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "verify_normal_signature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::Signature",
            "&0x1::bls12381::PublicKey",
            "vector<u8>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "verify_signature_share",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bls12381::Signature",
            "&0x1::bls12381::PublicKeyWithPoP",
            "vector<u8>"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "AggrOrMultiSignature",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "AggrPublicKeysWithPoP",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "ProofOfPossession",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "PublicKey",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "PublicKeyWithPoP",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "Signature",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "chain_id",
      "friends": [
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "get",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u8"
          ]
        },
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u8"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "ChainId",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "id",
              "type": "u8"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "features",
      "friends": [],
      "exposed_functions": [
        {
          "name": "abort_if_multisig_payload_mismatch_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "aggregator_snapshots_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "aggregator_v2_api_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "aggregator_v2_is_at_least_api_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "allow_vm_binary_format_v6",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "aptos_stdlib_chain_id_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "auids_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "blake2b_256_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "bls12_381_structures_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "bn254_structures_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "bulletproofs_batch_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "bulletproofs_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "change_feature_flags",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u64>",
            "vector<u64>"
          ],
          "return": []
        },
        {
          "name": "change_feature_flags_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u64>",
            "vector<u64>"
          ],
          "return": []
        },
        {
          "name": "code_dependency_check_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "coin_to_fungible_asset_migration_feature_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "collect_and_distribute_gas_fees",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "commission_change_delegation_pool_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "concurrent_assets_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "concurrent_fungible_assets_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "concurrent_fungible_balance_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "concurrent_token_v2_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "cryptography_algebra_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "default_to_concurrent_fungible_balance_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "delegation_pool_allowlisting_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "delegation_pool_partial_governance_voting_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "delegation_pools_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "dispatchable_fungible_asset_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "fee_payer_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "get_abort_if_multisig_payload_mismatch_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_account_abstraction_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_aggregator_snapshots_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_aggregator_v2_api_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_aptos_stdlib_chain_id_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_auids",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_blake2b_256_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_bls12_381_strutures_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_bn254_strutures_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_bulletproofs_batch_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_bulletproofs_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_calculate_transaction_fee_for_distribution_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_coin_to_fungible_asset_migration_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_collect_and_distribute_gas_fees_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_collection_owner_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_commission_change_delegation_pool_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_concurrent_assets_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_concurrent_fungible_assets_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_concurrent_fungible_balance_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_concurrent_token_v2_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_cryptography_algebra_natives_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_default_account_resource_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_default_to_concurrent_fungible_balance_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_delegation_pool_allowlisting_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_delegation_pool_partial_governance_voting",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_delegation_pools_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_dispatchable_fungible_asset_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_distribute_transaction_fee_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_encrypted_transactions_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_function_reflection_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_jwk_consensus_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_jwk_consensus_per_key_mode_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_keyless_accounts_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_keyless_accounts_with_passkeys_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_keyless_but_zkless_accounts_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_max_object_nesting_check_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_module_event_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_module_event_migration_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_monotonically_increasing_counter_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_multisig_accounts_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_multisig_timelock_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_multisig_v2_enhancement_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_native_memory_operations_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_new_accounts_default_to_fa_apt_store_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_new_accounts_default_to_fa_store_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_object_native_derived_address_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_operations_default_to_fa_apt_store_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_operator_beneficiary_change_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_orderless_transactions_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_partial_governance_voting",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_periodical_reward_rate_decrease_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_permissioned_signer_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_primary_apt_fungible_store_at_user_address_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_reconfigure_with_dkg_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_resource_groups_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_sha_512_and_ripemd_160_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_signer_native_format_fix_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_slh_dsa_sha2_128s_signature_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_sponsored_automatic_account_creation",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_transaction_context_extension_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_transaction_limits_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_transaction_simulation_enhancement_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_vm_binary_format_v6",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "is_account_abstraction_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_calculate_transaction_fee_for_distribution_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_collection_owner_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_default_account_resource_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_derivable_account_abstraction_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_distribute_transaction_fee_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_domain_account_abstraction_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_encrypted_transactions_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_function_reflection_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_jwk_consensus_per_key_mode_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_monotonically_increasing_counter_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_multisig_timelock_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_native_memory_operations_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_object_code_deployment_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_permissioned_signer_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_storage_slot_natives_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_transaction_limits_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "jwk_consensus_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "keyless_accounts_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "keyless_accounts_with_passkeys_feature_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "keyless_but_zkless_accounts_feature_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "max_object_nesting_check_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "module_event_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "module_event_migration_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "multi_ed25519_pk_validate_v2_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "multi_ed25519_pk_validate_v2_feature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "multisig_accounts_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "multisig_v2_enhancement_feature_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "new_accounts_default_to_fa_apt_store_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "new_accounts_default_to_fa_store_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "object_native_derived_address_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "on_new_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "operations_default_to_fa_apt_store_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "operator_beneficiary_change_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "orderless_transactions_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "partial_governance_voting_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "periodical_reward_rate_decrease_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "primary_apt_fungible_store_at_user_address_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "reconfigure_with_dkg_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "resource_groups_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "sha_512_and_ripemd_160_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "signer_native_format_fix_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "slh_dsa_sha2_128s_signature_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "sponsored_automatic_account_creation_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "transaction_context_extension_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "transaction_simulation_enhancement_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "treat_friend_as_private",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "Features",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "features",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "PendingFeatures",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "features",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "from_bcs",
      "friends": [
        "0x1::any",
        "0x1::copyable_any"
      ],
      "exposed_functions": [
        {
          "name": "to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "from_bytes",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "to_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "to_bool",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "to_string",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "to_u128",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "to_u16",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "u16"
          ]
        },
        {
          "name": "to_u256",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "u256"
          ]
        },
        {
          "name": "to_u32",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "u32"
          ]
        },
        {
          "name": "to_u64",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "to_u8",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "u8"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "pool_u64",
      "friends": [],
      "exposed_functions": [
        {
          "name": "contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64::Pool",
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "0x1::pool_u64::Pool"
          ]
        },
        {
          "name": "destroy_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::pool_u64::Pool"
          ],
          "return": []
        },
        {
          "name": "create",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "0x1::pool_u64::Pool"
          ]
        },
        {
          "name": "amount_to_shares",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64::Pool",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "amount_to_shares_with_total_coins",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64::Pool",
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "total_coins",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64::Pool"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "balance",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64::Pool",
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "buy_in",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::pool_u64::Pool",
            "address",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "create_with_scaling_factor",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "0x1::pool_u64::Pool"
          ]
        },
        {
          "name": "multiply_then_divide",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64::Pool",
            "u64",
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "redeem_shares",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::pool_u64::Pool",
            "address",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "shareholders",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64::Pool"
          ],
          "return": [
            "vector<address>"
          ]
        },
        {
          "name": "shareholders_count",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64::Pool"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "shares",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64::Pool",
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "shares_to_amount",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64::Pool",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "shares_to_amount_with_total_coins",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64::Pool",
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "total_shares",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64::Pool"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "transfer_shares",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::pool_u64::Pool",
            "address",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "update_total_coins",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::pool_u64::Pool",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Pool",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "shareholders_limit",
              "type": "u64"
            },
            {
              "name": "total_coins",
              "type": "u64"
            },
            {
              "name": "total_shares",
              "type": "u64"
            },
            {
              "name": "shares",
              "type": "0x1::simple_map::SimpleMap<address, u64>"
            },
            {
              "name": "shareholders",
              "type": "vector<address>"
            },
            {
              "name": "scaling_factor",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "auth_data",
      "friends": [],
      "exposed_functions": [
        {
          "name": "authenticator",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::auth_data::AbstractionAuthData"
          ],
          "return": [
            "&vector<u8>"
          ]
        },
        {
          "name": "derivable_abstract_public_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::auth_data::AbstractionAuthData"
          ],
          "return": [
            "&vector<u8>"
          ]
        },
        {
          "name": "derivable_abstract_signature",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::auth_data::AbstractionAuthData"
          ],
          "return": [
            "&vector<u8>"
          ]
        },
        {
          "name": "digest",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::auth_data::AbstractionAuthData"
          ],
          "return": [
            "&vector<u8>"
          ]
        },
        {
          "name": "is_derivable",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::auth_data::AbstractionAuthData"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "AbstractionAuthData",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "digest",
                  "type": "vector<u8>"
                },
                {
                  "name": "authenticator",
                  "type": "vector<u8>"
                }
              ]
            },
            {
              "name": "DerivableV1",
              "fields": [
                {
                  "name": "digest",
                  "type": "vector<u8>"
                },
                {
                  "name": "abstract_signature",
                  "type": "vector<u8>"
                },
                {
                  "name": "abstract_public_key",
                  "type": "vector<u8>"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "multi_key",
      "friends": [],
      "exposed_functions": [
        {
          "name": "new_public_key_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::multi_key::MultiKey"
          ]
        },
        {
          "name": "to_authentication_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_key::MultiKey"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "deserialize_multi_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "0x1::multi_key::MultiKey"
          ]
        },
        {
          "name": "new_multi_key_from_single_keys",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<0x1::single_key::AnyPublicKey>",
            "u8"
          ],
          "return": [
            "0x1::multi_key::MultiKey"
          ]
        }
      ],
      "structs": [
        {
          "name": "MultiKey",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "public_keys",
              "type": "vector<0x1::single_key::AnyPublicKey>"
            },
            {
              "name": "signatures_required",
              "type": "u8"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "secp256k1",
      "friends": [],
      "exposed_functions": [
        {
          "name": "ecdsa_raw_public_key_from_64_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::secp256k1::ECDSARawPublicKey"
          ]
        },
        {
          "name": "ecdsa_raw_public_key_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::secp256k1::ECDSARawPublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "ecdsa_recover",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>",
            "u8",
            "&0x1::secp256k1::ECDSASignature"
          ],
          "return": [
            "0x1::option::Option<0x1::secp256k1::ECDSARawPublicKey>"
          ]
        },
        {
          "name": "ecdsa_signature_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::secp256k1::ECDSASignature"
          ]
        },
        {
          "name": "ecdsa_signature_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::secp256k1::ECDSASignature"
          ],
          "return": [
            "vector<u8>"
          ]
        }
      ],
      "structs": [
        {
          "name": "ECDSARawPublicKey",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "ECDSASignature",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "secp256r1",
      "friends": [],
      "exposed_functions": [
        {
          "name": "ecdsa_raw_public_key_from_64_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::secp256r1::ECDSARawPublicKey"
          ]
        },
        {
          "name": "ecdsa_raw_public_key_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::secp256r1::ECDSARawPublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        }
      ],
      "structs": [
        {
          "name": "ECDSARawPublicKey",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "timestamp",
      "friends": [
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "now_microseconds",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "now_seconds",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "set_time_has_started",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "update_global_time",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "CurrentTimeMicroseconds",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "microseconds",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "type_info",
      "friends": [],
      "exposed_functions": [
        {
          "name": "account_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::type_info::TypeInfo"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "chain_id",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u8"
          ]
        },
        {
          "name": "module_name",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::type_info::TypeInfo"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "size_of_val",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&T0"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "struct_name",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::type_info::TypeInfo"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "type_name",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "type_of",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::type_info::TypeInfo"
          ]
        }
      ],
      "structs": [
        {
          "name": "TypeInfo",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account_address",
              "type": "address"
            },
            {
              "name": "module_name",
              "type": "vector<u8>"
            },
            {
              "name": "struct_name",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "aggregator",
      "friends": [],
      "exposed_functions": [
        {
          "name": "destroy",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::aggregator::Aggregator"
          ],
          "return": []
        },
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::aggregator::Aggregator",
            "u128"
          ],
          "return": []
        },
        {
          "name": "limit",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::aggregator::Aggregator"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "read",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::aggregator::Aggregator"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "sub",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::aggregator::Aggregator",
            "u128"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Aggregator",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "handle",
              "type": "address"
            },
            {
              "name": "key",
              "type": "address"
            },
            {
              "name": "limit",
              "type": "u128"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "aptos_coin",
      "friends": [
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "0x1::coin::BurnCapability<0x1::aptos_coin::AptosCoin>",
            "0x1::coin::MintCapability<0x1::aptos_coin::AptosCoin>"
          ]
        },
        {
          "name": "mint",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "destroy_mint_cap",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "claim_mint_capability",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "configure_accounts_for_test",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer",
            "0x1::coin::MintCapability<0x1::aptos_coin::AptosCoin>"
          ],
          "return": []
        },
        {
          "name": "delegate_mint_capability",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "has_mint_capability",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "AptosCoin",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "DelegatedMintCapability",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "to",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "Delegations",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "inner",
              "type": "vector<0x1::aptos_coin::DelegatedMintCapability>"
            }
          ],
          "variants": []
        },
        {
          "name": "MintCapStore",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "mint_cap",
              "type": "0x1::coin::MintCapability<0x1::aptos_coin::AptosCoin>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "aptos_hash",
      "friends": [],
      "exposed_functions": [
        {
          "name": "blake2b_256",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "keccak256",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "ripemd160",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "sha2_512",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "sha2_512_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&T0"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "sha3_512",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "sip_hash",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "sip_hash_from_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&T0"
          ],
          "return": [
            "u64"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "bcs_stream",
      "friends": [],
      "exposed_functions": [
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::bcs_stream::BCSStream"
          ]
        },
        {
          "name": "deserialize_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "deserialize_bool",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "deserialize_string",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "deserialize_u128",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "deserialize_u16",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "u16"
          ]
        },
        {
          "name": "deserialize_u256",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "u256"
          ]
        },
        {
          "name": "deserialize_u256_entry",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "deserialize_u32",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "u32"
          ]
        },
        {
          "name": "deserialize_u64",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "deserialize_u8",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "u8"
          ]
        },
        {
          "name": "deserialize_uleb128",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "has_remaining",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "BCSStream",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "data",
              "type": "vector<u8>"
            },
            {
              "name": "cur",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "big_vector",
      "friends": [
        "0x1::smart_vector"
      ],
      "exposed_functions": [
        {
          "name": "contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::big_vector::BigVector<T0>",
            "&T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "index_of",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::big_vector::BigVector<T0>",
            "&T0"
          ],
          "return": [
            "bool",
            "u64"
          ]
        },
        {
          "name": "remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::big_vector::BigVector<T0>",
            "u64"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "swap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::big_vector::BigVector<T0>",
            "u64",
            "u64"
          ],
          "return": []
        },
        {
          "name": "append",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::big_vector::BigVector<T0>",
            "0x1::big_vector::BigVector<T0>"
          ],
          "return": []
        },
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::big_vector::BigVector<T0>",
            "u64"
          ],
          "return": [
            "&T0"
          ]
        },
        {
          "name": "borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::big_vector::BigVector<T0>",
            "u64"
          ],
          "return": [
            "&mut T0"
          ]
        },
        {
          "name": "destroy",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "0x1::big_vector::BigVector<T0>"
          ],
          "return": []
        },
        {
          "name": "destroy_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::big_vector::BigVector<T0>"
          ],
          "return": []
        },
        {
          "name": "empty",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "u64"
          ],
          "return": [
            "0x1::big_vector::BigVector<T0>"
          ]
        },
        {
          "name": "is_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::big_vector::BigVector<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "length",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::big_vector::BigVector<T0>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "pop_back",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::big_vector::BigVector<T0>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "push_back",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::big_vector::BigVector<T0>",
            "T0"
          ],
          "return": []
        },
        {
          "name": "reverse",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::big_vector::BigVector<T0>"
          ],
          "return": []
        },
        {
          "name": "singleton",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "T0",
            "u64"
          ],
          "return": [
            "0x1::big_vector::BigVector<T0>"
          ]
        },
        {
          "name": "swap_remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::big_vector::BigVector<T0>",
            "u64"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "to_vector",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy"
              ]
            }
          ],
          "params": [
            "&0x1::big_vector::BigVector<T0>"
          ],
          "return": [
            "vector<T0>"
          ]
        }
      ],
      "structs": [
        {
          "name": "BigVector",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "buckets",
              "type": "0x1::table_with_length::TableWithLength<u64, vector<T0>>"
            },
            {
              "name": "end_index",
              "type": "u64"
            },
            {
              "name": "bucket_size",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "bit_vector",
      "friends": [],
      "exposed_functions": [
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "0x1::bit_vector::BitVector"
          ]
        },
        {
          "name": "length",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bit_vector::BitVector"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "is_index_set",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bit_vector::BitVector",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "longest_set_sequence_starting_at",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::bit_vector::BitVector",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "set",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bit_vector::BitVector",
            "u64"
          ],
          "return": []
        },
        {
          "name": "shift_left",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bit_vector::BitVector",
            "u64"
          ],
          "return": []
        },
        {
          "name": "unset",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bit_vector::BitVector",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "BitVector",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "length",
              "type": "u64"
            },
            {
              "name": "bit_field",
              "type": "vector<bool>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "capability",
      "friends": [],
      "exposed_functions": [
        {
          "name": "acquire",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "&T0"
          ],
          "return": [
            "0x1::capability::Cap<T0>"
          ]
        },
        {
          "name": "acquire_linear",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "&T0"
          ],
          "return": [
            "0x1::capability::LinearCap<T0>"
          ]
        },
        {
          "name": "create",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "&T0"
          ],
          "return": []
        },
        {
          "name": "delegate",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::capability::Cap<T0>",
            "&T0",
            "&signer"
          ],
          "return": []
        },
        {
          "name": "linear_root_addr",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::capability::LinearCap<T0>",
            "&T0"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "revoke",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::capability::Cap<T0>",
            "&T0",
            "address"
          ],
          "return": []
        },
        {
          "name": "root_addr",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::capability::Cap<T0>",
            "&T0"
          ],
          "return": [
            "address"
          ]
        }
      ],
      "structs": [
        {
          "name": "Cap",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "root",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "CapDelegateState",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "root",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "CapState",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "delegates",
              "type": "vector<address>"
            }
          ],
          "variants": []
        },
        {
          "name": "LinearCap",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "root",
              "type": "address"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "chunky_dkg",
      "friends": [
        "0x1::reconfiguration_with_dkg",
        "0x1::block"
      ],
      "exposed_functions": [
        {
          "name": "start",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "0x1::chunky_dkg_config::ChunkyDKGConfig",
            "vector<0x1::validator_consensus_info::ValidatorConsensusInfo>",
            "vector<0x1::validator_consensus_info::ValidatorConsensusInfo>"
          ],
          "return": []
        },
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "finish",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "incomplete_session",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::option::Option<0x1::chunky_dkg::ChunkyDKGSessionState>"
          ]
        },
        {
          "name": "is_session_started",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "last_completed_session",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::option::Option<0x1::chunky_dkg::ChunkyDKGSessionState>"
          ]
        },
        {
          "name": "session_dealer_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::chunky_dkg::ChunkyDKGSessionState"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "try_clear_incomplete_session",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "session_start_time",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::chunky_dkg::ChunkyDKGSessionState"
          ],
          "return": [
            "u64"
          ]
        }
      ],
      "structs": [
        {
          "name": "ChunkyDKGSessionMetadata",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dealer_epoch",
              "type": "u64"
            },
            {
              "name": "chunky_dkg_config",
              "type": "0x1::chunky_dkg_config::ChunkyDKGConfig"
            },
            {
              "name": "dealer_validator_set",
              "type": "vector<0x1::validator_consensus_info::ValidatorConsensusInfo>"
            },
            {
              "name": "target_validator_set",
              "type": "vector<0x1::validator_consensus_info::ValidatorConsensusInfo>"
            }
          ],
          "variants": []
        },
        {
          "name": "ChunkyDKGSessionState",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::chunky_dkg::ChunkyDKGSessionMetadata"
            },
            {
              "name": "start_time_us",
              "type": "u64"
            },
            {
              "name": "aggregated_subtranscript",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "ChunkyDKGStartEvent",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "session_metadata",
              "type": "0x1::chunky_dkg::ChunkyDKGSessionMetadata"
            },
            {
              "name": "start_time_us",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "ChunkyDKGState",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "last_completed",
              "type": "0x1::option::Option<0x1::chunky_dkg::ChunkyDKGSessionState>"
            },
            {
              "name": "in_progress",
              "type": "0x1::option::Option<0x1::chunky_dkg::ChunkyDKGSessionState>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "comparator",
      "friends": [],
      "exposed_functions": [
        {
          "name": "compare",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&T0",
            "&T0"
          ],
          "return": [
            "0x1::comparator::Result"
          ]
        },
        {
          "name": "compare_u8_vector",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>",
            "vector<u8>"
          ],
          "return": [
            "0x1::comparator::Result"
          ]
        },
        {
          "name": "is_equal",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::comparator::Result"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_greater_than",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::comparator::Result"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_smaller_than",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::comparator::Result"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "Result",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "inner",
              "type": "u8"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "decryption",
      "friends": [
        "0x1::reconfiguration_with_dkg",
        "0x1::block"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "on_new_block",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64",
            "u64",
            "0x1::option::Option<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "set_for_next_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "vector<u8>"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "PerBlockDecryptionKey",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "epoch",
              "type": "u64"
            },
            {
              "name": "round",
              "type": "u64"
            },
            {
              "name": "decryption_key",
              "type": "0x1::option::Option<vector<u8>>"
            }
          ],
          "variants": []
        },
        {
          "name": "PerEpochEncryptionKey",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "epoch",
              "type": "u64"
            },
            {
              "name": "encryption_key",
              "type": "0x1::option::Option<vector<u8>>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "math_fixed",
      "friends": [],
      "exposed_functions": [
        {
          "name": "mul_div",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32",
            "0x1::fixed_point32::FixedPoint32",
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        },
        {
          "name": "pow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32",
            "u64"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        },
        {
          "name": "sqrt",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        },
        {
          "name": "exp",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        },
        {
          "name": "ln_plus_32ln2",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        },
        {
          "name": "log2_plus_32",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "randomness",
      "friends": [
        "0x1::block"
      ],
      "exposed_functions": [
        {
          "name": "bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "on_new_block",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64",
            "u64",
            "0x1::option::Option<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "permutation",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "vector<u64>"
          ]
        },
        {
          "name": "u128_integer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u128"
          ]
        },
        {
          "name": "u128_range",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128",
            "u128"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "u16_integer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u16"
          ]
        },
        {
          "name": "u16_range",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u16",
            "u16"
          ],
          "return": [
            "u16"
          ]
        },
        {
          "name": "u256_integer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u256"
          ]
        },
        {
          "name": "u256_range",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u256",
            "u256"
          ],
          "return": [
            "u256"
          ]
        },
        {
          "name": "u32_integer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u32"
          ]
        },
        {
          "name": "u32_range",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u32",
            "u32"
          ],
          "return": [
            "u32"
          ]
        },
        {
          "name": "u64_integer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "u64_range",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "u64_range_internal",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "u8_integer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u8"
          ]
        },
        {
          "name": "u8_range",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u8",
            "u8"
          ],
          "return": [
            "u8"
          ]
        }
      ],
      "structs": [
        {
          "name": "PerBlockRandomness",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "epoch",
              "type": "u64"
            },
            {
              "name": "round",
              "type": "u64"
            },
            {
              "name": "seed",
              "type": "0x1::option::Option<vector<u8>>"
            }
          ],
          "variants": []
        },
        {
          "name": "RandomnessGeneratedEvent",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "simple_map",
      "friends": [],
      "exposed_functions": [
        {
          "name": "remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::simple_map::SimpleMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "T0",
            "T1"
          ]
        },
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [],
          "return": [
            "0x1::simple_map::SimpleMap<T0, T1>"
          ]
        },
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::simple_map::SimpleMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "&T1"
          ]
        },
        {
          "name": "borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::simple_map::SimpleMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "&mut T1"
          ]
        },
        {
          "name": "destroy_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "0x1::simple_map::SimpleMap<T0, T1>"
          ],
          "return": []
        },
        {
          "name": "length",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::simple_map::SimpleMap<T0, T1>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::simple_map::SimpleMap<T0, T1>",
            "T0",
            "T1"
          ],
          "return": []
        },
        {
          "name": "upsert",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::simple_map::SimpleMap<T0, T1>",
            "T0",
            "T1"
          ],
          "return": [
            "0x1::option::Option<T0>",
            "0x1::option::Option<T1>"
          ]
        },
        {
          "name": "create",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [],
          "return": [
            "0x1::simple_map::SimpleMap<T0, T1>"
          ]
        },
        {
          "name": "add_all",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::simple_map::SimpleMap<T0, T1>",
            "vector<T0>",
            "vector<T1>"
          ],
          "return": []
        },
        {
          "name": "keys",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::simple_map::SimpleMap<T0, T1>"
          ],
          "return": [
            "vector<T0>"
          ]
        },
        {
          "name": "values",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": [
                "copy"
              ]
            }
          ],
          "params": [
            "&0x1::simple_map::SimpleMap<T0, T1>"
          ],
          "return": [
            "vector<T1>"
          ]
        },
        {
          "name": "contains_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::simple_map::SimpleMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "new_from",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "vector<T0>",
            "vector<T1>"
          ],
          "return": [
            "0x1::simple_map::SimpleMap<T0, T1>"
          ]
        },
        {
          "name": "to_vec_pair",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "0x1::simple_map::SimpleMap<T0, T1>"
          ],
          "return": [
            "vector<T0>",
            "vector<T1>"
          ]
        }
      ],
      "structs": [
        {
          "name": "Element",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "key",
              "type": "T0"
            },
            {
              "name": "value",
              "type": "T1"
            }
          ],
          "variants": []
        },
        {
          "name": "SimpleMap",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "data",
              "type": "vector<0x1::simple_map::Element<T0, T1>>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "single_key",
      "friends": [],
      "exposed_functions": [
        {
          "name": "new_public_key_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::single_key::AnyPublicKey"
          ]
        },
        {
          "name": "deserialize_any_public_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "0x1::single_key::AnyPublicKey"
          ]
        },
        {
          "name": "from_ed25519_public_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ed25519::ValidatedPublicKey"
          ],
          "return": [
            "0x1::single_key::AnyPublicKey"
          ]
        },
        {
          "name": "from_ed25519_public_key_unvalidated",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ed25519::UnvalidatedPublicKey"
          ],
          "return": [
            "0x1::single_key::AnyPublicKey"
          ]
        },
        {
          "name": "is_keyless_or_federated_keyless_public_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::single_key::AnyPublicKey"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "to_authentication_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::single_key::AnyPublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        }
      ],
      "structs": [
        {
          "name": "AnyPublicKey",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "Ed25519",
              "fields": [
                {
                  "name": "pk",
                  "type": "0x1::ed25519::UnvalidatedPublicKey"
                }
              ]
            },
            {
              "name": "Secp256k1Ecdsa",
              "fields": [
                {
                  "name": "pk",
                  "type": "0x1::secp256k1::ECDSARawPublicKey"
                }
              ]
            },
            {
              "name": "Secp256r1Ecdsa",
              "fields": [
                {
                  "name": "pk",
                  "type": "0x1::secp256r1::ECDSARawPublicKey"
                }
              ]
            },
            {
              "name": "Keyless",
              "fields": [
                {
                  "name": "pk",
                  "type": "0x1::keyless::PublicKey"
                }
              ]
            },
            {
              "name": "FederatedKeyless",
              "fields": [
                {
                  "name": "pk",
                  "type": "0x1::federated_keyless::PublicKey"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "ordered_map",
      "friends": [
        "0x1::big_ordered_map"
      ],
      "exposed_functions": [
        {
          "name": "contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "T1"
          ]
        },
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::ordered_map::OrderedMap<T0, T1>"
          ]
        },
        {
          "name": "append",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": []
        },
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "&T1"
          ]
        },
        {
          "name": "borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "&mut T1"
          ]
        },
        {
          "name": "destroy_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": []
        },
        {
          "name": "is_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "length",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "pop_back",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "T0",
            "T1"
          ]
        },
        {
          "name": "trim",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "u64"
          ],
          "return": [
            "0x1::ordered_map::OrderedMap<T0, T1>"
          ]
        },
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "T0",
            "T1"
          ],
          "return": []
        },
        {
          "name": "upsert",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "T0",
            "T1"
          ],
          "return": [
            "0x1::option::Option<T1>"
          ]
        },
        {
          "name": "add_all",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "vector<T0>",
            "vector<T1>"
          ],
          "return": []
        },
        {
          "name": "keys",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "vector<T0>"
          ]
        },
        {
          "name": "values",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": [
                "copy"
              ]
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "vector<T1>"
          ]
        },
        {
          "name": "append_disjoint",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": []
        },
        {
          "name": "borrow_back",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "&T0",
            "&T1"
          ]
        },
        {
          "name": "borrow_front",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "&T0",
            "&T1"
          ]
        },
        {
          "name": "get",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "copy",
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "0x1::option::Option<T1>"
          ]
        },
        {
          "name": "internal_find",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "0x1::ordered_map::IteratorPtr"
          ]
        },
        {
          "name": "internal_lower_bound",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "0x1::ordered_map::IteratorPtr"
          ]
        },
        {
          "name": "internal_new_begin_iter",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "0x1::ordered_map::IteratorPtr"
          ]
        },
        {
          "name": "internal_new_end_iter",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "0x1::ordered_map::IteratorPtr"
          ]
        },
        {
          "name": "iter_add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::ordered_map::IteratorPtr",
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "T0",
            "T1"
          ],
          "return": []
        },
        {
          "name": "iter_borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::ordered_map::IteratorPtr",
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "&T1"
          ]
        },
        {
          "name": "iter_borrow_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::IteratorPtr",
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "&T0"
          ]
        },
        {
          "name": "iter_borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::ordered_map::IteratorPtr",
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "&mut T1"
          ]
        },
        {
          "name": "iter_is_begin",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::IteratorPtr",
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "iter_is_begin_from_non_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ordered_map::IteratorPtr"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "iter_is_end",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::IteratorPtr",
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "iter_next",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::ordered_map::IteratorPtr",
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "0x1::ordered_map::IteratorPtr"
          ]
        },
        {
          "name": "iter_prev",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::ordered_map::IteratorPtr",
            "&0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "0x1::ordered_map::IteratorPtr"
          ]
        },
        {
          "name": "iter_remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::ordered_map::IteratorPtr",
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "T1"
          ]
        },
        {
          "name": "iter_replace",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::ordered_map::IteratorPtr",
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "T1"
          ],
          "return": [
            "T1"
          ]
        },
        {
          "name": "new_from",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "vector<T0>",
            "vector<T1>"
          ],
          "return": [
            "0x1::ordered_map::OrderedMap<T0, T1>"
          ]
        },
        {
          "name": "next_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "0x1::option::Option<T0>"
          ]
        },
        {
          "name": "pop_front",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "T0",
            "T1"
          ]
        },
        {
          "name": "prev_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::ordered_map::OrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "0x1::option::Option<T0>"
          ]
        },
        {
          "name": "remove_or_none",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "0x1::option::Option<T1>"
          ]
        },
        {
          "name": "replace_key_inplace",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "&T0",
            "T0"
          ],
          "return": []
        },
        {
          "name": "to_vec_pair",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::ordered_map::OrderedMap<T0, T1>"
          ],
          "return": [
            "vector<T0>",
            "vector<T1>"
          ]
        },
        {
          "name": "upsert_all",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&mut 0x1::ordered_map::OrderedMap<T0, T1>",
            "vector<T0>",
            "vector<T1>"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Entry",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "key",
              "type": "T0"
            },
            {
              "name": "value",
              "type": "T1"
            }
          ],
          "variants": []
        },
        {
          "name": "IteratorPtr",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "End",
              "fields": []
            },
            {
              "name": "Position",
              "fields": [
                {
                  "name": "index",
                  "type": "u64"
                }
              ]
            }
          ]
        },
        {
          "name": "OrderedMap",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [],
          "variants": [
            {
              "name": "SortedVectorMap",
              "fields": [
                {
                  "name": "entries",
                  "type": "vector<0x1::ordered_map::Entry<T0, T1>>"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "smart_table",
      "friends": [],
      "exposed_functions": [
        {
          "name": "contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_table::SmartTable<T0, T1>",
            "T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::smart_table::SmartTable<T0, T1>",
            "T0"
          ],
          "return": [
            "T1"
          ]
        },
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [],
          "return": [
            "0x1::smart_table::SmartTable<T0, T1>"
          ]
        },
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_table::SmartTable<T0, T1>",
            "T0"
          ],
          "return": [
            "&T1"
          ]
        },
        {
          "name": "borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::smart_table::SmartTable<T0, T1>",
            "T0"
          ],
          "return": [
            "&mut T1"
          ]
        },
        {
          "name": "destroy",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "0x1::smart_table::SmartTable<T0, T1>"
          ],
          "return": []
        },
        {
          "name": "destroy_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::smart_table::SmartTable<T0, T1>"
          ],
          "return": []
        },
        {
          "name": "length",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_table::SmartTable<T0, T1>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::smart_table::SmartTable<T0, T1>",
            "T0",
            "T1"
          ],
          "return": []
        },
        {
          "name": "borrow_with_default",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_table::SmartTable<T0, T1>",
            "T0",
            "&T1"
          ],
          "return": [
            "&T1"
          ]
        },
        {
          "name": "borrow_mut_with_default",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&mut 0x1::smart_table::SmartTable<T0, T1>",
            "T0",
            "T1"
          ],
          "return": [
            "&mut T1"
          ]
        },
        {
          "name": "upsert",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&mut 0x1::smart_table::SmartTable<T0, T1>",
            "T0",
            "T1"
          ],
          "return": []
        },
        {
          "name": "num_buckets",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_table::SmartTable<T0, T1>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "add_all",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::smart_table::SmartTable<T0, T1>",
            "vector<T0>",
            "vector<T1>"
          ],
          "return": []
        },
        {
          "name": "keys",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "copy",
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::smart_table::SmartTable<T0, T1>"
          ],
          "return": [
            "vector<T0>"
          ]
        },
        {
          "name": "borrow_buckets",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_table::SmartTable<T0, T1>"
          ],
          "return": [
            "&0x1::table_with_length::TableWithLength<u64, vector<0x1::smart_table::Entry<T0, T1>>>"
          ]
        },
        {
          "name": "borrow_buckets_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::smart_table::SmartTable<T0, T1>"
          ],
          "return": [
            "&mut 0x1::table_with_length::TableWithLength<u64, vector<0x1::smart_table::Entry<T0, T1>>>"
          ]
        },
        {
          "name": "borrow_kv",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_table::Entry<T0, T1>"
          ],
          "return": [
            "&T0",
            "&T1"
          ]
        },
        {
          "name": "borrow_kv_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::smart_table::Entry<T0, T1>"
          ],
          "return": [
            "&mut T0",
            "&mut T1"
          ]
        },
        {
          "name": "clear",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&mut 0x1::smart_table::SmartTable<T0, T1>"
          ],
          "return": []
        },
        {
          "name": "keys_paginated",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "copy",
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::smart_table::SmartTable<T0, T1>",
            "u64",
            "u64",
            "u64"
          ],
          "return": [
            "vector<T0>",
            "0x1::option::Option<u64>",
            "0x1::option::Option<u64>"
          ]
        },
        {
          "name": "load_factor",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_table::SmartTable<T0, T1>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "new_with_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "u64",
            "u8",
            "u64"
          ],
          "return": [
            "0x1::smart_table::SmartTable<T0, T1>"
          ]
        },
        {
          "name": "to_simple_map",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "copy",
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::smart_table::SmartTable<T0, T1>"
          ],
          "return": [
            "0x1::simple_map::SimpleMap<T0, T1>"
          ]
        },
        {
          "name": "update_split_load_threshold",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::smart_table::SmartTable<T0, T1>",
            "u8"
          ],
          "return": []
        },
        {
          "name": "update_target_bucket_size",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::smart_table::SmartTable<T0, T1>",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Entry",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "hash",
              "type": "u64"
            },
            {
              "name": "key",
              "type": "T0"
            },
            {
              "name": "value",
              "type": "T1"
            }
          ],
          "variants": []
        },
        {
          "name": "SmartTable",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "buckets",
              "type": "0x1::table_with_length::TableWithLength<u64, vector<0x1::smart_table::Entry<T0, T1>>>"
            },
            {
              "name": "num_buckets",
              "type": "u64"
            },
            {
              "name": "level",
              "type": "u8"
            },
            {
              "name": "size",
              "type": "u64"
            },
            {
              "name": "split_load_threshold",
              "type": "u8"
            },
            {
              "name": "target_bucket_size",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "storage_gas",
      "friends": [
        "0x1::reconfiguration",
        "0x1::gas_schedule",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "on_reconfig",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        },
        {
          "name": "base_8192_exponential_curve",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "0x1::storage_gas::GasCurve"
          ]
        },
        {
          "name": "new_gas_curve",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64",
            "vector<0x1::storage_gas::Point>"
          ],
          "return": [
            "0x1::storage_gas::GasCurve"
          ]
        },
        {
          "name": "new_point",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "0x1::storage_gas::Point"
          ]
        },
        {
          "name": "new_storage_gas_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::storage_gas::UsageGasConfig",
            "0x1::storage_gas::UsageGasConfig"
          ],
          "return": [
            "0x1::storage_gas::StorageGasConfig"
          ]
        },
        {
          "name": "new_usage_gas_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "0x1::storage_gas::GasCurve",
            "0x1::storage_gas::GasCurve",
            "0x1::storage_gas::GasCurve"
          ],
          "return": [
            "0x1::storage_gas::UsageGasConfig"
          ]
        },
        {
          "name": "set_config",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::storage_gas::StorageGasConfig"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "GasCurve",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "min_gas",
              "type": "u64"
            },
            {
              "name": "max_gas",
              "type": "u64"
            },
            {
              "name": "points",
              "type": "vector<0x1::storage_gas::Point>"
            }
          ],
          "variants": []
        },
        {
          "name": "Point",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "x",
              "type": "u64"
            },
            {
              "name": "y",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "StorageGas",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "per_item_read",
              "type": "u64"
            },
            {
              "name": "per_item_create",
              "type": "u64"
            },
            {
              "name": "per_item_write",
              "type": "u64"
            },
            {
              "name": "per_byte_read",
              "type": "u64"
            },
            {
              "name": "per_byte_create",
              "type": "u64"
            },
            {
              "name": "per_byte_write",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "StorageGasConfig",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "item_config",
              "type": "0x1::storage_gas::UsageGasConfig"
            },
            {
              "name": "byte_config",
              "type": "0x1::storage_gas::UsageGasConfig"
            }
          ],
          "variants": []
        },
        {
          "name": "UsageGasConfig",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "target_usage",
              "type": "u64"
            },
            {
              "name": "read_curve",
              "type": "0x1::storage_gas::GasCurve"
            },
            {
              "name": "create_curve",
              "type": "0x1::storage_gas::GasCurve"
            },
            {
              "name": "write_curve",
              "type": "0x1::storage_gas::GasCurve"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "chain_status",
      "friends": [
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "assert_genesis",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        },
        {
          "name": "assert_operating",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        },
        {
          "name": "is_genesis",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_operating",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "set_genesis_end",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "GenesisEndMarker",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "copyable_any",
      "friends": [],
      "exposed_functions": [
        {
          "name": "type_name",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::copyable_any::Any"
          ],
          "return": [
            "&0x1::string::String"
          ]
        },
        {
          "name": "pack",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "T0"
          ],
          "return": [
            "0x1::copyable_any::Any"
          ]
        },
        {
          "name": "unpack",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::copyable_any::Any"
          ],
          "return": [
            "T0"
          ]
        }
      ],
      "structs": [
        {
          "name": "Any",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "type_name",
              "type": "0x1::string::String"
            },
            {
              "name": "data",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "gas_schedule",
      "friends": [
        "0x1::reconfiguration_with_dkg",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "set_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "set_for_next_epoch_check_hash",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "set_gas_schedule",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "set_storage_gas_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::storage_gas::StorageGasConfig"
          ],
          "return": []
        },
        {
          "name": "set_storage_gas_config_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::storage_gas::StorageGasConfig"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "GasEntry",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "key",
              "type": "0x1::string::String"
            },
            {
              "name": "val",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "GasSchedule",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "entries",
              "type": "vector<0x1::gas_schedule::GasEntry>"
            }
          ],
          "variants": []
        },
        {
          "name": "GasScheduleV2",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "feature_version",
              "type": "u64"
            },
            {
              "name": "entries",
              "type": "vector<0x1::gas_schedule::GasEntry>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "managed_coin",
      "friends": [],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<u8>",
            "u8",
            "bool"
          ],
          "return": []
        },
        {
          "name": "burn",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "mint",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "register",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "destroy_caps",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "remove_caps",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer"
          ],
          "return": [
            "0x1::coin::BurnCapability<T0>",
            "0x1::coin::FreezeCapability<T0>",
            "0x1::coin::MintCapability<T0>"
          ]
        }
      ],
      "structs": [
        {
          "name": "Capabilities",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "burn_cap",
              "type": "0x1::coin::BurnCapability<T0>"
            },
            {
              "name": "freeze_cap",
              "type": "0x1::coin::FreezeCapability<T0>"
            },
            {
              "name": "mint_cap",
              "type": "0x1::coin::MintCapability<T0>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "math_fixed64",
      "friends": [],
      "exposed_functions": [
        {
          "name": "mul_div",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "pow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "u64"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "sqrt",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "exp",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "ln_plus_32ln2",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "log2_plus_64",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "rate_limiter",
      "friends": [],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "0x1::rate_limiter::RateLimiter"
          ]
        },
        {
          "name": "request",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::rate_limiter::RateLimiter",
            "u64"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "RateLimiter",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "TokenBucket",
              "fields": [
                {
                  "name": "capacity",
                  "type": "u64"
                },
                {
                  "name": "current_amount",
                  "type": "u64"
                },
                {
                  "name": "refill_interval",
                  "type": "u64"
                },
                {
                  "name": "last_refill_timestamp",
                  "type": "u64"
                },
                {
                  "name": "fractional_accumulated",
                  "type": "u64"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "ristretto255",
      "friends": [],
      "exposed_functions": [
        {
          "name": "multi_scalar_mul",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&vector<0x1::ristretto255::RistrettoPoint>",
            "&vector<0x1::ristretto255::Scalar>"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "scalar_mul",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar",
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "basepoint",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "basepoint_H",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "basepoint_H_compressed",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::ristretto255::CompressedRistretto"
          ]
        },
        {
          "name": "basepoint_compressed",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::ristretto255::CompressedRistretto"
          ]
        },
        {
          "name": "basepoint_double_mul",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar",
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "basepoint_mul",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "compressed_point_equals",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::CompressedRistretto",
            "&0x1::ristretto255::CompressedRistretto"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "compressed_point_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ristretto255::CompressedRistretto"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "double_scalar_mul",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar",
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::Scalar",
            "&0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "hash_to_point_base",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "is_identity",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::CompressedRistretto"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "new_compressed_point_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::ristretto255::CompressedRistretto>"
          ]
        },
        {
          "name": "new_point_and_compressed_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint",
            "0x1::ristretto255::CompressedRistretto"
          ]
        },
        {
          "name": "new_point_from_64_uniform_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::ristretto255::RistrettoPoint>"
          ]
        },
        {
          "name": "new_point_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::ristretto255::RistrettoPoint>"
          ]
        },
        {
          "name": "new_point_from_sha2_512",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "new_point_from_sha512",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "new_scalar_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::ristretto255::Scalar>"
          ]
        },
        {
          "name": "new_scalar_from_sha2_512",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "new_scalar_from_sha512",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "new_scalar_from_u128",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128"
          ],
          "return": [
            "0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "new_scalar_from_u32",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u32"
          ],
          "return": [
            "0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "new_scalar_from_u64",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "new_scalar_from_u8",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u8"
          ],
          "return": [
            "0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "new_scalar_reduced_from_32_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::ristretto255::Scalar>"
          ]
        },
        {
          "name": "new_scalar_uniform_from_64_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::ristretto255::Scalar>"
          ]
        },
        {
          "name": "point_add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "point_add_assign",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "&mut 0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "point_clone",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "point_compress",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "0x1::ristretto255::CompressedRistretto"
          ]
        },
        {
          "name": "point_decompress",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::CompressedRistretto"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "point_equals",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "point_identity",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "point_identity_compressed",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::ristretto255::CompressedRistretto"
          ]
        },
        {
          "name": "point_mul",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "point_mul_assign",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "&mut 0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "point_neg",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "point_neg_assign",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "&mut 0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "point_sub",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "point_sub_assign",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "&mut 0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "point_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::CompressedRistretto"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "points_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&vector<0x1::ristretto255::RistrettoPoint>"
          ],
          "return": [
            "vector<vector<u8>>"
          ]
        },
        {
          "name": "scalar_add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar",
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "scalar_add_assign",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::ristretto255::Scalar",
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "&mut 0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "scalar_equals",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar",
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "scalar_invert",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "0x1::option::Option<0x1::ristretto255::Scalar>"
          ]
        },
        {
          "name": "scalar_is_one",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "scalar_is_zero",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "scalar_mul_assign",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::ristretto255::Scalar",
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "&mut 0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "scalar_neg",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "scalar_neg_assign",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::ristretto255::Scalar"
          ],
          "return": [
            "&mut 0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "scalar_one",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "scalar_sub",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar",
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "scalar_sub_assign",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::ristretto255::Scalar",
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "&mut 0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "scalar_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "scalar_zero",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::ristretto255::Scalar"
          ]
        }
      ],
      "structs": [
        {
          "name": "CompressedRistretto",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "data",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "RistrettoPoint",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "handle",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "Scalar",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "data",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "smart_vector",
      "friends": [],
      "exposed_functions": [
        {
          "name": "contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_vector::SmartVector<T0>",
            "&T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "index_of",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_vector::SmartVector<T0>",
            "&T0"
          ],
          "return": [
            "bool",
            "u64"
          ]
        },
        {
          "name": "remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::smart_vector::SmartVector<T0>",
            "u64"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [],
          "return": [
            "0x1::smart_vector::SmartVector<T0>"
          ]
        },
        {
          "name": "swap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::smart_vector::SmartVector<T0>",
            "u64",
            "u64"
          ],
          "return": []
        },
        {
          "name": "append",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::smart_vector::SmartVector<T0>",
            "0x1::smart_vector::SmartVector<T0>"
          ],
          "return": []
        },
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_vector::SmartVector<T0>",
            "u64"
          ],
          "return": [
            "&T0"
          ]
        },
        {
          "name": "borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::smart_vector::SmartVector<T0>",
            "u64"
          ],
          "return": [
            "&mut T0"
          ]
        },
        {
          "name": "destroy",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "0x1::smart_vector::SmartVector<T0>"
          ],
          "return": []
        },
        {
          "name": "destroy_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::smart_vector::SmartVector<T0>"
          ],
          "return": []
        },
        {
          "name": "empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [],
          "return": [
            "0x1::smart_vector::SmartVector<T0>"
          ]
        },
        {
          "name": "is_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_vector::SmartVector<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "length",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::smart_vector::SmartVector<T0>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "pop_back",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::smart_vector::SmartVector<T0>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "push_back",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::smart_vector::SmartVector<T0>",
            "T0"
          ],
          "return": []
        },
        {
          "name": "reverse",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::smart_vector::SmartVector<T0>"
          ],
          "return": []
        },
        {
          "name": "singleton",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "T0"
          ],
          "return": [
            "0x1::smart_vector::SmartVector<T0>"
          ]
        },
        {
          "name": "swap_remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::smart_vector::SmartVector<T0>",
            "u64"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "to_vector",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::smart_vector::SmartVector<T0>"
          ],
          "return": [
            "vector<T0>"
          ]
        },
        {
          "name": "add_all",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::smart_vector::SmartVector<T0>",
            "vector<T0>"
          ],
          "return": []
        },
        {
          "name": "clear",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&mut 0x1::smart_vector::SmartVector<T0>"
          ],
          "return": []
        },
        {
          "name": "empty_with_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "0x1::smart_vector::SmartVector<T0>"
          ]
        }
      ],
      "structs": [
        {
          "name": "SmartVector",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "inline_vec",
              "type": "vector<T0>"
            },
            {
              "name": "big_vec",
              "type": "0x1::option::Option<0x1::big_vector::BigVector<T0>>"
            },
            {
              "name": "inline_capacity",
              "type": "0x1::option::Option<u64>"
            },
            {
              "name": "bucket_size",
              "type": "0x1::option::Option<u64>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "storage_slot",
      "friends": [],
      "exposed_functions": [
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "T0"
          ],
          "return": [
            "0x1::storage_slot::StorageSlot<T0>"
          ]
        },
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::storage_slot::StorageSlot<T0>"
          ],
          "return": [
            "&T0"
          ]
        },
        {
          "name": "borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::storage_slot::StorageSlot<T0>"
          ],
          "return": [
            "&mut T0"
          ]
        },
        {
          "name": "destroy",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "0x1::storage_slot::StorageSlot<T0>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "copy_storage_slot",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::storage_slot::StorageSlot<T0>"
          ],
          "return": [
            "0x1::storage_slot::StorageSlot<T0>"
          ]
        }
      ],
      "structs": [
        {
          "name": "StorageSlot",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "addr",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "StorageSlotResource",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "val",
              "type": "T0"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "string_utils",
      "friends": [],
      "exposed_functions": [
        {
          "name": "to_string",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&T0"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "debug_string",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&T0"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "format1",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&vector<u8>",
            "T0"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "format2",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&vector<u8>",
            "T0",
            "T1"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "format3",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&vector<u8>",
            "T0",
            "T1",
            "T2"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "format4",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&vector<u8>",
            "T0",
            "T1",
            "T2",
            "T3"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "to_string_with_canonical_addresses",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&T0"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "to_string_with_integer_types",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&T0"
          ],
          "return": [
            "0x1::string::String"
          ]
        }
      ],
      "structs": [
        {
          "name": "Cons",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "car",
              "type": "T0"
            },
            {
              "name": "cdr",
              "type": "T1"
            }
          ],
          "variants": []
        },
        {
          "name": "FakeCons",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "car",
              "type": "T0"
            },
            {
              "name": "cdr",
              "type": "T1"
            }
          ],
          "variants": []
        },
        {
          "name": "NIL",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "aggregator_v2",
      "friends": [],
      "exposed_functions": [
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::aggregator_v2::Aggregator<T0>",
            "T0"
          ],
          "return": []
        },
        {
          "name": "read",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::aggregator_v2::Aggregator<T0>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "sub",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::aggregator_v2::Aggregator<T0>",
            "T0"
          ],
          "return": []
        },
        {
          "name": "create_aggregator",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            }
          ],
          "params": [
            "T0"
          ],
          "return": [
            "0x1::aggregator_v2::Aggregator<T0>"
          ]
        },
        {
          "name": "copy_snapshot",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            }
          ],
          "params": [
            "&0x1::aggregator_v2::AggregatorSnapshot<T0>"
          ],
          "return": [
            "0x1::aggregator_v2::AggregatorSnapshot<T0>"
          ]
        },
        {
          "name": "snapshot",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::aggregator_v2::Aggregator<T0>"
          ],
          "return": [
            "0x1::aggregator_v2::AggregatorSnapshot<T0>"
          ]
        },
        {
          "name": "max_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            }
          ],
          "params": [
            "&0x1::aggregator_v2::Aggregator<T0>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "create_aggregator_with_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            }
          ],
          "params": [
            "T0",
            "T0"
          ],
          "return": [
            "0x1::aggregator_v2::Aggregator<T0>"
          ]
        },
        {
          "name": "create_derived_string",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::string::String"
          ],
          "return": [
            "0x1::aggregator_v2::DerivedStringSnapshot"
          ]
        },
        {
          "name": "create_snapshot",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            }
          ],
          "params": [
            "T0"
          ],
          "return": [
            "0x1::aggregator_v2::AggregatorSnapshot<T0>"
          ]
        },
        {
          "name": "create_unbounded_aggregator",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            }
          ],
          "params": [],
          "return": [
            "0x1::aggregator_v2::Aggregator<T0>"
          ]
        },
        {
          "name": "create_unbounded_aggregator_with_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            }
          ],
          "params": [
            "T0"
          ],
          "return": [
            "0x1::aggregator_v2::Aggregator<T0>"
          ]
        },
        {
          "name": "derive_string_concat",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::string::String",
            "&0x1::aggregator_v2::AggregatorSnapshot<T0>",
            "0x1::string::String"
          ],
          "return": [
            "0x1::aggregator_v2::DerivedStringSnapshot"
          ]
        },
        {
          "name": "is_at_least",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::aggregator_v2::Aggregator<T0>",
            "T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "read_derived_string",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::aggregator_v2::DerivedStringSnapshot"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "read_snapshot",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::aggregator_v2::AggregatorSnapshot<T0>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "string_concat",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::string::String",
            "&0x1::aggregator_v2::AggregatorSnapshot<T0>",
            "0x1::string::String"
          ],
          "return": [
            "0x1::aggregator_v2::AggregatorSnapshot<0x1::string::String>"
          ]
        },
        {
          "name": "try_add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::aggregator_v2::Aggregator<T0>",
            "T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "try_sub",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::aggregator_v2::Aggregator<T0>",
            "T0"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "Aggregator",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "value",
              "type": "T0"
            },
            {
              "name": "max_value",
              "type": "T0"
            }
          ],
          "variants": []
        },
        {
          "name": "AggregatorSnapshot",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "value",
              "type": "T0"
            }
          ],
          "variants": []
        },
        {
          "name": "DerivedStringSnapshot",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "value",
              "type": "0x1::string::String"
            },
            {
              "name": "padding",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "aptos_account",
      "friends": [
        "0x1::transaction_fee",
        "0x1::transaction_validation",
        "0x1::genesis",
        "0x1::resource_account"
      ],
      "exposed_functions": [
        {
          "name": "create_account",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "transfer",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "assert_account_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "assert_account_is_registered_for_apt",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "batch_transfer",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>",
            "vector<u64>"
          ],
          "return": []
        },
        {
          "name": "batch_transfer_coins",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "vector<address>",
            "vector<u64>"
          ],
          "return": []
        },
        {
          "name": "batch_transfer_fungible_assets",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::fungible_asset::Metadata>",
            "vector<address>",
            "vector<u64>"
          ],
          "return": []
        },
        {
          "name": "burn_from_fungible_store_for_gas",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::BurnRef",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "can_receive_direct_coin_transfers",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "deposit_coins",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "address",
            "0x1::coin::Coin<T0>"
          ],
          "return": []
        },
        {
          "name": "deposit_fungible_assets",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": []
        },
        {
          "name": "fungible_transfer_only",
          "visibility": "friend",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "is_fungible_balance_at_least",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "register_apt",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "set_allow_direct_coin_transfers",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "bool"
          ],
          "return": []
        },
        {
          "name": "transfer_coins",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "transfer_fungible_assets",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::fungible_asset::Metadata>",
            "address",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "DirectCoinTransferConfigUpdated",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "new_allow_direct_transfers",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "DirectCoinTransferConfigUpdatedEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "new_allow_direct_transfers",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "DirectTransferConfig",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "allow_arbitrary_coin_transfers",
              "type": "bool"
            },
            {
              "name": "update_coin_transfer_events",
              "type": "0x1::event::EventHandle<0x1::aptos_account::DirectCoinTransferConfigUpdatedEvent>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "bn254_algebra",
      "friends": [],
      "exposed_functions": [],
      "structs": [
        {
          "name": "FormatFq12LscLsb",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "FormatFrLsb",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "FormatFrMsb",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "FormatG1Compr",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "FormatG1Uncompr",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "FormatG2Compr",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "FormatG2Uncompr",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "FormatGt",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "Fq12",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "Fr",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "G1",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "G2",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "Gt",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "FormatFqLsb",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "FormatFqMsb",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "Fq",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "config_buffer",
      "friends": [
        "0x1::version",
        "0x1::randomness_config_seqnum",
        "0x1::randomness_config",
        "0x1::randomness_api_v0_config",
        "0x1::keyless_account",
        "0x1::jwks",
        "0x1::jwk_consensus_config",
        "0x1::gas_schedule",
        "0x1::execution_config",
        "0x1::epoch_timeout_config",
        "0x1::decryption",
        "0x1::consensus_config",
        "0x1::chunky_dkg_config_seqnum",
        "0x1::chunky_dkg_config"
      ],
      "exposed_functions": [
        {
          "name": "extract",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [],
          "return": [
            "T0"
          ]
        },
        {
          "name": "upsert",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "T0"
          ],
          "return": []
        },
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "does_exist",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "extract_v2",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [],
          "return": [
            "T0"
          ]
        }
      ],
      "structs": [
        {
          "name": "PendingConfigs",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "configs",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, 0x1::any::Any>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "create_signer",
      "friends": [
        "0x1::permissioned_signer",
        "0x1::account",
        "0x1::object",
        "0x1::account_abstraction",
        "0x1::fungible_asset",
        "0x1::coin",
        "0x1::aptos_account",
        "0x1::stake",
        "0x1::reconfiguration_with_dkg",
        "0x1::transaction_validation",
        "0x1::genesis",
        "0x1::multisig_account"
      ],
      "exposed_functions": [
        {
          "name": "create_signer",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "signer"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "fixed_point32",
      "friends": [],
      "exposed_functions": [
        {
          "name": "ceil",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "create_from_rational",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        },
        {
          "name": "create_from_raw_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        },
        {
          "name": "create_from_u64",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        },
        {
          "name": "divide_u64",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "floor",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_raw_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "is_zero",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "max",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32",
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        },
        {
          "name": "min",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32",
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "0x1::fixed_point32::FixedPoint32"
          ]
        },
        {
          "name": "multiply_u64",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "round",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point32::FixedPoint32"
          ],
          "return": [
            "u64"
          ]
        }
      ],
      "structs": [
        {
          "name": "FixedPoint32",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "value",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "fixed_point64",
      "friends": [],
      "exposed_functions": [
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "sub",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "ceil",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "create_from_rational",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128",
            "u128"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "create_from_raw_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "floor",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "get_raw_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "is_zero",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "max",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "min",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "round",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "almost_equal",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "create_from_u128",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128"
          ],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "divide_u128",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "equal",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "greater",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "greater_or_equal",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "less",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "less_or_equal",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "multiply_u128",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u128",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "u128"
          ]
        }
      ],
      "structs": [
        {
          "name": "FixedPoint64",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "value",
              "type": "u128"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "function_info",
      "friends": [
        "0x1::account_abstraction",
        "0x1::fungible_asset",
        "0x1::dispatchable_fungible_asset"
      ],
      "exposed_functions": [
        {
          "name": "check_dispatch_type_compatibility",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::function_info::FunctionInfo",
            "&0x1::function_info::FunctionInfo"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "load_module_from_function",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::function_info::FunctionInfo"
          ],
          "return": []
        },
        {
          "name": "new_function_info",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": [
            "0x1::function_info::FunctionInfo"
          ]
        },
        {
          "name": "new_function_info_from_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": [
            "0x1::function_info::FunctionInfo"
          ]
        }
      ],
      "structs": [
        {
          "name": "FunctionInfo",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "module_address",
              "type": "address"
            },
            {
              "name": "module_name",
              "type": "0x1::string::String"
            },
            {
              "name": "function_name",
              "type": "0x1::string::String"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "multi_ed25519",
      "friends": [],
      "exposed_functions": [
        {
          "name": "signature_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::Signature"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "new_signature_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::multi_ed25519::Signature"
          ]
        },
        {
          "name": "new_unvalidated_public_key_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::multi_ed25519::UnvalidatedPublicKey"
          ]
        },
        {
          "name": "new_validated_public_key_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::multi_ed25519::ValidatedPublicKey>"
          ]
        },
        {
          "name": "public_key_into_unvalidated",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::multi_ed25519::ValidatedPublicKey"
          ],
          "return": [
            "0x1::multi_ed25519::UnvalidatedPublicKey"
          ]
        },
        {
          "name": "public_key_to_unvalidated",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::ValidatedPublicKey"
          ],
          "return": [
            "0x1::multi_ed25519::UnvalidatedPublicKey"
          ]
        },
        {
          "name": "public_key_validate",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::UnvalidatedPublicKey"
          ],
          "return": [
            "0x1::option::Option<0x1::multi_ed25519::ValidatedPublicKey>"
          ]
        },
        {
          "name": "signature_verify_strict",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::Signature",
            "&0x1::multi_ed25519::UnvalidatedPublicKey",
            "vector<u8>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "signature_verify_strict_t",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&0x1::multi_ed25519::Signature",
            "&0x1::multi_ed25519::UnvalidatedPublicKey",
            "T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "unvalidated_public_key_to_authentication_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::UnvalidatedPublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "unvalidated_public_key_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::UnvalidatedPublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "validated_public_key_to_authentication_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::ValidatedPublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "validated_public_key_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::ValidatedPublicKey"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "check_and_get_threshold",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<u8>"
          ]
        },
        {
          "name": "new_validated_public_key_from_bytes_v2",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::multi_ed25519::ValidatedPublicKey>"
          ]
        },
        {
          "name": "public_key_validate_v2",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::UnvalidatedPublicKey"
          ],
          "return": [
            "0x1::option::Option<0x1::multi_ed25519::ValidatedPublicKey>"
          ]
        },
        {
          "name": "unvalidated_public_key_num_sub_pks",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::UnvalidatedPublicKey"
          ],
          "return": [
            "u8"
          ]
        },
        {
          "name": "unvalidated_public_key_threshold",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::UnvalidatedPublicKey"
          ],
          "return": [
            "0x1::option::Option<u8>"
          ]
        },
        {
          "name": "validated_public_key_num_sub_pks",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::ValidatedPublicKey"
          ],
          "return": [
            "u8"
          ]
        },
        {
          "name": "validated_public_key_threshold",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::multi_ed25519::ValidatedPublicKey"
          ],
          "return": [
            "u8"
          ]
        }
      ],
      "structs": [
        {
          "name": "Signature",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "UnvalidatedPublicKey",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "ValidatedPublicKey",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "staking_proxy",
      "friends": [],
      "exposed_functions": [
        {
          "name": "grant_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer"
          ],
          "return": []
        },
        {
          "name": "set_operator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_stake_pool_operator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_stake_pool_voter",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_staking_contract_operator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_staking_contract_voter",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_vesting_contract_operator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_vesting_contract_voter",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_voter",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "StakeProxyPermission",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "state_storage",
      "friends": [
        "0x1::storage_gas",
        "0x1::reconfiguration",
        "0x1::block",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "current_items_and_bytes",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64",
            "u64"
          ]
        },
        {
          "name": "on_new_block",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": []
        },
        {
          "name": "on_reconfig",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "GasParameter",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "usage",
              "type": "0x1::state_storage::Usage"
            }
          ],
          "variants": []
        },
        {
          "name": "StateStorageUsage",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "epoch",
              "type": "u64"
            },
            {
              "name": "usage",
              "type": "0x1::state_storage::Usage"
            }
          ],
          "variants": []
        },
        {
          "name": "Usage",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "items",
              "type": "u64"
            },
            {
              "name": "bytes",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "crypto_algebra",
      "friends": [],
      "exposed_functions": [
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>",
            "&0x1::crypto_algebra::Element<T0>"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T0>"
          ]
        },
        {
          "name": "serialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "deserialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::crypto_algebra::Element<T0>>"
          ]
        },
        {
          "name": "div",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>",
            "&0x1::crypto_algebra::Element<T0>"
          ],
          "return": [
            "0x1::option::Option<0x1::crypto_algebra::Element<T0>>"
          ]
        },
        {
          "name": "double",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T0>"
          ]
        },
        {
          "name": "downcast",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>"
          ],
          "return": [
            "0x1::option::Option<0x1::crypto_algebra::Element<T1>>"
          ]
        },
        {
          "name": "eq",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>",
            "&0x1::crypto_algebra::Element<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "from_u64",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "u64"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T0>"
          ]
        },
        {
          "name": "hash_to",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&vector<u8>",
            "&vector<u8>"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T0>"
          ]
        },
        {
          "name": "inv",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>"
          ],
          "return": [
            "0x1::option::Option<0x1::crypto_algebra::Element<T0>>"
          ]
        },
        {
          "name": "mul",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>",
            "&0x1::crypto_algebra::Element<T0>"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T0>"
          ]
        },
        {
          "name": "multi_pairing",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&vector<0x1::crypto_algebra::Element<T0>>",
            "&vector<0x1::crypto_algebra::Element<T1>>"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T2>"
          ]
        },
        {
          "name": "multi_scalar_mul",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&vector<0x1::crypto_algebra::Element<T0>>",
            "&vector<0x1::crypto_algebra::Element<T1>>"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T0>"
          ]
        },
        {
          "name": "neg",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T0>"
          ]
        },
        {
          "name": "one",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::crypto_algebra::Element<T0>"
          ]
        },
        {
          "name": "order",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "pairing",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>",
            "&0x1::crypto_algebra::Element<T1>"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T2>"
          ]
        },
        {
          "name": "scalar_mul",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>",
            "&0x1::crypto_algebra::Element<T1>"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T0>"
          ]
        },
        {
          "name": "sqr",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T0>"
          ]
        },
        {
          "name": "sub",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>",
            "&0x1::crypto_algebra::Element<T0>"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T0>"
          ]
        },
        {
          "name": "upcast",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::crypto_algebra::Element<T0>"
          ],
          "return": [
            "0x1::crypto_algebra::Element<T1>"
          ]
        },
        {
          "name": "zero",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::crypto_algebra::Element<T0>"
          ]
        }
      ],
      "structs": [
        {
          "name": "Element",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "handle",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "fungible_asset",
      "friends": [
        "0x1::dispatchable_fungible_asset",
        "0x1::primary_fungible_store",
        "0x1::coin",
        "0x1::aptos_account"
      ],
      "exposed_functions": [
        {
          "name": "extract",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::fungible_asset::FungibleAsset",
            "u64"
          ],
          "return": [
            "0x1::fungible_asset::FungibleAsset"
          ]
        },
        {
          "name": "merge",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::fungible_asset::FungibleAsset",
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": []
        },
        {
          "name": "revoke_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ],
          "return": []
        },
        {
          "name": "burn",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::BurnRef",
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": []
        },
        {
          "name": "name",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "generate_transfer_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "0x1::fungible_asset::TransferRef"
          ]
        },
        {
          "name": "is_untransferable",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "set_untransferable",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": []
        },
        {
          "name": "transfer",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "transfer_with_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&0x1::fungible_asset::TransferRef",
            "0x1::object::Object<T0>",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "add_fungibility",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef",
            "0x1::option::Option<u128>",
            "0x1::string::String",
            "0x1::string::String",
            "u8",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ]
        },
        {
          "name": "symbol",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "decimals",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "u8"
          ]
        },
        {
          "name": "icon_uri",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "project_uri",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "address_burn_from_for_gas",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::BurnRef",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "amount",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::FungibleAsset"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "asset_metadata",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::FungibleAsset"
          ],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ]
        },
        {
          "name": "balance",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "balance_with_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&0x1::fungible_asset::RawBalanceRef",
            "0x1::object::Object<T0>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "metadata",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::fungible_asset::Metadata"
          ]
        },
        {
          "name": "burn_from",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&0x1::fungible_asset::BurnRef",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "burn_internal",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "burn_ref_metadata",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::BurnRef"
          ],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ]
        },
        {
          "name": "create_store",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&0x1::object::ConstructorRef",
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::FungibleStore>"
          ]
        },
        {
          "name": "deposit",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>",
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": []
        },
        {
          "name": "deposit_dispatch_function",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::option::Option<0x1::function_info::FunctionInfo>"
          ]
        },
        {
          "name": "deposit_sanity_check",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>",
            "bool"
          ],
          "return": []
        },
        {
          "name": "deposit_with_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&0x1::fungible_asset::TransferRef",
            "0x1::object::Object<T0>",
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": []
        },
        {
          "name": "derived_balance_dispatch_function",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::option::Option<0x1::function_info::FunctionInfo>"
          ]
        },
        {
          "name": "derived_supply_dispatch_function",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::option::Option<0x1::function_info::FunctionInfo>"
          ]
        },
        {
          "name": "destroy_zero",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": []
        },
        {
          "name": "generate_burn_copy_ref",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::BurnRef"
          ],
          "return": [
            "0x1::fungible_asset::BurnRef"
          ]
        },
        {
          "name": "generate_burn_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "0x1::fungible_asset::BurnRef"
          ]
        },
        {
          "name": "generate_mint_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "0x1::fungible_asset::MintRef"
          ]
        },
        {
          "name": "generate_mutate_metadata_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "0x1::fungible_asset::MutateMetadataRef"
          ]
        },
        {
          "name": "generate_raw_balance_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "0x1::fungible_asset::RawBalanceRef"
          ]
        },
        {
          "name": "generate_raw_supply_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef"
          ],
          "return": [
            "0x1::fungible_asset::RawSupplyRef"
          ]
        },
        {
          "name": "grant_permission_by_address",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "grant_permission_by_store",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "&signer",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "is_address_balance_at_least",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_asset_type_dispatchable",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_balance_at_least",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_frozen",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_store_dispatchable",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "maximum",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::option::Option<u128>"
          ]
        },
        {
          "name": "metadata_from_asset",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::FungibleAsset"
          ],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ]
        },
        {
          "name": "mint",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::MintRef",
            "u64"
          ],
          "return": [
            "0x1::fungible_asset::FungibleAsset"
          ]
        },
        {
          "name": "mint_internal",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>",
            "u64"
          ],
          "return": [
            "0x1::fungible_asset::FungibleAsset"
          ]
        },
        {
          "name": "mint_ref_metadata",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::MintRef"
          ],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ]
        },
        {
          "name": "mint_to",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&0x1::fungible_asset::MintRef",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "mutate_metadata",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::MutateMetadataRef",
            "0x1::option::Option<0x1::string::String>",
            "0x1::option::Option<0x1::string::String>",
            "0x1::option::Option<u8>",
            "0x1::option::Option<0x1::string::String>",
            "0x1::option::Option<0x1::string::String>"
          ],
          "return": []
        },
        {
          "name": "object_from_metadata_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::MutateMetadataRef"
          ],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ]
        },
        {
          "name": "refill_permission",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64",
            "address"
          ],
          "return": []
        },
        {
          "name": "register_derive_supply_dispatch_function",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef",
            "0x1::option::Option<0x1::function_info::FunctionInfo>"
          ],
          "return": []
        },
        {
          "name": "register_dispatch_functions",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef",
            "0x1::option::Option<0x1::function_info::FunctionInfo>",
            "0x1::option::Option<0x1::function_info::FunctionInfo>",
            "0x1::option::Option<0x1::function_info::FunctionInfo>"
          ],
          "return": []
        },
        {
          "name": "remove_store",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::DeleteRef"
          ],
          "return": []
        },
        {
          "name": "set_frozen_flag",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&0x1::fungible_asset::TransferRef",
            "0x1::object::Object<T0>",
            "bool"
          ],
          "return": []
        },
        {
          "name": "set_frozen_flag_internal",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>",
            "bool"
          ],
          "return": []
        },
        {
          "name": "store_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "store_metadata",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ]
        },
        {
          "name": "supply",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::option::Option<u128>"
          ]
        },
        {
          "name": "supply_with_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&0x1::fungible_asset::RawSupplyRef",
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::option::Option<u128>"
          ]
        },
        {
          "name": "transfer_ref_metadata",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::TransferRef"
          ],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ]
        },
        {
          "name": "unchecked_deposit",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": []
        },
        {
          "name": "unchecked_deposit_with_no_events",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": []
        },
        {
          "name": "unchecked_withdraw",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "0x1::fungible_asset::FungibleAsset"
          ]
        },
        {
          "name": "upgrade_store_to_concurrent",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>"
          ],
          "return": []
        },
        {
          "name": "upgrade_to_concurrent",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ExtendRef"
          ],
          "return": []
        },
        {
          "name": "withdraw",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": [
            "0x1::fungible_asset::FungibleAsset"
          ]
        },
        {
          "name": "withdraw_dispatch_function",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::option::Option<0x1::function_info::FunctionInfo>"
          ]
        },
        {
          "name": "withdraw_permission_check",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "withdraw_permission_check_by_address",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "withdraw_sanity_check",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>",
            "bool"
          ],
          "return": []
        },
        {
          "name": "withdraw_with_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&0x1::fungible_asset::TransferRef",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": [
            "0x1::fungible_asset::FungibleAsset"
          ]
        },
        {
          "name": "zero",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::fungible_asset::FungibleAsset"
          ]
        }
      ],
      "structs": [
        {
          "name": "TransferRef",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            }
          ],
          "variants": []
        },
        {
          "name": "Untransferable",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "BurnRef",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            }
          ],
          "variants": []
        },
        {
          "name": "ConcurrentFungibleBalance",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "balance",
              "type": "0x1::aggregator_v2::Aggregator<u64>"
            }
          ],
          "variants": []
        },
        {
          "name": "ConcurrentSupply",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "current",
              "type": "0x1::aggregator_v2::Aggregator<u128>"
            }
          ],
          "variants": []
        },
        {
          "name": "Creation",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "address"
            },
            {
              "name": "name",
              "type": "0x1::string::String"
            },
            {
              "name": "symbol",
              "type": "0x1::string::String"
            },
            {
              "name": "decimals",
              "type": "u8"
            },
            {
              "name": "icon_uri",
              "type": "0x1::string::String"
            },
            {
              "name": "project_uri",
              "type": "0x1::string::String"
            },
            {
              "name": "maximum_supply",
              "type": "0x1::option::Option<u128>"
            }
          ],
          "variants": []
        },
        {
          "name": "Deposit",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "store",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "DepositEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "DeriveSupply",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dispatch_function",
              "type": "0x1::option::Option<0x1::function_info::FunctionInfo>"
            }
          ],
          "variants": []
        },
        {
          "name": "DispatchFunctionStore",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "withdraw_function",
              "type": "0x1::option::Option<0x1::function_info::FunctionInfo>"
            },
            {
              "name": "deposit_function",
              "type": "0x1::option::Option<0x1::function_info::FunctionInfo>"
            },
            {
              "name": "derived_balance_function",
              "type": "0x1::option::Option<0x1::function_info::FunctionInfo>"
            }
          ],
          "variants": []
        },
        {
          "name": "Frozen",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "store",
              "type": "address"
            },
            {
              "name": "frozen",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "FrozenEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "frozen",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "FungibleAsset",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "FungibleAssetEvents",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "deposit_events",
              "type": "0x1::event::EventHandle<0x1::fungible_asset::DepositEvent>"
            },
            {
              "name": "withdraw_events",
              "type": "0x1::event::EventHandle<0x1::fungible_asset::WithdrawEvent>"
            },
            {
              "name": "frozen_events",
              "type": "0x1::event::EventHandle<0x1::fungible_asset::FrozenEvent>"
            }
          ],
          "variants": []
        },
        {
          "name": "FungibleStore",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            },
            {
              "name": "balance",
              "type": "u64"
            },
            {
              "name": "frozen",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "FungibleStoreDeletion",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "store",
              "type": "address"
            },
            {
              "name": "owner",
              "type": "address"
            },
            {
              "name": "metadata",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "Metadata",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "name",
              "type": "0x1::string::String"
            },
            {
              "name": "symbol",
              "type": "0x1::string::String"
            },
            {
              "name": "decimals",
              "type": "u8"
            },
            {
              "name": "icon_uri",
              "type": "0x1::string::String"
            },
            {
              "name": "project_uri",
              "type": "0x1::string::String"
            }
          ],
          "variants": []
        },
        {
          "name": "MintRef",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            }
          ],
          "variants": []
        },
        {
          "name": "MutateMetadataRef",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            }
          ],
          "variants": []
        },
        {
          "name": "RawBalanceRef",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            }
          ],
          "variants": []
        },
        {
          "name": "RawSupplyRef",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            }
          ],
          "variants": []
        },
        {
          "name": "Supply",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "current",
              "type": "u128"
            },
            {
              "name": "maximum",
              "type": "0x1::option::Option<u128>"
            }
          ],
          "variants": []
        },
        {
          "name": "Withdraw",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "store",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "WithdrawEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "WithdrawPermission",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "ByStore",
              "fields": [
                {
                  "name": "store_address",
                  "type": "address"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "sigma_protocol",
      "friends": [
        "0x1::sigma_protocol_withdraw",
        "0x1::sigma_protocol_transfer",
        "0x1::sigma_protocol_registration",
        "0x1::sigma_protocol_key_rotation"
      ],
      "exposed_functions": [],
      "structs": []
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "staking_config",
      "friends": [
        "0x1::stake",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "get",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::staking_config::StakingConfig"
          ]
        },
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64",
            "u64",
            "u64",
            "bool",
            "u64",
            "u64",
            "u64"
          ],
          "return": []
        },
        {
          "name": "calculate_and_save_latest_epoch_rewards_rate",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::fixed_point64::FixedPoint64"
          ]
        },
        {
          "name": "get_allow_validator_set_change",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::staking_config::StakingConfig"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "get_recurring_lockup_duration",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::staking_config::StakingConfig"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_required_stake",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::staking_config::StakingConfig"
          ],
          "return": [
            "u64",
            "u64"
          ]
        },
        {
          "name": "get_reward_rate",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::staking_config::StakingConfig"
          ],
          "return": [
            "u64",
            "u64"
          ]
        },
        {
          "name": "get_voting_power_increase_limit",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::staking_config::StakingConfig"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "initialize_rewards",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64",
            "u64",
            "u64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": []
        },
        {
          "name": "reward_rate",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64",
            "u64"
          ]
        },
        {
          "name": "update_recurring_lockup_duration_secs",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "update_required_stake",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64",
            "u64"
          ],
          "return": []
        },
        {
          "name": "update_rewards_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64",
            "u64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": []
        },
        {
          "name": "update_rewards_rate",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64",
            "u64"
          ],
          "return": []
        },
        {
          "name": "update_voting_power_increase_limit",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "StakingConfig",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "minimum_stake",
              "type": "u64"
            },
            {
              "name": "maximum_stake",
              "type": "u64"
            },
            {
              "name": "recurring_lockup_duration_secs",
              "type": "u64"
            },
            {
              "name": "allow_validator_set_change",
              "type": "bool"
            },
            {
              "name": "rewards_rate",
              "type": "u64"
            },
            {
              "name": "rewards_rate_denominator",
              "type": "u64"
            },
            {
              "name": "voting_power_increase_limit",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "StakingRewardsConfig",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "rewards_rate",
              "type": "0x1::fixed_point64::FixedPoint64"
            },
            {
              "name": "min_rewards_rate",
              "type": "0x1::fixed_point64::FixedPoint64"
            },
            {
              "name": "rewards_rate_period_in_secs",
              "type": "u64"
            },
            {
              "name": "last_rewards_rate_period_start_in_secs",
              "type": "u64"
            },
            {
              "name": "rewards_rate_decrease_rate",
              "type": "0x1::fixed_point64::FixedPoint64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "big_ordered_map",
      "friends": [],
      "exposed_functions": [
        {
          "name": "contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "T1"
          ]
        },
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [],
          "return": [
            "0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ]
        },
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "&T1"
          ]
        },
        {
          "name": "borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "&mut T1"
          ]
        },
        {
          "name": "destroy_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": []
        },
        {
          "name": "is_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "pop_back",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "T0",
            "T1"
          ]
        },
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "T0",
            "T1"
          ],
          "return": []
        },
        {
          "name": "upsert",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "T0",
            "T1"
          ],
          "return": [
            "0x1::option::Option<T1>"
          ]
        },
        {
          "name": "allocate_spare_slots",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "add_all",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "vector<T0>",
            "vector<T1>"
          ],
          "return": []
        },
        {
          "name": "keys",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "vector<T0>"
          ]
        },
        {
          "name": "borrow_back",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "T0",
            "&T1"
          ]
        },
        {
          "name": "borrow_front",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "T0",
            "&T1"
          ]
        },
        {
          "name": "get",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "copy",
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "0x1::option::Option<T1>"
          ]
        },
        {
          "name": "internal_find",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "0x1::big_ordered_map::IteratorPtr<T0>"
          ]
        },
        {
          "name": "internal_lower_bound",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "0x1::big_ordered_map::IteratorPtr<T0>"
          ]
        },
        {
          "name": "internal_new_begin_iter",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "0x1::big_ordered_map::IteratorPtr<T0>"
          ]
        },
        {
          "name": "internal_new_end_iter",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "0x1::big_ordered_map::IteratorPtr<T0>"
          ]
        },
        {
          "name": "iter_borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "0x1::big_ordered_map::IteratorPtr<T0>",
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "&T1"
          ]
        },
        {
          "name": "iter_borrow_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::big_ordered_map::IteratorPtr<T0>"
          ],
          "return": [
            "&T0"
          ]
        },
        {
          "name": "iter_borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "0x1::big_ordered_map::IteratorPtr<T0>",
            "&mut 0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "&mut T1"
          ]
        },
        {
          "name": "iter_is_begin",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::IteratorPtr<T0>",
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "iter_is_end",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::IteratorPtr<T0>",
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "iter_next",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "0x1::big_ordered_map::IteratorPtr<T0>",
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "0x1::big_ordered_map::IteratorPtr<T0>"
          ]
        },
        {
          "name": "iter_prev",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "0x1::big_ordered_map::IteratorPtr<T0>",
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "0x1::big_ordered_map::IteratorPtr<T0>"
          ]
        },
        {
          "name": "iter_remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "0x1::big_ordered_map::IteratorPtrWithPath<T0>",
            "&mut 0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "T1"
          ]
        },
        {
          "name": "new_from",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "vector<T0>",
            "vector<T1>"
          ],
          "return": [
            "0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ]
        },
        {
          "name": "next_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "0x1::option::Option<T0>"
          ]
        },
        {
          "name": "pop_front",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "T0",
            "T1"
          ]
        },
        {
          "name": "prev_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "0x1::option::Option<T0>"
          ]
        },
        {
          "name": "remove_or_none",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "0x1::option::Option<T1>"
          ]
        },
        {
          "name": "back_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "compute_length",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "front_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "internal_find_with_path",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "&T0"
          ],
          "return": [
            "0x1::big_ordered_map::IteratorPtrWithPath<T0>"
          ]
        },
        {
          "name": "internal_leaf_borrow_value",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::Child<T0>"
          ],
          "return": [
            "&T0"
          ]
        },
        {
          "name": "internal_leaf_iter_borrow_entries_and_next_leaf_index",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "0x1::big_ordered_map::LeafNodeIteratorPtr",
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "&0x1::ordered_map::OrderedMap<T0, 0x1::big_ordered_map::Child<T1>>",
            "0x1::big_ordered_map::LeafNodeIteratorPtr"
          ]
        },
        {
          "name": "internal_leaf_iter_is_end",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::big_ordered_map::LeafNodeIteratorPtr"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "internal_leaf_new_begin_iter",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "0x1::big_ordered_map::LeafNodeIteratorPtr"
          ]
        },
        {
          "name": "iter_modify",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::big_ordered_map::IteratorPtr<T0>",
            "&mut 0x1::big_ordered_map::BigOrderedMap<T0, T1>",
            "|&mut T1|T2"
          ],
          "return": [
            "T2"
          ]
        },
        {
          "name": "iter_with_path_get_iter",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::IteratorPtrWithPath<T0>"
          ],
          "return": [
            "0x1::big_ordered_map::IteratorPtr<T0>"
          ]
        },
        {
          "name": "new_with_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "u16",
            "u16",
            "bool"
          ],
          "return": [
            "0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ]
        },
        {
          "name": "new_with_reusable",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [],
          "return": [
            "0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ]
        },
        {
          "name": "new_with_type_size_hints",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "u64",
            "u64",
            "u64",
            "u64"
          ],
          "return": [
            "0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ]
        },
        {
          "name": "to_ordered_map",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            },
            {
              "constraints": [
                "copy",
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::big_ordered_map::BigOrderedMap<T0, T1>"
          ],
          "return": [
            "0x1::ordered_map::OrderedMap<T0, T1>"
          ]
        }
      ],
      "structs": [
        {
          "name": "IteratorPtr",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [],
          "variants": [
            {
              "name": "End",
              "fields": []
            },
            {
              "name": "Some",
              "fields": [
                {
                  "name": "node_index",
                  "type": "u64"
                },
                {
                  "name": "child_iter",
                  "type": "0x1::ordered_map::IteratorPtr"
                },
                {
                  "name": "key",
                  "type": "T0"
                }
              ]
            }
          ]
        },
        {
          "name": "BigOrderedMap",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "fields": [],
          "variants": [
            {
              "name": "BPlusTreeMap",
              "fields": [
                {
                  "name": "root",
                  "type": "0x1::big_ordered_map::Node<T0, T1>"
                },
                {
                  "name": "nodes",
                  "type": "0x1::storage_slots_allocator::StorageSlotsAllocator<0x1::big_ordered_map::Node<T0, T1>>"
                },
                {
                  "name": "min_leaf_index",
                  "type": "u64"
                },
                {
                  "name": "max_leaf_index",
                  "type": "u64"
                },
                {
                  "name": "constant_kv_size",
                  "type": "bool"
                },
                {
                  "name": "inner_max_degree",
                  "type": "u16"
                },
                {
                  "name": "leaf_max_degree",
                  "type": "u16"
                }
              ]
            }
          ]
        },
        {
          "name": "Child",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "fields": [],
          "variants": [
            {
              "name": "Inner",
              "fields": [
                {
                  "name": "node_index",
                  "type": "0x1::storage_slots_allocator::StoredSlot"
                }
              ]
            },
            {
              "name": "Leaf",
              "fields": [
                {
                  "name": "value",
                  "type": "T0"
                }
              ]
            }
          ]
        },
        {
          "name": "IteratorPtrWithPath",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "iterator",
              "type": "0x1::big_ordered_map::IteratorPtr<T0>"
            },
            {
              "name": "path",
              "type": "vector<u64>"
            }
          ],
          "variants": []
        },
        {
          "name": "LeafNodeIteratorPtr",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "NodeIndex",
              "fields": [
                {
                  "name": "node_index",
                  "type": "u64"
                }
              ]
            }
          ]
        },
        {
          "name": "Node",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "is_leaf",
                  "type": "bool"
                },
                {
                  "name": "children",
                  "type": "0x1::ordered_map::OrderedMap<T0, 0x1::big_ordered_map::Child<T1>>"
                },
                {
                  "name": "prev",
                  "type": "u64"
                },
                {
                  "name": "next",
                  "type": "u64"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "delegation_pool",
      "friends": [],
      "exposed_functions": [
        {
          "name": "partial_governance_voting_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "withdraw",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "create_proposal",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "vector<u8>",
            "vector<u8>",
            "vector<u8>",
            "bool"
          ],
          "return": []
        },
        {
          "name": "vote",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64",
            "u64",
            "bool"
          ],
          "return": []
        },
        {
          "name": "add_stake",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "get_owned_pool_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_stake",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "u64",
            "u64",
            "u64"
          ]
        },
        {
          "name": "owner_cap_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "reactivate_stake",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "set_delegated_voter",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_operator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "unlock",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "multiply_then_divide",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "allowlist_delegator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "allowlisting_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "beneficiary_for_operator",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "calculate_and_update_delegator_voter",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "calculate_and_update_remaining_voting_power",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "calculate_and_update_voter_total_voting_power",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "calculate_and_update_voting_delegation",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "address",
            "address",
            "u64"
          ]
        },
        {
          "name": "can_withdraw_pending_inactive",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "delegate_voting_power",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "delegation_pool_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "delegator_allowlisted",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "disable_delegators_allowlisting",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "enable_delegators_allowlisting",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "enable_partial_governance_voting",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "evict_delegator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "get_add_stake_fee",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_delegation_pool_stake",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64",
            "u64",
            "u64",
            "u64"
          ]
        },
        {
          "name": "get_delegators_allowlist",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "vector<address>"
          ]
        },
        {
          "name": "get_expected_stake_pool_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "vector<u8>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_pending_withdrawal",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "bool",
            "u64"
          ]
        },
        {
          "name": "grant_delegation_pool_management_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer"
          ],
          "return": []
        },
        {
          "name": "grant_stake_management_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer"
          ],
          "return": []
        },
        {
          "name": "initialize_delegation_pool",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "operator_commission_percentage",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "is_next_commission_percentage_effective",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "min_remaining_secs_for_commission_change",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "observed_lockup_cycle",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "operator_commission_percentage_next_lockup_cycle",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "remove_delegator_from_allowlist",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "set_beneficiary_for_operator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "shareholders_count_active_pool",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "synchronize_delegation_pool",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "update_commission_percentage",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "CreateProposal",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "delegation_pool",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "CreateProposalEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "delegation_pool",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "Vote",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "delegation_pool",
              "type": "address"
            },
            {
              "name": "num_votes",
              "type": "u64"
            },
            {
              "name": "should_pass",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "VoteEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "delegation_pool",
              "type": "address"
            },
            {
              "name": "num_votes",
              "type": "u64"
            },
            {
              "name": "should_pass",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "AddStake",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator_address",
              "type": "address"
            },
            {
              "name": "amount_added",
              "type": "u64"
            },
            {
              "name": "add_stake_fee",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "AddStakeEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator_address",
              "type": "address"
            },
            {
              "name": "amount_added",
              "type": "u64"
            },
            {
              "name": "add_stake_fee",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "ReactivateStake",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator_address",
              "type": "address"
            },
            {
              "name": "amount_reactivated",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "ReactivateStakeEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator_address",
              "type": "address"
            },
            {
              "name": "amount_reactivated",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "UnlockStake",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator_address",
              "type": "address"
            },
            {
              "name": "amount_unlocked",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "UnlockStakeEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator_address",
              "type": "address"
            },
            {
              "name": "amount_unlocked",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "WithdrawStake",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator_address",
              "type": "address"
            },
            {
              "name": "amount_withdrawn",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "WithdrawStakeEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator_address",
              "type": "address"
            },
            {
              "name": "amount_withdrawn",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "AllowlistDelegator",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "BeneficiaryForOperator",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "beneficiary_for_operator",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "CommissionPercentageChange",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "owner",
              "type": "address"
            },
            {
              "name": "commission_percentage_next_lockup_cycle",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "DelegateVotingPower",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator",
              "type": "address"
            },
            {
              "name": "voter",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "DelegateVotingPowerEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator",
              "type": "address"
            },
            {
              "name": "voter",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "DelegatedVotes",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "active_shares",
              "type": "u128"
            },
            {
              "name": "pending_inactive_shares",
              "type": "u128"
            },
            {
              "name": "active_shares_next_lockup",
              "type": "u128"
            },
            {
              "name": "last_locked_until_secs",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "DelegationPermission",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "DelegationPoolManagementPermission",
              "fields": []
            },
            {
              "name": "StakeManagementPermission",
              "fields": []
            }
          ]
        },
        {
          "name": "DelegationPool",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "active_shares",
              "type": "0x1::pool_u64_unbound::Pool"
            },
            {
              "name": "observed_lockup_cycle",
              "type": "0x1::delegation_pool::ObservedLockupCycle"
            },
            {
              "name": "inactive_shares",
              "type": "0x1::table::Table<0x1::delegation_pool::ObservedLockupCycle, 0x1::pool_u64_unbound::Pool>"
            },
            {
              "name": "pending_withdrawals",
              "type": "0x1::table::Table<address, 0x1::delegation_pool::ObservedLockupCycle>"
            },
            {
              "name": "stake_pool_signer_cap",
              "type": "0x1::account::SignerCapability"
            },
            {
              "name": "total_coins_inactive",
              "type": "u64"
            },
            {
              "name": "operator_commission_percentage",
              "type": "u64"
            },
            {
              "name": "add_stake_events",
              "type": "0x1::event::EventHandle<0x1::delegation_pool::AddStakeEvent>"
            },
            {
              "name": "reactivate_stake_events",
              "type": "0x1::event::EventHandle<0x1::delegation_pool::ReactivateStakeEvent>"
            },
            {
              "name": "unlock_stake_events",
              "type": "0x1::event::EventHandle<0x1::delegation_pool::UnlockStakeEvent>"
            },
            {
              "name": "withdraw_stake_events",
              "type": "0x1::event::EventHandle<0x1::delegation_pool::WithdrawStakeEvent>"
            },
            {
              "name": "distribute_commission_events",
              "type": "0x1::event::EventHandle<0x1::delegation_pool::DistributeCommissionEvent>"
            }
          ],
          "variants": []
        },
        {
          "name": "DelegationPoolAllowlisting",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "allowlist",
              "type": "0x1::smart_table::SmartTable<address, bool>"
            }
          ],
          "variants": []
        },
        {
          "name": "DelegationPoolOwnership",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "DisableDelegatorsAllowlisting",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "DistributeCommission",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "beneficiary",
              "type": "address"
            },
            {
              "name": "commission_active",
              "type": "u64"
            },
            {
              "name": "commission_pending_inactive",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "DistributeCommissionEvent",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "commission_active",
              "type": "u64"
            },
            {
              "name": "commission_pending_inactive",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "EnableDelegatorsAllowlisting",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "EvictDelegator",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "GovernanceRecords",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "votes",
              "type": "0x1::smart_table::SmartTable<0x1::delegation_pool::VotingRecordKey, u64>"
            },
            {
              "name": "votes_per_proposal",
              "type": "0x1::smart_table::SmartTable<u64, u64>"
            },
            {
              "name": "vote_delegation",
              "type": "0x1::smart_table::SmartTable<address, 0x1::delegation_pool::VoteDelegation>"
            },
            {
              "name": "delegated_votes",
              "type": "0x1::smart_table::SmartTable<address, 0x1::delegation_pool::DelegatedVotes>"
            },
            {
              "name": "vote_events",
              "type": "0x1::event::EventHandle<0x1::delegation_pool::VoteEvent>"
            },
            {
              "name": "create_proposal_events",
              "type": "0x1::event::EventHandle<0x1::delegation_pool::CreateProposalEvent>"
            },
            {
              "name": "delegate_voting_power_events",
              "type": "0x1::event::EventHandle<0x1::delegation_pool::DelegateVotingPowerEvent>"
            }
          ],
          "variants": []
        },
        {
          "name": "NextCommissionPercentage",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "commission_percentage_next_lockup_cycle",
              "type": "u64"
            },
            {
              "name": "effective_after_secs",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "ObservedLockupCycle",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "index",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "RemoveDelegatorFromAllowlist",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "delegator_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "SetBeneficiaryForOperator",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "old_beneficiary",
              "type": "address"
            },
            {
              "name": "new_beneficiary",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "VoteDelegation",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "pending_voter",
              "type": "address"
            },
            {
              "name": "last_locked_until_secs",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "VotingRecordKey",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "proposal_id",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "keyless_account",
      "friends": [
        "0x1::reconfiguration_with_dkg"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "add_override_aud",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "add_override_aud_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "new_configuration",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<0x1::string::String>",
            "u16",
            "u64",
            "0x1::option::Option<vector<u8>>",
            "u16",
            "u16",
            "u16",
            "u32"
          ],
          "return": [
            "0x1::keyless_account::Configuration"
          ]
        },
        {
          "name": "new_groth16_verification_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>",
            "vector<u8>",
            "vector<u8>",
            "vector<u8>",
            "vector<vector<u8>>"
          ],
          "return": [
            "0x1::keyless_account::Groth16VerificationKey"
          ]
        },
        {
          "name": "register_ek_and_encrypt_dk",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<u8>",
            "0x1::object::Object<0x1::fungible_asset::Metadata>",
            "vector<u8>",
            "vector<vector<u8>>",
            "vector<vector<u8>>",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "remove_all_override_auds",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "remove_all_override_auds_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "set_configuration_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::keyless_account::Configuration"
          ],
          "return": []
        },
        {
          "name": "set_groth16_verification_key_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::keyless_account::Groth16VerificationKey"
          ],
          "return": []
        },
        {
          "name": "update_configuration",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::keyless_account::Configuration"
          ],
          "return": []
        },
        {
          "name": "update_groth16_verification_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::keyless_account::Groth16VerificationKey"
          ],
          "return": []
        },
        {
          "name": "update_max_exp_horizon",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "update_max_exp_horizon_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "update_training_wheels",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::option::Option<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "update_training_wheels_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::option::Option<vector<u8>>"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Configuration",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "override_aud_vals",
              "type": "vector<0x1::string::String>"
            },
            {
              "name": "max_signatures_per_txn",
              "type": "u16"
            },
            {
              "name": "max_exp_horizon_secs",
              "type": "u64"
            },
            {
              "name": "training_wheels_pubkey",
              "type": "0x1::option::Option<vector<u8>>"
            },
            {
              "name": "max_commited_epk_bytes",
              "type": "u16"
            },
            {
              "name": "max_iss_val_bytes",
              "type": "u16"
            },
            {
              "name": "max_extra_field_bytes",
              "type": "u16"
            },
            {
              "name": "max_jwt_header_b64_bytes",
              "type": "u32"
            }
          ],
          "variants": []
        },
        {
          "name": "Group",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "Groth16VerificationKey",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "alpha_g1",
              "type": "vector<u8>"
            },
            {
              "name": "beta_g2",
              "type": "vector<u8>"
            },
            {
              "name": "gamma_g2",
              "type": "vector<u8>"
            },
            {
              "name": "delta_g2",
              "type": "vector<u8>"
            },
            {
              "name": "gamma_abc_g1",
              "type": "vector<vector<u8>>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "reconfiguration",
      "friends": [
        "0x1::version",
        "0x1::gas_schedule",
        "0x1::execution_config",
        "0x1::consensus_config",
        "0x1::reconfiguration_with_dkg",
        "0x1::aptos_governance",
        "0x1::block",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "current_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "last_reconfiguration_time",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "reconfigure",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Configuration",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "epoch",
              "type": "u64"
            },
            {
              "name": "last_reconfiguration_time",
              "type": "u64"
            },
            {
              "name": "events",
              "type": "0x1::event::EventHandle<0x1::reconfiguration::NewEpochEvent>"
            }
          ],
          "variants": []
        },
        {
          "name": "DisableReconfiguration",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "NewEpoch",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "epoch",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "NewEpochEvent",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "epoch",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "transaction_fee",
      "friends": [
        "0x1::reconfiguration",
        "0x1::block",
        "0x1::transaction_validation",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "store_aptos_coin_mint_cap",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::coin::MintCapability<0x1::aptos_coin::AptosCoin>"
          ],
          "return": []
        },
        {
          "name": "burn_fee",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "convert_to_aptos_fa_burn_ref",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "emit_fee_statement",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::transaction_fee::FeeStatement"
          ],
          "return": []
        },
        {
          "name": "initialize_fee_collection_and_distribution",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u8"
          ],
          "return": []
        },
        {
          "name": "initialize_storage_refund",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "mint_and_refund",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "storage_fee_refund_octas",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::transaction_fee::FeeStatement"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "store_aptos_coin_burn_cap",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::coin::BurnCapability<0x1::aptos_coin::AptosCoin>"
          ],
          "return": []
        },
        {
          "name": "upgrade_burn_percentage",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u8"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "AptosCoinCapabilities",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "burn_cap",
              "type": "0x1::coin::BurnCapability<0x1::aptos_coin::AptosCoin>"
            }
          ],
          "variants": []
        },
        {
          "name": "AptosCoinMintCapability",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "mint_cap",
              "type": "0x1::coin::MintCapability<0x1::aptos_coin::AptosCoin>"
            }
          ],
          "variants": []
        },
        {
          "name": "AptosFABurnCapabilities",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "burn_ref",
              "type": "0x1::fungible_asset::BurnRef"
            }
          ],
          "variants": []
        },
        {
          "name": "CollectedFeesPerBlock",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "amount",
              "type": "0x1::coin::AggregatableCoin<0x1::aptos_coin::AptosCoin>"
            },
            {
              "name": "proposer",
              "type": "0x1::option::Option<address>"
            },
            {
              "name": "burn_percentage",
              "type": "u8"
            }
          ],
          "variants": []
        },
        {
          "name": "FeeStatement",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "total_charge_gas_units",
              "type": "u64"
            },
            {
              "name": "execution_gas_units",
              "type": "u64"
            },
            {
              "name": "io_gas_units",
              "type": "u64"
            },
            {
              "name": "storage_fee_octas",
              "type": "u64"
            },
            {
              "name": "storage_fee_refund_octas",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "aptos_governance",
      "friends": [],
      "exposed_functions": [
        {
          "name": "grant_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer"
          ],
          "return": []
        },
        {
          "name": "create_proposal",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "vector<u8>",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "create_proposal_v2",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "vector<u8>",
            "vector<u8>",
            "vector<u8>",
            "bool"
          ],
          "return": []
        },
        {
          "name": "resolve",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "address"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "vote",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64",
            "bool"
          ],
          "return": []
        },
        {
          "name": "get_voting_power",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "reconfigure",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "add_approved_script_hash",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": []
        },
        {
          "name": "add_approved_script_hash_script",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": []
        },
        {
          "name": "assert_proposal_expiration",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "batch_partial_vote",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>",
            "u64",
            "u64",
            "bool"
          ],
          "return": []
        },
        {
          "name": "batch_vote",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>",
            "u64",
            "bool"
          ],
          "return": []
        },
        {
          "name": "create_proposal_v2_impl",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "vector<u8>",
            "vector<u8>",
            "vector<u8>",
            "bool"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "force_end_epoch",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "force_end_epoch_test_only",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "get_min_voting_threshold",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u128"
          ]
        },
        {
          "name": "get_remaining_voting_power",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_required_proposer_stake",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_signer_testnet_only",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "get_voting_duration_secs",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "has_entirely_voted",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "initialize_partial_voting",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "partial_vote",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64",
            "u64",
            "bool"
          ],
          "return": []
        },
        {
          "name": "remove_approved_hash",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": []
        },
        {
          "name": "resolve_multi_step_proposal",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "address",
            "vector<u8>"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "store_signer_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "0x1::account::SignerCapability"
          ],
          "return": []
        },
        {
          "name": "toggle_features",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u64>",
            "vector<u64>"
          ],
          "return": []
        },
        {
          "name": "update_governance_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u128",
            "u64",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "CreateProposal",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "proposer",
              "type": "address"
            },
            {
              "name": "stake_pool",
              "type": "address"
            },
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "execution_hash",
              "type": "vector<u8>"
            },
            {
              "name": "proposal_metadata",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
            }
          ],
          "variants": []
        },
        {
          "name": "CreateProposalEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "proposer",
              "type": "address"
            },
            {
              "name": "stake_pool",
              "type": "address"
            },
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "execution_hash",
              "type": "vector<u8>"
            },
            {
              "name": "proposal_metadata",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
            }
          ],
          "variants": []
        },
        {
          "name": "Vote",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "stake_pool",
              "type": "address"
            },
            {
              "name": "num_votes",
              "type": "u64"
            },
            {
              "name": "should_pass",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "VoteEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "proposal_id",
              "type": "u64"
            },
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "stake_pool",
              "type": "address"
            },
            {
              "name": "num_votes",
              "type": "u64"
            },
            {
              "name": "should_pass",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "ApprovedExecutionHashes",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "hashes",
              "type": "0x1::simple_map::SimpleMap<u64, vector<u8>>"
            }
          ],
          "variants": []
        },
        {
          "name": "GovernanceConfig",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "min_voting_threshold",
              "type": "u128"
            },
            {
              "name": "required_proposer_stake",
              "type": "u64"
            },
            {
              "name": "voting_duration_secs",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "GovernanceEvents",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "create_proposal_events",
              "type": "0x1::event::EventHandle<0x1::aptos_governance::CreateProposalEvent>"
            },
            {
              "name": "update_config_events",
              "type": "0x1::event::EventHandle<0x1::aptos_governance::UpdateConfigEvent>"
            },
            {
              "name": "vote_events",
              "type": "0x1::event::EventHandle<0x1::aptos_governance::VoteEvent>"
            }
          ],
          "variants": []
        },
        {
          "name": "GovernancePermission",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "GovernanceResponsbility",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "signer_caps",
              "type": "0x1::simple_map::SimpleMap<address, 0x1::account::SignerCapability>"
            }
          ],
          "variants": []
        },
        {
          "name": "RecordKey",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "stake_pool",
              "type": "address"
            },
            {
              "name": "proposal_id",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "UpdateConfig",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "min_voting_threshold",
              "type": "u128"
            },
            {
              "name": "required_proposer_stake",
              "type": "u64"
            },
            {
              "name": "voting_duration_secs",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "UpdateConfigEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "min_voting_threshold",
              "type": "u128"
            },
            {
              "name": "required_proposer_stake",
              "type": "u64"
            },
            {
              "name": "voting_duration_secs",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "VotingRecords",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "votes",
              "type": "0x1::table::Table<0x1::aptos_governance::RecordKey, bool>"
            }
          ],
          "variants": []
        },
        {
          "name": "VotingRecordsV2",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "votes",
              "type": "0x1::smart_table::SmartTable<0x1::aptos_governance::RecordKey, u64>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "bls12381_algebra",
      "friends": [],
      "exposed_functions": [],
      "structs": [
        {
          "name": "FormatFq12LscLsb",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "FormatFrLsb",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "FormatFrMsb",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "FormatG1Compr",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "FormatG1Uncompr",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "FormatG2Compr",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "FormatG2Uncompr",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "FormatGt",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "Fq12",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "Fr",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "G1",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "G2",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "Gt",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "HashG1XmdSha256SswuRo",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "HashG2XmdSha256SswuRo",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "consensus_config",
      "friends": [
        "0x1::reconfiguration_with_dkg",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "set",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "set_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "validator_txn_enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "ConsensusConfig",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "config",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "execution_config",
      "friends": [
        "0x1::reconfiguration_with_dkg",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "set",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "set_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "ExecutionConfig",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "config",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "multisig_account",
      "friends": [],
      "exposed_functions": [
        {
          "name": "create",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64",
            "vector<0x1::string::String>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "is_owner",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "metadata",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
          ]
        },
        {
          "name": "vote",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "u64",
            "address"
          ],
          "return": [
            "bool",
            "bool"
          ]
        },
        {
          "name": "add_owner",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "add_owners",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>"
          ],
          "return": []
        },
        {
          "name": "add_owners_and_update_signatures_required",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "approve_transaction",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "available_transaction_queue_capacity",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "can_be_executed",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "can_be_rejected",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "can_execute",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "can_reject",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "num_signatures_required",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "create_transaction",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "create_transaction_with_hash",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "create_with_existing_account",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "vector<address>",
            "u64",
            "u8",
            "vector<u8>",
            "vector<u8>",
            "vector<0x1::string::String>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "owners",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "vector<address>"
          ]
        },
        {
          "name": "create_with_existing_account_and_revoke_auth_key",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "vector<address>",
            "u64",
            "u8",
            "vector<u8>",
            "vector<u8>",
            "vector<0x1::string::String>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "create_with_existing_account_and_revoke_auth_key_call",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>",
            "u64",
            "vector<0x1::string::String>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "create_with_existing_account_call",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>",
            "u64",
            "vector<0x1::string::String>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "create_with_owners",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>",
            "u64",
            "vector<0x1::string::String>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "create_with_owners_and_timelock",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>",
            "u64",
            "vector<0x1::string::String>",
            "vector<vector<u8>>",
            "0x1::option::Option<u64>",
            "0x1::option::Option<u64>"
          ],
          "return": []
        },
        {
          "name": "timelock_period",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "create_with_owners_then_remove_bootstrapper",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>",
            "u64",
            "vector<0x1::string::String>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "execute_rejected_transaction",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "execute_rejected_transactions",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "get_next_multisig_account_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_next_transaction_payload",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "vector<u8>"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "get_pending_transactions",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "vector<0x1::multisig_account::MultisigTransaction>"
          ]
        },
        {
          "name": "get_transaction",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "u64"
          ],
          "return": [
            "0x1::multisig_account::MultisigTransaction"
          ]
        },
        {
          "name": "last_resolved_sequence_number",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "next_sequence_number",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "reject_transaction",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "remove_owner",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "remove_owners",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>"
          ],
          "return": []
        },
        {
          "name": "remove_timelock",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "swap_owner",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "swap_owners",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>",
            "vector<address>"
          ],
          "return": []
        },
        {
          "name": "swap_owners_and_update_signatures_required",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<address>",
            "vector<address>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "timelock_override_threshold",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "0x1::option::Option<u64>"
          ]
        },
        {
          "name": "update_metadata",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<0x1::string::String>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "update_signatures_required",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "upsert_timelock",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64",
            "0x1::option::Option<u64>"
          ],
          "return": []
        },
        {
          "name": "vote_transaction",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64",
            "bool"
          ],
          "return": []
        },
        {
          "name": "vote_transactions",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64",
            "u64",
            "bool"
          ],
          "return": []
        },
        {
          "name": "vote_transanction",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64",
            "bool"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Vote",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "multisig_account",
              "type": "address"
            },
            {
              "name": "owner",
              "type": "address"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "approved",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "VoteEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "owner",
              "type": "address"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "approved",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "AddOwners",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "multisig_account",
              "type": "address"
            },
            {
              "name": "owners_added",
              "type": "vector<address>"
            }
          ],
          "variants": []
        },
        {
          "name": "AddOwnersEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "owners_added",
              "type": "vector<address>"
            }
          ],
          "variants": []
        },
        {
          "name": "CreateTransaction",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "multisig_account",
              "type": "address"
            },
            {
              "name": "creator",
              "type": "address"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "transaction",
              "type": "0x1::multisig_account::MultisigTransaction"
            }
          ],
          "variants": []
        },
        {
          "name": "CreateTransactionEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "creator",
              "type": "address"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "transaction",
              "type": "0x1::multisig_account::MultisigTransaction"
            }
          ],
          "variants": []
        },
        {
          "name": "ExecuteRejectedTransaction",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "multisig_account",
              "type": "address"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "num_rejections",
              "type": "u64"
            },
            {
              "name": "executor",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "ExecuteRejectedTransactionEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "num_rejections",
              "type": "u64"
            },
            {
              "name": "executor",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "ExecutionError",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "abort_location",
              "type": "0x1::string::String"
            },
            {
              "name": "error_type",
              "type": "0x1::string::String"
            },
            {
              "name": "error_code",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "MetadataUpdated",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "multisig_account",
              "type": "address"
            },
            {
              "name": "old_metadata",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
            },
            {
              "name": "new_metadata",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
            }
          ],
          "variants": []
        },
        {
          "name": "MetadataUpdatedEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "old_metadata",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
            },
            {
              "name": "new_metadata",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
            }
          ],
          "variants": []
        },
        {
          "name": "MultisigAccount",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "owners",
              "type": "vector<address>"
            },
            {
              "name": "num_signatures_required",
              "type": "u64"
            },
            {
              "name": "transactions",
              "type": "0x1::table::Table<u64, 0x1::multisig_account::MultisigTransaction>"
            },
            {
              "name": "last_executed_sequence_number",
              "type": "u64"
            },
            {
              "name": "next_sequence_number",
              "type": "u64"
            },
            {
              "name": "signer_cap",
              "type": "0x1::option::Option<0x1::account::SignerCapability>"
            },
            {
              "name": "metadata",
              "type": "0x1::simple_map::SimpleMap<0x1::string::String, vector<u8>>"
            },
            {
              "name": "add_owners_events",
              "type": "0x1::event::EventHandle<0x1::multisig_account::AddOwnersEvent>"
            },
            {
              "name": "remove_owners_events",
              "type": "0x1::event::EventHandle<0x1::multisig_account::RemoveOwnersEvent>"
            },
            {
              "name": "update_signature_required_events",
              "type": "0x1::event::EventHandle<0x1::multisig_account::UpdateSignaturesRequiredEvent>"
            },
            {
              "name": "create_transaction_events",
              "type": "0x1::event::EventHandle<0x1::multisig_account::CreateTransactionEvent>"
            },
            {
              "name": "vote_events",
              "type": "0x1::event::EventHandle<0x1::multisig_account::VoteEvent>"
            },
            {
              "name": "execute_rejected_transaction_events",
              "type": "0x1::event::EventHandle<0x1::multisig_account::ExecuteRejectedTransactionEvent>"
            },
            {
              "name": "execute_transaction_events",
              "type": "0x1::event::EventHandle<0x1::multisig_account::TransactionExecutionSucceededEvent>"
            },
            {
              "name": "transaction_execution_failed_events",
              "type": "0x1::event::EventHandle<0x1::multisig_account::TransactionExecutionFailedEvent>"
            },
            {
              "name": "metadata_updated_events",
              "type": "0x1::event::EventHandle<0x1::multisig_account::MetadataUpdatedEvent>"
            }
          ],
          "variants": []
        },
        {
          "name": "MultisigAccountCreationMessage",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "chain_id",
              "type": "u8"
            },
            {
              "name": "account_address",
              "type": "address"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "owners",
              "type": "vector<address>"
            },
            {
              "name": "num_signatures_required",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "MultisigAccountCreationWithAuthKeyRevocationMessage",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "chain_id",
              "type": "u8"
            },
            {
              "name": "account_address",
              "type": "address"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "owners",
              "type": "vector<address>"
            },
            {
              "name": "num_signatures_required",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "MultisigAccountTimeLock",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "drop",
            "key"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "timelock_period",
                  "type": "u64"
                },
                {
                  "name": "override_threshold",
                  "type": "0x1::option::Option<u64>"
                }
              ]
            }
          ]
        },
        {
          "name": "MultisigTransaction",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "payload",
              "type": "0x1::option::Option<vector<u8>>"
            },
            {
              "name": "payload_hash",
              "type": "0x1::option::Option<vector<u8>>"
            },
            {
              "name": "votes",
              "type": "0x1::simple_map::SimpleMap<address, bool>"
            },
            {
              "name": "creator",
              "type": "address"
            },
            {
              "name": "creation_time_secs",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "RemoveOwners",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "multisig_account",
              "type": "address"
            },
            {
              "name": "owners_removed",
              "type": "vector<address>"
            }
          ],
          "variants": []
        },
        {
          "name": "RemoveOwnersEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "owners_removed",
              "type": "vector<address>"
            }
          ],
          "variants": []
        },
        {
          "name": "TimelockRemoved",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "multisig_account",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "TimelockUpdated",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "multisig_account",
              "type": "address"
            },
            {
              "name": "timelock_period",
              "type": "u64"
            },
            {
              "name": "override_threshold",
              "type": "0x1::option::Option<u64>"
            }
          ],
          "variants": []
        },
        {
          "name": "TransactionExecutionFailed",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "multisig_account",
              "type": "address"
            },
            {
              "name": "executor",
              "type": "address"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "transaction_payload",
              "type": "vector<u8>"
            },
            {
              "name": "num_approvals",
              "type": "u64"
            },
            {
              "name": "execution_error",
              "type": "0x1::multisig_account::ExecutionError"
            }
          ],
          "variants": []
        },
        {
          "name": "TransactionExecutionFailedEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "executor",
              "type": "address"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "transaction_payload",
              "type": "vector<u8>"
            },
            {
              "name": "num_approvals",
              "type": "u64"
            },
            {
              "name": "execution_error",
              "type": "0x1::multisig_account::ExecutionError"
            }
          ],
          "variants": []
        },
        {
          "name": "TransactionExecutionSucceeded",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "multisig_account",
              "type": "address"
            },
            {
              "name": "executor",
              "type": "address"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "transaction_payload",
              "type": "vector<u8>"
            },
            {
              "name": "num_approvals",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "TransactionExecutionSucceededEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "executor",
              "type": "address"
            },
            {
              "name": "sequence_number",
              "type": "u64"
            },
            {
              "name": "transaction_payload",
              "type": "vector<u8>"
            },
            {
              "name": "num_approvals",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "UpdateSignaturesRequired",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "multisig_account",
              "type": "address"
            },
            {
              "name": "old_num_signatures_required",
              "type": "u64"
            },
            {
              "name": "new_num_signatures_required",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "UpdateSignaturesRequiredEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "old_num_signatures_required",
              "type": "u64"
            },
            {
              "name": "new_num_signatures_required",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "nonce_validation",
      "friends": [
        "0x1::transaction_validation",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "add_nonce_buckets",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": []
        },
        {
          "name": "check_and_insert_nonce",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "u64",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "initialize_nonce_table",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Bucket",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "nonces_ordered_by_exp_time",
              "type": "0x1::big_ordered_map::BigOrderedMap<0x1::nonce_validation::NonceKeyWithExpTime, bool>"
            },
            {
              "name": "nonce_to_exp_time_map",
              "type": "0x1::big_ordered_map::BigOrderedMap<0x1::nonce_validation::NonceKey, u64>"
            }
          ],
          "variants": []
        },
        {
          "name": "NonceHistory",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "nonce_table",
              "type": "0x1::table::Table<u64, 0x1::nonce_validation::Bucket>"
            },
            {
              "name": "next_key",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "NonceKey",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "sender_address",
              "type": "address"
            },
            {
              "name": "nonce",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "NonceKeyWithExpTime",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "txn_expiration_time",
              "type": "u64"
            },
            {
              "name": "sender_address",
              "type": "address"
            },
            {
              "name": "nonce",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "pool_u64_unbound",
      "friends": [],
      "exposed_functions": [
        {
          "name": "contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64_unbound::Pool",
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::pool_u64_unbound::Pool"
          ]
        },
        {
          "name": "destroy_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::pool_u64_unbound::Pool"
          ],
          "return": []
        },
        {
          "name": "create",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::pool_u64_unbound::Pool"
          ]
        },
        {
          "name": "amount_to_shares",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64_unbound::Pool",
            "u64"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "amount_to_shares_with_total_coins",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64_unbound::Pool",
            "u64",
            "u64"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "total_coins",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64_unbound::Pool"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "balance",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64_unbound::Pool",
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "buy_in",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::pool_u64_unbound::Pool",
            "address",
            "u64"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "create_with_scaling_factor",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "0x1::pool_u64_unbound::Pool"
          ]
        },
        {
          "name": "multiply_then_divide",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64_unbound::Pool",
            "u128",
            "u128",
            "u128"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "redeem_shares",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::pool_u64_unbound::Pool",
            "address",
            "u128"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "shareholders_count",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64_unbound::Pool"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "shares",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64_unbound::Pool",
            "address"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "shares_to_amount",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64_unbound::Pool",
            "u128"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "shares_to_amount_with_total_coins",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64_unbound::Pool",
            "u128",
            "u64"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "total_shares",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64_unbound::Pool"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "transfer_shares",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::pool_u64_unbound::Pool",
            "address",
            "address",
            "u128"
          ],
          "return": []
        },
        {
          "name": "update_total_coins",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::pool_u64_unbound::Pool",
            "u64"
          ],
          "return": []
        },
        {
          "name": "shares_to_amount_with_total_stats",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::pool_u64_unbound::Pool",
            "u128",
            "u64",
            "u128"
          ],
          "return": [
            "u64"
          ]
        }
      ],
      "structs": [
        {
          "name": "Pool",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "total_coins",
              "type": "u64"
            },
            {
              "name": "total_shares",
              "type": "u128"
            },
            {
              "name": "shares",
              "type": "0x1::table_with_length::TableWithLength<address, u128>"
            },
            {
              "name": "scaling_factor",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "resource_account",
      "friends": [],
      "exposed_functions": [
        {
          "name": "create_resource_account",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "create_resource_account_and_fund",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<u8>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "create_resource_account_and_publish_package",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<u8>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "retrieve_resource_account_cap",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": [
            "0x1::account::SignerCapability"
          ]
        }
      ],
      "structs": [
        {
          "name": "Container",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "store",
              "type": "0x1::simple_map::SimpleMap<address, 0x1::account::SignerCapability>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "staking_contract",
      "friends": [],
      "exposed_functions": [
        {
          "name": "add_stake",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "beneficiary_for_operator",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_expected_stake_pool_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address",
            "vector<u8>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "set_beneficiary_for_operator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "commission_percentage",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "create_staking_contract",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address",
            "u64",
            "u64",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "create_staking_contract_with_coins",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address",
            "0x1::coin::Coin<0x1::aptos_coin::AptosCoin>",
            "u64",
            "vector<u8>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "distribute",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "last_recorded_principal",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "pending_attribution_snapshot",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address",
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "pending_distribution_counts",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "request_commission",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "reset_lockup",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "stake_pool_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "staker_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "0x1::option::Option<address>"
          ]
        },
        {
          "name": "staking_contract_amounts",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "u64",
            "u64",
            "u64"
          ]
        },
        {
          "name": "staking_contract_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "switch_operator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "switch_operator_with_same_commission",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        },
        {
          "name": "unlock_rewards",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "unlock_stake",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "update_commision",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "update_voter",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "address"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "AddStake",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "AddStakeEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "UnlockStake",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            },
            {
              "name": "commission_paid",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "UnlockStakeEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            },
            {
              "name": "commission_paid",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "BeneficiaryForOperator",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "beneficiary_for_operator",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "SetBeneficiaryForOperator",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "old_beneficiary",
              "type": "address"
            },
            {
              "name": "new_beneficiary",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "AddDistribution",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "AddDistributionEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "CreateStakingContract",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "principal",
              "type": "u64"
            },
            {
              "name": "commission_percentage",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "CreateStakingContractEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "voter",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "principal",
              "type": "u64"
            },
            {
              "name": "commission_percentage",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "Distribute",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "recipient",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "DistributeEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "recipient",
              "type": "address"
            },
            {
              "name": "amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "RequestCommission",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "accumulated_rewards",
              "type": "u64"
            },
            {
              "name": "commission_amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "RequestCommissionEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "accumulated_rewards",
              "type": "u64"
            },
            {
              "name": "commission_amount",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "ResetLockup",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "ResetLockupEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "Staker",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "staker",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "StakingContract",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "principal",
              "type": "u64"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "owner_cap",
              "type": "0x1::stake::OwnerCapability"
            },
            {
              "name": "commission_percentage",
              "type": "u64"
            },
            {
              "name": "distribution_pool",
              "type": "0x1::pool_u64::Pool"
            },
            {
              "name": "signer_cap",
              "type": "0x1::account::SignerCapability"
            }
          ],
          "variants": []
        },
        {
          "name": "StakingGroupContainer",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "StakingGroupUpdateCommissionEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "update_commission_events",
              "type": "0x1::event::EventHandle<0x1::staking_contract::UpdateCommissionEvent>"
            }
          ],
          "variants": []
        },
        {
          "name": "Store",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "staking_contracts",
              "type": "0x1::simple_map::SimpleMap<address, 0x1::staking_contract::StakingContract>"
            },
            {
              "name": "create_staking_contract_events",
              "type": "0x1::event::EventHandle<0x1::staking_contract::CreateStakingContractEvent>"
            },
            {
              "name": "update_voter_events",
              "type": "0x1::event::EventHandle<0x1::staking_contract::UpdateVoterEvent>"
            },
            {
              "name": "reset_lockup_events",
              "type": "0x1::event::EventHandle<0x1::staking_contract::ResetLockupEvent>"
            },
            {
              "name": "add_stake_events",
              "type": "0x1::event::EventHandle<0x1::staking_contract::AddStakeEvent>"
            },
            {
              "name": "request_commission_events",
              "type": "0x1::event::EventHandle<0x1::staking_contract::RequestCommissionEvent>"
            },
            {
              "name": "unlock_stake_events",
              "type": "0x1::event::EventHandle<0x1::staking_contract::UnlockStakeEvent>"
            },
            {
              "name": "switch_operator_events",
              "type": "0x1::event::EventHandle<0x1::staking_contract::SwitchOperatorEvent>"
            },
            {
              "name": "add_distribution_events",
              "type": "0x1::event::EventHandle<0x1::staking_contract::AddDistributionEvent>"
            },
            {
              "name": "distribute_events",
              "type": "0x1::event::EventHandle<0x1::staking_contract::DistributeEvent>"
            }
          ],
          "variants": []
        },
        {
          "name": "SwitchOperator",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "old_operator",
              "type": "address"
            },
            {
              "name": "new_operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "SwitchOperatorEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "old_operator",
              "type": "address"
            },
            {
              "name": "new_operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "UpdateCommission",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "staker",
              "type": "address"
            },
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "old_commission_percentage",
              "type": "u64"
            },
            {
              "name": "new_commission_percentage",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "UpdateCommissionEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "staker",
              "type": "address"
            },
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "old_commission_percentage",
              "type": "u64"
            },
            {
              "name": "new_commission_percentage",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "UpdateVoter",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "old_voter",
              "type": "address"
            },
            {
              "name": "new_voter",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "UpdateVoterEvent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "operator",
              "type": "address"
            },
            {
              "name": "pool_address",
              "type": "address"
            },
            {
              "name": "old_voter",
              "type": "address"
            },
            {
              "name": "new_voter",
              "type": "address"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "system_addresses",
      "friends": [],
      "exposed_functions": [
        {
          "name": "assert_aptos_framework",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "assert_core_resource",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "assert_core_resource_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "assert_framework_reserved",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": []
        },
        {
          "name": "assert_framework_reserved_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "assert_vm",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "is_aptos_framework_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_core_resource_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_framework_reserved_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_reserved_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_vm",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_vm_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "chunky_dkg_config",
      "friends": [
        "0x1::reconfiguration_with_dkg"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "current",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::chunky_dkg_config::ChunkyDKGConfig"
          ]
        },
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::chunky_dkg_config::ChunkyDKGConfig"
          ],
          "return": []
        },
        {
          "name": "set_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::chunky_dkg_config::ChunkyDKGConfig"
          ],
          "return": []
        },
        {
          "name": "enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "new_off",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::chunky_dkg_config::ChunkyDKGConfig"
          ]
        },
        {
          "name": "new_v1",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "0x1::chunky_dkg_config::ChunkyDKGConfig"
          ]
        },
        {
          "name": "grace_period_secs",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::option::Option<u64>"
          ]
        },
        {
          "name": "new_shadow_v1",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64",
            "u64"
          ],
          "return": [
            "0x1::chunky_dkg_config::ChunkyDKGConfig"
          ]
        }
      ],
      "structs": [
        {
          "name": "ConfigOff",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "ConfigV1",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "secrecy_threshold",
              "type": "0x1::fixed_point64::FixedPoint64"
            },
            {
              "name": "reconstruction_threshold",
              "type": "0x1::fixed_point64::FixedPoint64"
            }
          ],
          "variants": []
        },
        {
          "name": "ChunkyDKGConfig",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "variant",
              "type": "0x1::copyable_any::Any"
            }
          ],
          "variants": []
        },
        {
          "name": "ConfigShadowV1",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "secrecy_threshold",
              "type": "0x1::fixed_point64::FixedPoint64"
            },
            {
              "name": "reconstruction_threshold",
              "type": "0x1::fixed_point64::FixedPoint64"
            },
            {
              "name": "grace_period_secs",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "federated_keyless",
      "friends": [],
      "exposed_functions": [
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::keyless::PublicKey",
            "address"
          ],
          "return": [
            "0x1::federated_keyless::PublicKey"
          ]
        },
        {
          "name": "deserialize_public_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::bcs_stream::BCSStream"
          ],
          "return": [
            "0x1::federated_keyless::PublicKey"
          ]
        },
        {
          "name": "new_public_key_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::federated_keyless::PublicKey"
          ]
        },
        {
          "name": "get_jwk_address",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::federated_keyless::PublicKey"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_keyless_public_key",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::federated_keyless::PublicKey"
          ],
          "return": [
            "0x1::keyless::PublicKey"
          ]
        }
      ],
      "structs": [
        {
          "name": "PublicKey",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "jwk_address",
              "type": "address"
            },
            {
              "name": "keyless_public_key",
              "type": "0x1::keyless::PublicKey"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "randomness_config",
      "friends": [
        "0x1::reconfiguration_with_dkg"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "current",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::randomness_config::RandomnessConfig"
          ]
        },
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::randomness_config::RandomnessConfig"
          ],
          "return": []
        },
        {
          "name": "set_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::randomness_config::RandomnessConfig"
          ],
          "return": []
        },
        {
          "name": "enabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "new_off",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::randomness_config::RandomnessConfig"
          ]
        },
        {
          "name": "new_v1",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "0x1::randomness_config::RandomnessConfig"
          ]
        },
        {
          "name": "new_v2",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64",
            "0x1::fixed_point64::FixedPoint64"
          ],
          "return": [
            "0x1::randomness_config::RandomnessConfig"
          ]
        }
      ],
      "structs": [
        {
          "name": "ConfigOff",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "ConfigV1",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "secrecy_threshold",
              "type": "0x1::fixed_point64::FixedPoint64"
            },
            {
              "name": "reconstruction_threshold",
              "type": "0x1::fixed_point64::FixedPoint64"
            }
          ],
          "variants": []
        },
        {
          "name": "ConfigV2",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "secrecy_threshold",
              "type": "0x1::fixed_point64::FixedPoint64"
            },
            {
              "name": "reconstruction_threshold",
              "type": "0x1::fixed_point64::FixedPoint64"
            },
            {
              "name": "fast_path_secrecy_threshold",
              "type": "0x1::fixed_point64::FixedPoint64"
            }
          ],
          "variants": []
        },
        {
          "name": "RandomnessConfig",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "variant",
              "type": "0x1::copyable_any::Any"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "table_with_length",
      "friends": [],
      "exposed_functions": [
        {
          "name": "contains",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::table_with_length::TableWithLength<T0, T1>",
            "T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::table_with_length::TableWithLength<T0, T1>",
            "T0"
          ],
          "return": [
            "T1"
          ]
        },
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [],
          "return": [
            "0x1::table_with_length::TableWithLength<T0, T1>"
          ]
        },
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::table_with_length::TableWithLength<T0, T1>",
            "T0"
          ],
          "return": [
            "&T1"
          ]
        },
        {
          "name": "borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::table_with_length::TableWithLength<T0, T1>",
            "T0"
          ],
          "return": [
            "&mut T1"
          ]
        },
        {
          "name": "destroy_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::table_with_length::TableWithLength<T0, T1>"
          ],
          "return": []
        },
        {
          "name": "empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::table_with_length::TableWithLength<T0, T1>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "length",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::table_with_length::TableWithLength<T0, T1>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::table_with_length::TableWithLength<T0, T1>",
            "T0",
            "T1"
          ],
          "return": []
        },
        {
          "name": "borrow_mut_with_default",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&mut 0x1::table_with_length::TableWithLength<T0, T1>",
            "T0",
            "T1"
          ],
          "return": [
            "&mut T1"
          ]
        },
        {
          "name": "upsert",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": [
                "drop"
              ]
            }
          ],
          "params": [
            "&mut 0x1::table_with_length::TableWithLength<T0, T1>",
            "T0",
            "T1"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "TableWithLength",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop"
              ]
            },
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "inner",
              "type": "0x1::table::Table<T0, T1>"
            },
            {
              "name": "length",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "aggregator_factory",
      "friends": [
        "0x1::optional_aggregator",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "create_aggregator",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u128"
          ],
          "return": [
            "0x1::aggregator::Aggregator"
          ]
        },
        {
          "name": "create_aggregator_internal",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::aggregator::Aggregator"
          ]
        },
        {
          "name": "initialize_aggregator_factory",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "AggregatorFactory",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "phantom_table",
              "type": "0x1::table::Table<address, u128>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "confidential_asset",
      "friends": [],
      "exposed_functions": [
        {
          "name": "deposit",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::fungible_asset::Metadata>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "register",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::fungible_asset::Metadata>",
            "0x1::ristretto255::CompressedRistretto",
            "0x1::confidential_asset::RegistrationProof"
          ],
          "return": []
        },
        {
          "name": "confidential_transfer",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::fungible_asset::Metadata>",
            "address",
            "0x1::confidential_asset::TransferProof",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "confidential_transfer_raw",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::fungible_asset::Metadata>",
            "address",
            "vector<vector<u8>>",
            "vector<vector<u8>>",
            "vector<vector<u8>>",
            "vector<vector<u8>>",
            "vector<vector<u8>>",
            "vector<vector<u8>>",
            "vector<vector<u8>>",
            "vector<vector<u8>>",
            "vector<vector<vector<u8>>>",
            "vector<u8>",
            "vector<u8>",
            "vector<vector<u8>>",
            "vector<vector<u8>>",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "get_asset_specific_auditor_config",
          "visibility": "private",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ],
          "return": [
            "0x1::confidential_asset::AuditorConfig"
          ]
        },
        {
          "name": "get_available_balance",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ],
          "return": [
            "0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Available>"
          ]
        },
        {
          "name": "get_effective_auditor_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ],
          "return": [
            "0x1::confidential_asset::EffectiveAuditorConfig"
          ]
        },
        {
          "name": "get_effective_auditor_hint",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ],
          "return": [
            "0x1::option::Option<0x1::confidential_asset::EffectiveAuditorHint>"
          ]
        },
        {
          "name": "get_encryption_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ],
          "return": [
            "0x1::ristretto255::CompressedRistretto"
          ]
        },
        {
          "name": "get_global_auditor_config",
          "visibility": "private",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::confidential_asset::AuditorConfig"
          ]
        },
        {
          "name": "get_max_memo_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_max_transfers_before_rollover",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_num_transfers_received",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_pending_balance",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ],
          "return": [
            "0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Pending>"
          ]
        },
        {
          "name": "get_total_confidential_supply",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "has_confidential_store",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "incoming_transfers_paused",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_allow_listing_required",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_confidentiality_enabled_for_asset_type",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_emergency_paused",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_normalized",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "normalize_raw",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::fungible_asset::Metadata>",
            "vector<vector<u8>>",
            "vector<vector<u8>>",
            "vector<vector<u8>>",
            "vector<u8>",
            "vector<vector<u8>>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "register_raw",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::fungible_asset::Metadata>",
            "vector<u8>",
            "vector<vector<u8>>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "rollover_pending_balance",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ],
          "return": []
        },
        {
          "name": "rollover_pending_balance_and_pause",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ],
          "return": []
        },
        {
          "name": "rotate_encryption_key",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::fungible_asset::Metadata>",
            "0x1::confidential_asset::KeyRotationProof",
            "bool"
          ],
          "return": []
        },
        {
          "name": "rotate_encryption_key_raw",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::fungible_asset::Metadata>",
            "vector<u8>",
            "bool",
            "vector<vector<u8>>",
            "vector<vector<u8>>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "set_allow_listing",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "bool"
          ],
          "return": []
        },
        {
          "name": "set_asset_specific_auditor",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::fungible_asset::Metadata>",
            "0x1::option::Option<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "set_confidentiality_for_apt",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "bool"
          ],
          "return": []
        },
        {
          "name": "set_confidentiality_for_asset_type",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::fungible_asset::Metadata>",
            "bool"
          ],
          "return": []
        },
        {
          "name": "set_emergency_paused",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "bool"
          ],
          "return": []
        },
        {
          "name": "set_global_auditor",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::option::Option<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "set_incoming_transfers_paused",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::fungible_asset::Metadata>",
            "bool"
          ],
          "return": []
        },
        {
          "name": "withdraw_to",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::fungible_asset::Metadata>",
            "address",
            "u64",
            "0x1::confidential_asset::WithdrawalProof"
          ],
          "return": []
        },
        {
          "name": "withdraw_to_raw",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::fungible_asset::Metadata>",
            "address",
            "u64",
            "vector<vector<u8>>",
            "vector<vector<u8>>",
            "vector<vector<u8>>",
            "vector<u8>",
            "vector<vector<u8>>",
            "vector<vector<u8>>"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "AllowListingChanged",
          "is_native": false,
          "is_event": true,
          "is_enum": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "enabled",
                  "type": "bool"
                }
              ]
            }
          ]
        },
        {
          "name": "AssetConfig",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "allowed",
                  "type": "bool"
                },
                {
                  "name": "auditor",
                  "type": "0x1::confidential_asset::AuditorConfig"
                }
              ]
            }
          ]
        },
        {
          "name": "AssetSpecificAuditorChanged",
          "is_native": false,
          "is_event": true,
          "is_enum": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "asset_type",
                  "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
                },
                {
                  "name": "new",
                  "type": "0x1::confidential_asset::AuditorConfig"
                }
              ]
            }
          ]
        },
        {
          "name": "AuditorConfig",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "ek",
                  "type": "0x1::option::Option<0x1::ristretto255::CompressedRistretto>"
                },
                {
                  "name": "epoch",
                  "type": "u64"
                }
              ]
            }
          ]
        },
        {
          "name": "ConfidentialStore",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "pause_incoming",
                  "type": "bool"
                },
                {
                  "name": "normalized",
                  "type": "bool"
                },
                {
                  "name": "transfers_received",
                  "type": "u64"
                },
                {
                  "name": "pending_balance",
                  "type": "0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Pending>"
                },
                {
                  "name": "available_balance",
                  "type": "0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Available>"
                },
                {
                  "name": "ek",
                  "type": "0x1::ristretto255::CompressedRistretto"
                },
                {
                  "name": "auditor_hint",
                  "type": "0x1::option::Option<0x1::confidential_asset::EffectiveAuditorHint>"
                }
              ]
            }
          ]
        },
        {
          "name": "ConfidentialityForAssetTypeChanged",
          "is_native": false,
          "is_event": true,
          "is_enum": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "asset_type",
                  "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
                },
                {
                  "name": "allowed",
                  "type": "bool"
                }
              ]
            }
          ]
        },
        {
          "name": "Deposited",
          "is_native": false,
          "is_event": true,
          "is_enum": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "addr",
                  "type": "address"
                },
                {
                  "name": "amount",
                  "type": "u64"
                },
                {
                  "name": "asset_type",
                  "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
                },
                {
                  "name": "new_pending_balance",
                  "type": "0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Pending>"
                }
              ]
            }
          ]
        },
        {
          "name": "EffectiveAuditorConfig",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "is_global",
                  "type": "bool"
                },
                {
                  "name": "config",
                  "type": "0x1::confidential_asset::AuditorConfig"
                }
              ]
            }
          ]
        },
        {
          "name": "EffectiveAuditorHint",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "is_global",
                  "type": "bool"
                },
                {
                  "name": "epoch",
                  "type": "u64"
                }
              ]
            }
          ]
        },
        {
          "name": "EmergencyPauseChanged",
          "is_native": false,
          "is_event": true,
          "is_enum": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "paused",
                  "type": "bool"
                }
              ]
            }
          ]
        },
        {
          "name": "GlobalAuditorChanged",
          "is_native": false,
          "is_event": true,
          "is_enum": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "new",
                  "type": "0x1::confidential_asset::AuditorConfig"
                }
              ]
            }
          ]
        },
        {
          "name": "GlobalConfig",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "allow_list_enabled",
                  "type": "bool"
                },
                {
                  "name": "global_auditor",
                  "type": "0x1::confidential_asset::AuditorConfig"
                },
                {
                  "name": "extend_ref",
                  "type": "0x1::object::ExtendRef"
                }
              ]
            },
            {
              "name": "V2",
              "fields": [
                {
                  "name": "allow_list_enabled",
                  "type": "bool"
                },
                {
                  "name": "global_auditor",
                  "type": "0x1::confidential_asset::AuditorConfig"
                },
                {
                  "name": "extend_ref",
                  "type": "0x1::object::ExtendRef"
                },
                {
                  "name": "emergency_paused",
                  "type": "bool"
                }
              ]
            }
          ]
        },
        {
          "name": "IncomingTransfersPauseChanged",
          "is_native": false,
          "is_event": true,
          "is_enum": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "addr",
                  "type": "address"
                },
                {
                  "name": "asset_type",
                  "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
                },
                {
                  "name": "paused",
                  "type": "bool"
                }
              ]
            }
          ]
        },
        {
          "name": "KeyRotated",
          "is_native": false,
          "is_event": true,
          "is_enum": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "addr",
                  "type": "address"
                },
                {
                  "name": "asset_type",
                  "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
                },
                {
                  "name": "new_ek",
                  "type": "0x1::ristretto255::CompressedRistretto"
                },
                {
                  "name": "new_available_balance",
                  "type": "0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Available>"
                }
              ]
            }
          ]
        },
        {
          "name": "KeyRotationProof",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "compressed_new_ek",
                  "type": "0x1::ristretto255::CompressedRistretto"
                },
                {
                  "name": "compressed_new_R",
                  "type": "vector<0x1::ristretto255::CompressedRistretto>"
                },
                {
                  "name": "sigma",
                  "type": "0x1::sigma_protocol_proof::Proof"
                }
              ]
            }
          ]
        },
        {
          "name": "Normalized",
          "is_native": false,
          "is_event": true,
          "is_enum": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "addr",
                  "type": "address"
                },
                {
                  "name": "asset_type",
                  "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
                },
                {
                  "name": "new_available_balance",
                  "type": "0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Available>"
                },
                {
                  "name": "auditor_hint",
                  "type": "0x1::option::Option<0x1::confidential_asset::EffectiveAuditorHint>"
                }
              ]
            }
          ]
        },
        {
          "name": "Registered",
          "is_native": false,
          "is_event": true,
          "is_enum": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "addr",
                  "type": "address"
                },
                {
                  "name": "asset_type",
                  "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
                },
                {
                  "name": "ek",
                  "type": "0x1::ristretto255::CompressedRistretto"
                }
              ]
            }
          ]
        },
        {
          "name": "RegistrationProof",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "sigma",
                  "type": "0x1::sigma_protocol_proof::Proof"
                }
              ]
            }
          ]
        },
        {
          "name": "RolledOver",
          "is_native": false,
          "is_event": true,
          "is_enum": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "addr",
                  "type": "address"
                },
                {
                  "name": "asset_type",
                  "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
                },
                {
                  "name": "new_available_balance",
                  "type": "0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Available>"
                }
              ]
            }
          ]
        },
        {
          "name": "TransferProof",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "compressed_new_balance",
                  "type": "0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Available>"
                },
                {
                  "name": "compressed_amount",
                  "type": "0x1::confidential_amount::CompressedAmount"
                },
                {
                  "name": "compressed_ek_volun_auds",
                  "type": "vector<0x1::ristretto255::CompressedRistretto>"
                },
                {
                  "name": "zkrp_new_balance",
                  "type": "0x1::ristretto255_bulletproofs::RangeProof"
                },
                {
                  "name": "zkrp_amount",
                  "type": "0x1::ristretto255_bulletproofs::RangeProof"
                },
                {
                  "name": "sigma",
                  "type": "0x1::sigma_protocol_proof::Proof"
                }
              ]
            }
          ]
        },
        {
          "name": "Transferred",
          "is_native": false,
          "is_event": true,
          "is_enum": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "from",
                  "type": "address"
                },
                {
                  "name": "to",
                  "type": "address"
                },
                {
                  "name": "asset_type",
                  "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
                },
                {
                  "name": "amount",
                  "type": "0x1::confidential_amount::CompressedAmount"
                },
                {
                  "name": "ek_volun_auds",
                  "type": "vector<0x1::ristretto255::CompressedRistretto>"
                },
                {
                  "name": "sender_auditor_hint",
                  "type": "0x1::option::Option<0x1::confidential_asset::EffectiveAuditorHint>"
                },
                {
                  "name": "new_sender_available_balance",
                  "type": "0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Available>"
                },
                {
                  "name": "new_recip_pending_balance",
                  "type": "0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Pending>"
                },
                {
                  "name": "memo",
                  "type": "vector<u8>"
                }
              ]
            }
          ]
        },
        {
          "name": "WithdrawalProof",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "compressed_new_balance",
                  "type": "0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Available>"
                },
                {
                  "name": "zkrp_new_balance",
                  "type": "0x1::ristretto255_bulletproofs::RangeProof"
                },
                {
                  "name": "sigma",
                  "type": "0x1::sigma_protocol_proof::Proof"
                }
              ]
            }
          ]
        },
        {
          "name": "Withdrawn",
          "is_native": false,
          "is_event": true,
          "is_enum": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "from",
                  "type": "address"
                },
                {
                  "name": "to",
                  "type": "address"
                },
                {
                  "name": "amount",
                  "type": "u64"
                },
                {
                  "name": "asset_type",
                  "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
                },
                {
                  "name": "new_available_balance",
                  "type": "0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Available>"
                },
                {
                  "name": "auditor_hint",
                  "type": "0x1::option::Option<0x1::confidential_asset::EffectiveAuditorHint>"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "transaction_limits",
      "friends": [
        "0x1::transaction_validation",
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<0x1::transaction_limits::TxnLimitTier>",
            "vector<0x1::transaction_limits::TxnLimitTier>"
          ],
          "return": []
        },
        {
          "name": "new_tier",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "u64"
          ],
          "return": [
            "0x1::transaction_limits::TxnLimitTier"
          ]
        },
        {
          "name": "update_config",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u64>",
            "vector<u64>",
            "vector<u64>",
            "vector<u64>"
          ],
          "return": []
        },
        {
          "name": "validate_high_txn_limits",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::transaction_limits::UserTxnLimitsRequest"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "RequestedMultipliers",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "execution_multiplier_percent",
                  "type": "u64"
                },
                {
                  "name": "io_multiplier_percent",
                  "type": "u64"
                }
              ]
            }
          ]
        },
        {
          "name": "TxnLimitTier",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "min_stake",
              "type": "u64"
            },
            {
              "name": "multiplier_percent",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "TxnLimitsConfig",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "execution_tiers",
                  "type": "vector<0x1::transaction_limits::TxnLimitTier>"
                },
                {
                  "name": "io_tiers",
                  "type": "vector<0x1::transaction_limits::TxnLimitTier>"
                }
              ]
            }
          ]
        },
        {
          "name": "UserTxnLimitsRequest",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "StakePoolOwner",
              "fields": [
                {
                  "name": "multipliers",
                  "type": "0x1::transaction_limits::RequestedMultipliers"
                }
              ]
            },
            {
              "name": "DelegatedVoter",
              "fields": [
                {
                  "name": "pool_address",
                  "type": "address"
                },
                {
                  "name": "multipliers",
                  "type": "0x1::transaction_limits::RequestedMultipliers"
                }
              ]
            },
            {
              "name": "DelegationPoolDelegator",
              "fields": [
                {
                  "name": "pool_address",
                  "type": "address"
                },
                {
                  "name": "multipliers",
                  "type": "0x1::transaction_limits::RequestedMultipliers"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "account_abstraction",
      "friends": [
        "0x1::transaction_validation"
      ],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "add_authentication_function",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "add_dispatchable_authentication_function",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "derive_account_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::function_info::FunctionInfo",
            "&vector<u8>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "derive_account_address_view",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::string::String",
            "0x1::string::String",
            "vector<u8>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "dispatchable_authenticator",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "0x1::option::Option<vector<0x1::function_info::FunctionInfo>>"
          ]
        },
        {
          "name": "register_derivable_authentication_function",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "remove_authentication_function",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "remove_authenticator",
          "visibility": "private",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "remove_dispatchable_authentication_function",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "remove_dispatchable_authenticator",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "using_dispatchable_authenticator",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [
            "address"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "DerivableDispatchableAuthenticator",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "auth_functions",
                  "type": "0x1::big_ordered_map::BigOrderedMap<0x1::function_info::FunctionInfo, 0x1::account_abstraction::DerivableRegisterValue>"
                }
              ]
            }
          ]
        },
        {
          "name": "DerivableRegisterValue",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "Empty",
              "fields": []
            }
          ]
        },
        {
          "name": "DispatchableAuthenticator",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop",
            "key"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "auth_functions",
                  "type": "0x1::ordered_map::OrderedMap<0x1::function_info::FunctionInfo, bool>"
                }
              ]
            }
          ]
        },
        {
          "name": "RemoveDispatchableAuthenticator",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "UpdateDispatchableAuthenticator",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account",
              "type": "address"
            },
            {
              "name": "update",
              "type": "vector<u8>"
            },
            {
              "name": "auth_function",
              "type": "0x1::function_info::FunctionInfo"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "confidential_amount",
      "friends": [
        "0x1::sigma_protocol_transfer",
        "0x1::confidential_asset"
      ],
      "exposed_functions": [
        {
          "name": "new",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<0x1::ristretto255::RistrettoPoint>",
            "vector<0x1::ristretto255::RistrettoPoint>",
            "vector<0x1::ristretto255::RistrettoPoint>",
            "vector<0x1::ristretto255::RistrettoPoint>",
            "vector<vector<0x1::ristretto255::RistrettoPoint>>"
          ],
          "return": [
            "0x1::confidential_amount::Amount"
          ]
        },
        {
          "name": "compress",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::confidential_amount::Amount"
          ],
          "return": [
            "0x1::confidential_amount::CompressedAmount"
          ]
        },
        {
          "name": "get_compressed_P",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::confidential_amount::CompressedAmount"
          ],
          "return": [
            "&vector<0x1::ristretto255::CompressedRistretto>"
          ]
        },
        {
          "name": "get_compressed_R_eff_aud",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::confidential_amount::CompressedAmount"
          ],
          "return": [
            "&vector<0x1::ristretto255::CompressedRistretto>"
          ]
        },
        {
          "name": "get_compressed_R_recip",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::confidential_amount::CompressedAmount"
          ],
          "return": [
            "&vector<0x1::ristretto255::CompressedRistretto>"
          ]
        },
        {
          "name": "get_compressed_R_sender",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::confidential_amount::CompressedAmount"
          ],
          "return": [
            "&vector<0x1::ristretto255::CompressedRistretto>"
          ]
        },
        {
          "name": "get_compressed_R_volun_auds",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::confidential_amount::CompressedAmount"
          ],
          "return": [
            "&vector<vector<0x1::ristretto255::CompressedRistretto>>"
          ]
        },
        {
          "name": "has_effective_auditor_compressed",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::confidential_amount::CompressedAmount"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "new_compressed",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<0x1::ristretto255::CompressedRistretto>",
            "vector<0x1::ristretto255::CompressedRistretto>",
            "vector<0x1::ristretto255::CompressedRistretto>",
            "vector<0x1::ristretto255::CompressedRistretto>",
            "vector<vector<0x1::ristretto255::CompressedRistretto>>"
          ],
          "return": [
            "0x1::confidential_amount::CompressedAmount"
          ]
        },
        {
          "name": "new_compressed_from_bytes",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<vector<u8>>",
            "vector<vector<u8>>",
            "vector<vector<u8>>",
            "vector<vector<u8>>",
            "vector<vector<vector<u8>>>"
          ],
          "return": [
            "0x1::confidential_amount::CompressedAmount"
          ]
        },
        {
          "name": "num_volun_auditors_compressed",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::confidential_amount::CompressedAmount"
          ],
          "return": [
            "u64"
          ]
        }
      ],
      "structs": [
        {
          "name": "Amount",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "P",
              "type": "vector<0x1::ristretto255::RistrettoPoint>"
            },
            {
              "name": "R_sender",
              "type": "vector<0x1::ristretto255::RistrettoPoint>"
            },
            {
              "name": "R_recip",
              "type": "vector<0x1::ristretto255::RistrettoPoint>"
            },
            {
              "name": "R_eff_aud",
              "type": "vector<0x1::ristretto255::RistrettoPoint>"
            },
            {
              "name": "R_volun_auds",
              "type": "vector<vector<0x1::ristretto255::RistrettoPoint>>"
            }
          ],
          "variants": []
        },
        {
          "name": "CompressedAmount",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "compressed_P",
              "type": "vector<0x1::ristretto255::CompressedRistretto>"
            },
            {
              "name": "compressed_R_sender",
              "type": "vector<0x1::ristretto255::CompressedRistretto>"
            },
            {
              "name": "compressed_R_recip",
              "type": "vector<0x1::ristretto255::CompressedRistretto>"
            },
            {
              "name": "compressed_R_eff_aud",
              "type": "vector<0x1::ristretto255::CompressedRistretto>"
            },
            {
              "name": "compressed_R_volun_auds",
              "type": "vector<vector<0x1::ristretto255::CompressedRistretto>>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "governance_proposal",
      "friends": [
        "0x1::aptos_governance"
      ],
      "exposed_functions": [
        {
          "name": "create_proposal",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::governance_proposal::GovernanceProposal"
          ]
        },
        {
          "name": "create_empty_proposal",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::governance_proposal::GovernanceProposal"
          ]
        }
      ],
      "structs": [
        {
          "name": "GovernanceProposal",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "optional_aggregator",
      "friends": [
        "0x1::fungible_asset",
        "0x1::coin"
      ],
      "exposed_functions": [
        {
          "name": "new",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "bool"
          ],
          "return": [
            "0x1::optional_aggregator::OptionalAggregator"
          ]
        },
        {
          "name": "destroy",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::optional_aggregator::OptionalAggregator"
          ],
          "return": []
        },
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::optional_aggregator::OptionalAggregator",
            "u128"
          ],
          "return": []
        },
        {
          "name": "read",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::optional_aggregator::OptionalAggregator"
          ],
          "return": [
            "u128"
          ]
        },
        {
          "name": "sub",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::optional_aggregator::OptionalAggregator",
            "u128"
          ],
          "return": []
        },
        {
          "name": "is_parallelizable",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::optional_aggregator::OptionalAggregator"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "switch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::optional_aggregator::OptionalAggregator"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Integer",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "value",
              "type": "u128"
            },
            {
              "name": "limit",
              "type": "u128"
            }
          ],
          "variants": []
        },
        {
          "name": "OptionalAggregator",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "aggregator",
              "type": "0x1::option::Option<0x1::aggregator::Aggregator>"
            },
            {
              "name": "integer",
              "type": "0x1::option::Option<0x1::optional_aggregator::Integer>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "permissioned_signer",
      "friends": [
        "0x1::account",
        "0x1::object",
        "0x1::fungible_asset",
        "0x1::voting",
        "0x1::stake",
        "0x1::aptos_governance",
        "0x1::code",
        "0x1::delegation_pool",
        "0x1::vesting",
        "0x1::transaction_validation",
        "0x1::permissioned_delegation",
        "0x1::staking_proxy"
      ],
      "exposed_functions": [
        {
          "name": "address_of",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "borrow_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "&address"
          ]
        },
        {
          "name": "assert_master_signer",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "authorize_increase",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&signer",
            "&signer",
            "u256",
            "T0"
          ],
          "return": []
        },
        {
          "name": "capacity",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&signer",
            "T0"
          ],
          "return": [
            "0x1::option::Option<u256>"
          ]
        },
        {
          "name": "authorize_unlimited",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&signer",
            "&signer",
            "T0"
          ],
          "return": []
        },
        {
          "name": "check_permission_capacity_above",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&signer",
            "u256",
            "T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "check_permission_consume",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&signer",
            "u256",
            "T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "check_permission_exists",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&signer",
            "T0"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "create_permissioned_handle",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "0x1::permissioned_signer::PermissionedHandle"
          ]
        },
        {
          "name": "create_storable_permissioned_handle",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": [
            "0x1::permissioned_signer::StorablePermissionedHandle"
          ]
        },
        {
          "name": "destroy_permissioned_handle",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::permissioned_signer::PermissionedHandle"
          ],
          "return": []
        },
        {
          "name": "destroy_storable_permissioned_handle",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::permissioned_signer::StorablePermissionedHandle"
          ],
          "return": []
        },
        {
          "name": "grant_revoke_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer"
          ],
          "return": []
        },
        {
          "name": "grant_unlimited_with_permissioned_signer",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&signer",
            "T0"
          ],
          "return": []
        },
        {
          "name": "increase_limit",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&signer",
            "u256",
            "T0"
          ],
          "return": []
        },
        {
          "name": "is_permissioned_signer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "permissions_storage_address",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::permissioned_signer::StorablePermissionedHandle"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "revoke_all_handles",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "revoke_permission",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "copy",
                "drop",
                "store"
              ]
            }
          ],
          "params": [
            "&signer",
            "T0"
          ],
          "return": []
        },
        {
          "name": "revoke_permission_storage_address",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address"
          ],
          "return": []
        },
        {
          "name": "signer_from_permissioned_handle",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::permissioned_signer::PermissionedHandle"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "signer_from_storable_permissioned_handle",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::permissioned_signer::StorablePermissionedHandle"
          ],
          "return": [
            "signer"
          ]
        }
      ],
      "structs": [
        {
          "name": "GrantedPermissionHandles",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "active_handles",
              "type": "vector<address>"
            }
          ],
          "variants": []
        },
        {
          "name": "PermissionStorage",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "perms",
                  "type": "0x1::big_ordered_map::BigOrderedMap<0x1::copyable_any::Any, 0x1::permissioned_signer::StoredPermission>"
                }
              ]
            }
          ]
        },
        {
          "name": "PermissionedHandle",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "master_account_addr",
                  "type": "address"
                },
                {
                  "name": "permissions_storage_addr",
                  "type": "address"
                }
              ]
            }
          ]
        },
        {
          "name": "RevokePermissionHandlePermission",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "StorablePermissionedHandle",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "master_account_addr",
                  "type": "address"
                },
                {
                  "name": "permissions_storage_addr",
                  "type": "address"
                },
                {
                  "name": "expiration_time",
                  "type": "u64"
                }
              ]
            }
          ]
        },
        {
          "name": "StoredPermission",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "Unlimited",
              "fields": []
            },
            {
              "name": "Capacity",
              "fields": [
                {
                  "name": "_0",
                  "type": "u256"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "transaction_context",
      "friends": [],
      "exposed_functions": [
        {
          "name": "chain_id",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u8"
          ]
        },
        {
          "name": "account_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::transaction_context::EntryFunctionPayload"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "module_name",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::transaction_context::EntryFunctionPayload"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "args",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::transaction_context::EntryFunctionPayload"
          ],
          "return": [
            "vector<vector<u8>>"
          ]
        },
        {
          "name": "auid_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::transaction_context::AUID"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "entry_function_payload",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::option::Option<0x1::transaction_context::EntryFunctionPayload>"
          ]
        },
        {
          "name": "function_name",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::transaction_context::EntryFunctionPayload"
          ],
          "return": [
            "0x1::string::String"
          ]
        },
        {
          "name": "gas_payer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "address"
          ]
        },
        {
          "name": "gas_unit_price",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "generate_auid",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::transaction_context::AUID"
          ]
        },
        {
          "name": "generate_auid_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_script_hash",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "get_transaction_hash",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "inner_entry_function_payload",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::transaction_context::MultisigPayload"
          ],
          "return": [
            "0x1::option::Option<0x1::transaction_context::EntryFunctionPayload>"
          ]
        },
        {
          "name": "is_encrypted_txn",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "max_gas_amount",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "monotonically_increasing_counter",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u128"
          ]
        },
        {
          "name": "multisig_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::transaction_context::MultisigPayload"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "multisig_payload",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::option::Option<0x1::transaction_context::MultisigPayload>"
          ]
        },
        {
          "name": "secondary_signers",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "vector<address>"
          ]
        },
        {
          "name": "sender",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "address"
          ]
        },
        {
          "name": "type_arg_names",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::transaction_context::EntryFunctionPayload"
          ],
          "return": [
            "vector<0x1::string::String>"
          ]
        }
      ],
      "structs": [
        {
          "name": "AUID",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "unique_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "EntryFunctionPayload",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "account_address",
              "type": "address"
            },
            {
              "name": "module_name",
              "type": "0x1::string::String"
            },
            {
              "name": "function_name",
              "type": "0x1::string::String"
            },
            {
              "name": "ty_args_names",
              "type": "vector<0x1::string::String>"
            },
            {
              "name": "args",
              "type": "vector<vector<u8>>"
            }
          ],
          "variants": []
        },
        {
          "name": "MultisigPayload",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "multisig_address",
              "type": "address"
            },
            {
              "name": "entry_function_payload",
              "type": "0x1::option::Option<0x1::transaction_context::EntryFunctionPayload>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "confidential_balance",
      "friends": [
        "0x1::sigma_protocol_withdraw",
        "0x1::confidential_amount",
        "0x1::sigma_protocol_transfer",
        "0x1::sigma_protocol_registration",
        "0x1::sigma_protocol_key_rotation",
        "0x1::confidential_range_proofs",
        "0x1::confidential_asset"
      ],
      "exposed_functions": [
        {
          "name": "is_zero",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::confidential_balance::CompressedBalance<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "add_assign_available_excluding_auditor",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Available>",
            "&0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Pending>"
          ],
          "return": []
        },
        {
          "name": "add_assign_pending",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Pending>",
            "&0x1::confidential_balance::Balance<0x1::confidential_balance::Pending>"
          ],
          "return": [
            "0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Pending>"
          ]
        },
        {
          "name": "add_mut_base",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::confidential_balance::Balance<T0>",
            "&vector<0x1::ristretto255::RistrettoPoint>",
            "&vector<0x1::ristretto255::RistrettoPoint>"
          ],
          "return": []
        },
        {
          "name": "compress",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::confidential_balance::Balance<T0>"
          ],
          "return": [
            "0x1::confidential_balance::CompressedBalance<T0>"
          ]
        },
        {
          "name": "decompress",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::confidential_balance::CompressedBalance<T0>"
          ],
          "return": [
            "0x1::confidential_balance::Balance<T0>"
          ]
        },
        {
          "name": "get_P",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::confidential_balance::Balance<T0>"
          ],
          "return": [
            "&vector<0x1::ristretto255::RistrettoPoint>"
          ]
        },
        {
          "name": "get_R",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::confidential_balance::Balance<T0>"
          ],
          "return": [
            "&vector<0x1::ristretto255::RistrettoPoint>"
          ]
        },
        {
          "name": "get_R_aud",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::confidential_balance::Balance<T0>"
          ],
          "return": [
            "&vector<0x1::ristretto255::RistrettoPoint>"
          ]
        },
        {
          "name": "get_b_powers",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "vector<0x1::ristretto255::Scalar>"
          ]
        },
        {
          "name": "get_chunk_size_bits",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_chunk_upper_bound",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_compressed_P",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::confidential_balance::CompressedBalance<T0>"
          ],
          "return": [
            "&vector<0x1::ristretto255::CompressedRistretto>"
          ]
        },
        {
          "name": "get_compressed_R",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::confidential_balance::CompressedBalance<T0>"
          ],
          "return": [
            "&vector<0x1::ristretto255::CompressedRistretto>"
          ]
        },
        {
          "name": "get_compressed_R_aud",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::confidential_balance::CompressedBalance<T0>"
          ],
          "return": [
            "&vector<0x1::ristretto255::CompressedRistretto>"
          ]
        },
        {
          "name": "get_encryption_key_basepoint_compressed",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::ristretto255::CompressedRistretto"
          ]
        },
        {
          "name": "get_num_available_chunks",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_num_pending_chunks",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "new_available_from_p_r_r_aud",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<0x1::ristretto255::RistrettoPoint>",
            "vector<0x1::ristretto255::RistrettoPoint>",
            "vector<0x1::ristretto255::RistrettoPoint>"
          ],
          "return": [
            "0x1::confidential_balance::Balance<0x1::confidential_balance::Available>"
          ]
        },
        {
          "name": "new_compressed_available_from_bytes",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<vector<u8>>",
            "vector<vector<u8>>",
            "vector<vector<u8>>"
          ],
          "return": [
            "0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Available>"
          ]
        },
        {
          "name": "new_compressed_available_from_p_r_r_aud",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<0x1::ristretto255::CompressedRistretto>",
            "vector<0x1::ristretto255::CompressedRistretto>",
            "vector<0x1::ristretto255::CompressedRistretto>"
          ],
          "return": [
            "0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Available>"
          ]
        },
        {
          "name": "new_pending_from_p_and_r",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<0x1::ristretto255::RistrettoPoint>",
            "vector<0x1::ristretto255::RistrettoPoint>"
          ],
          "return": [
            "0x1::confidential_balance::Balance<0x1::confidential_balance::Pending>"
          ]
        },
        {
          "name": "new_pending_u64_no_randomness",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "0x1::confidential_balance::Balance<0x1::confidential_balance::Pending>"
          ]
        },
        {
          "name": "new_zero_available_compressed",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Available>"
          ]
        },
        {
          "name": "new_zero_pending_compressed",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Pending>"
          ]
        },
        {
          "name": "set_available_R",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Available>",
            "vector<0x1::ristretto255::CompressedRistretto>"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Available",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "Balance",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "P",
                  "type": "vector<0x1::ristretto255::RistrettoPoint>"
                },
                {
                  "name": "R",
                  "type": "vector<0x1::ristretto255::RistrettoPoint>"
                },
                {
                  "name": "R_aud",
                  "type": "vector<0x1::ristretto255::RistrettoPoint>"
                }
              ]
            }
          ]
        },
        {
          "name": "CompressedBalance",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "P",
                  "type": "vector<0x1::ristretto255::CompressedRistretto>"
                },
                {
                  "name": "R",
                  "type": "vector<0x1::ristretto255::CompressedRistretto>"
                },
                {
                  "name": "R_aud",
                  "type": "vector<0x1::ristretto255::CompressedRistretto>"
                }
              ]
            }
          ]
        },
        {
          "name": "Pending",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "epoch_timeout_config",
      "friends": [
        "0x1::reconfiguration_with_dkg"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "set_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::epoch_timeout_config::EpochTimeoutConfig"
          ],
          "return": []
        },
        {
          "name": "force_end_grace_period_secs",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::option::Option<u64>"
          ]
        },
        {
          "name": "new_disabled",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::epoch_timeout_config::EpochTimeoutConfig"
          ]
        },
        {
          "name": "new_with_grace_period",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "0x1::epoch_timeout_config::EpochTimeoutConfig"
          ]
        }
      ],
      "structs": [
        {
          "name": "EpochTimeoutConfig",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "force_end_grace_period_secs",
              "type": "0x1::option::Option<u64>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "jwk_consensus_config",
      "friends": [
        "0x1::reconfiguration_with_dkg"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::jwk_consensus_config::JWKConsensusConfig"
          ],
          "return": []
        },
        {
          "name": "set_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::jwk_consensus_config::JWKConsensusConfig"
          ],
          "return": []
        },
        {
          "name": "new_off",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::jwk_consensus_config::JWKConsensusConfig"
          ]
        },
        {
          "name": "new_v1",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<0x1::jwk_consensus_config::OIDCProvider>"
          ],
          "return": [
            "0x1::jwk_consensus_config::JWKConsensusConfig"
          ]
        },
        {
          "name": "new_oidc_provider",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": [
            "0x1::jwk_consensus_config::OIDCProvider"
          ]
        }
      ],
      "structs": [
        {
          "name": "ConfigOff",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "ConfigV1",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "oidc_providers",
              "type": "vector<0x1::jwk_consensus_config::OIDCProvider>"
            }
          ],
          "variants": []
        },
        {
          "name": "OIDCProvider",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "name",
              "type": "0x1::string::String"
            },
            {
              "name": "config_url",
              "type": "0x1::string::String"
            }
          ],
          "variants": []
        },
        {
          "name": "JWKConsensusConfig",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "variant",
              "type": "0x1::copyable_any::Any"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "ristretto255_elgamal",
      "friends": [],
      "exposed_functions": [
        {
          "name": "ciphertext_add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_elgamal::Ciphertext",
            "&0x1::ristretto255_elgamal::Ciphertext"
          ],
          "return": [
            "0x1::ristretto255_elgamal::Ciphertext"
          ]
        },
        {
          "name": "ciphertext_add_assign",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::ristretto255_elgamal::Ciphertext",
            "&0x1::ristretto255_elgamal::Ciphertext"
          ],
          "return": []
        },
        {
          "name": "ciphertext_as_points",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_elgamal::Ciphertext"
          ],
          "return": [
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "ciphertext_clone",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_elgamal::Ciphertext"
          ],
          "return": [
            "0x1::ristretto255_elgamal::Ciphertext"
          ]
        },
        {
          "name": "ciphertext_equals",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_elgamal::Ciphertext",
            "&0x1::ristretto255_elgamal::Ciphertext"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "ciphertext_from_compressed_points",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ristretto255::CompressedRistretto",
            "0x1::ristretto255::CompressedRistretto"
          ],
          "return": [
            "0x1::ristretto255_elgamal::CompressedCiphertext"
          ]
        },
        {
          "name": "ciphertext_from_points",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ristretto255::RistrettoPoint",
            "0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "0x1::ristretto255_elgamal::Ciphertext"
          ]
        },
        {
          "name": "ciphertext_into_points",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ristretto255_elgamal::Ciphertext"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint",
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "ciphertext_sub",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_elgamal::Ciphertext",
            "&0x1::ristretto255_elgamal::Ciphertext"
          ],
          "return": [
            "0x1::ristretto255_elgamal::Ciphertext"
          ]
        },
        {
          "name": "ciphertext_sub_assign",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::ristretto255_elgamal::Ciphertext",
            "&0x1::ristretto255_elgamal::Ciphertext"
          ],
          "return": []
        },
        {
          "name": "ciphertext_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_elgamal::Ciphertext"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "compress_ciphertext",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_elgamal::Ciphertext"
          ],
          "return": [
            "0x1::ristretto255_elgamal::CompressedCiphertext"
          ]
        },
        {
          "name": "decompress_ciphertext",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_elgamal::CompressedCiphertext"
          ],
          "return": [
            "0x1::ristretto255_elgamal::Ciphertext"
          ]
        },
        {
          "name": "get_value_component",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_elgamal::Ciphertext"
          ],
          "return": [
            "&0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "new_ciphertext_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::ristretto255_elgamal::Ciphertext>"
          ]
        },
        {
          "name": "new_ciphertext_no_randomness",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "0x1::ristretto255_elgamal::Ciphertext"
          ]
        },
        {
          "name": "new_pubkey_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::ristretto255_elgamal::CompressedPubkey>"
          ]
        },
        {
          "name": "pubkey_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_elgamal::CompressedPubkey"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "pubkey_to_compressed_point",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_elgamal::CompressedPubkey"
          ],
          "return": [
            "0x1::ristretto255::CompressedRistretto"
          ]
        },
        {
          "name": "pubkey_to_point",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_elgamal::CompressedPubkey"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        }
      ],
      "structs": [
        {
          "name": "Ciphertext",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "left",
              "type": "0x1::ristretto255::RistrettoPoint"
            },
            {
              "name": "right",
              "type": "0x1::ristretto255::RistrettoPoint"
            }
          ],
          "variants": []
        },
        {
          "name": "CompressedCiphertext",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "left",
              "type": "0x1::ristretto255::CompressedRistretto"
            },
            {
              "name": "right",
              "type": "0x1::ristretto255::CompressedRistretto"
            }
          ],
          "variants": []
        },
        {
          "name": "CompressedPubkey",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "point",
              "type": "0x1::ristretto255::CompressedRistretto"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "sigma_protocol_proof",
      "friends": [
        "0x1::sigma_protocol",
        "0x1::sigma_protocol_withdraw",
        "0x1::sigma_protocol_transfer",
        "0x1::sigma_protocol_registration",
        "0x1::sigma_protocol_key_rotation",
        "0x1::confidential_asset"
      ],
      "exposed_functions": [
        {
          "name": "get_commitment",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::sigma_protocol_proof::Proof"
          ],
          "return": [
            "&vector<0x1::ristretto255::RistrettoPoint>"
          ]
        },
        {
          "name": "get_compressed_commitment",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::sigma_protocol_proof::Proof"
          ],
          "return": [
            "&vector<0x1::ristretto255::CompressedRistretto>"
          ]
        },
        {
          "name": "get_response",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::sigma_protocol_proof::Proof"
          ],
          "return": [
            "&vector<0x1::ristretto255::Scalar>"
          ]
        },
        {
          "name": "get_response_length",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::sigma_protocol_proof::Proof"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "new_proof",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<0x1::ristretto255::RistrettoPoint>",
            "vector<0x1::ristretto255::CompressedRistretto>",
            "vector<0x1::ristretto255::Scalar>"
          ],
          "return": [
            "0x1::sigma_protocol_proof::Proof"
          ]
        },
        {
          "name": "new_proof_from_bytes",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<vector<u8>>",
            "vector<vector<u8>>"
          ],
          "return": [
            "0x1::sigma_protocol_proof::Proof"
          ]
        },
        {
          "name": "response_to_witness",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::sigma_protocol_proof::Proof"
          ],
          "return": [
            "0x1::sigma_protocol_witness::Witness"
          ]
        }
      ],
      "structs": [
        {
          "name": "Proof",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "comm_A",
              "type": "vector<0x1::ristretto255::RistrettoPoint>"
            },
            {
              "name": "compressed_comm_A",
              "type": "vector<0x1::ristretto255::CompressedRistretto>"
            },
            {
              "name": "resp_sigma",
              "type": "vector<0x1::ristretto255::Scalar>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "sigma_protocol_utils",
      "friends": [
        "0x1::sigma_protocol_proof",
        "0x1::sigma_protocol",
        "0x1::confidential_balance",
        "0x1::sigma_protocol_withdraw",
        "0x1::confidential_amount",
        "0x1::sigma_protocol_transfer",
        "0x1::sigma_protocol_registration",
        "0x1::sigma_protocol_key_rotation",
        "0x1::confidential_asset"
      ],
      "exposed_functions": [
        {
          "name": "deserialize_compressed_points",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<vector<u8>>"
          ],
          "return": [
            "vector<0x1::ristretto255::CompressedRistretto>"
          ]
        },
        {
          "name": "deserialize_points",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<vector<u8>>"
          ],
          "return": [
            "vector<0x1::ristretto255::RistrettoPoint>",
            "vector<0x1::ristretto255::CompressedRistretto>"
          ]
        },
        {
          "name": "deserialize_scalars",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<vector<u8>>"
          ],
          "return": [
            "vector<0x1::ristretto255::Scalar>"
          ]
        },
        {
          "name": "e_wrong_num_points",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "e_wrong_num_scalars",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "e_wrong_output_len",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "e_wrong_witness_len",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "neg_scalars",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&vector<0x1::ristretto255::Scalar>"
          ],
          "return": [
            "vector<0x1::ristretto255::Scalar>"
          ]
        },
        {
          "name": "points_clone",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&vector<0x1::ristretto255::RistrettoPoint>"
          ],
          "return": [
            "vector<0x1::ristretto255::RistrettoPoint>"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "reconfiguration_state",
      "friends": [
        "0x1::stake",
        "0x1::reconfiguration",
        "0x1::reconfiguration_with_dkg"
      ],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "initialize_for_testing",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "is_in_progress",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_initialized",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "bool"
          ]
        },
        {
          "name": "on_reconfig_finish",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        },
        {
          "name": "on_reconfig_start",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        },
        {
          "name": "start_time_secs",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        }
      ],
      "structs": [
        {
          "name": "State",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "variant",
              "type": "0x1::copyable_any::Any"
            }
          ],
          "variants": []
        },
        {
          "name": "StateActive",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "start_time_secs",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "StateInactive",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "ristretto255_pedersen",
      "friends": [],
      "exposed_functions": [
        {
          "name": "commitment_add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_pedersen::Commitment",
            "&0x1::ristretto255_pedersen::Commitment"
          ],
          "return": [
            "0x1::ristretto255_pedersen::Commitment"
          ]
        },
        {
          "name": "commitment_add_assign",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::ristretto255_pedersen::Commitment",
            "&0x1::ristretto255_pedersen::Commitment"
          ],
          "return": []
        },
        {
          "name": "commitment_as_compressed_point",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_pedersen::Commitment"
          ],
          "return": [
            "0x1::ristretto255::CompressedRistretto"
          ]
        },
        {
          "name": "commitment_as_point",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_pedersen::Commitment"
          ],
          "return": [
            "&0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "commitment_clone",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_pedersen::Commitment"
          ],
          "return": [
            "0x1::ristretto255_pedersen::Commitment"
          ]
        },
        {
          "name": "commitment_equals",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_pedersen::Commitment",
            "&0x1::ristretto255_pedersen::Commitment"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "commitment_from_compressed",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::CompressedRistretto"
          ],
          "return": [
            "0x1::ristretto255_pedersen::Commitment"
          ]
        },
        {
          "name": "commitment_from_point",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "0x1::ristretto255_pedersen::Commitment"
          ]
        },
        {
          "name": "commitment_into_compressed_point",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ristretto255_pedersen::Commitment"
          ],
          "return": [
            "0x1::ristretto255::CompressedRistretto"
          ]
        },
        {
          "name": "commitment_into_point",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ristretto255_pedersen::Commitment"
          ],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "commitment_sub",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_pedersen::Commitment",
            "&0x1::ristretto255_pedersen::Commitment"
          ],
          "return": [
            "0x1::ristretto255_pedersen::Commitment"
          ]
        },
        {
          "name": "commitment_sub_assign",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::ristretto255_pedersen::Commitment",
            "&0x1::ristretto255_pedersen::Commitment"
          ],
          "return": []
        },
        {
          "name": "commitment_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_pedersen::Commitment"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "new_commitment",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar",
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::Scalar",
            "&0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "0x1::ristretto255_pedersen::Commitment"
          ]
        },
        {
          "name": "new_commitment_for_bulletproof",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar",
            "&0x1::ristretto255::Scalar"
          ],
          "return": [
            "0x1::ristretto255_pedersen::Commitment"
          ]
        },
        {
          "name": "new_commitment_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::option::Option<0x1::ristretto255_pedersen::Commitment>"
          ]
        },
        {
          "name": "new_commitment_with_basepoint",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::Scalar",
            "&0x1::ristretto255::Scalar",
            "&0x1::ristretto255::RistrettoPoint"
          ],
          "return": [
            "0x1::ristretto255_pedersen::Commitment"
          ]
        },
        {
          "name": "randomness_base_for_bulletproof",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::ristretto255::RistrettoPoint"
          ]
        }
      ],
      "structs": [
        {
          "name": "Commitment",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "point",
              "type": "0x1::ristretto255::RistrettoPoint"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "sui_derivable_account",
      "friends": [],
      "exposed_functions": [
        {
          "name": "authenticate",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "signer",
            "0x1::auth_data::AbstractionAuthData"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "authenticate_auth_data",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::auth_data::AbstractionAuthData",
            "&vector<u8>"
          ],
          "return": []
        },
        {
          "name": "split_signature_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&vector<u8>"
          ],
          "return": [
            "u8",
            "vector<u8>",
            "vector<u8>"
          ]
        }
      ],
      "structs": [
        {
          "name": "AppId",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "Sui",
              "fields": []
            }
          ]
        },
        {
          "name": "Intent",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "scope",
              "type": "0x1::sui_derivable_account::IntentScope"
            },
            {
              "name": "version",
              "type": "0x1::sui_derivable_account::IntentVersion"
            },
            {
              "name": "app_id",
              "type": "0x1::sui_derivable_account::AppId"
            }
          ],
          "variants": []
        },
        {
          "name": "IntentMessage",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "intent",
              "type": "0x1::sui_derivable_account::Intent"
            },
            {
              "name": "value",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "IntentScope",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "TransactionData",
              "fields": []
            },
            {
              "name": "TransactionEffects",
              "fields": []
            },
            {
              "name": "CheckpointSummary",
              "fields": []
            },
            {
              "name": "PersonalMessage",
              "fields": []
            }
          ]
        },
        {
          "name": "IntentVersion",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V0",
              "fields": []
            }
          ]
        },
        {
          "name": "SuiAbstractPublicKey",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "sui_account_address",
              "type": "vector<u8>"
            },
            {
              "name": "domain",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "SuiAbstractSignature",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "MessageV1",
              "fields": [
                {
                  "name": "signature",
                  "type": "vector<u8>"
                }
              ]
            }
          ]
        },
        {
          "name": "SuiSigningScheme",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "ED25519",
              "fields": []
            }
          ]
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "object_code_deployment",
      "friends": [],
      "exposed_functions": [
        {
          "name": "publish",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<vector<u8>>"
          ],
          "return": []
        },
        {
          "name": "freeze_code_object",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::code::PackageRegistry>"
          ],
          "return": []
        },
        {
          "name": "get_code_object_signer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::code::PackageRegistry>"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "upgrade",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<vector<u8>>",
            "0x1::object::Object<0x1::code::PackageRegistry>"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "Freeze",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "object_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "ManagingRefs",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "extend_ref",
              "type": "0x1::object::ExtendRef"
            }
          ],
          "variants": []
        },
        {
          "name": "Publish",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "object_address",
              "type": "address"
            }
          ],
          "variants": []
        },
        {
          "name": "Upgrade",
          "is_native": false,
          "is_event": true,
          "is_enum": false,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "object_address",
              "type": "address"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "primary_fungible_store",
      "friends": [],
      "exposed_functions": [
        {
          "name": "burn",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::BurnRef",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "grant_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "&signer",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "transfer",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "transfer_with_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::TransferRef",
            "address",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "balance",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "address",
            "0x1::object::Object<T0>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "deposit",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": []
        },
        {
          "name": "deposit_with_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::TransferRef",
            "address",
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": []
        },
        {
          "name": "is_balance_at_least",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "address",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_frozen",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "address",
            "0x1::object::Object<T0>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "mint",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::MintRef",
            "address",
            "u64"
          ],
          "return": []
        },
        {
          "name": "set_frozen_flag",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::TransferRef",
            "address",
            "bool"
          ],
          "return": []
        },
        {
          "name": "withdraw",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": [
            "0x1::fungible_asset::FungibleAsset"
          ]
        },
        {
          "name": "withdraw_with_ref",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::fungible_asset::TransferRef",
            "address",
            "u64"
          ],
          "return": [
            "0x1::fungible_asset::FungibleAsset"
          ]
        },
        {
          "name": "transfer_assert_minimum_deposit",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>",
            "address",
            "u64",
            "u64"
          ],
          "return": []
        },
        {
          "name": "create_primary_store",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "address",
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::FungibleStore>"
          ]
        },
        {
          "name": "create_primary_store_enabled_fungible_asset",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef",
            "0x1::option::Option<u128>",
            "0x1::string::String",
            "0x1::string::String",
            "u8",
            "0x1::string::String",
            "0x1::string::String"
          ],
          "return": []
        },
        {
          "name": "deposit_with_signer",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": []
        },
        {
          "name": "ensure_primary_store_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "address",
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::FungibleStore>"
          ]
        },
        {
          "name": "grant_apt_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "primary_store",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "address",
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::object::Object<0x1::fungible_asset::FungibleStore>"
          ]
        },
        {
          "name": "primary_store_address",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "address",
            "0x1::object::Object<T0>"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "primary_store_exists",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "address",
            "0x1::object::Object<T0>"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "DeriveRefPod",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "metadata_derive_ref",
              "type": "0x1::object::DeriveRef"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "sigma_protocol_witness",
      "friends": [
        "0x1::sigma_protocol_proof",
        "0x1::sigma_protocol_homomorphism",
        "0x1::sigma_protocol",
        "0x1::sigma_protocol_withdraw",
        "0x1::sigma_protocol_transfer",
        "0x1::sigma_protocol_registration",
        "0x1::sigma_protocol_key_rotation"
      ],
      "exposed_functions": [
        {
          "name": "length",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::sigma_protocol_witness::Witness"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::sigma_protocol_witness::Witness",
            "u64"
          ],
          "return": [
            "&0x1::ristretto255::Scalar"
          ]
        },
        {
          "name": "get_scalars",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::sigma_protocol_witness::Witness"
          ],
          "return": [
            "&vector<0x1::ristretto255::Scalar>"
          ]
        },
        {
          "name": "new_secret_witness",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<0x1::ristretto255::Scalar>"
          ],
          "return": [
            "0x1::sigma_protocol_witness::Witness"
          ]
        }
      ],
      "structs": [
        {
          "name": "Witness",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "w",
              "type": "vector<0x1::ristretto255::Scalar>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "storage_slot_or_inline",
      "friends": [],
      "exposed_functions": [
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::storage_slot_or_inline::StorageSlotOrInline<T0>"
          ],
          "return": [
            "&T0"
          ]
        },
        {
          "name": "borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::storage_slot_or_inline::StorageSlotOrInline<T0>"
          ],
          "return": [
            "&mut T0"
          ]
        },
        {
          "name": "destroy",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "0x1::storage_slot_or_inline::StorageSlotOrInline<T0>"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "move_to_inline",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::storage_slot_or_inline::StorageSlotOrInline<T0>"
          ],
          "return": []
        },
        {
          "name": "move_to_storage_slot",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::storage_slot_or_inline::StorageSlotOrInline<T0>"
          ],
          "return": []
        },
        {
          "name": "new_inline",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "T0"
          ],
          "return": [
            "0x1::storage_slot_or_inline::StorageSlotOrInline<T0>"
          ]
        },
        {
          "name": "new_storage_slot",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "T0"
          ],
          "return": [
            "0x1::storage_slot_or_inline::StorageSlotOrInline<T0>"
          ]
        }
      ],
      "structs": [
        {
          "name": "Dummy",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "StorageSlotOrInline",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [],
          "variants": [
            {
              "name": "Inline",
              "fields": [
                {
                  "name": "value",
                  "type": "T0"
                }
              ]
            },
            {
              "name": "StorageSlot",
              "fields": [
                {
                  "name": "slot",
                  "type": "0x1::storage_slot::StorageSlot<T0>"
                }
              ]
            },
            {
              "name": "Transient",
              "fields": []
            }
          ]
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "transaction_validation",
      "friends": [
        "0x1::genesis"
      ],
      "exposed_functions": [
        {
          "name": "initialize",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "vector<u8>",
            "vector<u8>",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": []
        },
        {
          "name": "grant_gas_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "&signer",
            "u64"
          ],
          "return": []
        },
        {
          "name": "revoke_gas_permission",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "EpilogueArgs",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "fee_statement",
                  "type": "0x1::transaction_fee::FeeStatement"
                },
                {
                  "name": "txn_gas_price",
                  "type": "u64"
                },
                {
                  "name": "txn_max_gas_units",
                  "type": "u64"
                },
                {
                  "name": "gas_units_remaining",
                  "type": "u64"
                },
                {
                  "name": "is_simulation",
                  "type": "bool"
                },
                {
                  "name": "is_orderless_txn",
                  "type": "bool"
                }
              ]
            }
          ]
        },
        {
          "name": "GasPermission",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "PrologueArgs",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "needs_fee_payer_auth_check",
                  "type": "bool"
                },
                {
                  "name": "txn_sender_public_key",
                  "type": "0x1::option::Option<vector<u8>>"
                },
                {
                  "name": "fee_payer_public_key_hash",
                  "type": "0x1::option::Option<vector<u8>>"
                },
                {
                  "name": "replay_protector",
                  "type": "0x1::transaction_validation::ReplayProtector"
                },
                {
                  "name": "secondary_signer_addresses",
                  "type": "vector<address>"
                },
                {
                  "name": "secondary_signer_public_key_hashes",
                  "type": "vector<0x1::option::Option<vector<u8>>>"
                },
                {
                  "name": "txn_gas_price",
                  "type": "u64"
                },
                {
                  "name": "txn_max_gas_units",
                  "type": "u64"
                },
                {
                  "name": "txn_expiration_time",
                  "type": "u64"
                },
                {
                  "name": "chain_id",
                  "type": "u8"
                },
                {
                  "name": "is_simulation",
                  "type": "bool"
                },
                {
                  "name": "txn_limits_request",
                  "type": "0x1::option::Option<0x1::transaction_limits::UserTxnLimitsRequest>"
                }
              ]
            }
          ]
        },
        {
          "name": "ReplayProtector",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "Nonce",
              "fields": [
                {
                  "name": "_0",
                  "type": "u64"
                }
              ]
            },
            {
              "name": "SequenceNumber",
              "fields": [
                {
                  "name": "_0",
                  "type": "u64"
                }
              ]
            }
          ]
        },
        {
          "name": "TransactionValidation",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "module_addr",
              "type": "address"
            },
            {
              "name": "module_name",
              "type": "vector<u8>"
            },
            {
              "name": "script_prologue_name",
              "type": "vector<u8>"
            },
            {
              "name": "module_prologue_name",
              "type": "vector<u8>"
            },
            {
              "name": "multi_agent_prologue_name",
              "type": "vector<u8>"
            },
            {
              "name": "user_epilogue_name",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "permissioned_delegation",
      "friends": [],
      "exposed_functions": [
        {
          "name": "authenticate",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "signer",
            "0x1::auth_data::AbstractionAuthData"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "add_permissioned_handle",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::permissioned_delegation::DelegationKey",
            "0x1::option::Option<0x1::rate_limiter::RateLimiter>",
            "u64"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "gen_ed25519_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ed25519::UnvalidatedPublicKey"
          ],
          "return": [
            "0x1::permissioned_delegation::DelegationKey"
          ]
        },
        {
          "name": "handle_address_by_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "0x1::permissioned_delegation::DelegationKey"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "permissioned_signer_by_key",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::permissioned_delegation::DelegationKey"
          ],
          "return": [
            "signer"
          ]
        },
        {
          "name": "remove_permissioned_handle",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::permissioned_delegation::DelegationKey"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "AccountDelegation",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "handle",
                  "type": "0x1::permissioned_signer::StorablePermissionedHandle"
                },
                {
                  "name": "rate_limiter",
                  "type": "0x1::option::Option<0x1::rate_limiter::RateLimiter>"
                }
              ]
            }
          ]
        },
        {
          "name": "DelegationKey",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "Ed25519PublicKey",
              "fields": [
                {
                  "name": "_0",
                  "type": "0x1::ed25519::UnvalidatedPublicKey"
                }
              ]
            }
          ]
        },
        {
          "name": "RegisteredDelegations",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "delegations",
              "type": "0x1::big_ordered_map::BigOrderedMap<0x1::permissioned_delegation::DelegationKey, 0x1::permissioned_delegation::AccountDelegation>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "sigma_protocol_transfer",
      "friends": [
        "0x1::confidential_asset"
      ],
      "exposed_functions": [
        {
          "name": "assert_verifies",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::sigma_protocol_transfer::TransferSession",
            "&0x1::sigma_protocol_statement::Statement<0x1::sigma_protocol_transfer::Transfer>",
            "&0x1::sigma_protocol_proof::Proof"
          ],
          "return": []
        },
        {
          "name": "new_session",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "address",
            "0x1::object::Object<0x1::fungible_asset::Metadata>",
            "bool",
            "u64"
          ],
          "return": [
            "0x1::sigma_protocol_transfer::TransferSession"
          ]
        },
        {
          "name": "new_transfer_statement",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ristretto255::CompressedRistretto",
            "0x1::ristretto255::CompressedRistretto",
            "&0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Available>",
            "&0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Available>",
            "&0x1::confidential_amount::CompressedAmount",
            "&0x1::option::Option<0x1::ristretto255::CompressedRistretto>",
            "&vector<0x1::ristretto255::CompressedRistretto>"
          ],
          "return": [
            "0x1::sigma_protocol_statement::Statement<0x1::sigma_protocol_transfer::Transfer>",
            "0x1::confidential_balance::Balance<0x1::confidential_balance::Pending>"
          ]
        }
      ],
      "structs": [
        {
          "name": "Transfer",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "TransferSession",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "sender",
              "type": "address"
            },
            {
              "name": "recipient",
              "type": "address"
            },
            {
              "name": "asset_type",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            },
            {
              "name": "num_avail_chunks",
              "type": "u64"
            },
            {
              "name": "num_transfer_chunks",
              "type": "u64"
            },
            {
              "name": "has_effective_auditor",
              "type": "bool"
            },
            {
              "name": "num_volun_auditors",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "sigma_protocol_withdraw",
      "friends": [
        "0x1::confidential_asset"
      ],
      "exposed_functions": [
        {
          "name": "assert_verifies",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::sigma_protocol_withdraw::WithdrawSession",
            "&0x1::sigma_protocol_statement::Statement<0x1::sigma_protocol_withdraw::Withdrawal>",
            "&0x1::sigma_protocol_proof::Proof"
          ],
          "return": []
        },
        {
          "name": "new_session",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::fungible_asset::Metadata>",
            "bool"
          ],
          "return": [
            "0x1::sigma_protocol_withdraw::WithdrawSession"
          ]
        },
        {
          "name": "new_withdrawal_statement",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ristretto255::CompressedRistretto",
            "&0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Available>",
            "&0x1::confidential_balance::CompressedBalance<0x1::confidential_balance::Available>",
            "&0x1::option::Option<0x1::ristretto255::CompressedRistretto>",
            "0x1::ristretto255::Scalar"
          ],
          "return": [
            "0x1::sigma_protocol_statement::Statement<0x1::sigma_protocol_withdraw::Withdrawal>"
          ]
        }
      ],
      "structs": [
        {
          "name": "WithdrawSession",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "sender",
              "type": "address"
            },
            {
              "name": "asset_type",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            },
            {
              "name": "num_chunks",
              "type": "u64"
            },
            {
              "name": "has_auditor",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "Withdrawal",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "storage_slots_allocator",
      "friends": [],
      "exposed_functions": [
        {
          "name": "remove",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::storage_slots_allocator::StorageSlotsAllocator<T0>",
            "0x1::storage_slots_allocator::StoredSlot"
          ],
          "return": [
            "T0"
          ]
        },
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "bool"
          ],
          "return": [
            "0x1::storage_slots_allocator::StorageSlotsAllocator<T0>"
          ]
        },
        {
          "name": "borrow",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::storage_slots_allocator::StorageSlotsAllocator<T0>",
            "u64"
          ],
          "return": [
            "&T0"
          ]
        },
        {
          "name": "borrow_mut",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::storage_slots_allocator::StorageSlotsAllocator<T0>",
            "u64"
          ],
          "return": [
            "&mut T0"
          ]
        },
        {
          "name": "destroy_empty",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "0x1::storage_slots_allocator::StorageSlotsAllocator<T0>"
          ],
          "return": []
        },
        {
          "name": "add",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::storage_slots_allocator::StorageSlotsAllocator<T0>",
            "T0"
          ],
          "return": [
            "0x1::storage_slots_allocator::StoredSlot"
          ]
        },
        {
          "name": "allocate_spare_slots",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::storage_slots_allocator::StorageSlotsAllocator<T0>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "fill_reserved_slot",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::storage_slots_allocator::StorageSlotsAllocator<T0>",
            "0x1::storage_slots_allocator::ReservedSlot",
            "T0"
          ],
          "return": []
        },
        {
          "name": "free_reserved_slot",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::storage_slots_allocator::StorageSlotsAllocator<T0>",
            "0x1::storage_slots_allocator::ReservedSlot",
            "0x1::storage_slots_allocator::StoredSlot"
          ],
          "return": []
        },
        {
          "name": "get_num_spare_slot_count",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&0x1::storage_slots_allocator::StorageSlotsAllocator<T0>"
          ],
          "return": [
            "u32"
          ]
        },
        {
          "name": "is_null_index",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "is_special_unused_index",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "remove_and_reserve",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::storage_slots_allocator::StorageSlotsAllocator<T0>",
            "u64"
          ],
          "return": [
            "0x1::storage_slots_allocator::ReservedSlot",
            "T0"
          ]
        },
        {
          "name": "reserve_slot",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "params": [
            "&mut 0x1::storage_slots_allocator::StorageSlotsAllocator<T0>"
          ],
          "return": [
            "0x1::storage_slots_allocator::StoredSlot",
            "0x1::storage_slots_allocator::ReservedSlot"
          ]
        },
        {
          "name": "reserved_to_index",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::storage_slots_allocator::ReservedSlot"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "stored_to_index",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::storage_slots_allocator::StoredSlot"
          ],
          "return": [
            "u64"
          ]
        }
      ],
      "structs": [
        {
          "name": "Link",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "fields": [],
          "variants": [
            {
              "name": "Occupied",
              "fields": [
                {
                  "name": "value",
                  "type": "T0"
                }
              ]
            },
            {
              "name": "Vacant",
              "fields": [
                {
                  "name": "next",
                  "type": "u64"
                }
              ]
            }
          ]
        },
        {
          "name": "ReservedSlot",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [],
          "fields": [
            {
              "name": "slot_index",
              "type": "u64"
            }
          ],
          "variants": []
        },
        {
          "name": "StorageSlotsAllocator",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "store"
          ],
          "generic_type_params": [
            {
              "constraints": [
                "store"
              ]
            }
          ],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "slots",
                  "type": "0x1::option::Option<0x1::table_with_length::TableWithLength<u64, 0x1::storage_slots_allocator::Link<T0>>>"
                },
                {
                  "name": "new_slot_index",
                  "type": "u64"
                },
                {
                  "name": "should_reuse",
                  "type": "bool"
                },
                {
                  "name": "reuse_head_index",
                  "type": "u64"
                },
                {
                  "name": "reuse_spare_count",
                  "type": "u32"
                }
              ]
            }
          ]
        },
        {
          "name": "StoredSlot",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "slot_index",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "chunky_dkg_config_seqnum",
      "friends": [
        "0x1::reconfiguration_with_dkg"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "set_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "ChunkyDKGConfigSeqNum",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "seq_num",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "randomness_api_v0_config",
      "friends": [
        "0x1::reconfiguration_with_dkg"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "set_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::option::Option<u64>"
          ],
          "return": []
        },
        {
          "name": "set_allow_max_gas_flag_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "bool"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "AllowCustomMaxGasFlag",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "value",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "RequiredGasDeposit",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "gas_amount",
              "type": "0x1::option::Option<u64>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "randomness_config_seqnum",
      "friends": [
        "0x1::reconfiguration_with_dkg"
      ],
      "exposed_functions": [
        {
          "name": "on_new_epoch",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "initialize",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "set_for_next_epoch",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "RandomnessConfigSeqNum",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop",
            "store",
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "seq_num",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "reconfiguration_with_dkg",
      "friends": [
        "0x1::aptos_governance",
        "0x1::block"
      ],
      "exposed_functions": [
        {
          "name": "finish",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer"
          ],
          "return": []
        },
        {
          "name": "try_advance_reconfig",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        },
        {
          "name": "try_start",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        },
        {
          "name": "try_start_with_chunky_dkg",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "ForceEndEpochEvent",
          "is_native": false,
          "is_event": true,
          "is_enum": true,
          "abilities": [
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "epoch",
                  "type": "u64"
                },
                {
                  "name": "dkg_incomplete",
                  "type": "bool"
                },
                {
                  "name": "chunky_incomplete",
                  "type": "bool"
                },
                {
                  "name": "deadline_us",
                  "type": "u64"
                },
                {
                  "name": "now_us",
                  "type": "u64"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "sigma_protocol_statement",
      "friends": [
        "0x1::sigma_protocol_statement_builder",
        "0x1::sigma_protocol_representation",
        "0x1::sigma_protocol_homomorphism",
        "0x1::sigma_protocol_fiat_shamir",
        "0x1::sigma_protocol",
        "0x1::sigma_protocol_withdraw",
        "0x1::sigma_protocol_transfer",
        "0x1::sigma_protocol_registration",
        "0x1::sigma_protocol_key_rotation"
      ],
      "exposed_functions": [
        {
          "name": "get_scalars",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::sigma_protocol_statement::Statement<T0>"
          ],
          "return": [
            "&vector<0x1::ristretto255::Scalar>"
          ]
        },
        {
          "name": "get_compressed_points",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::sigma_protocol_statement::Statement<T0>"
          ],
          "return": [
            "&vector<0x1::ristretto255::CompressedRistretto>"
          ]
        },
        {
          "name": "get_point",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::sigma_protocol_statement::Statement<T0>",
            "u64"
          ],
          "return": [
            "&0x1::ristretto255::RistrettoPoint"
          ]
        },
        {
          "name": "get_points",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::sigma_protocol_statement::Statement<T0>"
          ],
          "return": [
            "&vector<0x1::ristretto255::RistrettoPoint>"
          ]
        },
        {
          "name": "new_statement",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "vector<0x1::ristretto255::RistrettoPoint>",
            "vector<0x1::ristretto255::CompressedRistretto>",
            "vector<0x1::ristretto255::Scalar>"
          ],
          "return": [
            "0x1::sigma_protocol_statement::Statement<T0>"
          ]
        }
      ],
      "structs": [
        {
          "name": "Statement",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "points",
              "type": "vector<0x1::ristretto255::RistrettoPoint>"
            },
            {
              "name": "compressed_points",
              "type": "vector<0x1::ristretto255::CompressedRistretto>"
            },
            {
              "name": "scalars",
              "type": "vector<0x1::ristretto255::Scalar>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "solana_derivable_account",
      "friends": [],
      "exposed_functions": [
        {
          "name": "authenticate",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "signer",
            "0x1::auth_data::AbstractionAuthData"
          ],
          "return": [
            "signer"
          ]
        }
      ],
      "structs": [
        {
          "name": "SIWSAbstractSignature",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "MessageV1",
              "fields": [
                {
                  "name": "signature",
                  "type": "vector<u8>"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "validator_consensus_info",
      "friends": [],
      "exposed_functions": [
        {
          "name": "new",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "vector<u8>",
            "u64"
          ],
          "return": [
            "0x1::validator_consensus_info::ValidatorConsensusInfo"
          ]
        },
        {
          "name": "default",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "0x1::validator_consensus_info::ValidatorConsensusInfo"
          ]
        },
        {
          "name": "get_addr",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::validator_consensus_info::ValidatorConsensusInfo"
          ],
          "return": [
            "address"
          ]
        },
        {
          "name": "get_pk_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::validator_consensus_info::ValidatorConsensusInfo"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "get_voting_power",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::validator_consensus_info::ValidatorConsensusInfo"
          ],
          "return": [
            "u64"
          ]
        }
      ],
      "structs": [
        {
          "name": "ValidatorConsensusInfo",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "addr",
              "type": "address"
            },
            {
              "name": "pk_bytes",
              "type": "vector<u8>"
            },
            {
              "name": "voting_power",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "confidential_range_proofs",
      "friends": [
        "0x1::confidential_asset"
      ],
      "exposed_functions": [
        {
          "name": "assert_valid_range_proof",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&vector<0x1::ristretto255::CompressedRistretto>",
            "&0x1::ristretto255_bulletproofs::RangeProof"
          ],
          "return": []
        },
        {
          "name": "get_bulletproofs_dst",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [],
          "params": [],
          "return": [
            "vector<u8>"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "ristretto255_bulletproofs",
      "friends": [],
      "exposed_functions": [
        {
          "name": "get_max_range_bits",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "u64"
          ]
        },
        {
          "name": "range_proof_from_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u8>"
          ],
          "return": [
            "0x1::ristretto255_bulletproofs::RangeProof"
          ]
        },
        {
          "name": "range_proof_to_bytes",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_bulletproofs::RangeProof"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "verify_batch_range_proof",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&vector<0x1::ristretto255::RistrettoPoint>",
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255_bulletproofs::RangeProof",
            "u64",
            "vector<u8>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "verify_batch_range_proof_pedersen",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&vector<0x1::ristretto255_pedersen::Commitment>",
            "&0x1::ristretto255_bulletproofs::RangeProof",
            "u64",
            "vector<u8>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "verify_range_proof",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255::RistrettoPoint",
            "&0x1::ristretto255_bulletproofs::RangeProof",
            "u64",
            "vector<u8>"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "verify_range_proof_pedersen",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::ristretto255_pedersen::Commitment",
            "&0x1::ristretto255_bulletproofs::RangeProof",
            "u64",
            "vector<u8>"
          ],
          "return": [
            "bool"
          ]
        }
      ],
      "structs": [
        {
          "name": "RangeProof",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop",
            "store"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "bytes",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "ethereum_derivable_account",
      "friends": [],
      "exposed_functions": [
        {
          "name": "authenticate",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "signer",
            "0x1::auth_data::AbstractionAuthData"
          ],
          "return": [
            "signer"
          ]
        }
      ],
      "structs": [
        {
          "name": "SIWEAbstractPublicKey",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "ethereum_address",
              "type": "vector<u8>"
            },
            {
              "name": "domain",
              "type": "vector<u8>"
            }
          ],
          "variants": []
        },
        {
          "name": "SIWEAbstractSignature",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "MessageV1",
              "fields": [
                {
                  "name": "issued_at",
                  "type": "0x1::string::String"
                },
                {
                  "name": "signature",
                  "type": "vector<u8>"
                }
              ]
            },
            {
              "name": "MessageV2",
              "fields": [
                {
                  "name": "scheme",
                  "type": "0x1::string::String"
                },
                {
                  "name": "issued_at",
                  "type": "0x1::string::String"
                },
                {
                  "name": "signature",
                  "type": "vector<u8>"
                }
              ]
            }
          ]
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "sigma_protocol_fiat_shamir",
      "friends": [
        "0x1::sigma_protocol",
        "0x1::sigma_protocol_withdraw",
        "0x1::sigma_protocol_transfer",
        "0x1::sigma_protocol_registration",
        "0x1::sigma_protocol_key_rotation"
      ],
      "exposed_functions": [
        {
          "name": "fiat_shamir",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::sigma_protocol_fiat_shamir::DomainSeparator",
            "&0x1::sigma_protocol_statement::Statement<T0>",
            "&vector<0x1::ristretto255::CompressedRistretto>",
            "&vector<0x1::ristretto255::Scalar>",
            "u64"
          ],
          "return": [
            "0x1::ristretto255::Scalar",
            "vector<0x1::ristretto255::Scalar>"
          ]
        },
        {
          "name": "new_domain_separator",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "address",
            "u8",
            "vector<u8>",
            "vector<u8>"
          ],
          "return": [
            "0x1::sigma_protocol_fiat_shamir::DomainSeparator"
          ]
        }
      ],
      "structs": [
        {
          "name": "DomainSeparator",
          "is_native": false,
          "is_event": false,
          "is_enum": true,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [],
          "variants": [
            {
              "name": "V1",
              "fields": [
                {
                  "name": "contract_address",
                  "type": "address"
                },
                {
                  "name": "chain_id",
                  "type": "u8"
                },
                {
                  "name": "protocol_id",
                  "type": "vector<u8>"
                },
                {
                  "name": "session_id",
                  "type": "vector<u8>"
                }
              ]
            }
          ]
        },
        {
          "name": "FiatShamirInputs",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dst",
              "type": "0x1::sigma_protocol_fiat_shamir::DomainSeparator"
            },
            {
              "name": "type_name",
              "type": "0x1::string::String"
            },
            {
              "name": "k",
              "type": "u64"
            },
            {
              "name": "stmt_X",
              "type": "vector<0x1::ristretto255::CompressedRistretto>"
            },
            {
              "name": "stmt_x",
              "type": "vector<0x1::ristretto255::Scalar>"
            },
            {
              "name": "proof_A",
              "type": "vector<0x1::ristretto255::CompressedRistretto>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "dispatchable_fungible_asset",
      "friends": [],
      "exposed_functions": [
        {
          "name": "transfer",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": []
        },
        {
          "name": "deposit",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>",
            "0x1::fungible_asset::FungibleAsset"
          ],
          "return": []
        },
        {
          "name": "register_derive_supply_dispatch_function",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef",
            "0x1::option::Option<0x1::function_info::FunctionInfo>"
          ],
          "return": []
        },
        {
          "name": "register_dispatch_functions",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::object::ConstructorRef",
            "0x1::option::Option<0x1::function_info::FunctionInfo>",
            "0x1::option::Option<0x1::function_info::FunctionInfo>",
            "0x1::option::Option<0x1::function_info::FunctionInfo>"
          ],
          "return": []
        },
        {
          "name": "withdraw",
          "visibility": "public",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": [
            "0x1::fungible_asset::FungibleAsset"
          ]
        },
        {
          "name": "derived_balance",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "derived_supply",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>"
          ],
          "return": [
            "0x1::option::Option<u128>"
          ]
        },
        {
          "name": "is_derived_balance_at_least",
          "visibility": "public",
          "is_entry": false,
          "is_view": true,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "0x1::object::Object<T0>",
            "u64"
          ],
          "return": [
            "bool"
          ]
        },
        {
          "name": "transfer_assert_minimum_deposit",
          "visibility": "public",
          "is_entry": true,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": [
                "key"
              ]
            }
          ],
          "params": [
            "&signer",
            "0x1::object::Object<T0>",
            "0x1::object::Object<T0>",
            "u64",
            "u64"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "TransferRefStore",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "key"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "transfer_ref",
              "type": "0x1::fungible_asset::TransferRef"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "sigma_protocol_homomorphism",
      "friends": [
        "0x1::sigma_protocol",
        "0x1::sigma_protocol_withdraw",
        "0x1::sigma_protocol_transfer",
        "0x1::sigma_protocol_registration",
        "0x1::sigma_protocol_key_rotation"
      ],
      "exposed_functions": [],
      "structs": [
        {
          "name": "Homomorphism",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "_0",
              "type": "|&0x1::sigma_protocol_statement::Statement<T0>,&0x1::sigma_protocol_witness::Witness|0x1::sigma_protocol_representation_vec::RepresentationVec"
            }
          ],
          "variants": []
        },
        {
          "name": "TransformationFunction",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "_0",
              "type": "|&0x1::sigma_protocol_statement::Statement<T0>|0x1::sigma_protocol_representation_vec::RepresentationVec"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "sigma_protocol_key_rotation",
      "friends": [
        "0x1::confidential_asset"
      ],
      "exposed_functions": [
        {
          "name": "assert_verifies",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::sigma_protocol_key_rotation::KeyRotationSession",
            "&0x1::sigma_protocol_statement::Statement<0x1::sigma_protocol_key_rotation::KeyRotation>",
            "&0x1::sigma_protocol_proof::Proof"
          ],
          "return": []
        },
        {
          "name": "new_session",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ],
          "return": [
            "0x1::sigma_protocol_key_rotation::KeyRotationSession"
          ]
        },
        {
          "name": "new_key_rotation_statement",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ristretto255::CompressedRistretto",
            "0x1::ristretto255::CompressedRistretto",
            "&vector<0x1::ristretto255::CompressedRistretto>",
            "&vector<0x1::ristretto255::CompressedRistretto>"
          ],
          "return": [
            "0x1::sigma_protocol_statement::Statement<0x1::sigma_protocol_key_rotation::KeyRotation>"
          ]
        }
      ],
      "structs": [
        {
          "name": "KeyRotation",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "KeyRotationSession",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "sender",
              "type": "address"
            },
            {
              "name": "token_type",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            },
            {
              "name": "num_chunks",
              "type": "u64"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "sigma_protocol_registration",
      "friends": [
        "0x1::confidential_asset"
      ],
      "exposed_functions": [
        {
          "name": "assert_verifies",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::sigma_protocol_registration::RegistrationSession",
            "&0x1::sigma_protocol_statement::Statement<0x1::sigma_protocol_registration::Registration>",
            "&0x1::sigma_protocol_proof::Proof"
          ],
          "return": []
        },
        {
          "name": "new_session",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&signer",
            "0x1::object::Object<0x1::fungible_asset::Metadata>"
          ],
          "return": [
            "0x1::sigma_protocol_registration::RegistrationSession"
          ]
        },
        {
          "name": "new_registration_statement",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "0x1::ristretto255::CompressedRistretto"
          ],
          "return": [
            "0x1::sigma_protocol_statement::Statement<0x1::sigma_protocol_registration::Registration>"
          ]
        }
      ],
      "structs": [
        {
          "name": "Registration",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "dummy_field",
              "type": "bool"
            }
          ],
          "variants": []
        },
        {
          "name": "RegistrationSession",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "sender",
              "type": "address"
            },
            {
              "name": "asset_type",
              "type": "0x1::object::Object<0x1::fungible_asset::Metadata>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "sigma_protocol_representation",
      "friends": [
        "0x1::sigma_protocol_representation_vec",
        "0x1::sigma_protocol_homomorphism",
        "0x1::sigma_protocol",
        "0x1::sigma_protocol_withdraw",
        "0x1::sigma_protocol_transfer",
        "0x1::sigma_protocol_registration",
        "0x1::sigma_protocol_key_rotation"
      ],
      "exposed_functions": [
        {
          "name": "get_scalars",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::sigma_protocol_representation::Representation"
          ],
          "return": [
            "&vector<0x1::ristretto255::Scalar>"
          ]
        },
        {
          "name": "new_representation",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<u64>",
            "vector<0x1::ristretto255::Scalar>"
          ],
          "return": [
            "0x1::sigma_protocol_representation::Representation"
          ]
        },
        {
          "name": "repr_point",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64"
          ],
          "return": [
            "0x1::sigma_protocol_representation::Representation"
          ]
        },
        {
          "name": "repr_scaled",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "u64",
            "0x1::ristretto255::Scalar"
          ],
          "return": [
            "0x1::sigma_protocol_representation::Representation"
          ]
        },
        {
          "name": "scale",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::sigma_protocol_representation::Representation",
            "&0x1::ristretto255::Scalar"
          ],
          "return": []
        },
        {
          "name": "to_points",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&0x1::sigma_protocol_representation::Representation",
            "&0x1::sigma_protocol_statement::Statement<T0>"
          ],
          "return": [
            "vector<0x1::ristretto255::RistrettoPoint>"
          ]
        }
      ],
      "structs": [
        {
          "name": "Representation",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "copy",
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "point_idxs",
              "type": "vector<u64>"
            },
            {
              "name": "scalars",
              "type": "vector<0x1::ristretto255::Scalar>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "sigma_protocol_statement_builder",
      "friends": [
        "0x1::sigma_protocol_withdraw",
        "0x1::sigma_protocol_transfer",
        "0x1::sigma_protocol_registration",
        "0x1::sigma_protocol_key_rotation"
      ],
      "exposed_functions": [
        {
          "name": "add_point",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::sigma_protocol_statement_builder::StatementBuilder<T0>",
            "0x1::ristretto255::CompressedRistretto"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "add_points",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::sigma_protocol_statement_builder::StatementBuilder<T0>",
            "&vector<0x1::ristretto255::CompressedRistretto>"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "add_points_cloned",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::sigma_protocol_statement_builder::StatementBuilder<T0>",
            "&vector<0x1::ristretto255::CompressedRistretto>"
          ],
          "return": [
            "u64",
            "vector<0x1::ristretto255::RistrettoPoint>"
          ]
        },
        {
          "name": "add_scalar",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "&mut 0x1::sigma_protocol_statement_builder::StatementBuilder<T0>",
            "0x1::ristretto255::Scalar"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "build",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [
            "0x1::sigma_protocol_statement_builder::StatementBuilder<T0>"
          ],
          "return": [
            "0x1::sigma_protocol_statement::Statement<T0>"
          ]
        },
        {
          "name": "new_builder",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "params": [],
          "return": [
            "0x1::sigma_protocol_statement_builder::StatementBuilder<T0>"
          ]
        }
      ],
      "structs": [
        {
          "name": "StatementBuilder",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [
            {
              "constraints": []
            }
          ],
          "fields": [
            {
              "name": "points",
              "type": "vector<0x1::ristretto255::RistrettoPoint>"
            },
            {
              "name": "compressed_points",
              "type": "vector<0x1::ristretto255::CompressedRistretto>"
            },
            {
              "name": "scalars",
              "type": "vector<0x1::ristretto255::Scalar>"
            }
          ],
          "variants": []
        }
      ]
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "common_account_abstractions_utils",
      "friends": [
        "0x1::ethereum_derivable_account",
        "0x1::solana_derivable_account",
        "0x1::sui_derivable_account"
      ],
      "exposed_functions": [
        {
          "name": "construct_message",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&vector<u8>",
            "&vector<u8>",
            "&vector<u8>",
            "&vector<u8>",
            "&vector<u8>"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "entry_function_name",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::transaction_context::EntryFunctionPayload"
          ],
          "return": [
            "vector<u8>"
          ]
        },
        {
          "name": "network_name",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [],
          "return": [
            "vector<u8>"
          ]
        }
      ],
      "structs": []
    }
  },
  {
    "abi": {
      "address": "0x1",
      "name": "sigma_protocol_representation_vec",
      "friends": [
        "0x1::sigma_protocol_homomorphism",
        "0x1::sigma_protocol",
        "0x1::sigma_protocol_withdraw",
        "0x1::sigma_protocol_transfer",
        "0x1::sigma_protocol_registration",
        "0x1::sigma_protocol_key_rotation"
      ],
      "exposed_functions": [
        {
          "name": "length",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::sigma_protocol_representation_vec::RepresentationVec"
          ],
          "return": [
            "u64"
          ]
        },
        {
          "name": "get_representations",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&0x1::sigma_protocol_representation_vec::RepresentationVec"
          ],
          "return": [
            "&vector<0x1::sigma_protocol_representation::Representation>"
          ]
        },
        {
          "name": "new_representation_vec",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "vector<0x1::sigma_protocol_representation::Representation>"
          ],
          "return": [
            "0x1::sigma_protocol_representation_vec::RepresentationVec"
          ]
        },
        {
          "name": "scale_all",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::sigma_protocol_representation_vec::RepresentationVec",
            "&0x1::ristretto255::Scalar"
          ],
          "return": []
        },
        {
          "name": "scale_each",
          "visibility": "friend",
          "is_entry": false,
          "is_view": false,
          "generic_type_params": [],
          "params": [
            "&mut 0x1::sigma_protocol_representation_vec::RepresentationVec",
            "&vector<0x1::ristretto255::Scalar>"
          ],
          "return": []
        }
      ],
      "structs": [
        {
          "name": "RepresentationVec",
          "is_native": false,
          "is_event": false,
          "is_enum": false,
          "abilities": [
            "drop"
          ],
          "generic_type_params": [],
          "fields": [
            {
              "name": "v",
              "type": "vector<0x1::sigma_protocol_representation::Representation>"
            }
          ],
          "variants": []
        }
      ]
    }
  }
]