8260 lines
283 KiB
JSON
8260 lines
283 KiB
JSON
{
|
||
"address": "T8HsGYv7sMk3kTnyaRqZrbRPuntYzdh12evXBkprint",
|
||
"metadata": {
|
||
"name": "printr",
|
||
"version": "1.0.0",
|
||
"spec": "0.1.0",
|
||
"description": "Printr on Solana"
|
||
},
|
||
"instructions": [
|
||
{
|
||
"name": "authorized_spend_all_quote",
|
||
"discriminator": [
|
||
55,
|
||
106,
|
||
238,
|
||
14,
|
||
152,
|
||
246,
|
||
186,
|
||
129
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "authorizor",
|
||
"docs": [
|
||
"This is a Printr PDA.",
|
||
"You can see the expected seed in the [Self::apply] static function."
|
||
],
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "authorizor_wallet",
|
||
"writable": true,
|
||
"optional": true
|
||
},
|
||
{
|
||
"name": "swap",
|
||
"accounts": [
|
||
{
|
||
"name": "payer",
|
||
"docs": [
|
||
"The user performing the swap"
|
||
],
|
||
"writable": true,
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "printr_authority",
|
||
"docs": [
|
||
"This is the account that funds the graduation process.",
|
||
""
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
114,
|
||
105,
|
||
110,
|
||
116,
|
||
114,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "input_wallet",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "output_wallet",
|
||
"docs": [
|
||
"The mint of this token account determines what's being sold, whether telecoin or quote."
|
||
],
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "telecoin_mint",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "quote_mint",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_pool_authority",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_config"
|
||
},
|
||
{
|
||
"name": "dbc_pool",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_telecoin_vault",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_quote_vault",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_event_authority"
|
||
},
|
||
{
|
||
"name": "dbc_migration_metadata",
|
||
"docs": [
|
||
"DEPRECATED: Meteora no longer uses this one.",
|
||
""
|
||
],
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_printr_partner_config"
|
||
},
|
||
{
|
||
"name": "damm_pool",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_pool_authority"
|
||
},
|
||
{
|
||
"name": "damm_telecoin_vault",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_quote_vault",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_position_nft_mint",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
114,
|
||
105,
|
||
110,
|
||
116,
|
||
114,
|
||
95,
|
||
100,
|
||
97,
|
||
109,
|
||
109,
|
||
95,
|
||
112,
|
||
111,
|
||
115,
|
||
105,
|
||
116,
|
||
105,
|
||
111,
|
||
110,
|
||
95,
|
||
110,
|
||
102,
|
||
116,
|
||
95,
|
||
109,
|
||
105,
|
||
110,
|
||
116
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "damm_position_nft_account",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_position",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_event_authority"
|
||
},
|
||
{
|
||
"name": "telecoin_token_program",
|
||
"docs": [
|
||
"We'll need this to init the mint and init the token account."
|
||
],
|
||
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
|
||
},
|
||
{
|
||
"name": "quote_token_program",
|
||
"docs": [
|
||
"We'll need this to do transfers."
|
||
]
|
||
},
|
||
{
|
||
"name": "dbc_program",
|
||
"docs": [
|
||
"The DBC program that abstracts the bonding curve logic."
|
||
],
|
||
"address": "dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN"
|
||
},
|
||
{
|
||
"name": "damm_program",
|
||
"docs": [
|
||
"The DAMM V2 program that abstracts the AMM logic."
|
||
],
|
||
"address": "cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG"
|
||
},
|
||
{
|
||
"name": "system_program",
|
||
"docs": [
|
||
"New accounts, native transfers, etc."
|
||
],
|
||
"address": "11111111111111111111111111111111"
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"args": [
|
||
{
|
||
"name": "max_price",
|
||
"type": {
|
||
"defined": {
|
||
"name": "SqrtBitshiftedPrice"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "extra_seed",
|
||
"type": "bytes"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "buyback_and_burn",
|
||
"discriminator": [
|
||
121,
|
||
156,
|
||
154,
|
||
165,
|
||
194,
|
||
86,
|
||
180,
|
||
130
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "payer",
|
||
"writable": true,
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "printr_authority",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
114,
|
||
105,
|
||
110,
|
||
116,
|
||
114,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "payer_quote_wallet",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "buyback_telecoin_wallet",
|
||
"docs": [
|
||
"Owned by printr_authority (PDA)."
|
||
],
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "telecoin_mint",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "quote_mint",
|
||
"docs": [
|
||
"UncheckedAccount to avoid self-CPI exit handler corruption."
|
||
],
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_pool_authority",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_config"
|
||
},
|
||
{
|
||
"name": "dbc_pool",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_telecoin_vault",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_quote_vault",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_event_authority"
|
||
},
|
||
{
|
||
"name": "dbc_migration_metadata",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_printr_partner_config"
|
||
},
|
||
{
|
||
"name": "damm_pool",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_pool_authority"
|
||
},
|
||
{
|
||
"name": "damm_telecoin_vault",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_quote_vault",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_position_nft_mint",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_position_nft_account",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_position",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_event_authority"
|
||
},
|
||
{
|
||
"name": "telecoin_token_program",
|
||
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
|
||
},
|
||
{
|
||
"name": "quote_token_program"
|
||
},
|
||
{
|
||
"name": "dbc_program",
|
||
"address": "dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN"
|
||
},
|
||
{
|
||
"name": "damm_program",
|
||
"address": "cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG"
|
||
},
|
||
{
|
||
"name": "system_program",
|
||
"address": "11111111111111111111111111111111"
|
||
},
|
||
{
|
||
"name": "printr_config",
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
114,
|
||
105,
|
||
110,
|
||
116,
|
||
114,
|
||
95,
|
||
99,
|
||
111,
|
||
110,
|
||
102,
|
||
105,
|
||
103
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "dev_config",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
100,
|
||
101,
|
||
118,
|
||
95,
|
||
99,
|
||
111,
|
||
110,
|
||
102,
|
||
105,
|
||
103
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "quote_fee_vault",
|
||
"docs": [
|
||
"Stores all quote fees across all telecoins."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
100,
|
||
101,
|
||
118,
|
||
115,
|
||
95,
|
||
102,
|
||
101,
|
||
101,
|
||
95,
|
||
118,
|
||
97,
|
||
117,
|
||
108,
|
||
116
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "quote_mint"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "printr_quote_fee_wallet",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "account",
|
||
"path": "printr_config.printr_fee_authority",
|
||
"account": "PrintrConfig"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "quote_token_program"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "quote_mint"
|
||
}
|
||
],
|
||
"program": {
|
||
"kind": "const",
|
||
"value": [
|
||
140,
|
||
151,
|
||
37,
|
||
143,
|
||
78,
|
||
36,
|
||
137,
|
||
241,
|
||
187,
|
||
61,
|
||
16,
|
||
41,
|
||
20,
|
||
142,
|
||
13,
|
||
131,
|
||
11,
|
||
90,
|
||
19,
|
||
153,
|
||
218,
|
||
255,
|
||
16,
|
||
132,
|
||
4,
|
||
142,
|
||
123,
|
||
216,
|
||
219,
|
||
233,
|
||
248,
|
||
89
|
||
]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "revshare1_quote_fee_wallet",
|
||
"docs": [
|
||
"If relevant then authority is checked via [CollectProtocolTransfers]"
|
||
],
|
||
"writable": true,
|
||
"optional": true
|
||
},
|
||
{
|
||
"name": "revshare2_quote_fee_wallet",
|
||
"docs": [
|
||
"If relevant then authority is checked via [CollectProtocolTransfers]"
|
||
],
|
||
"writable": true,
|
||
"optional": true
|
||
},
|
||
{
|
||
"name": "instructions_sysvar",
|
||
"address": "Sysvar1nstructions1111111111111111111111111"
|
||
},
|
||
{
|
||
"name": "event_authority",
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
95,
|
||
95,
|
||
101,
|
||
118,
|
||
101,
|
||
110,
|
||
116,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "program"
|
||
}
|
||
],
|
||
"args": [],
|
||
"returns": {
|
||
"defined": {
|
||
"name": "FeesClaimed"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "cancel_authorized_spend_all_quote",
|
||
"discriminator": [
|
||
167,
|
||
1,
|
||
184,
|
||
69,
|
||
242,
|
||
171,
|
||
240,
|
||
207
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "authorizor",
|
||
"docs": [
|
||
"This is a Printr PDA.",
|
||
"You can see the expected seed in the [Self::apply] static function."
|
||
],
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "authorizor_wallet",
|
||
"docs": [
|
||
"The SPL token account associated with the authorizor."
|
||
],
|
||
"writable": true,
|
||
"optional": true
|
||
},
|
||
{
|
||
"name": "quote_mint",
|
||
"docs": [
|
||
"The quote mint that was meant to be swapped against the telecoin token."
|
||
]
|
||
},
|
||
{
|
||
"name": "recipient",
|
||
"docs": [
|
||
"The authorizor's recipient can cancel their own swap order."
|
||
],
|
||
"writable": true,
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "recipient_wallet",
|
||
"docs": [
|
||
"The recipient's wallet if applicable."
|
||
],
|
||
"writable": true,
|
||
"optional": true
|
||
},
|
||
{
|
||
"name": "quote_token_program",
|
||
"docs": [
|
||
"Allows us to swap."
|
||
]
|
||
},
|
||
{
|
||
"name": "system_program",
|
||
"docs": [
|
||
"We need to transfer."
|
||
],
|
||
"address": "11111111111111111111111111111111"
|
||
}
|
||
],
|
||
"args": [
|
||
{
|
||
"name": "max_price",
|
||
"type": {
|
||
"defined": {
|
||
"name": "SqrtBitshiftedPrice"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_mint",
|
||
"type": "pubkey"
|
||
},
|
||
{
|
||
"name": "extra_seed",
|
||
"type": "bytes"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "claim_damm_fees",
|
||
"discriminator": [
|
||
221,
|
||
192,
|
||
167,
|
||
35,
|
||
180,
|
||
110,
|
||
107,
|
||
114
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "payer",
|
||
"writable": true,
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "printr_authority",
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
114,
|
||
105,
|
||
110,
|
||
116,
|
||
114,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "printr_config",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
114,
|
||
105,
|
||
110,
|
||
116,
|
||
114,
|
||
95,
|
||
99,
|
||
111,
|
||
110,
|
||
102,
|
||
105,
|
||
103
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_mint"
|
||
},
|
||
{
|
||
"name": "quote_mint",
|
||
"docs": [
|
||
"The quote mint is the token that will be used to buy telecoin tokens."
|
||
]
|
||
},
|
||
{
|
||
"name": "telecoin_fee_vault_authority",
|
||
"docs": [
|
||
"Authority for the telecoin fee vault.",
|
||
"For staking telecoins: the staking pool PDA.",
|
||
"For non-staking telecoins: printr_config.staking_authority.",
|
||
""
|
||
]
|
||
},
|
||
{
|
||
"name": "telecoin_fee_vault",
|
||
"docs": [
|
||
"Stores telecoin fees.",
|
||
"",
|
||
"For staking telecoins: staking pool's fee vault (authority = staking_pool).",
|
||
"",
|
||
"For non-staking telecoins: generic staking wallet (authority =",
|
||
"printr_config.staking_authority).",
|
||
""
|
||
],
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dev_config",
|
||
"docs": [
|
||
"The dev config stores information about the dev and must match the damm pool.",
|
||
"",
|
||
"We know this is the right dev config because its seed matches the telecoin mint which in",
|
||
"turn matches the dammv2 pool."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
100,
|
||
101,
|
||
118,
|
||
95,
|
||
99,
|
||
111,
|
||
110,
|
||
102,
|
||
105,
|
||
103
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "quote_fee_vault",
|
||
"docs": [
|
||
"Stores all quote fees across all telecoins."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
100,
|
||
101,
|
||
118,
|
||
115,
|
||
95,
|
||
102,
|
||
101,
|
||
101,
|
||
95,
|
||
118,
|
||
97,
|
||
117,
|
||
108,
|
||
116
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "quote_mint"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "damm_position_nft_account"
|
||
},
|
||
{
|
||
"name": "damm_position",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_pool_authority"
|
||
},
|
||
{
|
||
"name": "damm_pool",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_base_vault",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_quote_vault",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_event_authority"
|
||
},
|
||
{
|
||
"name": "telecoin_token_program",
|
||
"docs": [
|
||
"We'll need this to transfer."
|
||
],
|
||
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
|
||
},
|
||
{
|
||
"name": "associated_token_program",
|
||
"docs": [
|
||
"For the telecoin fees."
|
||
],
|
||
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
|
||
},
|
||
{
|
||
"name": "quote_token_program",
|
||
"docs": [
|
||
"We'll need this to do transfers."
|
||
]
|
||
},
|
||
{
|
||
"name": "system_program",
|
||
"docs": [
|
||
"Necessary for creating new accounts."
|
||
],
|
||
"address": "11111111111111111111111111111111"
|
||
},
|
||
{
|
||
"name": "damm_v2_program",
|
||
"docs": [
|
||
"The DAMM program that abstracts the bonding curve logic."
|
||
],
|
||
"address": "cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG"
|
||
}
|
||
],
|
||
"args": [],
|
||
"returns": {
|
||
"defined": {
|
||
"name": "FeesClaimed"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "claim_dbc_fees",
|
||
"discriminator": [
|
||
162,
|
||
222,
|
||
128,
|
||
90,
|
||
59,
|
||
115,
|
||
34,
|
||
130
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "payer",
|
||
"writable": true,
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "printr_authority",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
114,
|
||
105,
|
||
110,
|
||
116,
|
||
114,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "printr_config",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
114,
|
||
105,
|
||
110,
|
||
116,
|
||
114,
|
||
95,
|
||
99,
|
||
111,
|
||
110,
|
||
102,
|
||
105,
|
||
103
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_mint"
|
||
},
|
||
{
|
||
"name": "quote_mint",
|
||
"docs": [
|
||
"The quote mint is the token that is be used to buy telecoin tokens."
|
||
]
|
||
},
|
||
{
|
||
"name": "any_telecoin_wallet",
|
||
"docs": [
|
||
"Therefore any old telecoin wallet will do, it will not be used."
|
||
],
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "printr_intermediary_authority",
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
105,
|
||
110,
|
||
116,
|
||
101,
|
||
114,
|
||
109,
|
||
101,
|
||
100,
|
||
105,
|
||
97,
|
||
114,
|
||
121,
|
||
95,
|
||
116,
|
||
111,
|
||
107,
|
||
101,
|
||
110,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "printr_intermediary_quote_wallet",
|
||
"docs": [
|
||
"Useful only for $wSOL quote token.",
|
||
"We will collect some fee amount to support smart graduation in swap ix."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "account",
|
||
"path": "printr_intermediary_authority"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "quote_token_program"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "quote_mint"
|
||
}
|
||
],
|
||
"program": {
|
||
"kind": "const",
|
||
"value": [
|
||
140,
|
||
151,
|
||
37,
|
||
143,
|
||
78,
|
||
36,
|
||
137,
|
||
241,
|
||
187,
|
||
61,
|
||
16,
|
||
41,
|
||
20,
|
||
142,
|
||
13,
|
||
131,
|
||
11,
|
||
90,
|
||
19,
|
||
153,
|
||
218,
|
||
255,
|
||
16,
|
||
132,
|
||
4,
|
||
142,
|
||
123,
|
||
216,
|
||
219,
|
||
233,
|
||
248,
|
||
89
|
||
]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "dbc_pool_authority"
|
||
},
|
||
{
|
||
"name": "dbc_pool",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_base_vault",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_quote_vault",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_event_authority"
|
||
},
|
||
{
|
||
"name": "dev_config",
|
||
"docs": [
|
||
"The dev config stores information about the dev and must match the DBC pool.",
|
||
"",
|
||
"We know this is the right dev config because its seed matches the telecoin mint which in",
|
||
"turn matches the dbc pool."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
100,
|
||
101,
|
||
118,
|
||
95,
|
||
99,
|
||
111,
|
||
110,
|
||
102,
|
||
105,
|
||
103
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "quote_fee_vault",
|
||
"docs": [
|
||
"Shared vault per quote mint. Per-telecoin accounting is tracked in DevConfig."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
100,
|
||
101,
|
||
118,
|
||
115,
|
||
95,
|
||
102,
|
||
101,
|
||
101,
|
||
95,
|
||
118,
|
||
97,
|
||
117,
|
||
108,
|
||
116
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "quote_mint"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_token_program",
|
||
"docs": [
|
||
"We'll need this to transfer."
|
||
],
|
||
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
|
||
},
|
||
{
|
||
"name": "quote_token_program",
|
||
"docs": [
|
||
"We'll need this to do transfers."
|
||
]
|
||
},
|
||
{
|
||
"name": "associated_token_program",
|
||
"docs": [
|
||
"Used to create dev's telecoin ATA."
|
||
],
|
||
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
|
||
},
|
||
{
|
||
"name": "system_program",
|
||
"docs": [
|
||
"Necessary for creating new accounts."
|
||
],
|
||
"address": "11111111111111111111111111111111"
|
||
},
|
||
{
|
||
"name": "dbc_program",
|
||
"docs": [
|
||
"The DBC program that abstracts the bonding curve logic."
|
||
],
|
||
"address": "dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN"
|
||
}
|
||
],
|
||
"args": [],
|
||
"returns": {
|
||
"defined": {
|
||
"name": "FeesClaimed"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "claim_printr_authority_lamports",
|
||
"discriminator": [
|
||
52,
|
||
14,
|
||
140,
|
||
114,
|
||
41,
|
||
105,
|
||
0,
|
||
48
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "admin",
|
||
"writable": true,
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "printr_authority",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
114,
|
||
105,
|
||
110,
|
||
116,
|
||
114,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "system_program",
|
||
"docs": [
|
||
"Necessary for creating new accounts."
|
||
],
|
||
"address": "11111111111111111111111111111111"
|
||
}
|
||
],
|
||
"args": []
|
||
},
|
||
{
|
||
"name": "claim_staking_rewards",
|
||
"discriminator": [
|
||
229,
|
||
141,
|
||
170,
|
||
69,
|
||
111,
|
||
94,
|
||
6,
|
||
72
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "payer",
|
||
"docs": [
|
||
"Anyone can call this instruction."
|
||
],
|
||
"writable": true,
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "position_owner",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "printr_config",
|
||
"docs": [
|
||
"Printr config for authorizing transfers."
|
||
],
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
114,
|
||
105,
|
||
110,
|
||
116,
|
||
114,
|
||
95,
|
||
99,
|
||
111,
|
||
110,
|
||
102,
|
||
105,
|
||
103
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_mint",
|
||
"docs": [
|
||
"The telecoin mint."
|
||
]
|
||
},
|
||
{
|
||
"name": "quote_mint",
|
||
"docs": [
|
||
"The quote token mint."
|
||
]
|
||
},
|
||
{
|
||
"name": "staking_pool",
|
||
"docs": [
|
||
"The staking pool for this telecoin."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
115,
|
||
116,
|
||
97,
|
||
107,
|
||
105,
|
||
110,
|
||
103,
|
||
95,
|
||
112,
|
||
111,
|
||
111,
|
||
108
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "stake_position",
|
||
"docs": [
|
||
"The stake position being claimed from."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
115,
|
||
116,
|
||
97,
|
||
107,
|
||
101,
|
||
95,
|
||
112,
|
||
111,
|
||
115,
|
||
105,
|
||
116,
|
||
105,
|
||
111,
|
||
110
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "position_owner"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "stake_position.position_nonce",
|
||
"account": "StakePosition"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "owner_quote_account",
|
||
"docs": [
|
||
"Owner's quote token account."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "account",
|
||
"path": "position_owner"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "quote_token_program"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "quote_mint"
|
||
}
|
||
],
|
||
"program": {
|
||
"kind": "const",
|
||
"value": [
|
||
140,
|
||
151,
|
||
37,
|
||
143,
|
||
78,
|
||
36,
|
||
137,
|
||
241,
|
||
187,
|
||
61,
|
||
16,
|
||
41,
|
||
20,
|
||
142,
|
||
13,
|
||
131,
|
||
11,
|
||
90,
|
||
19,
|
||
153,
|
||
218,
|
||
255,
|
||
16,
|
||
132,
|
||
4,
|
||
142,
|
||
123,
|
||
216,
|
||
219,
|
||
233,
|
||
248,
|
||
89
|
||
]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "owner_telecoin_account",
|
||
"docs": [
|
||
"Owner's telecoin token account."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "account",
|
||
"path": "position_owner"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_token_program"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
],
|
||
"program": {
|
||
"kind": "const",
|
||
"value": [
|
||
140,
|
||
151,
|
||
37,
|
||
143,
|
||
78,
|
||
36,
|
||
137,
|
||
241,
|
||
187,
|
||
61,
|
||
16,
|
||
41,
|
||
20,
|
||
142,
|
||
13,
|
||
131,
|
||
11,
|
||
90,
|
||
19,
|
||
153,
|
||
218,
|
||
255,
|
||
16,
|
||
132,
|
||
4,
|
||
142,
|
||
123,
|
||
216,
|
||
219,
|
||
233,
|
||
248,
|
||
89
|
||
]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "quote_fee_vault",
|
||
"docs": [
|
||
"Stores all quote fees across Printr so be gentle with it."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
100,
|
||
101,
|
||
118,
|
||
115,
|
||
95,
|
||
102,
|
||
101,
|
||
101,
|
||
95,
|
||
118,
|
||
97,
|
||
117,
|
||
108,
|
||
116
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "quote_mint"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "pool_telecoin_vault",
|
||
"docs": [
|
||
"Pool's telecoin vault.",
|
||
"Contains both trading fees and staked telecoin."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "account",
|
||
"path": "staking_pool"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_token_program"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
],
|
||
"program": {
|
||
"kind": "const",
|
||
"value": [
|
||
140,
|
||
151,
|
||
37,
|
||
143,
|
||
78,
|
||
36,
|
||
137,
|
||
241,
|
||
187,
|
||
61,
|
||
16,
|
||
41,
|
||
20,
|
||
142,
|
||
13,
|
||
131,
|
||
11,
|
||
90,
|
||
19,
|
||
153,
|
||
218,
|
||
255,
|
||
16,
|
||
132,
|
||
4,
|
||
142,
|
||
123,
|
||
216,
|
||
219,
|
||
233,
|
||
248,
|
||
89
|
||
]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_token_program",
|
||
"docs": [
|
||
"Checks the account owner."
|
||
],
|
||
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
|
||
},
|
||
{
|
||
"name": "quote_token_program",
|
||
"docs": [
|
||
"We'll need this to do transfers."
|
||
]
|
||
},
|
||
{
|
||
"name": "associated_token_program",
|
||
"docs": [
|
||
"ATA boy"
|
||
],
|
||
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
|
||
},
|
||
{
|
||
"name": "system_program",
|
||
"docs": [
|
||
"Needed because `owner_quote_account` and `owner_telecoin_account` are `init_if_needed`."
|
||
],
|
||
"address": "11111111111111111111111111111111"
|
||
},
|
||
{
|
||
"name": "event_authority",
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
95,
|
||
95,
|
||
101,
|
||
118,
|
||
101,
|
||
110,
|
||
116,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "program"
|
||
}
|
||
],
|
||
"args": []
|
||
},
|
||
{
|
||
"name": "close_stake_position",
|
||
"discriminator": [
|
||
8,
|
||
63,
|
||
74,
|
||
143,
|
||
105,
|
||
42,
|
||
28,
|
||
64
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "position_owner",
|
||
"docs": [
|
||
"Only the position owner can close the position.",
|
||
"Receives the rent refund from the closed position account."
|
||
],
|
||
"writable": true,
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "telecoin_mint",
|
||
"docs": [
|
||
"The telecoin mint."
|
||
]
|
||
},
|
||
{
|
||
"name": "staking_pool",
|
||
"docs": [
|
||
"The staking pool for this telecoin."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
115,
|
||
116,
|
||
97,
|
||
107,
|
||
105,
|
||
110,
|
||
103,
|
||
95,
|
||
112,
|
||
111,
|
||
111,
|
||
108
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "stake_position",
|
||
"docs": [
|
||
"The stake position being closed. Rent is refunded to `position_owner`."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
115,
|
||
116,
|
||
97,
|
||
107,
|
||
101,
|
||
95,
|
||
112,
|
||
111,
|
||
115,
|
||
105,
|
||
116,
|
||
105,
|
||
111,
|
||
110
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "position_owner"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "stake_position.position_nonce",
|
||
"account": "StakePosition"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "owner_telecoin_account",
|
||
"docs": [
|
||
"Owner's telecoin token account. Receives the staked telecoin back."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "account",
|
||
"path": "position_owner"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_token_program"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
],
|
||
"program": {
|
||
"kind": "const",
|
||
"value": [
|
||
140,
|
||
151,
|
||
37,
|
||
143,
|
||
78,
|
||
36,
|
||
137,
|
||
241,
|
||
187,
|
||
61,
|
||
16,
|
||
41,
|
||
20,
|
||
142,
|
||
13,
|
||
131,
|
||
11,
|
||
90,
|
||
19,
|
||
153,
|
||
218,
|
||
255,
|
||
16,
|
||
132,
|
||
4,
|
||
142,
|
||
123,
|
||
216,
|
||
219,
|
||
233,
|
||
248,
|
||
89
|
||
]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "pool_telecoin_vault",
|
||
"docs": [
|
||
"Pool's telecoin vault holding the staked telecoin."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "account",
|
||
"path": "staking_pool"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_token_program"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
],
|
||
"program": {
|
||
"kind": "const",
|
||
"value": [
|
||
140,
|
||
151,
|
||
37,
|
||
143,
|
||
78,
|
||
36,
|
||
137,
|
||
241,
|
||
187,
|
||
61,
|
||
16,
|
||
41,
|
||
20,
|
||
142,
|
||
13,
|
||
131,
|
||
11,
|
||
90,
|
||
19,
|
||
153,
|
||
218,
|
||
255,
|
||
16,
|
||
132,
|
||
4,
|
||
142,
|
||
123,
|
||
216,
|
||
219,
|
||
233,
|
||
248,
|
||
89
|
||
]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_token_program",
|
||
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
|
||
},
|
||
{
|
||
"name": "associated_token_program",
|
||
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
|
||
},
|
||
{
|
||
"name": "system_program",
|
||
"docs": [
|
||
"Needed for `init_if_needed` on `owner_telecoin_account` and for `close` on the position."
|
||
],
|
||
"address": "11111111111111111111111111111111"
|
||
},
|
||
{
|
||
"name": "event_authority",
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
95,
|
||
95,
|
||
101,
|
||
118,
|
||
101,
|
||
110,
|
||
116,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "program"
|
||
}
|
||
],
|
||
"args": []
|
||
},
|
||
{
|
||
"name": "create_printr_config",
|
||
"discriminator": [
|
||
160,
|
||
191,
|
||
66,
|
||
212,
|
||
5,
|
||
106,
|
||
20,
|
||
215
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "admin",
|
||
"writable": true,
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "printr_fee_authority"
|
||
},
|
||
{
|
||
"name": "questflow_ai_fee_authority"
|
||
},
|
||
{
|
||
"name": "printr_staking_authority"
|
||
},
|
||
{
|
||
"name": "printr_config",
|
||
"docs": [
|
||
"We use `init_if_needed` purposefully.",
|
||
"Call this ix again to update the config."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
114,
|
||
105,
|
||
110,
|
||
116,
|
||
114,
|
||
95,
|
||
99,
|
||
111,
|
||
110,
|
||
102,
|
||
105,
|
||
103
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "system_program",
|
||
"docs": [
|
||
"Necessary for creating new accounts."
|
||
],
|
||
"address": "11111111111111111111111111111111"
|
||
}
|
||
],
|
||
"args": []
|
||
},
|
||
{
|
||
"name": "create_stake_position",
|
||
"discriminator": [
|
||
92,
|
||
168,
|
||
96,
|
||
133,
|
||
102,
|
||
121,
|
||
86,
|
||
138
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "payer",
|
||
"docs": [
|
||
"We can create positions on behalf of others."
|
||
],
|
||
"writable": true,
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "position_owner",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "printr_authority",
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
114,
|
||
105,
|
||
110,
|
||
116,
|
||
114,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "dev_config",
|
||
"docs": [
|
||
"Dev config must indicate this telecoin uses staking for fee distribution."
|
||
],
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
100,
|
||
101,
|
||
118,
|
||
95,
|
||
99,
|
||
111,
|
||
110,
|
||
102,
|
||
105,
|
||
103
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "staking_pool",
|
||
"docs": [
|
||
"The staking pool for this telecoin.",
|
||
"Will be lazily initialized if this is the first time anyone stakes this telecoin."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
115,
|
||
116,
|
||
97,
|
||
107,
|
||
105,
|
||
110,
|
||
103,
|
||
95,
|
||
112,
|
||
111,
|
||
111,
|
||
108
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "stake_position",
|
||
"docs": [
|
||
"The stake position being created.",
|
||
"The ID can be reused, just cannot be used at the same time as another position."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
115,
|
||
116,
|
||
97,
|
||
107,
|
||
101,
|
||
95,
|
||
112,
|
||
111,
|
||
115,
|
||
105,
|
||
116,
|
||
105,
|
||
111,
|
||
110
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "position_owner"
|
||
},
|
||
{
|
||
"kind": "arg",
|
||
"path": "position_nonce"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "payer_telecoin_account",
|
||
"docs": [
|
||
"Payer doesn't necessarily equal to the user but most likely will."
|
||
],
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "pool_telecoin_vault",
|
||
"docs": [
|
||
"Staking pool's telecoin vault."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "account",
|
||
"path": "staking_pool"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_token_program"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
],
|
||
"program": {
|
||
"kind": "const",
|
||
"value": [
|
||
140,
|
||
151,
|
||
37,
|
||
143,
|
||
78,
|
||
36,
|
||
137,
|
||
241,
|
||
187,
|
||
61,
|
||
16,
|
||
41,
|
||
20,
|
||
142,
|
||
13,
|
||
131,
|
||
11,
|
||
90,
|
||
19,
|
||
153,
|
||
218,
|
||
255,
|
||
16,
|
||
132,
|
||
4,
|
||
142,
|
||
123,
|
||
216,
|
||
219,
|
||
233,
|
||
248,
|
||
89
|
||
]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_mint",
|
||
"docs": [
|
||
"The telecoin mint."
|
||
]
|
||
},
|
||
{
|
||
"name": "telecoin_token_program",
|
||
"docs": [
|
||
"Checks the account owner."
|
||
],
|
||
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
|
||
},
|
||
{
|
||
"name": "associated_token_program",
|
||
"docs": [
|
||
"Related to the telecoin vault ATA."
|
||
],
|
||
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
|
||
},
|
||
{
|
||
"name": "system_program",
|
||
"address": "11111111111111111111111111111111"
|
||
},
|
||
{
|
||
"name": "event_authority",
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
95,
|
||
95,
|
||
101,
|
||
118,
|
||
101,
|
||
110,
|
||
116,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "program"
|
||
}
|
||
],
|
||
"args": [
|
||
{
|
||
"name": "position_nonce",
|
||
"type": "u32"
|
||
},
|
||
{
|
||
"name": "to_stake",
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "lock_period",
|
||
"type": {
|
||
"defined": {
|
||
"name": "LockPeriod"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "deploy_telecoin",
|
||
"discriminator": [
|
||
4,
|
||
248,
|
||
20,
|
||
1,
|
||
125,
|
||
63,
|
||
15,
|
||
0
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "payer",
|
||
"docs": [
|
||
"Creating a launch is a permission-less operation.",
|
||
"This could be a Printr user or a BE."
|
||
],
|
||
"writable": true,
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "printr_authority",
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
114,
|
||
105,
|
||
110,
|
||
116,
|
||
114,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "dev_config",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
100,
|
||
101,
|
||
118,
|
||
95,
|
||
99,
|
||
111,
|
||
110,
|
||
102,
|
||
105,
|
||
103
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_mint",
|
||
"docs": [
|
||
"This is the telecoin mint which we initialize according to the telecoin params."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
114,
|
||
105,
|
||
110,
|
||
116,
|
||
114,
|
||
95,
|
||
116,
|
||
101,
|
||
108,
|
||
101,
|
||
99,
|
||
111,
|
||
105,
|
||
110,
|
||
95,
|
||
109,
|
||
105,
|
||
110,
|
||
116
|
||
]
|
||
},
|
||
{
|
||
"kind": "arg",
|
||
"path": "telecoin_params"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_token_program",
|
||
"docs": [
|
||
"We'll need this to init the mint."
|
||
],
|
||
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
|
||
},
|
||
{
|
||
"name": "system_program",
|
||
"docs": [
|
||
"Necessary for creating new accounts."
|
||
],
|
||
"address": "11111111111111111111111111111111"
|
||
},
|
||
{
|
||
"name": "event_authority",
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
95,
|
||
95,
|
||
101,
|
||
118,
|
||
101,
|
||
110,
|
||
116,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "program"
|
||
}
|
||
],
|
||
"args": [
|
||
{
|
||
"name": "telecoin_params_compact",
|
||
"type": {
|
||
"defined": {
|
||
"name": "TelecoinParamsCompact"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "deploy_telecoin2",
|
||
"discriminator": [
|
||
37,
|
||
155,
|
||
54,
|
||
236,
|
||
186,
|
||
225,
|
||
201,
|
||
137
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "payer",
|
||
"docs": [
|
||
"Creating a launch is a permission-less operation.",
|
||
"This could be a Printr user or a BE."
|
||
],
|
||
"writable": true,
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "printr_authority",
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
114,
|
||
105,
|
||
110,
|
||
116,
|
||
114,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "dev_config",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
100,
|
||
101,
|
||
118,
|
||
95,
|
||
99,
|
||
111,
|
||
110,
|
||
102,
|
||
105,
|
||
103
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_mint",
|
||
"docs": [
|
||
"This is the telecoin mint which we initialize according to the telecoin params."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
114,
|
||
105,
|
||
110,
|
||
116,
|
||
114,
|
||
95,
|
||
116,
|
||
101,
|
||
108,
|
||
101,
|
||
99,
|
||
111,
|
||
105,
|
||
110,
|
||
95,
|
||
109,
|
||
105,
|
||
110,
|
||
116
|
||
]
|
||
},
|
||
{
|
||
"kind": "arg",
|
||
"path": "telecoin_params"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_token_program",
|
||
"docs": [
|
||
"We'll need this to init the mint."
|
||
],
|
||
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
|
||
},
|
||
{
|
||
"name": "system_program",
|
||
"docs": [
|
||
"Necessary for creating new accounts."
|
||
],
|
||
"address": "11111111111111111111111111111111"
|
||
},
|
||
{
|
||
"name": "event_authority",
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
95,
|
||
95,
|
||
101,
|
||
118,
|
||
101,
|
||
110,
|
||
116,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "program"
|
||
}
|
||
],
|
||
"args": [
|
||
{
|
||
"name": "telecoin_params",
|
||
"type": {
|
||
"defined": {
|
||
"name": "TelecoinParams"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "distribute_telecoin_quote_fees",
|
||
"discriminator": [
|
||
31,
|
||
197,
|
||
88,
|
||
239,
|
||
123,
|
||
165,
|
||
197,
|
||
208
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "payer",
|
||
"writable": true,
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "printr_authority",
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
114,
|
||
105,
|
||
110,
|
||
116,
|
||
114,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "printr_config",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
114,
|
||
105,
|
||
110,
|
||
116,
|
||
114,
|
||
95,
|
||
99,
|
||
111,
|
||
110,
|
||
102,
|
||
105,
|
||
103
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "quote_mint",
|
||
"docs": [
|
||
"The quote mint is the token that is be used to buy telecoin tokens."
|
||
]
|
||
},
|
||
{
|
||
"name": "telecoin_mint"
|
||
},
|
||
{
|
||
"name": "quote_fee_vault",
|
||
"docs": [
|
||
"Stores all quote fees across all telecoins.",
|
||
"How much can we claim now is tracked in the dev config."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
100,
|
||
101,
|
||
118,
|
||
115,
|
||
95,
|
||
102,
|
||
101,
|
||
101,
|
||
95,
|
||
118,
|
||
97,
|
||
117,
|
||
108,
|
||
116
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "quote_mint"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "dev_config",
|
||
"docs": [
|
||
"The dev config stores information about how much a dev can claim.",
|
||
"The existence of this account implies that the telecoin mint was created by Printr."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
100,
|
||
101,
|
||
118,
|
||
95,
|
||
99,
|
||
111,
|
||
110,
|
||
102,
|
||
105,
|
||
103
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "dev"
|
||
},
|
||
{
|
||
"name": "dev_quote_wallet",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "account",
|
||
"path": "dev"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "quote_token_program"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "quote_mint"
|
||
}
|
||
],
|
||
"program": {
|
||
"kind": "const",
|
||
"value": [
|
||
140,
|
||
151,
|
||
37,
|
||
143,
|
||
78,
|
||
36,
|
||
137,
|
||
241,
|
||
187,
|
||
61,
|
||
16,
|
||
41,
|
||
20,
|
||
142,
|
||
13,
|
||
131,
|
||
11,
|
||
90,
|
||
19,
|
||
153,
|
||
218,
|
||
255,
|
||
16,
|
||
132,
|
||
4,
|
||
142,
|
||
123,
|
||
216,
|
||
219,
|
||
233,
|
||
248,
|
||
89
|
||
]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "printr_quote_fee_wallet",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "account",
|
||
"path": "printr_config.printr_fee_authority",
|
||
"account": "PrintrConfig"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "quote_token_program"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "quote_mint"
|
||
}
|
||
],
|
||
"program": {
|
||
"kind": "const",
|
||
"value": [
|
||
140,
|
||
151,
|
||
37,
|
||
143,
|
||
78,
|
||
36,
|
||
137,
|
||
241,
|
||
187,
|
||
61,
|
||
16,
|
||
41,
|
||
20,
|
||
142,
|
||
13,
|
||
131,
|
||
11,
|
||
90,
|
||
19,
|
||
153,
|
||
218,
|
||
255,
|
||
16,
|
||
132,
|
||
4,
|
||
142,
|
||
123,
|
||
216,
|
||
219,
|
||
233,
|
||
248,
|
||
89
|
||
]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "revshare1_quote_fee_wallet",
|
||
"docs": [
|
||
"If relevant then authority is checked via [CollectProtocolTransfers]"
|
||
],
|
||
"writable": true,
|
||
"optional": true
|
||
},
|
||
{
|
||
"name": "revshare2_quote_fee_wallet",
|
||
"docs": [
|
||
"If relevant then authority is checked via [CollectProtocolTransfers]"
|
||
],
|
||
"writable": true,
|
||
"optional": true
|
||
},
|
||
{
|
||
"name": "dbc_pool"
|
||
},
|
||
{
|
||
"name": "dbc_config"
|
||
},
|
||
{
|
||
"name": "quote_token_program",
|
||
"docs": [
|
||
"We'll need this to do transfers."
|
||
]
|
||
},
|
||
{
|
||
"name": "associated_token_program",
|
||
"docs": [
|
||
"Used to create dev's quote ATA."
|
||
],
|
||
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
|
||
},
|
||
{
|
||
"name": "system_program",
|
||
"docs": [
|
||
"Necessary for creating new accounts."
|
||
],
|
||
"address": "11111111111111111111111111111111"
|
||
}
|
||
],
|
||
"args": []
|
||
},
|
||
{
|
||
"name": "estimate_swap",
|
||
"discriminator": [
|
||
219,
|
||
196,
|
||
183,
|
||
82,
|
||
59,
|
||
37,
|
||
166,
|
||
59
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "dbc_config"
|
||
},
|
||
{
|
||
"name": "dbc_pool"
|
||
},
|
||
{
|
||
"name": "damm_pool",
|
||
"docs": [
|
||
"Might be uninitialized if the pool is not yet graduated."
|
||
]
|
||
}
|
||
],
|
||
"args": [
|
||
{
|
||
"name": "params",
|
||
"type": {
|
||
"defined": {
|
||
"name": "SwapIntent"
|
||
}
|
||
}
|
||
}
|
||
],
|
||
"returns": {
|
||
"defined": {
|
||
"name": "EstimateSwapOutput"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "estimate_teleport_with_lz",
|
||
"discriminator": [
|
||
11,
|
||
141,
|
||
166,
|
||
118,
|
||
153,
|
||
255,
|
||
62,
|
||
132
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "peer"
|
||
}
|
||
],
|
||
"args": [
|
||
{
|
||
"name": "params",
|
||
"type": {
|
||
"defined": {
|
||
"name": "EstimateTeleportWithLzParams"
|
||
}
|
||
}
|
||
}
|
||
],
|
||
"returns": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "lz_receive",
|
||
"discriminator": [
|
||
8,
|
||
179,
|
||
120,
|
||
109,
|
||
33,
|
||
118,
|
||
189,
|
||
80
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "payer",
|
||
"docs": [
|
||
"The LZ executor."
|
||
],
|
||
"writable": true,
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "peer",
|
||
"docs": [
|
||
"Represents where did the message come from."
|
||
]
|
||
},
|
||
{
|
||
"name": "telecoin_teleport_config",
|
||
"docs": [
|
||
"If this account does not exist then the provided peer must be set as a default peer.",
|
||
"Otherwise we parse this account's configuration and assert it's been upheld."
|
||
]
|
||
},
|
||
{
|
||
"name": "printr_authority",
|
||
"docs": [
|
||
"Global Printr telecoin mint authority"
|
||
],
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
114,
|
||
105,
|
||
110,
|
||
116,
|
||
114,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_mint",
|
||
"docs": [
|
||
"We'll mint these tokens.",
|
||
""
|
||
],
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "recipient"
|
||
},
|
||
{
|
||
"name": "recipient_destination_telecoin_wallet",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "account",
|
||
"path": "recipient"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_token_program"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
],
|
||
"program": {
|
||
"kind": "const",
|
||
"value": [
|
||
140,
|
||
151,
|
||
37,
|
||
143,
|
||
78,
|
||
36,
|
||
137,
|
||
241,
|
||
187,
|
||
61,
|
||
16,
|
||
41,
|
||
20,
|
||
142,
|
||
13,
|
||
131,
|
||
11,
|
||
90,
|
||
19,
|
||
153,
|
||
218,
|
||
255,
|
||
16,
|
||
132,
|
||
4,
|
||
142,
|
||
123,
|
||
216,
|
||
219,
|
||
233,
|
||
248,
|
||
89
|
||
]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_token_program",
|
||
"docs": [
|
||
"Telecoin mint is always token program 2022."
|
||
],
|
||
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
|
||
},
|
||
{
|
||
"name": "associated_token_program",
|
||
"docs": [
|
||
"In case we need to create the ATA"
|
||
],
|
||
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
|
||
},
|
||
{
|
||
"name": "system_program",
|
||
"docs": [
|
||
"In case we need to create the ATA"
|
||
],
|
||
"address": "11111111111111111111111111111111"
|
||
}
|
||
],
|
||
"args": [
|
||
{
|
||
"name": "params",
|
||
"type": {
|
||
"defined": {
|
||
"name": "LzReceiveParams"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "lz_receive_types",
|
||
"discriminator": [
|
||
221,
|
||
17,
|
||
246,
|
||
159,
|
||
248,
|
||
128,
|
||
31,
|
||
96
|
||
],
|
||
"accounts": [],
|
||
"args": [
|
||
{
|
||
"name": "params",
|
||
"type": {
|
||
"defined": {
|
||
"name": "LzReceiveParams"
|
||
}
|
||
}
|
||
}
|
||
],
|
||
"returns": {
|
||
"vec": {
|
||
"defined": {
|
||
"name": "LzAccount"
|
||
}
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "lz_set_peer",
|
||
"discriminator": [
|
||
199,
|
||
123,
|
||
81,
|
||
116,
|
||
208,
|
||
49,
|
||
213,
|
||
232
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "admin",
|
||
"docs": [
|
||
"Printr staff."
|
||
],
|
||
"writable": true,
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "peer",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
101,
|
||
101,
|
||
114
|
||
]
|
||
},
|
||
{
|
||
"kind": "arg",
|
||
"path": "peer_address"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "lz_oapp_registry",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
79,
|
||
65,
|
||
112,
|
||
112
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "peer"
|
||
}
|
||
],
|
||
"program": {
|
||
"kind": "account",
|
||
"path": "endpoint_program"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "endpoint_emit_cpi_event_authority",
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
95,
|
||
95,
|
||
101,
|
||
118,
|
||
101,
|
||
110,
|
||
116,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
],
|
||
"program": {
|
||
"kind": "account",
|
||
"path": "endpoint_program"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "endpoint_program",
|
||
"address": "76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6"
|
||
},
|
||
{
|
||
"name": "system_program",
|
||
"address": "11111111111111111111111111111111"
|
||
}
|
||
],
|
||
"args": [
|
||
{
|
||
"name": "peer_address",
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
32
|
||
]
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "print_telecoin",
|
||
"discriminator": [
|
||
214,
|
||
30,
|
||
4,
|
||
102,
|
||
207,
|
||
73,
|
||
108,
|
||
35
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "payer",
|
||
"docs": [
|
||
"Creating a launch is a permission-less operation.",
|
||
"This could be a Printr user or a BE."
|
||
],
|
||
"writable": true,
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "printr_authority",
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
114,
|
||
105,
|
||
110,
|
||
116,
|
||
114,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "dev_config",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
100,
|
||
101,
|
||
118,
|
||
95,
|
||
99,
|
||
111,
|
||
110,
|
||
102,
|
||
105,
|
||
103
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_mint",
|
||
"docs": [
|
||
"This is the telecoin mint which we initialize according to the telecoin params in the",
|
||
"Meteora CPI.",
|
||
""
|
||
],
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "quote_mint",
|
||
"docs": [
|
||
"The quote mint is the token that will be used to buy telecoin tokens."
|
||
]
|
||
},
|
||
{
|
||
"name": "initial_buy_authority",
|
||
"docs": [
|
||
"When a telecoin is printed we perform an initial buy on behalf of the dev.",
|
||
"",
|
||
"There are three options how the initial buy can happen:",
|
||
"1. No deposit PDA",
|
||
"2. Deposit PDA of native $SOL",
|
||
"3. Deposit PDA with an associated token account.",
|
||
"",
|
||
"See `DepositPda` enum for more details.",
|
||
""
|
||
],
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "initial_buy_source",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dev_on_solana",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dev_destination_telecoin_wallet",
|
||
"docs": [
|
||
"Associated token account cannot exist because we've just created the telecoin mint.",
|
||
"Will not be initialized if initial spend is zero.",
|
||
""
|
||
],
|
||
"writable": true,
|
||
"optional": true
|
||
},
|
||
{
|
||
"name": "dbc_config",
|
||
"docs": [
|
||
"We'll init the config first.",
|
||
""
|
||
],
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_pool_authority"
|
||
},
|
||
{
|
||
"name": "dbc_pool",
|
||
"docs": [
|
||
"The bonding curve state, initialized after the config.",
|
||
""
|
||
],
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_telecoin_vault",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_quote_vault",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_event_authority"
|
||
},
|
||
{
|
||
"name": "dbc_migration_metadata",
|
||
"docs": [
|
||
"DEPRECATED: Meteora no longer uses this one.",
|
||
"",
|
||
"If provided then we create a migration metadata account for the DBC pool.",
|
||
""
|
||
],
|
||
"writable": true,
|
||
"optional": true
|
||
},
|
||
{
|
||
"name": "telecoin_token_program",
|
||
"docs": [
|
||
"We'll need this to init the mint and init the token account."
|
||
],
|
||
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
|
||
},
|
||
{
|
||
"name": "quote_token_program",
|
||
"docs": [
|
||
"We'll need this to do transfers."
|
||
]
|
||
},
|
||
{
|
||
"name": "associated_token_program",
|
||
"docs": [
|
||
"Used to create dev's telecoin ATA."
|
||
],
|
||
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
|
||
},
|
||
{
|
||
"name": "system_program",
|
||
"docs": [
|
||
"Necessary for creating new accounts."
|
||
],
|
||
"address": "11111111111111111111111111111111"
|
||
},
|
||
{
|
||
"name": "dbc_program",
|
||
"docs": [
|
||
"The DBC program that abstracts the bonding curve logic."
|
||
],
|
||
"address": "dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN"
|
||
},
|
||
{
|
||
"name": "event_authority",
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
95,
|
||
95,
|
||
101,
|
||
118,
|
||
101,
|
||
110,
|
||
116,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "program"
|
||
}
|
||
],
|
||
"args": [
|
||
{
|
||
"name": "telecoin_params_compact",
|
||
"type": {
|
||
"defined": {
|
||
"name": "TelecoinParamsCompact"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "print_telecoin2",
|
||
"discriminator": [
|
||
166,
|
||
60,
|
||
38,
|
||
43,
|
||
238,
|
||
32,
|
||
2,
|
||
160
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "payer",
|
||
"docs": [
|
||
"Creating a launch is a permission-less operation.",
|
||
"This could be a Printr user or a BE."
|
||
],
|
||
"writable": true,
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "printr_authority",
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
114,
|
||
105,
|
||
110,
|
||
116,
|
||
114,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "dev_config",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
100,
|
||
101,
|
||
118,
|
||
95,
|
||
99,
|
||
111,
|
||
110,
|
||
102,
|
||
105,
|
||
103
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_mint",
|
||
"docs": [
|
||
"This is the telecoin mint which we initialize according to the telecoin params in the",
|
||
"Meteora CPI.",
|
||
""
|
||
],
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "quote_mint",
|
||
"docs": [
|
||
"The quote mint is the token that will be used to buy telecoin tokens."
|
||
]
|
||
},
|
||
{
|
||
"name": "initial_buy_authority",
|
||
"docs": [
|
||
"When a telecoin is printed we perform an initial buy on behalf of the dev.",
|
||
"",
|
||
"There are three options how the initial buy can happen:",
|
||
"1. No deposit PDA",
|
||
"2. Deposit PDA of native $SOL",
|
||
"3. Deposit PDA with an associated token account.",
|
||
"",
|
||
"See `DepositPda` enum for more details.",
|
||
""
|
||
],
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "initial_buy_source",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dev_on_solana",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dev_destination_telecoin_wallet",
|
||
"docs": [
|
||
"Associated token account cannot exist because we've just created the telecoin mint.",
|
||
"Will not be initialized if initial spend is zero.",
|
||
""
|
||
],
|
||
"writable": true,
|
||
"optional": true
|
||
},
|
||
{
|
||
"name": "dbc_config",
|
||
"docs": [
|
||
"We'll init the config first.",
|
||
""
|
||
],
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_pool_authority"
|
||
},
|
||
{
|
||
"name": "dbc_pool",
|
||
"docs": [
|
||
"The bonding curve state, initialized after the config.",
|
||
""
|
||
],
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_telecoin_vault",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_quote_vault",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_event_authority"
|
||
},
|
||
{
|
||
"name": "dbc_migration_metadata",
|
||
"docs": [
|
||
"DEPRECATED: Meteora no longer uses this one.",
|
||
"",
|
||
"If provided then we create a migration metadata account for the DBC pool.",
|
||
""
|
||
],
|
||
"writable": true,
|
||
"optional": true
|
||
},
|
||
{
|
||
"name": "telecoin_token_program",
|
||
"docs": [
|
||
"We'll need this to init the mint and init the token account."
|
||
],
|
||
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
|
||
},
|
||
{
|
||
"name": "quote_token_program",
|
||
"docs": [
|
||
"We'll need this to do transfers."
|
||
]
|
||
},
|
||
{
|
||
"name": "associated_token_program",
|
||
"docs": [
|
||
"Used to create dev's telecoin ATA."
|
||
],
|
||
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
|
||
},
|
||
{
|
||
"name": "system_program",
|
||
"docs": [
|
||
"Necessary for creating new accounts."
|
||
],
|
||
"address": "11111111111111111111111111111111"
|
||
},
|
||
{
|
||
"name": "dbc_program",
|
||
"docs": [
|
||
"The DBC program that abstracts the bonding curve logic."
|
||
],
|
||
"address": "dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN"
|
||
},
|
||
{
|
||
"name": "event_authority",
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
95,
|
||
95,
|
||
101,
|
||
118,
|
||
101,
|
||
110,
|
||
116,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "program"
|
||
}
|
||
],
|
||
"args": [
|
||
{
|
||
"name": "telecoin_params",
|
||
"type": {
|
||
"defined": {
|
||
"name": "TelecoinParams"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "refresh_staking2",
|
||
"discriminator": [
|
||
36,
|
||
197,
|
||
195,
|
||
27,
|
||
8,
|
||
224,
|
||
118,
|
||
27
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "payer",
|
||
"writable": true,
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "printr_config",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
114,
|
||
105,
|
||
110,
|
||
116,
|
||
114,
|
||
95,
|
||
99,
|
||
111,
|
||
110,
|
||
102,
|
||
105,
|
||
103
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "printr_quote_fee_wallet",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "account",
|
||
"path": "printr_config.printr_fee_authority",
|
||
"account": "PrintrConfig"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "quote_token_program"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "quote_mint"
|
||
}
|
||
],
|
||
"program": {
|
||
"kind": "const",
|
||
"value": [
|
||
140,
|
||
151,
|
||
37,
|
||
143,
|
||
78,
|
||
36,
|
||
137,
|
||
241,
|
||
187,
|
||
61,
|
||
16,
|
||
41,
|
||
20,
|
||
142,
|
||
13,
|
||
131,
|
||
11,
|
||
90,
|
||
19,
|
||
153,
|
||
218,
|
||
255,
|
||
16,
|
||
132,
|
||
4,
|
||
142,
|
||
123,
|
||
216,
|
||
219,
|
||
233,
|
||
248,
|
||
89
|
||
]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "quote_fee_vault",
|
||
"docs": [
|
||
"Stores all quote fees across Printr."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
100,
|
||
101,
|
||
118,
|
||
115,
|
||
95,
|
||
102,
|
||
101,
|
||
101,
|
||
95,
|
||
118,
|
||
97,
|
||
117,
|
||
108,
|
||
116
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "quote_mint"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "revshare1_quote_fee_wallet",
|
||
"writable": true,
|
||
"optional": true
|
||
},
|
||
{
|
||
"name": "revshare2_quote_fee_wallet",
|
||
"writable": true,
|
||
"optional": true
|
||
},
|
||
{
|
||
"name": "staking_pool",
|
||
"docs": [
|
||
"The staking pool for this telecoin."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
115,
|
||
116,
|
||
97,
|
||
107,
|
||
105,
|
||
110,
|
||
103,
|
||
95,
|
||
112,
|
||
111,
|
||
111,
|
||
108
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "dev_config",
|
||
"docs": [
|
||
"The dev config stores information about accumulated quote fees."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
100,
|
||
101,
|
||
118,
|
||
95,
|
||
99,
|
||
111,
|
||
110,
|
||
102,
|
||
105,
|
||
103
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "dbc_config"
|
||
},
|
||
{
|
||
"name": "dbc_pool",
|
||
"docs": [
|
||
"DBC config."
|
||
]
|
||
},
|
||
{
|
||
"name": "telecoin_mint",
|
||
"docs": [
|
||
"The telecoin mint."
|
||
]
|
||
},
|
||
{
|
||
"name": "quote_mint",
|
||
"docs": [
|
||
"The quote mint is the token that is be used to buy telecoin tokens."
|
||
]
|
||
},
|
||
{
|
||
"name": "pool_telecoin_vault",
|
||
"docs": [
|
||
"Telecoin vault that holds staked tokens and accumulated telecoin fees."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "account",
|
||
"path": "staking_pool"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_token_program"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
],
|
||
"program": {
|
||
"kind": "const",
|
||
"value": [
|
||
140,
|
||
151,
|
||
37,
|
||
143,
|
||
78,
|
||
36,
|
||
137,
|
||
241,
|
||
187,
|
||
61,
|
||
16,
|
||
41,
|
||
20,
|
||
142,
|
||
13,
|
||
131,
|
||
11,
|
||
90,
|
||
19,
|
||
153,
|
||
218,
|
||
255,
|
||
16,
|
||
132,
|
||
4,
|
||
142,
|
||
123,
|
||
216,
|
||
219,
|
||
233,
|
||
248,
|
||
89
|
||
]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "protocol_telecoin_wallet",
|
||
"docs": [
|
||
"Protocol's telecoin wallet. Receives the protocol's share of telecoin rewards.",
|
||
"ATA of `printr_config.staking_authority` for the telecoin mint."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "account",
|
||
"path": "protocol_telecoin_authority"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_token_program"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
],
|
||
"program": {
|
||
"kind": "const",
|
||
"value": [
|
||
140,
|
||
151,
|
||
37,
|
||
143,
|
||
78,
|
||
36,
|
||
137,
|
||
241,
|
||
187,
|
||
61,
|
||
16,
|
||
41,
|
||
20,
|
||
142,
|
||
13,
|
||
131,
|
||
11,
|
||
90,
|
||
19,
|
||
153,
|
||
218,
|
||
255,
|
||
16,
|
||
132,
|
||
4,
|
||
142,
|
||
123,
|
||
216,
|
||
219,
|
||
233,
|
||
248,
|
||
89
|
||
]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "protocol_telecoin_authority"
|
||
},
|
||
{
|
||
"name": "telecoin_token_program",
|
||
"docs": [
|
||
"Checks the account owner."
|
||
],
|
||
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
|
||
},
|
||
{
|
||
"name": "quote_token_program",
|
||
"docs": [
|
||
"We'll need this to do transfers."
|
||
]
|
||
},
|
||
{
|
||
"name": "associated_token_program",
|
||
"docs": [
|
||
"Related to the telecoin vault ATA."
|
||
],
|
||
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
|
||
},
|
||
{
|
||
"name": "system_program",
|
||
"docs": [
|
||
"Need to init the staking pool if not yet."
|
||
],
|
||
"address": "11111111111111111111111111111111"
|
||
},
|
||
{
|
||
"name": "event_authority",
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
95,
|
||
95,
|
||
101,
|
||
118,
|
||
101,
|
||
110,
|
||
116,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "program"
|
||
}
|
||
],
|
||
"args": []
|
||
},
|
||
{
|
||
"name": "set_dev_config_dev",
|
||
"discriminator": [
|
||
175,
|
||
111,
|
||
205,
|
||
104,
|
||
111,
|
||
167,
|
||
15,
|
||
28
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "admin",
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "telecoin_mint",
|
||
"docs": [
|
||
"The telecoin mint whose dev config we want to update."
|
||
]
|
||
},
|
||
{
|
||
"name": "dev_config",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
100,
|
||
101,
|
||
118,
|
||
95,
|
||
99,
|
||
111,
|
||
110,
|
||
102,
|
||
105,
|
||
103
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "event_authority",
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
95,
|
||
95,
|
||
101,
|
||
118,
|
||
101,
|
||
110,
|
||
116,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "program"
|
||
}
|
||
],
|
||
"args": [
|
||
{
|
||
"name": "new_dev",
|
||
"type": "pubkey"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "set_dev_config_fees",
|
||
"discriminator": [
|
||
75,
|
||
184,
|
||
89,
|
||
133,
|
||
143,
|
||
57,
|
||
183,
|
||
121
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "admin",
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "telecoin_mint",
|
||
"docs": [
|
||
"The telecoin mint whose dev config we want to update."
|
||
]
|
||
},
|
||
{
|
||
"name": "dev_config",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
100,
|
||
101,
|
||
118,
|
||
95,
|
||
99,
|
||
111,
|
||
110,
|
||
102,
|
||
105,
|
||
103
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
],
|
||
"args": [
|
||
{
|
||
"name": "params",
|
||
"type": {
|
||
"defined": {
|
||
"name": "SetDevConfigFeesParams"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "set_peer_conf",
|
||
"discriminator": [
|
||
81,
|
||
211,
|
||
81,
|
||
152,
|
||
212,
|
||
153,
|
||
58,
|
||
71
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "admin",
|
||
"docs": [
|
||
"Printr staff."
|
||
],
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "peer",
|
||
"writable": true
|
||
}
|
||
],
|
||
"args": [
|
||
{
|
||
"name": "params",
|
||
"type": {
|
||
"defined": {
|
||
"name": "SetPeerConfParams"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "set_telecoin_teleport_conf",
|
||
"discriminator": [
|
||
100,
|
||
47,
|
||
61,
|
||
148,
|
||
198,
|
||
138,
|
||
62,
|
||
49
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "payer",
|
||
"writable": true,
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "admin",
|
||
"docs": [
|
||
"Printr staff."
|
||
],
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "telecoin_teleport_config",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
116,
|
||
101,
|
||
108,
|
||
101,
|
||
99,
|
||
111,
|
||
105,
|
||
110,
|
||
95,
|
||
116,
|
||
101,
|
||
108,
|
||
101,
|
||
112,
|
||
111,
|
||
114,
|
||
116,
|
||
95,
|
||
99,
|
||
111,
|
||
110,
|
||
102,
|
||
105,
|
||
103
|
||
]
|
||
},
|
||
{
|
||
"kind": "arg",
|
||
"path": "telecoin_id"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "system_program",
|
||
"address": "11111111111111111111111111111111"
|
||
}
|
||
],
|
||
"args": [
|
||
{
|
||
"name": "telecoin_id",
|
||
"type": {
|
||
"defined": {
|
||
"name": "TelecoinId"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "params",
|
||
"type": {
|
||
"defined": {
|
||
"name": "SetTelecoinTeleportConfParams"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "spend_all_quote_no_graduation",
|
||
"discriminator": [
|
||
198,
|
||
170,
|
||
217,
|
||
245,
|
||
59,
|
||
73,
|
||
114,
|
||
60
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "payer",
|
||
"docs": [
|
||
"The entity performing the swap.",
|
||
"Owner of the input token account.",
|
||
"",
|
||
"If the quote token is $wSOL then we transfer everything from this account to the",
|
||
"intermediary token account."
|
||
],
|
||
"writable": true,
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "printr_intermediary_authority",
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
105,
|
||
110,
|
||
116,
|
||
101,
|
||
114,
|
||
109,
|
||
101,
|
||
100,
|
||
105,
|
||
97,
|
||
114,
|
||
121,
|
||
95,
|
||
116,
|
||
111,
|
||
107,
|
||
101,
|
||
110,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "printr_intermediary_quote_wallet",
|
||
"docs": [
|
||
"To support post hooks with native $SOL we need to create an intermediate ATA for the quote",
|
||
"token.",
|
||
"All the quote tokens will be transferred to this account first before being swapped.",
|
||
"The account is not closed so that it can be reused in the future without paying rent."
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "account",
|
||
"path": "printr_intermediary_authority"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "quote_token_program"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "quote_mint"
|
||
}
|
||
],
|
||
"program": {
|
||
"kind": "const",
|
||
"value": [
|
||
140,
|
||
151,
|
||
37,
|
||
143,
|
||
78,
|
||
36,
|
||
137,
|
||
241,
|
||
187,
|
||
61,
|
||
16,
|
||
41,
|
||
20,
|
||
142,
|
||
13,
|
||
131,
|
||
11,
|
||
90,
|
||
19,
|
||
153,
|
||
218,
|
||
255,
|
||
16,
|
||
132,
|
||
4,
|
||
142,
|
||
123,
|
||
216,
|
||
219,
|
||
233,
|
||
248,
|
||
89
|
||
]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "input_quote_wallet",
|
||
"docs": [
|
||
"We will use everything that's in this token account to buy as much telecoin as possible.",
|
||
"",
|
||
"Can be none for $wSOL quote if wrapping is needed."
|
||
],
|
||
"writable": true,
|
||
"optional": true
|
||
},
|
||
{
|
||
"name": "recipient"
|
||
},
|
||
{
|
||
"name": "recipient_quote_wallet",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "account",
|
||
"path": "recipient"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "quote_token_program"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "quote_mint"
|
||
}
|
||
],
|
||
"program": {
|
||
"kind": "const",
|
||
"value": [
|
||
140,
|
||
151,
|
||
37,
|
||
143,
|
||
78,
|
||
36,
|
||
137,
|
||
241,
|
||
187,
|
||
61,
|
||
16,
|
||
41,
|
||
20,
|
||
142,
|
||
13,
|
||
131,
|
||
11,
|
||
90,
|
||
19,
|
||
153,
|
||
218,
|
||
255,
|
||
16,
|
||
132,
|
||
4,
|
||
142,
|
||
123,
|
||
216,
|
||
219,
|
||
233,
|
||
248,
|
||
89
|
||
]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "output_telecoin_wallet",
|
||
"docs": [
|
||
"The owner of the output account will not match the payer for a posthook ix.",
|
||
""
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "account",
|
||
"path": "recipient"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_token_program"
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
],
|
||
"program": {
|
||
"kind": "const",
|
||
"value": [
|
||
140,
|
||
151,
|
||
37,
|
||
143,
|
||
78,
|
||
36,
|
||
137,
|
||
241,
|
||
187,
|
||
61,
|
||
16,
|
||
41,
|
||
20,
|
||
142,
|
||
13,
|
||
131,
|
||
11,
|
||
90,
|
||
19,
|
||
153,
|
||
218,
|
||
255,
|
||
16,
|
||
132,
|
||
4,
|
||
142,
|
||
123,
|
||
216,
|
||
219,
|
||
233,
|
||
248,
|
||
89
|
||
]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_mint",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "quote_mint",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_pool_authority",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_config"
|
||
},
|
||
{
|
||
"name": "dbc_pool",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_telecoin_vault",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_quote_vault",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_event_authority"
|
||
},
|
||
{
|
||
"name": "damm_pool",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_pool_authority"
|
||
},
|
||
{
|
||
"name": "damm_telecoin_vault",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_quote_vault",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_event_authority"
|
||
},
|
||
{
|
||
"name": "telecoin_token_program",
|
||
"docs": [
|
||
"We'll need this to init the mint and init the token account."
|
||
],
|
||
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
|
||
},
|
||
{
|
||
"name": "quote_token_program",
|
||
"docs": [
|
||
"We'll need this to do transfers."
|
||
]
|
||
},
|
||
{
|
||
"name": "dbc_program",
|
||
"docs": [
|
||
"The DBC program that abstracts the bonding curve logic."
|
||
],
|
||
"address": "dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN"
|
||
},
|
||
{
|
||
"name": "damm_program",
|
||
"docs": [
|
||
"The DAMM V2 program that abstracts the AMM logic."
|
||
],
|
||
"address": "cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG"
|
||
},
|
||
{
|
||
"name": "associated_token_program",
|
||
"docs": [
|
||
"Used to create ATA if needed."
|
||
],
|
||
"address": "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"
|
||
},
|
||
{
|
||
"name": "system_program",
|
||
"docs": [
|
||
"We might need to refill the input token account with $wSOL."
|
||
],
|
||
"address": "11111111111111111111111111111111"
|
||
}
|
||
],
|
||
"args": [
|
||
{
|
||
"name": "max_price",
|
||
"type": {
|
||
"defined": {
|
||
"name": "SqrtBitshiftedPrice"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "swap",
|
||
"discriminator": [
|
||
248,
|
||
198,
|
||
158,
|
||
145,
|
||
225,
|
||
117,
|
||
135,
|
||
200
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "payer",
|
||
"docs": [
|
||
"The user performing the swap"
|
||
],
|
||
"writable": true,
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "printr_authority",
|
||
"docs": [
|
||
"This is the account that funds the graduation process.",
|
||
""
|
||
],
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
114,
|
||
105,
|
||
110,
|
||
116,
|
||
114,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "input_wallet",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "output_wallet",
|
||
"docs": [
|
||
"The mint of this token account determines what's being sold, whether telecoin or quote."
|
||
],
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "telecoin_mint",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "quote_mint",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_pool_authority",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_config"
|
||
},
|
||
{
|
||
"name": "dbc_pool",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_telecoin_vault",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_quote_vault",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "dbc_event_authority"
|
||
},
|
||
{
|
||
"name": "dbc_migration_metadata",
|
||
"docs": [
|
||
"DEPRECATED: Meteora no longer uses this one.",
|
||
""
|
||
],
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_printr_partner_config"
|
||
},
|
||
{
|
||
"name": "damm_pool",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_pool_authority"
|
||
},
|
||
{
|
||
"name": "damm_telecoin_vault",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_quote_vault",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_position_nft_mint",
|
||
"writable": true,
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
112,
|
||
114,
|
||
105,
|
||
110,
|
||
116,
|
||
114,
|
||
95,
|
||
100,
|
||
97,
|
||
109,
|
||
109,
|
||
95,
|
||
112,
|
||
111,
|
||
115,
|
||
105,
|
||
116,
|
||
105,
|
||
111,
|
||
110,
|
||
95,
|
||
110,
|
||
102,
|
||
116,
|
||
95,
|
||
109,
|
||
105,
|
||
110,
|
||
116
|
||
]
|
||
},
|
||
{
|
||
"kind": "account",
|
||
"path": "telecoin_mint"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "damm_position_nft_account",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_position",
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "damm_event_authority"
|
||
},
|
||
{
|
||
"name": "telecoin_token_program",
|
||
"docs": [
|
||
"We'll need this to init the mint and init the token account."
|
||
],
|
||
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
|
||
},
|
||
{
|
||
"name": "quote_token_program",
|
||
"docs": [
|
||
"We'll need this to do transfers."
|
||
]
|
||
},
|
||
{
|
||
"name": "dbc_program",
|
||
"docs": [
|
||
"The DBC program that abstracts the bonding curve logic."
|
||
],
|
||
"address": "dbcij3LWUppWqq96dh6gJWwBifmcGfLSB5D4DuSMaqN"
|
||
},
|
||
{
|
||
"name": "damm_program",
|
||
"docs": [
|
||
"The DAMM V2 program that abstracts the AMM logic."
|
||
],
|
||
"address": "cpamdpZCGKUy5JxQXB4dcpGPiikHawvSWAd6mEn1sGG"
|
||
},
|
||
{
|
||
"name": "system_program",
|
||
"docs": [
|
||
"New accounts, native transfers, etc."
|
||
],
|
||
"address": "11111111111111111111111111111111"
|
||
}
|
||
],
|
||
"args": [
|
||
{
|
||
"name": "params",
|
||
"type": {
|
||
"defined": {
|
||
"name": "SwapIntent"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "teleport_with_lz",
|
||
"discriminator": [
|
||
166,
|
||
121,
|
||
233,
|
||
8,
|
||
125,
|
||
40,
|
||
179,
|
||
47
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "payer",
|
||
"docs": [
|
||
"This is the user that wants to send telecoin tokens."
|
||
],
|
||
"writable": true,
|
||
"signer": true
|
||
},
|
||
{
|
||
"name": "telecoin_mint",
|
||
"docs": [
|
||
"The telecoin mint that we burn here."
|
||
],
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "telecoin_teleport_config",
|
||
"docs": [
|
||
"If this account does not exist then the provided peer must be set as a default peer.",
|
||
"Otherwise we parse this account's configuration and assert it's been upheld."
|
||
]
|
||
},
|
||
{
|
||
"name": "peer"
|
||
},
|
||
{
|
||
"name": "user_source_telecoin_wallet",
|
||
"docs": [
|
||
"Where to burn from."
|
||
],
|
||
"writable": true
|
||
},
|
||
{
|
||
"name": "telecoin_token_program",
|
||
"docs": [
|
||
"Needed to burn telecoin tokens."
|
||
],
|
||
"address": "TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb"
|
||
},
|
||
{
|
||
"name": "event_authority",
|
||
"pda": {
|
||
"seeds": [
|
||
{
|
||
"kind": "const",
|
||
"value": [
|
||
95,
|
||
95,
|
||
101,
|
||
118,
|
||
101,
|
||
110,
|
||
116,
|
||
95,
|
||
97,
|
||
117,
|
||
116,
|
||
104,
|
||
111,
|
||
114,
|
||
105,
|
||
116,
|
||
121
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "program"
|
||
}
|
||
],
|
||
"args": [
|
||
{
|
||
"name": "params",
|
||
"type": {
|
||
"defined": {
|
||
"name": "TeleportWithLzParams"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
],
|
||
"accounts": [
|
||
{
|
||
"name": "DevConfig",
|
||
"discriminator": [
|
||
92,
|
||
158,
|
||
1,
|
||
106,
|
||
83,
|
||
222,
|
||
4,
|
||
81
|
||
]
|
||
},
|
||
{
|
||
"name": "Peer",
|
||
"discriminator": [
|
||
50,
|
||
8,
|
||
19,
|
||
55,
|
||
40,
|
||
253,
|
||
37,
|
||
58
|
||
]
|
||
},
|
||
{
|
||
"name": "PoolConfig",
|
||
"discriminator": [
|
||
26,
|
||
108,
|
||
14,
|
||
123,
|
||
116,
|
||
230,
|
||
129,
|
||
43
|
||
]
|
||
},
|
||
{
|
||
"name": "PrintrConfig",
|
||
"discriminator": [
|
||
184,
|
||
34,
|
||
37,
|
||
157,
|
||
37,
|
||
223,
|
||
65,
|
||
252
|
||
]
|
||
},
|
||
{
|
||
"name": "StakePosition",
|
||
"discriminator": [
|
||
78,
|
||
165,
|
||
30,
|
||
111,
|
||
171,
|
||
125,
|
||
11,
|
||
220
|
||
]
|
||
},
|
||
{
|
||
"name": "StakingPool",
|
||
"discriminator": [
|
||
203,
|
||
19,
|
||
214,
|
||
220,
|
||
220,
|
||
154,
|
||
24,
|
||
102
|
||
]
|
||
},
|
||
{
|
||
"name": "TelecoinTeleportConfig",
|
||
"discriminator": [
|
||
146,
|
||
117,
|
||
46,
|
||
78,
|
||
137,
|
||
112,
|
||
71,
|
||
57
|
||
]
|
||
},
|
||
{
|
||
"name": "VirtualPool",
|
||
"discriminator": [
|
||
213,
|
||
224,
|
||
5,
|
||
209,
|
||
98,
|
||
69,
|
||
119,
|
||
92
|
||
]
|
||
}
|
||
],
|
||
"events": [
|
||
{
|
||
"name": "BuybackAndBurnEvent",
|
||
"discriminator": [
|
||
158,
|
||
146,
|
||
152,
|
||
190,
|
||
14,
|
||
197,
|
||
155,
|
||
158
|
||
]
|
||
},
|
||
{
|
||
"name": "ClaimStakingRewardsEvent",
|
||
"discriminator": [
|
||
109,
|
||
78,
|
||
167,
|
||
39,
|
||
50,
|
||
229,
|
||
74,
|
||
85
|
||
]
|
||
},
|
||
{
|
||
"name": "CreateStakePositionEvent",
|
||
"discriminator": [
|
||
47,
|
||
51,
|
||
210,
|
||
240,
|
||
178,
|
||
138,
|
||
154,
|
||
198
|
||
]
|
||
},
|
||
{
|
||
"name": "DeployTelecoinEvent",
|
||
"discriminator": [
|
||
133,
|
||
217,
|
||
193,
|
||
229,
|
||
51,
|
||
195,
|
||
248,
|
||
98
|
||
]
|
||
},
|
||
{
|
||
"name": "PrintTelecoinEvent",
|
||
"discriminator": [
|
||
202,
|
||
7,
|
||
212,
|
||
34,
|
||
205,
|
||
71,
|
||
111,
|
||
139
|
||
]
|
||
},
|
||
{
|
||
"name": "RefreshStaking2Event",
|
||
"discriminator": [
|
||
39,
|
||
218,
|
||
120,
|
||
153,
|
||
29,
|
||
229,
|
||
190,
|
||
254
|
||
]
|
||
},
|
||
{
|
||
"name": "SetDevConfigDevEvent",
|
||
"discriminator": [
|
||
89,
|
||
201,
|
||
9,
|
||
41,
|
||
16,
|
||
123,
|
||
16,
|
||
57
|
||
]
|
||
},
|
||
{
|
||
"name": "TeleportWithLzEvent",
|
||
"discriminator": [
|
||
166,
|
||
170,
|
||
61,
|
||
125,
|
||
224,
|
||
166,
|
||
227,
|
||
98
|
||
]
|
||
}
|
||
],
|
||
"types": [
|
||
{
|
||
"name": "Accumulator",
|
||
"docs": [
|
||
"Accumulator value tracking cumulative rewards per unit of weighted stake.",
|
||
"",
|
||
"Used in the staking system where rewards are distributed proportionally across",
|
||
"all stakers. Values are scaled by 2^64 for precision:",
|
||
"",
|
||
"```text",
|
||
"accumulator += (new_rewards << 64) / total_weighted_stake",
|
||
"pending_rewards = weighted_stake * (current_acc - last_acc) >> 64",
|
||
"```"
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
"u128"
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "BaseFeeConfig",
|
||
"serialization": "bytemuck",
|
||
"repr": {
|
||
"kind": "c"
|
||
},
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "cliff_fee_numerator",
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "second_factor",
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "third_factor",
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "first_factor",
|
||
"type": "u16"
|
||
},
|
||
{
|
||
"name": "base_fee_mode",
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "padding_0",
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
5
|
||
]
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "BuybackAndBurnEvent",
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "telecoin_id",
|
||
"type": {
|
||
"defined": {
|
||
"name": "TelecoinId"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "quote_spent",
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_burned",
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "ClaimStakingRewardsEvent",
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "owner",
|
||
"docs": [
|
||
"Owner of the position."
|
||
],
|
||
"type": "pubkey"
|
||
},
|
||
{
|
||
"name": "telecoin_mint",
|
||
"docs": [
|
||
"Telecoin mint."
|
||
],
|
||
"type": "pubkey"
|
||
},
|
||
{
|
||
"name": "position_nonce",
|
||
"docs": [
|
||
"Position nonce."
|
||
],
|
||
"type": "u32"
|
||
},
|
||
{
|
||
"name": "quote_rewards",
|
||
"docs": [
|
||
"Quote token rewards claimed."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_rewards",
|
||
"docs": [
|
||
"Telecoin rewards claimed."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "position_closed",
|
||
"docs": [
|
||
"Whether the position was closed. Always false for `claim_staking_rewards`;",
|
||
"set to true only by `close_stake_position`."
|
||
],
|
||
"type": "bool"
|
||
},
|
||
{
|
||
"name": "returned_stake",
|
||
"docs": [
|
||
"Amount returned to user if closed. Always zero for `claim_staking_rewards`;",
|
||
"the staked amount is only returned by `close_stake_position`."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "quote_token_accumulator",
|
||
"docs": [
|
||
"Position's quote token accumulator after claim."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "Accumulator"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_accumulator",
|
||
"docs": [
|
||
"Position's telecoin accumulator after claim."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "Accumulator"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_id",
|
||
"docs": [
|
||
"Telecoin ID."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TelecoinId"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "CreateStakePositionEvent",
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "owner",
|
||
"docs": [
|
||
"User that will receive the staking rewards and the telecoins back."
|
||
],
|
||
"type": "pubkey"
|
||
},
|
||
{
|
||
"name": "telecoin_id",
|
||
"docs": [
|
||
"Telecoin ID."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TelecoinId"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "position_nonce",
|
||
"docs": [
|
||
"Position nonce for this user's stake."
|
||
],
|
||
"type": "u32"
|
||
},
|
||
{
|
||
"name": "staked",
|
||
"docs": [
|
||
"Amount of telecoin staked."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "lock_period",
|
||
"docs": [
|
||
"Lock period selected."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "LockPeriod"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "staked_at",
|
||
"docs": [
|
||
"Timestamp when staking was created."
|
||
],
|
||
"type": "i64"
|
||
},
|
||
{
|
||
"name": "quote_token_accumulator",
|
||
"docs": [
|
||
"Pool's quote token accumulator at position creation (position's initial checkpoint)."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "Accumulator"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_accumulator",
|
||
"docs": [
|
||
"Pool's telecoin accumulator at position creation (position's initial checkpoint)."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "Accumulator"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "DeployTelecoinEvent",
|
||
"docs": [
|
||
"Some Printr related details about the deploy."
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "protocol_version",
|
||
"docs": [
|
||
"The protocol version of the graduating telecoin token."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "PrintrProtocolVersion"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_id",
|
||
"docs": [
|
||
"The Printr Telecoin ID."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TelecoinId"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "dev_on_solana",
|
||
"docs": [
|
||
"The dev's wallet on Solana.",
|
||
"",
|
||
"Will be default if this telecoin doesn't have a solana dev wallet."
|
||
],
|
||
"type": "pubkey"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "DevConfig",
|
||
"docs": [
|
||
"Configuration for a dev of a telecoin token."
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "fee_sink",
|
||
"docs": [
|
||
"Used to identify the dev for fee distribution.",
|
||
"",
|
||
"Will be the default key if this telecoin doesn't have a solana dev wallet.",
|
||
"That can happen if the telecoin was not printed on Solana and only deployed here",
|
||
"additionally without a bonding curve."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "FeeSink"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "protocol_version",
|
||
"docs": [
|
||
"Can be used to distinguish between breaking changes in the future."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "PrintrProtocolVersion"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_id",
|
||
"docs": [
|
||
"What's the canonical telecoin ID at the time of creation.",
|
||
"We try not to break how telecoin IDs are derived but we neither make guarantees they won't",
|
||
"change."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TelecoinId"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "fee_sink_quote_fee",
|
||
"docs": [
|
||
"When claiming fees we accumulate them in this counter.",
|
||
"When distributing the fees we reset this to zero and transfer the amount.",
|
||
"",
|
||
"# Migration",
|
||
"",
|
||
"After `PrintrProtocolVersion(3)` inclusive this field collects _all_ quote fees, both dev",
|
||
"fees and protocol fees."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "fees",
|
||
"docs": [
|
||
"Custom fee configuration set at print/deploy time."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "DevConfigFees"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "flags",
|
||
"docs": [
|
||
"Bit flags for fee distribution lifecycle."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "DevConfigFlags"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "_padding",
|
||
"type": "u8"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "DevConfigFees",
|
||
"docs": [
|
||
"Custom fee overrides stored in [DevConfig].",
|
||
"",
|
||
"# Migration",
|
||
"",
|
||
"Until `PrintrProtocolVersion(3)` exclusive we used to store 8 padding bytes."
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "dbc_protocol_share_of_trading_fee_pct",
|
||
"docs": [
|
||
"Protocol's share of the bonding curve trading fee as a percentage (0-100).",
|
||
"",
|
||
"For example, if the total DBC trading fee is 2% and this value is 15,",
|
||
"then 0.3% goes to the protocol and 1.7% goes to the dev.",
|
||
"",
|
||
"0 means not set.",
|
||
"This is going to be the case for telecoins printed before this struct was introduced.",
|
||
"In that case we use the defaults to keep the behavior consistent with what it was before."
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "amm_protocol_share_of_trading_fee_pct",
|
||
"docs": [
|
||
"Protocol's share of the AMM trading fee as a percentage (0-100).",
|
||
"",
|
||
"Same semantics as [Self::dbc_protocol_share_of_trading_fee_pct] but for AMM trades."
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "rev_shares",
|
||
"docs": [
|
||
"Up to 2 revshare entries for protocol fee distribution."
|
||
],
|
||
"type": {
|
||
"array": [
|
||
{
|
||
"defined": {
|
||
"name": "RevShareSlot"
|
||
}
|
||
},
|
||
2
|
||
]
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "DevConfigFlags",
|
||
"docs": [
|
||
"Anchor-serializable wrapper around [printr_sdk::dev_config::DevConfigFlags]."
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
"u8"
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "DynamicFeeConfig",
|
||
"serialization": "bytemuck",
|
||
"repr": {
|
||
"kind": "c"
|
||
},
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "initialized",
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "padding",
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
7
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "max_volatility_accumulator",
|
||
"type": "u32"
|
||
},
|
||
{
|
||
"name": "variable_fee_control",
|
||
"type": "u32"
|
||
},
|
||
{
|
||
"name": "bin_step",
|
||
"type": "u16"
|
||
},
|
||
{
|
||
"name": "filter_period",
|
||
"type": "u16"
|
||
},
|
||
{
|
||
"name": "decay_period",
|
||
"type": "u16"
|
||
},
|
||
{
|
||
"name": "reduction_factor",
|
||
"type": "u16"
|
||
},
|
||
{
|
||
"name": "padding2",
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
8
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "bin_step_u128",
|
||
"type": "u128"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "EstimateSwapOutput",
|
||
"docs": [
|
||
"This is the returned value from this ix."
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "estimate",
|
||
"docs": [
|
||
"The swap estimate."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "SwapEstimate"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "which_remaining_accounts_are_owned_by_system_program",
|
||
"docs": [
|
||
"The remaining accounts are mapped onto this list.",
|
||
"The index will be `true` if the account is owned by the system program."
|
||
],
|
||
"type": {
|
||
"vec": "bool"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "EstimateTeleportWithLzParams",
|
||
"docs": [
|
||
"Parameters for the [TeleportWithLz] instruction."
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "message_len",
|
||
"docs": [
|
||
"How long is the message to send.",
|
||
"",
|
||
"See [omnichain_codec::OutgoingMessage] for the message format."
|
||
],
|
||
"type": "u16"
|
||
},
|
||
{
|
||
"name": "lz_options",
|
||
"docs": [
|
||
"<https://docs.layerzero.network/v2/developers/evm/configuration/options>"
|
||
],
|
||
"type": "bytes"
|
||
},
|
||
{
|
||
"name": "lz_destination_endpoint_id",
|
||
"docs": [
|
||
"The chain ID of the destination chain.",
|
||
"",
|
||
"<https://docs.layerzero.network/v2/deployments/deployed-contracts>"
|
||
],
|
||
"type": "u32"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "FeeSink",
|
||
"type": {
|
||
"kind": "type",
|
||
"alias": "pubkey"
|
||
}
|
||
},
|
||
{
|
||
"name": "FeesClaimed",
|
||
"docs": [
|
||
"Fee claiming endpoints return how much fees were claimed - in total - for each token."
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "in_telecoin",
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "in_quote",
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "LiquidityDistributionConfig",
|
||
"serialization": "bytemuck",
|
||
"repr": {
|
||
"kind": "c"
|
||
},
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "sqrt_price",
|
||
"type": "u128"
|
||
},
|
||
{
|
||
"name": "liquidity",
|
||
"type": "u128"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "LiquidityVestingInfo",
|
||
"serialization": "bytemuck",
|
||
"repr": {
|
||
"kind": "c"
|
||
},
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "is_initialized",
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "vesting_percentage",
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "_padding",
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
2
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "bps_per_period",
|
||
"type": "u16"
|
||
},
|
||
{
|
||
"name": "number_of_periods",
|
||
"type": "u16"
|
||
},
|
||
{
|
||
"name": "frequency",
|
||
"type": "u32"
|
||
},
|
||
{
|
||
"name": "cliff_duration_from_migration_time",
|
||
"type": "u32"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "LockPeriod",
|
||
"docs": [
|
||
"Lock periods for staking, each with its own reward multiplier."
|
||
],
|
||
"type": {
|
||
"kind": "enum",
|
||
"variants": [
|
||
{
|
||
"name": "SevenDays"
|
||
},
|
||
{
|
||
"name": "FourteenDays"
|
||
},
|
||
{
|
||
"name": "ThirtyDays"
|
||
},
|
||
{
|
||
"name": "SixtyDays"
|
||
},
|
||
{
|
||
"name": "NinetyDays"
|
||
},
|
||
{
|
||
"name": "OneHundredEightyDays"
|
||
},
|
||
{
|
||
"name": "TenSeconds"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "LockedVestingConfig",
|
||
"serialization": "bytemuck",
|
||
"repr": {
|
||
"kind": "c"
|
||
},
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "amount_per_period",
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "cliff_duration_from_migration_time",
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "frequency",
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "number_of_period",
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "cliff_unlock_amount",
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "_padding",
|
||
"type": "u64"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "LzAccount",
|
||
"docs": [
|
||
"same to anchor_lang::prelude::AccountMeta"
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "pubkey",
|
||
"type": "pubkey"
|
||
},
|
||
{
|
||
"name": "is_signer",
|
||
"type": "bool"
|
||
},
|
||
{
|
||
"name": "is_writable",
|
||
"type": "bool"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "LzReceiveParams",
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "src_eid",
|
||
"type": "u32"
|
||
},
|
||
{
|
||
"name": "sender",
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
32
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "nonce",
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "guid",
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
32
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "message",
|
||
"type": "bytes"
|
||
},
|
||
{
|
||
"name": "extra_data",
|
||
"type": "bytes"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "Peer",
|
||
"docs": [
|
||
"A peer in omnichain network is a connection living on another chain,",
|
||
"typically a smart contract.",
|
||
"",
|
||
"A peer is authorized by the Printr staff to send and receive messages",
|
||
"authoritatively.",
|
||
"This suggests a reciprocal relationship between the two peers.",
|
||
"",
|
||
"To trust a message we must validate that it was sent by a peer.",
|
||
"Validation is done by relaying networks such as Axelar or LayerZero.",
|
||
"Acts as a connection to another chain."
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "bump",
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "address",
|
||
"docs": [
|
||
"The address of the peer on the other chain.",
|
||
"Is part of the seed"
|
||
],
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
32
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "is_lz_enabled",
|
||
"docs": [
|
||
"Admin can enable and disable the LZ communication channel to the peer.",
|
||
"",
|
||
"Multiple peers can be enabled."
|
||
],
|
||
"type": "bool"
|
||
},
|
||
{
|
||
"name": "is_lz_default",
|
||
"docs": [
|
||
"Use this peer as the default for LZ teleports.",
|
||
"",
|
||
"Multiple peers can be set as default in which case they are equivalent from the POV of the",
|
||
"security of the protocol."
|
||
],
|
||
"type": "bool"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "PoolConfig",
|
||
"serialization": "bytemuck",
|
||
"repr": {
|
||
"kind": "c"
|
||
},
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "quote_mint",
|
||
"docs": [
|
||
"quote mint"
|
||
],
|
||
"type": "pubkey"
|
||
},
|
||
{
|
||
"name": "fee_claimer",
|
||
"docs": [
|
||
"Address to get the fee"
|
||
],
|
||
"type": "pubkey"
|
||
},
|
||
{
|
||
"name": "leftover_receiver",
|
||
"docs": [
|
||
"Address to receive extra base token after migration, in case token is fixed supply"
|
||
],
|
||
"type": "pubkey"
|
||
},
|
||
{
|
||
"name": "pool_fees",
|
||
"docs": [
|
||
"Pool fee"
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "PoolFeesConfig"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "partner_liquidity_vesting_info",
|
||
"type": {
|
||
"defined": {
|
||
"name": "LiquidityVestingInfo"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "creator_liquidity_vesting_info",
|
||
"type": {
|
||
"defined": {
|
||
"name": "LiquidityVestingInfo"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "padding_0",
|
||
"docs": [
|
||
"Padding for future use"
|
||
],
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
14
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "padding_1",
|
||
"docs": [
|
||
"Previously was protocol and referral fee percent. Beware of tombstone."
|
||
],
|
||
"type": "u16"
|
||
},
|
||
{
|
||
"name": "collect_fee_mode",
|
||
"docs": [
|
||
"Collect fee mode"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "migration_option",
|
||
"docs": [
|
||
"migration option"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "activation_type",
|
||
"docs": [
|
||
"whether mode slot or timestamp"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "token_decimal",
|
||
"docs": [
|
||
"token decimals"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "version",
|
||
"docs": [
|
||
"version"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "token_type",
|
||
"docs": [
|
||
"token type of base token"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "quote_token_flag",
|
||
"docs": [
|
||
"quote token flag"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "partner_permanent_locked_liquidity_percentage",
|
||
"docs": [
|
||
"partner locked liquidity percentage"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "partner_liquidity_percentage",
|
||
"docs": [
|
||
"partner liquidity percentage"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "creator_permanent_locked_liquidity_percentage",
|
||
"docs": [
|
||
"creator post migration fee percentage"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "creator_liquidity_percentage",
|
||
"docs": [
|
||
"creator liquidity percentage"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "migration_fee_option",
|
||
"docs": [
|
||
"migration fee option"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "fixed_token_supply_flag",
|
||
"docs": [
|
||
"flag to indicate whether token is dynamic supply (0) or fixed supply (1)"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "creator_trading_fee_percentage",
|
||
"docs": [
|
||
"creator trading fee percentage"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "token_update_authority",
|
||
"docs": [
|
||
"token update authority"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "migration_fee_percentage",
|
||
"docs": [
|
||
"migration fee percentage"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "creator_migration_fee_percentage",
|
||
"docs": [
|
||
"creator migration fee percentage"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "padding_2",
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
7
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "swap_base_amount",
|
||
"docs": [
|
||
"swap base amount"
|
||
],
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "migration_quote_threshold",
|
||
"docs": [
|
||
"migration quote threshold (in quote token)"
|
||
],
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "migration_base_threshold",
|
||
"docs": [
|
||
"migration base threshold (in base token)"
|
||
],
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "migration_sqrt_price",
|
||
"docs": [
|
||
"migration sqrt price"
|
||
],
|
||
"type": "u128"
|
||
},
|
||
{
|
||
"name": "locked_vesting_config",
|
||
"docs": [
|
||
"locked vesting config"
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "LockedVestingConfig"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "pre_migration_token_supply",
|
||
"docs": [
|
||
"pre migration token supply"
|
||
],
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "post_migration_token_supply",
|
||
"docs": [
|
||
"post migration token supply"
|
||
],
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "migrated_collect_fee_mode",
|
||
"docs": [
|
||
"migrated pool collect fee mode"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "migrated_dynamic_fee",
|
||
"docs": [
|
||
"migrated dynamic fee option."
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "migrated_pool_fee_bps",
|
||
"docs": [
|
||
"migrated pool fee in bps"
|
||
],
|
||
"type": "u16"
|
||
},
|
||
{
|
||
"name": "migrated_pool_base_fee_mode",
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "enable_first_swap_with_min_fee",
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "migrated_compounding_fee_bps",
|
||
"docs": [
|
||
"compounding fee bps for migrated DAMM v2 pool, should only be non-zero if migrated_collect_fee_mode is 2 (Compounding)"
|
||
],
|
||
"type": "u16"
|
||
},
|
||
{
|
||
"name": "pool_creation_fee",
|
||
"docs": [
|
||
"pool creation fee in lamports value"
|
||
],
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "migrated_pool_base_fee_bytes",
|
||
"docs": [
|
||
"serialized MigratedPoolMarketCapFeeSchedulerParams, only used when migrated_pool_base_fee_mode is market cap scheduler"
|
||
],
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
16
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "sqrt_start_price",
|
||
"docs": [
|
||
"minimum price"
|
||
],
|
||
"type": "u128"
|
||
},
|
||
{
|
||
"name": "curve",
|
||
"docs": [
|
||
"curve, only use 20 point firstly, we can extend that latter"
|
||
],
|
||
"type": {
|
||
"array": [
|
||
{
|
||
"defined": {
|
||
"name": "LiquidityDistributionConfig"
|
||
}
|
||
},
|
||
20
|
||
]
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "PoolFeesConfig",
|
||
"serialization": "bytemuck",
|
||
"repr": {
|
||
"kind": "c"
|
||
},
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "base_fee",
|
||
"type": {
|
||
"defined": {
|
||
"name": "BaseFeeConfig"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "dynamic_fee",
|
||
"type": {
|
||
"defined": {
|
||
"name": "DynamicFeeConfig"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "PoolMetrics",
|
||
"serialization": "bytemuck",
|
||
"repr": {
|
||
"kind": "c"
|
||
},
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "total_protocol_base_fee",
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "total_protocol_quote_fee",
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "total_trading_base_fee",
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "total_trading_quote_fee",
|
||
"type": "u64"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "PrintTelecoinEvent",
|
||
"docs": [
|
||
"Some Printr related details about the launch on top of meteora events."
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "protocol_version",
|
||
"docs": [
|
||
"The protocol version of the graduating telecoin token."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "PrintrProtocolVersion"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_id",
|
||
"docs": [
|
||
"The Printr Telecoin ID."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TelecoinId"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "quote_mint",
|
||
"docs": [
|
||
"Which mint is used as a quote."
|
||
],
|
||
"type": "pubkey"
|
||
},
|
||
{
|
||
"name": "dev_on_solana",
|
||
"docs": [
|
||
"The dev's wallet on Solana."
|
||
],
|
||
"type": "pubkey"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "PrintrConfig",
|
||
"docs": [
|
||
"Configuration struct holding the public keys for various Printr program wallets.",
|
||
"",
|
||
"# Fields",
|
||
"- `printr_fee_authority`: Receives Printr's portion of the protocol fees.",
|
||
"- `questflow_ai_fee_authority`: Receives QuestFlow AI's portion of the protocol fees.",
|
||
"- `staking_authority`: Receives all fees that are in telecoin.",
|
||
"",
|
||
"# Authority",
|
||
"",
|
||
"This account is an authority over several token account vaults that hold protocol and dev fees."
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "printr_fee_authority",
|
||
"docs": [
|
||
"This account receives Printr's portion of the protocol fees."
|
||
],
|
||
"type": "pubkey"
|
||
},
|
||
{
|
||
"name": "questflow_ai_fee_authority",
|
||
"docs": [
|
||
"This account receives QuestFlow AI's portion of the protocol fees."
|
||
],
|
||
"type": "pubkey"
|
||
},
|
||
{
|
||
"name": "_padding_1",
|
||
"docs": [
|
||
"# Migration",
|
||
"",
|
||
"See [Self::migrate_if_necessary]."
|
||
],
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
32
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "staking_authority",
|
||
"docs": [
|
||
"Receives all fees that are in telecoin."
|
||
],
|
||
"type": "pubkey"
|
||
},
|
||
{
|
||
"name": "_padding_2",
|
||
"docs": [
|
||
"# Migration",
|
||
"",
|
||
"See [Self::migrate_if_necessary]."
|
||
],
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
2
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "_padding_3",
|
||
"docs": [
|
||
"# Migration",
|
||
"",
|
||
"See [Self::migrate_if_necessary]."
|
||
],
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
2
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "_padding_4",
|
||
"docs": [
|
||
"# Migration",
|
||
"",
|
||
"See [Self::migrate_if_necessary]."
|
||
],
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
2
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "_padding_5",
|
||
"docs": [
|
||
"# Migration",
|
||
"",
|
||
"See [Self::migrate_if_necessary]."
|
||
],
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
2
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "_padding_6",
|
||
"docs": [
|
||
"# Migration",
|
||
"",
|
||
"See [Self::migrate_if_necessary]."
|
||
],
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
1
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "last_update",
|
||
"docs": [
|
||
"# Migration",
|
||
"",
|
||
"This field was originally padding.",
|
||
"It was therefore set to 0.",
|
||
"We repurposed it to [PrintrProtocolVersion] to be able to track migrations of this struct."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "PrintrProtocolVersion"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "PrintrProtocolVersion",
|
||
"docs": [
|
||
"Stores the protocol version that the telecoin was created with."
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
"u8"
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "ProtocolFeeSink",
|
||
"docs": [
|
||
"Lookup table for protocol fee sinks.",
|
||
"",
|
||
"Main raison d'etre for this is to avoid storage cost and migrations on Solana.",
|
||
"We agreed with the business side of Printr that the list will be rather static and won't require",
|
||
"additions in near future.",
|
||
"So we buy ourselves time by skipping the need for migrations this way."
|
||
],
|
||
"repr": {
|
||
"kind": "rust"
|
||
},
|
||
"type": {
|
||
"kind": "enum",
|
||
"variants": [
|
||
{
|
||
"name": "None"
|
||
},
|
||
{
|
||
"name": "QuestflowAi"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "RefreshStaking2Event",
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "telecoin_id",
|
||
"docs": [
|
||
"Telecoin ID, derives the mint."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TelecoinId"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "quote_rewards",
|
||
"docs": [
|
||
"Quote token rewards distributed to stakers."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "protocol_quote_fees",
|
||
"docs": [
|
||
"Quote token fees sent to protocol + revshare wallets."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_rewards",
|
||
"docs": [
|
||
"Telecoin rewards added."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "quote_token_accumulator",
|
||
"docs": [
|
||
"New quote token accumulator value."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "Accumulator"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_accumulator",
|
||
"docs": [
|
||
"New telecoin accumulator value."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "Accumulator"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "protocol_telecoin_fees",
|
||
"docs": [
|
||
"Telecoin fees sent to the protocol staking wallet."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "RevShareSlot",
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "sink",
|
||
"type": {
|
||
"defined": {
|
||
"name": "ProtocolFeeSink"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "share_of_protocol_fee_pct",
|
||
"docs": [
|
||
"This partner's share of the protocol fee as a percentage (0-100).",
|
||
"",
|
||
"The fee hierarchy is:",
|
||
"1. A trade incurs a **trading fee** (e.g. 1% of trade volume).",
|
||
"2. The protocol takes a share of that trading fee",
|
||
"([DevConfigFees::dbc_protocol_share_of_trading_fee_pct] or",
|
||
"[DevConfigFees::amm_protocol_share_of_trading_fee_pct], e.g. 75%).",
|
||
"3. This field is a percentage of *that* protocol share (e.g. 10%).",
|
||
"",
|
||
"Concrete example: 1% trading fee, 75% protocol share, 10% revshare →",
|
||
"effective revshare = 1% × 75% × 10% = 0.075% of trade volume."
|
||
],
|
||
"type": "u8"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "SetDevConfigDevEvent",
|
||
"docs": [
|
||
"Emitted whenever an admin updates the fee sink on a dev config."
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "telecoin_id",
|
||
"docs": [
|
||
"The Printr Telecoin ID whose dev config was updated."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TelecoinId"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_mint",
|
||
"docs": [
|
||
"The telecoin mint whose dev config was updated."
|
||
],
|
||
"type": "pubkey"
|
||
},
|
||
{
|
||
"name": "previous_fee_sink",
|
||
"docs": [
|
||
"The fee sink before the update."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "FeeSink"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "new_fee_sink",
|
||
"docs": [
|
||
"The fee sink after the update."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "FeeSink"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "SetDevConfigFeesParams",
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "dbc_protocol_share_of_trading_fee_pct",
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "amm_protocol_share_of_trading_fee_pct",
|
||
"type": "u8"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "SetPeerConfParams",
|
||
"docs": [
|
||
"Parameters for the [SetPeerConf] instruction."
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "enable_lz",
|
||
"type": {
|
||
"option": "bool"
|
||
}
|
||
},
|
||
{
|
||
"name": "set_as_default",
|
||
"type": {
|
||
"option": "bool"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "SetTelecoinTeleportConfParams",
|
||
"docs": [
|
||
"Parameters for the [SetTelecoinTeleportConf] instruction."
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "set_lz_peer_config",
|
||
"type": {
|
||
"option": {
|
||
"defined": {
|
||
"name": "TeleportPathConfig"
|
||
}
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "SqrtBitshiftedPrice",
|
||
"docs": [
|
||
"This is a sqrt and bitshifted price ready to be compared to Meteora prices."
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "price",
|
||
"docs": [
|
||
"The inner raw value."
|
||
],
|
||
"type": "u128"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "StakePosition",
|
||
"docs": [
|
||
"Individual user's stake position in a staking pool.",
|
||
"",
|
||
"PDA seeds:",
|
||
"```ignore",
|
||
"[",
|
||
"SEED_PREFIX_FOR_STAKE_POSITION,",
|
||
"telecoin_mint.as_ref(),",
|
||
"owner.as_ref(),",
|
||
"position_nonce.to_le_bytes().as_ref(),",
|
||
"]",
|
||
"```",
|
||
"",
|
||
"The position_nonce allows users to have multiple stake positions per telecoin."
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "bump",
|
||
"docs": [
|
||
"Bump seed for PDA derivation."
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "position_nonce",
|
||
"docs": [
|
||
"Position nonce - allows multiple positions per user per telecoin.",
|
||
"",
|
||
"Stored as u32 and used in PDA derivation as little-endian bytes (to_le_bytes()).",
|
||
"There can be only one position per (telecoin, owner, position_nonce) tuple at the time.",
|
||
"However, position nonces can be reused after a position is closed (unlocked and fully",
|
||
"claimed)."
|
||
],
|
||
"type": "u32"
|
||
},
|
||
{
|
||
"name": "staked",
|
||
"docs": [
|
||
"Amount of telecoin staked."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "lock_period",
|
||
"docs": [
|
||
"Lock period selected by user."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "LockPeriod"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "staked_at_clock_timestamp",
|
||
"docs": [
|
||
"Timestamp from Clock sysvar when the stake was created."
|
||
],
|
||
"type": "i64"
|
||
},
|
||
{
|
||
"name": "quote_token_last_accumulator",
|
||
"docs": [
|
||
"Quote token accumulator value when user last claimed or staked."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "Accumulator"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_last_accumulator",
|
||
"docs": [
|
||
"Telecoin accumulator value when user last claimed or staked."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "Accumulator"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "StakingPool",
|
||
"docs": [
|
||
"One pool per telecoin. Users stake the telecoin and earn rewards in multiple tokens:",
|
||
"",
|
||
"- Quote token trading fees",
|
||
"- Telecoin trading fees",
|
||
"",
|
||
"PDA seeds: `[b\"staking_pool\", telecoin_mint.as_ref()]`",
|
||
"",
|
||
"Note: Mint addresses can be derived from telecoin_id, so they're not stored here."
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "bump",
|
||
"docs": [
|
||
"Bump seed for PDA derivation."
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "refreshed_at_clock_slot",
|
||
"docs": [
|
||
"Last slot when the pool was refreshed."
|
||
],
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "telecoin_id",
|
||
"docs": [
|
||
"Telecoin ID this pool is associated with."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TelecoinId"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "total_weighted_stake",
|
||
"docs": [
|
||
"Total weighted stake across all users.",
|
||
"",
|
||
"weighted_stake = sum(user_staked_amount × lock_multiplier_bps / 10000)"
|
||
],
|
||
"type": "u128"
|
||
},
|
||
{
|
||
"name": "quote_token_accumulator",
|
||
"docs": [
|
||
"Accumulator for quote token rewards."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "Accumulator"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_accumulator",
|
||
"docs": [
|
||
"Accumulator for telecoin rewards."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "Accumulator"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "last_telecoin_vault_balance",
|
||
"docs": [
|
||
"Last observed telecoin vault balance for calculating new rewards."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "SwapEstimate",
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "actual_input",
|
||
"docs": [
|
||
"What goes into a pool (either bonding curve or AMM).",
|
||
"Does not include the fees."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "input_fee",
|
||
"docs": [
|
||
"What's spent on fees. (Input)"
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "output_fee",
|
||
"docs": [
|
||
"What's spent on fees. (Output)"
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "output",
|
||
"docs": [
|
||
"What comes out of the pool.",
|
||
"Does not include the fees."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "next_price",
|
||
"docs": [
|
||
"The sqrt price after the swap."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "SqrtBitshiftedPrice"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "current_price",
|
||
"docs": [
|
||
"The sqrt price after the swap."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "SqrtBitshiftedPrice"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "SwapIntent",
|
||
"docs": [
|
||
"Represents user's intent to swap tokens in Printr ecosystem.",
|
||
"We translate this intent to specific Meteora CPIs."
|
||
],
|
||
"type": {
|
||
"kind": "enum",
|
||
"variants": [
|
||
{
|
||
"name": "SpendQuote",
|
||
"fields": [
|
||
{
|
||
"name": "sell",
|
||
"docs": [
|
||
"Quote amount"
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "max_price",
|
||
"docs": [
|
||
"In Printr we apply slippage to price."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "SqrtBitshiftedPrice"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "SellTelecoin",
|
||
"fields": [
|
||
{
|
||
"name": "sell",
|
||
"docs": [
|
||
"telecoin amount"
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "min_price",
|
||
"docs": [
|
||
"In Printr we apply slippage to price."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "SqrtBitshiftedPrice"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"name": "SpendAllQuote",
|
||
"fields": [
|
||
{
|
||
"name": "special_value",
|
||
"docs": [
|
||
"Must be equal to [printr_sdk::consts::SPEND_ALL_SPECIAL_VALUE]."
|
||
],
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "max_price",
|
||
"docs": [
|
||
"In Printr we apply slippage to price."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "SqrtBitshiftedPrice"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "TelecoinId",
|
||
"docs": [
|
||
"Printr's Token ID is a hash of the ABI-encoded telecoin params."
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"array": [
|
||
"u8",
|
||
32
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "TelecoinParams",
|
||
"docs": [
|
||
"The core primitive of the Printr protocol.",
|
||
"",
|
||
"These telecoin params uniquely identify a token launched with Printr."
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "salt",
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
32
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "dev_addresses",
|
||
"docs": [
|
||
"# Note",
|
||
"",
|
||
"At this point, `dev_addresses` has become a misnomer.",
|
||
"It contains more information than that."
|
||
],
|
||
"type": "bytes"
|
||
},
|
||
{
|
||
"name": "name",
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
32
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "symbol",
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
32
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "packed_params",
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
32
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "chains",
|
||
"type": {
|
||
"vec": {
|
||
"array": [
|
||
"u8",
|
||
32
|
||
]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "quote_pairs",
|
||
"type": {
|
||
"vec": {
|
||
"array": [
|
||
"u8",
|
||
32
|
||
]
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "quote_prices",
|
||
"type": "bytes"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "TelecoinParamsCompact",
|
||
"docs": [
|
||
"On Solana we're dealing with txs size limits.",
|
||
"Being able to compress the telecoin params into a smaller structure helps us submit smaller txs.",
|
||
"",
|
||
"You can always convert this back to [TelecoinParams]."
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "version",
|
||
"docs": [
|
||
"It's nice to version this in case we need to further compact it or do other changes."
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "data",
|
||
"docs": [
|
||
"The compact representation of the telecoin params."
|
||
],
|
||
"type": "bytes"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "TelecoinTeleportConfig",
|
||
"docs": [
|
||
"Overrides default configuration for a specific telecoin with respect to omnichain transfers."
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "lz_peer",
|
||
"docs": [
|
||
"If set then only the specified peer can be used to teleport this telecoin."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TeleportPathConfig"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "TeleportPathConfig",
|
||
"docs": [
|
||
"Defines how teleports should be handled."
|
||
],
|
||
"type": {
|
||
"kind": "enum",
|
||
"variants": [
|
||
{
|
||
"name": "Default"
|
||
},
|
||
{
|
||
"name": "Disabled"
|
||
},
|
||
{
|
||
"name": "Peers",
|
||
"fields": [
|
||
{
|
||
"name": "teleport_any_direction1",
|
||
"docs": [
|
||
"This peer can be used for teleports in any direction: mint and burn."
|
||
],
|
||
"type": "pubkey"
|
||
},
|
||
{
|
||
"name": "teleport_any_direction2",
|
||
"docs": [
|
||
"This peer can be used for teleports in any direction: mint and burn."
|
||
],
|
||
"type": "pubkey"
|
||
},
|
||
{
|
||
"name": "teleport_in_only",
|
||
"docs": [
|
||
"This peer can be used for teleports in only: mint"
|
||
],
|
||
"type": "pubkey"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "TeleportWithLzEvent",
|
||
"docs": [
|
||
"Event emitted by the [TeleportWithLz] instruction."
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "guid",
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
32
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "nonce",
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "lz_destination_endpoint_id",
|
||
"type": "u32"
|
||
},
|
||
{
|
||
"name": "telecoin_id",
|
||
"type": {
|
||
"defined": {
|
||
"name": "TelecoinId"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "destination_recipient_address",
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
32
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "destination_peer_address",
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
32
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "source_user_address",
|
||
"type": "pubkey"
|
||
},
|
||
{
|
||
"name": "teleporting",
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "TeleportWithLzParams",
|
||
"docs": [
|
||
"Parameters for the [TeleportWithLz] instruction.",
|
||
"Used to construct [OutgoingMessage]."
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "to_send",
|
||
"docs": [
|
||
"Burns this much telecoin tokens and mints them again on the other chain."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "destination_recipient_address",
|
||
"docs": [
|
||
"Who to mint the telecoin tokens to."
|
||
],
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
32
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "telecoin_id",
|
||
"docs": [
|
||
"Printr Telecoin ID derives the telecoin mint."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TelecoinId"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "lamports_gas",
|
||
"docs": [
|
||
"How much to pay LZ for the transaction."
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "TokenAmount"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "lz_options",
|
||
"docs": [
|
||
"<https://docs.layerzero.network/v2/developers/evm/configuration/options>"
|
||
],
|
||
"type": "bytes"
|
||
},
|
||
{
|
||
"name": "lz_destination_endpoint_id",
|
||
"docs": [
|
||
"The chain ID of the destination chain.",
|
||
"",
|
||
"<https://docs.layerzero.network/v2/deployments/deployed-contracts>"
|
||
],
|
||
"type": "u32"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "TokenAmount",
|
||
"docs": [
|
||
"A token amount in its smallest denomination as seen in a token account."
|
||
],
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "amount",
|
||
"docs": [
|
||
"Wraps around this value to give it a meaning."
|
||
],
|
||
"type": "u64"
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "VirtualPool",
|
||
"serialization": "bytemuck",
|
||
"repr": {
|
||
"kind": "c"
|
||
},
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "volatility_tracker",
|
||
"docs": [
|
||
"volatility tracker"
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "VolatilityTracker"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "config",
|
||
"docs": [
|
||
"config key"
|
||
],
|
||
"type": "pubkey"
|
||
},
|
||
{
|
||
"name": "creator",
|
||
"docs": [
|
||
"creator"
|
||
],
|
||
"type": "pubkey"
|
||
},
|
||
{
|
||
"name": "base_mint",
|
||
"docs": [
|
||
"base mint"
|
||
],
|
||
"type": "pubkey"
|
||
},
|
||
{
|
||
"name": "base_vault",
|
||
"docs": [
|
||
"base vault"
|
||
],
|
||
"type": "pubkey"
|
||
},
|
||
{
|
||
"name": "quote_vault",
|
||
"docs": [
|
||
"quote vault"
|
||
],
|
||
"type": "pubkey"
|
||
},
|
||
{
|
||
"name": "base_reserve",
|
||
"docs": [
|
||
"base reserve"
|
||
],
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "quote_reserve",
|
||
"docs": [
|
||
"quote reserve"
|
||
],
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "protocol_base_fee",
|
||
"docs": [
|
||
"protocol base fee"
|
||
],
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "protocol_quote_fee",
|
||
"docs": [
|
||
"protocol quote fee"
|
||
],
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "partner_base_fee",
|
||
"docs": [
|
||
"partner base fee"
|
||
],
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "partner_quote_fee",
|
||
"docs": [
|
||
"trading quote fee"
|
||
],
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "sqrt_price",
|
||
"docs": [
|
||
"current price"
|
||
],
|
||
"type": "u128"
|
||
},
|
||
{
|
||
"name": "activation_point",
|
||
"docs": [
|
||
"Activation point"
|
||
],
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "pool_type",
|
||
"docs": [
|
||
"pool type, spl token or token2022"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "is_migrated",
|
||
"docs": [
|
||
"is migrated"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "is_partner_withdraw_surplus",
|
||
"docs": [
|
||
"is partner withdraw surplus"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "is_protocol_withdraw_surplus",
|
||
"docs": [
|
||
"is protocol withdraw surplus"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "migration_progress",
|
||
"docs": [
|
||
"migration progress"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "is_withdraw_leftover",
|
||
"docs": [
|
||
"is withdraw leftover"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "is_creator_withdraw_surplus",
|
||
"docs": [
|
||
"is creator withdraw surplus"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "migration_fee_withdraw_status",
|
||
"docs": [
|
||
"migration fee withdraw status",
|
||
"bit 1 (0b010) creator",
|
||
"bit 2 (0b100) partner"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "metrics",
|
||
"docs": [
|
||
"pool metrics"
|
||
],
|
||
"type": {
|
||
"defined": {
|
||
"name": "PoolMetrics"
|
||
}
|
||
}
|
||
},
|
||
{
|
||
"name": "finish_curve_timestamp",
|
||
"docs": [
|
||
"The time curve is finished"
|
||
],
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "creator_base_fee",
|
||
"docs": [
|
||
"creator base fee"
|
||
],
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "creator_quote_fee",
|
||
"docs": [
|
||
"creator quote fee"
|
||
],
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "legacy_creation_fee_bits",
|
||
"docs": [
|
||
"legacy creation fee bits, we dont use this now"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "creation_fee_bits",
|
||
"docs": [
|
||
"pool creation fee claim status"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "has_swap",
|
||
"docs": [
|
||
"Cached flag"
|
||
],
|
||
"type": "u8"
|
||
},
|
||
{
|
||
"name": "_padding_0",
|
||
"docs": [
|
||
"Padding for further use"
|
||
],
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
5
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "protocol_liquidity_migration_fee_bps",
|
||
"type": "u16"
|
||
},
|
||
{
|
||
"name": "_padding_1",
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
6
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "protocol_migration_base_fee_amount",
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "protocol_migration_quote_fee_amount",
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "_padding_2",
|
||
"docs": [
|
||
"Padding for further use"
|
||
],
|
||
"type": {
|
||
"array": [
|
||
"u64",
|
||
3
|
||
]
|
||
}
|
||
}
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "VolatilityTracker",
|
||
"serialization": "bytemuck",
|
||
"repr": {
|
||
"kind": "c"
|
||
},
|
||
"type": {
|
||
"kind": "struct",
|
||
"fields": [
|
||
{
|
||
"name": "last_update_timestamp",
|
||
"type": "u64"
|
||
},
|
||
{
|
||
"name": "padding",
|
||
"type": {
|
||
"array": [
|
||
"u8",
|
||
8
|
||
]
|
||
}
|
||
},
|
||
{
|
||
"name": "sqrt_price_reference",
|
||
"type": "u128"
|
||
},
|
||
{
|
||
"name": "volatility_accumulator",
|
||
"type": "u128"
|
||
},
|
||
{
|
||
"name": "volatility_reference",
|
||
"type": "u128"
|
||
}
|
||
]
|
||
}
|
||
}
|
||
]
|
||
} |