@xgamesfun/solana 0.26.0 → 0.26.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -8
- package/js/chain/metadata.js +76 -0
- package/js/client/idl/loot.js +1 -1
- package/js/client/idl/loot.json +4 -3
- package/js/client/sizes.js +180 -66
- package/js/economy/check.mjs +64 -19
- package/js/economy/cost.mjs +17 -3
- package/js/economy/explain.mjs +14 -0
- package/js/economy/guide.mjs +2 -2
- package/js/economy/plan.mjs +62 -12
- package/js/economy/schema.json +4 -3
- package/js/play/index.js +15 -7
- package/package.json +1 -1
- package/release.json +5 -5
- package/skills/xsolana-economy/SKILL.md +3 -3
- package/skills/xsolana-economy/references/telling-the-person.md +9 -1
- package/types/chain/metadata.d.ts +40 -0
- package/types/client/sizes.d.ts +42 -8
- package/types/economy/check.d.mts +6 -2
- package/types/economy/cost.d.mts +3 -0
- package/types/economy/live.d.mts +2 -0
- package/types/economy/plan.d.mts +23 -15
package/js/client/idl/loot.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
// Generated by scripts/sync-idl.mjs from target/idl/loot.json. Do not edit.
|
|
2
|
-
export default {"address":"9cwqM1TXytPnFZsLfmUyv2dg4uW6Ch9C6UJVPns7NFQ","metadata":{"name":"loot","version":"0.26.0","spec":"0.1.0","description":"Economy for Anything: one program every coin of a project passes through","repository":"https://github.com/gamesfun/loot"},"instructions":[{"name":"ask_roll","docs":["Its player or the project's keys ask the oracle for a roll a mission's return or a recipe made (`Waiting`): it lands","in `callback_roll`, as a box's does."],"discriminator":[6],"accounts":[{"name":"payer","docs":["Pays the oracle: its player or the project's keys."],"writable":true,"signer":true},{"name":"order","docs":["Waiting to be asked, or asked and never answered."],"writable":true},{"name":"loot_box"},{"name":"project"},{"name":"oracle_queue","writable":true},{"name":"program_identity"},{"name":"vrf_program","docs":["(and fails there when it is no program), so a roll whose box was edited fails, for its","refund, even with the oracle gone."],"address":"Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz"},{"name":"slot_hashes"},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"settler","type":"pubkey"}]},{"name":"bid","docs":["A player bids on an auction; the bid it tops goes back to its bidder at once."],"discriminator":[32],"accounts":[{"name":"bidder","writable":true,"signer":true},{"name":"project"},{"name":"auction","writable":true},{"name":"vault","docs":["opens it when it is not there. Passed writable only for bids in tokens."]},{"name":"bidder_token","writable":true},{"name":"outbid","docs":["(`Tokens::wallet_account`): the bid this one tops goes back there (and, for NFTs, the rent of","the project's token account a Token Metadata NFT of theirs emptied)."],"writable":true,"optional":true},{"name":"outbid_token","writable":true,"optional":true},{"name":"mint"},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"amount","type":"u64"},{"name":"terms","type":{"array":["u8",32]}}]},{"name":"borrow","docs":["A holder borrows against an NFT: it is held until `due`, and the loan paid to them."],"discriminator":[38],"accounts":[{"name":"borrower","docs":["Holds the NFT, hands it in, and is lent the money. Pays the hold's rent and the fee."],"writable":true,"signer":true},{"name":"project"},{"name":"offer","writable":true},{"name":"maker","writable":true},{"name":"hold","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,111,108,100]},{"kind":"account","path":"piece.asset","account":"Piece"},{"kind":"arg","path":"due"}]}},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"mint"},{"name":"vault","writable":true},{"name":"borrower_token","docs":["opened when it is not there."],"writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"due","type":"i64"},{"name":"terms","type":{"array":["u8",32]}}]},{"name":"buy","docs":["Buy `count` of a box that needs no roll (a shop item, a bundle, a pack of fixed cards): the","price is split and the entry's prizes given at once, with no order."],"discriminator":[2],"accounts":[{"name":"player","docs":["Pays the price and the fee, and what the prizes open or make."],"writable":true,"signer":true},{"name":"project"},{"name":"loot_box","docs":["Its price moves with each sale (`Rise`, `Fall`)."],"writable":true},{"name":"mint","docs":["share of it, burns."]},{"name":"player_token","writable":true},{"name":"treasury"},{"name":"treasury_token","writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"chosen","docs":["one (`To::Chosen` with an item). Checked against the choice."],"optional":true},{"name":"counts","docs":["wallet buys. Made at their first count, its rent theirs."],"writable":true,"optional":true},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"max_price","type":"u64"},{"name":"chosen_recipient","type":{"option":"pubkey"}},{"name":"version","type":"u32"},{"name":"nonce","type":"u64"},{"name":"count","type":"u32"}]},{"name":"buy_tickets","docs":["A player buys lottery tickets."],"discriminator":[18],"accounts":[{"name":"player","docs":["Pays for the tickets, and the bytes their entry adds when the lottery's spare SOL doesn't (a","round the lottery opened, while its spare covers them); the round's first buyer also fronts its","header and its account of the payment mint when the lottery's spare SOL can't (`funded`), back","at the close."],"writable":true,"signer":true},{"name":"project"},{"name":"lottery","writable":true},{"name":"round","docs":["round's first purchase."],"writable":true},{"name":"player_token","writable":true},{"name":"payment_vault","docs":["payment (checked in the handler)."],"writable":true},{"name":"mint"},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"chosen","docs":["(`To::Chosen` with an item). Checked against the choice."],"optional":true},{"name":"counts","docs":["tickets one wallet holds in a round. Made at their first count, its rent theirs."],"writable":true,"optional":true},{"name":"associated_token_program","docs":["For a share the buyer chooses: opens its recipient's account of the mint when it is not there."],"optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}],"args":[{"name":"count","type":"u32"},{"name":"chosen_recipient","type":{"option":"pubkey"}},{"name":"revision","type":"u32"}]},{"name":"callback_lottery","docs":["The oracle's answer: picks the winning ticket."],"discriminator":[177,95,170,205,202,136,78,28],"accounts":[{"name":"vrf_program_identity","docs":["The oracle's identity for this program, by address."],"signer":true},{"name":"round","docs":["older round, one drawn already, a lottery made again) is refused."],"writable":true}],"args":[{"name":"randomness","type":{"array":["u8",32]}}]},{"name":"callback_random","docs":["The oracle's answer, written as a receipt."],"discriminator":[64,93,248,223,247,90,38,224],"accounts":[{"name":"vrf_program_identity","docs":["The oracle's identity for this program, by address."],"signer":true},{"name":"project"},{"name":"reference"}],"args":[{"name":"randomness","type":{"array":["u8",32]}}]},{"name":"callback_roll","docs":["The oracle's answer: picks the box order's outcome."],"discriminator":[104,43,141,38,167,29,52,209],"accounts":[{"name":"vrf_program_identity","docs":["The oracle's identity for this program, by address."],"signer":true},{"name":"order","writable":true},{"name":"loot_box","docs":["Written: the order's draws leave its `in_flight`."],"writable":true},{"name":"ticket","docs":["first answer to land rolls the order; any other then finds it no longer asked."]}],"args":[{"name":"randomness","type":{"array":["u8",32]}}]},{"name":"claim","docs":["Anyone pays a decided or called-off contest's entry `entry` to its player, and moves the","NFTs of the entries `nfts` names where they go; the claim that leaves nothing owed closes","the contest. With `forgo` (the player only), a winner's first claim goes without its prize;","with `end` (the winner only), it leaves the rest of its share of the losers' NFTs to the","opener. An NFT passed as its hold's address becomes a hold for the wallet it goes to."],"discriminator":[44],"accounts":[{"name":"payer","docs":["Anyone, but for a winner's first claim that gives a prize or picks: the winner or the project's keys.","Opens the player's account of the mint when it is not there."],"writable":true,"signer":true},{"name":"project"},{"name":"contest","writable":true},{"name":"entries","writable":true},{"name":"player","writable":true},{"name":"opener","docs":["contest, its list's header and its pot at the close."],"writable":true},{"name":"pot","writable":true,"pda":{"seeds":[{"kind":"const","value":[112,111,116]},{"kind":"account","path":"contest"}]}},{"name":"to","writable":true},{"name":"mint","docs":["keeps tokens to burn or fees a Token-2022 mint withheld."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"prize_mint","docs":["what the vault still holds)."],"writable":true,"optional":true},{"name":"prize_pool","docs":["against its index): what the vault still holds goes back to it."],"writable":true,"optional":true},{"name":"prize_vault","writable":true,"optional":true},{"name":"prize_to","docs":["mint (`Tokens::wallet_account`)."],"writable":true,"optional":true},{"name":"treasury","writable":true,"optional":true}],"args":[{"name":"entry","type":"u32"},{"name":"nonce","type":"u64"},{"name":"forgo","type":"bool"},{"name":"end","type":"bool"},{"name":"nfts","type":{"vec":"u32"}}]},{"name":"claim_grant","docs":["Claims a grant's reward for a wallet, for each of the `rounds` a voucher (the Ed25519 check","right before) or the approved list names that it was not paid yet; or once, with no rounds,","of an open grant. The wallet signs its own claim, whatever proves it (`WalletMustSign`);","anyone may pay its fees beside it. `proofs`: a voucher key's under the grant's key root, or","each round's on the approved list."],"discriminator":[45],"accounts":[{"name":"project"},{"name":"grant","docs":["Only `upsert` makes one, at its own address under its project."],"writable":true},{"name":"signer","docs":["Sends the claim. Pays its records, the collectible and the token account with the grant's","funds as far as they go, and a roll's order and the player fee with its own SOL."],"writable":true,"signer":true},{"name":"wallet"},{"name":"rounds","docs":["a claim by voucher or list (checked below). Made at its first round."],"writable":true,"optional":true},{"name":"instructions"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."],"optional":true},{"name":"associated_token_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}],"args":[{"name":"rounds","type":{"vec":{"defined":{"name":"ClaimRound"}}}},{"name":"expires","type":"i64"},{"name":"person_hash","type":{"array":["u8",32]}},{"name":"proofs","type":{"vec":{"vec":{"array":["u8",32]}}}},{"name":"nonce","type":"u64"}]},{"name":"close_leaf","docs":["Anyone closes a compressed NFT's record that no longer reads (its leaf changed, or its root left the change log); its rent goes back","to whoever paid it. Anyone closes a Sheet whose NFT is burned, its rent to the project's treasury."],"discriminator":[10],"accounts":[{"name":"record","writable":true},{"name":"tree","docs":["(read below)."]},{"name":"payer","docs":["A record's payer who signs closes it while it still reads."],"writable":true},{"name":"project","docs":["For a Sheet, its project, for its treasury."],"optional":true},{"name":"edition","docs":["empty once Token Metadata burned it (read below)."],"optional":true}],"args":[]},{"name":"close_listing","docs":["Its maker takes a listed NFT home. While a rental runs it only stops the listing (no new","rental), and the NFT goes home with a later call once the rental is over."],"discriminator":[42],"accounts":[{"name":"maker","writable":true,"signer":true},{"name":"project"},{"name":"listing","writable":true,"pda":{"seeds":[{"kind":"const","value":[108,105,115,116,105,110,103]},{"kind":"account","path":"project"},{"kind":"account","path":"piece.asset","account":"Piece"}]}},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[]},{"name":"close_offer","docs":["Its maker calls an offer off: what is left goes back to them."],"discriminator":[36],"accounts":[{"name":"maker","writable":true,"signer":true},{"name":"project"},{"name":"offer","writable":true},{"name":"mint"},{"name":"vault","writable":true},{"name":"maker_token","docs":["when it is not there."],"writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[]},{"name":"close_shard","docs":["Anyone closes a shard of a grant's claims or rounds once the grant is closed or made again;","its rent goes to the project's owner."],"discriminator":[46],"accounts":[{"name":"project"},{"name":"grant","pda":{"seeds":[{"kind":"const","value":[103,114,97,110,116]},{"kind":"account","path":"project"},{"kind":"arg","path":"id"}]}},{"name":"shard","writable":true},{"name":"owner","writable":true}],"args":[{"name":"id","type":"u16"},{"name":"incarnation","type":"u64"},{"name":"rounds","type":"bool"},{"name":"shard","type":"u8"}]},{"name":"collect_fees","discriminator":[53],"accounts":[{"name":"admin","signer":true},{"name":"platform"},{"name":"to","writable":true}],"args":[]},{"name":"collectible","docs":["The authority mints a collectible without a sale, rewrites one's attributes, or burns","a burnable one."],"discriminator":[8],"accounts":[{"name":"authority","docs":["Pays a new asset's rent and a longer attribute list."],"writable":true,"signer":true},{"name":"project"},{"name":"asset","docs":["authority over is a Core asset of another collection, or a Token Metadata NFT's mint. For","`Profile`, the wallet whose profile it writes (nothing is written on it)."],"writable":true},{"name":"owner","writable":true,"optional":true},{"name":"collection","docs":["(checked below); for `Set`, the","asset's own (Core's address for one in none; Core checks the pair). Writable whenever","Core writes the asset."]},{"name":"mpl_core_program"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"sheet","docs":["the first time; for `Profile`, the wallet's profile","(`sheet.rs`), checked by its address."],"writable":true,"optional":true}],"args":[{"name":"change","type":{"defined":{"name":"Change"}}},{"name":"reference","type":{"array":["u8",32]}}]},{"name":"craft","docs":["A player crafts a recipe, at the version they saw, `times` over."],"discriminator":[28],"accounts":[{"name":"player","docs":["Owns what is handed in, pays the rent of what is made and gets the rent of what is burned."],"writable":true,"signer":true},{"name":"project"},{"name":"recipe"},{"name":"mpl_core_program"},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"associated_token_program","docs":["Needed only when a line pays into an account that is not there yet, which it then opens."],"optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"counts","docs":["wallet crafts. Made at their first count, its rent theirs."],"writable":true,"optional":true},{"name":"profile","docs":["(`PROFILE_PLACE`), checked by its address (`WrongProfile`)."],"writable":true,"optional":true}],"args":[{"name":"version","type":"u32"},{"name":"times","type":"u64"},{"name":"nonce","type":"u64"}]},{"name":"create_project","discriminator":[47],"accounts":[{"name":"owner","docs":["Its creator and first owner. Pays the rent of the project and its fee box, and the project fee."],"writable":true,"signer":true},{"name":"authority"},{"name":"treasury"},{"name":"project","writable":true,"pda":{"seeds":[{"kind":"const","value":[112,114,111,106,101,99,116]},{"kind":"account","path":"owner"},{"kind":"arg","path":"id"}]}},{"name":"fees","writable":true,"pda":{"seeds":[{"kind":"const","value":[102,101,101,115]},{"kind":"account","path":"project"}]}},{"name":"platform","docs":["The platform, read for the fee."]},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"id","type":"u64"},{"name":"authority","type":"pubkey"},{"name":"treasury","type":"pubkey"},{"name":"collections","type":{"vec":"pubkey"}}]},{"name":"decide","docs":["The authority, or a decider's signed verdict, names the side of a contest that won, or","(`None`) calls it off. `expires` is the verdict's (ignored for the authority). `recipient`","is the wallet the contest's chosen share pays, when it has one."],"discriminator":[15],"accounts":[{"name":"signer","docs":["The project's authority, or anyone sending a decider's verdict."],"writable":true,"signer":true},{"name":"project"},{"name":"contest","writable":true},{"name":"mint"},{"name":"pot","writable":true,"pda":{"seeds":[{"kind":"const","value":[112,111,116]},{"kind":"account","path":"contest"}]}},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"instructions","optional":true},{"name":"prize_mint","writable":true,"optional":true},{"name":"prize_pool","writable":true,"optional":true},{"name":"prize_vault","writable":true,"optional":true}],"args":[{"name":"side","type":{"option":"u16"}},{"name":"expires","type":"i64"},{"name":"reference","type":{"array":["u8",32]}},{"name":"incarnation","type":"u64"},{"name":"recipient","type":{"option":"pubkey"}}]},{"name":"draw_lottery","docs":["Anyone asks the oracle for a lottery's draw once it is due: the first ask fixes the round's","money and opens the next round; an unanswered one is asked again, and after a timeout the","round is cancelled. `skip_hooked` (the authority only): hooked sources give this round nothing."],"discriminator":[19],"accounts":[{"name":"payer","docs":["Pays the oracle, and the round's token accounts the ask opens when the lottery's spare SOL","can't (`funded`)."],"writable":true,"signer":true},{"name":"project"},{"name":"lottery","docs":["The lottery: for the current round only. A round whose draw waits is asked again or cancelled","without it, so a lottery closed since never strands it."],"writable":true,"optional":true},{"name":"round","docs":["into it), or a round of this lottery whose draw is waiting."],"writable":true},{"name":"oracle_queue","docs":["whoever MagicBlock lets serve it could answer."],"writable":true},{"name":"program_identity"},{"name":"vrf_program","docs":["a round that asks nothing (nothing sold, short of its least sale, cancelled) moves on even","with the oracle gone."],"address":"Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz"},{"name":"slot_hashes"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]}],"args":[{"name":"skip_hooked","type":"bool"}]},{"name":"end_auction","docs":["Anyone ends an auction that is over: the lot to the winner and the bid through the","shares (`ending`: together, or the lot first), or the lot home. Its seller calls off one with","no bid; anyone a sale whose lot or bid is proven gone, the project's keys any sale not delivered."],"discriminator":[33],"accounts":[{"name":"signer","docs":["Anyone once it is over; the seller, to call off one with no bid (the project's keys pay the","project fee for it); the project's keys, to call off a sale whose lot is still there. Pays the","rent of a collectible minted for the winner, and opens the accounts the end pays into."],"writable":true,"signer":true},{"name":"project"},{"name":"auction","writable":true},{"name":"seller","writable":true},{"name":"bidder","docs":["project's token accounts its Token Metadata NFT bids emptied.","Unread with no bid."],"writable":true},{"name":"mint"},{"name":"vault","docs":["read-only, with no bid or with NFT bids."]},{"name":"proceeds","docs":["NFT, or to the project's treasury wallet for its item (`rail::split_to`); the whole bid to the","winner when the sale is called off."]},{"name":"proceeds_token","writable":true},{"name":"item","docs":["For an item lot: the item."],"writable":true,"optional":true},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"loot_box","docs":["For a roll lot that sold: its box, and the order the winner's roll is made in,","`[\"order\", project, winner, nonce]`, which the signer pays for."],"optional":true},{"name":"order","docs":["called off), passed to make it a hold for its seller, its hold, `[\"hold\", asset, 0]`","(`hold::owe`). Never for a lot that sold."],"writable":true,"optional":true}],"args":[{"name":"reference","type":{"array":["u8",32]}},{"name":"nonce","type":"u64"},{"name":"ending","type":{"defined":{"name":"Ending"}}}]},{"name":"enter","docs":["A player puts `amount` on one side of a contest, at the `incarnation` they saw."],"discriminator":[43],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"project"},{"name":"contest","writable":true},{"name":"entries","writable":true},{"name":"pot","writable":true,"pda":{"seeds":[{"kind":"const","value":[112,111,116]},{"kind":"account","path":"contest"}]}},{"name":"player_token","writable":true},{"name":"mint"},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"side","type":"u16"},{"name":"amount","type":"u64"},{"name":"incarnation","type":"u64"}]},{"name":"harvest","docs":["A player collects what their seat is owed, or with `compound` adds it to their stake when the","farm's rewards are its staked token."],"discriminator":[26],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"side","accounts":[{"name":"project"},{"name":"farm","writable":true},{"name":"rewards_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,119,97,114,100,115]},{"kind":"account","path":"farm"}]}},{"name":"rewards_mint","docs":["a farm that mints pays a seat."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"ends","writable":true,"optional":true,"pda":{"seeds":[{"kind":"const","value":[101,110,100,115]},{"kind":"account","path":"farm"}]}}]},{"name":"seat","writable":true},{"name":"player_rewards","writable":true},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"held","docs":["asset, their token account of a Token Metadata NFT (or its mint, once burned), or a compressed","NFT's record, with its `tree` (`held`: refused without evidence either way)."],"optional":true},{"name":"tree","optional":true},{"name":"staked_vault","writable":true,"optional":true}],"args":[{"name":"compound","type":"bool"}]},{"name":"hold","docs":["A player hands NFTs to the project until `free_at`; `reference` is the project's label."],"discriminator":[30],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"project"},{"name":"hold","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,111,108,100]},{"kind":"account","path":"piece.asset","account":"Piece"},{"kind":"arg","path":"free_at"}]}},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"free_at","type":"i64"},{"name":"reference","type":{"array":["u8",32]}}]},{"name":"init_platform","discriminator":[51],"accounts":[{"name":"admin","writable":true,"signer":true},{"name":"platform","writable":true,"pda":{"seeds":[{"kind":"const","value":[112,108,97,116,102,111,114,109]}]}},{"name":"program_data"},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"fees","type":{"defined":{"name":"Fees"}}}]},{"name":"move_tokens","docs":["The authority moves the project's tokens: out of a pool, out of what a farm holds free, or","newly minted, to a pool, a token account or a collectible's holder, or burned."],"discriminator":[7],"accounts":[{"name":"authority","writable":true,"signer":true},{"name":"project"},{"name":"pool","writable":true,"optional":true},{"name":"mint","docs":["marks it writable when tokens are minted or burned."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"farm","docs":["For `TokenSource::Farm`, the farm, credited first so what it holds free is current; its","rewards vault is the `pool`, and its rewards mint the `mint`."],"writable":true,"optional":true},{"name":"farm_ends","writable":true,"optional":true}],"args":[{"name":"from","type":{"defined":{"name":"TokenSource"}}},{"name":"to","type":{"defined":{"name":"To"}}},{"name":"amount","type":{"defined":{"name":"Amount"}}},{"name":"reference","type":{"array":["u8",32]}}]},{"name":"open_auction","docs":["A seller opens an auction on a lot, and is its only signer: an NFT they hold (a player's in","one of the project's collections), handed to the project until the end, or (the project's owner or","authority) a new unit of an item."],"discriminator":[31],"accounts":[{"name":"seller","docs":["Puts the lot up, the only signer: an NFT's holder, or","the project's owner or authority for a new unit of its item. Pays the rent and the fee."],"writable":true,"signer":true},{"name":"project"},{"name":"auction","writable":true,"pda":{"seeds":[{"kind":"const","value":[97,117,99,116,105,111,110]},{"kind":"account","path":"project"},{"kind":"account","path":"seller"},{"kind":"arg","path":"id"}]}},{"name":"mint"},{"name":"item","docs":["For an item lot: the item."],"writable":true,"optional":true},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"loot_box","optional":true}],"args":[{"name":"id","type":"u32"},{"name":"args","type":{"defined":{"name":"AuctionArgs"}}}]},{"name":"open_box","docs":["Open a loot box. Opens an order and asks the oracle for its roll. `chosen_recipient` names the wallet or collectible a share of","the box's lets the buyer choose."],"discriminator":[3],"accounts":[{"name":"loot_box","writable":true},{"name":"checkout","accounts":[{"name":"player","writable":true,"signer":true},{"name":"project"},{"name":"platform"},{"name":"order","docs":["Any `nonce` the player has no open order at in this project."],"writable":true,"pda":{"seeds":[{"kind":"const","value":[111,114,100,101,114]},{"kind":"account","path":"project"},{"kind":"account","path":"player"},{"kind":"arg","path":"nonce"}]}},{"name":"mint"},{"name":"player_token","writable":true},{"name":"vault","docs":["nowhere else. The player opens it when it is not there (`Tokens::wallet_account`)."],"writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}]},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"oracle_queue","docs":["whoever MagicBlock lets serve it could answer."],"writable":true},{"name":"program_identity"},{"name":"vrf_program","address":"Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz"},{"name":"slot_hashes"},{"name":"chosen","docs":["one (`To::Chosen` with an item). Checked against the choice."],"optional":true},{"name":"counts","docs":["wallet buys. Made at their first count, its rent theirs."],"writable":true,"optional":true}],"args":[{"name":"nonce","type":"u64"},{"name":"max_price","type":"u64"},{"name":"chosen_recipient","type":{"option":"pubkey"}},{"name":"version","type":"u32"},{"name":"count","type":"u32"},{"name":"settler","type":"pubkey"}]},{"name":"open_contest","docs":["The authority opens a contest: sides to back, and a pot."],"discriminator":[14],"accounts":[{"name":"authority","writable":true,"signer":true},{"name":"project","writable":true},{"name":"contest","writable":true,"pda":{"seeds":[{"kind":"const","value":[99,111,110,116,101,115,116]},{"kind":"account","path":"project"},{"kind":"arg","path":"id"}]}},{"name":"mint"},{"name":"pot","writable":true,"pda":{"seeds":[{"kind":"const","value":[112,111,116]},{"kind":"account","path":"contest"}]}},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"prize_mint","optional":true},{"name":"prize_vault","writable":true,"optional":true},{"name":"entries","writable":true},{"name":"prize_pool","docs":["mint must be `prize_mint`."],"optional":true}],"args":[{"name":"id","type":"u32"},{"name":"args","type":{"defined":{"name":"ContestArgs"}}}]},{"name":"open_farm","docs":["Open a farm: tokens or the project's collectibles staked with lock tiers, weighted by what","their collectibles say, sharing what lands in its rewards vault, or paying a fixed rate."],"discriminator":[21],"accounts":[{"name":"owner","writable":true,"signer":true},{"name":"project"},{"name":"farm","writable":true,"pda":{"seeds":[{"kind":"const","value":[102,97,114,109]},{"kind":"account","path":"project"},{"kind":"arg","path":"id"}]}},{"name":"rewards_mint"},{"name":"rewards_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,119,97,114,100,115]},{"kind":"account","path":"farm"}]}},{"name":"staked_mint","optional":true},{"name":"staked_vault","docs":["below); none for a farm of NFTs."],"writable":true,"optional":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"exit_pool","optional":true},{"name":"ends","writable":true,"optional":true,"pda":{"seeds":[{"kind":"const","value":[101,110,100,115]},{"kind":"account","path":"farm"}]}}],"args":[{"name":"id","type":"u32"},{"name":"args","type":{"defined":{"name":"FarmArgs"}}}]},{"name":"open_listing","docs":["A holder (any wallet, signing alone) lists an NFT: the project holds it until it is sold or","the listing is closed."],"discriminator":[40],"accounts":[{"name":"maker","docs":["Holds the NFT, hands it in and signs alone. Pays the rent and the fee."],"writable":true,"signer":true},{"name":"project"},{"name":"listing","writable":true,"pda":{"seeds":[{"kind":"const","value":[108,105,115,116,105,110,103]},{"kind":"account","path":"project"},{"kind":"account","path":"piece.asset","account":"Piece"}]}},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"mint","docs":["token program checks it."]},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"deal","type":{"defined":{"name":"ListingDeal"}}},{"name":"shares","type":{"vec":{"defined":{"name":"Share"}}}}]},{"name":"open_offer","docs":["A maker (any wallet, signing alone) puts money up for NFTs that pass a rule: all of it, into","the project's vault, now."],"discriminator":[35],"accounts":[{"name":"maker","docs":["Puts the money up and signs alone. Pays the rent and the fee."],"writable":true,"signer":true},{"name":"project"},{"name":"offer","writable":true,"pda":{"seeds":[{"kind":"const","value":[111,102,102,101,114]},{"kind":"account","path":"project"},{"kind":"account","path":"maker"},{"kind":"arg","path":"id"}]}},{"name":"mint"},{"name":"maker_token","writable":true},{"name":"vault","docs":["is not there."],"writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"id","type":"u32"},{"name":"args","type":{"defined":{"name":"OfferArgs"}}}]},{"name":"open_pool","discriminator":[49],"accounts":[{"name":"owner","writable":true,"signer":true},{"name":"project"},{"name":"mint"},{"name":"pool","writable":true,"pda":{"seeds":[{"kind":"const","value":[112,111,111,108]},{"kind":"account","path":"project"},{"kind":"arg","path":"index"}]}},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"index","type":"u16"}]},{"name":"open_tree","docs":["The project's keys make a Bubblegum v2 tree the project alone mints compressed prizes into."],"discriminator":[34],"accounts":[{"name":"signer","docs":["The project's owner or authority: pays the tree config's rent and the project fee."],"writable":true,"signer":true},{"name":"project"},{"name":"tree","docs":["transaction, the size its depth, buffer and canopy take (Bubblegum and mpl-account-compression","check it)."],"writable":true},{"name":"tree_config","writable":true},{"name":"bubblegum_program"},{"name":"compression_program"},{"name":"log_wrapper"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"max_depth","type":"u32"},{"name":"max_buffer_size","type":"u32"}]},{"name":"pay","docs":["Pay `amount`, split at once into pools, burn and the project's treasury."],"discriminator":[0],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"project"},{"name":"mint","docs":["The caller marks it writable when a share burns."]},{"name":"player_token","docs":["checks that the player may spend it."],"writable":true},{"name":"treasury"},{"name":"treasury_token","writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"amount","type":"u64"},{"name":"shares","type":{"vec":{"defined":{"name":"Share"}}}},{"name":"reference","type":{"array":["u8",32]}}]},{"name":"pay_nft","docs":["Pay with an NFT, any kind: burned, or given to a wallet. The receipt is the record."],"discriminator":[1],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"project"},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"to"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"reference","type":{"array":["u8",32]}}]},{"name":"prove_leaf","docs":["Anyone proves a compressed NFT's leaf against its tree's current root, or one still in its","change log with no change since at the leaf (`bubblegum.rs`): the instructions after it in","the transaction read it as they read any other NFT."],"discriminator":[9],"accounts":[{"name":"signer","docs":["Anyone. Pays the record's rent the first time, and what a larger leaf lacks after."],"writable":true,"signer":true},{"name":"asset"},{"name":"record","writable":true,"pda":{"seeds":[{"kind":"const","value":[108,101,97,102]},{"kind":"account","path":"asset"}]}},{"name":"owner","docs":["none), as the leaf names them: only their addresses are read."]},{"name":"delegate"},{"name":"collection"},{"name":"tree"},{"name":"tree_config"},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"leaf","type":{"defined":{"name":"Leaf"}}}]},{"name":"prove_traits","docs":["Anyone writes an NFT's proven traits into its Sheet (the ones it doesn't have yet)."],"discriminator":[12],"accounts":[{"name":"signer","docs":["Anyone. Pays what the Sheet grows by."],"writable":true,"signer":true},{"name":"traits","docs":["for a project whose owner or authority signed."]},{"name":"nft"},{"name":"sheet","writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"attributes","type":{"vec":{"defined":{"name":"Attribute"}}}},{"name":"proof","type":{"vec":{"array":["u8",32]}}}]},{"name":"pull","docs":["Anyone settles one part of a round, in any order: an entry's refund or NFT ticket, its places'","pot parts or prizes (a roll's order at `nonce`), or a part owed in common. The last part owed","closes the round."],"discriminator":[20],"accounts":[{"name":"payer","docs":["Anyone. Opens the accounts the part pays into that are not there yet, and pays what a prize","opens or makes."],"writable":true,"signer":true},{"name":"project"},{"name":"round","writable":true},{"name":"buyer","writable":true},{"name":"mint","docs":["Writable for a minted prize."],"writable":true,"optional":true},{"name":"vault","writable":true,"optional":true},{"name":"to","writable":true,"optional":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"opener","writable":true,"optional":true},{"name":"treasury","writable":true,"optional":true}],"args":[{"name":"entry","type":"u32"},{"name":"part","type":{"defined":{"name":"Part"}}},{"name":"nonce","type":"u64"}]},{"name":"refresh_seat","docs":["Anyone counts a seat's weight again from its collectible as it is now."],"discriminator":[27],"accounts":[{"name":"signer","docs":["Anyone. Pays for what a farm with growth adds to the collectible or its Sheet."],"writable":true,"signer":true},{"name":"side","accounts":[{"name":"project"},{"name":"farm","writable":true},{"name":"rewards_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,119,97,114,100,115]},{"kind":"account","path":"farm"}]}},{"name":"rewards_mint","docs":["a farm that mints pays a seat."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"ends","writable":true,"optional":true,"pda":{"seeds":[{"kind":"const","value":[101,110,100,115]},{"kind":"account","path":"farm"}]}}]},{"name":"seat","docs":["Checked as this farm's by its address (`check_seat`)."],"writable":true},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"profile","docs":["(`Farm::uses_profile`), checked by its address (`WrongProfile`)."],"writable":true,"optional":true}],"args":[]},{"name":"refund","docs":["Give an order's payment back to its player."],"discriminator":[5],"accounts":[{"name":"signer","docs":["Anyone. Opens the player's account of the order's mint when it is not there."],"writable":true,"signer":true},{"name":"order","writable":true},{"name":"player","writable":true},{"name":"project"},{"name":"mint"},{"name":"vault","writable":true},{"name":"player_token","writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"loot_box","docs":["The order's box, when the order counts draws in its `in_flight` (`Order::reserved`): they leave it."],"writable":true,"optional":true},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"counts","docs":["the box's limit: the refund gives the count back (checked below)."],"writable":true,"optional":true},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]}],"args":[]},{"name":"release","docs":["Held collectibles leave the project: to whoever the authority names while their holds run,","home to their player by anyone once they are over."],"discriminator":[13],"accounts":[{"name":"signer","docs":["The project's authority while the hold runs; anyone once it is over."],"writable":true,"signer":true},{"name":"project"},{"name":"hold","writable":true},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"payer","writable":true},{"name":"rent_to","writable":true},{"name":"to","docs":["it is over; for a loan, the borrower once it is repaid, else the lender once it is due."]},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"reference","type":{"array":["u8",32]}}]},{"name":"repay","docs":["Anyone repays a loan before it is due, the project shown to hold its NFT still: the money goes","to the lender and, with `home`, the NFT to the borrower, the hold closing; without, the hold","becomes a plain one that is over, for `release`. `repay` is the amount the payer saw."],"discriminator":[39],"accounts":[{"name":"payer","docs":["Anyone: the borrower, a friend, a guild. Pays `repay` and opens the lender's account of","the mint when it is not there."],"writable":true,"signer":true},{"name":"project"},{"name":"hold","writable":true},{"name":"lender"},{"name":"lender_token","writable":true},{"name":"payer_token","writable":true},{"name":"mint"},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"borrower","docs":["hold's rent and a Token Metadata NFT's emptied account's (a loan's hold names its borrower","as its payer and rent wallet too, `borrow`)."],"writable":true},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]}],"args":[{"name":"home","type":"bool"},{"name":"repay","type":"u64"}]},{"name":"roll","docs":["The authority asks the oracle for a random number for a rule of its own, labelled","`reference`."],"discriminator":[16],"accounts":[{"name":"authority","docs":["Pays the platform's fee and the oracle's."],"writable":true,"signer":true},{"name":"project"},{"name":"oracle_queue","docs":["whoever MagicBlock lets serve it could answer."],"writable":true},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"program_identity"},{"name":"vrf_program","address":"Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz"},{"name":"slot_hashes"}],"args":[{"name":"reference","type":{"array":["u8",32]}}]},{"name":"run_schedule","docs":["The project's keys or who it pays run a schedule that is due (anyone, a sealed one that burns). A run pays once, and the runs missed before it lapse; a sealed fixed amount pays every run due, up to `upto` runs made (0: no bound)."],"discriminator":[17],"accounts":[{"name":"payer","docs":["The project's owner or authority, or who the run pays (`To::Wallet`, the treasury), since nobody","else should say when a share of a pool is read. Anyone runs a sealed burn, which pays nobody.","Opens the account the run pays into when it is not there."],"writable":true,"signer":true},{"name":"project"},{"name":"schedule","writable":true},{"name":"pool","writable":true,"optional":true},{"name":"mint","docs":["marks it writable when tokens are minted or burned."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}],"args":[{"name":"upto","type":"u32"}]},{"name":"sell_to_offer","docs":["A holder sells an NFT into a bid: the NFT to the maker, the price to the seller."],"discriminator":[37],"accounts":[{"name":"seller","docs":["Holds the NFT and sells it. Opens the accounts the price is paid into."],"writable":true,"signer":true},{"name":"project"},{"name":"offer","writable":true},{"name":"maker","writable":true},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"mint"},{"name":"vault","writable":true},{"name":"seller_token","writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"terms","type":{"array":["u8",32]}}]},{"name":"set_platform","discriminator":[52],"accounts":[{"name":"admin","signer":true},{"name":"platform","writable":true},{"name":"next_admin","docs":["Who signs for the platform from now on: the current admin to keep it. It signs, so a","mistyped key can never take the platform over."],"signer":true}],"args":[{"name":"fees","type":{"defined":{"name":"Fees"}}}]},{"name":"set_suspended","discriminator":[54],"accounts":[{"name":"admin","signer":true},{"name":"platform"},{"name":"project","writable":true}],"args":[{"name":"suspended","type":"bool"}]},{"name":"set_traits","docs":["The project's owner or authority vouches for NFTs' off-chain traits: a Merkle root, under","`key` (a collection's address, by convention)."],"discriminator":[11],"accounts":[{"name":"signer","docs":["The project's owner or authority. Pays the rent."],"writable":true,"signer":true},{"name":"project"},{"name":"traits","writable":true,"pda":{"seeds":[{"kind":"const","value":[116,114,97,105,116,115]},{"kind":"account","path":"project"},{"kind":"arg","path":"key"}]}},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"key","type":"pubkey"},{"name":"root","type":{"array":["u8",32]}}]},{"name":"settle","docs":["Carry out a rolled order: hand over what its roll set aside (items, tokens, NFTs) and","split its payment. Its player, the key they named, or the project's keys send it."],"discriminator":[4],"accounts":[{"name":"signer","docs":["The order's player, its project's owner or authority, or the key its player named","(`Order::settler`). Opens the accounts the order pays into that are not there yet."],"writable":true,"signer":true},{"name":"order","docs":["Closed to its player by its last part."],"writable":true},{"name":"player","writable":true},{"name":"project"},{"name":"mint","docs":["burns: a share that burns."]},{"name":"vault","writable":true},{"name":"treasury"},{"name":"treasury_token","writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"fees","writable":true},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"receiver","docs":["of this program there sends it back to the player, `price::given_to`), puts it in a stash","(the stash, by address), or burns it (the incinerator's address, for any kind but Core)."],"writable":true,"optional":true},{"name":"player_token","docs":["part of an order whose roll didn't make every draw: their share of the payment comes back to it."],"writable":true,"optional":true}],"args":[{"name":"upto","type":"u32"},{"name":"prize_accounts","type":"u16"}]},{"name":"stake_nft","docs":["A player stakes an NFT of any kind in a farm at a lock tier: on a seat of its","own in a farm of collectibles, or as the booster of their token seat in a farm of tokens."],"discriminator":[24],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"side","accounts":[{"name":"project"},{"name":"farm","writable":true},{"name":"rewards_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,119,97,114,100,115]},{"kind":"account","path":"farm"}]}},{"name":"rewards_mint","docs":["a farm that mints pays a seat."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"ends","writable":true,"optional":true,"pda":{"seeds":[{"kind":"const","value":[101,110,100,115]},{"kind":"account","path":"farm"}]}}]},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"seat","docs":["own seat may not exist yet."],"writable":true},{"name":"player_rewards","docs":["NFT's own seat leaving)."],"writable":true,"optional":true},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"associated_token_program","docs":["For a mission's prize of tokens, when the player's account of the mint is not there yet."],"optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"previous","docs":["its new holder takes over (`stake_nft`): paid back the seat's rent. By address."],"writable":true,"optional":true},{"name":"loot_box","docs":["Leaving a mission that rolls (`Tier::roll`): its box, and the order its roll is made in, at","`[\"order\", project, player, nonce]` (`order::waiting_order`)."],"optional":true},{"name":"order","writable":true,"optional":true},{"name":"profile","docs":["(`Farm::uses_profile`), checked by its address (`WrongProfile`)."],"writable":true,"optional":true}],"args":[{"name":"tier","type":"u8"}]},{"name":"stake_tokens","docs":["A player stakes tokens in a farm at a lock tier."],"discriminator":[22],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"side","accounts":[{"name":"project"},{"name":"farm","writable":true},{"name":"rewards_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,119,97,114,100,115]},{"kind":"account","path":"farm"}]}},{"name":"rewards_mint","docs":["a farm that mints pays a seat."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"ends","writable":true,"optional":true,"pda":{"seeds":[{"kind":"const","value":[101,110,100,115]},{"kind":"account","path":"farm"}]}}]},{"name":"seat","docs":["tokens only: in a farm of collectibles `[\"seat\", farm, signer]` is the seat of the","collectible whose key signs, and that seat is its staker's."],"writable":true,"pda":{"seeds":[{"kind":"const","value":[115,101,97,116]},{"kind":"account","path":"side.farm","account":"FarmSide"},{"kind":"account","path":"player"}]}},{"name":"staked_vault","docs":["that isn't its own; a farm of collectibles has none."],"writable":true,"pda":{"seeds":[{"kind":"const","value":[115,116,97,107,101,100]},{"kind":"account","path":"side.farm","account":"FarmSide"}]}},{"name":"mint"},{"name":"player_tokens","docs":["from it (the signer must be able to spend from it), `unstake_tokens` pays what leaves into it.","The token program refuses an account of another mint."],"writable":true},{"name":"player_rewards","writable":true,"optional":true},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"exit_pool","docs":["address. The client marks the staked mint writable when the fee is burned."],"writable":true,"optional":true},{"name":"profile","docs":["(`Farm::uses_profile`), checked by its address (`WrongProfile`)."],"writable":true,"optional":true}],"args":[{"name":"amount","type":"u64"},{"name":"tier","type":"u8"}]},{"name":"stash","docs":["The project's owner or authority puts NFTs into a stash (`out` false), each with its weight, to","be given away as prizes, or takes them out: one of the project's stashes, or a lottery's own","(`StashOf`)."],"discriminator":[29],"accounts":[{"name":"signer","docs":["The project's owner or authority. Putting one in, it holds the NFT and pays what the stash","grows by; taking one out, it gets the rent the stash no longer needs."],"writable":true,"signer":true},{"name":"project"},{"name":"stash","docs":["hand: it may be bigger than the heap."],"writable":true},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"to","docs":["`[\"hold\", nft, 0]`, made for the treasury. Unread going in."],"writable":true},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"lottery","docs":["there holding no lottery (never written, or closed) promises nothing."],"optional":true},{"name":"round","docs":["places are read)."],"optional":true}],"args":[{"name":"of","type":{"defined":{"name":"StashOf"}}},{"name":"out","type":"bool"},{"name":"weights","type":{"vec":"u32"}}]},{"name":"take_listing","docs":["A taker buys a listed NFT, or rents it for `periods` periods."],"discriminator":[41],"accounts":[{"name":"taker","docs":["Pays, and buys or rents. Opens the accounts the payment goes to."],"writable":true,"signer":true},{"name":"project"},{"name":"listing","writable":true,"pda":{"seeds":[{"kind":"const","value":[108,105,115,116,105,110,103]},{"kind":"account","path":"project"},{"kind":"account","path":"piece.asset","account":"Piece"}]}},{"name":"maker","docs":["with a sale."],"writable":true},{"name":"maker_token","writable":true},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"mint"},{"name":"taker_token","writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"terms","type":{"array":["u8",32]}},{"name":"periods","type":"u16"}]},{"name":"unstake_nft","docs":["A player takes their collectible out of a farm once the seat's lock has run: its own seat","closes and pays what it is owed; a token seat it boosted stays, with what it is owed."],"discriminator":[25],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"side","accounts":[{"name":"project"},{"name":"farm","writable":true},{"name":"rewards_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,119,97,114,100,115]},{"kind":"account","path":"farm"}]}},{"name":"rewards_mint","docs":["a farm that mints pays a seat."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"ends","writable":true,"optional":true,"pda":{"seeds":[{"kind":"const","value":[101,110,100,115]},{"kind":"account","path":"farm"}]}}]},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"seat","docs":["own seat may not exist yet."],"writable":true},{"name":"player_rewards","docs":["NFT's own seat leaving)."],"writable":true,"optional":true},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"associated_token_program","docs":["For a mission's prize of tokens, when the player's account of the mint is not there yet."],"optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"previous","docs":["its new holder takes over (`stake_nft`): paid back the seat's rent. By address."],"writable":true,"optional":true},{"name":"loot_box","docs":["Leaving a mission that rolls (`Tier::roll`): its box, and the order its roll is made in, at","`[\"order\", project, player, nonce]` (`order::waiting_order`)."],"optional":true},{"name":"order","writable":true,"optional":true},{"name":"profile","docs":["(`Farm::uses_profile`), checked by its address (`WrongProfile`)."],"writable":true,"optional":true}],"args":[{"name":"forfeit","type":"bool"},{"name":"nonce","type":"u64"},{"name":"need_prize","type":"bool"}]},{"name":"unstake_tokens","docs":["A player takes tokens out of a farm and is paid what is owed: once their lock has run, or","before it on a tier with an early exit, for its fee; `forfeit` gives up the rewards."],"discriminator":[23],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"side","accounts":[{"name":"project"},{"name":"farm","writable":true},{"name":"rewards_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,119,97,114,100,115]},{"kind":"account","path":"farm"}]}},{"name":"rewards_mint","docs":["a farm that mints pays a seat."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"ends","writable":true,"optional":true,"pda":{"seeds":[{"kind":"const","value":[101,110,100,115]},{"kind":"account","path":"farm"}]}}]},{"name":"seat","docs":["tokens only: in a farm of collectibles `[\"seat\", farm, signer]` is the seat of the","collectible whose key signs, and that seat is its staker's."],"writable":true,"pda":{"seeds":[{"kind":"const","value":[115,101,97,116]},{"kind":"account","path":"side.farm","account":"FarmSide"},{"kind":"account","path":"player"}]}},{"name":"staked_vault","docs":["that isn't its own; a farm of collectibles has none."],"writable":true,"pda":{"seeds":[{"kind":"const","value":[115,116,97,107,101,100]},{"kind":"account","path":"side.farm","account":"FarmSide"}]}},{"name":"mint"},{"name":"player_tokens","docs":["from it (the signer must be able to spend from it), `unstake_tokens` pays what leaves into it.","The token program refuses an account of another mint."],"writable":true},{"name":"player_rewards","writable":true,"optional":true},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"exit_pool","docs":["address. The client marks the staked mint writable when the fee is burned."],"writable":true,"optional":true},{"name":"profile","docs":["(`Farm::uses_profile`), checked by its address (`WrongProfile`)."],"writable":true,"optional":true}],"args":[{"name":"amount","type":"u64"},{"name":"forfeit","type":"bool"}]},{"name":"update_project","discriminator":[48],"accounts":[{"name":"owner","docs":["Pays for the project growing with its collections, and gets back what it shrinks by."],"writable":true,"signer":true},{"name":"project","writable":true},{"name":"new_owner","docs":["The owner from now on, when it changes. It signs, so a mistyped key can never take the","project over."],"signer":true,"optional":true},{"name":"new_authority","docs":["what owns it (`check_key`)."],"optional":true},{"name":"new_treasury","docs":["what owns it (`check_key`)."],"optional":true},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"update","type":{"defined":{"name":"ProjectUpdate"}}}]},{"name":"upsert","docs":["Write one of the project's records (an item, a box, a schedule, a lottery, a recipe, an","grant: `Def`), or (`None`) close the one at `target`."],"discriminator":[50],"accounts":[{"name":"owner","docs":["Pays for a longer record and gets the rent of a shorter or closed one."],"writable":true,"signer":true},{"name":"project","writable":true},{"name":"target","docs":["because its size changes."],"writable":true},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"def","type":{"option":{"defined":{"name":"Def"}}}}]},{"name":"walk_farm","docs":["Credits a farm up to at most `most` of the times its seats stopped earning, for one that has","passed more of them than one transaction can walk. Anyone; every move walks them anyway."],"discriminator":[55],"accounts":[{"name":"side","accounts":[{"name":"project"},{"name":"farm","writable":true},{"name":"rewards_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,119,97,114,100,115]},{"kind":"account","path":"farm"}]}},{"name":"rewards_mint","docs":["a farm that mints pays a seat."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"ends","writable":true,"optional":true,"pda":{"seeds":[{"kind":"const","value":[101,110,100,115]},{"kind":"account","path":"farm"}]}}]}],"args":[{"name":"most","type":"u32"}]}],"accounts":[{"name":"Auction","discriminator":[20]},{"name":"Contest","discriminator":[10]},{"name":"Farm","discriminator":[17]},{"name":"Grant","discriminator":[27]},{"name":"Hold","discriminator":[9]},{"name":"Item","discriminator":[3]},{"name":"Listing","discriminator":[23]},{"name":"LootBox","discriminator":[4]},{"name":"Lottery","discriminator":[7]},{"name":"Offer","discriminator":[22]},{"name":"Order","discriminator":[5]},{"name":"Platform","discriminator":[1]},{"name":"Project","discriminator":[2]},{"name":"Recipe","discriminator":[8]},{"name":"Schedule","discriminator":[6]},{"name":"Seat","discriminator":[18]}],"events":[{"name":"AuctionEnded","discriminator":[91,165,139,202,204,215,92,52]},{"name":"AuctionOpened","discriminator":[25,230,140,215,100,193,14,70]},{"name":"BidPlaced","discriminator":[135,53,176,83,193,69,108,61]},{"name":"BidRefunded","discriminator":[197,100,31,186,67,28,46,103]},{"name":"Borrowed","discriminator":[225,182,241,78,34,145,253,230]},{"name":"Bought","discriminator":[193,56,215,24,156,76,42,104]},{"name":"Changed","discriminator":[78,218,231,86,31,167,245,14]},{"name":"Claimed","discriminator":[217,192,123,72,108,150,248,33]},{"name":"Crafted","discriminator":[169,195,232,146,229,14,57,149]},{"name":"Decided","discriminator":[137,200,62,254,141,53,205,172]},{"name":"Entered","discriminator":[247,164,21,222,219,178,237,160]},{"name":"FeeChanged","discriminator":[103,252,132,250,1,49,116,145]},{"name":"FeesCollected","discriminator":[233,23,117,225,107,178,254,8]},{"name":"GrantClaimed","discriminator":[61,22,75,116,13,214,74,165]},{"name":"Grown","discriminator":[153,6,113,250,212,63,163,99]},{"name":"Harvested","discriminator":[249,229,78,151,106,185,149,11]},{"name":"Held","discriminator":[46,8,96,23,131,53,182,98]},{"name":"LeftoverBurned","discriminator":[28,216,145,193,156,135,159,255]},{"name":"Listed","discriminator":[243,173,136,195,125,241,12,99]},{"name":"ListingRented","discriminator":[242,147,212,22,174,102,70,216]},{"name":"ListingSold","discriminator":[199,212,98,147,91,49,85,138]},{"name":"LotteryCancelled","discriminator":[106,48,195,83,38,145,61,131]},{"name":"LotteryDrawn","discriminator":[38,250,156,196,171,79,154,208]},{"name":"LotteryPulled","discriminator":[133,151,254,155,78,140,26,203]},{"name":"Moved","discriminator":[114,50,71,164,81,115,48,128]},{"name":"OddsRaised","discriminator":[159,208,208,32,90,70,237,35]},{"name":"OfferClosed","discriminator":[237,38,102,204,165,180,177,164]},{"name":"OfferOpened","discriminator":[51,235,45,64,193,14,119,113]},{"name":"OrderFailed","discriminator":[60,179,157,0,164,131,38,236]},{"name":"OrderPartSettled","discriminator":[160,216,137,215,149,131,185,100]},{"name":"OrderRefunded","discriminator":[120,155,10,169,7,98,202,187]},{"name":"OrderRolled","discriminator":[91,246,84,1,21,64,240,229]},{"name":"OrderSettled","discriminator":[32,21,123,33,68,59,136,131]},{"name":"Paid","discriminator":[240,193,17,238,238,210,129,235]},{"name":"PaidNft","discriminator":[120,165,39,205,45,224,221,97]},{"name":"PrizeForgone","discriminator":[247,186,13,149,109,113,177,223]},{"name":"PrizeGiven","discriminator":[57,156,246,153,98,219,127,254]},{"name":"ProfileWritten","discriminator":[148,147,161,3,122,220,75,161]},{"name":"ProjectSuspended","discriminator":[54,26,240,51,122,132,161,159]},{"name":"ProjectUpdated","discriminator":[16,110,74,3,76,227,179,225]},{"name":"RecordClosed","discriminator":[99,152,89,8,23,79,153,2]},{"name":"RecordWritten","discriminator":[37,206,149,120,44,195,129,60]},{"name":"Released","discriminator":[232,229,255,136,101,189,15,220]},{"name":"Repaid","discriminator":[38,248,231,7,150,164,172,23]},{"name":"Reweighed","discriminator":[77,122,141,46,84,229,112,18]},{"name":"RollMade","discriminator":[30,105,211,68,109,95,1,37]},{"name":"Rolled","discriminator":[243,213,137,215,92,162,11,192]},{"name":"RoundClosed","discriminator":[45,243,28,22,132,70,175,226]},{"name":"SaleCalledOff","discriminator":[19,92,244,154,127,57,87,73]},{"name":"ScheduleRan","discriminator":[145,158,228,183,251,229,1,242]},{"name":"Seated","discriminator":[51,134,149,217,46,55,160,149]},{"name":"SoldToOffer","discriminator":[221,231,230,211,170,6,123,236]},{"name":"Stashed","discriminator":[141,250,252,158,236,129,234,103]},{"name":"TicketsBought","discriminator":[204,103,221,60,70,142,88,233]},{"name":"TraitsProven","discriminator":[108,168,120,80,112,35,212,64]},{"name":"TraitsSet","discriminator":[170,79,145,135,46,31,244,154]},{"name":"TreeOpened","discriminator":[152,239,116,13,105,182,36,127]},{"name":"Unlisted","discriminator":[200,255,248,52,219,183,40,213]},{"name":"Unseated","discriminator":[207,11,144,136,148,18,67,191]}],"errors":[{"code":6000,"name":"NotOwner","msg":"Signer is not the project's owner"},{"code":6001,"name":"NotAuthority","msg":"Signer is not the project's authority, nor another key this takes: the owner, the player or key the record names, or a contest's decider"},{"code":6002,"name":"NotPlatform","msg":"Signer is not the platform admin or the program's upgrade authority"},{"code":6003,"name":"BadCollection","msg":"Not a collection the project can take: a Core collection its owner or the project controls, or where the project is an update delegate, each named once and 32 at most; a collectible's is one of them"},{"code":6004,"name":"BadKey","msg":"The authority and the treasury must be keys someone can sign for: not an account of this program or of a token program, not a program, and passed as the account at the key"},{"code":6005,"name":"FeeAboveCap","msg":"Fee is above the cap"},{"code":6006,"name":"BadEntries","msg":"A box needs an entry or more, each of a weight above 0 with at most 255 prizes, and no roll among them in a box that rolls; its slots draw among its entries, each named once; and several draws an open, or several opens, need a box with no NFT it rolls on"},{"code":6007,"name":"BadShares","msg":"A split takes shares that add up to 100% or less, none that burns in wrapped SOL, and only the destinations its route can pay"},{"code":6008,"name":"KindLocked","msg":"An item's kind, soulbound and burnable flags, collection and traits can't change once one is issued"},{"code":6009,"name":"Paused","msg":"Project is paused by its owner"},{"code":6010,"name":"Suspended","msg":"Project is suspended by the platform"},{"code":6011,"name":"ZeroAmount","msg":"Amount must be above zero, and a grant gives a prize it can give at once: not a stash's NFT at random, nor tokens from a sealed schedule's or a farm's vault"},{"code":6012,"name":"NotForSale","msg":"Box, item or recipe is not on offer"},{"code":6013,"name":"SoldOut","msg":"Item is sold out"},{"code":6014,"name":"PriceAboveMax","msg":"The price is above the most the buyer agreed to pay"},{"code":6015,"name":"WrongPool","msg":"A share names an account that was not passed, or the wrong account was"},{"code":6016,"name":"NotTheirAccount","msg":"Money owed to a wallet goes to that wallet's associated token account of the mint, and a Token Metadata NFT moves through the associated token account of the project (on a pass, of its receiver)"},{"code":6017,"name":"WrongMint","msg":"This is not the mint the price is in"},{"code":6018,"name":"BadOrderState","msg":"Order is not in the right state"},{"code":6019,"name":"NotStale","msg":"Order is not stale yet"},{"code":6020,"name":"ItemMismatch","msg":"Item or pool accounts don't match the box or the order"},{"code":6021,"name":"NotThePlayers","msg":"This is not the player, the winner or the record it belongs to"},{"code":6022,"name":"NotCollectible","msg":"Only a collectible item can be made as an asset"},{"code":6023,"name":"BadSchedule","msg":"A schedule needs a period above zero; a sealed one is switched on, with 1 run or more, its last at a time the clock can hold, each paying at most all its vault holds"},{"code":6024,"name":"NotDue","msg":"This is not due yet"},{"code":6025,"name":"ScheduleOver","msg":"This schedule is switched off or has done its last run"},{"code":6026,"name":"BadLottery","msg":"A lottery this program can't keep: an NFT ticket takes no price, shares or ticket mint, one that gives tickets back takes no shares and alone may weigh tickets by time, sales close less than a rhythm before the draw, places that each take something and together 100% or less, runs of places alike, runs on one pool that say the same when it is short, a header that one instruction makes, and held prizes or a raffle, 256 at most, in its own stash, on a lottery that draws once"},{"code":6027,"name":"RoundRunning","msg":"A lottery can't be closed, made again or switched to repeating while its current round has a record, its last round still owes NFTs of its stash, or an earlier round still owes its pot"},{"code":6028,"name":"SalesClosed","msg":"Ticket sales are closed for this round"},{"code":6029,"name":"StillLocked","msg":"This seat can't be taken out yet: its lock tier has not run"},{"code":6030,"name":"MoreThanStaked","msg":"That is more than this position holds"},{"code":6031,"name":"BadRecipe","msg":"A recipe takes up to 255 collectibles (a place is a byte), no payment of it is zero, and its needs and keeps name collectibles it has"},{"code":6032,"name":"OnceAtATime","msg":"A recipe that takes or makes a collectible, gives anything but a fixed amount of tokens, or reads the player's profile is crafted once at a time"},{"code":6033,"name":"NeedNotMet","msg":"A collectible handed in does not have the number this recipe asks for"},{"code":6034,"name":"MaxedOut","msg":"That number is already as high as this recipe raises it"},{"code":6035,"name":"RecipeChanged","msg":"This recipe was edited since the player saw it"},{"code":6036,"name":"Held","msg":"The project is holding this collectible for a player"},{"code":6037,"name":"TermsChanged","msg":"The signed version, incarnation or terms no longer match this record"},{"code":6038,"name":"ResultOverdue","msg":"This contest is off (its result was due, or its sides held less than its least pot once entries closed): every entry takes its own money back"},{"code":6039,"name":"StillHeld","msg":"This NFT is held until its time is up: only the project's authority releases a running hold, and nobody a running loan"},{"code":6040,"name":"HoldOver","msg":"The hold on this NFT is over: it can only go back to its player"},{"code":6041,"name":"BadContest","msg":"A contest needs a side or more, entries that close no later than its result is due, and a side that exists"},{"code":6042,"name":"ContestNotOpen","msg":"This contest is not open"},{"code":6043,"name":"ContestOpen","msg":"This contest has no result yet"},{"code":6044,"name":"EntriesOpen","msg":"Entries are still open: a decider's verdict naming a side is taken once they close (a call-off at any time)"},{"code":6045,"name":"NoWinner","msg":"Nobody backed that side: call the contest off instead"},{"code":6046,"name":"NotATokenAccount","msg":"Not a token account"},{"code":6047,"name":"Overflow","msg":"Arithmetic overflow"},{"code":6048,"name":"BadPrice","msg":"A falling price needs a period above zero and a start that is not before 1970, and a window's times can't be before 1970"},{"code":6049,"name":"NotAMint","msg":"Not a mint of the SPL Token program or of Token-2022"},{"code":6050,"name":"MemoNeeded","msg":"A destination requires a memo: pass the Memo program with the hook's accounts"},{"code":6051,"name":"SameAccount","msg":"A payment can't go into the account it comes from unless that account's owner signs it (never the project or a delegate), and an NFT moves between two different token accounts"},{"code":6052,"name":"SameSlot","msg":"An order closes in a later slot than the one it was opened in"},{"code":6053,"name":"ToTheProject","msg":"The project's own address, or an account of this program, can't be given an NFT (no record holds it, so nothing could move it again), nor a hold's rent"},{"code":6054,"name":"NotVoucher","msg":"The voucher is not signed by one of this grant's voucher keys"},{"code":6055,"name":"VoucherExpired","msg":"The voucher has expired"},{"code":6056,"name":"WrongVoucherBytes","msg":"The Ed25519 check does not sign exactly this claim's voucher, once, within its own instruction"},{"code":6057,"name":"NoPrecompile","msg":"This grant is claimed with a voucher (the Ed25519 check right before the claim): it has no list, and is not open"},{"code":6058,"name":"GrantClosed","msg":"This grant is switched off"},{"code":6059,"name":"OverTotal","msg":"This grant has given all it may"},{"code":6060,"name":"OverWallet","msg":"This wallet, or the NFT it shows, has bought, crafted or claimed this as often as it may"},{"code":6061,"name":"OverPerson","msg":"This person has claimed this grant as often as they may"},{"code":6062,"name":"BadListProof","msg":"This wallet is not on the grant's approved list"},{"code":6063,"name":"WrongGrant","msg":"Not this grant, or not the accounts its reward needs"},{"code":6064,"name":"AlreadyClaimed","msg":"This wallet was already paid for every round this claim names"},{"code":6065,"name":"GateNotMet","msg":"This needs what its gate asks of the player, shown after the instruction's own accounts: an NFT that passes it, held by the player; a place on its list; a locked stake; or a profile that passes"},{"code":6066,"name":"BadRule","msg":"A rule the program can't keep: a test with no key, a one-of test with no texts, a profile where only an NFT is read, or a stake gate of 0 tokens"},{"code":6067,"name":"BadOdds","msg":"Odds name one of the box's entries"},{"code":6068,"name":"BadFarm","msg":"A farm this program can't keep: 1 to 256 lock tiers each above x0 and at most x100, boosts of at most +100,000% each and in all, and exits and missions only where its kind takes them"},{"code":6069,"name":"BadTier","msg":"Not one of this farm's lock tiers"},{"code":6070,"name":"WrongFarm","msg":"This farm takes tokens, not collectibles, or the other way round"},{"code":6071,"name":"NotFarmed","msg":"This farm doesn't take this NFT: not one the player holds, not one its gate names, or a booster on a seat with no tokens"},{"code":6072,"name":"WrongSheet","msg":"An NFT the project has no authority over comes with its Sheet's address right after it"},{"code":6073,"name":"SoulboundEscrow","msg":"A soulbound collectible can't be escrowed: stake it in a farm that freezes"},{"code":6074,"name":"NotTheNft","msg":"That is not the NFT this needs: not the one its record or stash names, not the project's, one proven gone, one a move did not deliver, or a tree that is not Bubblegum v2"},{"code":6075,"name":"StaleProof","msg":"The proof is out of date: its root is gone from the tree's change log, or its leaf changed since: fetch it again"},{"code":6076,"name":"NotProven","msg":"Prove the compressed NFT in this transaction first (prove_leaf): its record no longer reads (its leaf changed, or its root left the tree's change log); or pass an account that shows who holds the NFT"},{"code":6077,"name":"StillProven","msg":"That record still reads: its leaf is unchanged and its root still in the tree's change log"},{"code":6078,"name":"NotTheTraits","msg":"Those traits are not in the project's traits tree"},{"code":6079,"name":"NeedsCustody","msg":"That roll can burn or give the NFT away: the project must hold it first (a custodial route)"},{"code":6080,"name":"FarmOver","msg":"This farm has ended, or ends before that lock would"},{"code":6081,"name":"AlreadyStaked","msg":"That NFT is staked here already"},{"code":6082,"name":"ShorterTier","msg":"A seat's lock tier can only move to one that locks at least as long"},{"code":6083,"name":"BoosterOn","msg":"Take the seat's booster off first"},{"code":6084,"name":"BoosterSlot","msg":"This seat has a booster already, or has none to take off"},{"code":6085,"name":"BadMove","msg":"A move this program can't make: new tokens move as a fixed amount and are never burned; a pool pays at most all it holds, never into itself; nothing pays into the project's vault; a sealed schedule's vault pays only its runs, and never a wallet this program owns"},{"code":6086,"name":"RefreshFirst","msg":"Refresh the seat first, in the same transaction (refresh_seat): its booster has grown at its tier since"},{"code":6087,"name":"WrongRecord","msg":"Not one of this project's records an owner writes, or not the one at this address"},{"code":6088,"name":"CannotClose","msg":"Still needed: an item with units out. A box, a recipe or a sealed schedule is never closed, so its version or its terms never repeat"},{"code":6089,"name":"BadAuction","msg":"An auction needs an end after its start and after now; one taking NFT bids takes a rule it can keep, no shares, a reserve of at most 3 NFTs, and no roll as its lot"},{"code":6090,"name":"LotRefused","msg":"Not a lot an auction takes: a unit of an item with one left (not one whose traits a roll draws), a roll of a written box, or an NFT its seller holds; only an NFT lot goes first, and a sold one moves to its winner, never into a hold"},{"code":6091,"name":"AuctionNotOpen","msg":"This auction is not taking bids: it has not started, or it is over"},{"code":6092,"name":"BidTooLow","msg":"A bid must reach the reserve, and top the high bid by the auction's least raise"},{"code":6093,"name":"AuctionRunning","msg":"This auction is not over: with a bid in, nobody can call it off"},{"code":6094,"name":"NotTheBidders","msg":"The lot goes to the high bidder, and a bid back to its bidder"},{"code":6095,"name":"CantCallOff","msg":"Only the sale of an NFT its seller handed in is called off, and only before the lot moves to its winner"},{"code":6096,"name":"NotOpenYet","msg":"Not open yet: its window opens later"},{"code":6097,"name":"WindowClosed","msg":"Its window has closed"},{"code":6098,"name":"PrizeNotCovered","msg":"A prize this can't give whole: a pool short of it (or a share of it that comes to nothing), a mint the project can no longer mint, a contest's split not set aside, or the project has no vault for a prize's mint yet: open it first"},{"code":6099,"name":"BadChoice","msg":"The choice a share needs: a wallet other than the project's, or a collectible of the share's item that a player holds, passed as the chosen account; a contest's recipient only for its chosen share"},{"code":6100,"name":"BadStake","msg":"This contest takes one entry per player, of exactly its stake"},{"code":6101,"name":"OverWindow","msg":"Over this record's limit for one wallet in this window"},{"code":6102,"name":"WrongCounts","msg":"This is not the list of counts, claims or rounds at the address its record, incarnation and subject name"},{"code":6103,"name":"BadLimits","msg":"A grant's window needs times that are not before 1970"},{"code":6104,"name":"OverKey","msg":"This voucher key has signed all the claims the grant allows one key"},{"code":6105,"name":"TooManyAccounts","msg":"A box's roll would hand the oracle more accounts than its answer can carry: fewer entries, or fewer mints its prizes are in"},{"code":6106,"name":"NothingOwed","msg":"This entry is owed nothing of this part: paid already, not owed, or not yet"},{"code":6107,"name":"BadPrize","msg":"A prize this route can't give: a stash's NFT at random is a box's entry only, and no prize comes from a sealed schedule's or a farm's vault"},{"code":6108,"name":"Rolls","msg":"This box rolls (more than one entry, an NFT at random, or an NFT it rolls on): open it with open_box"},{"code":6109,"name":"OneTicket","msg":"An NFT pays for one ticket at a time"},{"code":6110,"name":"CompressedBid","msg":"A bid can't be a compressed NFT: bid Core or Token Metadata NFTs"},{"code":6111,"name":"OverPrize","msg":"A claim's own amount is of a grant of a fixed amount of tokens, at most that amount, and named by a voucher or a list"},{"code":6112,"name":"NoSolForFee","msg":"The signer holds too little SOL for the fee"},{"code":6113,"name":"BadOffer","msg":"An offer takes a rule it can keep, at least one taker, a loan above 0 for a time above 0 (borrowed until a date within it), shares only on a price, and all its money as it arrives"},{"code":6114,"name":"WinnerPicks","msg":"While losers' NFTs are left, only the winner claims, and picks which one they take"},{"code":6115,"name":"SubjectNonce","msg":"A roll that moves an NFT's numbers is at the NFT's own nonce (its address's first 8 bytes): one at a time"},{"code":6116,"name":"NotALoan","msg":"This hold is no loan, or it is repaid"},{"code":6117,"name":"LoanDue","msg":"This loan is due: it can't be repaid, and its NFT goes to its lender"},{"code":6118,"name":"OwedToLender","msg":"A loan that is due goes to its lender"},{"code":6119,"name":"Rented","msg":"This NFT is rented: a rental runs until its end, and nobody takes the listing before (its maker may stop it)"},{"code":6120,"name":"BadListing","msg":"A rental asks for a length above 0 and 1 period or more, and is taken for 1 period or more, up to its most"},{"code":6121,"name":"NotCompoundable","msg":"Only a farm of tokens whose rewards are the staked token compounds"},{"code":6122,"name":"Sealed","msg":"A sealed schedule is written once: nobody edits, switches off or re-seals it"},{"code":6123,"name":"NotInStash","msg":"A lottery's held prizes, and as many NFTs as it raffles, must be in its own stash when the lottery is written"},{"code":6124,"name":"Promised","msg":"A lottery's place promises this NFT: it leaves its stash only as that prize, or once the lottery has ended and its places have taken theirs"},{"code":6125,"name":"ListingStopped","msg":"Its maker stopped this listing: it takes no more renters, and closes once the rental runs out"},{"code":6126,"name":"NotAnNft","msg":"Only an NFT is taken: one token of a mint that can never mint another, not a unit of a semi-fungible item"},{"code":6127,"name":"OtherSide","msg":"A wallet backs one side of a contest: it already has an entry on another side"},{"code":6128,"name":"ExitWhileLocked","msg":"While its lock runs, a seat can't move to a tier it could leave early from more cheaply"},{"code":6129,"name":"WalletMustSign","msg":"A grant's claim needs its wallet's signature"},{"code":6130,"name":"BurnLocked","msg":"This Token-2022 mint's issuer keeps a burn authority (permissioned burn), so the program could never burn it later: it is refused before any money comes in"},{"code":6131,"name":"WrongProfile","msg":"This needs the player's own profile in this project: it is missing, or another wallet's or another project's"},{"code":6132,"name":"WrongTable","msg":"This is not the project's table at the address its id names"},{"code":6133,"name":"BadTable","msg":"A table takes rows (labels of 32 bytes at most, a table of labels only) until it is sealed, and is drawn from only once it is"},{"code":6134,"name":"BadItem","msg":"A trait's key is the project's own (not item_id, rarity, serial or made), each item names each key once and draws each table by one trait, and a range runs from its least to its most"},{"code":6135,"name":"BadList","msg":"This is not a list of records of this width, or no record is at this place"},{"code":6136,"name":"GrantLive","msg":"A grant's shards close only once the grant is closed or made again"},{"code":6137,"name":"ShardsFixed","msg":"A grant keeps its shard bits (0 to 8) for its incarnation: an edit can't change them"},{"code":6138,"name":"BadRounds","msg":"A claim by voucher or list names one round or more; an open claim names none"},{"code":6139,"name":"NotBurned","msg":"This NFT is not burned: a Sheet closes once its Core asset is burned, its mint holds none, or a record proves its leaf burned"},{"code":6140,"name":"OutOfOrder","msg":"Several NFTs, seats or holds in one call come in ascending order of their addresses, each once"},{"code":6141,"name":"PackTooLarge","msg":"A box's draws (one, or each open's times the opens bought together) must all fit one answer of the oracle's: fewer entries, prizes an entry or draws"},{"code":6142,"name":"WrongEnds","msg":"A farm whose seats can stop earning takes its record of ends, and no other farm does"}],"types":[{"name":"Action","docs":["What a schedule does each time it runs: the move the authority makes with `move_tokens`,","from a pool or a mint the project controls, to a pool, a token account or a collectible's","holder, or burned."],"type":{"kind":"struct","fields":[{"name":"from","type":{"defined":{"name":"TokenSource"}}},{"name":"to","type":{"defined":{"name":"To"}}},{"name":"amount","type":{"defined":{"name":"Amount"}}},{"name":"halve_every","docs":["The amount (or the share) halves after every `halve_every` runs (0: never)."],"type":"u32"}]}},{"name":"Amount","docs":["How much moves."],"type":{"kind":"enum","variants":[{"name":"Fixed","fields":["u64"]},{"name":"Bps","fields":["u16"]}]}},{"name":"Attribute","docs":["One line on a collectible: \"level\" = \"7\"."],"type":{"kind":"struct","fields":[{"name":"key","type":"string"},{"name":"value","type":"string"}]}},{"name":"Auction","docs":["At `[\"auction\", project, seller, id]`. Its bids wait in the project's vault for its mint."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"seller","docs":["Who put the lot up: an NFT's holder, or the project's owner or authority for its item. Paid","the rent and gets it back when the auction closes, with the lot when it does not sell, and","what the shares leave of the winning bid for an NFT."],"type":"pubkey"},{"name":"mint","docs":["The token bids are in."],"type":"pubkey"},{"name":"lot","type":{"defined":{"name":"Lot"}}},{"name":"ours","docs":["Whether the seller was the project's owner or authority when it opened: fixed then, whoever","holds the keys later (`Auction::the_projects`)."],"type":"bool"},{"name":"pin","docs":["For an item lot, the serial reserved for it; for a roll lot, its box's version when the","auction opened, the box its bidders bid on (`order::Paid`)."],"type":"u32"},{"name":"reserve","docs":["The least first bid."],"type":"u64"},{"name":"min_raise_bps","docs":["The least raise over the high bid, in basis points (and always at least 1 unit)."],"type":"u16"},{"name":"starts_at","docs":["Unix time bids open."],"type":"i64"},{"name":"ends_at","docs":["Unix time bids close, unless a late bid moved it (`ends`): any time the seller chooses."],"type":"i64"},{"name":"extend","docs":["A bid moves the end to at least this many seconds after it."],"type":"u32"},{"name":"shares","docs":["The parts of the winning bid taken at the end; the rest goes to the seller of an NFT, or","the treasury for the project's item. Emptied once they are paid and the seller is still owed."],"type":{"vec":{"defined":{"name":"Share"}}}},{"name":"gate","docs":["Who may bid: a player who shows a collectible that passes (`rules.rs`)."],"type":{"option":{"defined":{"name":"Gate"}}}},{"name":"nft_bids","docs":["When set, a bid is a bundle of NFTs that pass this rule, in place of tokens (`price.rs`):","`reserve`, `high` and the least raise count NFTs, at most `MAX_BID_NFTS` a bid. The NFTs","a bid tops go back to their bidder in the same instruction; the winning ones go where the","rest of a winning bid in tokens would (`EndAuction::proceeds`). No bid is a compressed NFT:","one moves only with a proof against its tree's root of that moment, and anyone with a leaf","in the same tree can change the root, so the high bidder could turn every higher bid away","(each one must hand the high bid back) until the auction ends."],"type":{"option":{"defined":{"name":"Rule"}}}},{"name":"high_bidder","docs":["Who bid `high`. The default address while there is no bid."],"type":"pubkey"},{"name":"high","docs":["The high bid, as it arrived (after any transfer fee). 0: no bid yet."],"type":"u64"},{"name":"last_bid_at","type":"i64"},{"name":"proceeds_owed","docs":["Once the lot was delivered: what the winning bid still owes, the next `end_auction` paying it","and closing the auction. The whole bid (tokens, or its NFTs' count) when the lot went first","(`Ending::LotFirst`), its shares still to pay; or what its seller's account couldn't take."],"type":"u64"},{"name":"held","docs":["The high bid's NFTs, held by the project, in room for `MAX_BID_NFTS` made at open."],"type":{"vec":"pubkey"}}]}},{"name":"AuctionArgs","type":{"kind":"struct","fields":[{"name":"lot","type":{"defined":{"name":"Lot"}}},{"name":"reserve","type":"u64"},{"name":"min_raise_bps","type":"u16"},{"name":"starts_at","type":"i64"},{"name":"ends_at","type":"i64"},{"name":"extend","type":"u32"},{"name":"shares","type":{"vec":{"defined":{"name":"Share"}}}},{"name":"gate","docs":["Who may bid (`None`: anyone)."],"type":{"option":{"defined":{"name":"Gate"}}}},{"name":"nft_bids","docs":["A bid is a bundle of NFTs that pass this rule, in place of tokens (`None`: tokens)."],"type":{"option":{"defined":{"name":"Rule"}}}}]}},{"name":"AuctionEnded","docs":["An auction ended: sold to `winner` for `price` (the shares took it, less what went to the lot's","owner), or with no winner, its lot home. `asset` is the collectible that moved or was minted (the","default address for an item's serial voided, a normal item, an unsold lot proven gone, or an end","that paid what the bid still owed once the lot had moved). It closes unless something is still","owed (`Auction::proceeds_owed`): a lot sent first is paid by the next end, `remainder` 0 now."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"auction","type":"pubkey"},{"name":"winner","type":{"option":"pubkey"}},{"name":"price","type":"u64"},{"name":"remainder","docs":["What the shares left, routed to the lot's owner (the seller of an NFT, the treasury for","the project's item), before transfer fees."],"type":"u64"},{"name":"asset","type":"pubkey"},{"name":"reference","type":{"array":["u8",32]}}]}},{"name":"AuctionOpened","docs":["An auction opened: an asset lot is now held by the project, an item lot's `serial` is reserved."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"auction","docs":["Its address, `[\"auction\", project, seller, id]`: an id is unique only for its seller."],"type":"pubkey"},{"name":"id","type":"u32"},{"name":"seller","type":"pubkey"},{"name":"mint","type":"pubkey"},{"name":"lot","type":{"defined":{"name":"Lot"}}},{"name":"pin","docs":["An item lot's serial, a roll lot's box version (`Auction::pin`)."],"type":"u32"},{"name":"reserve","type":"u64"},{"name":"ends_at","type":"i64"}]}},{"name":"BidPlaced","docs":["A bid became the high bid. `amount` is what arrived; `ends_at` is the end after it."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"auction","type":"pubkey"},{"name":"bidder","type":"pubkey"},{"name":"amount","type":"u64"},{"name":"ends_at","type":"i64"}]}},{"name":"BidRefunded","docs":["A bid went back to its bidder: a higher bid topped it."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"auction","type":"pubkey"},{"name":"bidder","type":"pubkey"},{"name":"amount","type":"u64"}]}},{"name":"Boost","docs":["An NFT that passes `rule` adds `effect`."],"type":{"kind":"struct","fields":[{"name":"rule","type":{"defined":{"name":"Rule"}}},{"name":"effect","type":{"defined":{"name":"Effect"}}}]}},{"name":"Borrowed","docs":["A holder borrowed against an NFT: it is held until `due`, `amount` went to them, and `repay`","before `due` brings it home."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"offer","type":"pubkey"},{"name":"lender","type":"pubkey"},{"name":"borrower","type":"pubkey"},{"name":"asset","type":"pubkey"},{"name":"amount","type":"u64"},{"name":"repay","type":"u64"},{"name":"due","type":"i64"}]}},{"name":"Bought","docs":["A box that needs no roll was bought, `count` of it: its price split (or burned) and its prizes","given, each with its own receipt (`PrizeGiven`), in the same instruction. Logged before them, so","a purchase whose prizes' receipts pass what a transaction's log keeps still has this one."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"player","type":"pubkey"},{"name":"loot_box","type":"pubkey"},{"name":"mint","type":"pubkey"},{"name":"count","type":"u32"},{"name":"amount","docs":["What the player paid."],"type":"u64"},{"name":"shares","docs":["The shares that were sent, as the buyer's choice wrote them (`Paid`'s rule)."],"type":{"vec":{"defined":{"name":"Share"}}}},{"name":"treasury_remainder","docs":["Gross remainder routed to the treasury, excluding explicit shares and before transfer fees."],"type":"u64"}]}},{"name":"BoxArgs","type":{"kind":"struct","fields":[{"name":"price","type":"u64"},{"name":"currency","type":"pubkey"},{"name":"rise","type":{"option":{"defined":{"name":"Rise"}}}},{"name":"fall","type":{"option":{"defined":{"name":"Fall"}}}},{"name":"stock_odds","type":"bool"},{"name":"when_out","type":{"defined":{"name":"WhenOut"}}},{"name":"active","type":"bool"},{"name":"shares","type":{"vec":{"defined":{"name":"Share"}}}},{"name":"entries","type":{"vec":{"defined":{"name":"DropEntry"}}}},{"name":"slots","docs":["What one open draws (`LootBox::slots`): none is one draw among every entry."],"type":{"vec":{"defined":{"name":"Slot"}}}},{"name":"gate","docs":["Who may open it (`None`: anyone)."],"type":{"option":{"defined":{"name":"Gate"}}}},{"name":"odds","docs":["Entries a collectible makes likelier (empty: none)."],"type":{"vec":{"defined":{"name":"Odds"}}}},{"name":"window","docs":["When it sells (zeros: whenever it is active)."],"type":{"defined":{"name":"Window"}}},{"name":"per_wallet","docs":["How many one wallet may buy (zeros: no limit)."],"type":{"defined":{"name":"PerWallet"}}},{"name":"subject","docs":["The NFT it rolls on (`None`: none), and what each entry does to it."],"type":{"option":{"defined":{"name":"Rule"}}}},{"name":"fates","type":{"vec":{"defined":{"name":"Fate"}}}}]}},{"name":"Change","docs":["What the authority does to a collectible."],"type":{"kind":"enum","variants":[{"name":"Make","fields":[{"name":"item","type":"u32"},{"name":"tree","type":{"option":"pubkey"}},{"name":"attributes","type":{"vec":{"defined":{"name":"Attribute"}}}}]},{"name":"Set","fields":[{"vec":{"defined":{"name":"Attribute"}}}]},{"name":"Burn"},{"name":"Profile","fields":[{"vec":{"defined":{"name":"Attribute"}}}]}]}},{"name":"Changed","docs":["The project's authority made, rewrote or burned a collectible, as `change` says."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"authority","type":"pubkey"},{"name":"asset","docs":["The collectible rewritten or burned, or the wallet whose profile was written. The default","address for a `Make`: each one made, its owner and its serial are in its own `PrizeGiven`."],"type":"pubkey"},{"name":"change","type":{"defined":{"name":"Change"}}},{"name":"reference","type":{"array":["u8",32]}}]}},{"name":"ClaimRound","docs":["One round a claim names: the win, and the tokens it gives."],"type":{"kind":"struct","fields":[{"name":"id","docs":["The win: the project round, draw or giveaway it was won in."],"type":{"array":["u8",16]}},{"name":"amount","docs":["The tokens it gives, up to the grant's fixed amount; 0: the grant's prize as it is."],"type":"u64"}]}},{"name":"Claimed","docs":["An entry was paid `amount` and closed."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"incarnation","type":"u64"},{"name":"player","type":"pubkey"},{"name":"side","type":"u16"},{"name":"amount","type":"u64"}]}},{"name":"Contest","docs":["At `[\"contest\", project, id]`. Its pot is the token account at `[\"pot\", contest]`."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"incarnation","docs":["Allocated by the Project; never reused after this contest closes."],"type":"u64"},{"name":"opener","docs":["The authority that opened it. Paid its rent, and gets it back when it closes."],"type":"pubkey"},{"name":"mint","docs":["The token it is played in."],"type":"pubkey"},{"name":"closes_at","docs":["Unix time entries stop."],"type":"i64"},{"name":"result_by","docs":["Unix time a result is due. After it, no result is taken and the contest is off."],"type":"i64"},{"name":"verdict","docs":["What is written; read it through `verdict_at`, which knows an overdue contest is off."],"type":{"defined":{"name":"Verdict"}}},{"name":"winner","docs":["The side that won, once the verdict is `Won`."],"type":"u16"},{"name":"decided_at","docs":["Unix time a side was named: a winner has `CLAIM_GRACE_SECONDS` from it to itself."],"type":"i64"},{"name":"owed","docs":["What it still owes; at 0 it closes. Before a result, and once off, its entries not yet","refunded. Won: in a contest of tokens, what the winning side put in and has not claimed; in","a contest of NFTs, the NFTs it still holds, and with a prize, the winners whose first claim","has not come."],"type":"u64"},{"name":"unclaimed","docs":["What the winning side put in and has not yet claimed for (in a contest of NFTs, its winners","whose first claim has not come)."],"type":"u64"},{"name":"pot_won","docs":["Written when a side is named: what the pot holds for the winners once the shares are taken,","and what arrived in a split prize's vault. Each winning entry takes its part of these, by","what it put in, whatever reaches the accounts later."],"type":"u64"},{"name":"prize_won","type":"u64"},{"name":"shares","docs":["The parts of the pot taken when the result is named."],"type":{"vec":{"defined":{"name":"Share"}}}},{"name":"sides","docs":["What each side has put in."],"type":{"vec":"u64"}},{"name":"gate","docs":["Who may enter: a player who shows a collectible that passes, or one of a list of wallets","(`rules.rs`)."],"type":{"option":{"defined":{"name":"Gate"}}}},{"name":"deciders","docs":["Keys whose signed verdict decides it, besides the authority."],"type":{"vec":"pubkey"}},{"name":"min_pot","docs":["The least its sides must hold once entries close, or it is off. 0: no least."],"type":"u64"},{"name":"stake","docs":["What every entry puts in, once per player. 0: any amount."],"type":"u64"},{"name":"prize","docs":["What each winning entry gets when it is claimed, besides its part of the pot (`prize.rs`):","a tournament's trophy, a collectible or a roll of a box for every correct pick."],"type":{"option":{"defined":{"name":"Prize"}}}},{"name":"nft","docs":["When set, an entry stakes one NFT that passes this rule, in place of tokens (`price.rs`),","and the NFTs are the pot: each winner takes its own back and its share of the losers', which","it picks, and what the winners leave goes to the opener. Called off, each takes its own","back. Its sides count NFTs."],"type":{"option":{"defined":{"name":"Rule"}}}},{"name":"cap","docs":["The most losers' NFTs one winner takes (`None`: no cap)."],"type":{"option":"u32"}},{"name":"share","docs":["Fixed when a contest of NFTs is decided: each winner's share of the losers' NFTs,","`min(cap, losers ÷ winners)`. Below the cap, the winners whose place on their side is below","`extras` (`losers mod winners`) take one more."],"type":"u32"},{"name":"extras","type":"u32"},{"name":"picks","docs":["The winners' picks not yet taken nor left by an early end. The opener's part opens at 0."],"type":"u32"},{"name":"prize_split","docs":["Its token `prize` is split by stake: set aside whole at the decision, in the contest's prize","vault (`[\"prize\", contest]`), and each winning entry takes its part, in place of one prize","each."],"type":"bool"}]}},{"name":"ContestArgs","type":{"kind":"struct","fields":[{"name":"sides","docs":["How many sides there are to back: `u16::MAX` is not a side count, as it calls a contest off."],"type":"u16"},{"name":"closes_at","type":"i64"},{"name":"result_by","type":"i64"},{"name":"shares","type":{"vec":{"defined":{"name":"Share"}}}},{"name":"gate","docs":["Who may enter (`None`: anyone)."],"type":{"option":{"defined":{"name":"Gate"}}}},{"name":"deciders","docs":["Keys whose signed verdict decides it, besides the authority."],"type":{"vec":"pubkey"}},{"name":"min_pot","docs":["The least its sides must hold once entries close, or it is off (0: no least)."],"type":"u64"},{"name":"stake","docs":["What every entry puts in, once per player (0: any amount)."],"type":"u64"},{"name":"prize","docs":["What each winning entry gets besides its part of the pot (`None`: nothing)."],"type":{"option":{"defined":{"name":"Prize"}}}},{"name":"nft","docs":["An entry stakes one NFT that passes this rule, in place of tokens (`None`: tokens)."],"type":{"option":{"defined":{"name":"Rule"}}}},{"name":"prize_split","docs":["The token `prize` is split among the winning entries by stake (`Contest::prize_split`)."],"type":"bool"},{"name":"cap","docs":["In a contest of NFTs, the most losers' NFTs one winner takes (`None`: no cap; 0: every","loser's NFT goes to the opener)."],"type":{"option":"u32"}}]}},{"name":"Count","docs":["What a limit record counts (and a grant, by all wallets together: `Grant::counted`)."],"type":{"kind":"struct","fields":[{"name":"count","docs":["Counted in all."],"type":"u32"},{"name":"window","docs":["The window `in_window` counts (`PerWallet::window_at`, or a lottery's round plus one)."],"type":"u32"},{"name":"in_window","docs":["Counted in that window."],"type":"u32"}]}},{"name":"Crafted","docs":["A player crafted a recipe. The tokens it took and gave are the recipe's own lines, but for","`to_treasury`."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"version","docs":["The recipe's version: its lines, as they were, say what tokens moved."],"type":"u32"},{"name":"player","type":"pubkey"},{"name":"times","docs":["How many times over: every token line moved its amount times this."],"type":"u64"},{"name":"burned","docs":["The NFTs taken in (burned or traded in), used and kept, and made."],"type":{"vec":"pubkey"}},{"name":"used","type":{"vec":"pubkey"}},{"name":"made","type":{"vec":"pubkey"}},{"name":"to_treasury","docs":["The payment lines (by their place among the recipe's inputs, the first 0) that nobody could","take where they say (a collectible nobody holds, an account of this program): the treasury got","them."],"type":{"vec":"u32"}}]}},{"name":"Custody","docs":["How a farm keeps a collectible while it is staked or boosting."],"type":{"kind":"enum","variants":[{"name":"Freeze"},{"name":"Escrow"},{"name":"Watch"}]}},{"name":"Deal","docs":["What an offer gives for an NFT: its deal."],"type":{"kind":"enum","variants":[{"name":"Buy","fields":[{"name":"price","type":"u64"}]},{"name":"Lend","fields":[{"name":"amount","type":"u64"},{"name":"repay","type":"u64"},{"name":"lasts","type":"u32"}]}]}},{"name":"Debt","docs":["What a borrower owes for a held NFT: `repay` of `mint`, to `lender`, before the hold's `free_at`."],"type":{"kind":"struct","fields":[{"name":"lender","type":"pubkey"},{"name":"mint","type":"pubkey"},{"name":"repay","type":"u64"}]}},{"name":"Decided","docs":["The authority named the side that won, and `prize` is what its backers share; or (`side`","`None`) called the contest off, and every entry gets its own money back."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"incarnation","type":"u64"},{"name":"side","type":{"option":"u16"}},{"name":"pot","type":"u64"},{"name":"prize","type":"u64"},{"name":"reference","type":{"array":["u8",32]}},{"name":"set_aside","docs":["A prize split by stake (`Contest::prize_split`): what arrived in its vault, which the","winners share; 0 for none."],"type":"u64"}]}},{"name":"Def","docs":["A record and what to write in it."],"type":{"kind":"enum","variants":[{"name":"Item","fields":[{"name":"id","type":"u32"},{"name":"args","type":{"defined":{"name":"ItemArgs"}}}]},{"name":"Box","fields":[{"name":"id","type":"u32"},{"name":"args","type":{"defined":{"name":"BoxArgs"}}}]},{"name":"Schedule","fields":[{"name":"id","type":"u32"},{"name":"args","type":{"defined":{"name":"ScheduleArgs"}}}]},{"name":"Lottery","fields":[{"name":"id","type":"u32"},{"name":"args","type":{"defined":{"name":"LotteryArgs"}}}]},{"name":"Recipe","fields":[{"name":"id","type":"u32"},{"name":"args","type":{"defined":{"name":"RecipeArgs"}}}]},{"name":"Grant","fields":[{"name":"id","type":"u16"},{"name":"args","type":{"defined":{"name":"GrantArgs"}}}]},{"name":"Table","fields":[{"name":"id","type":"u32"},{"name":"args","type":{"defined":{"name":"TableArgs"}}}]}]}},{"name":"DropEntry","docs":["One line of a box's table: what it gives, and its weight."],"type":{"kind":"struct","fields":[{"name":"prizes","docs":["What it gives, any number (`prize.rs`): items (compressed or not), tokens, NFTs of a stash (a given","one, or one at random by weight), a roll of another box (in a box that doesn't roll, `buy`'s). None is nothing: the payment is split as usual."],"type":{"vec":{"defined":{"name":"Prize"}}}},{"name":"weight","docs":["The chance of this entry is its weight over the sum of the weights still in the table: the","entries that can give every prize they name (each first scaled by what is left of its first","item, when the box says `stock_odds`)."],"type":"u32"}]}},{"name":"Effect","docs":["What a boost adds when its rule passes, in basis points of the weight (10,000 doubles it)."],"type":{"kind":"enum","variants":[{"name":"Flat","fields":["u32"]},{"name":"PerPoint","fields":[{"name":"bps","type":"u32"},{"name":"most","type":"u32"}]}]}},{"name":"Ending","docs":["Which end `end_auction` makes of an auction with a bid in. With no bid, each is the same: the lot","goes home."],"type":{"kind":"enum","variants":[{"name":"Deliver"},{"name":"LotFirst"},{"name":"CallOff"}]}},{"name":"Entered","docs":["A player put `amount` on one side of a contest."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"incarnation","type":"u64"},{"name":"player","type":"pubkey"},{"name":"side","type":"u16"},{"name":"amount","type":"u64"}]}},{"name":"Fall","docs":["A price that falls with time: a drop whose price comes down until it sells, a seat that","cools off between buyers. It falls by `step` every `every` seconds counted from `since`,","and never below `floor` (a price already below the floor stays where it is).","","The owner sets `since`: the price holds until then. After a sale the price is what was paid,","after any `Rise`, and it falls on from there:","- by default the clock starts again at the sale, a seat that cools off between buyers;","- with `shared`, the clock runs on, moved by the whole periods that passed, so a drop keeps","falling however often it sells (a Dutch auction of many units).","","A step of 0 never falls; a floor of 0 can fall to free."],"type":{"kind":"struct","fields":[{"name":"step","type":"u64"},{"name":"every","type":"u32"},{"name":"floor","type":"u64"},{"name":"since","type":"i64"},{"name":"shared","type":"bool"}]}},{"name":"Farm","docs":["At `[\"farm\", project, id]`. The owner pays its rent. A farm never closes, so its address names","one farm for good, and a stake signed for it can never land in another."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"farmed","type":{"defined":{"name":"Farmed"}}},{"name":"custody","type":{"defined":{"name":"Custody"}}},{"name":"rewards_mint","docs":["The mint of its rewards, kept in its rewards vault, `[\"rewards\", farm]`."],"type":"pubkey"},{"name":"tiers","type":{"vec":{"defined":{"name":"Tier"}}}},{"name":"boosts","docs":["Read from a seat's collectible (its staked one, or its booster)."],"type":{"vec":{"defined":{"name":"Boost"}}}},{"name":"max_boost_bps","docs":["The most a seat's boosts add together."],"type":"u32"},{"name":"gates","docs":["Who may take a seat: for collectibles, every rule the NFT staked must pass (with none, any","NFT of a collection the project has authority over); for tokens, every rule an NFT the","player shows must pass."],"type":{"vec":{"defined":{"name":"Rule"}}}},{"name":"rate","docs":["A fixed rate, instead of sharing what lands in the vault."],"type":{"option":{"defined":{"name":"Rate"}}}},{"name":"rate_carry","docs":["What the rate owes that is not yet a whole base unit (times one day, and `NFT_UNIT` unless","shared)."],"type":"u128"},{"name":"opened_at","docs":["When it opened: a rate's halvings count from then."],"type":"i64"},{"name":"growth","type":{"vec":{"defined":{"name":"Growth"}}}},{"name":"lock_key","docs":["The attribute a staked collectible's lock is written under, as the time it ends (empty:","the tier's lock, kept on the seat)."],"type":"string"},{"name":"upkeep_key","docs":["The attribute that says until when a staked collectible earns and grows, its fuel (empty: no","upkeep): `Seat::earns_until` when sooner than its term."],"type":"string"},{"name":"ends_at","docs":["Unix time it ends (0: never): no seat taken after that would still be locked by then, and","nothing is paid or grows after it. Seats leave as before."],"type":"i64"},{"name":"exit_to","docs":["Where early-exit fees go, in the staked mint (`Tier::exit_bps`); needed when a tier has one."],"type":{"option":{"defined":{"name":"Sink"}}}},{"name":"total_weight","type":"u128"},{"name":"reward_per_weight","docs":["Rewards credited so far for each unit of weight, times `PRECISION`."],"type":"u128"},{"name":"reward_remainder","docs":["The carry: rounding of a share over the total weight, times `PRECISION`. The next move before","the farm's end credits it to the seats there once it adds up to a share; a move that leaves no","weight, or any move once the farm is over, frees its whole tokens (`FarmSide::settle`)."],"type":"u128"},{"name":"owed","docs":["What it owes, times `PRECISION`, always whole tokens: what its seats were credited and not","paid, and the carry. Its vault holds that, but in a farm that mints, which mints what a seat is","paid; what the vault holds beyond it is free (`free`)."],"type":"u128"},{"name":"clock","docs":["When it was last credited: its release, or its rate, has run up to then."],"type":"i64"},{"name":"unreleased","docs":["In a sharing farm (no rate): what is free that it counted and has not released yet."],"type":"u64"},{"name":"release_ends","docs":["The release's line: `release_base` was unreleased at `release_from`, and is released evenly","from then to `release_ends`, at its own pace whatever the farm's end (the release stops at the","end, and what the line has not reached stays free). Laid again when an arrival is counted","(`Farm::count`)."],"type":"i64"},{"name":"release_from","type":"i64"},{"name":"release_base","type":"u64"},{"name":"keeps_ends","docs":["Its seats can stop earning and it pays something: it keeps the record of when, `[\"ends\", farm]`."],"type":"bool"}]}},{"name":"FarmArgs","type":{"kind":"struct","fields":[{"name":"custody","type":{"defined":{"name":"Custody"}}},{"name":"tiers","type":{"vec":{"defined":{"name":"Tier"}}}},{"name":"boosts","type":{"vec":{"defined":{"name":"Boost"}}}},{"name":"max_boost_bps","type":"u32"},{"name":"gates","type":{"vec":{"defined":{"name":"Rule"}}}},{"name":"rate","type":{"option":{"defined":{"name":"Rate"}}}},{"name":"growth","type":{"vec":{"defined":{"name":"Growth"}}}},{"name":"ends_at","docs":["Unix time the farm ends; 0 for never."],"type":"i64"},{"name":"lock_key","docs":["The attribute the lock is written under on a collectible, as the time it ends (empty: the","tier's lock only). A farm of collectibles only."],"type":"string"},{"name":"upkeep_key","docs":["The attribute that says until when a collectible earns and grows, its fuel (empty: no upkeep).","A farm of collectibles only."],"type":"string"},{"name":"exit_to","docs":["Where early-exit fees go (`Tier::exit_bps`). A farm of tokens only."],"type":{"option":{"defined":{"name":"Sink"}}}}]}},{"name":"Farmed","docs":["What a farm takes: one token, or NFTs of any kind (which ones is the farm's gate)."],"type":{"kind":"enum","variants":[{"name":"Tokens","fields":[{"name":"mint","type":"pubkey"}]},{"name":"Collectibles"}]}},{"name":"Fate","docs":["What one of a box's entries does to the NFT the box rolls on (`LootBox::subject`): numbers it","moves (a level lost, affection gained) and where the NFT goes. An entry with none leaves it as","it was."],"type":{"kind":"struct","fields":[{"name":"entry","docs":["The entry, the first of the box being 0."],"type":"u16"},{"name":"shifts","type":{"vec":{"defined":{"name":"Shift"}}}},{"name":"then","docs":["Where the NFT goes once the roll is settled (`price::Spend`): burned, given to a wallet, or","put in a stash. `None`: back to whoever brought it. A box takes an NFT as its price this way."],"type":{"option":{"defined":{"name":"Spend"}}}}]}},{"name":"FeeChanged","type":{"kind":"struct","fields":[{"name":"fees","docs":["The fees in force now, in lamports."],"type":{"defined":{"name":"Fees"}}},{"name":"pending","docs":["A raise waiting out its notice period, and when it applies (0: none)."],"type":{"defined":{"name":"Fees"}}},{"name":"pending_at","type":"i64"}]}},{"name":"Fees","docs":["The platform's two flat fees, in lamports. A player's few transactions carry the larger","one; a project's many (an airdrop to ten thousand players) carry the smaller."],"type":{"kind":"struct","fields":[{"name":"player","docs":["What a player pays when they sign for something of their own: a payment, a purchase,","a craft, tickets, a farm's stake, unstake or harvest, a hold, an entry, a bid."],"type":"u64"},{"name":"project","docs":["What every other charged instruction costs: a payment by the project's own keys, a move of","its tokens, a collectible made, rewritten or burned, a roll, a release while a hold runs,","a contest opened or decided, an auction its keys open. A grant's claim charges its signer","the player fee, never the grant's funds."],"type":"u64"}]}},{"name":"FeesCollected","docs":["The platform took `amount` lamports of fees out of the fee boxes passed, to `to`."],"type":{"kind":"struct","fields":[{"name":"to","type":"pubkey"},{"name":"amount","type":"u64"}]}},{"name":"Gate","docs":["Who may use a box, a lottery, a contest, an auction or a grant."],"type":{"kind":"enum","variants":[{"name":"Holds","fields":[{"defined":{"name":"Rule"}}]},{"name":"Wallets","fields":[{"vec":"pubkey"}]},{"name":"List","fields":[{"name":"root","type":{"array":["u8",32]}},{"name":"depth","type":"u8"}]},{"name":"Staked","fields":[{"name":"farm","type":"pubkey"},{"name":"at_least","type":"u64"}]}]}},{"name":"Grant","docs":["At `[\"grant\", project, id]`. The owner pays its rent and gets it back when they close it."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u16"},{"name":"incarnation","docs":["Allocated by the Project on creation, so closing and recreating never revives a voucher."],"type":"u64"},{"name":"gives","docs":["What each round gives (`prize.rs`)."],"type":{"defined":{"name":"Prize"}}},{"name":"vouchers","docs":["The keys whose vouchers it takes. The default address is an empty place."],"type":{"array":["pubkey",3]}},{"name":"list_root","docs":["The root of the approved list. Zeros: none."],"type":{"array":["u8",32]}},{"name":"key_root","docs":["The root of more keys whose vouchers it takes (`key_leaf`). Zeros: none."],"type":{"array":["u8",32]}},{"name":"open","docs":["Any wallet may claim it, with no voucher and no list."],"type":"bool"},{"name":"limits","type":{"defined":{"name":"Limits"}}},{"name":"counted","docs":["What this grant incarnation has given, by `limits.all`. Edits never reset it."],"type":{"defined":{"name":"Count"}}},{"name":"active","docs":["The owner's switch."],"type":"bool"},{"name":"gate","docs":["Who may be given it: a wallet that shows a collectible that passes (`rules.rs`)."],"type":{"option":{"defined":{"name":"Gate"}}}},{"name":"shard_bits","docs":["Its claims and its rounds are each kept in `2^shard_bits` lists (0 to 8), fixed for the","incarnation: a record never moves to another shard, so no round can pay twice."],"type":"u8"}]}},{"name":"GrantArgs","type":{"kind":"struct","fields":[{"name":"gives","docs":["What each round gives (`prize.rs`)."],"type":{"defined":{"name":"Prize"}}},{"name":"vouchers","type":{"array":["pubkey",3]}},{"name":"list_root","type":{"array":["u8",32]}},{"name":"key_root","type":{"array":["u8",32]}},{"name":"open","docs":["Any wallet may claim it, with no voucher and no list."],"type":"bool"},{"name":"limits","type":{"defined":{"name":"Limits"}}},{"name":"active","type":"bool"},{"name":"gate","docs":["Who may be given it (`None`: any wallet)."],"type":{"option":{"defined":{"name":"Gate"}}}},{"name":"shard_bits","docs":["Its claims and rounds are each kept in `2^shard_bits` lists (0 to 8), set when it is made: the","fewest that keep each list under ~100,000 records over its life (wallets × rounds)."],"type":"u8"}]}},{"name":"GrantClaimed","docs":["A grant gave its reward to `wallet` for one round: a claim logs one for each round it paid."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"grant","type":"pubkey"},{"name":"incarnation","type":"u64"},{"name":"wallet","type":"pubkey"},{"name":"round","docs":["The round the voucher or the list names. Zeros for an open claim. What it gave is in","the `PrizeGiven` beside it."],"type":{"array":["u8",16]}}]}},{"name":"Grown","docs":["A farm wrote what a collectible earned by staying in (`Growth`): its points and the level","they reach, on it or its Sheet."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"farm","type":"u32"},{"name":"asset","type":"pubkey"},{"name":"lines","docs":["What it wrote: each growth's points, and the level they reach where it counts levels."],"type":{"vec":{"defined":{"name":"Attribute"}}}}]}},{"name":"Growth","docs":["What staking writes on a collectible as it stays in: a number that grows, and the level it","reaches."],"type":{"kind":"struct","fields":[{"name":"key","docs":["The attribute the points are written under (\"xp\")."],"type":"string"},{"name":"per_day","docs":["Points a day at ×1; the seat's tier and boosts scale it."],"type":"u32"},{"name":"level","docs":["The attribute the level is written under (\"level\"), or empty for none: how many of","`steps` (the points each level needs, rising) the points have reached."],"type":"string"},{"name":"steps","type":{"vec":"u32"}},{"name":"streak","docs":["The points go back to 0 when the collectible leaves this farm, and the level to the one 0","points reach, a level bought with a recipe too: a streak, not a lifetime. Not in a farm that","watches (`BadFarm`): its NFT leaves by moving, with nothing to write the 0."],"type":"bool"},{"name":"profile","docs":["Written on the seat's player's profile (`sheet.rs`) instead of the collectible: every seat","the player holds adds its own points. A token seat grows it with or without a booster. No","streak (`BadFarm`): one seat leaving would wipe what the others grew."],"type":"bool"},{"name":"at_least","docs":["A seat grows only while it stakes at least this much (base units), so a dust stake earns no","XP. A collectible stakes 1: in a farm of collectibles, more than 1 grows nothing."],"type":"u64"}]}},{"name":"Harvested","docs":["A player collected a farm's rewards owed to their seat."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"farm","type":"u32"},{"name":"player","type":"pubkey"},{"name":"seat","type":"pubkey"},{"name":"rewards","type":"u64"},{"name":"compounded","docs":["What joined the stake instead of being paid (`harvest` with `compound`), as it arrived."],"type":"u64"}]}},{"name":"Held","docs":["A player handed a collectible to the project until `free_at`."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"asset","type":"pubkey"},{"name":"player","type":"pubkey"},{"name":"free_at","type":"i64"},{"name":"reference","type":{"array":["u8",32]}}]}},{"name":"Hold","docs":["At `[\"hold\", asset, free_at]`. The player pays its rent and gets it back when the hold ends.","Its label is in its receipt (`Held`). A hold the player asked for has no room for a debt","(`Hold::PLAIN`); a loan's has (`offer.rs`)."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"asset","type":"pubkey"},{"name":"player","docs":["Who handed it in, and who it goes back to. The project's own address for one owed to the","treasury (a stash's drop, an auction's or a lottery's NFT): it goes to the project's","treasury wallet of the day it is released."],"type":"pubkey"},{"name":"payer","docs":["Who made the hold, and gets its rent back at the release: its player, or whoever made a hold","of an NFT a record owed (`owe`)."],"type":"pubkey"},{"name":"rent_to","docs":["Who paid for the project's account of a Token Metadata NFT, and gets its rent back at the","release: its player, or for an NFT a record owed, whoever paid it then."],"type":"pubkey"},{"name":"free_at","docs":["Unix time the authority's say ends; for a loan, when it is due."],"type":"i64"},{"name":"debt","docs":["A loan's: who lent, and what repays it. `None` for a hold the player asked for."],"type":{"option":{"defined":{"name":"Debt"}}}}]}},{"name":"Input","docs":["One thing a recipe takes."],"type":{"kind":"enum","variants":[{"name":"Burn","fields":[{"name":"item","type":"u32"},{"name":"count","type":"u8"}]},{"name":"Use","fields":[{"name":"item","type":"u32"}]},{"name":"Pay","fields":[{"name":"mint","type":"pubkey"},{"name":"amount","type":"u64"},{"name":"to","type":{"defined":{"name":"To"}}}]},{"name":"Show","fields":[{"name":"collection","type":"pubkey"}]},{"name":"Staked","fields":[{"name":"item","type":"u32"},{"name":"farm","type":"u32"}]},{"name":"Trade","fields":[{"name":"collection","type":"pubkey"},{"name":"then","type":{"defined":{"name":"Spend"}}}]}]}},{"name":"Item","docs":["Something the project sells, drops from a box, or makes (a shop sells it as the one entry of a","box). The fixed fields come first so a box roll can read them at fixed places (`ItemView`)."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"item_id","type":"u32"},{"name":"kind","type":{"defined":{"name":"ItemKind"}}},{"name":"rarity","type":"u8"},{"name":"soulbound","docs":["Collectibles only: frozen for good at mint, so it can't be transferred."],"type":"bool"},{"name":"burnable","docs":["Collectibles only: the project's authority can burn it later (`collectible`)."],"type":"bool"},{"name":"max_supply","docs":["0 means unlimited."],"type":"u32"},{"name":"issued","docs":["Handed out so far, by sales, boxes and the authority. Also the last serial number used."],"type":"u32"},{"name":"voided","docs":["Serials of auctions that did not sell. They stay gaps in the numbering, and the units they","stood for can be sold again under new numbers.","So once a serial is voided, a later one can be above `max_supply`: a serial is a number,","not a count. The count of units out is `issued - voided`; an edit may set the supply below it,","and then the item reads as sold out."],"type":"u32"},{"name":"active","docs":["Switched off, it is not sold, dropped from a box or made by a recipe. The authority's","own make (`collectible`) still works."],"type":"bool"},{"name":"collection","docs":["Collectibles only: the Core collection it is minted into, one of the project's (the default","address for a normal item)."],"type":"pubkey"},{"name":"name","type":"string"},{"name":"uri","type":"string"},{"name":"traits","docs":["A fresh item's traits: each drawn when a unit of it is won, and written on it as an attribute","(`Trait`). None is an item whose units are all alike. A fresh item is given only by a roll","(`gives`), and its traits never change once a unit is out."],"type":{"vec":{"defined":{"name":"Trait"}}}},{"name":"compressed","docs":["Collectibles only: its collection takes compressed NFTs (it carries Bubblegum's plugin, set","only when a collection is made), read from the collection each time the item is written. A","compressed prize of an item without it is never given, and a roll never lands on one."],"type":"bool"}]}},{"name":"ItemArgs","type":{"kind":"struct","fields":[{"name":"kind","type":{"defined":{"name":"ItemKind"}}},{"name":"rarity","type":"u8"},{"name":"soulbound","type":"bool"},{"name":"burnable","type":"bool"},{"name":"name","type":"string"},{"name":"uri","type":"string"},{"name":"max_supply","type":"u32"},{"name":"active","type":"bool"},{"name":"collection","docs":["A collectible's collection: one of the project's."],"type":"pubkey"},{"name":"traits","docs":["A fresh collectible's traits (`Item::traits`): none for one whose units are all alike."],"type":{"vec":{"defined":{"name":"Trait"}}}}]}},{"name":"ItemKind","type":{"kind":"enum","variants":[{"name":"Normal"},{"name":"Collectible"}]}},{"name":"Keep","docs":["An attribute a new collectible takes from one handed in."],"type":{"kind":"struct","fields":[{"name":"key","type":"string"},{"name":"from","docs":["Which collectible handed in it comes from, and which collectible made it goes to: the","first of each is 0."],"type":"u8"},{"name":"to","type":"u8"}]}},{"name":"Leaf","docs":["A compressed NFT's leaf as an indexer gives it (DAS `getAsset` and `getAssetProof`): what","Bubblegum v2 hashes into the leaf beside its id, owner, delegate and collection (those come","as accounts), and the root its proof was taken against. The proof's nodes come as accounts.","Every leaf of a v2 tree sits at the index of its nonce (only Bubblegum appends, in order)."],"type":{"kind":"struct","fields":[{"name":"root","docs":["The tree's root the proof was taken against: its current root, or one still in its change","log with no change since at this leaf (`check_proof`). In a record: that root, or the one","this program last moved the leaf to; the record says what the leaf is only while the leaf","is unchanged since it (`still_current`)."],"type":{"array":["u8",32]}},{"name":"data_hash","docs":["All zeros: the leaf's own slot is empty, as Bubblegum leaves it once the leaf is burned."],"type":{"array":["u8",32]}},{"name":"creator_hash","type":{"array":["u8",32]}},{"name":"asset_data_hash","docs":["`None`: Bubblegum's default (no asset data), as every leaf has today."],"type":{"option":{"array":["u8",32]}}},{"name":"flags","type":"u8"},{"name":"nonce","type":"u64"}]}},{"name":"LeftoverBurned","docs":["A contest's or a lottery round's token account closed, and `amount` of `mint` it still held,","which was nobody's (`Tokens::retire`), was burned out of it."],"type":{"kind":"struct","fields":[{"name":"account","type":"pubkey"},{"name":"mint","type":"pubkey"},{"name":"amount","type":"u64"}]}},{"name":"Limits","docs":["Counts of claims, not amounts: each round paid is one. 0 switches a limit off."],"type":{"kind":"struct","fields":[{"name":"all","docs":["Claims by every wallet together, in all and in each window (86,400 seconds: a UTC day)."],"type":{"defined":{"name":"PerWallet"}}},{"name":"wallet","docs":["Claims one wallet may make, in all and in each window."],"type":{"defined":{"name":"PerWallet"}}},{"name":"per_person","docs":["Claims one person may make: counted only for vouchers that name one (`person_hash`)."],"type":"u32"},{"name":"per_key","docs":["Claims one voucher key may sign: a promo code's key once."],"type":"u32"},{"name":"window","docs":["When it can be claimed."],"type":{"defined":{"name":"Window"}}}]}},{"name":"Listed","docs":["A maker listed an NFT they held (`listing.rs`): for sale, or for rent. The project holds it now."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"listing","type":"pubkey"},{"name":"maker","type":"pubkey"},{"name":"asset","type":"pubkey"},{"name":"mint","type":"pubkey"},{"name":"deal","type":{"defined":{"name":"ListingDeal"}}}]}},{"name":"Listing","docs":["At `[\"listing\", project, asset]`. Its maker pays its rent and gets it back when it closes. The","fixed part comes first, so a game reads `user` and `until` at fixed places."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"maker","type":"pubkey"},{"name":"asset","docs":["The NFT, which the project holds while the listing is open."],"type":"pubkey"},{"name":"mint","docs":["The token it is paid in."],"type":"pubkey"},{"name":"user","docs":["Who rents it now: the default address for nobody, and for a sale."],"type":"pubkey"},{"name":"until","docs":["Unix time the rental ends. 0 (or any time past): nobody rents it."],"type":"i64"},{"name":"stopped","docs":["Its maker closed it while a rental ran: it takes no more renters, and its maker takes the","NFT home once the rental runs out."],"type":"bool"},{"name":"deal","type":{"defined":{"name":"ListingDeal"}}},{"name":"shares","docs":["Parts of each payment, taken before the maker's (a royalty, a platform's cut)."],"type":{"vec":{"defined":{"name":"Share"}}}}]}},{"name":"ListingDeal","docs":["What a listing asks for its NFT."],"type":{"kind":"enum","variants":[{"name":"Sell","fields":[{"name":"price","type":"u64"}]},{"name":"Rent","fields":[{"name":"price","type":"u64"},{"name":"lasts","type":"u32"},{"name":"max_periods","type":"u16"}]}]}},{"name":"ListingRented","docs":["A listed NFT was rented for `periods` periods: `price` in all through the shares, `paid` of it to","the maker (before transfer fees). The renter is its user until `until`."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"listing","type":"pubkey"},{"name":"maker","type":"pubkey"},{"name":"renter","type":"pubkey"},{"name":"asset","type":"pubkey"},{"name":"periods","type":"u16"},{"name":"price","type":"u64"},{"name":"paid","type":"u64"},{"name":"until","type":"i64"}]}},{"name":"ListingSold","docs":["A listed NFT was sold: the NFT to the buyer, the price through the shares, `paid` of it to the","maker (before transfer fees). The listing closed."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"listing","type":"pubkey"},{"name":"maker","type":"pubkey"},{"name":"buyer","type":"pubkey"},{"name":"asset","type":"pubkey"},{"name":"price","type":"u64"},{"name":"paid","type":"u64"}]}},{"name":"LootBox","docs":["A loot box: a price and a drop table. The odds on a page are these bytes."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"box_id","type":"u32"},{"name":"price","docs":["What the next sale pays. 0 is a free box: the player still pays the fee and the SOL the order holds."],"type":"u64"},{"name":"currency","docs":["The mint the price is in."],"type":"pubkey"},{"name":"rise","docs":["Makes the price rise with every box opened."],"type":{"option":{"defined":{"name":"Rise"}}}},{"name":"fall","docs":["Makes the price fall with time."],"type":{"option":{"defined":{"name":"Fall"}}}},{"name":"stock_odds","docs":["Each item's weight shrinks with its stock: it is multiplied by the share of the item's","supply still left, rounded up. The last mythic of 100 is a hundred times rarer than the","first. Items with no supply limit and the other outcomes keep their weight."],"type":"bool"},{"name":"when_out","docs":["What it does once an entry it lists can't be given (`WhenOut`)."],"type":{"defined":{"name":"WhenOut"}}},{"name":"in_flight","docs":["The draws its purchases made that wait for their answer, under `WhenOut::StopSales`: a sale needs","every entry to cover these and its own. An edit of what a roll reads puts it back to 0 (the","orders it fails are refunded)."],"type":"u64"},{"name":"active","type":"bool"},{"name":"version","docs":["Counts the edits of what a roll reads (entries, odds, `stock_odds`, `when_out`, `subject`, `fates`); a","price, rise, fall or currency edit leaves it. An order remembers","the version it paid for, and is not rolled on any other: it fails and refunds. A box is never closed, so no version comes back at its","address."],"type":"u32"},{"name":"shares","docs":["Where a sale of this box sends its money."],"type":{"vec":{"defined":{"name":"Share"}}}},{"name":"entries","type":{"vec":{"defined":{"name":"DropEntry"}}}},{"name":"slots","docs":["What one open draws: each slot draws `count` entries, among its own (`only`), every one","weighted, with the stock as the draws before it left it. None is one draw among every entry:","a box of one roll. A pack of 5 is one slot of 5; a guaranteed rare, a slot of 1 among the rares."],"type":{"vec":{"defined":{"name":"Slot"}}}},{"name":"gate","docs":["Who may open it: a player who shows a collectible that passes (`rules.rs`)."],"type":{"option":{"defined":{"name":"Gate"}}}},{"name":"odds","docs":["Entries whose weight grows for a player who shows a collectible that passes (any number). The purchase fixes what the collectible shown adds. Written with the","rest of the box, so a change of them is an edit (`version`)."],"type":{"vec":{"defined":{"name":"Odds"}}}},{"name":"window","docs":["When it sells: a drop at a set time, a sale that ends."],"type":{"defined":{"name":"Window"}}},{"name":"per_wallet","docs":["How many one wallet may buy, in all and in each window (`counter.rs`)."],"type":{"defined":{"name":"PerWallet"}}},{"name":"subject","docs":["The NFT the box rolls on, when it rolls on one: one the player brings that passes this","rule (an enchant, a forge, a mission's return), which its entries' `fates` act on. It is","also the NFT its gate's and odds' rules on an NFT read."],"type":{"option":{"defined":{"name":"Rule"}}}},{"name":"fates","type":{"vec":{"defined":{"name":"Fate"}}}}]}},{"name":"Lot","docs":["What an auction sells."],"type":{"kind":"enum","variants":[{"name":"Item","fields":["u32"]},{"name":"Asset","fields":["pubkey"]},{"name":"Roll","fields":["u32"]}]}},{"name":"Lottery","docs":["At `[\"lottery\", project, id]`."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"incarnation","docs":["A creation identity allocated by the persistent Project: written again as a new lottery, it","takes a new one, so its rounds are at new addresses."],"type":"u64"},{"name":"revision","docs":["Configuration edits within this incarnation. A round's first purchase names it, and the","round keeps a copy of the terms it saw."],"type":"u32"},{"name":"terms","docs":["The terms of its next round (its `draws_at` that round's date)."],"type":{"defined":{"name":"LotteryTerms"}}},{"name":"every","docs":["Seconds from one draw to the next. 0: it draws once more, round `last`, then ends."],"type":"i64"},{"name":"round","docs":["Counts the rounds: up by one as a round's draw is first asked, or it is cancelled short, or","nobody bought into it. A lottery that draws once has ended past round `last`."],"type":"u32"},{"name":"last","docs":["The round it was at when last written: for one that draws once, its last round. A repeating","lottery edited to draw once ends after the round it is at, whoever buys into it."],"type":"u32"},{"name":"gate","docs":["Who may buy tickets: read at each purchase, so an edit applies to the running round."],"type":{"option":{"defined":{"name":"Gate"}}}},{"name":"per_wallet","docs":["The most tickets one wallet holds in a round (`counter.rs`), read at each purchase. 0: no limit."],"type":"u32"},{"name":"pots","docs":["The pots it has opened, one bit for each `id` (`PaysFrom::Pot`): a close empties every one."],"type":"u16"},{"name":"owing","docs":["The last round paid from a pot that may still owe that pot what its places left (`pot_owed`):","the next ask from a pot (any of them) moves it in first, so a prize never depends on whether","someone pulled it. The default address: none."],"type":"pubkey"}]}},{"name":"LotteryArgs","type":{"kind":"struct","fields":[{"name":"terms","docs":["Its round's terms; its mint kept by every edit."],"type":{"defined":{"name":"LotteryTerms"}}},{"name":"every","type":"i64"},{"name":"gate","docs":["Who may buy tickets (`None`: anyone)."],"type":{"option":{"defined":{"name":"Gate"}}}},{"name":"per_wallet","docs":["The most tickets one wallet holds in a round (0: no limit)."],"type":"u32"}]}},{"name":"LotteryCancelled","docs":["The oracle never answered a round's draw, or it sold too few: every entry is refunded."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"incarnation","type":"u64"},{"name":"round","type":"u32"},{"name":"short","docs":["Cancelled at its draw for selling fewer tickets than its least (`min_sold`), not because the","oracle never answered."],"type":"bool"}]}},{"name":"LotteryDrawn","docs":["A lottery's round was drawn."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"incarnation","type":"u64"},{"name":"round","type":"u32"},{"name":"winning_ticket","docs":["First place's ticket (in a weighted round, a point of its weight). The others follow at even","steps (`LotteryRound::ticket_of_place`); each place's winner is the buyer of the entry that","holds its ticket."],"type":"u128"},{"name":"randomness","type":{"array":["u8",32]}}]}},{"name":"LotteryPulled","docs":["One part of a round's entry was settled: `amount`, the tokens it settled (0 for an NFT), to the","buyer, or for a recipient's part to the recipient."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"incarnation","type":"u64"},{"name":"round","type":"u32"},{"name":"entry","type":"u32"},{"name":"buyer","type":"pubkey"},{"name":"part","type":{"defined":{"name":"Part"}}},{"name":"amount","type":"u64"}]}},{"name":"LotteryTerms","docs":["A round's terms: written with the lottery, and copied by each round at its first purchase."],"type":{"kind":"struct","fields":[{"name":"price","docs":["The price of one ticket, in `mint` (or in `ticket_mint`)."],"type":"u64"},{"name":"mint","docs":["The mint ticket money and the places' parts are in, and every pot's. An edit keeps it."],"type":"pubkey"},{"name":"pays_from","docs":["Where the places are paid from: this round's own money, or a pot."],"type":{"defined":{"name":"PaysFrom"}}},{"name":"shares","docs":["Where ticket money goes before the places (one may be the buyer's choice): what they leave is","the round's part for its places (`LotteryRound::to_pot`). Empty when tickets are burned."],"type":{"vec":{"defined":{"name":"Share"}}}},{"name":"places","docs":["What each place wins, first place first, as runs of places alike (`Place::times`): a part of","what the round pays from, a prize, or both. Written empty: one winner who takes all."],"type":{"vec":{"defined":{"name":"Place"}}}},{"name":"ticket_mint","docs":["When set, a ticket costs `price` of this mint and is burned, and no ticket money reaches","the places. The default address means there is none: tickets pay into the pot. It may change","between rounds: each round has its own account of it."],"type":"pubkey"},{"name":"draws_at","docs":["Unix time the round's draw is due."],"type":"i64"},{"name":"nft_ticket","docs":["When set, a ticket costs one NFT that passes its rule, in place of tokens (`price.rs`):","handed to the project as it is bought, then sent where its price says once the round is","drawn (back to its buyer when it is cancelled). Such a lottery has no price and no shares."],"type":{"option":{"defined":{"name":"NftPrice"}}}},{"name":"returns","docs":["No loss: every ticket goes back to its buyer once the round is drawn, and the winners take","only the pot (what is paid into it: yield, a sponsor) and their prizes. No shares, no ticket","mint. Paid from its own money, its places take no money: they give their prizes."],"type":"bool"},{"name":"min_sold","docs":["The least tickets a round sells to be drawn: a due round that sold fewer is cancelled at its","draw. 0: no least."],"type":"u64"},{"name":"closes_before","docs":["Sales close this many seconds before the draw, so every ticket is held at least that long","(in a no-loss lottery, a pot goes to money that stayed in). 0: they sell until the draw."],"type":"i64"},{"name":"time_weighted","docs":["Each ticket counts in the draw for the seconds from its purchase to the close of sales (the","round's own `draws_at` less its `closes_before`), so money held longer is likelier to win.","Only for a lottery that `returns` its tickets. Off: every ticket counts one."],"type":"bool"}]}},{"name":"Moved","docs":["The project's authority moved tokens: out of a pool or newly minted (`from`), to where `to`","says. A share for a collectible's holder when nobody holds it is burned (new tokens are then","never minted)."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"authority","type":"pubkey"},{"name":"mint","type":"pubkey"},{"name":"from","type":{"defined":{"name":"TokenSource"}}},{"name":"to","type":{"defined":{"name":"To"}}},{"name":"amount","docs":["What was sent, burned or minted: 0 when nothing was minted. A mint with a transfer fee","delivers less."],"type":"u64"},{"name":"reference","type":{"array":["u8",32]}}]}},{"name":"Need","docs":["What a recipe asks of a collectible handed in: what is written under `key` on it (by the","project, or a recipe's raise) passes `test` (`rules::Test`: at least so much, at most, a time","past, at least so long ago)."],"type":{"kind":"struct","fields":[{"name":"place","docs":["Which collectible: the first handed in is 0, in the recipe's order; or the player's profile","(`PROFILE_PLACE`)."],"type":"u8"},{"name":"key","type":"string"},{"name":"test","type":{"defined":{"name":"Test"}}}]}},{"name":"NftPrice","docs":["An NFT that passes `rule`, as a price, and where it goes."],"type":{"kind":"struct","fields":[{"name":"rule","type":{"defined":{"name":"Rule"}}},{"name":"then","type":{"defined":{"name":"Spend"}}}]}},{"name":"Odds","docs":["A box entry whose weight grows by `boost`, for a player who shows a collectible that passes","its rule (`state::LootBox::odds`)."],"type":{"kind":"struct","fields":[{"name":"entry","docs":["The entry, the first of the box being 0."],"type":"u16"},{"name":"boost","type":{"defined":{"name":"Boost"}}}]}},{"name":"OddsRaised","docs":["A roll's odds boosts were fixed (`rules.rs`): at a purchase, from the collectible its player showed","and their profile; at a roll made on an NFT, from that NFT; at another roll's first ask (`ask_roll`),","from the profile and an NFT its player showed then, added to what the NFT it is on raised. `raised` has","all the basis points the order now adds to each entry's weight, in entry order."],"type":{"kind":"struct","fields":[{"name":"order","type":"pubkey"},{"name":"requested_slot","docs":["The purchase identity at this reusable order address. For a roll made on an NFT, the slot it","was made in; at an ask, the slot it asks in, which its `OrderRolled` and `OrderSettled` carry."],"type":"u64"},{"name":"asset","docs":["The NFT read (the default address for none): at an ask, the NFT shown, or the one the roll is on","when what it raised is in `raised`."],"type":"pubkey"},{"name":"profile","docs":["The player's profile read (the default address for none)."],"type":"pubkey"},{"name":"raised","type":{"vec":"u32"}}]}},{"name":"Of","docs":["Which NFTs a rule is about."],"type":{"kind":"enum","variants":[{"name":"Collection","fields":["pubkey"]},{"name":"Item","fields":["u32"]},{"name":"Profile"}]}},{"name":"Offer","docs":["At `[\"offer\", project, maker, id]`. Its maker pays its rent and gets it back when it closes."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"maker","type":"pubkey"},{"name":"mint","docs":["The token it pays in."],"type":"pubkey"},{"name":"rule","docs":["Which NFTs it takes, read as each comes in."],"type":{"defined":{"name":"Rule"}}},{"name":"deal","type":{"defined":{"name":"Deal"}}},{"name":"shares","docs":["Parts of a sale's price, taken before the seller's (a royalty, a pool's cut). None for a loan."],"type":{"vec":{"defined":{"name":"Share"}}}},{"name":"left","docs":["How many more takes it pays for: its money in the vault is `left` times `deal.unit()`. Last:","the only field a take changes (`Offer::terms`)."],"type":"u16"}]}},{"name":"OfferArgs","type":{"kind":"struct","fields":[{"name":"rule","type":{"defined":{"name":"Rule"}}},{"name":"deal","type":{"defined":{"name":"Deal"}}},{"name":"left","docs":["How many NFTs it takes, at least 1."],"type":"u16"},{"name":"shares","type":{"vec":{"defined":{"name":"Share"}}}}]}},{"name":"OfferClosed","docs":["An offer closed: called off by its maker (`refund` back to them), or taken to the last."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"offer","type":"pubkey"},{"name":"maker","type":"pubkey"},{"name":"refund","type":"u64"}]}},{"name":"OfferOpened","docs":["A maker put money up for NFTs that pass a rule (`offer.rs`): `left` takes of its deal."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"offer","type":"pubkey"},{"name":"id","type":"u32"},{"name":"maker","type":"pubkey"},{"name":"mint","type":"pubkey"},{"name":"deal","type":{"defined":{"name":"Deal"}}},{"name":"left","type":"u16"}]}},{"name":"Order","docs":["One purchase of a box, held until it is settled or refunded. The player pays its rent and","gets it back either way."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"player","type":"pubkey"},{"name":"mint","docs":["The mint the player paid in."],"type":"pubkey"},{"name":"loot_box","docs":["The box opened and its version then."],"type":"pubkey"},{"name":"box_version","type":"u32"},{"name":"odds_bps","docs":["What each of the box's odds rules added at purchase, or by the roll's first ask, in basis points.","`box_version` binds each position to its rule; unused positions are zero. The roll still checks stock."],"type":{"vec":"u32"}},{"name":"status","type":{"defined":{"name":"OrderStatus"}}},{"name":"won","docs":["What the roll set aside for the player, once it is rolled: a prize that could not be set","aside (a pool emptied, a stash taken) is not there."],"type":{"vec":{"defined":{"name":"Won"}}}},{"name":"paid","docs":["What the player paid, held in the project's vault until settle or refund. Once the first","settle call split it, only what the last part gives back (`back`)."],"type":"u64"},{"name":"fee","docs":["The platform's fee and the split, fixed at purchase so later edits don't touch a paid","order. The fee waits in the order's own SOL. A share the buyer chose is written as the wallet or","the collectible they chose."],"type":"u64"},{"name":"shares","type":{"vec":{"defined":{"name":"Share"}}}},{"name":"opens","docs":["How many opens of its box it is (`open_box`'s `count`): paid together, drawn from one answer."],"type":"u32"},{"name":"settled","docs":["How many of `won` were settled by its earlier parts (`settle`'s `upto`): the next part starts","there."],"type":"u32"},{"name":"undrawn","docs":["The draws its roll did not make, of its opens' (`LootBox::draws` each): a slot that found nothing","in stock, or what the oracle's answer had no room for."],"type":"u32"},{"name":"back","docs":["What the last settle part gives back for them: their worth (`Slot::worth`) in what was paid."],"type":"u64"},{"name":"settler","docs":["A key its player named to settle it for them (`open_box`, `ask_roll`): a wallet needn't be asked","a second time. The default names nobody, and nobody signs as it."],"type":"pubkey"},{"name":"drew","docs":["The draws its roll made; 0 once the first settle call split the payment."],"type":"u32"},{"name":"answer","docs":["The oracle's answer, once rolled: what a fresh item's traits drawn at its mint are drawn from."],"type":{"array":["u8",32]}},{"name":"drawn","docs":["The rows fresh items' table traits drew at the roll (`Won::Item`'s `drawn`)."],"type":{"vec":"u32"}},{"name":"reserved","docs":["The draws it counts in its box's `in_flight`, until its answer or its refund."],"type":"u64"},{"name":"requested_slot","docs":["The slot of the purchase. Refund deadlines count from it."],"type":"u64"},{"name":"asked_first","docs":["The slot of the roll's first ask (the purchase, or `ask_roll` from `Waiting`), which names","its ticket (`ticket_of`): a stale re-ask keeps it, so every earlier request's answer is still","taken, and the first to land rolls the order."],"type":"u64"},{"name":"asked_at","docs":["When it was last asked, and first asked: a late answer's deadlines count in time, from these."],"type":"i64"},{"name":"first_asked_at","type":"i64"},{"name":"counted","docs":["It counts against its player's limit on its box (`counter.rs`), in this window. A refund","gives it back."],"type":{"option":"u32"}},{"name":"subject","docs":["The NFT the roll is on (only a box that rolls on an NFT has one), and whether the project holds","it until the order ends (its box can burn it or give it away)."],"type":{"option":"pubkey"}},{"name":"held","type":"bool"},{"name":"fate","docs":["What the roll does to it: the rolled entry's fate, copied when it is rolled, so an edit of","the box after cannot change it."],"type":{"option":{"defined":{"name":"Fate"}}}}]}},{"name":"OrderFailed","docs":["A box order could not be rolled: nothing in it could be won, or the box was edited after","the purchase. The order can be refunded."],"type":{"kind":"struct","fields":[{"name":"order","type":"pubkey"},{"name":"requested_slot","docs":["The purchase identity at this reusable order address."],"type":"u64"},{"name":"project","type":"pubkey"},{"name":"player","type":"pubkey"}]}},{"name":"OrderPartSettled","docs":["A part of an order's prizes carried out (`settle` with an `upto` short of its last): its","`from..upto` of `won`. What each became follows from it: a collectible at `[\"asset\", item, serial]`,","the NFT itself. The order stays until its last part","(`OrderSettled`). The first part splits the payment, alone when it gives no prize (`upto` 0,","`from == upto`)."],"type":{"kind":"struct","fields":[{"name":"order","type":"pubkey"},{"name":"requested_slot","type":"u64"},{"name":"from","type":"u32"},{"name":"upto","type":"u32"},{"name":"amount","docs":["What this part split or burned of the payment, as `OrderSettled`'s: the first part's; 0 for the others."],"type":"u64"},{"name":"treasury_remainder","type":"u64"}]}},{"name":"OrderRefunded","docs":["An order's payment went back to its player."],"type":{"kind":"struct","fields":[{"name":"order","type":"pubkey"},{"name":"requested_slot","docs":["The purchase identity at this reusable order address."],"type":"u64"},{"name":"project","type":"pubkey"},{"name":"player","type":"pubkey"},{"name":"amount","type":"u64"}]}},{"name":"OrderRolled","docs":["An order is rolled: whatever its box rolled, with what was set aside for it."],"type":{"kind":"struct","fields":[{"name":"order","type":"pubkey"},{"name":"requested_slot","docs":["The purchase identity at this reusable order address."],"type":"u64"},{"name":"project","type":"pubkey"},{"name":"player","type":"pubkey"},{"name":"loot_box","docs":["The box."],"type":"pubkey"},{"name":"entries","docs":["The entries drawn, in order (each open's slots, each slot's draws), the first of the box","being 0."],"type":{"vec":"u16"}},{"name":"gave","docs":["How many of `won` each of `entries` set aside, in the same order: fewer than the entry names","when a prize of it turned out short."],"type":"bytes"},{"name":"missed","docs":["The draws made that landed on an entry that couldn't be given, and gave nothing","(`WhenOut::GiveNothing`): they are not in `entries`."],"type":"u32"},{"name":"won","docs":["What was set aside for the player: a collectible's serial, tokens, an NFT, a roll."],"type":{"vec":{"defined":{"name":"Won"}}}},{"name":"randomness","docs":["The oracle's random bytes the entry was picked with. Zeros for a box of one entry, which","rolls nothing."],"type":{"array":["u8",32]}}]}},{"name":"OrderSettled","docs":["An order was delivered, its payment split, and it closed."],"type":{"kind":"struct","fields":[{"name":"order","type":"pubkey"},{"name":"requested_slot","docs":["The purchase identity at this reusable order address."],"type":"u64"},{"name":"project","type":"pubkey"},{"name":"player","type":"pubkey"},{"name":"from","docs":["The first of `won` this settle carried out: earlier ones were by earlier parts","(`OrderPartSettled`)."],"type":"u32"},{"name":"won","docs":["What the roll set aside for the player: this call gave those from `from` on, but for any a","`PrizeForgone` names. What each became follows from it: a collectible at `[\"asset\", item,","serial]`, the NFT itself."],"type":{"vec":{"defined":{"name":"Won"}}}},{"name":"amount","docs":["What this call split or burned of the payment: what the player paid, less the share of the","draws the roll didn't make (which goes back to the player). 0 when an earlier part, the first,","made the split (`OrderPartSettled`)."],"type":"u64"},{"name":"shares","docs":["The shares of the split fixed at purchase that this call sent (`Paid`'s rule): none when an","earlier part made the split."],"type":{"vec":{"defined":{"name":"Share"}}}},{"name":"treasury_remainder","docs":["Gross remainder routed to the treasury, excluding explicit shares and before transfer fees,","by this call's split."],"type":"u64"},{"name":"back","docs":["What this call gave back to the player of what they paid: the worth of the draws the roll","didn't make (`Order::back`)."],"type":"u64"}]}},{"name":"OrderStatus","type":{"kind":"enum","variants":[{"name":"Waiting"},{"name":"Pending"},{"name":"Rolled"},{"name":"Failed"},{"name":"Asked"}]}},{"name":"Output","docs":["One thing a recipe gives."],"type":{"kind":"enum","variants":[{"name":"Prize","fields":[{"defined":{"name":"Prize"}}]},{"name":"RollOn","fields":[{"name":"box_id","type":"u32"},{"name":"place","type":"u8"}]}]}},{"name":"Paid","docs":["A player (or a sponsor, or the project's own keys) paid, and the payment was split at once."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"player","type":"pubkey"},{"name":"mint","type":"pubkey"},{"name":"amount","docs":["What the player sent, the amount they signed. A mint with a transfer fee takes its fee","out of each part on the way, so each place gets its part less that fee."],"type":"u64"},{"name":"shares","docs":["The shares that were sent, each `amount * bps / 10,000`, rounded down. One nobody could take","(`rail.rs`) is left out, and its part is in `treasury_remainder`."],"type":{"vec":{"defined":{"name":"Share"}}}},{"name":"treasury_remainder","docs":["Gross remainder routed to the treasury, excluding explicit shares and before transfer fees."],"type":"u64"},{"name":"reference","type":{"array":["u8",32]}}]}},{"name":"PaidNft","docs":["A player (or the project's own keys) paid with an NFT: burned, or given to `to`."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"player","type":"pubkey"},{"name":"asset","type":"pubkey"},{"name":"to","docs":["The wallet it went to; none when it was burned."],"type":{"option":"pubkey"}},{"name":"reference","type":{"array":["u8",32]}}]}},{"name":"Part","docs":["Which part a pull settles."],"type":{"kind":"enum","variants":[{"name":"Own"},{"name":"Pot","fields":["u16"]},{"name":"Prize","fields":["u16"]},{"name":"Common","fields":["u16"]}]}},{"name":"Payload","docs":["What a table's rows carry."],"type":{"kind":"enum","variants":[{"name":"Number"},{"name":"Label"},{"name":"Nft"}]}},{"name":"PaysFrom","docs":["Where a round's places are paid from."],"type":{"kind":"enum","variants":[{"name":"Round","fields":[{"name":"rest","type":{"defined":{"name":"To"}}}]},{"name":"Pot","fields":["u8"]}]}},{"name":"PerWallet","docs":["What one wallet may do with a record. 0 switches a limit off."],"type":{"kind":"struct","fields":[{"name":"total","docs":["In all, for good."],"type":"u32"},{"name":"per_window","docs":["In each window."],"type":"u32"},{"name":"window","docs":["The window, in seconds, counted from the unix epoch: 86,400 is a UTC day."],"type":"u32"}]}},{"name":"Place","docs":["A run of places alike: `times` places, each taking `bps` (basis points) of what the round pays","from (`PaysFrom`: its own money, or a pot with it) and a prize","for its winner (`prize.rs`): a raffled NFT, a collectible, tokens, a roll of a box."],"type":{"kind":"struct","fields":[{"name":"bps","type":"u16"},{"name":"prize","type":{"option":{"defined":{"name":"Prize"}}}},{"name":"when_short","docs":["For tokens from a pool: what its places get when the pool holds less than they win","(`WhenShort`). Every run of one pool says the same."],"type":{"defined":{"name":"WhenShort"}}},{"name":"times","type":"u32"}]}},{"name":"Platform","docs":["One for the whole program, at `[\"platform\"]`: our fees. Only `init_platform` creates one, at","that address, so an account this program owns with this tag is the platform: instructions","check the owner and the tag (Anchor's `Account`) and do not derive the address again.","","The fees themselves collect in each project's fee box (`FEES_SEED`) until the admin takes them","out, so this account is only ever read by a project's transactions and never holds them up."],"type":{"kind":"struct","fields":[{"name":"admin","type":"pubkey"},{"name":"fees","docs":["The fees in force."],"type":{"defined":{"name":"Fees"}}},{"name":"pending","docs":["A raise waiting out its notice period. The fees in force while none waits."],"type":{"defined":{"name":"Fees"}}},{"name":"pending_at","docs":["Unix time the pending fees apply from. 0 means none waits."],"type":"i64"}]}},{"name":"Prize","docs":["What a route gives its winner."],"type":{"kind":"enum","variants":[{"name":"Tokens","fields":[{"name":"from","type":{"defined":{"name":"TokenSource"}}},{"name":"amount","type":"u64"}]},{"name":"Item","fields":["u32"]},{"name":"Nft","fields":[{"name":"stash","type":"u32"},{"name":"nft","type":"pubkey"}]},{"name":"Roll","fields":["u32"]},{"name":"Stash","fields":["u32"]},{"name":"Compressed","fields":[{"name":"item","type":"u32"},{"name":"tree","type":"pubkey"}]},{"name":"Held","fields":["pubkey"]},{"name":"Raffled"}]}},{"name":"PrizeForgone","docs":["A prize an order's settle did not give (`OrderSettled` lists it, an `OrderPartSettled` spans it): the one at","`at` of the order's `won`. Its player, settling their own order, gave it up (tokens or a","collectible they can't receive, a stash's NFT put back), or a compressed one's collection can't","hold it (its serial voided)."],"type":{"kind":"struct","fields":[{"name":"order","type":"pubkey"},{"name":"requested_slot","type":"u64"},{"name":"at","type":"u32"},{"name":"won","type":{"defined":{"name":"Won"}}}]}},{"name":"PrizeGiven","docs":["A route gave its winner a prize (`prize.rs`): the collectible made or the NFT handed over (the","default address for none), a collectible's serial, the tokens, or the order a roll is made in."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"winner","type":"pubkey"},{"name":"prize","type":{"defined":{"name":"Prize"}}},{"name":"asset","type":"pubkey"},{"name":"serial","type":"u32"},{"name":"amount","type":"u64"},{"name":"order","type":"pubkey"}]}},{"name":"ProfileWritten","docs":["Numbers were written on a wallet's profile (`sheet.rs`): by the project's authority","(`collectible`), a farm's growth, or a recipe the player crafted."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"wallet","type":"pubkey"},{"name":"lines","docs":["What it wrote, key by key: an empty value took the key off."],"type":{"vec":{"defined":{"name":"Attribute"}}}}]}},{"name":"Project","docs":["One per project, at `[\"project\", creator, id]`: any wallet makes as many as it likes, each with","a number of its own. It is also the signer the program uses for the project: it owns the pools","and the vaults, mints the tokens it is the mint authority of and the collectibles of its items.","Only `create_project` creates one, at that address, so an account this program owns with this","tag is a project at its own address: instructions check the owner and the tag (Anchor's","`Account`) and do not derive the address again. Signing still uses the stored seeds and bump.","","A project need not have a token or a collection: each mechanic names the mint it takes or","pays, and each item the collection it is minted into."],"type":{"kind":"struct","fields":[{"name":"owner","docs":["Signs the settings, the catalog and every mechanic. Can hand the project to another key.","A project has two keys, this one and `authority`, and both are trusted."],"type":"pubkey"},{"name":"authority","docs":["Signs what leaves a pool, what gets made and what only the project knows (`move_tokens`,","`collectible`, `roll`, `release`, `open_contest`, `decide`, `open_auction`). A wallet, a","multisig, a server's key or another program's address. The program checks this signature","and nothing else. It pays the flat fee in SOL, so it must be a plain address that holds some."],"type":"pubkey"},{"name":"treasury","docs":["The wallet that receives whatever a split leaves over, in its associated token account","of each mint (`rail.rs`). Never the project itself."],"type":"pubkey"},{"name":"creator","docs":["Who created it, and the number they gave it: its address, which a new owner keeps."],"type":"pubkey"},{"name":"id","type":{"array":["u8",8]}},{"name":"bump","type":"u8"},{"name":"fees_bump","docs":["The bump of its fee box (`[\"fees\", project]`), so every fee can be checked to land there","(`Project::fee_box`) without searching for it."],"type":"u8"},{"name":"paused","docs":["The owner's switch on money in (`open_for_money`)."],"type":"bool"},{"name":"suspended","docs":["The platform's switch on money in (`open_for_money`)."],"type":"bool"},{"name":"incarnations","docs":["Record incarnations allocated by this project. Never reset or reused."],"type":"u64"},{"name":"collections","docs":["The Core collections the project has authority over: its items","are minted into them, an NFT of one is read and written as the project's own (`Of::Item`,","what the project writes goes on the NFT itself), and every other NFT is read with its Sheet.","The owner names them (`update_project`); Core still checks, at each write, that the project","may write there."],"type":{"vec":"pubkey"}}]}},{"name":"ProjectSuspended","type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"suspended","type":"bool"}]}},{"name":"ProjectUpdate","docs":["What to change. `None` leaves a setting as it is. A new authority or treasury comes with the","account at its key (`UpdateProject`); a new owner is an account of the update, and signs."],"type":{"kind":"struct","fields":[{"name":"authority","type":{"option":"pubkey"}},{"name":"treasury","type":{"option":"pubkey"}},{"name":"paused","type":{"option":"bool"}},{"name":"collections","docs":["The collections it has authority over from now on, in place of the ones it has. Each new one","is passed after the instruction's accounts (`take_collections`)."],"type":{"option":{"vec":"pubkey"}}}]}},{"name":"ProjectUpdated","docs":["The owner changed the project's settings (`update_project`): these are its keys and its pause","now."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"owner","type":"pubkey"},{"name":"authority","type":"pubkey"},{"name":"treasury","type":"pubkey"},{"name":"paused","type":"bool"}]}},{"name":"Raise","docs":["A number a recipe moves on a collectible handed in and kept (`Shift::raise`): `by` more under","`key`, up to `most` (a collectible already at `most` is refused, `MaxedOut`: nobody pays for","nothing), or with `by` below 0 that much less, never below 0 (a merge that costs a level). With","`from_now` the number is a time: fuel bought for a day more from now when the tank is dry, up to","`most` seconds past now; a day off a lock."],"type":{"kind":"struct","fields":[{"name":"place","docs":["Which collectible: the first handed in is 0, in the recipe's order. One that is kept; or the","player's profile (`PROFILE_PLACE`)."],"type":"u8"},{"name":"shift","type":{"defined":{"name":"Shift"}}}]}},{"name":"Rate","docs":["A fixed rate a farm pays at, instead of sharing whatever lands in its rewards vault."],"type":{"kind":"struct","fields":[{"name":"per_day","docs":["Base units of the reward a day, for each `NFT_UNIT` of weight (one collectible at ×1, or","1,000,000 base units of a token staked at ×1); with `shared`, for the whole farm."],"type":"u64"},{"name":"mints","docs":["Minted when a seat is paid, while the project is the rewards' mint authority, or paid from what","is free in the rewards vault while it lasts: what it can't cover, or the mint has no room for","(none while the project is not its authority), is not owed later."],"type":"bool"},{"name":"shared","docs":["`per_day` is the whole farm's, shared by weight while anything weighs: an emission budget."],"type":"bool"},{"name":"halve_every","docs":["Seconds from the farm's opening after which the rate halves, again and again (0: never)."],"type":"u32"}]}},{"name":"Recipe","docs":["At `[\"recipe\", project, id]`."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"active","type":"bool"},{"name":"version","docs":["Counts its edits. A player signs the version they saw, and crafts no other. A recipe is","never closed, so no version comes back at its address."],"type":"u32"},{"name":"inputs","type":{"vec":{"defined":{"name":"Input"}}}},{"name":"outputs","type":{"vec":{"defined":{"name":"Output"}}}},{"name":"needs","type":{"vec":{"defined":{"name":"Need"}}}},{"name":"keeps","type":{"vec":{"defined":{"name":"Keep"}}}},{"name":"raises","type":{"vec":{"defined":{"name":"Raise"}}}},{"name":"window","docs":["When it can be crafted: an event's forge, a season's recipe."],"type":{"defined":{"name":"Window"}}},{"name":"per_wallet","docs":["How many times one wallet may craft it, in all and in each window (`counter.rs`)."],"type":{"defined":{"name":"PerWallet"}}}]}},{"name":"RecipeArgs","type":{"kind":"struct","fields":[{"name":"active","type":"bool"},{"name":"inputs","type":{"vec":{"defined":{"name":"Input"}}}},{"name":"outputs","type":{"vec":{"defined":{"name":"Output"}}}},{"name":"needs","type":{"vec":{"defined":{"name":"Need"}}}},{"name":"keeps","type":{"vec":{"defined":{"name":"Keep"}}}},{"name":"raises","type":{"vec":{"defined":{"name":"Raise"}}}},{"name":"window","docs":["When it can be crafted (zeros: whenever it is active)."],"type":{"defined":{"name":"Window"}}},{"name":"per_wallet","docs":["How many times one wallet may craft it (zeros: no limit)."],"type":{"defined":{"name":"PerWallet"}}}]}},{"name":"RecordClosed","docs":["The owner closed the record at `target`. Its rent went to the owner, and for a grant what its","funds held, in lamports, for a lottery what its pot held, in its mint (`funds`, 0 for any","other kind). A record written again at that address counts","from 0 again (a lottery's round, a schedule's runs, a grant's counters), so a lottery's","receipts are told apart by round only between two of these."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"target","type":"pubkey"},{"name":"kind","type":{"defined":{"name":"RecordKind"}}},{"name":"funds","type":"u64"}]}},{"name":"RecordKind","docs":["The kinds of record the owner writes with `upsert`."],"type":{"kind":"enum","variants":[{"name":"Item"},{"name":"Box"},{"name":"Schedule"},{"name":"Lottery"},{"name":"Recipe"},{"name":"Grant"},{"name":"Table"}]}},{"name":"RecordWritten","docs":["The owner wrote the record at `target`: made it (`created`), or replaced what it holds, its","gate and a box's odds with the rest."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"target","type":"pubkey"},{"name":"kind","type":{"defined":{"name":"RecordKind"}}},{"name":"created","type":"bool"}]}},{"name":"Released","docs":["A held collectible left the project for `to`: given by the authority while its hold ran, sent","home to its player by anyone once it was over, or brought home by a loan's repayment (`Repaid`)."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"asset","type":"pubkey"},{"name":"player","docs":["Who handed it in, or who it was owed to: for a hold owed to the treasury, the project's","treasury wallet at the release."],"type":"pubkey"},{"name":"to","type":"pubkey"},{"name":"by","docs":["Who sent it."],"type":"pubkey"},{"name":"reference","type":{"array":["u8",32]}}]}},{"name":"Repaid","docs":["A loan was repaid before it was due, by `by` (the borrower or anyone). `home`: its NFT went home","to the borrower in the same call (a `Released` beside it); otherwise it waits in a hold that is","over, for anyone to send home (`release`)."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"asset","type":"pubkey"},{"name":"borrower","type":"pubkey"},{"name":"lender","type":"pubkey"},{"name":"by","type":"pubkey"},{"name":"repay","type":"u64"},{"name":"home","type":"bool"}]}},{"name":"Reweighed","docs":["A seat's weight was counted again from its collectible as it is now (`refresh_seat`)."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"farm","type":"u32"},{"name":"seat","type":"pubkey"},{"name":"asset","docs":["The collectible the boost was read from, or the default address for none."],"type":"pubkey"},{"name":"boost_bps","type":"u32"},{"name":"weight","type":"u128"}]}},{"name":"Rise","docs":["A price that rises with every sale: a bonding curve, a throne that costs 10% more each time.","After a sale the price becomes `price + step + price * growth_bps / 10,000`."],"type":{"kind":"struct","fields":[{"name":"step","type":"u64"},{"name":"growth_bps","type":"u16"}]}},{"name":"RollMade","docs":["A purchase (`open_box`), or a mission's return, a recipe or a prize, made a roll (`waiting_order`:","it waits for its player or the project's keys to ask the oracle, `ask_roll`). On `subject` (the","default address for none), which the project holds until it is settled when `held`. It names no","slot: a purchase's `requested_slot` is the slot of this receipt, a waiting roll's is set when it","is asked, and its `OrderRolled` and `OrderSettled` carry that one."],"type":{"kind":"struct","fields":[{"name":"order","type":"pubkey"},{"name":"project","type":"pubkey"},{"name":"player","type":"pubkey"},{"name":"loot_box","type":"pubkey"},{"name":"subject","type":"pubkey"},{"name":"held","type":"bool"},{"name":"mint","docs":["What the order holds of what was paid for it (`paid` of `mint`, in the project's vault): a","purchase's price as it arrived, an auction's winning bid, 0 for a free roll."],"type":"pubkey"},{"name":"paid","type":"u64"},{"name":"opens","docs":["The opens it is of (`open_box`'s `count`)."],"type":"u32"}]}},{"name":"Rolled","docs":["The oracle answered a `roll`. What the number decides is the project's own rule."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"reference","docs":["The label the authority gave the request."],"type":{"array":["u8",32]}},{"name":"randomness","type":{"array":["u8",32]}}]}},{"name":"RoundClosed","docs":["A finished round that owed nothing more closed."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"incarnation","type":"u64"},{"name":"round","type":"u32"}]}},{"name":"Rule","docs":["An NFT that passes: of `of`, with `test` true of the attribute under `key`."],"type":{"kind":"struct","fields":[{"name":"of","type":{"defined":{"name":"Of"}}},{"name":"key","type":"string"},{"name":"test","type":{"defined":{"name":"Test"}}}]}},{"name":"SaleCalledOff","docs":["A sale of an NFT lot called off after its end, the lot never having moved to `bidder`, and the","auction closed: `back` of the winning bid went back to them (tokens, or how many of its NFTs: one","proven gone stays gone); the `lot` went home to its seller (`home`: moved, or a hold for them), or","was proven gone. `gone`: called off on that evidence, by anyone (`by`); otherwise by the","project's keys."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"auction","type":"pubkey"},{"name":"bidder","type":"pubkey"},{"name":"back","type":"u64"},{"name":"lot","type":"pubkey"},{"name":"home","type":"bool"},{"name":"gone","type":"bool"},{"name":"by","type":"pubkey"},{"name":"reference","type":{"array":["u8",32]}}]}},{"name":"Schedule","docs":["At `[\"schedule\", project, id]`."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"active","type":"bool"},{"name":"action","type":{"defined":{"name":"Action"}}},{"name":"every","docs":["Seconds between runs."],"type":"i64"},{"name":"next_at","docs":["Unix time of the next run."],"type":"i64"},{"name":"runs","docs":["Runs so far."],"type":"u32"},{"name":"max_runs","docs":["Stops after this many runs. 0: never stops."],"type":"u32"}]}},{"name":"ScheduleArgs","type":{"kind":"struct","fields":[{"name":"active","type":"bool"},{"name":"action","type":{"defined":{"name":"Action"}}},{"name":"every","type":"i64"},{"name":"next_at","type":"i64"},{"name":"max_runs","type":"u32"}]}},{"name":"ScheduleRan","docs":["A schedule ran runs `from` to `run`, counted from 1: together they minted, burned or moved","`amount`. A sealed schedule's run after its last (`from` and `run` the last) pays what arrived since."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"from","type":"u32"},{"name":"run","type":"u32"},{"name":"action","type":{"defined":{"name":"Action"}}},{"name":"amount","type":"u64"}]}},{"name":"Seat","docs":["At `[\"seat\", farm, player]` for tokens, `[\"seat\", farm, asset]` for a collectible. Its player","pays its rent and gets it back when it closes."],"type":{"kind":"struct","fields":[{"name":"player","type":"pubkey"},{"name":"bump","type":"u8"},{"name":"asset","docs":["The collectible staked, or a token seat's booster; the default address for none."],"type":"pubkey"},{"name":"amount","docs":["Tokens staked; 1 for a collectible."],"type":"u64"},{"name":"tier","type":"u8"},{"name":"since","docs":["Unix time its lock started: its last stake, or its booster put on."],"type":"i64"},{"name":"boost_bps","type":"u32"},{"name":"weight","type":"u128"},{"name":"paid_per_weight","docs":["`reward_per_weight` when it was last credited."],"type":"u128"},{"name":"owed","docs":["Credited and not yet paid."],"type":"u64"},{"name":"reward_remainder","docs":["Fraction of a reward token already earned, times `PRECISION`; always below `PRECISION`."],"type":"u64"},{"name":"grown_at","docs":["When its collectible last grew (`Growth`), and how long it has grown since it came in, in","seconds at ×1, times `TIMES_ONE` (its tier and boost scale it): each growth's points are","what that is worth at its rate, so no part of a point is lost."],"type":"i64"},{"name":"grown","type":"u128"},{"name":"earns_until","docs":["Until when it earns and grows (`i64::MAX`: no end): the sooner of its tier's term","(`Tier::earns_for` after `since`) and its fuel as its collectible said when last read","(staked, refreshed). A seat with weight and an end is on the farm's record of ends."],"type":"i64"},{"name":"dry","docs":["Its fuel ran out before its tier's lock and term did, at some point since it came in: a","mission that ran dry takes no prize, even refuelled before it lands."],"type":"bool"},{"name":"locked","docs":["What it held when its lock last started (`since`): a stake gate counts no more than this","(`Gate::Staked`), so what a compound adds counts once a stake starts the lock again."],"type":"u64"}]}},{"name":"Seated","docs":["A player took a seat in a farm, or added to theirs: `amount` more tokens, or a collectible","(`asset`) staked on its own seat (`amount` 1) or put on their token seat as its booster","(`amount` 0). `weight` is the seat's share now."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"farm","type":"u32"},{"name":"player","type":"pubkey"},{"name":"seat","type":"pubkey"},{"name":"asset","docs":["The collectible staked or put on, or the default address for tokens."],"type":"pubkey"},{"name":"amount","type":"u64"},{"name":"tier","type":"u8"},{"name":"boost_bps","type":"u32"},{"name":"weight","type":"u128"}]}},{"name":"Share","docs":["A part of a payment, in basis points of the whole (10,000 = 100%).","","A person's part (a wallet's, a holder's, the treasury's) goes to their associated token","account of the payment's mint, opened when it is not there (`rail.rs`). Only a part nobody","can take joins what the split leaves (the treasury's part of a sale, a contest's prize, a","lottery's pot): a collectible nobody holds, or an account the owner named that is gone."],"type":{"kind":"struct","fields":[{"name":"to","type":{"defined":{"name":"To"}}},{"name":"bps","type":"u16"}]}},{"name":"Shift","docs":["A number a roll moves on the NFT it was on: `by` more (or less) under `key`, never below 0, and","with `most`, never above it (0: no cap). With `from_now` the number is a time (Unix seconds:","a lock's end, fuel that lasts until then): moved from now when it is already past, and never","more than `most` seconds past now (24 hours in jail; a tank of three days)."],"type":{"kind":"struct","fields":[{"name":"key","type":"string"},{"name":"by","type":"i32"},{"name":"most","type":"u32"},{"name":"from_now","type":"bool"}]}},{"name":"Sink","docs":["Where a fee a farm takes goes: burned, into one of the project's pools, or into the farm's own","rewards vault, free there for its seats like anything that lands (a farm whose staked token is","its rewards')."],"type":{"kind":"enum","variants":[{"name":"Burn"},{"name":"Pool","fields":["u16"]},{"name":"Rewards"}]}},{"name":"Slot","docs":["A slot of a box's open (`LootBox::slots`): `count` draws among the entries `only` names (every entry","when it names none), and with `distinct`, no entry twice in it. `share`: what its draws are worth,","in basis points of an open's price. A box whose slots name entries gives each its share, 10,000","together (its slots draw different things, so only the owner knows what each is worth); a box","whose slots draw among every entry gives none, and each draw is worth the same."],"type":{"kind":"struct","fields":[{"name":"count","type":"u32"},{"name":"only","type":{"vec":"u16"}},{"name":"distinct","type":"bool"},{"name":"share","type":"u16"}]}},{"name":"SoldToOffer","docs":["A holder sold an NFT into a bid: the NFT to the maker, the price through the shares, `paid` of","it to the seller (before transfer fees)."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"offer","type":"pubkey"},{"name":"maker","type":"pubkey"},{"name":"seller","type":"pubkey"},{"name":"asset","type":"pubkey"},{"name":"price","type":"u64"},{"name":"paid","type":"u64"}]}},{"name":"Spend","docs":["Where an NFT paid goes."],"type":{"kind":"enum","variants":[{"name":"Burn"},{"name":"Give","fields":["pubkey"]},{"name":"Stash","fields":["u32"]}]}},{"name":"StashOf","docs":["Which stash a `stash` call puts into or takes out of: one of the project's, by its id, or the own","stash of the project's lottery with this id."],"type":{"kind":"enum","variants":[{"name":"Project","fields":["u32"]},{"name":"Lottery","fields":["u32"]}]}},{"name":"Stashed","docs":["An NFT went into one of the project's stashes (`to` none), or out of it to `to`, by the project's","owner or authority (`by`). One a roll gives away leaves with its order (`OrderRolled`)."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"asset","type":"pubkey"},{"name":"by","type":"pubkey"},{"name":"to","type":{"option":"pubkey"}},{"name":"lottery","docs":["The lottery whose own stash it was (`StashOf::Lottery`); `None` for one of the project's."],"type":{"option":"pubkey"}},{"name":"weight","docs":["Its weight in the stash, put in; 0 taken out."],"type":"u32"}]}},{"name":"TableArgs","docs":["What `upsert` writes on a table: rows added after the ones it has, and whether it is sealed now."],"type":{"kind":"struct","fields":[{"name":"payload","type":{"defined":{"name":"Payload"}}},{"name":"rows","type":{"vec":{"defined":{"name":"TableRow"}}}},{"name":"seal","type":"bool"}]}},{"name":"TableRow","docs":["One row the owner writes: its weight, its stock (`NO_LIMIT` for none) and, for a table of labels,","its label."],"type":{"kind":"struct","fields":[{"name":"weight","type":"u32"},{"name":"left","type":"u32"},{"name":"label","type":"string"}]}},{"name":"Test","docs":["What a rule asks of the attribute under its key."],"type":{"kind":"enum","variants":[{"name":"Any"},{"name":"AtLeast","fields":["u32"]},{"name":"OneOf","fields":[{"name":"texts","type":{"vec":"string"}}]},{"name":"Ahead"},{"name":"Passed"},{"name":"AtMost","fields":["u32"]},{"name":"Within","fields":["u32"]},{"name":"Older","fields":["u32"]}]}},{"name":"TicketsBought","docs":["A player bought lottery tickets `first_ticket .. first_ticket + count`."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"incarnation","type":"u64"},{"name":"round","type":"u32"},{"name":"player","type":"pubkey"},{"name":"first_ticket","type":"u64"},{"name":"count","type":"u32"},{"name":"weight","docs":["What they weigh in the draw: `count`, or in a weighted round (`time_weighted`) `count` times","the seconds from the purchase to the close of sales."],"type":"u128"},{"name":"entry","docs":["The entry these tickets are in the round's record (`LotteryRound`)."],"type":"u32"},{"name":"received","docs":["Payment actually received by escrow after any external transfer fee."],"type":"u64"},{"name":"asset","docs":["The NFT a ticket paid for with an NFT was bought with (the default address for tokens)."],"type":"pubkey"}]}},{"name":"Tier","docs":["A lock tier: how long a seat stays in, and how much more it counts for it (10,000 is ×1)."],"type":{"kind":"struct","fields":[{"name":"lock","type":"u32"},{"name":"bps","type":"u32"},{"name":"prize","docs":["A mission's prize: what a collectible that leaves after this tier's lock has run takes","with it (`prize.rs`), a fixed amount of tokens grown by its boosts; a roll of a box (a","chest) is made at the unstake's nonce plus 1."],"type":{"option":{"defined":{"name":"Prize"}}}},{"name":"roll","docs":["A mission's result: the box a collectible that leaves after this tier's lock is rolled on","(a box with a `subject`: its fates raise or lower its numbers, or burn it or give it away),","with odds its stats raise. Growth stops at the lock's end, so staying on never puts the","roll off for gain."],"type":{"option":"u32"}},{"name":"exit_bps","docs":["A token seat may leave before this tier's lock has run by leaving this share of what it takes","out (basis points, rounded up) where the farm's `exit_to` says. 0: it can't (`StillLocked`).","A farm of tokens only: a collectible leaves early by its lock on the NFT (`lock_key`)."],"type":"u16"},{"name":"earns_for","docs":["Seconds a seat earns and grows after its lock started (`Seat::since`); 0: no end. Its prize","is still given once its lock has run."],"type":"u32"}]}},{"name":"To","docs":["Where a share of a payment goes."],"type":{"kind":"enum","variants":[{"name":"Burn"},{"name":"Pool","fields":["u16"]},{"name":"Account","fields":["pubkey"]},{"name":"Holder","fields":["pubkey"]},{"name":"Wallet","fields":["pubkey"]},{"name":"Treasury"},{"name":"Chosen","fields":[{"name":"item","type":{"option":"u32"}}]}]}},{"name":"TokenSource","docs":["Where the tokens the project moves come from."],"type":{"kind":"enum","variants":[{"name":"Pool","fields":["u16"]},{"name":"Mint","fields":["pubkey"]},{"name":"Vest","fields":["pubkey"]},{"name":"Farm","fields":["u32"]}]}},{"name":"Trait","docs":["A trait a fresh item's units draw: written under `key`, from `from`."],"type":{"kind":"struct","fields":[{"name":"key","type":"string"},{"name":"from","type":{"defined":{"name":"Values"}}}]}},{"name":"TraitsProven","docs":["Traits were proven and written into an NFT's Sheet: the ones it did not have yet."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"key","type":"pubkey"},{"name":"nft","type":"pubkey"},{"name":"attributes","type":{"vec":{"defined":{"name":"Attribute"}}}}]}},{"name":"TraitsSet","docs":["The project's owner or authority set the root of the traits it vouches for."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"key","type":"pubkey"},{"name":"root","type":{"array":["u8",32]}}]}},{"name":"TreeOpened","docs":["The project's keys made a Bubblegum v2 tree the project alone mints compressed prizes into."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"tree","type":"pubkey"},{"name":"max_depth","type":"u32"},{"name":"max_buffer_size","type":"u32"}]}},{"name":"Unlisted","docs":["A maker took a listed NFT home, and the listing closed."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"listing","type":"pubkey"},{"name":"maker","type":"pubkey"},{"name":"asset","type":"pubkey"}]}},{"name":"Unseated","docs":["A player took `amount` tokens, or a collectible (`asset`), out of a farm and was paid","`rewards`: their staked collectible (`amount` 1), or their token seat's booster (`amount` 0)."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"farm","type":"u32"},{"name":"player","type":"pubkey"},{"name":"seat","type":"pubkey"},{"name":"asset","type":"pubkey"},{"name":"amount","type":"u64"},{"name":"rewards","type":"u64"},{"name":"staked","docs":["What stays in the seat: tokens, or 0 once it is closed."],"type":"u64"},{"name":"fee","docs":["What leaving early left behind (`Tier::exit_bps`)."],"type":"u64"},{"name":"prize_missed","docs":["The mission's prize was won but could not be given (a pool short of it, an item sold out),","and the NFT went home without it: no `PrizeGiven`, and nothing keeps it owed."],"type":"bool"}]}},{"name":"Values","docs":["Where a trait's value comes from."],"type":{"kind":"enum","variants":[{"name":"Table","fields":["u32"]},{"name":"Range","fields":[{"name":"min","type":"u64"},{"name":"max","type":"u64"}]}]}},{"name":"Verdict","type":{"kind":"enum","variants":[{"name":"Open"},{"name":"Won"},{"name":"Off"}]}},{"name":"WhenOut","docs":["What a box does once an entry it lists can't be given (an item sold out, a pool short of its","amount, a stash's NFT gone): the project chooses, and players see which."],"type":{"kind":"enum","variants":[{"name":"StopSales"},{"name":"DrawLeft"},{"name":"GiveNothing"}]}},{"name":"WhenShort","docs":["What a pool's places get when the pool holds less, as the round's draw is first asked, than","every place of it with a winner wins: written down then, and paid from what was written. A","minted prize is never short."],"type":{"kind":"enum","variants":[{"name":"InOrder"},{"name":"InProportion"},{"name":"Nothing"}]}},{"name":"Window","docs":["When something can be done: from `opens_at`, and before `closes_at`. 0 leaves that side open."],"type":{"kind":"struct","fields":[{"name":"opens_at","type":"i64"},{"name":"closes_at","type":"i64"}]}},{"name":"Won","docs":["What a roll set aside for its player (`Order::won`), for `settle` to hand over: nothing that","happens between the roll and the settle (another winner, a move of the pool's) can take it."],"type":{"kind":"enum","variants":[{"name":"Item","fields":[{"name":"item","type":"u32"},{"name":"serial","type":"u32"},{"name":"drawn","type":{"option":"u32"}}]},{"name":"Tokens","fields":[{"name":"mint","type":"pubkey"},{"name":"amount","type":"u64"}]},{"name":"Nft","fields":[{"name":"stash","type":"u32"},{"name":"nft","type":"pubkey"},{"name":"weight","type":"u32"}]},{"name":"Compressed","fields":[{"name":"item","type":"u32"},{"name":"serial","type":"u32"},{"name":"drawn","type":{"option":"u32"}}]}]}}],"constants":[{"name":"ASSET_SEED","docs":["`[\"asset\", item, serial]`: every collectible the program mints of its own accord (an order's,","a prize's, an auction's lot). A serial is minted once at most, so the address is always new","(`prize::mint_item`)."],"type":"bytes","value":"[97, 115, 115, 101, 116]"},{"name":"AUCTION_SEED","docs":["`[\"auction\", project, seller, id]`: an auction (`instructions/auction.rs`). Its bids wait in the project's","vault for its mint, with open orders' payments."],"type":"bytes","value":"[97, 117, 99, 116, 105, 111, 110]"},{"name":"BOX_SEED","docs":["`[\"box\", project, box id]`"],"type":"bytes","value":"[98, 111, 120]"},{"name":"CLAIMS_SEED","docs":["`[\"claims\", grant, incarnation, shard]` and `[\"rounds\", grant, incarnation, shard]`: a grant's","limit records and the rounds it paid, each in `2^shard_bits` lists (`instructions/grant.rs`)."],"type":"bytes","value":"[99, 108, 97, 105, 109, 115]"},{"name":"CLAIM_GRACE_SECONDS","docs":["How long after a contest's decision a winner alone picks its share of the losers' NFTs and alone","may go without a prize that can't be given. After it, the project's keys may do both, so a winner","doesn't hold up the rest of the contest for as long as they look after it."],"type":"i64","value":"2592000"},{"name":"CONTEST_SEED","docs":["`[\"contest\", project, id]`, its pot at `[\"pot\", contest]`, and its entries, a list with one","record a player (a wallet backs one side, `OtherSide`), at `[\"entries\", contest, incarnation,","page]` (page 0)."],"type":"bytes","value":"[99, 111, 110, 116, 101, 115, 116]"},{"name":"COUNTS_SEED","docs":["`[\"counts\", project, wallet]`: how many times a wallet bought from each box, crafted each recipe","and held tickets in each lottery's round that limits it (`instructions/counter.rs`)."],"type":"bytes","value":"[99, 111, 117, 110, 116, 115]"},{"name":"DAY_SECONDS","docs":["A grant's daily limit counts claims in days of this many seconds, from the unix epoch."],"type":"i64","value":"86400"},{"name":"ENDS_SEED","type":"bytes","value":"[101, 110, 100, 115]"},{"name":"ENTRIES_SEED","type":"bytes","value":"[101, 110, 116, 114, 105, 101, 115]"},{"name":"FARM_SEED","docs":["A farm (`instructions/farm.rs`), and a seat in it: `[\"seat\", farm, player]` for tokens,","`[\"seat\", farm, asset]` for a collectible."],"type":"bytes","value":"[102, 97, 114, 109]"},{"name":"FEES_SEED","docs":["`[\"fees\", project]`: the project's fee box, an account of this program that holds nothing but","SOL. The platform's fees on that project's transactions wait there until it collects them, so","one project's traffic never queues behind another's on a shared account."],"type":"bytes","value":"[102, 101, 101, 115]"},{"name":"GRANT_SEED","docs":["`[\"grant\", project, id]`: a reward the owner lets vouchers (or an approved list) hand out, within","its limits (`instructions/grant.rs`)."],"type":"bytes","value":"[103, 114, 97, 110, 116]"},{"name":"HOLD_SEED","docs":["`[\"hold\", asset, free_at]`: an NFT the project is holding for a player, until then."],"type":"bytes","value":"[104, 111, 108, 100]"},{"name":"ITEM_SEED","docs":["`[\"item\", project, item id]`"],"type":"bytes","value":"[105, 116, 101, 109]"},{"name":"LEAF_SEED","docs":["`[\"leaf\", asset]`: a compressed NFT as last proven (`bubblegum.rs`)."],"type":"bytes","value":"[108, 101, 97, 102]"},{"name":"LISTING_SEED","docs":["`[\"listing\", project, asset]`: an NFT up for sale or for rent (`instructions/listing.rs`), which","the project holds while it is listed. One listing a project an NFT, found by the NFT's address."],"type":"bytes","value":"[108, 105, 115, 116, 105, 110, 103]"},{"name":"LOTTERY_SEED","type":"bytes","value":"[108, 111, 116, 116, 101, 114, 121]"},{"name":"LOTTERY_STASH_SEED","docs":["`[\"lottery_stash\", lottery]`: a lottery's own stash, the NFTs its places promise (`Prize::Held`)."],"type":"bytes","value":"[108, 111, 116, 116, 101, 114, 121, 95, 115, 116, 97, 115, 104]"},{"name":"LOTTERY_TIMEOUT_SECONDS","docs":["A lottery draw the oracle has not answered this long after it was first asked for is cancelled by","the next ask (`draw_lottery`): the round is refunded."],"type":"i64","value":"604800"},{"name":"MAX_FEE_LAMPORTS","docs":["The most either flat fee can ever be: 0.01 SOL."],"type":"u64","value":"10000000"},{"name":"MAX_POTS","docs":["The most pots one lottery keeps (`PaysFrom::Pot`), each at `[\"pot\", lottery, id]`, `id` below this."],"type":"u8","value":"16"},{"name":"MAX_RUN_PLACES","docs":["The most places one run of a lottery's places holds when they are given one by one (an NFT, a","compressed NFT, a raffled one): a pull walks the run from its first place, and so fits."],"type":"u32","value":"4096"},{"name":"NOTICE_SECONDS","docs":["A fee raise waits this long before it applies (7 days). A cut applies at once."],"type":"i64","value":"604800"},{"name":"OFFER_SEED","docs":["`[\"offer\", project, maker, id]`: an offer (`instructions/offer.rs`). Its money waits in the","project's vault for its mint, with open orders' payments and auctions' bids."],"type":"bytes","value":"[111, 102, 102, 101, 114]"},{"name":"ORDER_SEED","docs":["`[\"order\", project, player, nonce]`"],"type":"bytes","value":"[111, 114, 100, 101, 114]"},{"name":"PLATFORM_SEED","type":"bytes","value":"[112, 108, 97, 116, 102, 111, 114, 109]"},{"name":"POOL_SEED","docs":["`[\"pool\", project, index]`: a token account the project owns."],"type":"bytes","value":"[112, 111, 111, 108]"},{"name":"POT_SEED","type":"bytes","value":"[112, 111, 116]"},{"name":"PRIZE_SEED","docs":["`[\"prize\", contest]`: a contest's prize split by stake, set aside when it is decided","(`instructions/contest.rs`)."],"type":"bytes","value":"[112, 114, 105, 122, 101]"},{"name":"PROFILE_SEED","docs":["`[\"profile\", project, wallet]`: what the project writes about a wallet (`sheet.rs`)."],"type":"bytes","value":"[112, 114, 111, 102, 105, 108, 101]"},{"name":"PROJECT_SEED","docs":["`[\"project\", creator, id]`: a project (`state::Project`)."],"type":"bytes","value":"[112, 114, 111, 106, 101, 99, 116]"},{"name":"RECIPE_SEED","type":"bytes","value":"[114, 101, 99, 105, 112, 101]"},{"name":"REWARDS_SEED","type":"bytes","value":"[114, 101, 119, 97, 114, 100, 115]"},{"name":"ROUNDS_SEED","type":"bytes","value":"[114, 111, 117, 110, 100, 115]"},{"name":"ROUND_SEED","docs":["`[\"round\", lottery, incarnation, round]`: one round of a lottery (`LotteryRound`), its token","accounts at `[\"round-tokens\", round, mint]`."],"type":"bytes","value":"[114, 111, 117, 110, 100]"},{"name":"ROUND_TOKENS_SEED","type":"bytes","value":"[114, 111, 117, 110, 100, 45, 116, 111, 107, 101, 110, 115]"},{"name":"SCHEDULE_SEED","docs":["`[\"schedule\", project, id]`, `[\"lottery\", project, id]`, `[\"recipe\", project, id]`, `[\"farm\", project,","id]`: the mechanics a project runs without its authority."],"type":"bytes","value":"[115, 99, 104, 101, 100, 117, 108, 101]"},{"name":"SEAT_SEED","type":"bytes","value":"[115, 101, 97, 116]"},{"name":"SHEET_SEED","docs":["`[\"sheet\", project, nft]`: what the project writes about an NFT it has no authority over (`sheet.rs`)."],"type":"bytes","value":"[115, 104, 101, 101, 116]"},{"name":"STAKED_SEED","docs":["`[\"staked\", farm]` and `[\"rewards\", farm]`: the two vaults of a farm."],"type":"bytes","value":"[115, 116, 97, 107, 101, 100]"},{"name":"STALE_SECONDS","docs":["A box still waiting for its roll this long after it was asked for can be refunded."],"type":"i64","value":"600"},{"name":"STASH_SEED","docs":["`[\"stash\", project, id]`: NFTs the project holds to give away as prizes (`instructions/stash.rs`)."],"type":"bytes","value":"[115, 116, 97, 115, 104]"},{"name":"TABLE_SEED","docs":["`[\"table\", project, id]`: rows drawn by weight (`table.rs`)."],"type":"bytes","value":"[116, 97, 98, 108, 101]"},{"name":"TRAITS_SEED","docs":["`[\"traits\", project, key]`: the root of the traits the project vouches for (`instructions/nft.rs`)."],"type":"bytes","value":"[116, 114, 97, 105, 116, 115]"},{"name":"VEST_SEED","docs":["`[\"vest\", schedule]`: a sealed schedule's own vault (`instructions/schedule.rs`)."],"type":"bytes","value":"[118, 101, 115, 116]"}]};
|
|
2
|
+
export default {"address":"9cwqM1TXytPnFZsLfmUyv2dg4uW6Ch9C6UJVPns7NFQ","metadata":{"name":"loot","version":"0.26.1","spec":"0.1.0","description":"Economy for Anything: one program every coin of a project passes through","repository":"https://github.com/gamesfun/loot"},"instructions":[{"name":"ask_roll","docs":["Its player or the project's keys ask the oracle for a roll a mission's return or a recipe made (`Waiting`): it lands","in `callback_roll`, as a box's does."],"discriminator":[6],"accounts":[{"name":"payer","docs":["Pays the oracle: its player or the project's keys."],"writable":true,"signer":true},{"name":"order","docs":["Waiting to be asked, or asked and never answered."],"writable":true},{"name":"loot_box"},{"name":"project"},{"name":"oracle_queue","writable":true},{"name":"program_identity"},{"name":"vrf_program","docs":["(and fails there when it is no program), so a roll whose box was edited fails, for its","refund, even with the oracle gone."],"address":"Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz"},{"name":"slot_hashes"},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"settler","type":"pubkey"}]},{"name":"bid","docs":["A player bids on an auction; the bid it tops goes back to its bidder at once."],"discriminator":[32],"accounts":[{"name":"bidder","writable":true,"signer":true},{"name":"project"},{"name":"auction","writable":true},{"name":"vault","docs":["opens it when it is not there. Passed writable only for bids in tokens."]},{"name":"bidder_token","writable":true},{"name":"outbid","docs":["(`Tokens::wallet_account`): the bid this one tops goes back there (and, for NFTs, the rent of","the project's token account a Token Metadata NFT of theirs emptied)."],"writable":true,"optional":true},{"name":"outbid_token","writable":true,"optional":true},{"name":"mint"},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"amount","type":"u64"},{"name":"terms","type":{"array":["u8",32]}}]},{"name":"borrow","docs":["A holder borrows against an NFT: it is held until `due`, and the loan paid to them."],"discriminator":[38],"accounts":[{"name":"borrower","docs":["Holds the NFT, hands it in, and is lent the money. Pays the hold's rent and the fee."],"writable":true,"signer":true},{"name":"project"},{"name":"offer","writable":true},{"name":"maker","writable":true},{"name":"hold","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,111,108,100]},{"kind":"account","path":"piece.asset","account":"Piece"},{"kind":"arg","path":"due"}]}},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"mint"},{"name":"vault","writable":true},{"name":"borrower_token","docs":["opened when it is not there."],"writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"due","type":"i64"},{"name":"terms","type":{"array":["u8",32]}}]},{"name":"buy","docs":["Buy `count` of a box that needs no roll (a shop item, a bundle, a pack of fixed cards): the","price is split and the entry's prizes given at once, with no order."],"discriminator":[2],"accounts":[{"name":"player","docs":["Pays the price and the fee, and what the prizes open or make."],"writable":true,"signer":true},{"name":"project"},{"name":"loot_box","docs":["Its price moves with each sale (`Rise`, `Fall`)."],"writable":true},{"name":"mint","docs":["share of it, burns."]},{"name":"player_token","writable":true},{"name":"treasury"},{"name":"treasury_token","writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"chosen","docs":["one (`To::Chosen` with an item). Checked against the choice."],"optional":true},{"name":"counts","docs":["wallet buys. Made at their first count, its rent theirs."],"writable":true,"optional":true},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"max_price","type":"u64"},{"name":"chosen_recipient","type":{"option":"pubkey"}},{"name":"version","type":"u32"},{"name":"nonce","type":"u64"},{"name":"count","type":"u32"}]},{"name":"buy_tickets","docs":["A player buys lottery tickets."],"discriminator":[18],"accounts":[{"name":"player","docs":["Pays for the tickets, and the bytes their entry adds when the lottery's spare SOL doesn't (a","round the lottery opened, while its spare covers them); the round's first buyer also fronts its","header and its account of the payment mint when the lottery's spare SOL can't (`funded`), back","at the close."],"writable":true,"signer":true},{"name":"project"},{"name":"lottery","writable":true},{"name":"round","docs":["round's first purchase."],"writable":true},{"name":"player_token","writable":true},{"name":"payment_vault","docs":["payment (checked in the handler)."],"writable":true},{"name":"mint"},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"chosen","docs":["(`To::Chosen` with an item). Checked against the choice."],"optional":true},{"name":"counts","docs":["tickets one wallet holds in a round. Made at their first count, its rent theirs."],"writable":true,"optional":true},{"name":"associated_token_program","docs":["For a share the buyer chooses: opens its recipient's account of the mint when it is not there."],"optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}],"args":[{"name":"count","type":"u32"},{"name":"chosen_recipient","type":{"option":"pubkey"}},{"name":"revision","type":"u32"}]},{"name":"callback_lottery","docs":["The oracle's answer: picks the winning ticket."],"discriminator":[177,95,170,205,202,136,78,28],"accounts":[{"name":"vrf_program_identity","docs":["The oracle's identity for this program, by address."],"signer":true},{"name":"round","docs":["older round, one drawn already, a lottery made again) is refused."],"writable":true}],"args":[{"name":"randomness","type":{"array":["u8",32]}}]},{"name":"callback_random","docs":["The oracle's answer, written as a receipt."],"discriminator":[64,93,248,223,247,90,38,224],"accounts":[{"name":"vrf_program_identity","docs":["The oracle's identity for this program, by address."],"signer":true},{"name":"project"},{"name":"reference"}],"args":[{"name":"randomness","type":{"array":["u8",32]}}]},{"name":"callback_roll","docs":["The oracle's answer: picks the box order's outcome."],"discriminator":[104,43,141,38,167,29,52,209],"accounts":[{"name":"vrf_program_identity","docs":["The oracle's identity for this program, by address."],"signer":true},{"name":"order","writable":true},{"name":"loot_box","docs":["Written: the order's draws leave its `in_flight`."],"writable":true},{"name":"ticket","docs":["first answer to land rolls the order; any other then finds it no longer asked."]}],"args":[{"name":"randomness","type":{"array":["u8",32]}}]},{"name":"claim","docs":["Anyone pays a decided or called-off contest's entry `entry` to its player, and moves the","NFTs of the entries `nfts` names where they go; the claim that leaves nothing owed closes","the contest. With `forgo` (the player only), a winner's first claim goes without its prize;","with `end` (the winner only), it leaves the rest of its share of the losers' NFTs to the","opener. An NFT passed as its hold's address becomes a hold for the wallet it goes to."],"discriminator":[44],"accounts":[{"name":"payer","docs":["Anyone, but for a winner's first claim that gives a prize or picks: the winner or the project's keys.","Opens the player's account of the mint when it is not there."],"writable":true,"signer":true},{"name":"project"},{"name":"contest","writable":true},{"name":"entries","writable":true},{"name":"player","writable":true},{"name":"opener","docs":["contest, its list's header and its pot at the close."],"writable":true},{"name":"pot","writable":true,"pda":{"seeds":[{"kind":"const","value":[112,111,116]},{"kind":"account","path":"contest"}]}},{"name":"to","writable":true},{"name":"mint","docs":["keeps tokens to burn or fees a Token-2022 mint withheld."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"prize_mint","docs":["what the vault still holds)."],"writable":true,"optional":true},{"name":"prize_pool","docs":["against its index): what the vault still holds goes back to it."],"writable":true,"optional":true},{"name":"prize_vault","writable":true,"optional":true},{"name":"prize_to","docs":["mint (`Tokens::wallet_account`)."],"writable":true,"optional":true},{"name":"treasury","writable":true,"optional":true}],"args":[{"name":"entry","type":"u32"},{"name":"nonce","type":"u64"},{"name":"forgo","type":"bool"},{"name":"end","type":"bool"},{"name":"nfts","type":{"vec":"u32"}}]},{"name":"claim_grant","docs":["Claims a grant's reward for a wallet, for each of the `rounds` a voucher (the Ed25519 check","right before) or the approved list names that it was not paid yet; or once, with no rounds,","of an open grant. The wallet signs its own claim, whatever proves it (`WalletMustSign`);","anyone may pay its fees beside it. `proofs`: a voucher key's under the grant's key root, or","each round's on the approved list."],"discriminator":[45],"accounts":[{"name":"project"},{"name":"grant","docs":["Only `upsert` makes one, at its own address under its project."],"writable":true},{"name":"signer","docs":["Sends the claim. Pays its records, the collectible and the token account with the grant's","funds as far as they go, and a roll's order and the player fee with its own SOL."],"writable":true,"signer":true},{"name":"wallet"},{"name":"rounds","docs":["a claim by voucher or list (checked below). Made at its first round."],"writable":true,"optional":true},{"name":"instructions"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."],"optional":true},{"name":"associated_token_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}],"args":[{"name":"rounds","type":{"vec":{"defined":{"name":"ClaimRound"}}}},{"name":"expires","type":"i64"},{"name":"person_hash","type":{"array":["u8",32]}},{"name":"proofs","type":{"vec":{"vec":{"array":["u8",32]}}}},{"name":"nonce","type":"u64"}]},{"name":"close_leaf","docs":["Anyone closes a compressed NFT's record that no longer reads (its leaf changed, or its root left the change log); its rent goes back","to whoever paid it. Anyone closes a Sheet whose NFT is burned, its rent to the project's treasury."],"discriminator":[10],"accounts":[{"name":"record","writable":true},{"name":"tree","docs":["(read below)."]},{"name":"payer","docs":["A record's payer who signs closes it while it still reads."],"writable":true},{"name":"project","docs":["For a Sheet, its project, for its treasury."],"optional":true},{"name":"edition","docs":["empty once Token Metadata burned it (read below)."],"optional":true}],"args":[]},{"name":"close_listing","docs":["Its maker takes a listed NFT home. While a rental runs it only stops the listing (no new","rental), and the NFT goes home with a later call once the rental is over."],"discriminator":[42],"accounts":[{"name":"maker","writable":true,"signer":true},{"name":"project"},{"name":"listing","writable":true,"pda":{"seeds":[{"kind":"const","value":[108,105,115,116,105,110,103]},{"kind":"account","path":"project"},{"kind":"account","path":"piece.asset","account":"Piece"}]}},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[]},{"name":"close_offer","docs":["Its maker calls an offer off: what is left goes back to them."],"discriminator":[36],"accounts":[{"name":"maker","writable":true,"signer":true},{"name":"project"},{"name":"offer","writable":true},{"name":"mint"},{"name":"vault","writable":true},{"name":"maker_token","docs":["when it is not there."],"writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[]},{"name":"close_shard","docs":["Anyone closes a shard of a grant's claims or rounds once the grant is closed or made again;","its rent goes to the project's owner."],"discriminator":[46],"accounts":[{"name":"project"},{"name":"grant","pda":{"seeds":[{"kind":"const","value":[103,114,97,110,116]},{"kind":"account","path":"project"},{"kind":"arg","path":"id"}]}},{"name":"shard","writable":true},{"name":"owner","writable":true}],"args":[{"name":"id","type":"u16"},{"name":"incarnation","type":"u64"},{"name":"rounds","type":"bool"},{"name":"shard","type":"u8"}]},{"name":"collect_fees","discriminator":[53],"accounts":[{"name":"admin","signer":true},{"name":"platform"},{"name":"to","writable":true}],"args":[]},{"name":"collectible","docs":["The authority mints a collectible without a sale, rewrites one's attributes, or burns","a burnable one."],"discriminator":[8],"accounts":[{"name":"authority","docs":["Pays a new asset's rent and a longer attribute list."],"writable":true,"signer":true},{"name":"project"},{"name":"asset","docs":["authority over is a Core asset of another collection, or a Token Metadata NFT's mint. For","`Profile`, the wallet whose profile it writes (nothing is written on it)."],"writable":true},{"name":"owner","writable":true,"optional":true},{"name":"collection","docs":["(checked below); for `Set`, the","asset's own (Core's address for one in none; Core checks the pair). Writable whenever","Core writes the asset."]},{"name":"mpl_core_program"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"sheet","docs":["the first time; for `Profile`, the wallet's profile","(`sheet.rs`), checked by its address."],"writable":true,"optional":true}],"args":[{"name":"change","type":{"defined":{"name":"Change"}}},{"name":"reference","type":{"array":["u8",32]}}]},{"name":"craft","docs":["A player crafts a recipe, at the version they saw, `times` over."],"discriminator":[28],"accounts":[{"name":"player","docs":["Owns what is handed in, pays the rent of what is made and gets the rent of what is burned."],"writable":true,"signer":true},{"name":"project"},{"name":"recipe"},{"name":"mpl_core_program"},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"associated_token_program","docs":["Needed only when a line pays into an account that is not there yet, which it then opens."],"optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"counts","docs":["wallet crafts. Made at their first count, its rent theirs."],"writable":true,"optional":true},{"name":"profile","docs":["(`PROFILE_PLACE`), checked by its address (`WrongProfile`)."],"writable":true,"optional":true}],"args":[{"name":"version","type":"u32"},{"name":"times","type":"u64"},{"name":"nonce","type":"u64"}]},{"name":"create_project","discriminator":[47],"accounts":[{"name":"owner","docs":["Its creator and first owner. Pays the rent of the project and its fee box, and the project fee."],"writable":true,"signer":true},{"name":"authority"},{"name":"treasury"},{"name":"project","writable":true,"pda":{"seeds":[{"kind":"const","value":[112,114,111,106,101,99,116]},{"kind":"account","path":"owner"},{"kind":"arg","path":"id"}]}},{"name":"fees","writable":true,"pda":{"seeds":[{"kind":"const","value":[102,101,101,115]},{"kind":"account","path":"project"}]}},{"name":"platform","docs":["The platform, read for the fee."]},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"id","type":"u64"},{"name":"authority","type":"pubkey"},{"name":"treasury","type":"pubkey"},{"name":"collections","type":{"vec":"pubkey"}}]},{"name":"decide","docs":["The authority, or a decider's signed verdict, names the side of a contest that won, or","(`None`) calls it off. `expires` is the verdict's (ignored for the authority). `recipient`","is the wallet the contest's chosen share pays, when it has one."],"discriminator":[15],"accounts":[{"name":"signer","docs":["The project's authority, or anyone sending a decider's verdict."],"writable":true,"signer":true},{"name":"project"},{"name":"contest","writable":true},{"name":"mint"},{"name":"pot","writable":true,"pda":{"seeds":[{"kind":"const","value":[112,111,116]},{"kind":"account","path":"contest"}]}},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"instructions","optional":true},{"name":"prize_mint","writable":true,"optional":true},{"name":"prize_pool","writable":true,"optional":true},{"name":"prize_vault","writable":true,"optional":true}],"args":[{"name":"side","type":{"option":"u16"}},{"name":"expires","type":"i64"},{"name":"reference","type":{"array":["u8",32]}},{"name":"incarnation","type":"u64"},{"name":"recipient","type":{"option":"pubkey"}}]},{"name":"draw_lottery","docs":["Anyone asks the oracle for a lottery's draw once it is due: the first ask fixes the round's","money and opens the next round; an unanswered one is asked again, and after a timeout the","round is cancelled. `skip_hooked` (the authority only): hooked sources give this round nothing."],"discriminator":[19],"accounts":[{"name":"payer","docs":["Pays the oracle, and the round's token accounts the ask opens when the lottery's spare SOL","can't (`funded`)."],"writable":true,"signer":true},{"name":"project"},{"name":"lottery","docs":["The lottery: for the current round only. A round whose draw waits is asked again or cancelled","without it, so a lottery closed since never strands it."],"writable":true,"optional":true},{"name":"round","docs":["into it), or a round of this lottery whose draw is waiting."],"writable":true},{"name":"oracle_queue","docs":["whoever MagicBlock lets serve it could answer."],"writable":true},{"name":"program_identity"},{"name":"vrf_program","docs":["a round that asks nothing (nothing sold, short of its least sale, cancelled) moves on even","with the oracle gone."],"address":"Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz"},{"name":"slot_hashes"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]}],"args":[{"name":"skip_hooked","type":"bool"}]},{"name":"end_auction","docs":["Anyone ends an auction that is over: the lot to the winner and the bid through the","shares (`ending`: together, or the lot first), or the lot home. Its seller calls off one with","no bid; anyone a sale whose lot or bid is proven gone, the project's keys any sale not delivered."],"discriminator":[33],"accounts":[{"name":"signer","docs":["Anyone once it is over; the seller, to call off one with no bid (the project's keys pay the","project fee for it); the project's keys, to call off a sale whose lot is still there. Pays the","rent of a collectible minted for the winner, and opens the accounts the end pays into."],"writable":true,"signer":true},{"name":"project"},{"name":"auction","writable":true},{"name":"seller","writable":true},{"name":"bidder","docs":["project's token accounts its Token Metadata NFT bids emptied.","Unread with no bid."],"writable":true},{"name":"mint"},{"name":"vault","docs":["read-only, with no bid or with NFT bids."]},{"name":"proceeds","docs":["NFT, or to the project's treasury wallet for its item (`rail::split_to`); the whole bid to the","winner when the sale is called off."]},{"name":"proceeds_token","writable":true},{"name":"item","docs":["For an item lot: the item."],"writable":true,"optional":true},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"loot_box","docs":["For a roll lot that sold: its box, and the order the winner's roll is made in,","`[\"order\", project, winner, nonce]`, which the signer pays for."],"optional":true},{"name":"order","docs":["called off), passed to make it a hold for its seller, its hold, `[\"hold\", asset, 0]`","(`hold::owe`). Never for a lot that sold."],"writable":true,"optional":true}],"args":[{"name":"reference","type":{"array":["u8",32]}},{"name":"nonce","type":"u64"},{"name":"ending","type":{"defined":{"name":"Ending"}}}]},{"name":"enter","docs":["A player puts `amount` on one side of a contest, at the `incarnation` they saw."],"discriminator":[43],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"project"},{"name":"contest","writable":true},{"name":"entries","writable":true},{"name":"pot","writable":true,"pda":{"seeds":[{"kind":"const","value":[112,111,116]},{"kind":"account","path":"contest"}]}},{"name":"player_token","writable":true},{"name":"mint"},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"side","type":"u16"},{"name":"amount","type":"u64"},{"name":"incarnation","type":"u64"}]},{"name":"harvest","docs":["A player collects what their seat is owed, or with `compound` adds it to their stake when the","farm's rewards are its staked token."],"discriminator":[26],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"side","accounts":[{"name":"project"},{"name":"farm","writable":true},{"name":"rewards_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,119,97,114,100,115]},{"kind":"account","path":"farm"}]}},{"name":"rewards_mint","docs":["a farm that mints pays a seat."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"ends","writable":true,"optional":true,"pda":{"seeds":[{"kind":"const","value":[101,110,100,115]},{"kind":"account","path":"farm"}]}}]},{"name":"seat","writable":true},{"name":"player_rewards","writable":true},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"held","docs":["asset, their token account of a Token Metadata NFT (or its mint, once burned), or a compressed","NFT's record, with its `tree` (`held`: refused without evidence either way)."],"optional":true},{"name":"tree","optional":true},{"name":"staked_vault","writable":true,"optional":true}],"args":[{"name":"compound","type":"bool"}]},{"name":"hold","docs":["A player hands NFTs to the project until `free_at`; `reference` is the project's label."],"discriminator":[30],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"project"},{"name":"hold","writable":true,"pda":{"seeds":[{"kind":"const","value":[104,111,108,100]},{"kind":"account","path":"piece.asset","account":"Piece"},{"kind":"arg","path":"free_at"}]}},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"free_at","type":"i64"},{"name":"reference","type":{"array":["u8",32]}}]},{"name":"init_platform","discriminator":[51],"accounts":[{"name":"admin","writable":true,"signer":true},{"name":"platform","writable":true,"pda":{"seeds":[{"kind":"const","value":[112,108,97,116,102,111,114,109]}]}},{"name":"program_data"},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"fees","type":{"defined":{"name":"Fees"}}}]},{"name":"move_tokens","docs":["The authority moves the project's tokens: out of a pool, out of what a farm holds free, or","newly minted, to a pool, a token account or a collectible's holder, or burned."],"discriminator":[7],"accounts":[{"name":"authority","writable":true,"signer":true},{"name":"project"},{"name":"pool","writable":true,"optional":true},{"name":"mint","docs":["marks it writable when tokens are minted or burned."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"farm","docs":["For `TokenSource::Farm`, the farm, credited first so what it holds free is current; its","rewards vault is the `pool`, and its rewards mint the `mint`."],"writable":true,"optional":true},{"name":"farm_ends","writable":true,"optional":true}],"args":[{"name":"from","type":{"defined":{"name":"TokenSource"}}},{"name":"to","type":{"defined":{"name":"To"}}},{"name":"amount","type":{"defined":{"name":"Amount"}}},{"name":"reference","type":{"array":["u8",32]}}]},{"name":"open_auction","docs":["A seller opens an auction on a lot, and is its only signer: an NFT they hold (a player's in","one of the project's collections), handed to the project until the end, or (the project's owner or","authority) a new unit of an item."],"discriminator":[31],"accounts":[{"name":"seller","docs":["Puts the lot up, the only signer: an NFT's holder, or","the project's owner or authority for a new unit of its item. Pays the rent and the fee."],"writable":true,"signer":true},{"name":"project"},{"name":"auction","writable":true,"pda":{"seeds":[{"kind":"const","value":[97,117,99,116,105,111,110]},{"kind":"account","path":"project"},{"kind":"account","path":"seller"},{"kind":"arg","path":"id"}]}},{"name":"mint"},{"name":"item","docs":["For an item lot: the item."],"writable":true,"optional":true},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"loot_box","optional":true}],"args":[{"name":"id","type":"u32"},{"name":"args","type":{"defined":{"name":"AuctionArgs"}}}]},{"name":"open_box","docs":["Open a loot box. Opens an order and asks the oracle for its roll. `chosen_recipient` names the wallet or collectible a share of","the box's lets the buyer choose."],"discriminator":[3],"accounts":[{"name":"loot_box","writable":true},{"name":"checkout","accounts":[{"name":"player","writable":true,"signer":true},{"name":"project"},{"name":"platform"},{"name":"order","docs":["Any `nonce` the player has no open order at in this project."],"writable":true,"pda":{"seeds":[{"kind":"const","value":[111,114,100,101,114]},{"kind":"account","path":"project"},{"kind":"account","path":"player"},{"kind":"arg","path":"nonce"}]}},{"name":"mint"},{"name":"player_token","writable":true},{"name":"vault","docs":["nowhere else. The player opens it when it is not there (`Tokens::wallet_account`)."],"writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}]},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"oracle_queue","docs":["whoever MagicBlock lets serve it could answer."],"writable":true},{"name":"program_identity"},{"name":"vrf_program","address":"Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz"},{"name":"slot_hashes"},{"name":"chosen","docs":["one (`To::Chosen` with an item). Checked against the choice."],"optional":true},{"name":"counts","docs":["wallet buys. Made at their first count, its rent theirs."],"writable":true,"optional":true}],"args":[{"name":"nonce","type":"u64"},{"name":"max_price","type":"u64"},{"name":"chosen_recipient","type":{"option":"pubkey"}},{"name":"version","type":"u32"},{"name":"count","type":"u32"},{"name":"settler","type":"pubkey"}]},{"name":"open_contest","docs":["The authority opens a contest: sides to back, and a pot."],"discriminator":[14],"accounts":[{"name":"authority","writable":true,"signer":true},{"name":"project","writable":true},{"name":"contest","writable":true,"pda":{"seeds":[{"kind":"const","value":[99,111,110,116,101,115,116]},{"kind":"account","path":"project"},{"kind":"arg","path":"id"}]}},{"name":"mint"},{"name":"pot","writable":true,"pda":{"seeds":[{"kind":"const","value":[112,111,116]},{"kind":"account","path":"contest"}]}},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"prize_mint","optional":true},{"name":"prize_vault","writable":true,"optional":true},{"name":"entries","writable":true},{"name":"prize_pool","docs":["mint must be `prize_mint`."],"optional":true}],"args":[{"name":"id","type":"u32"},{"name":"args","type":{"defined":{"name":"ContestArgs"}}}]},{"name":"open_farm","docs":["Open a farm: tokens or the project's collectibles staked with lock tiers, weighted by what","their collectibles say, sharing what lands in its rewards vault, or paying a fixed rate."],"discriminator":[21],"accounts":[{"name":"owner","writable":true,"signer":true},{"name":"project"},{"name":"farm","writable":true,"pda":{"seeds":[{"kind":"const","value":[102,97,114,109]},{"kind":"account","path":"project"},{"kind":"arg","path":"id"}]}},{"name":"rewards_mint"},{"name":"rewards_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,119,97,114,100,115]},{"kind":"account","path":"farm"}]}},{"name":"staked_mint","optional":true},{"name":"staked_vault","docs":["below); none for a farm of NFTs."],"writable":true,"optional":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"exit_pool","optional":true},{"name":"ends","writable":true,"optional":true,"pda":{"seeds":[{"kind":"const","value":[101,110,100,115]},{"kind":"account","path":"farm"}]}}],"args":[{"name":"id","type":"u32"},{"name":"args","type":{"defined":{"name":"FarmArgs"}}}]},{"name":"open_listing","docs":["A holder (any wallet, signing alone) lists an NFT: the project holds it until it is sold or","the listing is closed."],"discriminator":[40],"accounts":[{"name":"maker","docs":["Holds the NFT, hands it in and signs alone. Pays the rent and the fee."],"writable":true,"signer":true},{"name":"project"},{"name":"listing","writable":true,"pda":{"seeds":[{"kind":"const","value":[108,105,115,116,105,110,103]},{"kind":"account","path":"project"},{"kind":"account","path":"piece.asset","account":"Piece"}]}},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"mint","docs":["token program checks it."]},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"deal","type":{"defined":{"name":"ListingDeal"}}},{"name":"shares","type":{"vec":{"defined":{"name":"Share"}}}}]},{"name":"open_offer","docs":["A maker (any wallet, signing alone) puts money up for NFTs that pass a rule: all of it, into","the project's vault, now."],"discriminator":[35],"accounts":[{"name":"maker","docs":["Puts the money up and signs alone. Pays the rent and the fee."],"writable":true,"signer":true},{"name":"project"},{"name":"offer","writable":true,"pda":{"seeds":[{"kind":"const","value":[111,102,102,101,114]},{"kind":"account","path":"project"},{"kind":"account","path":"maker"},{"kind":"arg","path":"id"}]}},{"name":"mint"},{"name":"maker_token","writable":true},{"name":"vault","docs":["is not there."],"writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"id","type":"u32"},{"name":"args","type":{"defined":{"name":"OfferArgs"}}}]},{"name":"open_pool","discriminator":[49],"accounts":[{"name":"owner","writable":true,"signer":true},{"name":"project"},{"name":"mint"},{"name":"pool","writable":true,"pda":{"seeds":[{"kind":"const","value":[112,111,111,108]},{"kind":"account","path":"project"},{"kind":"arg","path":"index"}]}},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"index","type":"u16"}]},{"name":"open_tree","docs":["The project's keys make a Bubblegum v2 tree the project alone mints compressed prizes into."],"discriminator":[34],"accounts":[{"name":"signer","docs":["The project's owner or authority: pays the tree config's rent and the project fee."],"writable":true,"signer":true},{"name":"project"},{"name":"tree","docs":["transaction, the size its depth, buffer and canopy take (Bubblegum and mpl-account-compression","check it)."],"writable":true},{"name":"tree_config","writable":true},{"name":"bubblegum_program"},{"name":"compression_program"},{"name":"log_wrapper"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"max_depth","type":"u32"},{"name":"max_buffer_size","type":"u32"}]},{"name":"pay","docs":["Pay `amount`, split at once into pools, burn and the project's treasury."],"discriminator":[0],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"project"},{"name":"mint","docs":["The caller marks it writable when a share burns."]},{"name":"player_token","docs":["checks that the player may spend it."],"writable":true},{"name":"treasury"},{"name":"treasury_token","writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"amount","type":"u64"},{"name":"shares","type":{"vec":{"defined":{"name":"Share"}}}},{"name":"reference","type":{"array":["u8",32]}}]},{"name":"pay_nft","docs":["Pay with an NFT, any kind: burned, or given to a wallet. The receipt is the record."],"discriminator":[1],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"project"},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"to"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"reference","type":{"array":["u8",32]}}]},{"name":"prove_leaf","docs":["Anyone proves a compressed NFT's leaf against its tree's current root, or one still in its","change log with no change since at the leaf (`bubblegum.rs`): the instructions after it in","the transaction read it as they read any other NFT."],"discriminator":[9],"accounts":[{"name":"signer","docs":["Anyone. Pays the record's rent the first time, and what a larger leaf lacks after."],"writable":true,"signer":true},{"name":"asset"},{"name":"record","writable":true,"pda":{"seeds":[{"kind":"const","value":[108,101,97,102]},{"kind":"account","path":"asset"}]}},{"name":"owner","docs":["none), as the leaf names them: only their addresses are read."]},{"name":"delegate"},{"name":"collection"},{"name":"tree"},{"name":"tree_config"},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"leaf","type":{"defined":{"name":"Leaf"}}}]},{"name":"prove_traits","docs":["Anyone writes an NFT's proven traits into its Sheet (the ones it doesn't have yet)."],"discriminator":[12],"accounts":[{"name":"signer","docs":["Anyone. Pays what the Sheet grows by."],"writable":true,"signer":true},{"name":"traits","docs":["for a project whose owner or authority signed."]},{"name":"nft"},{"name":"sheet","writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[{"name":"attributes","type":{"vec":{"defined":{"name":"Attribute"}}}},{"name":"proof","type":{"vec":{"array":["u8",32]}}}]},{"name":"pull","docs":["Anyone settles one part of a round, in any order: an entry's refund or NFT ticket, its places'","pot parts or prizes (a roll's order at `nonce`), or a part owed in common. The last part owed","closes the round."],"discriminator":[20],"accounts":[{"name":"payer","docs":["Anyone. Opens the accounts the part pays into that are not there yet, and pays what a prize","opens or makes."],"writable":true,"signer":true},{"name":"project"},{"name":"round","writable":true},{"name":"buyer","writable":true},{"name":"mint","docs":["Writable for a minted prize."],"writable":true,"optional":true},{"name":"vault","writable":true,"optional":true},{"name":"to","writable":true,"optional":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"opener","writable":true,"optional":true},{"name":"treasury","writable":true,"optional":true}],"args":[{"name":"entry","type":"u32"},{"name":"part","type":{"defined":{"name":"Part"}}},{"name":"nonce","type":"u64"}]},{"name":"refresh_seat","docs":["Anyone counts a seat's weight again from its collectible as it is now."],"discriminator":[27],"accounts":[{"name":"signer","docs":["Anyone. Pays for what a farm with growth adds to the collectible or its Sheet."],"writable":true,"signer":true},{"name":"side","accounts":[{"name":"project"},{"name":"farm","writable":true},{"name":"rewards_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,119,97,114,100,115]},{"kind":"account","path":"farm"}]}},{"name":"rewards_mint","docs":["a farm that mints pays a seat."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"ends","writable":true,"optional":true,"pda":{"seeds":[{"kind":"const","value":[101,110,100,115]},{"kind":"account","path":"farm"}]}}]},{"name":"seat","docs":["Checked as this farm's by its address (`check_seat`)."],"writable":true},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"profile","docs":["(`Farm::uses_profile`), checked by its address (`WrongProfile`)."],"writable":true,"optional":true}],"args":[]},{"name":"refund","docs":["Give an order's payment back to its player."],"discriminator":[5],"accounts":[{"name":"signer","docs":["Anyone. Opens the player's account of the order's mint when it is not there."],"writable":true,"signer":true},{"name":"order","writable":true},{"name":"player","writable":true},{"name":"project"},{"name":"mint"},{"name":"vault","writable":true},{"name":"player_token","writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"loot_box","docs":["The order's box, when the order counts draws in its `in_flight` (`Order::reserved`): they leave it."],"writable":true,"optional":true},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"counts","docs":["the box's limit: the refund gives the count back (checked below)."],"writable":true,"optional":true},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]}],"args":[]},{"name":"release","docs":["Held collectibles leave the project: to whoever the authority names while their holds run,","home to their player by anyone once they are over."],"discriminator":[13],"accounts":[{"name":"signer","docs":["The project's authority while the hold runs; anyone once it is over."],"writable":true,"signer":true},{"name":"project"},{"name":"hold","writable":true},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"payer","writable":true},{"name":"rent_to","writable":true},{"name":"to","docs":["it is over; for a loan, the borrower once it is repaid, else the lender once it is due."]},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"reference","type":{"array":["u8",32]}}]},{"name":"repay","docs":["Anyone repays a loan before it is due, the project shown to hold its NFT still: the money goes","to the lender and, with `home`, the NFT to the borrower, the hold closing; without, the hold","becomes a plain one that is over, for `release`. `repay` is the amount the payer saw."],"discriminator":[39],"accounts":[{"name":"payer","docs":["Anyone: the borrower, a friend, a guild. Pays `repay` and opens the lender's account of","the mint when it is not there."],"writable":true,"signer":true},{"name":"project"},{"name":"hold","writable":true},{"name":"lender"},{"name":"lender_token","writable":true},{"name":"payer_token","writable":true},{"name":"mint"},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"borrower","docs":["hold's rent and a Token Metadata NFT's emptied account's (a loan's hold names its borrower","as its payer and rent wallet too, `borrow`)."],"writable":true},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]}],"args":[{"name":"home","type":"bool"},{"name":"repay","type":"u64"}]},{"name":"roll","docs":["The authority asks the oracle for a random number for a rule of its own, labelled","`reference`."],"discriminator":[16],"accounts":[{"name":"authority","docs":["Pays the platform's fee and the oracle's."],"writable":true,"signer":true},{"name":"project"},{"name":"oracle_queue","docs":["whoever MagicBlock lets serve it could answer."],"writable":true},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"program_identity"},{"name":"vrf_program","address":"Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz"},{"name":"slot_hashes"}],"args":[{"name":"reference","type":{"array":["u8",32]}}]},{"name":"run_schedule","docs":["The project's keys or who it pays run a schedule that is due (anyone, a sealed one that burns). A run pays once, and the runs missed before it lapse; a sealed fixed amount pays every run due, up to `upto` runs made (0: no bound)."],"discriminator":[17],"accounts":[{"name":"payer","docs":["The project's owner or authority, or who the run pays (`To::Wallet`, the treasury), since nobody","else should say when a share of a pool is read. Anyone runs a sealed burn, which pays nobody.","Opens the account the run pays into when it is not there."],"writable":true,"signer":true},{"name":"project"},{"name":"schedule","writable":true},{"name":"pool","writable":true,"optional":true},{"name":"mint","docs":["marks it writable when tokens are minted or burned."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"}],"args":[{"name":"upto","type":"u32"}]},{"name":"sell_to_offer","docs":["A holder sells an NFT into a bid: the NFT to the maker, the price to the seller."],"discriminator":[37],"accounts":[{"name":"seller","docs":["Holds the NFT and sells it. Opens the accounts the price is paid into."],"writable":true,"signer":true},{"name":"project"},{"name":"offer","writable":true},{"name":"maker","writable":true},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"mint"},{"name":"vault","writable":true},{"name":"seller_token","writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"terms","type":{"array":["u8",32]}}]},{"name":"set_platform","discriminator":[52],"accounts":[{"name":"admin","signer":true},{"name":"platform","writable":true},{"name":"next_admin","docs":["Who signs for the platform from now on: the current admin to keep it. It signs, so a","mistyped key can never take the platform over."],"signer":true}],"args":[{"name":"fees","type":{"defined":{"name":"Fees"}}}]},{"name":"set_suspended","discriminator":[54],"accounts":[{"name":"admin","signer":true},{"name":"platform"},{"name":"project","writable":true}],"args":[{"name":"suspended","type":"bool"}]},{"name":"set_traits","docs":["The project's owner or authority vouches for NFTs' off-chain traits: a Merkle root, under","`key` (a collection's address, by convention)."],"discriminator":[11],"accounts":[{"name":"signer","docs":["The project's owner or authority. Pays the rent."],"writable":true,"signer":true},{"name":"project"},{"name":"traits","writable":true,"pda":{"seeds":[{"kind":"const","value":[116,114,97,105,116,115]},{"kind":"account","path":"project"},{"kind":"arg","path":"key"}]}},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"key","type":"pubkey"},{"name":"root","type":{"array":["u8",32]}}]},{"name":"settle","docs":["Carry out a rolled order: hand over what its roll set aside (items, tokens, NFTs) and","split its payment. Its player, the key they named, or the project's keys send it."],"discriminator":[4],"accounts":[{"name":"signer","docs":["The order's player, its project's owner or authority, or the key its player named","(`Order::settler`). Opens the accounts the order pays into that are not there yet."],"writable":true,"signer":true},{"name":"order","docs":["Closed to its player by its last part."],"writable":true},{"name":"player","writable":true},{"name":"project"},{"name":"mint","docs":["burns: a share that burns."]},{"name":"vault","writable":true},{"name":"treasury"},{"name":"treasury_token","writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"fees","writable":true},{"name":"system_program","address":"11111111111111111111111111111111"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"receiver","docs":["of this program there sends it back to the player, `price::given_to`), puts it in a stash","(the stash, by address), or burns it (the incinerator's address, for any kind but Core)."],"writable":true,"optional":true},{"name":"player_token","docs":["part of an order whose roll didn't make every draw: their share of the payment comes back to it."],"writable":true,"optional":true}],"args":[{"name":"upto","type":"u32"},{"name":"prize_accounts","type":"u16"}]},{"name":"stake_nft","docs":["A player stakes an NFT of any kind in a farm at a lock tier: on a seat of its","own in a farm of collectibles, or as the booster of their token seat in a farm of tokens."],"discriminator":[24],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"side","accounts":[{"name":"project"},{"name":"farm","writable":true},{"name":"rewards_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,119,97,114,100,115]},{"kind":"account","path":"farm"}]}},{"name":"rewards_mint","docs":["a farm that mints pays a seat."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"ends","writable":true,"optional":true,"pda":{"seeds":[{"kind":"const","value":[101,110,100,115]},{"kind":"account","path":"farm"}]}}]},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"seat","docs":["own seat may not exist yet."],"writable":true},{"name":"player_rewards","docs":["NFT's own seat leaving)."],"writable":true,"optional":true},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"associated_token_program","docs":["For a mission's prize of tokens, when the player's account of the mint is not there yet."],"optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"previous","docs":["its new holder takes over (`stake_nft`): paid back the seat's rent. By address."],"writable":true,"optional":true},{"name":"loot_box","docs":["Leaving a mission that rolls (`Tier::roll`): its box, and the order its roll is made in, at","`[\"order\", project, player, nonce]` (`order::waiting_order`)."],"optional":true},{"name":"order","writable":true,"optional":true},{"name":"profile","docs":["(`Farm::uses_profile`), checked by its address (`WrongProfile`)."],"writable":true,"optional":true}],"args":[{"name":"tier","type":"u8"}]},{"name":"stake_tokens","docs":["A player stakes tokens in a farm at a lock tier."],"discriminator":[22],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"side","accounts":[{"name":"project"},{"name":"farm","writable":true},{"name":"rewards_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,119,97,114,100,115]},{"kind":"account","path":"farm"}]}},{"name":"rewards_mint","docs":["a farm that mints pays a seat."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"ends","writable":true,"optional":true,"pda":{"seeds":[{"kind":"const","value":[101,110,100,115]},{"kind":"account","path":"farm"}]}}]},{"name":"seat","docs":["tokens only: in a farm of collectibles `[\"seat\", farm, signer]` is the seat of the","collectible whose key signs, and that seat is its staker's."],"writable":true,"pda":{"seeds":[{"kind":"const","value":[115,101,97,116]},{"kind":"account","path":"side.farm","account":"FarmSide"},{"kind":"account","path":"player"}]}},{"name":"staked_vault","docs":["that isn't its own; a farm of collectibles has none."],"writable":true,"pda":{"seeds":[{"kind":"const","value":[115,116,97,107,101,100]},{"kind":"account","path":"side.farm","account":"FarmSide"}]}},{"name":"mint"},{"name":"player_tokens","docs":["from it (the signer must be able to spend from it), `unstake_tokens` pays what leaves into it.","The token program refuses an account of another mint."],"writable":true},{"name":"player_rewards","writable":true,"optional":true},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"exit_pool","docs":["address. The client marks the staked mint writable when the fee is burned."],"writable":true,"optional":true},{"name":"profile","docs":["(`Farm::uses_profile`), checked by its address (`WrongProfile`)."],"writable":true,"optional":true}],"args":[{"name":"amount","type":"u64"},{"name":"tier","type":"u8"}]},{"name":"stash","docs":["The project's owner or authority puts NFTs into a stash (`out` false), each with its weight, to","be given away as prizes, or takes them out: one of the project's stashes, or a lottery's own","(`StashOf`)."],"discriminator":[29],"accounts":[{"name":"signer","docs":["The project's owner or authority. Putting one in, it holds the NFT and pays what the stash","grows by; taking one out, it gets the rent the stash no longer needs."],"writable":true,"signer":true},{"name":"project"},{"name":"stash","docs":["hand: it may be bigger than the heap."],"writable":true},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"to","docs":["`[\"hold\", nft, 0]`, made for the treasury. Unread going in."],"writable":true},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"lottery","docs":["there holding no lottery (never written, or closed) promises nothing."],"optional":true},{"name":"round","docs":["places are read)."],"optional":true}],"args":[{"name":"of","type":{"defined":{"name":"StashOf"}}},{"name":"out","type":"bool"},{"name":"weights","type":{"vec":"u32"}}]},{"name":"take_listing","docs":["A taker buys a listed NFT, or rents it for `periods` periods."],"discriminator":[41],"accounts":[{"name":"taker","docs":["Pays, and buys or rents. Opens the accounts the payment goes to."],"writable":true,"signer":true},{"name":"project"},{"name":"listing","writable":true,"pda":{"seeds":[{"kind":"const","value":[108,105,115,116,105,110,103]},{"kind":"account","path":"project"},{"kind":"account","path":"piece.asset","account":"Piece"}]}},{"name":"maker","docs":["with a sale."],"writable":true},{"name":"maker_token","writable":true},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"mint"},{"name":"taker_token","writable":true},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"terms","type":{"array":["u8",32]}},{"name":"periods","type":"u16"}]},{"name":"unstake_nft","docs":["A player takes their collectible out of a farm once the seat's lock has run: its own seat","closes and pays what it is owed; a token seat it boosted stays, with what it is owed."],"discriminator":[25],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"side","accounts":[{"name":"project"},{"name":"farm","writable":true},{"name":"rewards_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,119,97,114,100,115]},{"kind":"account","path":"farm"}]}},{"name":"rewards_mint","docs":["a farm that mints pays a seat."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"ends","writable":true,"optional":true,"pda":{"seeds":[{"kind":"const","value":[101,110,100,115]},{"kind":"account","path":"farm"}]}}]},{"name":"piece","accounts":[{"name":"asset","docs":["Read by hand; Core, Token Metadata and Bubblegum check the rest."],"writable":true},{"name":"sheet","docs":["its Sheet's address (`sheet.rs`): read, and written by a farm with growth."],"writable":true,"optional":true},{"name":"collection","docs":["Core collection (left out for none). Not for a Token Metadata NFT. Writable where Core","writes it: a burn, a mint."],"optional":true},{"name":"mpl_core_program","optional":true},{"name":"metadata","writable":true,"optional":true},{"name":"edition","optional":true},{"name":"token","docs":["receiver's (Token Metadata opens it). Any token account the receiver owns will do, not only","the associated one, so a receiver who gives that one away can't turn a hand-out back."],"writable":true,"optional":true},{"name":"token_record","writable":true,"optional":true},{"name":"project_token","docs":["the project holds it."],"writable":true,"optional":true},{"name":"project_record","writable":true,"optional":true},{"name":"rule_set","docs":["none); Token Metadata checks them."],"optional":true},{"name":"rules_program","optional":true},{"name":"token_metadata_program","optional":true},{"name":"instructions","optional":true},{"name":"spl_token_program","optional":true,"address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"spl_ata_program","optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"leaf","docs":["tree's change log. Writable, with","the tree and its config, where Bubblegum changes the leaf (a lock, a move)."],"optional":true},{"name":"tree","docs":["checks it)."],"optional":true},{"name":"tree_config","optional":true},{"name":"leaf_delegate","optional":true},{"name":"bubblegum_program","optional":true},{"name":"compression_program","optional":true},{"name":"log_wrapper","optional":true}]},{"name":"seat","docs":["own seat may not exist yet."],"writable":true},{"name":"player_rewards","docs":["NFT's own seat leaving)."],"writable":true,"optional":true},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"associated_token_program","docs":["For a mission's prize of tokens, when the player's account of the mint is not there yet."],"optional":true,"address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"previous","docs":["its new holder takes over (`stake_nft`): paid back the seat's rent. By address."],"writable":true,"optional":true},{"name":"loot_box","docs":["Leaving a mission that rolls (`Tier::roll`): its box, and the order its roll is made in, at","`[\"order\", project, player, nonce]` (`order::waiting_order`)."],"optional":true},{"name":"order","writable":true,"optional":true},{"name":"profile","docs":["(`Farm::uses_profile`), checked by its address (`WrongProfile`)."],"writable":true,"optional":true}],"args":[{"name":"forfeit","type":"bool"},{"name":"nonce","type":"u64"},{"name":"need_prize","type":"bool"}]},{"name":"unstake_tokens","docs":["A player takes tokens out of a farm and is paid what is owed: once their lock has run, or","before it on a tier with an early exit, for its fee; `forfeit` gives up the rewards."],"discriminator":[23],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"side","accounts":[{"name":"project"},{"name":"farm","writable":true},{"name":"rewards_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,119,97,114,100,115]},{"kind":"account","path":"farm"}]}},{"name":"rewards_mint","docs":["a farm that mints pays a seat."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"ends","writable":true,"optional":true,"pda":{"seeds":[{"kind":"const","value":[101,110,100,115]},{"kind":"account","path":"farm"}]}}]},{"name":"seat","docs":["tokens only: in a farm of collectibles `[\"seat\", farm, signer]` is the seat of the","collectible whose key signs, and that seat is its staker's."],"writable":true,"pda":{"seeds":[{"kind":"const","value":[115,101,97,116]},{"kind":"account","path":"side.farm","account":"FarmSide"},{"kind":"account","path":"player"}]}},{"name":"staked_vault","docs":["that isn't its own; a farm of collectibles has none."],"writable":true,"pda":{"seeds":[{"kind":"const","value":[115,116,97,107,101,100]},{"kind":"account","path":"side.farm","account":"FarmSide"}]}},{"name":"mint"},{"name":"player_tokens","docs":["from it (the signer must be able to spend from it), `unstake_tokens` pays what leaves into it.","The token program refuses an account of another mint."],"writable":true},{"name":"player_rewards","writable":true,"optional":true},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]},{"name":"exit_pool","docs":["address. The client marks the staked mint writable when the fee is burned."],"writable":true,"optional":true},{"name":"profile","docs":["(`Farm::uses_profile`), checked by its address (`WrongProfile`)."],"writable":true,"optional":true}],"args":[{"name":"amount","type":"u64"},{"name":"forfeit","type":"bool"}]},{"name":"update_project","discriminator":[48],"accounts":[{"name":"owner","docs":["Pays for the project growing with its collections, and gets back what it shrinks by."],"writable":true,"signer":true},{"name":"project","writable":true},{"name":"new_owner","docs":["The owner from now on, when it changes. It signs, so a mistyped key can never take the","project over."],"signer":true,"optional":true},{"name":"new_authority","docs":["what owns it (`check_key`)."],"optional":true},{"name":"new_treasury","docs":["what owns it (`check_key`)."],"optional":true},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"update","type":{"defined":{"name":"ProjectUpdate"}}}]},{"name":"upsert","docs":["Write one of the project's records (an item, a box, a schedule, a lottery, a recipe, an","grant: `Def`), or (`None`) close the one at `target`."],"discriminator":[50],"accounts":[{"name":"owner","docs":["Pays for a longer record and gets the rent of a shorter or closed one."],"writable":true,"signer":true},{"name":"project","writable":true},{"name":"target","docs":["because its size changes."],"writable":true},{"name":"fee","accounts":[{"name":"platform"},{"name":"fees","docs":["is paid: a fee paid anywhere else would leave the project's fee total short."],"writable":true},{"name":"system_program","address":"11111111111111111111111111111111"}]}],"args":[{"name":"def","type":{"option":{"defined":{"name":"Def"}}}}]},{"name":"walk_farm","docs":["Credits a farm up to at most `most` of the times its seats stopped earning, for one that has","passed more of them than one transaction can walk. Anyone; every move walks them anyway."],"discriminator":[55],"accounts":[{"name":"side","accounts":[{"name":"project"},{"name":"farm","writable":true},{"name":"rewards_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,119,97,114,100,115]},{"kind":"account","path":"farm"}]}},{"name":"rewards_mint","docs":["a farm that mints pays a seat."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]},{"name":"ends","writable":true,"optional":true,"pda":{"seeds":[{"kind":"const","value":[101,110,100,115]},{"kind":"account","path":"farm"}]}}]}],"args":[{"name":"most","type":"u32"}]}],"accounts":[{"name":"Auction","discriminator":[20]},{"name":"Contest","discriminator":[10]},{"name":"Farm","discriminator":[17]},{"name":"Grant","discriminator":[27]},{"name":"Hold","discriminator":[9]},{"name":"Item","discriminator":[3]},{"name":"Listing","discriminator":[23]},{"name":"LootBox","discriminator":[4]},{"name":"Lottery","discriminator":[7]},{"name":"Offer","discriminator":[22]},{"name":"Order","discriminator":[5]},{"name":"Platform","discriminator":[1]},{"name":"Project","discriminator":[2]},{"name":"Recipe","discriminator":[8]},{"name":"Schedule","discriminator":[6]},{"name":"Seat","discriminator":[18]}],"events":[{"name":"AuctionEnded","discriminator":[91,165,139,202,204,215,92,52]},{"name":"AuctionOpened","discriminator":[25,230,140,215,100,193,14,70]},{"name":"BidPlaced","discriminator":[135,53,176,83,193,69,108,61]},{"name":"BidRefunded","discriminator":[197,100,31,186,67,28,46,103]},{"name":"Borrowed","discriminator":[225,182,241,78,34,145,253,230]},{"name":"Bought","discriminator":[193,56,215,24,156,76,42,104]},{"name":"Changed","discriminator":[78,218,231,86,31,167,245,14]},{"name":"Claimed","discriminator":[217,192,123,72,108,150,248,33]},{"name":"Crafted","discriminator":[169,195,232,146,229,14,57,149]},{"name":"Decided","discriminator":[137,200,62,254,141,53,205,172]},{"name":"Entered","discriminator":[247,164,21,222,219,178,237,160]},{"name":"FeeChanged","discriminator":[103,252,132,250,1,49,116,145]},{"name":"FeesCollected","discriminator":[233,23,117,225,107,178,254,8]},{"name":"GrantClaimed","discriminator":[61,22,75,116,13,214,74,165]},{"name":"Grown","discriminator":[153,6,113,250,212,63,163,99]},{"name":"Harvested","discriminator":[249,229,78,151,106,185,149,11]},{"name":"Held","discriminator":[46,8,96,23,131,53,182,98]},{"name":"LeftoverBurned","discriminator":[28,216,145,193,156,135,159,255]},{"name":"Listed","discriminator":[243,173,136,195,125,241,12,99]},{"name":"ListingRented","discriminator":[242,147,212,22,174,102,70,216]},{"name":"ListingSold","discriminator":[199,212,98,147,91,49,85,138]},{"name":"LotteryCancelled","discriminator":[106,48,195,83,38,145,61,131]},{"name":"LotteryDrawn","discriminator":[38,250,156,196,171,79,154,208]},{"name":"LotteryPulled","discriminator":[133,151,254,155,78,140,26,203]},{"name":"Moved","discriminator":[114,50,71,164,81,115,48,128]},{"name":"OddsRaised","discriminator":[159,208,208,32,90,70,237,35]},{"name":"OfferClosed","discriminator":[237,38,102,204,165,180,177,164]},{"name":"OfferOpened","discriminator":[51,235,45,64,193,14,119,113]},{"name":"OrderFailed","discriminator":[60,179,157,0,164,131,38,236]},{"name":"OrderPartSettled","discriminator":[160,216,137,215,149,131,185,100]},{"name":"OrderRefunded","discriminator":[120,155,10,169,7,98,202,187]},{"name":"OrderRolled","discriminator":[91,246,84,1,21,64,240,229]},{"name":"OrderSettled","discriminator":[32,21,123,33,68,59,136,131]},{"name":"Paid","discriminator":[240,193,17,238,238,210,129,235]},{"name":"PaidNft","discriminator":[120,165,39,205,45,224,221,97]},{"name":"PrizeForgone","discriminator":[247,186,13,149,109,113,177,223]},{"name":"PrizeGiven","discriminator":[57,156,246,153,98,219,127,254]},{"name":"ProfileWritten","discriminator":[148,147,161,3,122,220,75,161]},{"name":"ProjectSuspended","discriminator":[54,26,240,51,122,132,161,159]},{"name":"ProjectUpdated","discriminator":[16,110,74,3,76,227,179,225]},{"name":"RecordClosed","discriminator":[99,152,89,8,23,79,153,2]},{"name":"RecordWritten","discriminator":[37,206,149,120,44,195,129,60]},{"name":"Released","discriminator":[232,229,255,136,101,189,15,220]},{"name":"Repaid","discriminator":[38,248,231,7,150,164,172,23]},{"name":"Reweighed","discriminator":[77,122,141,46,84,229,112,18]},{"name":"RollMade","discriminator":[30,105,211,68,109,95,1,37]},{"name":"Rolled","discriminator":[243,213,137,215,92,162,11,192]},{"name":"RoundClosed","discriminator":[45,243,28,22,132,70,175,226]},{"name":"SaleCalledOff","discriminator":[19,92,244,154,127,57,87,73]},{"name":"ScheduleRan","discriminator":[145,158,228,183,251,229,1,242]},{"name":"Seated","discriminator":[51,134,149,217,46,55,160,149]},{"name":"SoldToOffer","discriminator":[221,231,230,211,170,6,123,236]},{"name":"Stashed","discriminator":[141,250,252,158,236,129,234,103]},{"name":"TicketsBought","discriminator":[204,103,221,60,70,142,88,233]},{"name":"TraitsProven","discriminator":[108,168,120,80,112,35,212,64]},{"name":"TraitsSet","discriminator":[170,79,145,135,46,31,244,154]},{"name":"TreeOpened","discriminator":[152,239,116,13,105,182,36,127]},{"name":"Unlisted","discriminator":[200,255,248,52,219,183,40,213]},{"name":"Unseated","discriminator":[207,11,144,136,148,18,67,191]}],"errors":[{"code":6000,"name":"NotOwner","msg":"Signer is not the project's owner"},{"code":6001,"name":"NotAuthority","msg":"Signer is not the project's authority, nor another key this takes: the owner, the player or key the record names, or a contest's decider"},{"code":6002,"name":"NotPlatform","msg":"Signer is not the platform admin or the program's upgrade authority"},{"code":6003,"name":"BadCollection","msg":"Not a collection the project can take: a Core collection its owner or the project controls, or where the project is an update delegate, each named once and 32 at most; a collectible's is one of them"},{"code":6004,"name":"BadKey","msg":"The authority and the treasury must be keys someone can sign for: not an account of this program or of a token program, not a program, and passed as the account at the key"},{"code":6005,"name":"FeeAboveCap","msg":"Fee is above the cap"},{"code":6006,"name":"BadEntries","msg":"A box needs an entry or more, each of a weight above 0 with at most 255 prizes, and no roll among them in a box that rolls; its slots draw among its entries, each named once; and several draws an open, or several opens, need a box with no NFT it rolls on"},{"code":6007,"name":"BadShares","msg":"A split takes shares that add up to 100% or less, none that burns in wrapped SOL, and only the destinations its route can pay"},{"code":6008,"name":"KindLocked","msg":"An item's kind, soulbound and burnable flags, collection and traits can't change once one is issued"},{"code":6009,"name":"Paused","msg":"Project is paused by its owner"},{"code":6010,"name":"Suspended","msg":"Project is suspended by the platform"},{"code":6011,"name":"ZeroAmount","msg":"Amount must be above zero, and a grant gives a prize it can give at once: not a stash's NFT at random, nor tokens from a sealed schedule's or a farm's vault"},{"code":6012,"name":"NotForSale","msg":"Box, item or recipe is not on offer"},{"code":6013,"name":"SoldOut","msg":"Item is sold out"},{"code":6014,"name":"PriceAboveMax","msg":"The price is above the most the buyer agreed to pay"},{"code":6015,"name":"WrongPool","msg":"A share names an account that was not passed, or the wrong account was"},{"code":6016,"name":"NotTheirAccount","msg":"Money owed to a wallet goes to that wallet's associated token account of the mint, and a Token Metadata NFT moves through the associated token account of the project (on a pass, of its receiver)"},{"code":6017,"name":"WrongMint","msg":"This is not the mint the price is in"},{"code":6018,"name":"BadOrderState","msg":"Order is not in the right state"},{"code":6019,"name":"NotStale","msg":"Order is not stale yet"},{"code":6020,"name":"ItemMismatch","msg":"Item or pool accounts don't match the box or the order"},{"code":6021,"name":"NotThePlayers","msg":"This is not the player, the winner or the record it belongs to"},{"code":6022,"name":"NotCollectible","msg":"Only a collectible item can be made as an asset"},{"code":6023,"name":"BadSchedule","msg":"A schedule needs a period above zero; a sealed one is switched on, with 1 run or more, its last at a time the clock can hold, each paying at most all its vault holds"},{"code":6024,"name":"NotDue","msg":"This is not due yet"},{"code":6025,"name":"ScheduleOver","msg":"This schedule is switched off or has done its last run"},{"code":6026,"name":"BadLottery","msg":"A lottery this program can't keep: an NFT ticket takes no price, shares or ticket mint, one that gives tickets back takes no shares and alone may weigh tickets by time, sales close less than a rhythm before the draw, places that each take something and together 100% or less, runs of places alike, runs on one pool that say the same when it is short, a header that one instruction makes, and held prizes or a raffle, 256 at most, in its own stash, on a lottery that draws once"},{"code":6027,"name":"RoundRunning","msg":"A lottery can't be closed, made again or switched to repeating while its current round has a record, its last round still owes NFTs of its stash, or an earlier round still owes its pot"},{"code":6028,"name":"SalesClosed","msg":"Ticket sales are closed for this round"},{"code":6029,"name":"StillLocked","msg":"This seat can't be taken out yet: its lock tier has not run"},{"code":6030,"name":"MoreThanStaked","msg":"That is more than this position holds"},{"code":6031,"name":"BadRecipe","msg":"A recipe takes up to 255 collectibles (a place is a byte), no payment of it is zero, and its needs and keeps name collectibles it has"},{"code":6032,"name":"OnceAtATime","msg":"A recipe that takes or makes a collectible, gives anything but a fixed amount of tokens, or reads the player's profile is crafted once at a time"},{"code":6033,"name":"NeedNotMet","msg":"A collectible handed in does not have the number this recipe asks for"},{"code":6034,"name":"MaxedOut","msg":"That number is already as high as this recipe raises it"},{"code":6035,"name":"RecipeChanged","msg":"This recipe was edited since the player saw it"},{"code":6036,"name":"Held","msg":"The project is holding this collectible for a player"},{"code":6037,"name":"TermsChanged","msg":"The signed version, incarnation or terms no longer match this record"},{"code":6038,"name":"ResultOverdue","msg":"This contest is off (its result was due, or its sides held less than its least pot once entries closed): every entry takes its own money back"},{"code":6039,"name":"StillHeld","msg":"This NFT is held until its time is up: only the project's authority releases a running hold, and nobody a running loan"},{"code":6040,"name":"HoldOver","msg":"The hold on this NFT is over: it can only go back to its player"},{"code":6041,"name":"BadContest","msg":"A contest needs a side or more, entries that close no later than its result is due, and a side that exists"},{"code":6042,"name":"ContestNotOpen","msg":"This contest is not open"},{"code":6043,"name":"ContestOpen","msg":"This contest has no result yet"},{"code":6044,"name":"EntriesOpen","msg":"Entries are still open: a decider's verdict naming a side is taken once they close (a call-off at any time)"},{"code":6045,"name":"NoWinner","msg":"Nobody backed that side: call the contest off instead"},{"code":6046,"name":"NotATokenAccount","msg":"Not a token account"},{"code":6047,"name":"Overflow","msg":"Arithmetic overflow"},{"code":6048,"name":"BadPrice","msg":"A falling price needs a period above zero and a start that is not before 1970, and a window's times can't be before 1970"},{"code":6049,"name":"NotAMint","msg":"Not a mint of the SPL Token program or of Token-2022"},{"code":6050,"name":"MemoNeeded","msg":"A destination requires a memo: pass the Memo program with the hook's accounts"},{"code":6051,"name":"SameAccount","msg":"A payment can't go into the account it comes from unless that account's owner signs it (never the project or a delegate), and an NFT moves between two different token accounts"},{"code":6052,"name":"SameSlot","msg":"An order closes in a later slot than the one it was opened in"},{"code":6053,"name":"ToTheProject","msg":"The project's own address, or an account of this program, can't be given an NFT (no record holds it, so nothing could move it again), nor a hold's rent"},{"code":6054,"name":"NotVoucher","msg":"The voucher is not signed by one of this grant's voucher keys"},{"code":6055,"name":"VoucherExpired","msg":"The voucher has expired"},{"code":6056,"name":"WrongVoucherBytes","msg":"The Ed25519 check does not sign exactly this claim's voucher, once, within its own instruction"},{"code":6057,"name":"NoPrecompile","msg":"This grant is claimed with a voucher (the Ed25519 check right before the claim): it has no list, and is not open"},{"code":6058,"name":"GrantClosed","msg":"This grant is switched off"},{"code":6059,"name":"OverTotal","msg":"This grant has given all it may"},{"code":6060,"name":"OverWallet","msg":"This wallet, or the NFT it shows, has bought, crafted or claimed this as often as it may"},{"code":6061,"name":"OverPerson","msg":"This person has claimed this grant as often as they may"},{"code":6062,"name":"BadListProof","msg":"This wallet is not on the grant's approved list"},{"code":6063,"name":"WrongGrant","msg":"Not this grant, or not the accounts its reward needs"},{"code":6064,"name":"AlreadyClaimed","msg":"This wallet was already paid for every round this claim names"},{"code":6065,"name":"GateNotMet","msg":"This needs what its gate asks of the player, shown after the instruction's own accounts: an NFT that passes it, held by the player; a place on its list; a locked stake; or a profile that passes"},{"code":6066,"name":"BadRule","msg":"A rule the program can't keep: a test with no key, a one-of test with no texts, a profile where only an NFT is read, or a stake gate of 0 tokens"},{"code":6067,"name":"BadOdds","msg":"Odds name one of the box's entries"},{"code":6068,"name":"BadFarm","msg":"A farm this program can't keep: 1 to 256 lock tiers each above x0 and at most x100, boosts of at most +100,000% each and in all, and exits and missions only where its kind takes them"},{"code":6069,"name":"BadTier","msg":"Not one of this farm's lock tiers"},{"code":6070,"name":"WrongFarm","msg":"This farm takes tokens, not collectibles, or the other way round"},{"code":6071,"name":"NotFarmed","msg":"This farm doesn't take this NFT: not one the player holds, not one its gate names, or a booster on a seat with no tokens"},{"code":6072,"name":"WrongSheet","msg":"An NFT the project has no authority over comes with its Sheet's address right after it"},{"code":6073,"name":"SoulboundEscrow","msg":"A soulbound collectible can't be escrowed: stake it in a farm that freezes"},{"code":6074,"name":"NotTheNft","msg":"That is not the NFT this needs: not the one its record or stash names, not the project's, one proven gone, one a move did not deliver, or a tree that is not Bubblegum v2"},{"code":6075,"name":"StaleProof","msg":"The proof is out of date: its root is gone from the tree's change log, or its leaf changed since: fetch it again"},{"code":6076,"name":"NotProven","msg":"Prove the compressed NFT in this transaction first (prove_leaf): its record no longer reads (its leaf changed, or its root left the tree's change log); or pass an account that shows who holds the NFT"},{"code":6077,"name":"StillProven","msg":"That record still reads: its leaf is unchanged and its root still in the tree's change log"},{"code":6078,"name":"NotTheTraits","msg":"Those traits are not in the project's traits tree"},{"code":6079,"name":"NeedsCustody","msg":"That roll can burn or give the NFT away: the project must hold it first (a custodial route)"},{"code":6080,"name":"FarmOver","msg":"This farm has ended, or ends before that lock would"},{"code":6081,"name":"AlreadyStaked","msg":"That NFT is staked here already"},{"code":6082,"name":"ShorterTier","msg":"A seat's lock tier can only move to one that locks at least as long"},{"code":6083,"name":"BoosterOn","msg":"Take the seat's booster off first"},{"code":6084,"name":"BoosterSlot","msg":"This seat has a booster already, or has none to take off"},{"code":6085,"name":"BadMove","msg":"A move this program can't make: new tokens move as a fixed amount and are never burned; a pool pays at most all it holds, never into itself; nothing pays into the project's vault; a sealed schedule's vault pays only its runs, and never a wallet this program owns"},{"code":6086,"name":"RefreshFirst","msg":"Refresh the seat first, in the same transaction (refresh_seat): its booster has grown at its tier since"},{"code":6087,"name":"WrongRecord","msg":"Not one of this project's records an owner writes, or not the one at this address"},{"code":6088,"name":"CannotClose","msg":"Still needed: an item with units out. A box, a recipe or a sealed schedule is never closed, so its version or its terms never repeat"},{"code":6089,"name":"BadAuction","msg":"An auction needs an end after its start and after now; one taking NFT bids takes a rule it can keep, no shares, a reserve of at most 3 NFTs, and no roll as its lot"},{"code":6090,"name":"LotRefused","msg":"Not a lot an auction takes: a unit of an item with one left (not one whose traits a roll draws), a roll of a written box, or an NFT its seller holds; only an NFT lot goes first, and a sold one moves to its winner, never into a hold"},{"code":6091,"name":"AuctionNotOpen","msg":"This auction is not taking bids: it has not started, or it is over"},{"code":6092,"name":"BidTooLow","msg":"A bid must reach the reserve, and top the high bid by the auction's least raise"},{"code":6093,"name":"AuctionRunning","msg":"This auction is not over: with a bid in, nobody can call it off"},{"code":6094,"name":"NotTheBidders","msg":"The lot goes to the high bidder, and a bid back to its bidder"},{"code":6095,"name":"CantCallOff","msg":"Only the sale of an NFT its seller handed in is called off, and only before the lot moves to its winner"},{"code":6096,"name":"NotOpenYet","msg":"Not open yet: its window opens later"},{"code":6097,"name":"WindowClosed","msg":"Its window has closed"},{"code":6098,"name":"PrizeNotCovered","msg":"A prize this can't give whole: a pool short of it (or a share of it that comes to nothing), a mint the project can no longer mint, a contest's split not set aside, or the project has no vault for a prize's mint yet: open it first"},{"code":6099,"name":"BadChoice","msg":"The choice a share needs: a wallet other than the project's, or a collectible of the share's item that a player holds, passed as the chosen account; a contest's recipient only for its chosen share"},{"code":6100,"name":"BadStake","msg":"This contest takes one entry per player, of exactly its stake"},{"code":6101,"name":"OverWindow","msg":"Over this record's limit for one wallet in this window"},{"code":6102,"name":"WrongCounts","msg":"This is not the list of counts, claims or rounds at the address its record, incarnation and subject name"},{"code":6103,"name":"BadLimits","msg":"A grant's window needs times that are not before 1970"},{"code":6104,"name":"OverKey","msg":"This voucher key has signed all the claims the grant allows one key"},{"code":6105,"name":"TooManyAccounts","msg":"A box's roll would hand the oracle more accounts than its answer can carry: fewer entries, or fewer mints its prizes are in"},{"code":6106,"name":"NothingOwed","msg":"This entry is owed nothing of this part: paid already, not owed, or not yet"},{"code":6107,"name":"BadPrize","msg":"A prize this route can't give: a stash's NFT at random is a box's entry only, and no prize comes from a sealed schedule's or a farm's vault"},{"code":6108,"name":"Rolls","msg":"This box rolls (more than one entry, an NFT at random, or an NFT it rolls on): open it with open_box"},{"code":6109,"name":"OneTicket","msg":"An NFT pays for one ticket at a time"},{"code":6110,"name":"CompressedBid","msg":"A bid can't be a compressed NFT: bid Core or Token Metadata NFTs"},{"code":6111,"name":"OverPrize","msg":"A claim's own amount is of a grant of a fixed amount of tokens, at most that amount, and named by a voucher or a list"},{"code":6112,"name":"NoSolForFee","msg":"The signer holds too little SOL for the fee"},{"code":6113,"name":"BadOffer","msg":"An offer takes a rule it can keep, at least one taker, a loan above 0 for a time above 0 (borrowed until a date within it), shares only on a price, and all its money as it arrives"},{"code":6114,"name":"WinnerPicks","msg":"While losers' NFTs are left, only the winner claims, and picks which one they take"},{"code":6115,"name":"SubjectNonce","msg":"A roll that moves an NFT's numbers is at the NFT's own nonce (its address's first 8 bytes): one at a time"},{"code":6116,"name":"NotALoan","msg":"This hold is no loan, or it is repaid"},{"code":6117,"name":"LoanDue","msg":"This loan is due: it can't be repaid, and its NFT goes to its lender"},{"code":6118,"name":"OwedToLender","msg":"A loan that is due goes to its lender"},{"code":6119,"name":"Rented","msg":"This NFT is rented: a rental runs until its end, and nobody takes the listing before (its maker may stop it)"},{"code":6120,"name":"BadListing","msg":"A rental asks for a length above 0 and 1 period or more, and is taken for 1 period or more, up to its most"},{"code":6121,"name":"NotCompoundable","msg":"Only a farm of tokens whose rewards are the staked token compounds"},{"code":6122,"name":"Sealed","msg":"A sealed schedule is written once: nobody edits, switches off or re-seals it"},{"code":6123,"name":"NotInStash","msg":"A lottery's held prizes, and as many NFTs as it raffles, must be in its own stash when the lottery is written"},{"code":6124,"name":"Promised","msg":"A lottery's place promises this NFT: it leaves its stash only as that prize, or once the lottery has ended and its places have taken theirs"},{"code":6125,"name":"ListingStopped","msg":"Its maker stopped this listing: it takes no more renters, and closes once the rental runs out"},{"code":6126,"name":"NotAnNft","msg":"Only an NFT is taken: one token of a mint that can never mint another, not a unit of a semi-fungible item"},{"code":6127,"name":"OtherSide","msg":"A wallet backs one side of a contest: it already has an entry on another side"},{"code":6128,"name":"ExitWhileLocked","msg":"While its lock runs, a seat can't move to a tier it could leave early from more cheaply"},{"code":6129,"name":"WalletMustSign","msg":"A grant's claim needs its wallet's signature"},{"code":6130,"name":"BurnLocked","msg":"This Token-2022 mint's issuer keeps a burn authority (permissioned burn), so the program could never burn it later: it is refused before any money comes in"},{"code":6131,"name":"WrongProfile","msg":"This needs the player's own profile in this project: it is missing, or another wallet's or another project's"},{"code":6132,"name":"WrongTable","msg":"This is not the project's table at the address its id names"},{"code":6133,"name":"BadTable","msg":"A table takes rows (labels of 32 bytes at most, a table of labels only) until it is sealed, and is drawn from only once it is"},{"code":6134,"name":"BadItem","msg":"A trait's key is the project's own (not item_id, rarity, serial or made), each item names each key once and draws each table by one trait, and a range runs from its least to its most"},{"code":6135,"name":"BadList","msg":"This is not a list of records of this width, or no record is at this place"},{"code":6136,"name":"GrantLive","msg":"A grant's shards close only once the grant is closed or made again"},{"code":6137,"name":"ShardsFixed","msg":"A grant keeps its shard bits (0 to 8) for its incarnation: an edit can't change them"},{"code":6138,"name":"BadRounds","msg":"A claim by voucher or list names one round or more; an open claim names none"},{"code":6139,"name":"NotBurned","msg":"This NFT is not burned: a Sheet closes once its Core asset is burned, its mint holds none, or a record proves its leaf burned"},{"code":6140,"name":"OutOfOrder","msg":"Several NFTs, seats or holds in one call come in ascending order of their addresses, each once"},{"code":6141,"name":"PackTooLarge","msg":"A box's draws (one, or each open's times the opens bought together) must all fit one answer of the oracle's, and the sales one buy adds up one transaction: fewer entries, prizes an entry, draws or opens"},{"code":6142,"name":"WrongEnds","msg":"A farm whose seats can stop earning takes its record of ends, and no other farm does"}],"types":[{"name":"Action","docs":["What a schedule does each time it runs: the move the authority makes with `move_tokens`,","from a pool or a mint the project controls, to a pool, a token account or a collectible's","holder, or burned."],"type":{"kind":"struct","fields":[{"name":"from","type":{"defined":{"name":"TokenSource"}}},{"name":"to","type":{"defined":{"name":"To"}}},{"name":"amount","type":{"defined":{"name":"Amount"}}},{"name":"halve_every","docs":["The amount (or the share) halves after every `halve_every` runs (0: never)."],"type":"u32"}]}},{"name":"Amount","docs":["How much moves."],"type":{"kind":"enum","variants":[{"name":"Fixed","fields":["u64"]},{"name":"Bps","fields":["u16"]}]}},{"name":"Attribute","docs":["One line on a collectible: \"level\" = \"7\"."],"type":{"kind":"struct","fields":[{"name":"key","type":"string"},{"name":"value","type":"string"}]}},{"name":"Auction","docs":["At `[\"auction\", project, seller, id]`. Its bids wait in the project's vault for its mint."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"seller","docs":["Who put the lot up: an NFT's holder, or the project's owner or authority for its item. Paid","the rent and gets it back when the auction closes, with the lot when it does not sell, and","what the shares leave of the winning bid for an NFT."],"type":"pubkey"},{"name":"mint","docs":["The token bids are in."],"type":"pubkey"},{"name":"lot","type":{"defined":{"name":"Lot"}}},{"name":"ours","docs":["Whether the seller was the project's owner or authority when it opened: fixed then, whoever","holds the keys later (`Auction::the_projects`)."],"type":"bool"},{"name":"pin","docs":["For an item lot, the serial reserved for it; for a roll lot, its box's version when the","auction opened, the box its bidders bid on (`order::Paid`)."],"type":"u32"},{"name":"reserve","docs":["The least first bid."],"type":"u64"},{"name":"min_raise_bps","docs":["The least raise over the high bid, in basis points (and always at least 1 unit)."],"type":"u16"},{"name":"starts_at","docs":["Unix time bids open."],"type":"i64"},{"name":"ends_at","docs":["Unix time bids close, unless a late bid moved it (`ends`): any time the seller chooses."],"type":"i64"},{"name":"extend","docs":["A bid moves the end to at least this many seconds after it."],"type":"u32"},{"name":"shares","docs":["The parts of the winning bid taken at the end; the rest goes to the seller of an NFT, or","the treasury for the project's item. Emptied once they are paid and the seller is still owed."],"type":{"vec":{"defined":{"name":"Share"}}}},{"name":"gate","docs":["Who may bid: a player who shows a collectible that passes (`rules.rs`)."],"type":{"option":{"defined":{"name":"Gate"}}}},{"name":"nft_bids","docs":["When set, a bid is a bundle of NFTs that pass this rule, in place of tokens (`price.rs`):","`reserve`, `high` and the least raise count NFTs, at most `MAX_BID_NFTS` a bid. The NFTs","a bid tops go back to their bidder in the same instruction; the winning ones go where the","rest of a winning bid in tokens would (`EndAuction::proceeds`). No bid is a compressed NFT:","one moves only with a proof against its tree's root of that moment, and anyone with a leaf","in the same tree can change the root, so the high bidder could turn every higher bid away","(each one must hand the high bid back) until the auction ends."],"type":{"option":{"defined":{"name":"Rule"}}}},{"name":"high_bidder","docs":["Who bid `high`. The default address while there is no bid."],"type":"pubkey"},{"name":"high","docs":["The high bid, as it arrived (after any transfer fee). 0: no bid yet."],"type":"u64"},{"name":"last_bid_at","type":"i64"},{"name":"proceeds_owed","docs":["Once the lot was delivered: what the winning bid still owes, the next `end_auction` paying it","and closing the auction. The whole bid (tokens, or its NFTs' count) when the lot went first","(`Ending::LotFirst`), its shares still to pay; or what its seller's account couldn't take."],"type":"u64"},{"name":"held","docs":["The high bid's NFTs, held by the project, in room for `MAX_BID_NFTS` made at open."],"type":{"vec":"pubkey"}}]}},{"name":"AuctionArgs","type":{"kind":"struct","fields":[{"name":"lot","type":{"defined":{"name":"Lot"}}},{"name":"reserve","type":"u64"},{"name":"min_raise_bps","type":"u16"},{"name":"starts_at","type":"i64"},{"name":"ends_at","type":"i64"},{"name":"extend","type":"u32"},{"name":"shares","type":{"vec":{"defined":{"name":"Share"}}}},{"name":"gate","docs":["Who may bid (`None`: anyone)."],"type":{"option":{"defined":{"name":"Gate"}}}},{"name":"nft_bids","docs":["A bid is a bundle of NFTs that pass this rule, in place of tokens (`None`: tokens)."],"type":{"option":{"defined":{"name":"Rule"}}}}]}},{"name":"AuctionEnded","docs":["An auction ended: sold to `winner` for `price` (the shares took it, less what went to the lot's","owner), or with no winner, its lot home. `asset` is the collectible that moved or was minted (the","default address for an item's serial voided, a normal item, an unsold lot proven gone, or an end","that paid what the bid still owed once the lot had moved). It closes unless something is still","owed (`Auction::proceeds_owed`): a lot sent first is paid by the next end, `remainder` 0 now."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"auction","type":"pubkey"},{"name":"winner","type":{"option":"pubkey"}},{"name":"price","type":"u64"},{"name":"remainder","docs":["What the shares left, routed to the lot's owner (the seller of an NFT, the treasury for","the project's item), before transfer fees."],"type":"u64"},{"name":"asset","type":"pubkey"},{"name":"reference","type":{"array":["u8",32]}}]}},{"name":"AuctionOpened","docs":["An auction opened: an asset lot is now held by the project, an item lot's `serial` is reserved."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"auction","docs":["Its address, `[\"auction\", project, seller, id]`: an id is unique only for its seller."],"type":"pubkey"},{"name":"id","type":"u32"},{"name":"seller","type":"pubkey"},{"name":"mint","type":"pubkey"},{"name":"lot","type":{"defined":{"name":"Lot"}}},{"name":"pin","docs":["An item lot's serial, a roll lot's box version (`Auction::pin`)."],"type":"u32"},{"name":"reserve","type":"u64"},{"name":"ends_at","type":"i64"}]}},{"name":"BidPlaced","docs":["A bid became the high bid. `amount` is what arrived; `ends_at` is the end after it."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"auction","type":"pubkey"},{"name":"bidder","type":"pubkey"},{"name":"amount","type":"u64"},{"name":"ends_at","type":"i64"}]}},{"name":"BidRefunded","docs":["A bid went back to its bidder: a higher bid topped it."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"auction","type":"pubkey"},{"name":"bidder","type":"pubkey"},{"name":"amount","type":"u64"}]}},{"name":"Boost","docs":["An NFT that passes `rule` adds `effect`."],"type":{"kind":"struct","fields":[{"name":"rule","type":{"defined":{"name":"Rule"}}},{"name":"effect","type":{"defined":{"name":"Effect"}}}]}},{"name":"Borrowed","docs":["A holder borrowed against an NFT: it is held until `due`, `amount` went to them, and `repay`","before `due` brings it home."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"offer","type":"pubkey"},{"name":"lender","type":"pubkey"},{"name":"borrower","type":"pubkey"},{"name":"asset","type":"pubkey"},{"name":"amount","type":"u64"},{"name":"repay","type":"u64"},{"name":"due","type":"i64"}]}},{"name":"Bought","docs":["A box that needs no roll was bought, `count` of it: its price split (or burned) and its prizes","given, each with its own receipt (`PrizeGiven`), in the same instruction. Logged before them, so","a purchase whose prizes' receipts pass what a transaction's log keeps still has this one."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"player","type":"pubkey"},{"name":"loot_box","type":"pubkey"},{"name":"mint","type":"pubkey"},{"name":"count","type":"u32"},{"name":"amount","docs":["What the player paid."],"type":"u64"},{"name":"shares","docs":["The shares that were sent, as the buyer's choice wrote them (`Paid`'s rule)."],"type":{"vec":{"defined":{"name":"Share"}}}},{"name":"treasury_remainder","docs":["Gross remainder routed to the treasury, excluding explicit shares and before transfer fees."],"type":"u64"}]}},{"name":"BoxArgs","type":{"kind":"struct","fields":[{"name":"price","type":"u64"},{"name":"currency","type":"pubkey"},{"name":"rise","type":{"option":{"defined":{"name":"Rise"}}}},{"name":"fall","type":{"option":{"defined":{"name":"Fall"}}}},{"name":"stock_odds","type":"bool"},{"name":"when_out","type":{"defined":{"name":"WhenOut"}}},{"name":"active","type":"bool"},{"name":"shares","type":{"vec":{"defined":{"name":"Share"}}}},{"name":"entries","type":{"vec":{"defined":{"name":"DropEntry"}}}},{"name":"slots","docs":["What one open draws (`LootBox::slots`): none is one draw among every entry."],"type":{"vec":{"defined":{"name":"Slot"}}}},{"name":"gate","docs":["Who may open it (`None`: anyone)."],"type":{"option":{"defined":{"name":"Gate"}}}},{"name":"odds","docs":["Entries a collectible makes likelier (empty: none)."],"type":{"vec":{"defined":{"name":"Odds"}}}},{"name":"window","docs":["When it sells (zeros: whenever it is active)."],"type":{"defined":{"name":"Window"}}},{"name":"per_wallet","docs":["How many one wallet may buy (zeros: no limit)."],"type":{"defined":{"name":"PerWallet"}}},{"name":"subject","docs":["The NFT it rolls on (`None`: none), and what each entry does to it."],"type":{"option":{"defined":{"name":"Rule"}}}},{"name":"fates","type":{"vec":{"defined":{"name":"Fate"}}}}]}},{"name":"Change","docs":["What the authority does to a collectible."],"type":{"kind":"enum","variants":[{"name":"Make","fields":[{"name":"item","type":"u32"},{"name":"tree","type":{"option":"pubkey"}},{"name":"attributes","type":{"vec":{"defined":{"name":"Attribute"}}}}]},{"name":"Set","fields":[{"vec":{"defined":{"name":"Attribute"}}}]},{"name":"Burn"},{"name":"Profile","fields":[{"vec":{"defined":{"name":"Attribute"}}}]}]}},{"name":"Changed","docs":["The project's authority made, rewrote or burned a collectible, as `change` says."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"authority","type":"pubkey"},{"name":"asset","docs":["The collectible rewritten or burned, or the wallet whose profile was written. The default","address for a `Make`: each one made, its owner and its serial are in its own `PrizeGiven`."],"type":"pubkey"},{"name":"change","type":{"defined":{"name":"Change"}}},{"name":"reference","type":{"array":["u8",32]}}]}},{"name":"ClaimRound","docs":["One round a claim names: the win, and the tokens it gives."],"type":{"kind":"struct","fields":[{"name":"id","docs":["The win: the project round, draw or giveaway it was won in."],"type":{"array":["u8",16]}},{"name":"amount","docs":["The tokens it gives, up to the grant's fixed amount; 0: the grant's prize as it is."],"type":"u64"}]}},{"name":"Claimed","docs":["An entry was paid `amount` and closed."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"incarnation","type":"u64"},{"name":"player","type":"pubkey"},{"name":"side","type":"u16"},{"name":"amount","type":"u64"}]}},{"name":"Contest","docs":["At `[\"contest\", project, id]`. Its pot is the token account at `[\"pot\", contest]`."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"incarnation","docs":["Allocated by the Project; never reused after this contest closes."],"type":"u64"},{"name":"opener","docs":["The authority that opened it. Paid its rent, and gets it back when it closes."],"type":"pubkey"},{"name":"mint","docs":["The token it is played in."],"type":"pubkey"},{"name":"closes_at","docs":["Unix time entries stop."],"type":"i64"},{"name":"result_by","docs":["Unix time a result is due. After it, no result is taken and the contest is off."],"type":"i64"},{"name":"verdict","docs":["What is written; read it through `verdict_at`, which knows an overdue contest is off."],"type":{"defined":{"name":"Verdict"}}},{"name":"winner","docs":["The side that won, once the verdict is `Won`."],"type":"u16"},{"name":"decided_at","docs":["Unix time a side was named: a winner has `CLAIM_GRACE_SECONDS` from it to itself."],"type":"i64"},{"name":"owed","docs":["What it still owes; at 0 it closes. Before a result, and once off, its entries not yet","refunded. Won: in a contest of tokens, what the winning side put in and has not claimed; in","a contest of NFTs, the NFTs it still holds, and with a prize, the winners whose first claim","has not come."],"type":"u64"},{"name":"unclaimed","docs":["What the winning side put in and has not yet claimed for (in a contest of NFTs, its winners","whose first claim has not come)."],"type":"u64"},{"name":"pot_won","docs":["Written when a side is named: what the pot holds for the winners once the shares are taken,","and what arrived in a split prize's vault. Each winning entry takes its part of these, by","what it put in, whatever reaches the accounts later."],"type":"u64"},{"name":"prize_won","type":"u64"},{"name":"shares","docs":["The parts of the pot taken when the result is named."],"type":{"vec":{"defined":{"name":"Share"}}}},{"name":"sides","docs":["What each side has put in."],"type":{"vec":"u64"}},{"name":"gate","docs":["Who may enter: a player who shows a collectible that passes, or one of a list of wallets","(`rules.rs`)."],"type":{"option":{"defined":{"name":"Gate"}}}},{"name":"deciders","docs":["Keys whose signed verdict decides it, besides the authority."],"type":{"vec":"pubkey"}},{"name":"min_pot","docs":["The least its sides must hold once entries close, or it is off. 0: no least."],"type":"u64"},{"name":"stake","docs":["What every entry puts in, once per player. 0: any amount."],"type":"u64"},{"name":"prize","docs":["What each winning entry gets when it is claimed, besides its part of the pot (`prize.rs`):","a tournament's trophy, a collectible or a roll of a box for every correct pick."],"type":{"option":{"defined":{"name":"Prize"}}}},{"name":"nft","docs":["When set, an entry stakes one NFT that passes this rule, in place of tokens (`price.rs`),","and the NFTs are the pot: each winner takes its own back and its share of the losers', which","it picks, and what the winners leave goes to the opener. Called off, each takes its own","back. Its sides count NFTs."],"type":{"option":{"defined":{"name":"Rule"}}}},{"name":"cap","docs":["The most losers' NFTs one winner takes (`None`: no cap)."],"type":{"option":"u32"}},{"name":"share","docs":["Fixed when a contest of NFTs is decided: each winner's share of the losers' NFTs,","`min(cap, losers ÷ winners)`. Below the cap, the winners whose place on their side is below","`extras` (`losers mod winners`) take one more."],"type":"u32"},{"name":"extras","type":"u32"},{"name":"picks","docs":["The winners' picks not yet taken nor left by an early end. The opener's part opens at 0."],"type":"u32"},{"name":"prize_split","docs":["Its token `prize` is split by stake: set aside whole at the decision, in the contest's prize","vault (`[\"prize\", contest]`), and each winning entry takes its part, in place of one prize","each."],"type":"bool"}]}},{"name":"ContestArgs","type":{"kind":"struct","fields":[{"name":"sides","docs":["How many sides there are to back: `u16::MAX` is not a side count, as it calls a contest off."],"type":"u16"},{"name":"closes_at","type":"i64"},{"name":"result_by","type":"i64"},{"name":"shares","type":{"vec":{"defined":{"name":"Share"}}}},{"name":"gate","docs":["Who may enter (`None`: anyone)."],"type":{"option":{"defined":{"name":"Gate"}}}},{"name":"deciders","docs":["Keys whose signed verdict decides it, besides the authority."],"type":{"vec":"pubkey"}},{"name":"min_pot","docs":["The least its sides must hold once entries close, or it is off (0: no least)."],"type":"u64"},{"name":"stake","docs":["What every entry puts in, once per player (0: any amount)."],"type":"u64"},{"name":"prize","docs":["What each winning entry gets besides its part of the pot (`None`: nothing)."],"type":{"option":{"defined":{"name":"Prize"}}}},{"name":"nft","docs":["An entry stakes one NFT that passes this rule, in place of tokens (`None`: tokens)."],"type":{"option":{"defined":{"name":"Rule"}}}},{"name":"prize_split","docs":["The token `prize` is split among the winning entries by stake (`Contest::prize_split`)."],"type":"bool"},{"name":"cap","docs":["In a contest of NFTs, the most losers' NFTs one winner takes (`None`: no cap; 0: every","loser's NFT goes to the opener)."],"type":{"option":"u32"}}]}},{"name":"Count","docs":["What a limit record counts (and a grant, by all wallets together: `Grant::counted`)."],"type":{"kind":"struct","fields":[{"name":"count","docs":["Counted in all."],"type":"u32"},{"name":"window","docs":["The window `in_window` counts (`PerWallet::window_at`, or a lottery's round plus one)."],"type":"u32"},{"name":"in_window","docs":["Counted in that window."],"type":"u32"}]}},{"name":"Crafted","docs":["A player crafted a recipe. The tokens it took and gave are the recipe's own lines, but for","`to_treasury`."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"version","docs":["The recipe's version: its lines, as they were, say what tokens moved."],"type":"u32"},{"name":"player","type":"pubkey"},{"name":"times","docs":["How many times over: every token line moved its amount times this."],"type":"u64"},{"name":"burned","docs":["The NFTs taken in (burned or traded in), used and kept, and made."],"type":{"vec":"pubkey"}},{"name":"used","type":{"vec":"pubkey"}},{"name":"made","type":{"vec":"pubkey"}},{"name":"to_treasury","docs":["The payment lines (by their place among the recipe's inputs, the first 0) that nobody could","take where they say (a collectible nobody holds, an account of this program): the treasury got","them."],"type":{"vec":"u32"}}]}},{"name":"Custody","docs":["How a farm keeps a collectible while it is staked or boosting."],"type":{"kind":"enum","variants":[{"name":"Freeze"},{"name":"Escrow"},{"name":"Watch"}]}},{"name":"Deal","docs":["What an offer gives for an NFT: its deal."],"type":{"kind":"enum","variants":[{"name":"Buy","fields":[{"name":"price","type":"u64"}]},{"name":"Lend","fields":[{"name":"amount","type":"u64"},{"name":"repay","type":"u64"},{"name":"lasts","type":"u32"}]}]}},{"name":"Debt","docs":["What a borrower owes for a held NFT: `repay` of `mint`, to `lender`, before the hold's `free_at`."],"type":{"kind":"struct","fields":[{"name":"lender","type":"pubkey"},{"name":"mint","type":"pubkey"},{"name":"repay","type":"u64"}]}},{"name":"Decided","docs":["The authority named the side that won, and `prize` is what its backers share; or (`side`","`None`) called the contest off, and every entry gets its own money back."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"incarnation","type":"u64"},{"name":"side","type":{"option":"u16"}},{"name":"pot","type":"u64"},{"name":"prize","type":"u64"},{"name":"reference","type":{"array":["u8",32]}},{"name":"set_aside","docs":["A prize split by stake (`Contest::prize_split`): what arrived in its vault, which the","winners share; 0 for none."],"type":"u64"}]}},{"name":"Def","docs":["A record and what to write in it."],"type":{"kind":"enum","variants":[{"name":"Item","fields":[{"name":"id","type":"u32"},{"name":"args","type":{"defined":{"name":"ItemArgs"}}}]},{"name":"Box","fields":[{"name":"id","type":"u32"},{"name":"args","type":{"defined":{"name":"BoxArgs"}}}]},{"name":"Schedule","fields":[{"name":"id","type":"u32"},{"name":"args","type":{"defined":{"name":"ScheduleArgs"}}}]},{"name":"Lottery","fields":[{"name":"id","type":"u32"},{"name":"args","type":{"defined":{"name":"LotteryArgs"}}}]},{"name":"Recipe","fields":[{"name":"id","type":"u32"},{"name":"args","type":{"defined":{"name":"RecipeArgs"}}}]},{"name":"Grant","fields":[{"name":"id","type":"u16"},{"name":"args","type":{"defined":{"name":"GrantArgs"}}}]},{"name":"Table","fields":[{"name":"id","type":"u32"},{"name":"args","type":{"defined":{"name":"TableArgs"}}}]}]}},{"name":"DropEntry","docs":["One line of a box's table: what it gives, and its weight."],"type":{"kind":"struct","fields":[{"name":"prizes","docs":["What it gives, any number (`prize.rs`): items (compressed or not), tokens, NFTs of a stash (a given","one, or one at random by weight), a roll of another box (in a box that doesn't roll, `buy`'s). None is nothing: the payment is split as usual."],"type":{"vec":{"defined":{"name":"Prize"}}}},{"name":"weight","docs":["The chance of this entry is its weight over the sum of the weights still in the table: the","entries that can give every prize they name (each first scaled by what is left of its first","item, when the box says `stock_odds`)."],"type":"u32"}]}},{"name":"Effect","docs":["What a boost adds when its rule passes, in basis points of the weight (10,000 doubles it)."],"type":{"kind":"enum","variants":[{"name":"Flat","fields":["u32"]},{"name":"PerPoint","fields":[{"name":"bps","type":"u32"},{"name":"most","type":"u32"}]}]}},{"name":"Ending","docs":["Which end `end_auction` makes of an auction with a bid in. With no bid, each is the same: the lot","goes home."],"type":{"kind":"enum","variants":[{"name":"Deliver"},{"name":"LotFirst"},{"name":"CallOff"}]}},{"name":"Entered","docs":["A player put `amount` on one side of a contest."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"incarnation","type":"u64"},{"name":"player","type":"pubkey"},{"name":"side","type":"u16"},{"name":"amount","type":"u64"}]}},{"name":"Fall","docs":["A price that falls with time: a drop whose price comes down until it sells, a seat that","cools off between buyers. It falls by `step` every `every` seconds counted from `since`,","and never below `floor` (a price already below the floor stays where it is).","","The owner sets `since`: the price holds until then. After a sale the price is what was paid,","after any `Rise`, and it falls on from there:","- by default the clock starts again at the sale, a seat that cools off between buyers;","- with `shared`, the clock runs on, moved by the whole periods that passed, so a drop keeps","falling however often it sells (a Dutch auction of many units).","","A step of 0 never falls; a floor of 0 can fall to free."],"type":{"kind":"struct","fields":[{"name":"step","type":"u64"},{"name":"every","type":"u32"},{"name":"floor","type":"u64"},{"name":"since","type":"i64"},{"name":"shared","type":"bool"}]}},{"name":"Farm","docs":["At `[\"farm\", project, id]`. The owner pays its rent. A farm never closes, so its address names","one farm for good, and a stake signed for it can never land in another."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"farmed","type":{"defined":{"name":"Farmed"}}},{"name":"custody","type":{"defined":{"name":"Custody"}}},{"name":"rewards_mint","docs":["The mint of its rewards, kept in its rewards vault, `[\"rewards\", farm]`."],"type":"pubkey"},{"name":"tiers","type":{"vec":{"defined":{"name":"Tier"}}}},{"name":"boosts","docs":["Read from a seat's collectible (its staked one, or its booster)."],"type":{"vec":{"defined":{"name":"Boost"}}}},{"name":"max_boost_bps","docs":["The most a seat's boosts add together."],"type":"u32"},{"name":"gates","docs":["Who may take a seat: for collectibles, every rule the NFT staked must pass (with none, any","NFT of a collection the project has authority over); for tokens, every rule an NFT the","player shows must pass."],"type":{"vec":{"defined":{"name":"Rule"}}}},{"name":"rate","docs":["A fixed rate, instead of sharing what lands in the vault."],"type":{"option":{"defined":{"name":"Rate"}}}},{"name":"rate_carry","docs":["What the rate owes that is not yet a whole base unit (times one day, and `NFT_UNIT` unless","shared)."],"type":"u128"},{"name":"opened_at","docs":["When it opened: a rate's halvings count from then."],"type":"i64"},{"name":"growth","type":{"vec":{"defined":{"name":"Growth"}}}},{"name":"lock_key","docs":["The attribute a staked collectible's lock is written under, as the time it ends (empty:","the tier's lock, kept on the seat)."],"type":"string"},{"name":"upkeep_key","docs":["The attribute that says until when a staked collectible earns and grows, its fuel (empty: no","upkeep): `Seat::earns_until` when sooner than its term."],"type":"string"},{"name":"ends_at","docs":["Unix time it ends (0: never): no seat taken after that would still be locked by then, and","nothing is paid or grows after it. Seats leave as before."],"type":"i64"},{"name":"exit_to","docs":["Where early-exit fees go, in the staked mint (`Tier::exit_bps`); needed when a tier has one."],"type":{"option":{"defined":{"name":"Sink"}}}},{"name":"total_weight","type":"u128"},{"name":"reward_per_weight","docs":["Rewards credited so far for each unit of weight, times `PRECISION`."],"type":"u128"},{"name":"reward_remainder","docs":["The carry: rounding of a share over the total weight, times `PRECISION`. The next move before","the farm's end credits it to the seats there once it adds up to a share; a move that leaves no","weight, or any move once the farm is over, frees its whole tokens (`FarmSide::settle`), and so","does a walk that begins with no weight or where the weight reaches 0 (`Farm::walk`)."],"type":"u128"},{"name":"owed","docs":["What it owes, times `PRECISION`, always whole tokens: what its seats were credited and not","paid, and the carry. Its vault holds that, but in a farm that mints, which mints what a seat is","paid; what the vault holds beyond it is free (`free`)."],"type":"u128"},{"name":"clock","docs":["When it was last credited: its release, or its rate, has run up to then."],"type":"i64"},{"name":"unreleased","docs":["In a sharing farm (no rate): what is free that it counted and has not released yet."],"type":"u64"},{"name":"release_ends","docs":["The release's line: `release_base` was unreleased at `release_from`, and is released evenly","from then to `release_ends`, at its own pace whatever the farm's end (the release stops at the","end, and what the line has not reached stays free). Laid again when an arrival is counted","(`Farm::count`)."],"type":"i64"},{"name":"release_from","type":"i64"},{"name":"release_base","type":"u64"},{"name":"keeps_ends","docs":["Its seats can stop earning and it pays something: it keeps the record of when, `[\"ends\", farm]`."],"type":"bool"}]}},{"name":"FarmArgs","type":{"kind":"struct","fields":[{"name":"custody","type":{"defined":{"name":"Custody"}}},{"name":"tiers","type":{"vec":{"defined":{"name":"Tier"}}}},{"name":"boosts","type":{"vec":{"defined":{"name":"Boost"}}}},{"name":"max_boost_bps","type":"u32"},{"name":"gates","type":{"vec":{"defined":{"name":"Rule"}}}},{"name":"rate","type":{"option":{"defined":{"name":"Rate"}}}},{"name":"growth","type":{"vec":{"defined":{"name":"Growth"}}}},{"name":"ends_at","docs":["Unix time the farm ends; 0 for never."],"type":"i64"},{"name":"lock_key","docs":["The attribute the lock is written under on a collectible, as the time it ends (empty: the","tier's lock only). A farm of collectibles only."],"type":"string"},{"name":"upkeep_key","docs":["The attribute that says until when a collectible earns and grows, its fuel (empty: no upkeep).","A farm of collectibles only."],"type":"string"},{"name":"exit_to","docs":["Where early-exit fees go (`Tier::exit_bps`). A farm of tokens only."],"type":{"option":{"defined":{"name":"Sink"}}}}]}},{"name":"Farmed","docs":["What a farm takes: one token, or NFTs of any kind (which ones is the farm's gate)."],"type":{"kind":"enum","variants":[{"name":"Tokens","fields":[{"name":"mint","type":"pubkey"}]},{"name":"Collectibles"}]}},{"name":"Fate","docs":["What one of a box's entries does to the NFT the box rolls on (`LootBox::subject`): numbers it","moves (a level lost, affection gained) and where the NFT goes. An entry with none leaves it as","it was."],"type":{"kind":"struct","fields":[{"name":"entry","docs":["The entry, the first of the box being 0."],"type":"u16"},{"name":"shifts","type":{"vec":{"defined":{"name":"Shift"}}}},{"name":"then","docs":["Where the NFT goes once the roll is settled (`price::Spend`): burned, given to a wallet, or","put in a stash. `None`: back to whoever brought it. A box takes an NFT as its price this way."],"type":{"option":{"defined":{"name":"Spend"}}}}]}},{"name":"FeeChanged","type":{"kind":"struct","fields":[{"name":"fees","docs":["The fees in force now, in lamports."],"type":{"defined":{"name":"Fees"}}},{"name":"pending","docs":["A raise waiting out its notice period, and when it applies (0: none)."],"type":{"defined":{"name":"Fees"}}},{"name":"pending_at","type":"i64"}]}},{"name":"Fees","docs":["The platform's two flat fees, in lamports. A player's few transactions carry the larger","one; a project's many (an airdrop to ten thousand players) carry the smaller."],"type":{"kind":"struct","fields":[{"name":"player","docs":["What a player pays when they sign for something of their own: a payment, a purchase,","a craft, tickets, a farm's stake, unstake or harvest, a hold, an entry, a bid."],"type":"u64"},{"name":"project","docs":["What every other charged instruction costs: a payment by the project's own keys, a move of","its tokens, a collectible made, rewritten or burned, a roll, a release while a hold runs,","a contest opened or decided, an auction its keys open. A grant's claim charges its signer","the player fee, never the grant's funds."],"type":"u64"}]}},{"name":"FeesCollected","docs":["The platform took `amount` lamports of fees out of the fee boxes passed, to `to`."],"type":{"kind":"struct","fields":[{"name":"to","type":"pubkey"},{"name":"amount","type":"u64"}]}},{"name":"Gate","docs":["Who may use a box, a lottery, a contest, an auction or a grant."],"type":{"kind":"enum","variants":[{"name":"Holds","fields":[{"defined":{"name":"Rule"}}]},{"name":"Wallets","fields":[{"vec":"pubkey"}]},{"name":"List","fields":[{"name":"root","type":{"array":["u8",32]}},{"name":"depth","type":"u8"}]},{"name":"Staked","fields":[{"name":"farm","type":"pubkey"},{"name":"at_least","type":"u64"}]}]}},{"name":"Grant","docs":["At `[\"grant\", project, id]`. The owner pays its rent and gets it back when they close it."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u16"},{"name":"incarnation","docs":["Allocated by the Project on creation, so closing and recreating never revives a voucher."],"type":"u64"},{"name":"gives","docs":["What each round gives (`prize.rs`)."],"type":{"defined":{"name":"Prize"}}},{"name":"vouchers","docs":["The keys whose vouchers it takes. The default address is an empty place."],"type":{"array":["pubkey",3]}},{"name":"list_root","docs":["The root of the approved list. Zeros: none."],"type":{"array":["u8",32]}},{"name":"key_root","docs":["The root of more keys whose vouchers it takes (`key_leaf`). Zeros: none."],"type":{"array":["u8",32]}},{"name":"open","docs":["Any wallet may claim it, with no voucher and no list."],"type":"bool"},{"name":"limits","type":{"defined":{"name":"Limits"}}},{"name":"counted","docs":["What this grant incarnation has given, by `limits.all`. Edits never reset it."],"type":{"defined":{"name":"Count"}}},{"name":"active","docs":["The owner's switch."],"type":"bool"},{"name":"gate","docs":["Who may be given it: a wallet that shows a collectible that passes (`rules.rs`)."],"type":{"option":{"defined":{"name":"Gate"}}}},{"name":"shard_bits","docs":["Its claims and its rounds are each kept in `2^shard_bits` lists (0 to 8), fixed for the","incarnation: a record never moves to another shard, so no round can pay twice."],"type":"u8"}]}},{"name":"GrantArgs","type":{"kind":"struct","fields":[{"name":"gives","docs":["What each round gives (`prize.rs`)."],"type":{"defined":{"name":"Prize"}}},{"name":"vouchers","type":{"array":["pubkey",3]}},{"name":"list_root","type":{"array":["u8",32]}},{"name":"key_root","type":{"array":["u8",32]}},{"name":"open","docs":["Any wallet may claim it, with no voucher and no list."],"type":"bool"},{"name":"limits","type":{"defined":{"name":"Limits"}}},{"name":"active","type":"bool"},{"name":"gate","docs":["Who may be given it (`None`: any wallet)."],"type":{"option":{"defined":{"name":"Gate"}}}},{"name":"shard_bits","docs":["Its claims and rounds are each kept in `2^shard_bits` lists (0 to 8), set when it is made: the","fewest that keep each list under ~100,000 records over its life (wallets × rounds)."],"type":"u8"}]}},{"name":"GrantClaimed","docs":["A grant gave its reward to `wallet` for one round: a claim logs one for each round it paid."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"grant","type":"pubkey"},{"name":"incarnation","type":"u64"},{"name":"wallet","type":"pubkey"},{"name":"round","docs":["The round the voucher or the list names. Zeros for an open claim. What it gave is in","the `PrizeGiven` beside it."],"type":{"array":["u8",16]}}]}},{"name":"Grown","docs":["A farm wrote what a collectible earned by staying in (`Growth`): its points and the level","they reach, on it or its Sheet."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"farm","type":"u32"},{"name":"asset","type":"pubkey"},{"name":"lines","docs":["What it wrote: each growth's points, and the level they reach where it counts levels."],"type":{"vec":{"defined":{"name":"Attribute"}}}}]}},{"name":"Growth","docs":["What staking writes on a collectible as it stays in: a number that grows, and the level it","reaches."],"type":{"kind":"struct","fields":[{"name":"key","docs":["The attribute the points are written under (\"xp\")."],"type":"string"},{"name":"per_day","docs":["Points a day at ×1; the seat's tier and boosts scale it."],"type":"u32"},{"name":"level","docs":["The attribute the level is written under (\"level\"), or empty for none: how many of","`steps` (the points each level needs, rising) the points have reached."],"type":"string"},{"name":"steps","type":{"vec":"u32"}},{"name":"streak","docs":["The points go back to 0 when the collectible leaves this farm, and the level to the one 0","points reach, a level bought with a recipe too: a streak, not a lifetime. Not in a farm that","watches (`BadFarm`): its NFT leaves by moving, with nothing to write the 0."],"type":"bool"},{"name":"profile","docs":["Written on the seat's player's profile (`sheet.rs`) instead of the collectible: every seat","the player holds adds its own points. A token seat grows it with or without a booster. No","streak (`BadFarm`): one seat leaving would wipe what the others grew."],"type":"bool"},{"name":"at_least","docs":["A seat grows only while it stakes at least this much (base units), so a dust stake earns no","XP. A collectible stakes 1: in a farm of collectibles, more than 1 grows nothing."],"type":"u64"}]}},{"name":"Harvested","docs":["A player collected a farm's rewards owed to their seat."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"farm","type":"u32"},{"name":"player","type":"pubkey"},{"name":"seat","type":"pubkey"},{"name":"rewards","type":"u64"},{"name":"compounded","docs":["What joined the stake instead of being paid (`harvest` with `compound`), as it arrived."],"type":"u64"}]}},{"name":"Held","docs":["A player handed a collectible to the project until `free_at`."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"asset","type":"pubkey"},{"name":"player","type":"pubkey"},{"name":"free_at","type":"i64"},{"name":"reference","type":{"array":["u8",32]}}]}},{"name":"Hold","docs":["At `[\"hold\", asset, free_at]`. The player pays its rent and gets it back when the hold ends.","Its label is in its receipt (`Held`). A hold the player asked for has no room for a debt","(`Hold::PLAIN`); a loan's has (`offer.rs`)."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"asset","type":"pubkey"},{"name":"player","docs":["Who handed it in, and who it goes back to. The project's own address for one owed to the","treasury (a stash's drop, an auction's or a lottery's NFT): it goes to the project's","treasury wallet of the day it is released."],"type":"pubkey"},{"name":"payer","docs":["Who made the hold, and gets its rent back at the release: its player, or whoever made a hold","of an NFT a record owed (`owe`)."],"type":"pubkey"},{"name":"rent_to","docs":["Who paid for the project's account of a Token Metadata NFT, and gets its rent back at the","release: its player, or for an NFT a record owed, whoever paid it then."],"type":"pubkey"},{"name":"free_at","docs":["Unix time the authority's say ends; for a loan, when it is due."],"type":"i64"},{"name":"debt","docs":["A loan's: who lent, and what repays it. `None` for a hold the player asked for."],"type":{"option":{"defined":{"name":"Debt"}}}}]}},{"name":"Input","docs":["One thing a recipe takes."],"type":{"kind":"enum","variants":[{"name":"Burn","fields":[{"name":"item","type":"u32"},{"name":"count","type":"u8"}]},{"name":"Use","fields":[{"name":"item","type":"u32"}]},{"name":"Pay","fields":[{"name":"mint","type":"pubkey"},{"name":"amount","type":"u64"},{"name":"to","type":{"defined":{"name":"To"}}}]},{"name":"Show","fields":[{"name":"collection","type":"pubkey"}]},{"name":"Staked","fields":[{"name":"item","type":"u32"},{"name":"farm","type":"u32"}]},{"name":"Trade","fields":[{"name":"collection","type":"pubkey"},{"name":"then","type":{"defined":{"name":"Spend"}}}]}]}},{"name":"Item","docs":["Something the project sells, drops from a box, or makes (a shop sells it as the one entry of a","box). The fixed fields come first so a box roll can read them at fixed places (`ItemView`)."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"item_id","type":"u32"},{"name":"kind","type":{"defined":{"name":"ItemKind"}}},{"name":"rarity","type":"u8"},{"name":"soulbound","docs":["Collectibles only: frozen for good at mint, so it can't be transferred."],"type":"bool"},{"name":"burnable","docs":["Collectibles only: the project's authority can burn it later (`collectible`)."],"type":"bool"},{"name":"max_supply","docs":["0 means unlimited."],"type":"u32"},{"name":"issued","docs":["Handed out so far, by sales, boxes and the authority. Also the last serial number used."],"type":"u32"},{"name":"voided","docs":["Serials of auctions that did not sell. They stay gaps in the numbering, and the units they","stood for can be sold again under new numbers.","So once a serial is voided, a later one can be above `max_supply`: a serial is a number,","not a count. The count of units out is `issued - voided`; an edit may set the supply below it,","and then the item reads as sold out."],"type":"u32"},{"name":"active","docs":["Switched off, it is not sold, dropped from a box or made by a recipe. The authority's","own make (`collectible`) still works."],"type":"bool"},{"name":"collection","docs":["Collectibles only: the Core collection it is minted into, one of the project's (the default","address for a normal item)."],"type":"pubkey"},{"name":"name","type":"string"},{"name":"uri","type":"string"},{"name":"traits","docs":["A fresh item's traits: each drawn when a unit of it is won, and written on it as an attribute","(`Trait`). None is an item whose units are all alike. A fresh item is given only by a roll","(`gives`), and its traits never change once a unit is out."],"type":{"vec":{"defined":{"name":"Trait"}}}},{"name":"compressed","docs":["Collectibles only: its collection takes compressed NFTs (it carries Bubblegum's plugin, set","only when a collection is made), read from the collection each time the item is written. A","compressed prize of an item without it is never given, and a roll never lands on one."],"type":"bool"}]}},{"name":"ItemArgs","type":{"kind":"struct","fields":[{"name":"kind","type":{"defined":{"name":"ItemKind"}}},{"name":"rarity","type":"u8"},{"name":"soulbound","type":"bool"},{"name":"burnable","type":"bool"},{"name":"name","type":"string"},{"name":"uri","type":"string"},{"name":"max_supply","type":"u32"},{"name":"active","type":"bool"},{"name":"collection","docs":["A collectible's collection: one of the project's."],"type":"pubkey"},{"name":"traits","docs":["A fresh collectible's traits (`Item::traits`): none for one whose units are all alike."],"type":{"vec":{"defined":{"name":"Trait"}}}}]}},{"name":"ItemKind","type":{"kind":"enum","variants":[{"name":"Normal"},{"name":"Collectible"}]}},{"name":"Keep","docs":["An attribute a new collectible takes from one handed in."],"type":{"kind":"struct","fields":[{"name":"key","type":"string"},{"name":"from","docs":["Which collectible handed in it comes from, and which collectible made it goes to: the","first of each is 0."],"type":"u8"},{"name":"to","type":"u8"}]}},{"name":"Leaf","docs":["A compressed NFT's leaf as an indexer gives it (DAS `getAsset` and `getAssetProof`): what","Bubblegum v2 hashes into the leaf beside its id, owner, delegate and collection (those come","as accounts), and the root its proof was taken against. The proof's nodes come as accounts.","Every leaf of a v2 tree sits at the index of its nonce (only Bubblegum appends, in order)."],"type":{"kind":"struct","fields":[{"name":"root","docs":["The tree's root the proof was taken against: its current root, or one still in its change","log with no change since at this leaf (`check_proof`). In a record: that root, or the one","this program last moved the leaf to; the record says what the leaf is only while the leaf","is unchanged since it (`still_current`)."],"type":{"array":["u8",32]}},{"name":"data_hash","docs":["All zeros: the leaf's own slot is empty, as Bubblegum leaves it once the leaf is burned."],"type":{"array":["u8",32]}},{"name":"creator_hash","type":{"array":["u8",32]}},{"name":"asset_data_hash","docs":["`None`: Bubblegum's default (no asset data), as every leaf has today."],"type":{"option":{"array":["u8",32]}}},{"name":"flags","type":"u8"},{"name":"nonce","type":"u64"}]}},{"name":"LeftoverBurned","docs":["A contest's or a lottery round's token account closed, and `amount` of `mint` it still held,","which was nobody's (`Tokens::retire`), was burned out of it."],"type":{"kind":"struct","fields":[{"name":"account","type":"pubkey"},{"name":"mint","type":"pubkey"},{"name":"amount","type":"u64"}]}},{"name":"Limits","docs":["Counts of claims, not amounts: each round paid is one. 0 switches a limit off."],"type":{"kind":"struct","fields":[{"name":"all","docs":["Claims by every wallet together, in all and in each window (86,400 seconds: a UTC day)."],"type":{"defined":{"name":"PerWallet"}}},{"name":"wallet","docs":["Claims one wallet may make, in all and in each window."],"type":{"defined":{"name":"PerWallet"}}},{"name":"per_person","docs":["Claims one person may make: counted only for vouchers that name one (`person_hash`)."],"type":"u32"},{"name":"per_key","docs":["Claims one voucher key may sign: a promo code's key once."],"type":"u32"},{"name":"window","docs":["When it can be claimed."],"type":{"defined":{"name":"Window"}}}]}},{"name":"Listed","docs":["A maker listed an NFT they held (`listing.rs`): for sale, or for rent. The project holds it now."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"listing","type":"pubkey"},{"name":"maker","type":"pubkey"},{"name":"asset","type":"pubkey"},{"name":"mint","type":"pubkey"},{"name":"deal","type":{"defined":{"name":"ListingDeal"}}}]}},{"name":"Listing","docs":["At `[\"listing\", project, asset]`. Its maker pays its rent and gets it back when it closes. The","fixed part comes first, so a game reads `user` and `until` at fixed places."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"maker","type":"pubkey"},{"name":"asset","docs":["The NFT, which the project holds while the listing is open."],"type":"pubkey"},{"name":"mint","docs":["The token it is paid in."],"type":"pubkey"},{"name":"user","docs":["Who rents it now: the default address for nobody, and for a sale."],"type":"pubkey"},{"name":"until","docs":["Unix time the rental ends. 0 (or any time past): nobody rents it."],"type":"i64"},{"name":"stopped","docs":["Its maker closed it while a rental ran: it takes no more renters, and its maker takes the","NFT home once the rental runs out."],"type":"bool"},{"name":"deal","type":{"defined":{"name":"ListingDeal"}}},{"name":"shares","docs":["Parts of each payment, taken before the maker's (a royalty, a platform's cut)."],"type":{"vec":{"defined":{"name":"Share"}}}}]}},{"name":"ListingDeal","docs":["What a listing asks for its NFT."],"type":{"kind":"enum","variants":[{"name":"Sell","fields":[{"name":"price","type":"u64"}]},{"name":"Rent","fields":[{"name":"price","type":"u64"},{"name":"lasts","type":"u32"},{"name":"max_periods","type":"u16"}]}]}},{"name":"ListingRented","docs":["A listed NFT was rented for `periods` periods: `price` in all through the shares, `paid` of it to","the maker (before transfer fees). The renter is its user until `until`."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"listing","type":"pubkey"},{"name":"maker","type":"pubkey"},{"name":"renter","type":"pubkey"},{"name":"asset","type":"pubkey"},{"name":"periods","type":"u16"},{"name":"price","type":"u64"},{"name":"paid","type":"u64"},{"name":"until","type":"i64"}]}},{"name":"ListingSold","docs":["A listed NFT was sold: the NFT to the buyer, the price through the shares, `paid` of it to the","maker (before transfer fees). The listing closed."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"listing","type":"pubkey"},{"name":"maker","type":"pubkey"},{"name":"buyer","type":"pubkey"},{"name":"asset","type":"pubkey"},{"name":"price","type":"u64"},{"name":"paid","type":"u64"}]}},{"name":"LootBox","docs":["A loot box: a price and a drop table. The odds on a page are these bytes."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"box_id","type":"u32"},{"name":"price","docs":["What the next sale pays. 0 is a free box: the player still pays the fee and the SOL the order holds."],"type":"u64"},{"name":"currency","docs":["The mint the price is in."],"type":"pubkey"},{"name":"rise","docs":["Makes the price rise with every box opened."],"type":{"option":{"defined":{"name":"Rise"}}}},{"name":"fall","docs":["Makes the price fall with time."],"type":{"option":{"defined":{"name":"Fall"}}}},{"name":"stock_odds","docs":["Each item's weight shrinks with its stock: it is multiplied by the share of the item's","supply still left, rounded up. The last mythic of 100 is a hundred times rarer than the","first. Items with no supply limit and the other outcomes keep their weight."],"type":"bool"},{"name":"when_out","docs":["What it does once an entry it lists can't be given (`WhenOut`)."],"type":{"defined":{"name":"WhenOut"}}},{"name":"in_flight","docs":["The draws its purchases made that wait for their answer, under `WhenOut::StopSales`: a sale needs","every entry to cover these and its own. An edit of what a roll reads puts it back to 0 (the","orders it fails are refunded)."],"type":"u64"},{"name":"active","type":"bool"},{"name":"version","docs":["Counts the edits of what a roll reads (entries, odds, `stock_odds`, `when_out`, `subject`, `fates`); a","price, rise, fall or currency edit leaves it. An order remembers","the version it paid for, and is not rolled on any other: it fails and refunds. A box is never closed, so no version comes back at its","address."],"type":"u32"},{"name":"shares","docs":["Where a sale of this box sends its money."],"type":{"vec":{"defined":{"name":"Share"}}}},{"name":"entries","type":{"vec":{"defined":{"name":"DropEntry"}}}},{"name":"slots","docs":["What one open draws: each slot draws `count` entries, among its own (`only`), every one","weighted, with the stock as the draws before it left it. None is one draw among every entry:","a box of one roll. A pack of 5 is one slot of 5; a guaranteed rare, a slot of 1 among the rares."],"type":{"vec":{"defined":{"name":"Slot"}}}},{"name":"gate","docs":["Who may open it: a player who shows a collectible that passes (`rules.rs`)."],"type":{"option":{"defined":{"name":"Gate"}}}},{"name":"odds","docs":["Entries whose weight grows for a player who shows a collectible that passes (any number). The purchase fixes what the collectible shown adds. Written with the","rest of the box, so a change of them is an edit (`version`)."],"type":{"vec":{"defined":{"name":"Odds"}}}},{"name":"window","docs":["When it sells: a drop at a set time, a sale that ends."],"type":{"defined":{"name":"Window"}}},{"name":"per_wallet","docs":["How many one wallet may buy, in all and in each window (`counter.rs`)."],"type":{"defined":{"name":"PerWallet"}}},{"name":"subject","docs":["The NFT the box rolls on, when it rolls on one: one the player brings that passes this","rule (an enchant, a forge, a mission's return), which its entries' `fates` act on. It is","also the NFT its gate's and odds' rules on an NFT read."],"type":{"option":{"defined":{"name":"Rule"}}}},{"name":"fates","type":{"vec":{"defined":{"name":"Fate"}}}}]}},{"name":"Lot","docs":["What an auction sells."],"type":{"kind":"enum","variants":[{"name":"Item","fields":["u32"]},{"name":"Asset","fields":["pubkey"]},{"name":"Roll","fields":["u32"]}]}},{"name":"Lottery","docs":["At `[\"lottery\", project, id]`."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"incarnation","docs":["A creation identity allocated by the persistent Project: written again as a new lottery, it","takes a new one, so its rounds are at new addresses."],"type":"u64"},{"name":"revision","docs":["Configuration edits within this incarnation. A round's first purchase names it, and the","round keeps a copy of the terms it saw."],"type":"u32"},{"name":"terms","docs":["The terms of its next round (its `draws_at` that round's date)."],"type":{"defined":{"name":"LotteryTerms"}}},{"name":"every","docs":["Seconds from one draw to the next. 0: it draws once more, round `last`, then ends."],"type":"i64"},{"name":"round","docs":["Counts the rounds: up by one as a round's draw is first asked, or it is cancelled short, or","nobody bought into it. A lottery that draws once has ended past round `last`."],"type":"u32"},{"name":"last","docs":["The round it was at when last written: for one that draws once, its last round. A repeating","lottery edited to draw once ends after the round it is at, whoever buys into it."],"type":"u32"},{"name":"gate","docs":["Who may buy tickets: read at each purchase, so an edit applies to the running round."],"type":{"option":{"defined":{"name":"Gate"}}}},{"name":"per_wallet","docs":["The most tickets one wallet holds in a round (`counter.rs`), read at each purchase. 0: no limit."],"type":"u32"},{"name":"pots","docs":["The pots it has opened, one bit for each `id` (`PaysFrom::Pot`): a close empties every one."],"type":"u16"},{"name":"owing","docs":["The last round paid from a pot that may still owe that pot what its places left (`pot_owed`):","the next ask from a pot (any of them) moves it in first, so a prize never depends on whether","someone pulled it. The default address: none."],"type":"pubkey"}]}},{"name":"LotteryArgs","type":{"kind":"struct","fields":[{"name":"terms","docs":["Its round's terms; its mint kept by every edit."],"type":{"defined":{"name":"LotteryTerms"}}},{"name":"every","type":"i64"},{"name":"gate","docs":["Who may buy tickets (`None`: anyone)."],"type":{"option":{"defined":{"name":"Gate"}}}},{"name":"per_wallet","docs":["The most tickets one wallet holds in a round (0: no limit)."],"type":"u32"}]}},{"name":"LotteryCancelled","docs":["The oracle never answered a round's draw, or it sold too few: every entry is refunded."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"incarnation","type":"u64"},{"name":"round","type":"u32"},{"name":"short","docs":["Cancelled at its draw for selling fewer tickets than its least (`min_sold`), not because the","oracle never answered."],"type":"bool"}]}},{"name":"LotteryDrawn","docs":["A lottery's round was drawn."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"incarnation","type":"u64"},{"name":"round","type":"u32"},{"name":"winning_ticket","docs":["First place's ticket (in a weighted round, a point of its weight). The others follow at even","steps (`LotteryRound::ticket_of_place`); each place's winner is the buyer of the entry that","holds its ticket."],"type":"u128"},{"name":"randomness","type":{"array":["u8",32]}}]}},{"name":"LotteryPulled","docs":["One part of a round's entry was settled: `amount`, the tokens it settled (0 for an NFT), to the","buyer, or for a recipient's part to the recipient."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"incarnation","type":"u64"},{"name":"round","type":"u32"},{"name":"entry","type":"u32"},{"name":"buyer","type":"pubkey"},{"name":"part","type":{"defined":{"name":"Part"}}},{"name":"amount","type":"u64"}]}},{"name":"LotteryTerms","docs":["A round's terms: written with the lottery, and copied by each round at its first purchase."],"type":{"kind":"struct","fields":[{"name":"price","docs":["The price of one ticket, in `mint` (or in `ticket_mint`)."],"type":"u64"},{"name":"mint","docs":["The mint ticket money and the places' parts are in, and every pot's. An edit keeps it."],"type":"pubkey"},{"name":"pays_from","docs":["Where the places are paid from: this round's own money, or a pot."],"type":{"defined":{"name":"PaysFrom"}}},{"name":"shares","docs":["Where ticket money goes before the places (one may be the buyer's choice): what they leave is","the round's part for its places (`LotteryRound::to_pot`). Empty when tickets are burned."],"type":{"vec":{"defined":{"name":"Share"}}}},{"name":"places","docs":["What each place wins, first place first, as runs of places alike (`Place::times`): a part of","what the round pays from, a prize, or both. Written empty: one winner who takes all."],"type":{"vec":{"defined":{"name":"Place"}}}},{"name":"ticket_mint","docs":["When set, a ticket costs `price` of this mint and is burned, and no ticket money reaches","the places. The default address means there is none: tickets pay into the pot. It may change","between rounds: each round has its own account of it."],"type":"pubkey"},{"name":"draws_at","docs":["Unix time the round's draw is due."],"type":"i64"},{"name":"nft_ticket","docs":["When set, a ticket costs one NFT that passes its rule, in place of tokens (`price.rs`):","handed to the project as it is bought, then sent where its price says once the round is","drawn (back to its buyer when it is cancelled). Such a lottery has no price and no shares."],"type":{"option":{"defined":{"name":"NftPrice"}}}},{"name":"returns","docs":["No loss: every ticket goes back to its buyer once the round is drawn, and the winners take","only the pot (what is paid into it: yield, a sponsor) and their prizes. No shares, no ticket","mint. Paid from its own money, its places take no money: they give their prizes."],"type":"bool"},{"name":"min_sold","docs":["The least tickets a round sells to be drawn: a due round that sold fewer is cancelled at its","draw. 0: no least."],"type":"u64"},{"name":"closes_before","docs":["Sales close this many seconds before the draw, so every ticket is held at least that long","(in a no-loss lottery, a pot goes to money that stayed in). 0: they sell until the draw."],"type":"i64"},{"name":"time_weighted","docs":["Each ticket counts in the draw for the seconds from its purchase to the close of sales (the","round's own `draws_at` less its `closes_before`), so money held longer is likelier to win.","Only for a lottery that `returns` its tickets. Off: every ticket counts one."],"type":"bool"}]}},{"name":"Moved","docs":["The project's authority moved tokens: out of a pool or newly minted (`from`), to where `to`","says. A share for a collectible's holder when nobody holds it is burned (new tokens are then","never minted)."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"authority","type":"pubkey"},{"name":"mint","type":"pubkey"},{"name":"from","type":{"defined":{"name":"TokenSource"}}},{"name":"to","type":{"defined":{"name":"To"}}},{"name":"amount","docs":["What was sent, burned or minted: 0 when nothing was minted. A mint with a transfer fee","delivers less."],"type":"u64"},{"name":"reference","type":{"array":["u8",32]}}]}},{"name":"Need","docs":["What a recipe asks of a collectible handed in: what is written under `key` on it (by the","project, or a recipe's raise) passes `test` (`rules::Test`: at least so much, at most, a time","past, at least so long ago)."],"type":{"kind":"struct","fields":[{"name":"place","docs":["Which collectible: the first handed in is 0, in the recipe's order; or the player's profile","(`PROFILE_PLACE`)."],"type":"u8"},{"name":"key","type":"string"},{"name":"test","type":{"defined":{"name":"Test"}}}]}},{"name":"NftPrice","docs":["An NFT that passes `rule`, as a price, and where it goes."],"type":{"kind":"struct","fields":[{"name":"rule","type":{"defined":{"name":"Rule"}}},{"name":"then","type":{"defined":{"name":"Spend"}}}]}},{"name":"Odds","docs":["A box entry whose weight grows by `boost`, for a player who shows a collectible that passes","its rule (`state::LootBox::odds`)."],"type":{"kind":"struct","fields":[{"name":"entry","docs":["The entry, the first of the box being 0."],"type":"u16"},{"name":"boost","type":{"defined":{"name":"Boost"}}}]}},{"name":"OddsRaised","docs":["A roll's odds boosts were fixed (`rules.rs`): at a purchase, from the collectible its player showed","and their profile; at a roll made on an NFT, from that NFT; at another roll's first ask (`ask_roll`),","from the profile and an NFT its player showed then, added to what the NFT it is on raised. `raised` has","all the basis points the order now adds to each entry's weight, in entry order."],"type":{"kind":"struct","fields":[{"name":"order","type":"pubkey"},{"name":"requested_slot","docs":["The purchase identity at this reusable order address. For a roll made on an NFT, the slot it","was made in; at an ask, the slot it asks in, which its `OrderRolled` and `OrderSettled` carry."],"type":"u64"},{"name":"asset","docs":["The NFT read (the default address for none): at an ask, the NFT shown, or the one the roll is on","when what it raised is in `raised`."],"type":"pubkey"},{"name":"profile","docs":["The player's profile read (the default address for none)."],"type":"pubkey"},{"name":"raised","type":{"vec":"u32"}}]}},{"name":"Of","docs":["Which NFTs a rule is about."],"type":{"kind":"enum","variants":[{"name":"Collection","fields":["pubkey"]},{"name":"Item","fields":["u32"]},{"name":"Profile"}]}},{"name":"Offer","docs":["At `[\"offer\", project, maker, id]`. Its maker pays its rent and gets it back when it closes."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"maker","type":"pubkey"},{"name":"mint","docs":["The token it pays in."],"type":"pubkey"},{"name":"rule","docs":["Which NFTs it takes, read as each comes in."],"type":{"defined":{"name":"Rule"}}},{"name":"deal","type":{"defined":{"name":"Deal"}}},{"name":"shares","docs":["Parts of a sale's price, taken before the seller's (a royalty, a pool's cut). None for a loan."],"type":{"vec":{"defined":{"name":"Share"}}}},{"name":"left","docs":["How many more takes it pays for: its money in the vault is `left` times `deal.unit()`. Last:","the only field a take changes (`Offer::terms`)."],"type":"u16"}]}},{"name":"OfferArgs","type":{"kind":"struct","fields":[{"name":"rule","type":{"defined":{"name":"Rule"}}},{"name":"deal","type":{"defined":{"name":"Deal"}}},{"name":"left","docs":["How many NFTs it takes, at least 1."],"type":"u16"},{"name":"shares","type":{"vec":{"defined":{"name":"Share"}}}}]}},{"name":"OfferClosed","docs":["An offer closed: called off by its maker (`refund` back to them), or taken to the last."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"offer","type":"pubkey"},{"name":"maker","type":"pubkey"},{"name":"refund","type":"u64"}]}},{"name":"OfferOpened","docs":["A maker put money up for NFTs that pass a rule (`offer.rs`): `left` takes of its deal."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"offer","type":"pubkey"},{"name":"id","type":"u32"},{"name":"maker","type":"pubkey"},{"name":"mint","type":"pubkey"},{"name":"deal","type":{"defined":{"name":"Deal"}}},{"name":"left","type":"u16"}]}},{"name":"Order","docs":["One purchase of a box, held until it is settled or refunded. The player pays its rent and","gets it back either way."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"player","type":"pubkey"},{"name":"mint","docs":["The mint the player paid in."],"type":"pubkey"},{"name":"loot_box","docs":["The box opened and its version then."],"type":"pubkey"},{"name":"box_version","type":"u32"},{"name":"odds_bps","docs":["What each of the box's odds rules added at purchase, or by the roll's first ask, in basis points.","`box_version` binds each position to its rule; unused positions are zero. The roll still checks stock."],"type":{"vec":"u32"}},{"name":"status","type":{"defined":{"name":"OrderStatus"}}},{"name":"won","docs":["What the roll set aside for the player, once it is rolled: a prize that could not be set","aside (a pool emptied, a stash taken) is not there."],"type":{"vec":{"defined":{"name":"Won"}}}},{"name":"paid","docs":["What the player paid, held in the project's vault until settle or refund. Once the first","settle call split it, only what the last part gives back (`back`)."],"type":"u64"},{"name":"fee","docs":["The platform's fee and the split, fixed at purchase so later edits don't touch a paid","order. The fee waits in the order's own SOL. A share the buyer chose is written as the wallet or","the collectible they chose."],"type":"u64"},{"name":"shares","type":{"vec":{"defined":{"name":"Share"}}}},{"name":"opens","docs":["How many opens of its box it is (`open_box`'s `count`): paid together, drawn from one answer."],"type":"u32"},{"name":"settled","docs":["How many of `won` were settled by its earlier parts (`settle`'s `upto`): the next part starts","there."],"type":"u32"},{"name":"undrawn","docs":["The draws its roll did not make, of its opens' (`LootBox::draws` each): a slot that found nothing","in stock, or what the oracle's answer had no room for."],"type":"u32"},{"name":"back","docs":["What the last settle part gives back for them: their worth (`Slot::worth`) in what was paid."],"type":"u64"},{"name":"settler","docs":["A key its player named to settle it for them (`open_box`, `ask_roll`): a wallet needn't be asked","a second time. The default names nobody, and nobody signs as it."],"type":"pubkey"},{"name":"drew","docs":["The draws its roll made; 0 once the first settle call split the payment."],"type":"u32"},{"name":"answer","docs":["The oracle's answer, once rolled: what a fresh item's traits drawn at its mint are drawn from."],"type":{"array":["u8",32]}},{"name":"drawn","docs":["The rows fresh items' table traits drew at the roll (`Won::Item`'s `drawn`)."],"type":{"vec":"u32"}},{"name":"reserved","docs":["The draws it counts in its box's `in_flight`, until its answer or its refund."],"type":"u64"},{"name":"requested_slot","docs":["The slot of the purchase. Refund deadlines count from it."],"type":"u64"},{"name":"asked_first","docs":["The slot of the roll's first ask (the purchase, or `ask_roll` from `Waiting`), which names","its ticket (`ticket_of`): a stale re-ask keeps it, so every earlier request's answer is still","taken, and the first to land rolls the order."],"type":"u64"},{"name":"asked_at","docs":["When it was last asked, and first asked: a late answer's deadlines count in time, from these."],"type":"i64"},{"name":"first_asked_at","type":"i64"},{"name":"counted","docs":["It counts against its player's limit on its box (`counter.rs`), in this window. A refund","gives it back."],"type":{"option":"u32"}},{"name":"subject","docs":["The NFT the roll is on (only a box that rolls on an NFT has one), and whether the project holds","it until the order ends (its box can burn it or give it away)."],"type":{"option":"pubkey"}},{"name":"held","type":"bool"},{"name":"fate","docs":["What the roll does to it: the rolled entry's fate, copied when it is rolled, so an edit of","the box after cannot change it."],"type":{"option":{"defined":{"name":"Fate"}}}}]}},{"name":"OrderFailed","docs":["A box order could not be rolled: nothing in it could be won, or the box was edited after","the purchase. The order can be refunded."],"type":{"kind":"struct","fields":[{"name":"order","type":"pubkey"},{"name":"requested_slot","docs":["The purchase identity at this reusable order address."],"type":"u64"},{"name":"project","type":"pubkey"},{"name":"player","type":"pubkey"}]}},{"name":"OrderPartSettled","docs":["A part of an order's prizes carried out (`settle` with an `upto` short of its last): its","`from..upto` of `won`. What each became follows from it: a collectible at `[\"asset\", item, serial]`,","the NFT itself. The order stays until its last part","(`OrderSettled`). The first part splits the payment, alone when it gives no prize (`upto` 0,","`from == upto`)."],"type":{"kind":"struct","fields":[{"name":"order","type":"pubkey"},{"name":"requested_slot","type":"u64"},{"name":"from","type":"u32"},{"name":"upto","type":"u32"},{"name":"amount","docs":["What this part split or burned of the payment, as `OrderSettled`'s: the first part's; 0 for the others."],"type":"u64"},{"name":"treasury_remainder","type":"u64"}]}},{"name":"OrderRefunded","docs":["An order's payment went back to its player."],"type":{"kind":"struct","fields":[{"name":"order","type":"pubkey"},{"name":"requested_slot","docs":["The purchase identity at this reusable order address."],"type":"u64"},{"name":"project","type":"pubkey"},{"name":"player","type":"pubkey"},{"name":"amount","type":"u64"}]}},{"name":"OrderRolled","docs":["An order is rolled: whatever its box rolled, with what was set aside for it."],"type":{"kind":"struct","fields":[{"name":"order","type":"pubkey"},{"name":"requested_slot","docs":["The purchase identity at this reusable order address."],"type":"u64"},{"name":"project","type":"pubkey"},{"name":"player","type":"pubkey"},{"name":"loot_box","docs":["The box."],"type":"pubkey"},{"name":"entries","docs":["The entries drawn, in order (each open's slots, each slot's draws), the first of the box","being 0."],"type":{"vec":"u16"}},{"name":"gave","docs":["How many of `won` each of `entries` set aside, in the same order: fewer than the entry names","when a prize of it turned out short."],"type":"bytes"},{"name":"missed","docs":["The draws made that landed on an entry that couldn't be given, and gave nothing","(`WhenOut::GiveNothing`): they are not in `entries`."],"type":"u32"},{"name":"won","docs":["What was set aside for the player: a collectible's serial, tokens, an NFT, a roll."],"type":{"vec":{"defined":{"name":"Won"}}}},{"name":"randomness","docs":["The oracle's random bytes the entry was picked with. Zeros for a box of one entry, which","rolls nothing."],"type":{"array":["u8",32]}}]}},{"name":"OrderSettled","docs":["An order was delivered, its payment split, and it closed."],"type":{"kind":"struct","fields":[{"name":"order","type":"pubkey"},{"name":"requested_slot","docs":["The purchase identity at this reusable order address."],"type":"u64"},{"name":"project","type":"pubkey"},{"name":"player","type":"pubkey"},{"name":"from","docs":["The first of `won` this settle carried out: earlier ones were by earlier parts","(`OrderPartSettled`)."],"type":"u32"},{"name":"won","docs":["What the roll set aside for the player: this call gave those from `from` on, but for any a","`PrizeForgone` names. What each became follows from it: a collectible at `[\"asset\", item,","serial]`, the NFT itself."],"type":{"vec":{"defined":{"name":"Won"}}}},{"name":"amount","docs":["What this call split or burned of the payment: what the player paid, less the share of the","draws the roll didn't make (which goes back to the player). 0 when an earlier part, the first,","made the split (`OrderPartSettled`)."],"type":"u64"},{"name":"shares","docs":["The shares of the split fixed at purchase that this call sent (`Paid`'s rule): none when an","earlier part made the split."],"type":{"vec":{"defined":{"name":"Share"}}}},{"name":"treasury_remainder","docs":["Gross remainder routed to the treasury, excluding explicit shares and before transfer fees,","by this call's split."],"type":"u64"},{"name":"back","docs":["What this call gave back to the player of what they paid: the worth of the draws the roll","didn't make (`Order::back`)."],"type":"u64"}]}},{"name":"OrderStatus","type":{"kind":"enum","variants":[{"name":"Waiting"},{"name":"Pending"},{"name":"Rolled"},{"name":"Failed"},{"name":"Asked"}]}},{"name":"Output","docs":["One thing a recipe gives."],"type":{"kind":"enum","variants":[{"name":"Prize","fields":[{"defined":{"name":"Prize"}}]},{"name":"RollOn","fields":[{"name":"box_id","type":"u32"},{"name":"place","type":"u8"}]}]}},{"name":"Paid","docs":["A player (or a sponsor, or the project's own keys) paid, and the payment was split at once."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"player","type":"pubkey"},{"name":"mint","type":"pubkey"},{"name":"amount","docs":["What the player sent, the amount they signed. A mint with a transfer fee takes its fee","out of each part on the way, so each place gets its part less that fee."],"type":"u64"},{"name":"shares","docs":["The shares that were sent, each `amount * bps / 10,000`, rounded down. One nobody could take","(`rail.rs`) is left out, and its part is in `treasury_remainder`."],"type":{"vec":{"defined":{"name":"Share"}}}},{"name":"treasury_remainder","docs":["Gross remainder routed to the treasury, excluding explicit shares and before transfer fees."],"type":"u64"},{"name":"reference","type":{"array":["u8",32]}}]}},{"name":"PaidNft","docs":["A player (or the project's own keys) paid with an NFT: burned, or given to `to`."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"player","type":"pubkey"},{"name":"asset","type":"pubkey"},{"name":"to","docs":["The wallet it went to; none when it was burned."],"type":{"option":"pubkey"}},{"name":"reference","type":{"array":["u8",32]}}]}},{"name":"Part","docs":["Which part a pull settles."],"type":{"kind":"enum","variants":[{"name":"Own"},{"name":"Pot","fields":["u16"]},{"name":"Prize","fields":["u16"]},{"name":"Common","fields":["u16"]}]}},{"name":"Payload","docs":["What a table's rows carry."],"type":{"kind":"enum","variants":[{"name":"Number"},{"name":"Label"},{"name":"Nft"}]}},{"name":"PaysFrom","docs":["Where a round's places are paid from."],"type":{"kind":"enum","variants":[{"name":"Round","fields":[{"name":"rest","type":{"defined":{"name":"To"}}}]},{"name":"Pot","fields":["u8"]}]}},{"name":"PerWallet","docs":["What one wallet may do with a record. 0 switches a limit off."],"type":{"kind":"struct","fields":[{"name":"total","docs":["In all, for good."],"type":"u32"},{"name":"per_window","docs":["In each window."],"type":"u32"},{"name":"window","docs":["The window, in seconds, counted from the unix epoch: 86,400 is a UTC day."],"type":"u32"}]}},{"name":"Place","docs":["A run of places alike: `times` places, each taking `bps` (basis points) of what the round pays","from (`PaysFrom`: its own money, or a pot with it) and a prize","for its winner (`prize.rs`): a raffled NFT, a collectible, tokens, a roll of a box."],"type":{"kind":"struct","fields":[{"name":"bps","type":"u16"},{"name":"prize","type":{"option":{"defined":{"name":"Prize"}}}},{"name":"when_short","docs":["For tokens from a pool: what its places get when the pool holds less than they win","(`WhenShort`). Every run of one pool says the same."],"type":{"defined":{"name":"WhenShort"}}},{"name":"times","type":"u32"}]}},{"name":"Platform","docs":["One for the whole program, at `[\"platform\"]`: our fees. Only `init_platform` creates one, at","that address, so an account this program owns with this tag is the platform: instructions","check the owner and the tag (Anchor's `Account`) and do not derive the address again.","","The fees themselves collect in each project's fee box (`FEES_SEED`) until the admin takes them","out, so this account is only ever read by a project's transactions and never holds them up."],"type":{"kind":"struct","fields":[{"name":"admin","type":"pubkey"},{"name":"fees","docs":["The fees in force."],"type":{"defined":{"name":"Fees"}}},{"name":"pending","docs":["A raise waiting out its notice period. The fees in force while none waits."],"type":{"defined":{"name":"Fees"}}},{"name":"pending_at","docs":["Unix time the pending fees apply from. 0 means none waits."],"type":"i64"}]}},{"name":"Prize","docs":["What a route gives its winner."],"type":{"kind":"enum","variants":[{"name":"Tokens","fields":[{"name":"from","type":{"defined":{"name":"TokenSource"}}},{"name":"amount","type":"u64"}]},{"name":"Item","fields":["u32"]},{"name":"Nft","fields":[{"name":"stash","type":"u32"},{"name":"nft","type":"pubkey"}]},{"name":"Roll","fields":["u32"]},{"name":"Stash","fields":["u32"]},{"name":"Compressed","fields":[{"name":"item","type":"u32"},{"name":"tree","type":"pubkey"}]},{"name":"Held","fields":["pubkey"]},{"name":"Raffled"}]}},{"name":"PrizeForgone","docs":["A prize an order's settle did not give (`OrderSettled` lists it, an `OrderPartSettled` spans it): the one at","`at` of the order's `won`. Its player, settling their own order, gave it up (tokens or a","collectible they can't receive, a stash's NFT put back), or a compressed one's collection can't","hold it (its serial voided)."],"type":{"kind":"struct","fields":[{"name":"order","type":"pubkey"},{"name":"requested_slot","type":"u64"},{"name":"at","type":"u32"},{"name":"won","type":{"defined":{"name":"Won"}}}]}},{"name":"PrizeGiven","docs":["A route gave its winner a prize (`prize.rs`): the collectible made or the NFT handed over (the","default address for none), a collectible's serial, the tokens, or the order a roll is made in."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"winner","type":"pubkey"},{"name":"prize","type":{"defined":{"name":"Prize"}}},{"name":"asset","type":"pubkey"},{"name":"serial","type":"u32"},{"name":"amount","type":"u64"},{"name":"order","type":"pubkey"}]}},{"name":"ProfileWritten","docs":["Numbers were written on a wallet's profile (`sheet.rs`): by the project's authority","(`collectible`), a farm's growth, or a recipe the player crafted."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"wallet","type":"pubkey"},{"name":"lines","docs":["What it wrote, key by key: an empty value took the key off."],"type":{"vec":{"defined":{"name":"Attribute"}}}}]}},{"name":"Project","docs":["One per project, at `[\"project\", creator, id]`: any wallet makes as many as it likes, each with","a number of its own. It is also the signer the program uses for the project: it owns the pools","and the vaults, mints the tokens it is the mint authority of and the collectibles of its items.","Only `create_project` creates one, at that address, so an account this program owns with this","tag is a project at its own address: instructions check the owner and the tag (Anchor's","`Account`) and do not derive the address again. Signing still uses the stored seeds and bump.","","A project need not have a token or a collection: each mechanic names the mint it takes or","pays, and each item the collection it is minted into."],"type":{"kind":"struct","fields":[{"name":"owner","docs":["Signs the settings, the catalog and every mechanic. Can hand the project to another key.","A project has two keys, this one and `authority`, and both are trusted."],"type":"pubkey"},{"name":"authority","docs":["Signs what leaves a pool, what gets made and what only the project knows (`move_tokens`,","`collectible`, `roll`, `release`, `open_contest`, `decide`, `open_auction`). A wallet, a","multisig, a server's key or another program's address. The program checks this signature","and nothing else. It pays the flat fee in SOL, so it must be a plain address that holds some."],"type":"pubkey"},{"name":"treasury","docs":["The wallet that receives whatever a split leaves over, in its associated token account","of each mint (`rail.rs`). Never the project itself."],"type":"pubkey"},{"name":"creator","docs":["Who created it, and the number they gave it: its address, which a new owner keeps."],"type":"pubkey"},{"name":"id","type":{"array":["u8",8]}},{"name":"bump","type":"u8"},{"name":"fees_bump","docs":["The bump of its fee box (`[\"fees\", project]`), so every fee can be checked to land there","(`Project::fee_box`) without searching for it."],"type":"u8"},{"name":"paused","docs":["The owner's switch on money in (`open_for_money`)."],"type":"bool"},{"name":"suspended","docs":["The platform's switch on money in (`open_for_money`)."],"type":"bool"},{"name":"incarnations","docs":["Record incarnations allocated by this project. Never reset or reused."],"type":"u64"},{"name":"collections","docs":["The Core collections the project has authority over: its items","are minted into them, an NFT of one is read and written as the project's own (`Of::Item`,","what the project writes goes on the NFT itself), and every other NFT is read with its Sheet.","The owner names them (`update_project`); Core still checks, at each write, that the project","may write there."],"type":{"vec":"pubkey"}}]}},{"name":"ProjectSuspended","type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"suspended","type":"bool"}]}},{"name":"ProjectUpdate","docs":["What to change. `None` leaves a setting as it is. A new authority or treasury comes with the","account at its key (`UpdateProject`); a new owner is an account of the update, and signs."],"type":{"kind":"struct","fields":[{"name":"authority","type":{"option":"pubkey"}},{"name":"treasury","type":{"option":"pubkey"}},{"name":"paused","type":{"option":"bool"}},{"name":"collections","docs":["The collections it has authority over from now on, in place of the ones it has. Each new one","is passed after the instruction's accounts (`take_collections`)."],"type":{"option":{"vec":"pubkey"}}}]}},{"name":"ProjectUpdated","docs":["The owner changed the project's settings (`update_project`): these are its keys and its pause","now."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"owner","type":"pubkey"},{"name":"authority","type":"pubkey"},{"name":"treasury","type":"pubkey"},{"name":"paused","type":"bool"}]}},{"name":"Raise","docs":["A number a recipe moves on a collectible handed in and kept (`Shift::raise`): `by` more under","`key`, up to `most` (a collectible already at `most` is refused, `MaxedOut`: nobody pays for","nothing), or with `by` below 0 that much less, never below 0 (a merge that costs a level). With","`from_now` the number is a time: fuel bought for a day more from now when the tank is dry, up to","`most` seconds past now; a day off a lock."],"type":{"kind":"struct","fields":[{"name":"place","docs":["Which collectible: the first handed in is 0, in the recipe's order. One that is kept; or the","player's profile (`PROFILE_PLACE`)."],"type":"u8"},{"name":"shift","type":{"defined":{"name":"Shift"}}}]}},{"name":"Rate","docs":["A fixed rate a farm pays at, instead of sharing whatever lands in its rewards vault."],"type":{"kind":"struct","fields":[{"name":"per_day","docs":["Base units of the reward a day, for each `NFT_UNIT` of weight (one collectible at ×1, or","1,000,000 base units of a token staked at ×1); with `shared`, for the whole farm."],"type":"u64"},{"name":"mints","docs":["Minted when a seat is paid, while the project is the rewards' mint authority, or paid from what","is free in the rewards vault while it lasts: what it can't cover, or the mint has no room for","(none while the project is not its authority), is not owed later."],"type":"bool"},{"name":"shared","docs":["`per_day` is the whole farm's, shared by weight while anything weighs: an emission budget."],"type":"bool"},{"name":"halve_every","docs":["Seconds from the farm's opening after which the rate halves, again and again (0: never)."],"type":"u32"}]}},{"name":"Recipe","docs":["At `[\"recipe\", project, id]`."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"active","type":"bool"},{"name":"version","docs":["Counts its edits. A player signs the version they saw, and crafts no other. A recipe is","never closed, so no version comes back at its address."],"type":"u32"},{"name":"inputs","type":{"vec":{"defined":{"name":"Input"}}}},{"name":"outputs","type":{"vec":{"defined":{"name":"Output"}}}},{"name":"needs","type":{"vec":{"defined":{"name":"Need"}}}},{"name":"keeps","type":{"vec":{"defined":{"name":"Keep"}}}},{"name":"raises","type":{"vec":{"defined":{"name":"Raise"}}}},{"name":"window","docs":["When it can be crafted: an event's forge, a season's recipe."],"type":{"defined":{"name":"Window"}}},{"name":"per_wallet","docs":["How many times one wallet may craft it, in all and in each window (`counter.rs`)."],"type":{"defined":{"name":"PerWallet"}}}]}},{"name":"RecipeArgs","type":{"kind":"struct","fields":[{"name":"active","type":"bool"},{"name":"inputs","type":{"vec":{"defined":{"name":"Input"}}}},{"name":"outputs","type":{"vec":{"defined":{"name":"Output"}}}},{"name":"needs","type":{"vec":{"defined":{"name":"Need"}}}},{"name":"keeps","type":{"vec":{"defined":{"name":"Keep"}}}},{"name":"raises","type":{"vec":{"defined":{"name":"Raise"}}}},{"name":"window","docs":["When it can be crafted (zeros: whenever it is active)."],"type":{"defined":{"name":"Window"}}},{"name":"per_wallet","docs":["How many times one wallet may craft it (zeros: no limit)."],"type":{"defined":{"name":"PerWallet"}}}]}},{"name":"RecordClosed","docs":["The owner closed the record at `target`. Its rent went to the owner, and for a grant what its","funds held, in lamports, for a lottery what its pot held, in its mint (`funds`, 0 for any","other kind). A record written again at that address counts","from 0 again (a lottery's round, a schedule's runs, a grant's counters), so a lottery's","receipts are told apart by round only between two of these."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"target","type":"pubkey"},{"name":"kind","type":{"defined":{"name":"RecordKind"}}},{"name":"funds","type":"u64"}]}},{"name":"RecordKind","docs":["The kinds of record the owner writes with `upsert`."],"type":{"kind":"enum","variants":[{"name":"Item"},{"name":"Box"},{"name":"Schedule"},{"name":"Lottery"},{"name":"Recipe"},{"name":"Grant"},{"name":"Table"}]}},{"name":"RecordWritten","docs":["The owner wrote the record at `target`: made it (`created`), or replaced what it holds, its","gate and a box's odds with the rest."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"target","type":"pubkey"},{"name":"kind","type":{"defined":{"name":"RecordKind"}}},{"name":"created","type":"bool"}]}},{"name":"Released","docs":["A held collectible left the project for `to`: given by the authority while its hold ran, sent","home to its player by anyone once it was over, or brought home by a loan's repayment (`Repaid`)."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"asset","type":"pubkey"},{"name":"player","docs":["Who handed it in, or who it was owed to: for a hold owed to the treasury, the project's","treasury wallet at the release."],"type":"pubkey"},{"name":"to","type":"pubkey"},{"name":"by","docs":["Who sent it."],"type":"pubkey"},{"name":"reference","type":{"array":["u8",32]}}]}},{"name":"Repaid","docs":["A loan was repaid before it was due, by `by` (the borrower or anyone). `home`: its NFT went home","to the borrower in the same call (a `Released` beside it); otherwise it waits in a hold that is","over, for anyone to send home (`release`)."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"asset","type":"pubkey"},{"name":"borrower","type":"pubkey"},{"name":"lender","type":"pubkey"},{"name":"by","type":"pubkey"},{"name":"repay","type":"u64"},{"name":"home","type":"bool"}]}},{"name":"Reweighed","docs":["A seat's weight was counted again from its collectible as it is now (`refresh_seat`)."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"farm","type":"u32"},{"name":"seat","type":"pubkey"},{"name":"asset","docs":["The collectible the boost was read from, or the default address for none."],"type":"pubkey"},{"name":"boost_bps","type":"u32"},{"name":"weight","type":"u128"}]}},{"name":"Rise","docs":["A price that rises with every sale: a bonding curve, a throne that costs 10% more each time.","After a sale the price becomes `price + step + price * growth_bps / 10,000`."],"type":{"kind":"struct","fields":[{"name":"step","type":"u64"},{"name":"growth_bps","type":"u16"}]}},{"name":"RollMade","docs":["A purchase (`open_box`), or a mission's return, a recipe or a prize, made a roll (`waiting_order`:","it waits for its player or the project's keys to ask the oracle, `ask_roll`). On `subject` (the","default address for none), which the project holds until it is settled when `held`. It names no","slot: a purchase's `requested_slot` is the slot of this receipt, a waiting roll's is set when it","is asked, and its `OrderRolled` and `OrderSettled` carry that one."],"type":{"kind":"struct","fields":[{"name":"order","type":"pubkey"},{"name":"project","type":"pubkey"},{"name":"player","type":"pubkey"},{"name":"loot_box","type":"pubkey"},{"name":"subject","type":"pubkey"},{"name":"held","type":"bool"},{"name":"mint","docs":["What the order holds of what was paid for it (`paid` of `mint`, in the project's vault): a","purchase's price as it arrived, an auction's winning bid, 0 for a free roll."],"type":"pubkey"},{"name":"paid","type":"u64"},{"name":"opens","docs":["The opens it is of (`open_box`'s `count`)."],"type":"u32"}]}},{"name":"Rolled","docs":["The oracle answered a `roll`. What the number decides is the project's own rule."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"reference","docs":["The label the authority gave the request."],"type":{"array":["u8",32]}},{"name":"randomness","type":{"array":["u8",32]}}]}},{"name":"RoundClosed","docs":["A finished round that owed nothing more closed."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"incarnation","type":"u64"},{"name":"round","type":"u32"}]}},{"name":"Rule","docs":["An NFT that passes: of `of`, with `test` true of the attribute under `key`."],"type":{"kind":"struct","fields":[{"name":"of","type":{"defined":{"name":"Of"}}},{"name":"key","type":"string"},{"name":"test","type":{"defined":{"name":"Test"}}}]}},{"name":"SaleCalledOff","docs":["A sale of an NFT lot called off after its end, the lot never having moved to `bidder`, and the","auction closed: `back` of the winning bid went back to them (tokens, or how many of its NFTs: one","proven gone stays gone); the `lot` went home to its seller (`home`: moved, or a hold for them), or","was proven gone. `gone`: called off on that evidence, by anyone (`by`); otherwise by the","project's keys."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"auction","type":"pubkey"},{"name":"bidder","type":"pubkey"},{"name":"back","type":"u64"},{"name":"lot","type":"pubkey"},{"name":"home","type":"bool"},{"name":"gone","type":"bool"},{"name":"by","type":"pubkey"},{"name":"reference","type":{"array":["u8",32]}}]}},{"name":"Schedule","docs":["At `[\"schedule\", project, id]`."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"active","type":"bool"},{"name":"action","type":{"defined":{"name":"Action"}}},{"name":"every","docs":["Seconds between runs."],"type":"i64"},{"name":"next_at","docs":["Unix time of the next run."],"type":"i64"},{"name":"runs","docs":["Runs so far."],"type":"u32"},{"name":"max_runs","docs":["Stops after this many runs. 0: never stops."],"type":"u32"}]}},{"name":"ScheduleArgs","type":{"kind":"struct","fields":[{"name":"active","type":"bool"},{"name":"action","type":{"defined":{"name":"Action"}}},{"name":"every","type":"i64"},{"name":"next_at","type":"i64"},{"name":"max_runs","type":"u32"}]}},{"name":"ScheduleRan","docs":["A schedule ran runs `from` to `run`, counted from 1: together they minted, burned or moved","`amount`. A sealed schedule's run after its last (`from` and `run` the last) pays what arrived since."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"from","type":"u32"},{"name":"run","type":"u32"},{"name":"action","type":{"defined":{"name":"Action"}}},{"name":"amount","type":"u64"}]}},{"name":"Seat","docs":["At `[\"seat\", farm, player]` for tokens, `[\"seat\", farm, asset]` for a collectible. Its player","pays its rent and gets it back when it closes."],"type":{"kind":"struct","fields":[{"name":"player","type":"pubkey"},{"name":"bump","type":"u8"},{"name":"asset","docs":["The collectible staked, or a token seat's booster; the default address for none."],"type":"pubkey"},{"name":"amount","docs":["Tokens staked; 1 for a collectible."],"type":"u64"},{"name":"tier","type":"u8"},{"name":"since","docs":["Unix time its lock started: its last stake, or its booster put on."],"type":"i64"},{"name":"boost_bps","type":"u32"},{"name":"weight","type":"u128"},{"name":"paid_per_weight","docs":["`reward_per_weight` when it was last credited."],"type":"u128"},{"name":"owed","docs":["Credited and not yet paid."],"type":"u64"},{"name":"reward_remainder","docs":["Fraction of a reward token already earned, times `PRECISION`; always below `PRECISION`."],"type":"u64"},{"name":"grown_at","docs":["When its collectible last grew (`Growth`), and how long it has grown since it came in, in","seconds at ×1, times `TIMES_ONE` (its tier and boost scale it): each growth's points are","what that is worth at its rate, so no part of a point is lost."],"type":"i64"},{"name":"grown","type":"u128"},{"name":"earns_until","docs":["Until when it earns and grows (`i64::MAX`: no end): the sooner of its tier's term","(`Tier::earns_for` after `since`) and its fuel as its collectible said when last read","(staked, refreshed). A seat with weight and an end is on the farm's record of ends."],"type":"i64"},{"name":"dry","docs":["Its fuel ran out before its tier's lock and term did, at some point since it came in: a","mission that ran dry takes no prize, even refuelled before it lands."],"type":"bool"},{"name":"locked","docs":["What it held when its lock last started (`since`): a stake gate counts no more than this","(`Gate::Staked`), so what a compound adds counts once a stake starts the lock again."],"type":"u64"}]}},{"name":"Seated","docs":["A player took a seat in a farm, or added to theirs: `amount` more tokens, or a collectible","(`asset`) staked on its own seat (`amount` 1) or put on their token seat as its booster","(`amount` 0). `weight` is the seat's share now."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"farm","type":"u32"},{"name":"player","type":"pubkey"},{"name":"seat","type":"pubkey"},{"name":"asset","docs":["The collectible staked or put on, or the default address for tokens."],"type":"pubkey"},{"name":"amount","type":"u64"},{"name":"tier","type":"u8"},{"name":"boost_bps","type":"u32"},{"name":"weight","type":"u128"}]}},{"name":"Share","docs":["A part of a payment, in basis points of the whole (10,000 = 100%).","","A person's part (a wallet's, a holder's, the treasury's) goes to their associated token","account of the payment's mint, opened when it is not there (`rail.rs`). Only a part nobody","can take joins what the split leaves (the treasury's part of a sale, a contest's prize, a","lottery's pot): a collectible nobody holds, or an account the owner named that is gone."],"type":{"kind":"struct","fields":[{"name":"to","type":{"defined":{"name":"To"}}},{"name":"bps","type":"u16"}]}},{"name":"Shift","docs":["A number a roll moves on the NFT it was on: `by` more (or less) under `key`, never below 0, and","with `most`, never above it (0: no cap). With `from_now` the number is a time (Unix seconds:","a lock's end, fuel that lasts until then): moved from now when it is already past, and never","more than `most` seconds past now (24 hours in jail; a tank of three days)."],"type":{"kind":"struct","fields":[{"name":"key","type":"string"},{"name":"by","type":"i32"},{"name":"most","type":"u32"},{"name":"from_now","type":"bool"}]}},{"name":"Sink","docs":["Where a fee a farm takes goes: burned, into one of the project's pools, or into the farm's own","rewards vault, free there for its seats like anything that lands (a farm whose staked token is","its rewards')."],"type":{"kind":"enum","variants":[{"name":"Burn"},{"name":"Pool","fields":["u16"]},{"name":"Rewards"}]}},{"name":"Slot","docs":["A slot of a box's open (`LootBox::slots`): `count` draws among the entries `only` names (every entry","when it names none), and with `distinct`, no entry twice in it. `share`: what its draws are worth,","in basis points of an open's price. A box whose slots name entries gives each its share, 10,000","together (its slots draw different things, so only the owner knows what each is worth); a box","whose slots draw among every entry gives none, and each draw is worth the same."],"type":{"kind":"struct","fields":[{"name":"count","type":"u32"},{"name":"only","type":{"vec":"u16"}},{"name":"distinct","type":"bool"},{"name":"share","type":"u16"}]}},{"name":"SoldToOffer","docs":["A holder sold an NFT into a bid: the NFT to the maker, the price through the shares, `paid` of","it to the seller (before transfer fees)."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"offer","type":"pubkey"},{"name":"maker","type":"pubkey"},{"name":"seller","type":"pubkey"},{"name":"asset","type":"pubkey"},{"name":"price","type":"u64"},{"name":"paid","type":"u64"}]}},{"name":"Spend","docs":["Where an NFT paid goes."],"type":{"kind":"enum","variants":[{"name":"Burn"},{"name":"Give","fields":["pubkey"]},{"name":"Stash","fields":["u32"]}]}},{"name":"StashOf","docs":["Which stash a `stash` call puts into or takes out of: one of the project's, by its id, or the own","stash of the project's lottery with this id."],"type":{"kind":"enum","variants":[{"name":"Project","fields":["u32"]},{"name":"Lottery","fields":["u32"]}]}},{"name":"Stashed","docs":["An NFT went into one of the project's stashes (`to` none), or out of it to `to`, by the project's","owner or authority (`by`). One a roll gives away leaves with its order (`OrderRolled`)."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"asset","type":"pubkey"},{"name":"by","type":"pubkey"},{"name":"to","type":{"option":"pubkey"}},{"name":"lottery","docs":["The lottery whose own stash it was (`StashOf::Lottery`); `None` for one of the project's."],"type":{"option":"pubkey"}},{"name":"weight","docs":["Its weight in the stash, put in; 0 taken out."],"type":"u32"}]}},{"name":"TableArgs","docs":["What `upsert` writes on a table: rows added after the ones it has, and whether it is sealed now."],"type":{"kind":"struct","fields":[{"name":"payload","type":{"defined":{"name":"Payload"}}},{"name":"rows","type":{"vec":{"defined":{"name":"TableRow"}}}},{"name":"seal","type":"bool"}]}},{"name":"TableRow","docs":["One row the owner writes: its weight, its stock (`NO_LIMIT` for none) and, for a table of labels,","its label."],"type":{"kind":"struct","fields":[{"name":"weight","type":"u32"},{"name":"left","type":"u32"},{"name":"label","type":"string"}]}},{"name":"Test","docs":["What a rule asks of the attribute under its key."],"type":{"kind":"enum","variants":[{"name":"Any"},{"name":"AtLeast","fields":["u32"]},{"name":"OneOf","fields":[{"name":"texts","type":{"vec":"string"}}]},{"name":"Ahead"},{"name":"Passed"},{"name":"AtMost","fields":["u32"]},{"name":"Within","fields":["u32"]},{"name":"Older","fields":["u32"]}]}},{"name":"TicketsBought","docs":["A player bought lottery tickets `first_ticket .. first_ticket + count`."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"incarnation","type":"u64"},{"name":"round","type":"u32"},{"name":"player","type":"pubkey"},{"name":"first_ticket","type":"u64"},{"name":"count","type":"u32"},{"name":"weight","docs":["What they weigh in the draw: `count`, or in a weighted round (`time_weighted`) `count` times","the seconds from the purchase to the close of sales."],"type":"u128"},{"name":"entry","docs":["The entry these tickets are in the round's record (`LotteryRound`)."],"type":"u32"},{"name":"received","docs":["Payment actually received by escrow after any external transfer fee."],"type":"u64"},{"name":"asset","docs":["The NFT a ticket paid for with an NFT was bought with (the default address for tokens)."],"type":"pubkey"}]}},{"name":"Tier","docs":["A lock tier: how long a seat stays in, and how much more it counts for it (10,000 is ×1)."],"type":{"kind":"struct","fields":[{"name":"lock","type":"u32"},{"name":"bps","type":"u32"},{"name":"prize","docs":["A mission's prize: what a collectible that leaves after this tier's lock has run takes","with it (`prize.rs`), a fixed amount of tokens grown by its boosts; a roll of a box (a","chest) is made at the unstake's nonce plus 1."],"type":{"option":{"defined":{"name":"Prize"}}}},{"name":"roll","docs":["A mission's result: the box a collectible that leaves after this tier's lock is rolled on","(a box with a `subject`: its fates raise or lower its numbers, or burn it or give it away),","with odds its stats raise. Growth stops at the lock's end, so staying on never puts the","roll off for gain."],"type":{"option":"u32"}},{"name":"exit_bps","docs":["A token seat may leave before this tier's lock has run by leaving this share of what it takes","out (basis points, rounded up) where the farm's `exit_to` says. 0: it can't (`StillLocked`).","A farm of tokens only: a collectible leaves early by its lock on the NFT (`lock_key`)."],"type":"u16"},{"name":"earns_for","docs":["Seconds a seat earns and grows after its lock started (`Seat::since`); 0: no end. Its prize","is still given once its lock has run."],"type":"u32"}]}},{"name":"To","docs":["Where a share of a payment goes."],"type":{"kind":"enum","variants":[{"name":"Burn"},{"name":"Pool","fields":["u16"]},{"name":"Account","fields":["pubkey"]},{"name":"Holder","fields":["pubkey"]},{"name":"Wallet","fields":["pubkey"]},{"name":"Treasury"},{"name":"Chosen","fields":[{"name":"item","type":{"option":"u32"}}]}]}},{"name":"TokenSource","docs":["Where the tokens the project moves come from."],"type":{"kind":"enum","variants":[{"name":"Pool","fields":["u16"]},{"name":"Mint","fields":["pubkey"]},{"name":"Vest","fields":["pubkey"]},{"name":"Farm","fields":["u32"]}]}},{"name":"Trait","docs":["A trait a fresh item's units draw: written under `key`, from `from`."],"type":{"kind":"struct","fields":[{"name":"key","type":"string"},{"name":"from","type":{"defined":{"name":"Values"}}}]}},{"name":"TraitsProven","docs":["Traits were proven and written into an NFT's Sheet: the ones it did not have yet."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"key","type":"pubkey"},{"name":"nft","type":"pubkey"},{"name":"attributes","type":{"vec":{"defined":{"name":"Attribute"}}}}]}},{"name":"TraitsSet","docs":["The project's owner or authority set the root of the traits it vouches for."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"key","type":"pubkey"},{"name":"root","type":{"array":["u8",32]}}]}},{"name":"TreeOpened","docs":["The project's keys made a Bubblegum v2 tree the project alone mints compressed prizes into."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"tree","type":"pubkey"},{"name":"max_depth","type":"u32"},{"name":"max_buffer_size","type":"u32"}]}},{"name":"Unlisted","docs":["A maker took a listed NFT home, and the listing closed."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"listing","type":"pubkey"},{"name":"maker","type":"pubkey"},{"name":"asset","type":"pubkey"}]}},{"name":"Unseated","docs":["A player took `amount` tokens, or a collectible (`asset`), out of a farm and was paid","`rewards`: their staked collectible (`amount` 1), or their token seat's booster (`amount` 0)."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"farm","type":"u32"},{"name":"player","type":"pubkey"},{"name":"seat","type":"pubkey"},{"name":"asset","type":"pubkey"},{"name":"amount","type":"u64"},{"name":"rewards","type":"u64"},{"name":"staked","docs":["What stays in the seat: tokens, or 0 once it is closed."],"type":"u64"},{"name":"fee","docs":["What leaving early left behind (`Tier::exit_bps`)."],"type":"u64"},{"name":"prize_missed","docs":["The mission's prize was won but could not be given (a pool short of it, an item sold out),","and the NFT went home without it: no `PrizeGiven`, and nothing keeps it owed."],"type":"bool"}]}},{"name":"Values","docs":["Where a trait's value comes from."],"type":{"kind":"enum","variants":[{"name":"Table","fields":["u32"]},{"name":"Range","fields":[{"name":"min","type":"u64"},{"name":"max","type":"u64"}]}]}},{"name":"Verdict","type":{"kind":"enum","variants":[{"name":"Open"},{"name":"Won"},{"name":"Off"}]}},{"name":"WhenOut","docs":["What a box does once an entry it lists can't be given (an item sold out, a pool short of its","amount, a stash's NFT gone): the project chooses, and players see which."],"type":{"kind":"enum","variants":[{"name":"StopSales"},{"name":"DrawLeft"},{"name":"GiveNothing"}]}},{"name":"WhenShort","docs":["What a pool's places get when the pool holds less, as the round's draw is first asked, than","every place of it with a winner wins: written down then, and paid from what was written. A","minted prize is never short."],"type":{"kind":"enum","variants":[{"name":"InOrder"},{"name":"InProportion"},{"name":"Nothing"}]}},{"name":"Window","docs":["When something can be done: from `opens_at`, and before `closes_at`. 0 leaves that side open."],"type":{"kind":"struct","fields":[{"name":"opens_at","type":"i64"},{"name":"closes_at","type":"i64"}]}},{"name":"Won","docs":["What a roll set aside for its player (`Order::won`), for `settle` to hand over: nothing that","happens between the roll and the settle (another winner, a move of the pool's) can take it."],"type":{"kind":"enum","variants":[{"name":"Item","fields":[{"name":"item","type":"u32"},{"name":"serial","type":"u32"},{"name":"drawn","type":{"option":"u32"}}]},{"name":"Tokens","fields":[{"name":"mint","type":"pubkey"},{"name":"amount","type":"u64"}]},{"name":"Nft","fields":[{"name":"stash","type":"u32"},{"name":"nft","type":"pubkey"},{"name":"weight","type":"u32"}]},{"name":"Compressed","fields":[{"name":"item","type":"u32"},{"name":"serial","type":"u32"},{"name":"drawn","type":{"option":"u32"}}]}]}}],"constants":[{"name":"ASSET_SEED","docs":["`[\"asset\", item, serial]`: every collectible the program mints of its own accord (an order's,","a prize's, an auction's lot). A serial is minted once at most, so the address is always new","(`prize::mint_item`)."],"type":"bytes","value":"[97, 115, 115, 101, 116]"},{"name":"AUCTION_SEED","docs":["`[\"auction\", project, seller, id]`: an auction (`instructions/auction.rs`). Its bids wait in the project's","vault for its mint, with open orders' payments."],"type":"bytes","value":"[97, 117, 99, 116, 105, 111, 110]"},{"name":"BOX_SEED","docs":["`[\"box\", project, box id]`"],"type":"bytes","value":"[98, 111, 120]"},{"name":"CLAIMS_SEED","docs":["`[\"claims\", grant, incarnation, shard]` and `[\"rounds\", grant, incarnation, shard]`: a grant's","limit records and the rounds it paid, each in `2^shard_bits` lists (`instructions/grant.rs`)."],"type":"bytes","value":"[99, 108, 97, 105, 109, 115]"},{"name":"CLAIM_GRACE_SECONDS","docs":["How long after a contest's decision a winner alone picks its share of the losers' NFTs and alone","may go without a prize that can't be given. After it, the project's keys may do both, so a winner","doesn't hold up the rest of the contest for as long as they look after it."],"type":"i64","value":"2592000"},{"name":"CONTEST_SEED","docs":["`[\"contest\", project, id]`, its pot at `[\"pot\", contest]`, and its entries, a list with one","record a player (a wallet backs one side, `OtherSide`), at `[\"entries\", contest, incarnation,","page]` (page 0)."],"type":"bytes","value":"[99, 111, 110, 116, 101, 115, 116]"},{"name":"COUNTS_SEED","docs":["`[\"counts\", project, wallet]`: how many times a wallet bought from each box, crafted each recipe","and held tickets in each lottery's round that limits it (`instructions/counter.rs`)."],"type":"bytes","value":"[99, 111, 117, 110, 116, 115]"},{"name":"DAY_SECONDS","docs":["A grant's daily limit counts claims in days of this many seconds, from the unix epoch."],"type":"i64","value":"86400"},{"name":"ENDS_SEED","type":"bytes","value":"[101, 110, 100, 115]"},{"name":"ENTRIES_SEED","type":"bytes","value":"[101, 110, 116, 114, 105, 101, 115]"},{"name":"FARM_SEED","docs":["A farm (`instructions/farm.rs`), and a seat in it: `[\"seat\", farm, player]` for tokens,","`[\"seat\", farm, asset]` for a collectible."],"type":"bytes","value":"[102, 97, 114, 109]"},{"name":"FEES_SEED","docs":["`[\"fees\", project]`: the project's fee box, an account of this program that holds nothing but","SOL. The platform's fees on that project's transactions wait there until it collects them, so","one project's traffic never queues behind another's on a shared account."],"type":"bytes","value":"[102, 101, 101, 115]"},{"name":"GRANT_SEED","docs":["`[\"grant\", project, id]`: a reward the owner lets vouchers (or an approved list) hand out, within","its limits (`instructions/grant.rs`)."],"type":"bytes","value":"[103, 114, 97, 110, 116]"},{"name":"HOLD_SEED","docs":["`[\"hold\", asset, free_at]`: an NFT the project is holding for a player, until then."],"type":"bytes","value":"[104, 111, 108, 100]"},{"name":"ITEM_SEED","docs":["`[\"item\", project, item id]`"],"type":"bytes","value":"[105, 116, 101, 109]"},{"name":"LEAF_SEED","docs":["`[\"leaf\", asset]`: a compressed NFT as last proven (`bubblegum.rs`)."],"type":"bytes","value":"[108, 101, 97, 102]"},{"name":"LISTING_SEED","docs":["`[\"listing\", project, asset]`: an NFT up for sale or for rent (`instructions/listing.rs`), which","the project holds while it is listed. One listing a project an NFT, found by the NFT's address."],"type":"bytes","value":"[108, 105, 115, 116, 105, 110, 103]"},{"name":"LOTTERY_SEED","type":"bytes","value":"[108, 111, 116, 116, 101, 114, 121]"},{"name":"LOTTERY_STASH_SEED","docs":["`[\"lottery_stash\", lottery]`: a lottery's own stash, the NFTs its places promise (`Prize::Held`)."],"type":"bytes","value":"[108, 111, 116, 116, 101, 114, 121, 95, 115, 116, 97, 115, 104]"},{"name":"LOTTERY_TIMEOUT_SECONDS","docs":["A lottery draw the oracle has not answered this long after it was first asked for is cancelled by","the next ask (`draw_lottery`): the round is refunded."],"type":"i64","value":"604800"},{"name":"MAX_FEE_LAMPORTS","docs":["The most either flat fee can ever be: 0.01 SOL."],"type":"u64","value":"10000000"},{"name":"MAX_POTS","docs":["The most pots one lottery keeps (`PaysFrom::Pot`), each at `[\"pot\", lottery, id]`, `id` below this."],"type":"u8","value":"16"},{"name":"MAX_RUN_PLACES","docs":["The most places one run of a lottery's places holds when they are given one by one (an NFT, a","compressed NFT, a raffled one): a pull walks the run from its first place, and so fits."],"type":"u32","value":"4096"},{"name":"NOTICE_SECONDS","docs":["A fee raise waits this long before it applies (7 days). A cut applies at once."],"type":"i64","value":"604800"},{"name":"OFFER_SEED","docs":["`[\"offer\", project, maker, id]`: an offer (`instructions/offer.rs`). Its money waits in the","project's vault for its mint, with open orders' payments and auctions' bids."],"type":"bytes","value":"[111, 102, 102, 101, 114]"},{"name":"ORDER_SEED","docs":["`[\"order\", project, player, nonce]`"],"type":"bytes","value":"[111, 114, 100, 101, 114]"},{"name":"PLATFORM_SEED","type":"bytes","value":"[112, 108, 97, 116, 102, 111, 114, 109]"},{"name":"POOL_SEED","docs":["`[\"pool\", project, index]`: a token account the project owns."],"type":"bytes","value":"[112, 111, 111, 108]"},{"name":"POT_SEED","type":"bytes","value":"[112, 111, 116]"},{"name":"PRIZE_SEED","docs":["`[\"prize\", contest]`: a contest's prize split by stake, set aside when it is decided","(`instructions/contest.rs`)."],"type":"bytes","value":"[112, 114, 105, 122, 101]"},{"name":"PROFILE_SEED","docs":["`[\"profile\", project, wallet]`: what the project writes about a wallet (`sheet.rs`)."],"type":"bytes","value":"[112, 114, 111, 102, 105, 108, 101]"},{"name":"PROJECT_SEED","docs":["`[\"project\", creator, id]`: a project (`state::Project`)."],"type":"bytes","value":"[112, 114, 111, 106, 101, 99, 116]"},{"name":"RECIPE_SEED","type":"bytes","value":"[114, 101, 99, 105, 112, 101]"},{"name":"REWARDS_SEED","type":"bytes","value":"[114, 101, 119, 97, 114, 100, 115]"},{"name":"ROUNDS_SEED","type":"bytes","value":"[114, 111, 117, 110, 100, 115]"},{"name":"ROUND_SEED","docs":["`[\"round\", lottery, incarnation, round]`: one round of a lottery (`LotteryRound`), its token","accounts at `[\"round-tokens\", round, mint]`."],"type":"bytes","value":"[114, 111, 117, 110, 100]"},{"name":"ROUND_TOKENS_SEED","type":"bytes","value":"[114, 111, 117, 110, 100, 45, 116, 111, 107, 101, 110, 115]"},{"name":"SCHEDULE_SEED","docs":["`[\"schedule\", project, id]`, `[\"lottery\", project, id]`, `[\"recipe\", project, id]`, `[\"farm\", project,","id]`: the mechanics a project runs without its authority."],"type":"bytes","value":"[115, 99, 104, 101, 100, 117, 108, 101]"},{"name":"SEAT_SEED","type":"bytes","value":"[115, 101, 97, 116]"},{"name":"SHEET_SEED","docs":["`[\"sheet\", project, nft]`: what the project writes about an NFT it has no authority over (`sheet.rs`)."],"type":"bytes","value":"[115, 104, 101, 101, 116]"},{"name":"STAKED_SEED","docs":["`[\"staked\", farm]` and `[\"rewards\", farm]`: the two vaults of a farm."],"type":"bytes","value":"[115, 116, 97, 107, 101, 100]"},{"name":"STALE_SECONDS","docs":["A box still waiting for its roll this long after it was asked for can be refunded."],"type":"i64","value":"600"},{"name":"STASH_SEED","docs":["`[\"stash\", project, id]`: NFTs the project holds to give away as prizes (`instructions/stash.rs`)."],"type":"bytes","value":"[115, 116, 97, 115, 104]"},{"name":"TABLE_SEED","docs":["`[\"table\", project, id]`: rows drawn by weight (`table.rs`)."],"type":"bytes","value":"[116, 97, 98, 108, 101]"},{"name":"TRAITS_SEED","docs":["`[\"traits\", project, key]`: the root of the traits the project vouches for (`instructions/nft.rs`)."],"type":"bytes","value":"[116, 114, 97, 105, 116, 115]"},{"name":"VEST_SEED","docs":["`[\"vest\", schedule]`: a sealed schedule's own vault (`instructions/schedule.rs`)."],"type":"bytes","value":"[118, 101, 115, 116]"}]};
|