{
  "genesis": {
    "fileFormatVersion": 6,
    "address": "0x3",
    "name": "genesis",
    "friends": [],
    "structs": {
      "GenesisChainParameters": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "protocol_version",
            "type": "U64"
          },
          {
            "name": "chain_start_timestamp_ms",
            "type": "U64"
          },
          {
            "name": "epoch_duration_ms",
            "type": "U64"
          },
          {
            "name": "max_validator_count",
            "type": "U64"
          },
          {
            "name": "min_validator_joining_stake",
            "type": "U64"
          },
          {
            "name": "validator_low_stake_threshold",
            "type": "U64"
          },
          {
            "name": "validator_very_low_stake_threshold",
            "type": "U64"
          },
          {
            "name": "validator_low_stake_grace_period",
            "type": "U64"
          }
        ]
      },
      "GenesisValidatorMetadata": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "name",
            "type": {
              "Vector": "U8"
            }
          },
          {
            "name": "description",
            "type": {
              "Vector": "U8"
            }
          },
          {
            "name": "image_url",
            "type": {
              "Vector": "U8"
            }
          },
          {
            "name": "project_url",
            "type": {
              "Vector": "U8"
            }
          },
          {
            "name": "iota_address",
            "type": "Address"
          },
          {
            "name": "gas_price",
            "type": "U64"
          },
          {
            "name": "commission_rate",
            "type": "U64"
          },
          {
            "name": "authority_public_key",
            "type": {
              "Vector": "U8"
            }
          },
          {
            "name": "proof_of_possession",
            "type": {
              "Vector": "U8"
            }
          },
          {
            "name": "network_public_key",
            "type": {
              "Vector": "U8"
            }
          },
          {
            "name": "protocol_public_key",
            "type": {
              "Vector": "U8"
            }
          },
          {
            "name": "network_address",
            "type": {
              "Vector": "U8"
            }
          },
          {
            "name": "p2p_address",
            "type": {
              "Vector": "U8"
            }
          },
          {
            "name": "primary_address",
            "type": {
              "Vector": "U8"
            }
          }
        ]
      },
      "TokenAllocation": {
        "abilities": {
          "abilities": []
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "recipient_address",
            "type": "Address"
          },
          {
            "name": "amount_nanos",
            "type": "U64"
          },
          {
            "name": "staked_with_validator",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  "Address"
                ]
              }
            }
          },
          {
            "name": "staked_with_timelock_expiration",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  "U64"
                ]
              }
            }
          }
        ]
      },
      "TokenDistributionSchedule": {
        "abilities": {
          "abilities": []
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "pre_minted_supply",
            "type": "U64"
          },
          {
            "name": "allocations",
            "type": {
              "Vector": {
                "Struct": {
                  "address": "0x3",
                  "module": "genesis",
                  "name": "TokenAllocation",
                  "typeArguments": []
                }
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {}
  },
  "iota_system": {
    "fileFormatVersion": 6,
    "address": "0x3",
    "name": "iota_system",
    "friends": [
      {
        "address": "0x3",
        "name": "genesis"
      },
      {
        "address": "0x3",
        "name": "timelocked_staking"
      }
    ],
    "structs": {
      "IotaSystemState": {
        "abilities": {
          "abilities": [
            "Key"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "version",
            "type": "U64"
          }
        ]
      }
    },
    "exposedFunctions": {
      "active_validator_addresses": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Vector": "Address"
          }
        ]
      },
      "committee_validator_addresses": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Vector": "Address"
          }
        ]
      },
      "create": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "UID",
              "typeArguments": []
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "iota",
              "name": "IotaTreasuryCap",
              "typeArguments": []
            }
          },
          {
            "Vector": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          },
          "U64",
          "U64",
          {
            "Struct": {
              "address": "0x3",
              "module": "iota_system_state_inner",
              "name": "SystemParametersV1",
              "typeArguments": []
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "system_admin_cap",
              "name": "IotaSystemAdminCap",
              "typeArguments": []
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "get_total_iota_supply": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "load_iota_system_admin_cap": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "system_admin_cap",
                "name": "IotaSystemAdminCap",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "pool_exchange_rates": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "table",
                "name": "Table",
                "typeArguments": [
                  "U64",
                  {
                    "Struct": {
                      "address": "0x3",
                      "module": "staking_pool",
                      "name": "PoolTokenExchangeRate",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ]
      },
      "report_validator": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_cap",
                "name": "UnverifiedValidatorOperationCap",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": []
      },
      "request_add_stake": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          },
          "Address",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_add_stake_mul_coin": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "Coin",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "iota",
                      "name": "IOTA",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "U64"
              ]
            }
          },
          "Address",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_add_stake_non_entry": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          },
          "Address",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "staking_pool",
              "name": "StakedIota",
              "typeArguments": []
            }
          }
        ]
      },
      "request_add_validator": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_add_validator_candidate": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          "U64",
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_remove_validator": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_remove_validator_candidate": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_set_commission_rate": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_set_gas_price": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_cap",
                "name": "UnverifiedValidatorOperationCap",
                "typeArguments": []
              }
            }
          },
          "U64"
        ],
        "return": []
      },
      "request_withdraw_stake": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x3",
              "module": "staking_pool",
              "name": "StakedIota",
              "typeArguments": []
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_withdraw_stake_non_entry": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x3",
              "module": "staking_pool",
              "name": "StakedIota",
              "typeArguments": []
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "rotate_operation_cap": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "set_candidate_validator_commission_rate": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "set_candidate_validator_gas_price": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_cap",
                "name": "UnverifiedValidatorOperationCap",
                "typeArguments": []
              }
            }
          },
          "U64"
        ],
        "return": []
      },
      "undo_report_validator": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_cap",
                "name": "UnverifiedValidatorOperationCap",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": []
      },
      "update_candidate_validator_authority_pubkey": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_candidate_validator_network_address": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_candidate_validator_network_pubkey": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_candidate_validator_p2p_address": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_candidate_validator_primary_address": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_candidate_validator_protocol_pubkey": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_validator_description": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_validator_image_url": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_validator_name": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_validator_next_epoch_authority_pubkey": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_validator_next_epoch_network_address": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_validator_next_epoch_network_pubkey": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_validator_next_epoch_p2p_address": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_validator_next_epoch_primary_address": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_validator_next_epoch_protocol_pubkey": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_validator_project_url": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "validator_address_by_pool_id": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Address"
        ]
      }
    }
  },
  "iota_system_state_inner": {
    "fileFormatVersion": 6,
    "address": "0x3",
    "name": "iota_system_state_inner",
    "friends": [
      {
        "address": "0x3",
        "name": "genesis"
      },
      {
        "address": "0x3",
        "name": "iota_system"
      }
    ],
    "structs": {
      "IotaSystemStateV1": {
        "abilities": {
          "abilities": [
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "epoch",
            "type": "U64"
          },
          {
            "name": "protocol_version",
            "type": "U64"
          },
          {
            "name": "system_state_version",
            "type": "U64"
          },
          {
            "name": "iota_treasury_cap",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "iota",
                "name": "IotaTreasuryCap",
                "typeArguments": []
              }
            }
          },
          {
            "name": "validators",
            "type": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV1",
                "typeArguments": []
              }
            }
          },
          {
            "name": "storage_fund",
            "type": {
              "Struct": {
                "address": "0x3",
                "module": "storage_fund",
                "name": "StorageFundV1",
                "typeArguments": []
              }
            }
          },
          {
            "name": "parameters",
            "type": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "SystemParametersV1",
                "typeArguments": []
              }
            }
          },
          {
            "name": "iota_system_admin_cap",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "system_admin_cap",
                "name": "IotaSystemAdminCap",
                "typeArguments": []
              }
            }
          },
          {
            "name": "reference_gas_price",
            "type": "U64"
          },
          {
            "name": "validator_report_records",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  "Address",
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "vec_set",
                      "name": "VecSet",
                      "typeArguments": [
                        "Address"
                      ]
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "safe_mode",
            "type": "Bool"
          },
          {
            "name": "safe_mode_storage_charges",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Balance",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "iota",
                      "name": "IOTA",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "safe_mode_computation_rewards",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Balance",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "iota",
                      "name": "IOTA",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "safe_mode_storage_rebates",
            "type": "U64"
          },
          {
            "name": "safe_mode_non_refundable_storage_fee",
            "type": "U64"
          },
          {
            "name": "epoch_start_timestamp_ms",
            "type": "U64"
          },
          {
            "name": "extra_fields",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "bag",
                "name": "Bag",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "IotaSystemStateV2": {
        "abilities": {
          "abilities": [
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "epoch",
            "type": "U64"
          },
          {
            "name": "protocol_version",
            "type": "U64"
          },
          {
            "name": "system_state_version",
            "type": "U64"
          },
          {
            "name": "iota_treasury_cap",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "iota",
                "name": "IotaTreasuryCap",
                "typeArguments": []
              }
            }
          },
          {
            "name": "validators",
            "type": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          {
            "name": "storage_fund",
            "type": {
              "Struct": {
                "address": "0x3",
                "module": "storage_fund",
                "name": "StorageFundV1",
                "typeArguments": []
              }
            }
          },
          {
            "name": "parameters",
            "type": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "SystemParametersV1",
                "typeArguments": []
              }
            }
          },
          {
            "name": "iota_system_admin_cap",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "system_admin_cap",
                "name": "IotaSystemAdminCap",
                "typeArguments": []
              }
            }
          },
          {
            "name": "reference_gas_price",
            "type": "U64"
          },
          {
            "name": "validator_report_records",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  "Address",
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "vec_set",
                      "name": "VecSet",
                      "typeArguments": [
                        "Address"
                      ]
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "safe_mode",
            "type": "Bool"
          },
          {
            "name": "safe_mode_storage_charges",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Balance",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "iota",
                      "name": "IOTA",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "safe_mode_computation_charges",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Balance",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "iota",
                      "name": "IOTA",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "safe_mode_computation_charges_burned",
            "type": "U64"
          },
          {
            "name": "safe_mode_storage_rebates",
            "type": "U64"
          },
          {
            "name": "safe_mode_non_refundable_storage_fee",
            "type": "U64"
          },
          {
            "name": "epoch_start_timestamp_ms",
            "type": "U64"
          },
          {
            "name": "extra_fields",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "bag",
                "name": "Bag",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "SystemEpochInfoEventV1": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "epoch",
            "type": "U64"
          },
          {
            "name": "protocol_version",
            "type": "U64"
          },
          {
            "name": "reference_gas_price",
            "type": "U64"
          },
          {
            "name": "total_stake",
            "type": "U64"
          },
          {
            "name": "storage_charge",
            "type": "U64"
          },
          {
            "name": "storage_rebate",
            "type": "U64"
          },
          {
            "name": "storage_fund_balance",
            "type": "U64"
          },
          {
            "name": "total_gas_fees",
            "type": "U64"
          },
          {
            "name": "total_stake_rewards_distributed",
            "type": "U64"
          },
          {
            "name": "burnt_tokens_amount",
            "type": "U64"
          },
          {
            "name": "minted_tokens_amount",
            "type": "U64"
          }
        ]
      },
      "SystemEpochInfoEventV2": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "epoch",
            "type": "U64"
          },
          {
            "name": "protocol_version",
            "type": "U64"
          },
          {
            "name": "total_stake",
            "type": "U64"
          },
          {
            "name": "storage_charge",
            "type": "U64"
          },
          {
            "name": "storage_rebate",
            "type": "U64"
          },
          {
            "name": "storage_fund_balance",
            "type": "U64"
          },
          {
            "name": "total_gas_fees",
            "type": "U64"
          },
          {
            "name": "total_stake_rewards_distributed",
            "type": "U64"
          },
          {
            "name": "burnt_tokens_amount",
            "type": "U64"
          },
          {
            "name": "minted_tokens_amount",
            "type": "U64"
          },
          {
            "name": "tips_amount",
            "type": "U64"
          }
        ]
      },
      "SystemParametersV1": {
        "abilities": {
          "abilities": [
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "epoch_duration_ms",
            "type": "U64"
          },
          {
            "name": "min_validator_count",
            "type": "U64"
          },
          {
            "name": "max_validator_count",
            "type": "U64"
          },
          {
            "name": "min_validator_joining_stake",
            "type": "U64"
          },
          {
            "name": "validator_low_stake_threshold",
            "type": "U64"
          },
          {
            "name": "validator_very_low_stake_threshold",
            "type": "U64"
          },
          {
            "name": "validator_low_stake_grace_period",
            "type": "U64"
          },
          {
            "name": "extra_fields",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "bag",
                "name": "Bag",
                "typeArguments": []
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "active_validator_addresses": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Vector": "Address"
          }
        ]
      },
      "advance_epoch": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          "U64",
          "U64",
          "U64",
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          },
          "U64",
          "U64",
          "U64",
          "U64",
          "U64",
          "U64",
          {
            "Vector": "U64"
          },
          {
            "Vector": "U64"
          },
          "Bool",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "committee_validator_addresses": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Vector": "Address"
          }
        ]
      },
      "committee_validator_voting_powers": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "vec_map",
              "name": "VecMap",
              "typeArguments": [
                "Address",
                "U64"
              ]
            }
          }
        ]
      },
      "create": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "iota",
              "name": "IotaTreasuryCap",
              "typeArguments": []
            }
          },
          {
            "Vector": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          },
          "U64",
          "U64",
          {
            "Struct": {
              "address": "0x3",
              "module": "iota_system_state_inner",
              "name": "SystemParametersV1",
              "typeArguments": []
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "system_admin_cap",
              "name": "IotaSystemAdminCap",
              "typeArguments": []
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "iota_system_state_inner",
              "name": "IotaSystemStateV1",
              "typeArguments": []
            }
          }
        ]
      },
      "create_system_parameters": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          "U64",
          "U64",
          "U64",
          "U64",
          "U64",
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "iota_system_state_inner",
              "name": "SystemParametersV1",
              "typeArguments": []
            }
          }
        ]
      },
      "epoch": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "epoch_start_timestamp_ms": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "genesis_system_state_version": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          "U64"
        ]
      },
      "get_reporters_of": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "vec_set",
              "name": "VecSet",
              "typeArguments": [
                "Address"
              ]
            }
          }
        ]
      },
      "get_storage_fund_object_rebates": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "get_storage_fund_total_balance": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "get_total_iota_supply": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "iota_system_admin_cap": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "system_admin_cap",
                "name": "IotaSystemAdminCap",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "pool_exchange_rates": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "table",
                "name": "Table",
                "typeArguments": [
                  "U64",
                  {
                    "Struct": {
                      "address": "0x3",
                      "module": "staking_pool",
                      "name": "PoolTokenExchangeRate",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ]
      },
      "protocol_version": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "report_validator": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_cap",
                "name": "UnverifiedValidatorOperationCap",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": []
      },
      "request_add_stake": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "coin",
              "name": "Coin",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          },
          "Address",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "staking_pool",
              "name": "StakedIota",
              "typeArguments": []
            }
          }
        ]
      },
      "request_add_stake_mul_coin": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": {
              "Struct": {
                "address": "0x2",
                "module": "coin",
                "name": "Coin",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "iota",
                      "name": "IOTA",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                "U64"
              ]
            }
          },
          "Address",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "staking_pool",
              "name": "StakedIota",
              "typeArguments": []
            }
          }
        ]
      },
      "request_add_validator": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_add_validator_candidate": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          "U64",
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_remove_validator": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_remove_validator_candidate": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_set_commission_rate": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          "U64",
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_withdraw_stake": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x3",
              "module": "staking_pool",
              "name": "StakedIota",
              "typeArguments": []
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "rotate_operation_cap": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "set_candidate_validator_commission_rate": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          "U64",
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "system_state_version": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "undo_report_validator": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_cap",
                "name": "UnverifiedValidatorOperationCap",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": []
      },
      "update_candidate_validator_authority_pubkey": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_candidate_validator_network_address": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_candidate_validator_network_pubkey": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_candidate_validator_p2p_address": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_candidate_validator_primary_address": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_candidate_validator_protocol_pubkey": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_validator_description": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_validator_image_url": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_validator_name": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_validator_next_epoch_authority_pubkey": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_validator_next_epoch_network_address": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_validator_next_epoch_network_pubkey": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_validator_next_epoch_p2p_address": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_validator_next_epoch_primary_address": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_validator_next_epoch_protocol_pubkey": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "update_validator_project_url": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "v1_to_v2": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Struct": {
              "address": "0x3",
              "module": "iota_system_state_inner",
              "name": "IotaSystemStateV1",
              "typeArguments": []
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "iota_system_state_inner",
              "name": "IotaSystemStateV2",
              "typeArguments": []
            }
          }
        ]
      },
      "validator_address_by_pool_id": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Address"
        ]
      },
      "validator_stake_amount": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": [
          "U64"
        ]
      },
      "validator_staking_pool_id": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      },
      "validator_staking_pool_mappings": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system_state_inner",
                "name": "IotaSystemStateV2",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "table",
                "name": "Table",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "object",
                      "name": "ID",
                      "typeArguments": []
                    }
                  },
                  "Address"
                ]
              }
            }
          }
        ]
      }
    }
  },
  "staking_pool": {
    "fileFormatVersion": 6,
    "address": "0x3",
    "name": "staking_pool",
    "friends": [
      {
        "address": "0x3",
        "name": "validator"
      },
      {
        "address": "0x3",
        "name": "validator_set"
      }
    ],
    "structs": {
      "PoolTokenExchangeRate": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop",
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "iota_amount",
            "type": "U64"
          },
          {
            "name": "pool_token_amount",
            "type": "U64"
          }
        ]
      },
      "StakedIota": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "pool_id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "stake_activation_epoch",
            "type": "U64"
          },
          {
            "name": "principal",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Balance",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "iota",
                      "name": "IOTA",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ]
      },
      "StakingPoolV1": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "activation_epoch",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  "U64"
                ]
              }
            }
          },
          {
            "name": "deactivation_epoch",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  "U64"
                ]
              }
            }
          },
          {
            "name": "iota_balance",
            "type": "U64"
          },
          {
            "name": "rewards_pool",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Balance",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "iota",
                      "name": "IOTA",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "pool_token_balance",
            "type": "U64"
          },
          {
            "name": "exchange_rates",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "table",
                "name": "Table",
                "typeArguments": [
                  "U64",
                  {
                    "Struct": {
                      "address": "0x3",
                      "module": "staking_pool",
                      "name": "PoolTokenExchangeRate",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "pending_stake",
            "type": "U64"
          },
          {
            "name": "pending_total_iota_withdraw",
            "type": "U64"
          },
          {
            "name": "pending_pool_token_withdraw",
            "type": "U64"
          },
          {
            "name": "extra_fields",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "bag",
                "name": "Bag",
                "typeArguments": []
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "activate_staking_pool": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakingPoolV1",
                "typeArguments": []
              }
            }
          },
          "U64"
        ],
        "return": []
      },
      "deactivate_staking_pool": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakingPoolV1",
                "typeArguments": []
              }
            }
          },
          "U64"
        ],
        "return": []
      },
      "deposit_rewards": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakingPoolV1",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ],
        "return": []
      },
      "exchange_rates": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakingPoolV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "table",
                "name": "Table",
                "typeArguments": [
                  "U64",
                  {
                    "Struct": {
                      "address": "0x3",
                      "module": "staking_pool",
                      "name": "PoolTokenExchangeRate",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ]
      },
      "iota_amount": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "PoolTokenExchangeRate",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "iota_balance": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakingPoolV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "is_equal_staking_metadata": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakedIota",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakedIota",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_inactive": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakingPoolV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_preactive": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakingPoolV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "join_staked_iota": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakedIota",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x3",
              "module": "staking_pool",
              "name": "StakedIota",
              "typeArguments": []
            }
          }
        ],
        "return": []
      },
      "new": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "staking_pool",
              "name": "StakingPoolV1",
              "typeArguments": []
            }
          }
        ]
      },
      "pending_stake_amount": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakingPoolV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "pending_stake_withdraw_amount": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakingPoolV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "pool_id": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakedIota",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      },
      "pool_token_amount": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "PoolTokenExchangeRate",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "pool_token_exchange_rate_at_epoch": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakingPoolV1",
                "typeArguments": []
              }
            }
          },
          "U64"
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "staking_pool",
              "name": "PoolTokenExchangeRate",
              "typeArguments": []
            }
          }
        ]
      },
      "process_pending_stake": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakingPoolV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "process_pending_stake_withdraw": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakingPoolV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "process_pending_stakes_and_withdraws": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakingPoolV1",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_add_stake": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakingPoolV1",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          },
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "staking_pool",
              "name": "StakedIota",
              "typeArguments": []
            }
          }
        ]
      },
      "request_withdraw_stake": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakingPoolV1",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x3",
              "module": "staking_pool",
              "name": "StakedIota",
              "typeArguments": []
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "split": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakedIota",
                "typeArguments": []
              }
            }
          },
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "staking_pool",
              "name": "StakedIota",
              "typeArguments": []
            }
          }
        ]
      },
      "split_staked_iota": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakedIota",
                "typeArguments": []
              }
            }
          },
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "stake_activation_epoch": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakedIota",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "staked_iota_amount": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakedIota",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "withdraw_from_principal": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakingPoolV1",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x3",
              "module": "staking_pool",
              "name": "StakedIota",
              "typeArguments": []
            }
          }
        ],
        "return": [
          "U64",
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      }
    }
  },
  "storage_fund": {
    "fileFormatVersion": 6,
    "address": "0x3",
    "name": "storage_fund",
    "friends": [
      {
        "address": "0x3",
        "name": "iota_system_state_inner"
      }
    ],
    "structs": {
      "StorageFundV1": {
        "abilities": {
          "abilities": [
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "total_object_storage_rebates",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Balance",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "iota",
                      "name": "IOTA",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "non_refundable_balance",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Balance",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "iota",
                      "name": "IOTA",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "advance_epoch": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "storage_fund",
                "name": "StorageFundV1",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          },
          "U64",
          "U64"
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "new": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "storage_fund",
              "name": "StorageFundV1",
              "typeArguments": []
            }
          }
        ]
      },
      "total_balance": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "storage_fund",
                "name": "StorageFundV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "total_object_storage_rebates": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "storage_fund",
                "name": "StorageFundV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      }
    }
  },
  "timelocked_staking": {
    "fileFormatVersion": 6,
    "address": "0x3",
    "name": "timelocked_staking",
    "friends": [
      {
        "address": "0x3",
        "name": "genesis"
      }
    ],
    "structs": {
      "TimelockedStakedIota": {
        "abilities": {
          "abilities": [
            "Key"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "staked_iota",
            "type": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakedIota",
                "typeArguments": []
              }
            }
          },
          {
            "name": "expiration_timestamp_ms",
            "type": "U64"
          },
          {
            "name": "label",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x1",
                      "module": "string",
                      "name": "String",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "expiration_timestamp_ms": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "timelocked_staking",
                "name": "TimelockedStakedIota",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "is_equal_staking_metadata": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "timelocked_staking",
                "name": "TimelockedStakedIota",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "timelocked_staking",
                "name": "TimelockedStakedIota",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_labeled_with": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [
          {
            "abilities": []
          }
        ],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "timelocked_staking",
                "name": "TimelockedStakedIota",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "join_staked_iota": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "timelocked_staking",
                "name": "TimelockedStakedIota",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x3",
              "module": "timelocked_staking",
              "name": "TimelockedStakedIota",
              "typeArguments": []
            }
          }
        ],
        "return": []
      },
      "label": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "timelocked_staking",
                "name": "TimelockedStakedIota",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x1",
                    "module": "string",
                    "name": "String",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "pool_id": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "timelocked_staking",
                "name": "TimelockedStakedIota",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      },
      "request_add_stake": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "timelock",
              "name": "TimeLock",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "balance",
                    "name": "Balance",
                    "typeArguments": [
                      {
                        "Struct": {
                          "address": "0x2",
                          "module": "iota",
                          "name": "IOTA",
                          "typeArguments": []
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          "Address",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_add_stake_at_genesis": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          },
          "Address",
          "U64",
          {
            "Struct": {
              "address": "0x1",
              "module": "option",
              "name": "Option",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x1",
                    "module": "string",
                    "name": "String",
                    "typeArguments": []
                  }
                }
              ]
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_add_stake_mul_bal": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": {
              "Struct": {
                "address": "0x2",
                "module": "timelock",
                "name": "TimeLock",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "balance",
                      "name": "Balance",
                      "typeArguments": [
                        {
                          "Struct": {
                            "address": "0x2",
                            "module": "iota",
                            "name": "IOTA",
                            "typeArguments": []
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          },
          "Address",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_add_stake_mul_bal_non_entry": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": {
              "Struct": {
                "address": "0x2",
                "module": "timelock",
                "name": "TimeLock",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "balance",
                      "name": "Balance",
                      "typeArguments": [
                        {
                          "Struct": {
                            "address": "0x2",
                            "module": "iota",
                            "name": "IOTA",
                            "typeArguments": []
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            }
          },
          "Address",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Vector": {
              "Struct": {
                "address": "0x3",
                "module": "timelocked_staking",
                "name": "TimelockedStakedIota",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "request_add_stake_non_entry": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "timelock",
              "name": "TimeLock",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "balance",
                    "name": "Balance",
                    "typeArguments": [
                      {
                        "Struct": {
                          "address": "0x2",
                          "module": "iota",
                          "name": "IOTA",
                          "typeArguments": []
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          "Address",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "timelocked_staking",
              "name": "TimelockedStakedIota",
              "typeArguments": []
            }
          }
        ]
      },
      "request_withdraw_stake": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x3",
              "module": "timelocked_staking",
              "name": "TimelockedStakedIota",
              "typeArguments": []
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_withdraw_stake_non_entry": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "iota_system",
                "name": "IotaSystemState",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x3",
              "module": "timelocked_staking",
              "name": "TimelockedStakedIota",
              "typeArguments": []
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "timelock",
              "name": "TimeLock",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "balance",
                    "name": "Balance",
                    "typeArguments": [
                      {
                        "Struct": {
                          "address": "0x2",
                          "module": "iota",
                          "name": "IOTA",
                          "typeArguments": []
                        }
                      }
                    ]
                  }
                }
              ]
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "split": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "timelocked_staking",
                "name": "TimelockedStakedIota",
                "typeArguments": []
              }
            }
          },
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "timelocked_staking",
              "name": "TimelockedStakedIota",
              "typeArguments": []
            }
          }
        ]
      },
      "split_staked_iota": {
        "visibility": "Public",
        "isEntry": true,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "timelocked_staking",
                "name": "TimelockedStakedIota",
                "typeArguments": []
              }
            }
          },
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "stake_activation_epoch": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "timelocked_staking",
                "name": "TimelockedStakedIota",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "staked_iota_amount": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "timelocked_staking",
                "name": "TimelockedStakedIota",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "transfer_to_sender": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Struct": {
              "address": "0x3",
              "module": "timelocked_staking",
              "name": "TimelockedStakedIota",
              "typeArguments": []
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "transfer_to_sender_multiple": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Vector": {
              "Struct": {
                "address": "0x3",
                "module": "timelocked_staking",
                "name": "TimelockedStakedIota",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "unlock": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Struct": {
              "address": "0x3",
              "module": "timelocked_staking",
              "name": "TimelockedStakedIota",
              "typeArguments": []
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "staking_pool",
              "name": "StakedIota",
              "typeArguments": []
            }
          }
        ]
      },
      "unlock_with_clock": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Struct": {
              "address": "0x3",
              "module": "timelocked_staking",
              "name": "TimelockedStakedIota",
              "typeArguments": []
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "clock",
                "name": "Clock",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "staking_pool",
              "name": "StakedIota",
              "typeArguments": []
            }
          }
        ]
      }
    }
  },
  "validator": {
    "fileFormatVersion": 6,
    "address": "0x3",
    "name": "validator",
    "friends": [
      {
        "address": "0x3",
        "name": "genesis"
      },
      {
        "address": "0x3",
        "name": "iota_system_state_inner"
      },
      {
        "address": "0x3",
        "name": "timelocked_staking"
      },
      {
        "address": "0x3",
        "name": "validator_set"
      },
      {
        "address": "0x3",
        "name": "voting_power"
      }
    ],
    "structs": {
      "StakingRequestEvent": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "pool_id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "validator_address",
            "type": "Address"
          },
          {
            "name": "staker_address",
            "type": "Address"
          },
          {
            "name": "epoch",
            "type": "U64"
          },
          {
            "name": "amount",
            "type": "U64"
          }
        ]
      },
      "UnstakingRequestEvent": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "pool_id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "validator_address",
            "type": "Address"
          },
          {
            "name": "staker_address",
            "type": "Address"
          },
          {
            "name": "stake_activation_epoch",
            "type": "U64"
          },
          {
            "name": "unstaking_epoch",
            "type": "U64"
          },
          {
            "name": "principal_amount",
            "type": "U64"
          },
          {
            "name": "reward_amount",
            "type": "U64"
          }
        ]
      },
      "ValidatorMetadataV1": {
        "abilities": {
          "abilities": [
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "iota_address",
            "type": "Address"
          },
          {
            "name": "authority_pubkey_bytes",
            "type": {
              "Vector": "U8"
            }
          },
          {
            "name": "network_pubkey_bytes",
            "type": {
              "Vector": "U8"
            }
          },
          {
            "name": "protocol_pubkey_bytes",
            "type": {
              "Vector": "U8"
            }
          },
          {
            "name": "proof_of_possession",
            "type": {
              "Vector": "U8"
            }
          },
          {
            "name": "name",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "name": "description",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "name": "image_url",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "url",
                "name": "Url",
                "typeArguments": []
              }
            }
          },
          {
            "name": "project_url",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "url",
                "name": "Url",
                "typeArguments": []
              }
            }
          },
          {
            "name": "net_address",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "name": "p2p_address",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "name": "primary_address",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          },
          {
            "name": "next_epoch_authority_pubkey_bytes",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "Vector": "U8"
                  }
                ]
              }
            }
          },
          {
            "name": "next_epoch_proof_of_possession",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "Vector": "U8"
                  }
                ]
              }
            }
          },
          {
            "name": "next_epoch_network_pubkey_bytes",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "Vector": "U8"
                  }
                ]
              }
            }
          },
          {
            "name": "next_epoch_protocol_pubkey_bytes",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "Vector": "U8"
                  }
                ]
              }
            }
          },
          {
            "name": "next_epoch_net_address",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x1",
                      "module": "string",
                      "name": "String",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "next_epoch_p2p_address",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x1",
                      "module": "string",
                      "name": "String",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "next_epoch_primary_address",
            "type": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x1",
                      "module": "string",
                      "name": "String",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "extra_fields",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "bag",
                "name": "Bag",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "ValidatorV1": {
        "abilities": {
          "abilities": [
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "metadata",
            "type": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorMetadataV1",
                "typeArguments": []
              }
            }
          },
          {
            "name": "voting_power",
            "type": "U64"
          },
          {
            "name": "operation_cap_id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "gas_price",
            "type": "U64"
          },
          {
            "name": "staking_pool",
            "type": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakingPoolV1",
                "typeArguments": []
              }
            }
          },
          {
            "name": "commission_rate",
            "type": "U64"
          },
          {
            "name": "next_epoch_stake",
            "type": "U64"
          },
          {
            "name": "next_epoch_gas_price",
            "type": "U64"
          },
          {
            "name": "next_epoch_commission_rate",
            "type": "U64"
          },
          {
            "name": "extra_fields",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "bag",
                "name": "Bag",
                "typeArguments": []
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "activate": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          "U64"
        ],
        "return": []
      },
      "adjust_next_epoch_commission_rate": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "authority_pubkey_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ]
      },
      "commission_rate": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "deactivate": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          "U64"
        ],
        "return": []
      },
      "deposit_stake_rewards": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ],
        "return": []
      },
      "description": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "effectuate_staged_metadata": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "gas_price": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "get_staking_pool_ref": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "StakingPoolV1",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "image_url": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "url",
                "name": "Url",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "iota_address": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Address"
        ]
      },
      "is_duplicate": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_preactive": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "metadata": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorMetadataV1",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "name": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "network_address": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "network_pubkey_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ]
      },
      "new": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          "Address",
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          "U64",
          "U64",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "validator",
              "name": "ValidatorV1",
              "typeArguments": []
            }
          }
        ]
      },
      "new_metadata": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          "Address",
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "url",
              "name": "Url",
              "typeArguments": []
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "url",
              "name": "Url",
              "typeArguments": []
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          },
          {
            "Struct": {
              "address": "0x1",
              "module": "string",
              "name": "String",
              "typeArguments": []
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "bag",
              "name": "Bag",
              "typeArguments": []
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "validator",
              "name": "ValidatorMetadataV1",
              "typeArguments": []
            }
          }
        ]
      },
      "new_unverified_validator_operation_cap_and_transfer": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "next_epoch_authority_pubkey_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "Vector": "U8"
                  }
                ]
              }
            }
          }
        ]
      },
      "next_epoch_gas_price": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "next_epoch_network_address": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x1",
                      "module": "string",
                      "name": "String",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ]
      },
      "next_epoch_network_pubkey_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "Vector": "U8"
                  }
                ]
              }
            }
          }
        ]
      },
      "next_epoch_p2p_address": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x1",
                      "module": "string",
                      "name": "String",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ]
      },
      "next_epoch_primary_address": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x1",
                      "module": "string",
                      "name": "String",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ]
      },
      "next_epoch_proof_of_possession": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "Vector": "U8"
                  }
                ]
              }
            }
          }
        ]
      },
      "next_epoch_protocol_pubkey_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "option",
                "name": "Option",
                "typeArguments": [
                  {
                    "Vector": "U8"
                  }
                ]
              }
            }
          }
        ]
      },
      "next_epoch_stake": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "operation_cap_id": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "p2p_address": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "pending_stake_amount": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "pending_stake_withdraw_amount": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "pool_token_exchange_rate_at_epoch": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          "U64"
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "staking_pool",
              "name": "PoolTokenExchangeRate",
              "typeArguments": []
            }
          }
        ]
      },
      "primary_address": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x1",
                "module": "string",
                "name": "String",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "process_pending_stakes_and_withdraws": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "project_url": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "url",
                "name": "Url",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "proof_of_possession": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ]
      },
      "protocol_pubkey_bytes": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": "U8"
            }
          }
        ]
      },
      "request_add_stake": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          },
          "Address",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "staking_pool",
              "name": "StakedIota",
              "typeArguments": []
            }
          }
        ]
      },
      "request_add_stake_at_genesis": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          },
          "Address",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_add_stake_at_genesis_with_receipt": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "staking_pool",
              "name": "StakedIota",
              "typeArguments": []
            }
          }
        ]
      },
      "request_set_commission_rate": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          "U64"
        ],
        "return": []
      },
      "request_withdraw_stake": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x3",
              "module": "staking_pool",
              "name": "StakedIota",
              "typeArguments": []
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "set_candidate_commission_rate": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          "U64"
        ],
        "return": []
      },
      "set_voting_power": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          "U64"
        ],
        "return": []
      },
      "smaller_than": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "stake_amount": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "staking_pool_id": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      },
      "total_stake": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "total_stake_amount": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "update_candidate_authority_pubkey": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          }
        ],
        "return": []
      },
      "update_candidate_network_address": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          }
        ],
        "return": []
      },
      "update_candidate_network_pubkey": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          }
        ],
        "return": []
      },
      "update_candidate_p2p_address": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          }
        ],
        "return": []
      },
      "update_candidate_primary_address": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          }
        ],
        "return": []
      },
      "update_candidate_protocol_pubkey": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          }
        ],
        "return": []
      },
      "update_description": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          }
        ],
        "return": []
      },
      "update_image_url": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          }
        ],
        "return": []
      },
      "update_name": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          }
        ],
        "return": []
      },
      "update_next_epoch_authority_pubkey": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          },
          {
            "Vector": "U8"
          }
        ],
        "return": []
      },
      "update_next_epoch_network_address": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          }
        ],
        "return": []
      },
      "update_next_epoch_network_pubkey": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          }
        ],
        "return": []
      },
      "update_next_epoch_p2p_address": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          }
        ],
        "return": []
      },
      "update_next_epoch_primary_address": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          }
        ],
        "return": []
      },
      "update_next_epoch_protocol_pubkey": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          }
        ],
        "return": []
      },
      "update_project_url": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "Vector": "U8"
          }
        ],
        "return": []
      },
      "validate_metadata": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorMetadataV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "validate_metadata_bcs": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Vector": "U8"
          }
        ],
        "return": []
      },
      "voting_power": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      }
    }
  },
  "validator_cap": {
    "fileFormatVersion": 6,
    "address": "0x3",
    "name": "validator_cap",
    "friends": [
      {
        "address": "0x3",
        "name": "iota_system_state_inner"
      },
      {
        "address": "0x3",
        "name": "validator"
      },
      {
        "address": "0x3",
        "name": "validator_set"
      }
    ],
    "structs": {
      "UnverifiedValidatorOperationCap": {
        "abilities": {
          "abilities": [
            "Store",
            "Key"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "UID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "authorizer_validator_address",
            "type": "Address"
          }
        ]
      },
      "ValidatorOperationCap": {
        "abilities": {
          "abilities": [
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "authorizer_validator_address",
            "type": "Address"
          }
        ]
      }
    },
    "exposedFunctions": {
      "new_from_unverified": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_cap",
                "name": "UnverifiedValidatorOperationCap",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "validator_cap",
              "name": "ValidatorOperationCap",
              "typeArguments": []
            }
          }
        ]
      },
      "new_unverified_validator_operation_cap_and_transfer": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          "Address",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      },
      "unverified_operation_cap_address": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_cap",
                "name": "UnverifiedValidatorOperationCap",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": "Address"
          }
        ]
      },
      "verified_operation_cap_address": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_cap",
                "name": "ValidatorOperationCap",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": "Address"
          }
        ]
      }
    }
  },
  "validator_set": {
    "fileFormatVersion": 6,
    "address": "0x3",
    "name": "validator_set",
    "friends": [
      {
        "address": "0x3",
        "name": "genesis"
      },
      {
        "address": "0x3",
        "name": "iota_system_state_inner"
      }
    ],
    "structs": {
      "CommitteeValidatorJoinEvent": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "epoch",
            "type": "U64"
          },
          {
            "name": "validator_address",
            "type": "Address"
          },
          {
            "name": "staking_pool_id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "CommitteeValidatorLeaveEvent": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "epoch",
            "type": "U64"
          },
          {
            "name": "validator_address",
            "type": "Address"
          },
          {
            "name": "staking_pool_id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "ValidatorEpochInfoEventV1": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "epoch",
            "type": "U64"
          },
          {
            "name": "validator_address",
            "type": "Address"
          },
          {
            "name": "reference_gas_survey_quote",
            "type": "U64"
          },
          {
            "name": "stake",
            "type": "U64"
          },
          {
            "name": "voting_power",
            "type": "U64"
          },
          {
            "name": "commission_rate",
            "type": "U64"
          },
          {
            "name": "pool_staking_reward",
            "type": "U64"
          },
          {
            "name": "pool_token_exchange_rate",
            "type": {
              "Struct": {
                "address": "0x3",
                "module": "staking_pool",
                "name": "PoolTokenExchangeRate",
                "typeArguments": []
              }
            }
          },
          {
            "name": "tallying_rule_reporters",
            "type": {
              "Vector": "Address"
            }
          },
          {
            "name": "tallying_rule_global_score",
            "type": "U64"
          }
        ]
      },
      "ValidatorJoinEvent": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "epoch",
            "type": "U64"
          },
          {
            "name": "validator_address",
            "type": "Address"
          },
          {
            "name": "staking_pool_id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "ValidatorLeaveEvent": {
        "abilities": {
          "abilities": [
            "Copy",
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "epoch",
            "type": "U64"
          },
          {
            "name": "validator_address",
            "type": "Address"
          },
          {
            "name": "staking_pool_id",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          },
          {
            "name": "is_voluntary",
            "type": "Bool"
          }
        ]
      },
      "ValidatorSetV1": {
        "abilities": {
          "abilities": [
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "total_stake",
            "type": "U64"
          },
          {
            "name": "active_validators",
            "type": {
              "Vector": {
                "Struct": {
                  "address": "0x3",
                  "module": "validator",
                  "name": "ValidatorV1",
                  "typeArguments": []
                }
              }
            }
          },
          {
            "name": "pending_active_validators",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "table_vec",
                "name": "TableVec",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x3",
                      "module": "validator",
                      "name": "ValidatorV1",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "pending_removals",
            "type": {
              "Vector": "U64"
            }
          },
          {
            "name": "staking_pool_mappings",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "table",
                "name": "Table",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "object",
                      "name": "ID",
                      "typeArguments": []
                    }
                  },
                  "Address"
                ]
              }
            }
          },
          {
            "name": "inactive_validators",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "table",
                "name": "Table",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "object",
                      "name": "ID",
                      "typeArguments": []
                    }
                  },
                  {
                    "Struct": {
                      "address": "0x3",
                      "module": "validator_wrapper",
                      "name": "Validator",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "validator_candidates",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "table",
                "name": "Table",
                "typeArguments": [
                  "Address",
                  {
                    "Struct": {
                      "address": "0x3",
                      "module": "validator_wrapper",
                      "name": "Validator",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "at_risk_validators",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  "Address",
                  "U64"
                ]
              }
            }
          },
          {
            "name": "extra_fields",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "bag",
                "name": "Bag",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "ValidatorSetV2": {
        "abilities": {
          "abilities": [
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "total_stake",
            "type": "U64"
          },
          {
            "name": "active_validators",
            "type": {
              "Vector": {
                "Struct": {
                  "address": "0x3",
                  "module": "validator",
                  "name": "ValidatorV1",
                  "typeArguments": []
                }
              }
            }
          },
          {
            "name": "committee_members",
            "type": {
              "Vector": "U64"
            }
          },
          {
            "name": "pending_active_validators",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "table_vec",
                "name": "TableVec",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x3",
                      "module": "validator",
                      "name": "ValidatorV1",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "pending_removals",
            "type": {
              "Vector": "U64"
            }
          },
          {
            "name": "staking_pool_mappings",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "table",
                "name": "Table",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "object",
                      "name": "ID",
                      "typeArguments": []
                    }
                  },
                  "Address"
                ]
              }
            }
          },
          {
            "name": "inactive_validators",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "table",
                "name": "Table",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "object",
                      "name": "ID",
                      "typeArguments": []
                    }
                  },
                  {
                    "Struct": {
                      "address": "0x3",
                      "module": "validator_wrapper",
                      "name": "Validator",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "validator_candidates",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "table",
                "name": "Table",
                "typeArguments": [
                  "Address",
                  {
                    "Struct": {
                      "address": "0x3",
                      "module": "validator_wrapper",
                      "name": "Validator",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "name": "at_risk_validators",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  "Address",
                  "U64"
                ]
              }
            }
          },
          {
            "name": "extra_fields",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "bag",
                "name": "Bag",
                "typeArguments": []
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "active_validator_addresses": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Vector": "Address"
          }
        ]
      },
      "active_validators": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x3",
                  "module": "validator",
                  "name": "ValidatorV1",
                  "typeArguments": []
                }
              }
            }
          }
        ]
      },
      "active_validators_inner": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x3",
                  "module": "validator",
                  "name": "ValidatorV1",
                  "typeArguments": []
                }
              }
            }
          }
        ]
      },
      "advance_epoch": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "balance",
                "name": "Balance",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "iota",
                      "name": "IOTA",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "vec_map",
                "name": "VecMap",
                "typeArguments": [
                  "Address",
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "vec_set",
                      "name": "VecSet",
                      "typeArguments": [
                        "Address"
                      ]
                    }
                  }
                ]
              }
            }
          },
          "U64",
          "U64",
          "U64",
          "U64",
          "U64",
          {
            "Vector": "U64"
          },
          {
            "Vector": "U64"
          },
          "Bool",
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "assert_no_pending_or_active_duplicates": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "committee_validator_addresses": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Vector": "Address"
          }
        ]
      },
      "derive_reference_gas_price": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "get_active_or_pending_or_candidate_validator_ref": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          "Address",
          "U8"
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "get_active_validator_ref": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV1",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "get_active_validator_ref_inner": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "get_committee_validator_ref_inner": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "get_pending_validator_ref": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV1",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "get_pending_validator_ref_inner": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "get_validator_mut": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Vector": {
                "Struct": {
                  "address": "0x3",
                  "module": "validator",
                  "name": "ValidatorV1",
                  "typeArguments": []
                }
              }
            }
          },
          "Address"
        ],
        "return": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "get_validator_mut_with_ctx": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "get_validator_mut_with_ctx_including_candidates": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "get_validator_mut_with_verified_cap": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_cap",
                "name": "ValidatorOperationCap",
                "typeArguments": []
              }
            }
          },
          "Bool"
        ],
        "return": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ]
      },
      "is_active_validator_by_iota_address": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": [
          "Bool"
        ]
      },
      "is_committee_validator_by_iota_address": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": [
          "Bool"
        ]
      },
      "is_duplicate_validator": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x3",
                  "module": "validator",
                  "name": "ValidatorV1",
                  "typeArguments": []
                }
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_inactive_validator": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV1",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_inactive_validator_inner": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ],
        "return": [
          "Bool"
        ]
      },
      "is_validator_candidate": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV1",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": [
          "Bool"
        ]
      },
      "is_validator_candidate_inner": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": [
          "Bool"
        ]
      },
      "new_v1": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Vector": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "validator_set",
              "name": "ValidatorSetV1",
              "typeArguments": []
            }
          }
        ]
      },
      "next_epoch_validator_count": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "pool_exchange_rates": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "table",
                "name": "Table",
                "typeArguments": [
                  "U64",
                  {
                    "Struct": {
                      "address": "0x3",
                      "module": "staking_pool",
                      "name": "PoolTokenExchangeRate",
                      "typeArguments": []
                    }
                  }
                ]
              }
            }
          }
        ]
      },
      "process_new_committee": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          "U64",
          {
            "Vector": "Address"
          },
          {
            "Vector": "Address"
          },
          {
            "Vector": "U64"
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_add_stake": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          "Address",
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "staking_pool",
              "name": "StakedIota",
              "typeArguments": []
            }
          }
        ]
      },
      "request_add_validator": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          "U64",
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_add_validator_candidate": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x3",
              "module": "validator",
              "name": "ValidatorV1",
              "typeArguments": []
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_remove_validator": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_remove_validator_candidate": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_set_commission_rate": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          "U64",
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": []
      },
      "request_withdraw_stake": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          {
            "Struct": {
              "address": "0x3",
              "module": "staking_pool",
              "name": "StakedIota",
              "typeArguments": []
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "balance",
              "name": "Balance",
              "typeArguments": [
                {
                  "Struct": {
                    "address": "0x2",
                    "module": "iota",
                    "name": "IOTA",
                    "typeArguments": []
                  }
                }
              ]
            }
          }
        ]
      },
      "select_committee_members_from_eligible": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          "U64",
          {
            "Vector": "U64"
          }
        ],
        "return": [
          {
            "Vector": "U64"
          }
        ]
      },
      "staking_pool_mappings": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "table",
                "name": "Table",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "object",
                      "name": "ID",
                      "typeArguments": []
                    }
                  },
                  "Address"
                ]
              }
            }
          }
        ]
      },
      "staking_pool_mappings_inner": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "table",
                "name": "Table",
                "typeArguments": [
                  {
                    "Struct": {
                      "address": "0x2",
                      "module": "object",
                      "name": "ID",
                      "typeArguments": []
                    }
                  },
                  "Address"
                ]
              }
            }
          }
        ]
      },
      "sum_committee_voting_power_by_addresses": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Vector": "Address"
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "sum_voting_power_by_addresses": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x3",
                  "module": "validator",
                  "name": "ValidatorV1",
                  "typeArguments": []
                }
              }
            }
          },
          {
            "Reference": {
              "Vector": "Address"
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "total_stake": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV1",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "total_stake_inner": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "v1_to_v2": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Struct": {
              "address": "0x3",
              "module": "validator_set",
              "name": "ValidatorSetV1",
              "typeArguments": []
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "validator_set",
              "name": "ValidatorSetV2",
              "typeArguments": []
            }
          }
        ]
      },
      "validator_address_by_pool_id_inner": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x2",
                "module": "object",
                "name": "ID",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          "Address"
        ]
      },
      "validator_stake_amount": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV1",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": [
          "U64"
        ]
      },
      "validator_stake_amount_inner": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": [
          "U64"
        ]
      },
      "validator_staking_pool_id": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV1",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      },
      "validator_staking_pool_id_inner": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": [
          {
            "Struct": {
              "address": "0x2",
              "module": "object",
              "name": "ID",
              "typeArguments": []
            }
          }
        ]
      },
      "validator_total_stake_amount": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV1",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": [
          "U64"
        ]
      },
      "validator_total_stake_amount_inner": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": [
          "U64"
        ]
      },
      "validator_voting_power": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV1",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": [
          "U64"
        ]
      },
      "validator_voting_power_inner": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          "Address"
        ],
        "return": [
          "U64"
        ]
      },
      "verify_cap": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_set",
                "name": "ValidatorSetV2",
                "typeArguments": []
              }
            }
          },
          {
            "Reference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_cap",
                "name": "UnverifiedValidatorOperationCap",
                "typeArguments": []
              }
            }
          },
          "U8"
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "validator_cap",
              "name": "ValidatorOperationCap",
              "typeArguments": []
            }
          }
        ]
      }
    }
  },
  "validator_wrapper": {
    "fileFormatVersion": 6,
    "address": "0x3",
    "name": "validator_wrapper",
    "friends": [
      {
        "address": "0x3",
        "name": "validator_set"
      }
    ],
    "structs": {
      "Validator": {
        "abilities": {
          "abilities": [
            "Store"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "inner",
            "type": {
              "Struct": {
                "address": "0x2",
                "module": "versioned",
                "name": "Versioned",
                "typeArguments": []
              }
            }
          }
        ]
      }
    },
    "exposedFunctions": {
      "create_v1": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Struct": {
              "address": "0x3",
              "module": "validator",
              "name": "ValidatorV1",
              "typeArguments": []
            }
          },
          {
            "MutableReference": {
              "Struct": {
                "address": "0x2",
                "module": "tx_context",
                "name": "TxContext",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "validator_wrapper",
              "name": "Validator",
              "typeArguments": []
            }
          }
        ]
      },
      "destroy": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Struct": {
              "address": "0x3",
              "module": "validator_wrapper",
              "name": "Validator",
              "typeArguments": []
            }
          }
        ],
        "return": [
          {
            "Struct": {
              "address": "0x3",
              "module": "validator",
              "name": "ValidatorV1",
              "typeArguments": []
            }
          }
        ]
      },
      "load_validator_maybe_upgrade": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator_wrapper",
                "name": "Validator",
                "typeArguments": []
              }
            }
          }
        ],
        "return": [
          {
            "MutableReference": {
              "Struct": {
                "address": "0x3",
                "module": "validator",
                "name": "ValidatorV1",
                "typeArguments": []
              }
            }
          }
        ]
      }
    }
  },
  "voting_power": {
    "fileFormatVersion": 6,
    "address": "0x3",
    "name": "voting_power",
    "friends": [
      {
        "address": "0x3",
        "name": "validator_set"
      }
    ],
    "structs": {
      "VotingPowerInfoV1": {
        "abilities": {
          "abilities": [
            "Drop"
          ]
        },
        "typeParameters": [],
        "fields": [
          {
            "name": "validator_index",
            "type": "U64"
          },
          {
            "name": "voting_power",
            "type": "U64"
          },
          {
            "name": "stake",
            "type": "U64"
          }
        ]
      }
    },
    "exposedFunctions": {
      "quorum_threshold": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          "U64"
        ]
      },
      "set_voting_power": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": "U64"
            }
          },
          {
            "MutableReference": {
              "Vector": {
                "Struct": {
                  "address": "0x3",
                  "module": "validator",
                  "name": "ValidatorV1",
                  "typeArguments": []
                }
              }
            }
          }
        ],
        "return": []
      },
      "total_committee_stake": {
        "visibility": "Friend",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [
          {
            "Reference": {
              "Vector": {
                "Struct": {
                  "address": "0x3",
                  "module": "validator",
                  "name": "ValidatorV1",
                  "typeArguments": []
                }
              }
            }
          },
          {
            "Reference": {
              "Vector": "U64"
            }
          }
        ],
        "return": [
          "U64"
        ]
      },
      "total_voting_power": {
        "visibility": "Public",
        "isEntry": false,
        "typeParameters": [],
        "parameters": [],
        "return": [
          "U64"
        ]
      }
    }
  }
}