1143 lines
34 KiB
JSON
1143 lines
34 KiB
JSON
{
|
|
"address": "4R3gSG8BpU4t19KYj8CfnbtRpnT8gtk4dvTHxVRwc2r7",
|
|
"metadata": {
|
|
"name": "jito_tip_distribution",
|
|
"version": "0.1.5",
|
|
"spec": "0.1.0",
|
|
"description": "Tip distribution program, responsible for distributing funds to entitled parties."
|
|
},
|
|
"instructions": [
|
|
{
|
|
"name": "claim",
|
|
"docs": [
|
|
"Claims tokens from the [TipDistributionAccount]."
|
|
],
|
|
"discriminator": [
|
|
62,
|
|
198,
|
|
214,
|
|
193,
|
|
213,
|
|
159,
|
|
108,
|
|
210
|
|
],
|
|
"accounts": [
|
|
{
|
|
"name": "config"
|
|
},
|
|
{
|
|
"name": "tip_distribution_account",
|
|
"writable": true
|
|
},
|
|
{
|
|
"name": "merkle_root_upload_authority",
|
|
"signer": true
|
|
},
|
|
{
|
|
"name": "claim_status",
|
|
"docs": [
|
|
"Status of the claim. Used to prevent the same party from claiming multiple times."
|
|
],
|
|
"writable": true
|
|
},
|
|
{
|
|
"name": "claimant",
|
|
"docs": [
|
|
"Receiver of the funds."
|
|
],
|
|
"writable": true
|
|
},
|
|
{
|
|
"name": "payer",
|
|
"docs": [
|
|
"Who is paying for the claim."
|
|
],
|
|
"writable": true,
|
|
"signer": true
|
|
},
|
|
{
|
|
"name": "system_program"
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "bump",
|
|
"type": "u8"
|
|
},
|
|
{
|
|
"name": "amount",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "proof",
|
|
"type": {
|
|
"vec": {
|
|
"array": [
|
|
"u8",
|
|
32
|
|
]
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "close_claim_status",
|
|
"docs": [
|
|
"Anyone can invoke this only after the [TipDistributionAccount] has expired.",
|
|
"This instruction will return any rent back to `claimant` and close the account"
|
|
],
|
|
"discriminator": [
|
|
163,
|
|
214,
|
|
191,
|
|
165,
|
|
245,
|
|
188,
|
|
17,
|
|
185
|
|
],
|
|
"accounts": [
|
|
{
|
|
"name": "config"
|
|
},
|
|
{
|
|
"name": "claim_status",
|
|
"writable": true
|
|
},
|
|
{
|
|
"name": "claim_status_payer",
|
|
"docs": [
|
|
"Receiver of the funds."
|
|
],
|
|
"writable": true
|
|
}
|
|
],
|
|
"args": []
|
|
},
|
|
{
|
|
"name": "close_tip_distribution_account",
|
|
"docs": [
|
|
"Anyone can invoke this only after the [TipDistributionAccount] has expired.",
|
|
"This instruction will send any unclaimed funds to the designated `expired_funds_account`",
|
|
"before closing and returning the rent exempt funds to the validator."
|
|
],
|
|
"discriminator": [
|
|
47,
|
|
136,
|
|
208,
|
|
190,
|
|
125,
|
|
243,
|
|
74,
|
|
227
|
|
],
|
|
"accounts": [
|
|
{
|
|
"name": "config"
|
|
},
|
|
{
|
|
"name": "expired_funds_account",
|
|
"writable": true
|
|
},
|
|
{
|
|
"name": "tip_distribution_account",
|
|
"writable": true
|
|
},
|
|
{
|
|
"name": "validator_vote_account",
|
|
"writable": true
|
|
},
|
|
{
|
|
"name": "signer",
|
|
"docs": [
|
|
"Anyone can crank this instruction."
|
|
],
|
|
"writable": true,
|
|
"signer": true
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "_epoch",
|
|
"type": "u64"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "initialize",
|
|
"docs": [
|
|
"Initialize a singleton instance of the [Config] account."
|
|
],
|
|
"discriminator": [
|
|
175,
|
|
175,
|
|
109,
|
|
31,
|
|
13,
|
|
152,
|
|
155,
|
|
237
|
|
],
|
|
"accounts": [
|
|
{
|
|
"name": "config",
|
|
"writable": true
|
|
},
|
|
{
|
|
"name": "system_program"
|
|
},
|
|
{
|
|
"name": "initializer",
|
|
"writable": true,
|
|
"signer": true
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "authority",
|
|
"type": "pubkey"
|
|
},
|
|
{
|
|
"name": "expired_funds_account",
|
|
"type": "pubkey"
|
|
},
|
|
{
|
|
"name": "num_epochs_valid",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "max_validator_commission_bps",
|
|
"type": "u16"
|
|
},
|
|
{
|
|
"name": "bump",
|
|
"type": "u8"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "initialize_merkle_root_upload_config",
|
|
"discriminator": [
|
|
232,
|
|
87,
|
|
72,
|
|
14,
|
|
89,
|
|
40,
|
|
40,
|
|
27
|
|
],
|
|
"accounts": [
|
|
{
|
|
"name": "config",
|
|
"writable": true
|
|
},
|
|
{
|
|
"name": "merkle_root_upload_config",
|
|
"writable": true
|
|
},
|
|
{
|
|
"name": "authority",
|
|
"signer": true
|
|
},
|
|
{
|
|
"name": "payer",
|
|
"writable": true,
|
|
"signer": true
|
|
},
|
|
{
|
|
"name": "system_program"
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "authority",
|
|
"type": "pubkey"
|
|
},
|
|
{
|
|
"name": "original_authority",
|
|
"type": "pubkey"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "initialize_tip_distribution_account",
|
|
"docs": [
|
|
"Initialize a new [TipDistributionAccount] associated with the given validator vote key",
|
|
"and current epoch."
|
|
],
|
|
"discriminator": [
|
|
120,
|
|
191,
|
|
25,
|
|
182,
|
|
111,
|
|
49,
|
|
179,
|
|
55
|
|
],
|
|
"accounts": [
|
|
{
|
|
"name": "config"
|
|
},
|
|
{
|
|
"name": "tip_distribution_account",
|
|
"writable": true
|
|
},
|
|
{
|
|
"name": "validator_vote_account",
|
|
"docs": [
|
|
"The validator's vote account is used to check this transaction's signer is also the authorized withdrawer."
|
|
]
|
|
},
|
|
{
|
|
"name": "signer",
|
|
"docs": [
|
|
"Must be equal to the supplied validator vote account's authorized withdrawer."
|
|
],
|
|
"writable": true,
|
|
"signer": true
|
|
},
|
|
{
|
|
"name": "system_program"
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "merkle_root_upload_authority",
|
|
"type": "pubkey"
|
|
},
|
|
{
|
|
"name": "validator_commission_bps",
|
|
"type": "u16"
|
|
},
|
|
{
|
|
"name": "bump",
|
|
"type": "u8"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "migrate_tda_merkle_root_upload_authority",
|
|
"discriminator": [
|
|
13,
|
|
226,
|
|
163,
|
|
144,
|
|
56,
|
|
202,
|
|
214,
|
|
23
|
|
],
|
|
"accounts": [
|
|
{
|
|
"name": "tip_distribution_account",
|
|
"writable": true
|
|
},
|
|
{
|
|
"name": "merkle_root_upload_config"
|
|
}
|
|
],
|
|
"args": []
|
|
},
|
|
{
|
|
"name": "update_config",
|
|
"docs": [
|
|
"Update config fields. Only the [Config] authority can invoke this."
|
|
],
|
|
"discriminator": [
|
|
29,
|
|
158,
|
|
252,
|
|
191,
|
|
10,
|
|
83,
|
|
219,
|
|
99
|
|
],
|
|
"accounts": [
|
|
{
|
|
"name": "config",
|
|
"writable": true
|
|
},
|
|
{
|
|
"name": "authority",
|
|
"writable": true,
|
|
"signer": true
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "new_config",
|
|
"type": {
|
|
"defined": {
|
|
"name": "Config"
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "update_merkle_root_upload_config",
|
|
"discriminator": [
|
|
128,
|
|
227,
|
|
159,
|
|
139,
|
|
176,
|
|
128,
|
|
118,
|
|
2
|
|
],
|
|
"accounts": [
|
|
{
|
|
"name": "config"
|
|
},
|
|
{
|
|
"name": "merkle_root_upload_config",
|
|
"writable": true
|
|
},
|
|
{
|
|
"name": "authority",
|
|
"signer": true
|
|
},
|
|
{
|
|
"name": "system_program"
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "authority",
|
|
"type": "pubkey"
|
|
},
|
|
{
|
|
"name": "original_authority",
|
|
"type": "pubkey"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"name": "upload_merkle_root",
|
|
"docs": [
|
|
"Uploads a merkle root to the provided [TipDistributionAccount]. This instruction may be",
|
|
"invoked many times as long as the account is at least one epoch old and not expired; and",
|
|
"no funds have already been claimed. Only the `merkle_root_upload_authority` has the",
|
|
"authority to invoke."
|
|
],
|
|
"discriminator": [
|
|
70,
|
|
3,
|
|
110,
|
|
29,
|
|
199,
|
|
190,
|
|
205,
|
|
176
|
|
],
|
|
"accounts": [
|
|
{
|
|
"name": "config"
|
|
},
|
|
{
|
|
"name": "tip_distribution_account",
|
|
"writable": true
|
|
},
|
|
{
|
|
"name": "merkle_root_upload_authority",
|
|
"writable": true,
|
|
"signer": true
|
|
}
|
|
],
|
|
"args": [
|
|
{
|
|
"name": "root",
|
|
"type": {
|
|
"array": [
|
|
"u8",
|
|
32
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "max_total_claim",
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "max_num_nodes",
|
|
"type": "u64"
|
|
}
|
|
]
|
|
}
|
|
],
|
|
"accounts": [
|
|
{
|
|
"name": "ClaimStatus",
|
|
"discriminator": [
|
|
22,
|
|
183,
|
|
249,
|
|
157,
|
|
247,
|
|
95,
|
|
150,
|
|
96
|
|
]
|
|
},
|
|
{
|
|
"name": "Config",
|
|
"discriminator": [
|
|
155,
|
|
12,
|
|
170,
|
|
224,
|
|
30,
|
|
250,
|
|
204,
|
|
130
|
|
]
|
|
},
|
|
{
|
|
"name": "MerkleRootUploadConfig",
|
|
"discriminator": [
|
|
213,
|
|
125,
|
|
30,
|
|
192,
|
|
25,
|
|
121,
|
|
87,
|
|
33
|
|
]
|
|
},
|
|
{
|
|
"name": "TipDistributionAccount",
|
|
"discriminator": [
|
|
85,
|
|
64,
|
|
113,
|
|
198,
|
|
234,
|
|
94,
|
|
120,
|
|
123
|
|
]
|
|
}
|
|
],
|
|
"events": [
|
|
{
|
|
"name": "ClaimStatusClosedEvent",
|
|
"discriminator": [
|
|
188,
|
|
143,
|
|
237,
|
|
229,
|
|
192,
|
|
182,
|
|
164,
|
|
118
|
|
]
|
|
},
|
|
{
|
|
"name": "ClaimedEvent",
|
|
"discriminator": [
|
|
144,
|
|
172,
|
|
209,
|
|
86,
|
|
144,
|
|
87,
|
|
84,
|
|
115
|
|
]
|
|
},
|
|
{
|
|
"name": "ConfigUpdatedEvent",
|
|
"discriminator": [
|
|
245,
|
|
158,
|
|
129,
|
|
99,
|
|
60,
|
|
100,
|
|
214,
|
|
220
|
|
]
|
|
},
|
|
{
|
|
"name": "MerkleRootUploadAuthorityUpdatedEvent",
|
|
"discriminator": [
|
|
83,
|
|
157,
|
|
58,
|
|
165,
|
|
200,
|
|
171,
|
|
8,
|
|
106
|
|
]
|
|
},
|
|
{
|
|
"name": "MerkleRootUploadedEvent",
|
|
"discriminator": [
|
|
94,
|
|
233,
|
|
236,
|
|
49,
|
|
52,
|
|
224,
|
|
181,
|
|
167
|
|
]
|
|
},
|
|
{
|
|
"name": "TipDistributionAccountClosedEvent",
|
|
"discriminator": [
|
|
246,
|
|
152,
|
|
49,
|
|
154,
|
|
9,
|
|
79,
|
|
25,
|
|
58
|
|
]
|
|
},
|
|
{
|
|
"name": "TipDistributionAccountInitializedEvent",
|
|
"discriminator": [
|
|
39,
|
|
165,
|
|
224,
|
|
61,
|
|
40,
|
|
140,
|
|
139,
|
|
255
|
|
]
|
|
},
|
|
{
|
|
"name": "ValidatorCommissionBpsUpdatedEvent",
|
|
"discriminator": [
|
|
4,
|
|
34,
|
|
92,
|
|
25,
|
|
228,
|
|
88,
|
|
51,
|
|
206
|
|
]
|
|
}
|
|
],
|
|
"errors": [
|
|
{
|
|
"code": 6000,
|
|
"name": "AccountValidationFailure",
|
|
"msg": "Account failed validation."
|
|
},
|
|
{
|
|
"code": 6001,
|
|
"name": "ArithmeticError",
|
|
"msg": "Encountered an arithmetic under/overflow error."
|
|
},
|
|
{
|
|
"code": 6002,
|
|
"name": "ExceedsMaxClaim",
|
|
"msg": "The maximum number of funds to be claimed has been exceeded."
|
|
},
|
|
{
|
|
"code": 6003,
|
|
"name": "ExceedsMaxNumNodes",
|
|
"msg": "The maximum number of claims has been exceeded."
|
|
},
|
|
{
|
|
"code": 6004,
|
|
"name": "ExpiredTipDistributionAccount",
|
|
"msg": "The given TipDistributionAccount has expired."
|
|
},
|
|
{
|
|
"code": 6005,
|
|
"name": "FundsAlreadyClaimed",
|
|
"msg": "The funds for the given index and TipDistributionAccount have already been claimed."
|
|
},
|
|
{
|
|
"code": 6006,
|
|
"name": "InvalidParameters",
|
|
"msg": "Supplied invalid parameters."
|
|
},
|
|
{
|
|
"code": 6007,
|
|
"name": "InvalidProof",
|
|
"msg": "The given proof is invalid."
|
|
},
|
|
{
|
|
"code": 6008,
|
|
"name": "InvalidVoteAccountData",
|
|
"msg": "Failed to deserialize the supplied vote account data."
|
|
},
|
|
{
|
|
"code": 6009,
|
|
"name": "MaxValidatorCommissionFeeBpsExceeded",
|
|
"msg": "Validator's commission basis points must be less than or equal to the Config account's max_validator_commission_bps."
|
|
},
|
|
{
|
|
"code": 6010,
|
|
"name": "PrematureCloseTipDistributionAccount",
|
|
"msg": "The given TipDistributionAccount is not ready to be closed."
|
|
},
|
|
{
|
|
"code": 6011,
|
|
"name": "PrematureCloseClaimStatus",
|
|
"msg": "The given ClaimStatus account is not ready to be closed."
|
|
},
|
|
{
|
|
"code": 6012,
|
|
"name": "PrematureMerkleRootUpload",
|
|
"msg": "Must wait till at least one epoch after the tip distribution account was created to upload the merkle root."
|
|
},
|
|
{
|
|
"code": 6013,
|
|
"name": "RootNotUploaded",
|
|
"msg": "No merkle root has been uploaded to the given TipDistributionAccount."
|
|
},
|
|
{
|
|
"code": 6014,
|
|
"name": "Unauthorized",
|
|
"msg": "Unauthorized signer."
|
|
},
|
|
{
|
|
"code": 6015,
|
|
"name": "InvalidTdaForMigration",
|
|
"msg": "TDA not valid for migration."
|
|
}
|
|
],
|
|
"types": [
|
|
{
|
|
"name": "ClaimStatus",
|
|
"docs": [
|
|
"Gives us an audit trail of who and what was claimed; also enforces and only-once claim by any party."
|
|
],
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "is_claimed",
|
|
"docs": [
|
|
"If true, the tokens have been claimed."
|
|
],
|
|
"type": "bool"
|
|
},
|
|
{
|
|
"name": "claimant",
|
|
"docs": [
|
|
"Authority that claimed the tokens. Allows for delegated rewards claiming."
|
|
],
|
|
"type": "pubkey"
|
|
},
|
|
{
|
|
"name": "claim_status_payer",
|
|
"docs": [
|
|
"The payer who created the claim."
|
|
],
|
|
"type": "pubkey"
|
|
},
|
|
{
|
|
"name": "slot_claimed_at",
|
|
"docs": [
|
|
"When the funds were claimed."
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "amount",
|
|
"docs": [
|
|
"Amount of funds claimed."
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "expires_at",
|
|
"docs": [
|
|
"The epoch (upto and including) that tip funds can be claimed.",
|
|
"Copied since TDA can be closed, need to track to avoid making multiple claims"
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "bump",
|
|
"docs": [
|
|
"The bump used to generate this account"
|
|
],
|
|
"type": "u8"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "ClaimStatusClosedEvent",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "claim_status_payer",
|
|
"docs": [
|
|
"Account where funds were transferred to."
|
|
],
|
|
"type": "pubkey"
|
|
},
|
|
{
|
|
"name": "claim_status_account",
|
|
"docs": [
|
|
"[ClaimStatus] account that was closed."
|
|
],
|
|
"type": "pubkey"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "ClaimedEvent",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "tip_distribution_account",
|
|
"docs": [
|
|
"[TipDistributionAccount] claimed from."
|
|
],
|
|
"type": "pubkey"
|
|
},
|
|
{
|
|
"name": "payer",
|
|
"docs": [
|
|
"User that paid for the claim, may or may not be the same as claimant."
|
|
],
|
|
"type": "pubkey"
|
|
},
|
|
{
|
|
"name": "claimant",
|
|
"docs": [
|
|
"Account that received the funds."
|
|
],
|
|
"type": "pubkey"
|
|
},
|
|
{
|
|
"name": "amount",
|
|
"docs": [
|
|
"Amount of funds to distribute."
|
|
],
|
|
"type": "u64"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "Config",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "authority",
|
|
"docs": [
|
|
"Account with authority over this PDA."
|
|
],
|
|
"type": "pubkey"
|
|
},
|
|
{
|
|
"name": "expired_funds_account",
|
|
"docs": [
|
|
"We want to expire funds after some time so that validators can be refunded the rent.",
|
|
"Expired funds will get transferred to this account."
|
|
],
|
|
"type": "pubkey"
|
|
},
|
|
{
|
|
"name": "num_epochs_valid",
|
|
"docs": [
|
|
"Specifies the number of epochs a merkle root is valid for before expiring."
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "max_validator_commission_bps",
|
|
"docs": [
|
|
"The maximum commission a validator can set on their distribution account."
|
|
],
|
|
"type": "u16"
|
|
},
|
|
{
|
|
"name": "bump",
|
|
"docs": [
|
|
"The bump used to generate this account"
|
|
],
|
|
"type": "u8"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "ConfigUpdatedEvent",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "authority",
|
|
"docs": [
|
|
"Who updated it."
|
|
],
|
|
"type": "pubkey"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "MerkleRoot",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "root",
|
|
"docs": [
|
|
"The 256-bit merkle root."
|
|
],
|
|
"type": {
|
|
"array": [
|
|
"u8",
|
|
32
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "max_total_claim",
|
|
"docs": [
|
|
"Maximum number of funds that can ever be claimed from this [MerkleRoot]."
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "max_num_nodes",
|
|
"docs": [
|
|
"Maximum number of nodes that can ever be claimed from this [MerkleRoot]."
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "total_funds_claimed",
|
|
"docs": [
|
|
"Total funds that have been claimed."
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "num_nodes_claimed",
|
|
"docs": [
|
|
"Number of nodes that have been claimed."
|
|
],
|
|
"type": "u64"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "MerkleRootUploadAuthorityUpdatedEvent",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "old_authority",
|
|
"type": "pubkey"
|
|
},
|
|
{
|
|
"name": "new_authority",
|
|
"type": "pubkey"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "MerkleRootUploadConfig",
|
|
"docs": [
|
|
"Singleton account that allows overriding TDA's merkle upload authority"
|
|
],
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "override_authority",
|
|
"docs": [
|
|
"The authority that overrides the TipDistributionAccount merkle_root_upload_authority"
|
|
],
|
|
"type": "pubkey"
|
|
},
|
|
{
|
|
"name": "original_upload_authority",
|
|
"docs": [
|
|
"The original merkle root upload authority that can be changed to the new overrided",
|
|
"authority. E.g. Jito Labs authority GZctHpWXmsZC1YHACTGGcHhYxjdRqQvTpYkb9LMvxDib"
|
|
],
|
|
"type": "pubkey"
|
|
},
|
|
{
|
|
"name": "bump",
|
|
"docs": [
|
|
"The bump used to generate this account"
|
|
],
|
|
"type": "u8"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "MerkleRootUploadedEvent",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "merkle_root_upload_authority",
|
|
"docs": [
|
|
"Who uploaded the root."
|
|
],
|
|
"type": "pubkey"
|
|
},
|
|
{
|
|
"name": "tip_distribution_account",
|
|
"docs": [
|
|
"Where the root was uploaded to."
|
|
],
|
|
"type": "pubkey"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "TipDistributionAccount",
|
|
"docs": [
|
|
"The account that validators register as **tip_receiver** with the tip-payment program."
|
|
],
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "validator_vote_account",
|
|
"docs": [
|
|
"The validator's vote account, also the recipient of remaining lamports after",
|
|
"upon closing this account."
|
|
],
|
|
"type": "pubkey"
|
|
},
|
|
{
|
|
"name": "merkle_root_upload_authority",
|
|
"docs": [
|
|
"The only account authorized to upload a merkle-root for this account."
|
|
],
|
|
"type": "pubkey"
|
|
},
|
|
{
|
|
"name": "merkle_root",
|
|
"docs": [
|
|
"The merkle root used to verify user claims from this account."
|
|
],
|
|
"type": {
|
|
"option": {
|
|
"defined": {
|
|
"name": "MerkleRoot"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
{
|
|
"name": "epoch_created_at",
|
|
"docs": [
|
|
"Epoch for which this account was created."
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "validator_commission_bps",
|
|
"docs": [
|
|
"The commission basis points this validator charges."
|
|
],
|
|
"type": "u16"
|
|
},
|
|
{
|
|
"name": "expires_at",
|
|
"docs": [
|
|
"The epoch (upto and including) that tip funds can be claimed."
|
|
],
|
|
"type": "u64"
|
|
},
|
|
{
|
|
"name": "bump",
|
|
"docs": [
|
|
"The bump used to generate this account"
|
|
],
|
|
"type": "u8"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "TipDistributionAccountClosedEvent",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "expired_funds_account",
|
|
"docs": [
|
|
"Account where unclaimed funds were transferred to."
|
|
],
|
|
"type": "pubkey"
|
|
},
|
|
{
|
|
"name": "tip_distribution_account",
|
|
"docs": [
|
|
"[TipDistributionAccount] closed."
|
|
],
|
|
"type": "pubkey"
|
|
},
|
|
{
|
|
"name": "expired_amount",
|
|
"docs": [
|
|
"Unclaimed amount transferred."
|
|
],
|
|
"type": "u64"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "TipDistributionAccountInitializedEvent",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "tip_distribution_account",
|
|
"type": "pubkey"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"name": "ValidatorCommissionBpsUpdatedEvent",
|
|
"type": {
|
|
"kind": "struct",
|
|
"fields": [
|
|
{
|
|
"name": "tip_distribution_account",
|
|
"type": "pubkey"
|
|
},
|
|
{
|
|
"name": "old_commission_bps",
|
|
"type": "u16"
|
|
},
|
|
{
|
|
"name": "new_commission_bps",
|
|
"type": "u16"
|
|
}
|
|
]
|
|
}
|
|
}
|
|
]
|
|
} |