mirror of
https://github.com/logos-blockchain/lez-programs.git
synced 2026-07-03 05:29:50 +00:00
769 lines
16 KiB
JSON
769 lines
16 KiB
JSON
{
|
|
"version": "0.1.0",
|
|
"name": "stablecoin",
|
|
"instructions": [
|
|
{
|
|
"name": "initialize_program",
|
|
"accounts": [
|
|
{
|
|
"name": "admin",
|
|
"writable": false,
|
|
"signer": true,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "protocol_parameters",
|
|
"writable": true,
|
|
"signer": false,
|
|
"init": true
|
|
},
|
|
{
|
|
"name": "stability_fee_accumulator",
|
|
"writable": true,
|
|
"signer": false,
|
|
"init": true
|
|
},
|
|
{
|
|
"name": "redemption_price_state",
|
|
"writable": true,
|
|
"signer": false,
|
|
"init": true
|
|
},
|
|
{
|
|
"name": "stablecoin_definition",
|
|
"writable": true,
|
|
"signer": false,
|
|
"init": true
|
|
},
|
|
{
|
|
"name": "stablecoin_master_holding",
|
|
"writable": true,
|
|
"signer": false,
|
|
"init": true
|
|
},
|
|
{
|
|
"name": "collateral_definition",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "market_price_oracle",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "clock",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "freeze_authority_account_id",
|
|
"type": "account_id"
|
|
},
|
|
{
|
|
"name": "initial_stability_fee_per_millisecond",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "initial_controller_proportional_gain",
|
|
"type": "i128"
|
|
},
|
|
{
|
|
"name": "initial_controller_integral_gain",
|
|
"type": "i128"
|
|
},
|
|
{
|
|
"name": "initial_minimum_collateralization_ratio",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "minimum_milliseconds_between_rate_updates",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "maximum_oracle_price_age_milliseconds",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "initial_redemption_price",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "stablecoin_name",
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "accrue_stability_fee",
|
|
"accounts": [
|
|
{
|
|
"name": "caller",
|
|
"writable": false,
|
|
"signer": true,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "protocol_parameters",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "stability_fee_accumulator",
|
|
"writable": true,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "clock",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
}
|
|
],
|
|
"args": []
|
|
},
|
|
{
|
|
"name": "set_stability_fee_per_millisecond",
|
|
"accounts": [
|
|
{
|
|
"name": "admin",
|
|
"writable": false,
|
|
"signer": true,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "protocol_parameters",
|
|
"writable": true,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "stability_fee_accumulator",
|
|
"writable": true,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "clock",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "new_rate",
|
|
"type": "u128"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "open_position",
|
|
"accounts": [
|
|
{
|
|
"name": "owner",
|
|
"writable": false,
|
|
"signer": true,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "position",
|
|
"writable": true,
|
|
"signer": false,
|
|
"init": true
|
|
},
|
|
{
|
|
"name": "vault",
|
|
"writable": true,
|
|
"signer": false,
|
|
"init": true
|
|
},
|
|
{
|
|
"name": "user_holding",
|
|
"writable": true,
|
|
"signer": true,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "collateral_definition",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "protocol_parameters",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "clock",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "position_nonce",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "initial_collateral_amount",
|
|
"type": "u128"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "generate_debt",
|
|
"accounts": [
|
|
{
|
|
"name": "owner",
|
|
"writable": false,
|
|
"signer": true,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "position",
|
|
"writable": true,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "stablecoin_definition",
|
|
"writable": true,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "user_stablecoin_holding",
|
|
"writable": true,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "stability_fee_accumulator",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "redemption_price_state",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "market_price_oracle",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "protocol_parameters",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "clock",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "amount",
|
|
"type": "u128"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "withdraw_collateral",
|
|
"accounts": [
|
|
{
|
|
"name": "owner",
|
|
"writable": false,
|
|
"signer": true,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "position",
|
|
"writable": true,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "vault",
|
|
"writable": true,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "destination",
|
|
"writable": true,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "stability_fee_accumulator",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "redemption_price_state",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "protocol_parameters",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "clock",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "amount",
|
|
"type": "u128"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "repay_debt",
|
|
"accounts": [
|
|
{
|
|
"name": "owner",
|
|
"writable": false,
|
|
"signer": true,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "position",
|
|
"writable": true,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "stablecoin_definition",
|
|
"writable": true,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "user_stablecoin_holding",
|
|
"writable": true,
|
|
"signer": true,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "stability_fee_accumulator",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "protocol_parameters",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
},
|
|
{
|
|
"name": "clock",
|
|
"writable": false,
|
|
"signer": false,
|
|
"init": false
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "amount",
|
|
"type": "u128"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"accounts": [
|
|
{
|
|
"name": "ProtocolParameters",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "admin_account_id",
|
|
"type": "account_id"
|
|
},
|
|
{
|
|
"name": "freeze_authority_account_id",
|
|
"type": "account_id"
|
|
},
|
|
{
|
|
"name": "stablecoin_definition_id",
|
|
"type": "account_id"
|
|
},
|
|
{
|
|
"name": "collateral_definition_id",
|
|
"type": "account_id"
|
|
},
|
|
{
|
|
"name": "market_price_oracle_id",
|
|
"type": "account_id"
|
|
},
|
|
{
|
|
"name": "stability_fee_per_millisecond",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "controller_proportional_gain",
|
|
"type": "i128"
|
|
},
|
|
{
|
|
"name": "controller_integral_gain",
|
|
"type": "i128"
|
|
},
|
|
{
|
|
"name": "minimum_collateralization_ratio",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "minimum_milliseconds_between_rate_updates",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "maximum_oracle_price_age_milliseconds",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "is_frozen",
|
|
"type": "bool"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "StabilityFeeAccumulator",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "accumulated_rate_at_last_accrual",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "last_accrued_at",
|
|
"type": "u64"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "RedemptionPriceState",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "redemption_price_at_last_update",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "redemption_rate_per_millisecond",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "controller_integral_term",
|
|
"type": "i128"
|
|
},
|
|
{
|
|
"name": "last_updated_at",
|
|
"type": "u64"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "Position",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "owner_account_id",
|
|
"type": "account_id"
|
|
},
|
|
{
|
|
"name": "position_nonce",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "vault_account_id",
|
|
"type": "account_id"
|
|
},
|
|
{
|
|
"name": "collateral_amount",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "normalized_debt_amount",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "opened_at",
|
|
"type": "u64"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "TokenDefinition",
|
|
"type": {
|
|
"kind": "enum",
|
|
"variants": [
|
|
{
|
|
"name": "Fungible",
|
|
"fields": [
|
|
{
|
|
"name": "name",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "total_supply",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "metadata_id",
|
|
"type": {
|
|
"option": "account_id"
|
|
}
|
|
},
|
|
{
|
|
"name": "authority",
|
|
"type": {
|
|
"option": "account_id"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "NonFungible",
|
|
"fields": [
|
|
{
|
|
"name": "name",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "printable_supply",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "metadata_id",
|
|
"type": "account_id"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "TokenHolding",
|
|
"type": {
|
|
"kind": "enum",
|
|
"variants": [
|
|
{
|
|
"name": "Fungible",
|
|
"fields": [
|
|
{
|
|
"name": "definition_id",
|
|
"type": "account_id"
|
|
},
|
|
{
|
|
"name": "balance",
|
|
"type": "u128"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "NftMaster",
|
|
"fields": [
|
|
{
|
|
"name": "definition_id",
|
|
"type": "account_id"
|
|
},
|
|
{
|
|
"name": "print_balance",
|
|
"type": "u128"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "NftPrintedCopy",
|
|
"fields": [
|
|
{
|
|
"name": "definition_id",
|
|
"type": "account_id"
|
|
},
|
|
{
|
|
"name": "owned",
|
|
"type": "bool"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "TokenMetadata",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "definition_id",
|
|
"type": "account_id"
|
|
},
|
|
{
|
|
"name": "standard",
|
|
"type": {
|
|
"defined": "MetadataStandard"
|
|
}
|
|
},
|
|
{
|
|
"name": "uri",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "creators",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"name": "primary_sale_date",
|
|
"type": "u64"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "PriceObservations",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "price_source_id",
|
|
"type": "account_id"
|
|
},
|
|
{
|
|
"name": "write_index",
|
|
"type": "u32"
|
|
},
|
|
{
|
|
"name": "total_entries",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "last_recorded_tick",
|
|
"type": "i32"
|
|
},
|
|
{
|
|
"name": "entries",
|
|
"type": {
|
|
"vec": {
|
|
"defined": "ObservationEntry"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "OraclePriceAccount",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "base_asset",
|
|
"type": "account_id"
|
|
},
|
|
{
|
|
"name": "quote_asset",
|
|
"type": "account_id"
|
|
},
|
|
{
|
|
"name": "price",
|
|
"type": "u128"
|
|
},
|
|
{
|
|
"name": "timestamp",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "source_id",
|
|
"type": "account_id"
|
|
},
|
|
{
|
|
"name": "confidence_interval",
|
|
"type": "u128"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "CurrentTickAccount",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "tick",
|
|
"type": "i32"
|
|
},
|
|
{
|
|
"name": "last_updated",
|
|
"type": "u64"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
],
|
|
"types": [
|
|
{
|
|
"name": "MetadataStandard",
|
|
"kind": "enum",
|
|
"variants": [
|
|
{
|
|
"name": "Simple"
|
|
},
|
|
{
|
|
"name": "Expanded"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "ObservationEntry",
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "timestamp",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "tick_cumulative",
|
|
"type": "i64"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"instruction_type": "stablecoin_core::Instruction"
|
|
}
|