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
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,
}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,
}owner
String
Address of the owner of admin manager
{
"update_owner": {
"owner": "terra1..."
}
}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
String
Address of the current Mirror contract to be migrated
u64
Token code ID of the new contracts
Binary
Migration execution message
{
"execute_migrations": {
"migrations": [
("terra1...", 123, eBdwav...),
("terra1...", 123, eBdwav...)
]
}
}migrations
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,
},authorized_addr
String
Address to temporarily delegate the admin privilege to
{
"authorize_claim": {
"authrized_addr": "terra1..."
}
}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,
},contract
String
Address of contracts that the authorized_addr has right to migrate
{
"claim_admin": {
"contract": "terra1..."
}
}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,
}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)
{
"config": {}
}ConfigResponse
{
"config_response": {
"owner": "terra1...",
"admin_claim_period": 8
}
}owner
String
Address of the owner of admin manager contract (Gov contract)
admin_claim_period
u64
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>,
},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>,
}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.
{
"migration_records": {
"start_after": 12341234,
"limit": 8
}
}start_after
u64
Optional timestamp to return the migration history from
limit
u32
Max number of migration records to return
Response
{
"executor": "terra1...",
"time": 12341234,
"migrations": {
"contract": "terra1...",
"new_code_id": 234,
"msg": "evDw12549..."
}
}executor
String
Address of the migration executor
time
u64
UNIX timestamp of when the migration was executed
migrations
Vec<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>,
},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,
}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
{
"auth_records": {
"start_after": 12341234,
"limit": 8
}
}start_after
u64
Optional timestamp of when to return the history from
limit
u32
Max number of records to return
Response
{
"address": "terra1...",
"start_time": 12341234,
"end_time": 12341234
}address
String
The address 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