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
Address of owner of admin manager (Gov contract)
The duration of admin privilege delegation to a defined address when AuthorizeClaim
occurs.
InstantiateMsg
Copy #[derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema )]
pub struct InstantiateMsg {
pub owner : String ,
pub admin_claim_period : u64 ,
}
Address of owner of admin manager (Gov contract)
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
Rust JSON
Copy #[derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema )]
#[serde(rename_all = "snake_case" )]
pub enum ExecuteMsg {
UpdateOwner {
owner : String ,
}
Address of the owner of admin manager
Copy {
"update_owner" : {
"owner" : "terra1..."
}
}
Address of the owner of admin manager
ExecuteMigrations
Contract migration is executed when the Gov contract sends an ExecuteMigrations
message.
Rust JSON
Copy #[derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema )]
#[serde(rename_all = "snake_case" )]
pub enum ExecuteMsg {
ExecuteMigrations {
migrations : Vec <( String , u64 , Binary )>,
},
migrations
Address of the current Mirror contract to be migrated
Token code ID of the new contracts
Migration execution message
Copy {
"execute_migrations" : {
"migrations" : [
( "terra1..." , 123 , eBdwav...) ,
( "terra1..." , 123 , eBdwav...)
]
}
}
migrations
Address of the current Mirror contract to be migrated
Token code ID of the new contracts
Migration execution message
AuthorizeClaim
Delegates admin privileges to migrate contracts to a specified address until admin_claim_period
ends.
Rust JSON
Copy #[derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema )]
#[serde(rename_all = "snake_case" )]
pub enum ExecuteMsg {
AuthorizeClaim {
authorized_addr : String ,
},
Address to temporarily delegate the admin privilege to
Copy {
"authorize_claim" : {
"authrized_addr" : "terra1..."
}
}
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.
Rust JSON
Copy #[derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema )]
#[serde(rename_all = "snake_case" )]
pub enum ExecuteMsg {
ClaimAdmin {
contract : String ,
},
Address of contracts that the authorized_addr
has right to migrate
Copy {
"claim_admin" : {
"contract" : "terra1..."
}
}
Address of contracts that the authorized_addr
has right to migrate
QueryMsg
Config
Returns the configuration of the admin manager contract
Rust JSON
Copy #[derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema )]
#[serde(rename_all = "snake_case" )]
pub enum QueryMsg {
Config {},
ConfigResponse
Copy #[derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema )]
pub struct ConfigResponse {
pub owner : String ,
pub admin_claim_period : u64 ,
}
Address of the owner of admin manager contract (Gov contract)
Length of time which the admin key is claimed and used for (in seconds)
ConfigResponse
Copy {
"config_response" : {
"owner" : "terra1..." ,
"admin_claim_period" : 8
}
}
Address of the owner of admin manager contract (Gov contract)
Length of time which the admin key is claimed and used for (in seconds)
MigrationRecords
Returns the history of execute_migrations
records.
Rust JSON
Copy #[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 >,
},
Optional timestamp to return the migration history from
Max number of migration records to return
Response
Copy #[derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema )]
pub struct MigrationRecordResponse {
pub executor : String ,
pub time : u64 ,
pub migrations : Vec < MigrationItem >,
}
Address of the migration executor
UNIX timestamp of when the migration was executed
Migration specific details including migrated contract
address, token code ID and binary
message used for the migration.
Copy {
"migration_records" : {
"start_after" : 12341234 ,
"limit" : 8
}
}
Optional timestamp to return the migration history from
Max number of migration records to return
Response
Copy {
"executor" : "terra1..." ,
"time" : 12341234 ,
"migrations" : {
"contract" : "terra1..." ,
"new_code_id" : 234 ,
"msg" : "evDw12549..."
}
}
Address of the migration executor
UNIX timestamp of when the migration was executed
Migration specific details including migrated contract
address, token code ID and binary
message used for the migration
AuthRecords
Returns the history of AuthorizeClaim
transactions
Rust JSON
Copy #[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 >,
},
Optional timestamp of when to return the history from
Max number of records to return
Response
Copy #[derive( Serialize , Deserialize , Clone , Debug , PartialEq , JsonSchema )]
pub struct AuthRecordResponse {
pub address : String ,
pub start_time : u64 ,
pub end_time : u64 ,
}
The address at which the admin key was authorized to
UNIX timestamp of when the admin_claim_period
started
UNIX timestamp of when the admin_claim_period
ended
Copy {
"auth_records" : {
"start_after" : 12341234 ,
"limit" : 8
}
}
Optional timestamp of when to return the history from
Max number of records to return
Response
Copy {
"address" : "terra1..." ,
"start_time" : 12341234 ,
"end_time" : 12341234
}
The address which the admin key was authorized to
UNIX timestamp of when the admin_claim_period
started
UNIX timestamp of when the admin_claim_period
ended