Admin Manager

Admin Manager contract is owned by Gov contract, and is responsible for executing contract migrations and admin key transfers, which are used in order to execute time sensitive migrations such as Terra's columbus network upgrades.

All operations in admin manager contract can only be executed by submitting and executing a poll on Mirror governance (one of migration_poll or auth_admin_poll).

Config

KeyTypeDescription

owner

String

Address of owner of admin manager (Gov contract)

admin_claim_period

u64

The duration of admin privilege delegation to a defined address when AuthorizeClaim occurs.

InstantiateMsg

#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct InstantiateMsg {
    pub owner: String,
    pub admin_claim_period: u64,
}
KeyTypeDescription

owner

String

Address of owner of admin manager (Gov contract)

admin_claim_period

u64

The duration of admin privilege delegation to a defined address when AuthorizeClaim occurs

ExecuteMsg

UpdateOwner

Replaces the owner address of the admin manager contract to a new one

#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum ExecuteMsg {
    UpdateOwner {
        owner: String,
    }
KeyTypeDescription

owner

String

Address of the owner of admin manager

ExecuteMigrations

Contract migration is executed when the Gov contract sends an ExecuteMigrations message.

#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum ExecuteMsg {
	ExecuteMigrations {
        migrations: Vec<(String, u64, Binary)>,
    },

migrations

TypeDescription

String

Address of the current Mirror contract to be migrated

u64

Token code ID of the new contracts

Binary

Migration execution message

AuthorizeClaim

Delegates admin privileges to migrate contracts to a specified address until admin_claim_period ends.

#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum ExecuteMsg {
        AuthorizeClaim {
        authorized_addr: String,
    },
KeyTypeDescription

authorized_addr

String

Address to temporarily delegate the admin privilege to

ClaimAdmin

Once AuthorizeClaim is executed, the authorized_addr can send this transaction to claim the rights to the admin keys until the admin_claim_period ends.

#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum ExecuteMsg {
	ClaimAdmin {
        contract: String,
    },
KeyTypeDescription

contract

String

Address of contracts that the authorized_addr has right to migrate

QueryMsg

Config

Returns the configuration of the admin manager contract

#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum QueryMsg {
    Config {},

ConfigResponse

#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct ConfigResponse {
    pub owner: String,
    pub admin_claim_period: u64,
}
KeyTypeDescription

owner

String

Address of the owner of admin manager contract (Gov contract)

admin_claim_period

String

Length of time which the admin key is claimed and used for (in seconds)

MigrationRecords

Returns the history of execute_migrations records.

#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum QueryMsg {
	MigrationRecords {
        start_after: Option<u64>, // timestamp (seconds)
        limit: Option<u32>,
    },
KeyTypeDescription

start_after

u64

Optional timestamp to return the migration history from

limit

u32

Max number of migration records to return

Response

#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct MigrationRecordResponse {
    pub executor: String,
    pub time: u64,
    pub migrations: Vec<MigrationItem>,
}
KeyTypeDescription

executor

String

Address of the migration executor

time

u64

UNIX timestamp of when the migration was executed

migrations

MigrationItem

Migration specific details including migrated contract address, token code ID and binary message used for the migration.

AuthRecords

Returns the history of AuthorizeClaim transactions

#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
#[serde(rename_all = "snake_case")]
pub enum QueryMsg {
	AuthRecords {
        start_after: Option<u64>, // timestamp (seconds)
        limit: Option<u32>,
    },
KeyTypeDescription

start_after

u64

Optional timestamp of when to return the history from

limit

u32

Max number of records to return

Response

#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, JsonSchema)]
pub struct AuthRecordResponse {
    pub address: String,
    pub start_time: u64,
    pub end_time: u64,
}
KeyTypeDescription

address

String

The address at which the admin key was authorized to

start_time

u64

UNIX timestamp of when the admin_claim_period started

end_time

u64

UNIX timestamp of when the admin_claim_period ended

Last updated