@xgamesfun/solana 0.0.0-stage → 0.20.1
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/DISCLAIMER.md +41 -0
- package/LICENSE +202 -0
- package/NOTICE +13 -0
- package/README.md +172 -2
- package/bin/xsolana.mjs +189 -0
- package/examples/artwork-auction.json +51 -0
- package/examples/blind-forge.json +128 -0
- package/examples/coin-flip-arena.json +108 -0
- package/examples/duel-arena.json +137 -0
- package/examples/elements-set.json +281 -0
- package/examples/event-badges.json +67 -0
- package/examples/expedition-guild.json +161 -0
- package/examples/fair-presale.json +48 -0
- package/examples/falling-drop.json +90 -0
- package/examples/guild-missions.json +144 -0
- package/examples/halving-seasons.json +112 -0
- package/examples/hero-trials.json +96 -0
- package/examples/ideas.json +789 -0
- package/examples/level-ladder.json +65 -0
- package/examples/merge-2048.json +128 -0
- package/examples/nft-raffle.json +33 -0
- package/examples/paper-hands-farm.json +56 -0
- package/examples/partner-vault.json +115 -0
- package/examples/sacrifice-raffle.json +118 -0
- package/examples/scorched-treasury.json +84 -0
- package/examples/shelter-fair.json +164 -0
- package/examples/spark-pity.json +153 -0
- package/examples/stakers-draw.json +125 -0
- package/examples/star-fleet.json +157 -0
- package/examples/starforce.json +116 -0
- package/examples/stud-farm.json +134 -0
- package/examples/team-vesting.json +70 -0
- package/examples/trade-in-shop.json +168 -0
- package/js/approve/details.mjs +262 -0
- package/js/approve/ed25519.mjs +36 -0
- package/js/approve/live-check.mjs +144 -0
- package/js/approve/page.html +86 -0
- package/js/approve/page.js +203 -0
- package/js/approve/server.mjs +711 -0
- package/js/chain/base58.js +73 -0
- package/js/chain/borsh.js +261 -0
- package/js/chain/bytes.js +141 -0
- package/js/chain/core.js +169 -0
- package/js/chain/curve.js +52 -0
- package/js/chain/lookup.js +273 -0
- package/js/chain/mint.js +96 -0
- package/js/chain/pda.js +66 -0
- package/js/chain/programs.js +102 -0
- package/js/chain/rpc.js +217 -0
- package/js/chain/sha256.js +68 -0
- package/js/chain/token.js +85 -0
- package/js/chain/token2022.js +247 -0
- package/js/chain/tx.js +224 -0
- package/js/client/accounts.js +347 -0
- package/js/client/compressed.js +46 -0
- package/js/client/grant.js +240 -0
- package/js/client/idl/loot.js +2 -0
- package/js/client/idl/loot.json +17064 -0
- package/js/client/index.js +9 -0
- package/js/client/ix.js +2156 -0
- package/js/client/pda.js +110 -0
- package/js/client/policy.js +48 -0
- package/js/client/sizes.js +54 -0
- package/js/client/traits.js +44 -0
- package/js/connect/connect.mjs +182 -0
- package/js/economy/check.mjs +1991 -0
- package/js/economy/cost.mjs +170 -0
- package/js/economy/examples.mjs +114 -0
- package/js/economy/explain.mjs +235 -0
- package/js/economy/guide.mjs +231 -0
- package/js/economy/legal.mjs +15 -0
- package/js/economy/live.mjs +107 -0
- package/js/economy/model.mjs +583 -0
- package/js/economy/plan.mjs +887 -0
- package/js/economy/schema.json +2923 -0
- package/js/economy/secrets.mjs +60 -0
- package/js/economy/simulate.mjs +952 -0
- package/js/economy/txsize.mjs +45 -0
- package/js/economy/validate.mjs +85 -0
- package/js/index.js +10 -0
- package/js/mcp/server.mjs +113 -0
- package/js/mcp/tools.mjs +479 -0
- package/js/play/index.js +2109 -0
- package/js/results/index.js +184 -0
- package/js/results/wire.js +90 -0
- package/package.json +100 -4
- package/release.json +8 -0
- package/skills/xsolana-economy/SKILL.md +105 -0
- package/skills/xsolana-economy/references/after-launch.md +114 -0
- package/skills/xsolana-economy/references/apps.md +157 -0
- package/skills/xsolana-economy/references/sentence-to-spec.md +172 -0
- package/skills/xsolana-economy/references/telling-the-person.md +93 -0
- package/types/chain/base58.d.ts +10 -0
- package/types/chain/borsh.d.ts +23 -0
- package/types/chain/bytes.d.ts +45 -0
- package/types/chain/core.d.ts +50 -0
- package/types/chain/curve.d.ts +1 -0
- package/types/chain/lookup.d.ts +191 -0
- package/types/chain/mint.d.ts +25 -0
- package/types/chain/pda.d.ts +25 -0
- package/types/chain/programs.d.ts +65 -0
- package/types/chain/rpc.d.ts +66 -0
- package/types/chain/sha256.d.ts +1 -0
- package/types/chain/token.d.ts +141 -0
- package/types/chain/token2022.d.ts +53 -0
- package/types/chain/tx.d.ts +60 -0
- package/types/client/accounts.d.ts +178 -0
- package/types/client/compressed.d.ts +29 -0
- package/types/client/grant.d.ts +125 -0
- package/types/client/idl/loot.d.ts +4467 -0
- package/types/client/index.d.ts +8 -0
- package/types/client/ix.d.ts +1687 -0
- package/types/client/pda.d.ts +91 -0
- package/types/client/policy.d.ts +23 -0
- package/types/client/sizes.d.ts +13 -0
- package/types/client/traits.d.ts +12 -0
- package/types/economy/check.d.mts +105 -0
- package/types/economy/cost.d.mts +68 -0
- package/types/economy/examples.d.mts +27 -0
- package/types/economy/explain.d.mts +19 -0
- package/types/economy/guide.d.mts +140 -0
- package/types/economy/legal.d.mts +12 -0
- package/types/economy/live.d.mts +109 -0
- package/types/economy/model.d.mts +363 -0
- package/types/economy/plan.d.mts +1013 -0
- package/types/economy/secrets.d.mts +4 -0
- package/types/economy/simulate.d.mts +156 -0
- package/types/economy/txsize.d.mts +17 -0
- package/types/economy/validate.d.mts +3 -0
- package/types/index.d.ts +9 -0
- package/types/mcp/tools.d.mts +627 -0
- package/types/play/index.d.ts +469 -0
- package/types/results/index.d.ts +155 -0
- package/types/results/wire.d.ts +122 -0
|
@@ -0,0 +1,2 @@
|
|
|
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.20.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":["Anyone asks 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":[171,163,79,88,20,65,92,199],"accounts":[{"name":"payer","docs":["Anyone: pays the oracle."],"writable":true,"signer":true},{"name":"order","docs":["Waiting to be asked, or asked and never answered."],"writable":true},{"name":"loot_box"},{"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":"bid","docs":["A player bids on an auction; the bid it tops goes back to its bidder at once."],"discriminator":[199,56,85,38,146,243,37,158],"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":[228,253,131,202,207,116,89,18],"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)."],"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 a box that needs no roll (a shop item, a bundle): the price is split and the entry's","prizes given at once, with no order."],"discriminator":[102,6,61,18,1,218,235,234],"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":"receipt","docs":["what one wallet buys. Made at their first purchase, 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":"buy_tickets","docs":["A player buys lottery tickets."],"discriminator":[48,16,122,137,24,214,198,58],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"project"},{"name":"lottery","writable":true},{"name":"contribution","docs":["This purchase: any `nonce` the player has no contribution at in this lottery."],"writable":true,"pda":{"seeds":[{"kind":"const","value":[99,111,110,116,114,105,98,117,116,105,111,110]},{"kind":"account","path":"lottery"},{"kind":"account","path":"player"},{"kind":"arg","path":"nonce"}]}},{"name":"player_token","writable":true},{"name":"payment_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[108,111,116,116,101,114,121,95,102,117,110,100,115]},{"kind":"account","path":"lottery"}]}},{"name":"mint","docs":["tickets are burned. The token program refuses another: the vault is of that 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":"receipt","docs":["when it limits the tickets one wallet holds. Made at their first purchase, its rent theirs."],"writable":true,"optional":true}],"args":[{"name":"nonce","type":"u64"},{"name":"count","type":"u32"},{"name":"chosen_recipient","type":{"option":"pubkey"}},{"name":"incarnation","type":"u64"},{"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":"lottery","writable":true},{"name":"ticket","docs":["An earlier round's answer, or an earlier incarnation's, is refused."]}],"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"},{"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":"cancel_lottery","docs":["Anyone cancels a round whose draw the oracle never answered."],"discriminator":[85,35,29,73,218,192,9,166],"accounts":[{"name":"lottery","writable":true}],"args":[]},{"name":"claim","docs":["Anyone pays a decided or called-off contest's entry to its player; the last claim","closes the contest. With `forgo` (the player only), a winner takes its part of the pot","without its prize."],"discriminator":[62,198,214,193,213,159,108,210],"accounts":[{"name":"payer","docs":["Anyone. Opens the player's account of the mint when it is not there."],"writable":true,"signer":true},{"name":"project"},{"name":"contest","writable":true},{"name":"entry","writable":true},{"name":"player","writable":true},{"name":"opener","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_vault","writable":true,"optional":true},{"name":"prize_to","docs":["mint (`Tokens::wallet_account`)."],"writable":true,"optional":true}],"args":[{"name":"nonce","type":"u64"},{"name":"forgo","type":"bool"}]},{"name":"claim_grant","docs":["Claims a grant's reward for a wallet, with a voucher (the Ed25519 check right before) or a","proof that it is on the approved list, or of an open grant. The wallet signs its own claim,","whatever proves it (`WalletMustSign`); anyone may pay its fees beside it. `amount`: the tokens the voucher or the list names for this claim,","up to the grant's own (0: the grant's prize as it is)."],"discriminator":[125,134,233,135,82,18,177,8],"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 receipts, the collectible and the token account with the grant's","funds as far as they go, and the player fee with its own SOL."],"writable":true,"signer":true},{"name":"wallet"},{"name":"wallet_receipt","writable":true,"pda":{"seeds":[{"kind":"const","value":[114,101,99,101,105,112,116]},{"kind":"account","path":"grant"},{"kind":"account","path":"grant.incarnation","account":"Grant"},{"kind":"account","path":"wallet"}]}},{"name":"person_receipt","docs":["person and the grant limits them; on an open claim of a grant gated by an NFT, the badge's,","`[\"badge\", grant, incarnation, nft]` (checked below)."],"writable":true,"optional":true},{"name":"code_receipt","docs":["(checked below)."],"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":"round","type":{"array":["u8",16]}},{"name":"expires","type":"i64"},{"name":"person_hash","type":{"array":["u8",32]}},{"name":"amount","type":"u64"},{"name":"proof","type":{"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."],"discriminator":[168,169,170,95,84,189,158,220],"accounts":[{"name":"record","writable":true},{"name":"tree"},{"name":"payer","writable":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":[33,15,192,81,78,175,159,97],"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)."],"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":[191,72,67,35,239,209,97,132],"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":"collect_fees","discriminator":[164,152,207,99,30,186,19,182],"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":[248,224,219,10,139,36,63,33],"accounts":[{"name":"authority","docs":["Pays a new asset's rent and a longer attribute list, or gets the rent of a burned asset."],"writable":true,"signer":true},{"name":"project"},{"name":"item","docs":["For `Make`: the item, of this project."],"writable":true,"optional":true},{"name":"asset","docs":["creates it, and the runtime refuses the call when it did not sign);","otherwise one in `collection`, which Core checks. For `Set`, any NFT: one the project has no","authority over is a Core asset of another collection, or a Token Metadata NFT's mint."],"writable":true},{"name":"owner","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."],"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":[161,233,177,214,243,109,161,224],"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":"receipt","docs":["what one wallet crafts. Made at their first craft, its rent theirs."],"writable":true,"optional":true}],"args":[{"name":"version","type":"u32"},{"name":"times","type":"u64"},{"name":"nonce","type":"u64"}]},{"name":"create_project","discriminator":[148,219,181,42,221,114,145,190],"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":[123,125,184,125,249,43,113,15],"accounts":[{"name":"signer","docs":["The project's authority; anyone sending a decider's verdict; anyone, to write down that a","contest is off by itself."],"writable":true,"signer":true},{"name":"project"},{"name":"contest","writable":true},{"name":"opener","docs":["called off."],"writable":true},{"name":"mint","docs":["closing the pot of a contest nobody entered burns or sweeps."]},{"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","docs":["contest nobody entered burns what its vault holds."],"writable":true,"optional":true},{"name":"prize_pool","writable":true,"optional":true},{"name":"prize_vault","writable":true,"optional":true}],"args":[{"name":"side","type":{"option":"u8"}},{"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."],"discriminator":[17,188,124,77,90,34,97,19],"accounts":[{"name":"payer","docs":["Pays the oracle."],"writable":true,"signer":true},{"name":"lottery","writable":true},{"name":"oracle_queue","docs":["whoever MagicBlock lets serve it could answer."],"writable":true},{"name":"program_identity"},{"name":"vrf_program","docs":["(and fails there when it is no program), so a round that asks nothing (nothing sold, short of","its least sale) ends or is cancelled even with the oracle gone."],"address":"Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz"},{"name":"slot_hashes"},{"name":"system_program","address":"11111111111111111111111111111111"}],"args":[]},{"name":"end_auction","docs":["Anyone ends an auction that is over: the lot to the winner and the bid through the","shares, or the lot home. Its seller calls off one with no bid."],"discriminator":[252,110,101,234,66,104,28,87],"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). 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":["treasury wallet for its item (`rail::split_to`)."]},{"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)."],"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","writable":true,"optional":true}],"args":[{"name":"reference","type":{"array":["u8",32]}},{"name":"nonce","type":"u64"}]},{"name":"enter","docs":["A player puts `amount` on one side of a contest, at the `incarnation` they saw."],"discriminator":[139,49,209,114,88,91,77,134],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"project"},{"name":"contest","writable":true},{"name":"entry","writable":true,"pda":{"seeds":[{"kind":"const","value":[101,110,116,114,121]},{"kind":"account","path":"contest"},{"kind":"account","path":"player"}]}},{"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":"u8"},{"name":"amount","type":"u64"},{"name":"incarnation","type":"u64"}]},{"name":"finish_lottery_contribution","docs":["Anyone routes a successful contribution or refunds a cancelled one to its buyer. A","winning one stays, and finishing it again pays its buyer its places once every","contribution is finished. The last place paid opens the next round."],"discriminator":[223,174,41,249,73,174,215,99],"accounts":[{"name":"payer","docs":["Anyone. Opens the accounts the contribution pays into that are not there yet."],"writable":true,"signer":true},{"name":"project"},{"name":"lottery","writable":true},{"name":"contribution","writable":true},{"name":"payment_vault","writable":true,"pda":{"seeds":[{"kind":"const","value":[108,111,116,116,101,114,121,95,102,117,110,100,115]},{"kind":"account","path":"lottery"}]}},{"name":"pot","writable":true,"pda":{"seeds":[{"kind":"const","value":[112,111,116]},{"kind":"account","path":"lottery"}]}},{"name":"player","writable":true},{"name":"to","docs":["of the pot's mint for a prize (left out when the places won take nothing of the pot)."],"writable":true,"optional":true},{"name":"mint","docs":["program refuses another: both vaults are of their mint."]},{"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":"nonce","type":"u64"}]},{"name":"harvest","docs":["A player collects what their seat is owed, less the farm's toll, or with `compound` adds it to","their stake when the farm's rewards are its staked token. On a tier with an early exit, refused","while the seat's lock runs (`RewardsLocked`)."],"discriminator":[228,241,31,182,53,169,59,199],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"side","accounts":[{"name":"project"},{"name":"farm","writable":true},{"name":"rewards_pool","docs":["mint: a client passes it writable there."]},{"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":["program refuses a mint that isn't the vault's."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]}]},{"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 a compressed NFT's record, with its","`tree` (`holds_nft`)."],"optional":true},{"name":"tree","optional":true},{"name":"staked_vault","writable":true,"optional":true},{"name":"toll_pool","docs":["mint writable when the toll is burned."],"writable":true,"optional":true}],"args":[{"name":"compound","type":"bool"}]},{"name":"hold","docs":["A player hands an NFT to the project until `free_at`; `reference` is the project's label."],"discriminator":[83,159,208,118,203,182,239,221],"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)."],"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":[29,22,210,225,219,114,193,169],"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 or newly minted, to a pool, a token","account or a collectible's holder, or burned."],"discriminator":[251,90,35,69,216,208,10,147],"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"}]}],"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":[48,60,204,12,175,130,173,33],"accounts":[{"name":"seller","docs":["Puts the lot up, the only signer: an NFT's holder (a player's in one of the project's collections), 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)."],"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: a box with one entry and nothing random is rolled at once,","any other asks the oracle for its roll. `chosen_recipient` names the wallet or collectible a share of","the box's lets the buyer choose."],"discriminator":[225,220,10,104,173,151,214,199],"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)."],"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,"optional":true},{"name":"program_identity","optional":true},{"name":"vrf_program","optional":true,"address":"Vrf1RNUjXmQGjmQrQLvJHs9SNkvDJEsRVFPkfSQUwGz"},{"name":"slot_hashes","optional":true},{"name":"chosen","docs":["one (`To::Chosen` with an item). Checked against the choice."],"optional":true},{"name":"receipt","docs":["what one wallet buys. Made at their first purchase, 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":"open_contest","docs":["The authority opens a contest: sides to back, and a pot."],"discriminator":[54,94,57,118,71,166,26,165],"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}],"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 flows into a rewards pool."],"discriminator":[38,200,80,130,33,132,205,187],"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_pool"},{"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":"toll_pool","optional":true}],"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":[57,210,102,125,143,26,116,120],"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)."],"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":[118,149,74,202,212,206,207,167],"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":[96,215,110,61,1,246,205,228],"accounts":[{"name":"owner","writable":true,"signer":true},{"name":"project"},{"name":"mint"},{"name":"pool","writable":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"}]}],"args":[{"name":"index","type":"u8"}]},{"name":"open_tree","docs":["The project's keys make a Bubblegum v2 tree the project alone mints compressed prizes into."],"discriminator":[14,255,205,86,51,122,120,253],"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":[119,18,216,65,192,117,122,220],"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":[170,254,237,91,186,200,55,161],"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)."],"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":[69,15,186,164,120,28,6,97],"accounts":[{"name":"signer","docs":["Anyone. Pays the record's rent the first time."],"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":[26,70,52,234,101,16,169,200],"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":"refresh_seat","docs":["Anyone counts a seat's weight again from its collectible as it is now."],"discriminator":[64,211,141,225,64,181,185,139],"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_pool","docs":["mint: a client passes it writable there."]},{"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":["program refuses a mint that isn't the vault's."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]}]},{"name":"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)."],"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":"refund","docs":["Give an order's payment back to its player."],"discriminator":[2,96,183,251,63,208,46,46],"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":"system_program","address":"11111111111111111111111111111111"},{"name":"associated_token_program","address":"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL"},{"name":"receipt","docs":["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)."],"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":["A held collectible leaves the project: to whoever the authority names while its hold runs,","home to its player by anyone once it is over."],"discriminator":[253,249,15,206,28,127,193,241],"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)."],"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":"player","docs":["account's of the project."],"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 money goes to the lender and the debt is marked","paid. The NFT goes home with `release`, whenever."],"discriminator":[234,103,67,82,208,234,219,166],"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"}],"args":[]},{"name":"roll","docs":["The authority asks the oracle for a random number for a rule of its own, labelled","`reference`."],"discriminator":[143,143,93,91,13,254,64,93],"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":["Anyone runs a schedule that is due."],"discriminator":[179,112,243,195,32,69,224,206],"accounts":[{"name":"payer","docs":["Anyone. 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":"sell_to_offer","docs":["A holder sells an NFT into a bid: the NFT to the maker, the price to the seller."],"discriminator":[250,60,171,18,144,227,151,121],"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)."],"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":[14,33,2,169,153,155,180,248],"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":[240,182,200,60,209,54,180,240],"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":[121,106,27,166,239,199,114,184],"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, rolls) and","split its payment. Anyone sends it, for whatever order is at the address."],"discriminator":[175,42,185,87,144,131,102,212],"accounts":[{"name":"signer","docs":["Anyone, for every outcome. Opens the accounts the order pays into that are not there yet."],"writable":true,"signer":true},{"name":"order","writable":true},{"name":"player","writable":true},{"name":"project"},{"name":"mint","docs":["burns: an entry that burns, or 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)."],"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}],"args":[]},{"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":[38,27,66,46,69,65,151,219],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"side","accounts":[{"name":"project"},{"name":"farm","writable":true},{"name":"rewards_pool","docs":["mint: a client passes it writable there."]},{"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":["program refuses a mint that isn't the vault's."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]}]},{"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)."],"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":"toll_pool","docs":["by address. The client marks the rewards' mint writable when the toll is burned."],"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":[136,126,91,162,40,131,13,127],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"side","accounts":[{"name":"project"},{"name":"farm","writable":true},{"name":"rewards_pool","docs":["mint: a client passes it writable there."]},{"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":["program refuses a mint that isn't the vault's."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]}]},{"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":"toll_pool","docs":["client marks the rewards' mint writable when the toll is burned."],"writable":true,"optional":true}],"args":[{"name":"amount","type":"u64"},{"name":"tier","type":"u8"}]},{"name":"stash","docs":["The project's owner or authority puts an NFT into a stash (`out` false), to be given away as","a prize, or takes one out: one of the project's stashes, or a lottery's own (`StashOf`)."],"discriminator":[166,148,195,100,70,163,242,246],"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)."],"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"}]},{"name":"lottery","docs":["id]`: an account there holding no lottery (never written, or closed) promises nothing."],"optional":true}],"args":[{"name":"of","type":{"defined":{"name":"StashOf"}}},{"name":"out","type":"bool"}]},{"name":"take_listing","docs":["A taker buys a listed NFT, or rents it for `periods` periods."],"discriminator":[10,40,220,64,162,73,122,207],"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)."],"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":[17,182,24,211,101,138,50,163],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"side","accounts":[{"name":"project"},{"name":"farm","writable":true},{"name":"rewards_pool","docs":["mint: a client passes it writable there."]},{"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":["program refuses a mint that isn't the vault's."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]}]},{"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)."],"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":"toll_pool","docs":["by address. The client marks the rewards' mint writable when the toll is burned."],"writable":true,"optional":true}],"args":[{"name":"forfeit","type":"bool"},{"name":"nonce","type":"u64"}]},{"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 (what such a tier owes the seat then goes","back to the farm). With an unbonding wait, the tokens taken out wait in the seat, earning","nothing, and a later call after the wait sends them; `forfeit` gives up the rewards."],"discriminator":[58,119,215,143,203,223,32,86],"accounts":[{"name":"player","writable":true,"signer":true},{"name":"side","accounts":[{"name":"project"},{"name":"farm","writable":true},{"name":"rewards_pool","docs":["mint: a client passes it writable there."]},{"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":["program refuses a mint that isn't the vault's."]},{"name":"token_program","address":"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"},{"name":"token_2022_program","docs":["account here only makes the call fail."]}]},{"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":"toll_pool","docs":["client marks the rewards' mint writable when the toll is burned."],"writable":true,"optional":true}],"args":[{"name":"amount","type":"u64"},{"name":"forfeit","type":"bool"}]},{"name":"update_project","discriminator":[2,196,131,92,28,139,179,94],"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":[174,55,164,168,242,93,194,123],"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"}}}}]}],"accounts":[{"name":"Auction","discriminator":[20]},{"name":"Contest","discriminator":[10]},{"name":"Entry","discriminator":[11]},{"name":"Farm","discriminator":[17]},{"name":"Grant","discriminator":[14]},{"name":"Hold","discriminator":[9]},{"name":"Item","discriminator":[3]},{"name":"Listing","discriminator":[23]},{"name":"LootBox","discriminator":[4]},{"name":"Lottery","discriminator":[7]},{"name":"LotteryContribution","discriminator":[16]},{"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":"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":"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":"LotteryContributionFinished","discriminator":[66,171,95,142,44,144,41,20]},{"name":"LotteryDrawn","discriminator":[38,250,156,196,171,79,154,208]},{"name":"LotteryPaid","discriminator":[187,208,228,188,26,6,174,127]},{"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":"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":"PrizeGiven","discriminator":[57,156,246,153,98,219,127,254]},{"name":"ProjectSuspended","discriminator":[54,26,240,51,122,132,161,159]},{"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":"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]},{"name":"Withdrawn","discriminator":[20,89,223,198,194,124,219,13]}],"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"},{"code":6002,"name":"NotPlatform","msg":"Signer is not the platform admin or the program's upgrade authority"},{"code":6003,"name":"BadCollection","msg":"Collection is not a Core collection this signer controls"},{"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":"StringTooLong","msg":"Name or URI too long"},{"code":6007,"name":"BadEntries","msg":"Box needs 1 to 8 entries with non-zero weights and non-zero prizes (none that burns in wrapped SOL)"},{"code":6008,"name":"BadShares","msg":"A split takes at most 4 shares (a payment: any number) that add up to 100% or less, none that burns in wrapped SOL, and only the destinations its route can pay"},{"code":6009,"name":"KindLocked","msg":"An item's kind, life, soulbound and burnable flags can't change once one is issued"},{"code":6010,"name":"Paused","msg":"Project is paused by its owner"},{"code":6011,"name":"Suspended","msg":"Project is suspended by the platform"},{"code":6012,"name":"ZeroAmount","msg":"Amount must be above zero"},{"code":6013,"name":"NotForSale","msg":"Box, item or recipe is not on offer"},{"code":6014,"name":"SoldOut","msg":"Item is sold out"},{"code":6015,"name":"PriceAboveMax","msg":"The price is above the most the buyer agreed to pay"},{"code":6016,"name":"WrongPool","msg":"A share names an account that was not passed, or the wrong account was"},{"code":6017,"name":"NotTheirAccount","msg":"Money owed to a wallet goes to that wallet's associated token account of the mint"},{"code":6018,"name":"WrongMint","msg":"This is not the mint the price is in"},{"code":6019,"name":"BadOrderState","msg":"Order is not in the right state"},{"code":6020,"name":"NotStale","msg":"Order is not stale yet"},{"code":6021,"name":"ItemMismatch","msg":"Item or pool accounts don't match the box or the order"},{"code":6022,"name":"NotThePlayers","msg":"This is not the player, the winner or the record it belongs to"},{"code":6023,"name":"NotCollectible","msg":"Only a collectible item can be made as an asset"},{"code":6024,"name":"BadSchedule","msg":"A schedule needs a period above zero; a sealed one, a mint that moves, a last run within 10 years and at most 10,000 runs, and a destination every run can pay"},{"code":6025,"name":"NotDue","msg":"This is not due yet"},{"code":6026,"name":"ScheduleOver","msg":"This schedule is switched off or has done its last run"},{"code":6027,"name":"BadLottery","msg":"A lottery this program can't keep: its mints must move freely, an NFT ticket takes no price, shares or ticket mint, one that gives tickets back takes no shares, at most 8 places that each take something and together 100% or less, and a held prize in its own stash, once, on a lottery that draws once"},{"code":6028,"name":"RoundRunning","msg":"A lottery can't be changed while tickets of its round are sold"},{"code":6029,"name":"SalesClosed","msg":"Ticket sales are closed for this round"},{"code":6030,"name":"StillLocked","msg":"This seat can't be taken out yet: its lock tier has not run"},{"code":6031,"name":"MoreThanStaked","msg":"That is more than this position holds"},{"code":6032,"name":"BadRecipe","msg":"A recipe has up to 8 lines a side, takes up to 8 collectibles, no line of it is zero, and its needs and keeps name collectibles it has"},{"code":6033,"name":"OnceAtATime","msg":"A recipe that takes or makes a collectible is crafted once at a time"},{"code":6034,"name":"NeedNotMet","msg":"A collectible handed in does not have the number this recipe asks for"},{"code":6035,"name":"MaxedOut","msg":"That number is already as high as this recipe raises it"},{"code":6036,"name":"RecipeChanged","msg":"This recipe was edited since the player saw it"},{"code":6037,"name":"NotReady","msg":"This collectible is not ready yet: it is too new, or it was used too recently"},{"code":6038,"name":"Expired","msg":"This collectible has expired"},{"code":6039,"name":"UsedUp","msg":"This collectible has no uses left"},{"code":6040,"name":"Held","msg":"The project is holding this collectible for a player"},{"code":6041,"name":"TermsChanged","msg":"The signed version, incarnation or terms no longer match this record"},{"code":6042,"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":6043,"name":"StillHeld","msg":"This collectible is held until its time is up"},{"code":6044,"name":"HoldOver","msg":"The hold on this collectible is over: it can only go back to its player"},{"code":6045,"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":6046,"name":"ContestNotOpen","msg":"This contest is not open"},{"code":6047,"name":"ContestOpen","msg":"This contest has no result yet"},{"code":6048,"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":6049,"name":"NoWinner","msg":"Nobody backed that side: call the contest off instead"},{"code":6050,"name":"NotATokenAccount","msg":"Not a token account"},{"code":6051,"name":"Overflow","msg":"Arithmetic overflow"},{"code":6052,"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":6053,"name":"NotAMint","msg":"Not a mint of the SPL Token program or of Token-2022"},{"code":6054,"name":"MemoNeeded","msg":"A destination requires a memo: pass the Memo program with the hook's accounts"},{"code":6055,"name":"SameAccount","msg":"The project can't pay into the account it pays from"},{"code":6056,"name":"SameSlot","msg":"An order closes in a later slot than the one it was opened in"},{"code":6057,"name":"ToTheProject","msg":"The project's own address, or an account of this program, can't be given an NFT or a grant's prize: no record holds it, so nothing could move it again"},{"code":6058,"name":"NotVoucher","msg":"The voucher is not signed by one of this grant's voucher keys"},{"code":6059,"name":"VoucherExpired","msg":"The voucher has expired"},{"code":6060,"name":"WrongVoucherBytes","msg":"The Ed25519 check does not sign exactly this claim's voucher, once, within its own instruction"},{"code":6061,"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":6062,"name":"GrantClosed","msg":"This grant is switched off"},{"code":6063,"name":"OverTotal","msg":"This grant has given all it may"},{"code":6064,"name":"OverDay","msg":"This grant has given all it may today"},{"code":6065,"name":"OverWallet","msg":"This wallet has claimed this grant as often as it may"},{"code":6066,"name":"OverPerson","msg":"This person has claimed this grant as often as they may"},{"code":6067,"name":"BadListProof","msg":"This wallet is not on the grant's approved list"},{"code":6068,"name":"WrongGrant","msg":"Not this grant, or not the accounts its reward needs"},{"code":6069,"name":"AlreadyClaimed","msg":"This wallet was already paid for this round, or claimed this list"},{"code":6070,"name":"ReceiptFull","msg":"This wallet has reached this grant's supported voucher history limit"},{"code":6071,"name":"GateNotMet","msg":"This needs an NFT that passes its gate, held by the player and shown after the instruction's own accounts"},{"code":6072,"name":"BadRule","msg":"A rule or a boost the program can't keep: a key or text over 32 bytes, a number test with no key, a boost over +10,000%, or more than 4"},{"code":6073,"name":"BadOdds","msg":"Odds name one of the box's entries"},{"code":6074,"name":"BadFarm","msg":"A farm this program can't keep: 1 to 4 lock tiers each above x0 and at most x11, at most 4 boosts, and exits, unbonding, tolls and missions only where its kind takes them"},{"code":6075,"name":"BadTier","msg":"Not one of this farm's lock tiers"},{"code":6076,"name":"WrongFarm","msg":"This farm takes tokens, not collectibles, or the other way round"},{"code":6077,"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":6078,"name":"WrongSheet","msg":"An NFT the project has no authority over comes with its Sheet's address right after it"},{"code":6079,"name":"SoulboundEscrow","msg":"A soulbound collectible can't be escrowed: stake it in a farm that freezes"},{"code":6080,"name":"NotTheNft","msg":"That is not the NFT this needs: not the one its record or stash names, not the project's, a compressed NFT where none is taken, or a tree that is not Bubblegum v2"},{"code":6081,"name":"StaleProof","msg":"The proof is out of date: its root is gone from the tree's change log, its leaf changed since, or a route that calls Bubblegum twice needs its nodes current: fetch it again"},{"code":6082,"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)"},{"code":6083,"name":"StillProven","msg":"That record still reads: its leaf is unchanged and its root still in the tree's change log"},{"code":6084,"name":"NotTheTraits","msg":"Those traits are not in the project's traits tree"},{"code":6085,"name":"NeedsCustody","msg":"That roll can burn or give the NFT away: the project must hold it first (a custodial route)"},{"code":6086,"name":"FarmOver","msg":"This farm has ended, or ends before that lock would"},{"code":6087,"name":"AlreadyStaked","msg":"That NFT is staked here already"},{"code":6088,"name":"ShorterTier","msg":"A seat's lock tier can only move to one that locks at least as long"},{"code":6089,"name":"BoosterOn","msg":"Take the seat's booster off first"},{"code":6090,"name":"BoosterSlot","msg":"This seat has a booster already, or has none to take off"},{"code":6091,"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; a sealed schedule's vault pays only its runs"},{"code":6092,"name":"RefreshFirst","msg":"Refresh the seat first, in the same transaction (refresh_seat): its booster has grown at its tier since"},{"code":6093,"name":"WrongRecord","msg":"Not one of this project's records an owner writes, or not the one at this address"},{"code":6094,"name":"CannotClose","msg":"Still needed: an item with units out, or a lottery with tickets sold this round. A box, a recipe or a sealed schedule is never closed, so its version or its terms never repeat"},{"code":6095,"name":"BadAuction","msg":"An auction needs an end after its start and after now but within five years, an extension of at most five years, and a mint whose new accounts do not start frozen and can't be switched to"},{"code":6096,"name":"LotRefused","msg":"Not a lot an auction takes: a unit of an item on sale with one left, or an NFT its seller holds (a player's: a Core NFT in one of the project's collections)"},{"code":6097,"name":"AuctionNotOpen","msg":"This auction is not taking bids: it has not started, or it is over"},{"code":6098,"name":"BidTooLow","msg":"A bid must reach the reserve, and top the high bid by the auction's least raise"},{"code":6099,"name":"AuctionRunning","msg":"This auction is not over: with a bid in, nobody can call it off"},{"code":6100,"name":"NotTheBidders","msg":"The lot goes to the high bidder, and a bid back to its bidder"},{"code":6101,"name":"NotOpenYet","msg":"Not open yet: its window opens later"},{"code":6102,"name":"WindowClosed","msg":"Its window has closed"},{"code":6103,"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":6104,"name":"BadChoice","msg":"The choice a share needs: a wallet other than the buyer's own or 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":6105,"name":"BadStake","msg":"This contest takes one entry per player, of exactly its stake"},{"code":6106,"name":"BelowMinPot","msg":"This contest's sides hold less than its least pot"},{"code":6107,"name":"OverWindow","msg":"Over this record's limit for one wallet in this window"},{"code":6108,"name":"WrongReceipt","msg":"Not the canonical counter for this record, incarnation and subject"},{"code":6109,"name":"BadLimits","msg":"A grant's window needs times that are not before 1970"},{"code":6110,"name":"OverKey","msg":"This voucher key has signed all the claims the grant allows one key"},{"code":6111,"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":6112,"name":"PrizeHasHook","msg":"A box that rolls can't pay a prize in a mint with a transfer hook (a box of one entry can)"},{"code":6113,"name":"ContributionsPending","msg":"Finish every ticket contribution before paying the winners"},{"code":6114,"name":"BadPrize","msg":"A prize this route can't give: a stash's NFT at random is a box's entry only"},{"code":6115,"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":6116,"name":"OneTicket","msg":"An NFT pays for one ticket at a time"},{"code":6117,"name":"WinnersFirst","msg":"A loser's NFT goes to the opener only once every winning entry has claimed"},{"code":6118,"name":"CompressedBid","msg":"A bid can't be a compressed NFT: bid Core or Token Metadata NFTs"},{"code":6119,"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":6120,"name":"NoSolForFee","msg":"The signer holds too little SOL for the fee"},{"code":6121,"name":"BadOffer","msg":"An offer takes a rule it can keep, at least one taker, a price or a loan above 0 (repaid with at least as much, within 5 years), shares only on a price, all its money as it arrives, and a mint whose accounts can't turn a payment away"},{"code":6122,"name":"WinnerPicks","msg":"While losers' NFTs are left, only the winner claims, and picks which one they take"},{"code":6123,"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":6124,"name":"NotALoan","msg":"This hold is no loan, or it is repaid"},{"code":6125,"name":"LoanDue","msg":"This loan is due: it can't be repaid, and its NFT goes to its lender"},{"code":6126,"name":"OwedToLender","msg":"A loan that is due goes to its lender"},{"code":6127,"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":6128,"name":"BadListing","msg":"A listing asks for a price above 0, and a rental for 1 period or more of a length above 0, all of them within 5 years"},{"code":6129,"name":"NotCompoundable","msg":"Only a farm of tokens whose rewards are the staked token compounds"},{"code":6130,"name":"Sealed","msg":"A sealed schedule is written once: nobody edits, switches off or re-seals it"},{"code":6131,"name":"NotInStash","msg":"A lottery's held prize must be in its own stash when the lottery is written"},{"code":6132,"name":"Promised","msg":"A lottery's place promises this NFT: it leaves its stash only as that prize, or once the lottery has ended"},{"code":6133,"name":"PrizesFirst","msg":"A drawn round gives every place's prize before any ticket money moves"},{"code":6134,"name":"ListingStopped","msg":"Its maker stopped this listing: it takes no more renters, and closes once the rental runs out"},{"code":6135,"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":6136,"name":"OtherSide","msg":"A wallet backs one side of a contest: it already has an entry on another side"},{"code":6137,"name":"RewardsLocked","msg":"This seat's tier has an early exit, so its rewards wait for its lock: harvest once the lock has run"},{"code":6138,"name":"PlacesInOrder","msg":"A round's prizes go in place order: give the lower places' prizes first"},{"code":6139,"name":"ExitWhileLocked","msg":"While its lock runs, a seat can't move to a tier with a larger early-exit fee"},{"code":6140,"name":"HarvestFirst","msg":"This seat is owed rewards it may take now: harvest before moving to, or topping up on, a tier whose rewards wait for its lock"},{"code":6141,"name":"WalletMustSign","msg":"A grant's claim needs its wallet's signature"},{"code":6142,"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"}],"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":"serial","docs":["For an item lot, the serial reserved for it."],"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`). Within `MAX_CONTEST_SECONDS` of","the opening (a time written in milliseconds is a mistake)."],"type":"i64"},{"name":"extend","docs":["A bid moves the end to at least this many seconds after it. At most `MAX_CONTEST_SECONDS`."],"type":"u32"},{"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":"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."],"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":"held","docs":["The high bid's NFTs, held by the project."],"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 and closed: 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, or a normal item)."],"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":"serial","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: its price split (or burned) and its prizes given, each with","its own receipt (`PrizeGiven`), in the same instruction."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"player","type":"pubkey"},{"name":"loot_box","type":"pubkey"},{"name":"mint","type":"pubkey"},{"name":"amount","docs":["What the player paid."],"type":"u64"},{"name":"shares","docs":["Where the shares went, as the buyer's choice wrote them."],"type":{"vec":{"defined":{"name":"Share"}}}},{"name":"burns","docs":["The entry burns the price in place of the split."],"type":"bool"},{"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":"active","type":"bool"},{"name":"shares","type":{"vec":{"defined":{"name":"Share"}}}},{"name":"entries","type":{"vec":{"defined":{"name":"DropEntry"}}}},{"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":"attributes","type":{"vec":{"defined":{"name":"Attribute"}}}}]},{"name":"Set","fields":[{"vec":{"defined":{"name":"Attribute"}}}]},{"name":"Burn"}]}},{"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","type":"pubkey"},{"name":"change","type":{"defined":{"name":"Change"}}},{"name":"owner","docs":["For one made: who got it, and its serial number. The default address and 0 otherwise."],"type":"pubkey"},{"name":"serial","type":"u32"},{"name":"reference","type":{"array":["u8",32]}}]}},{"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":"u8"},{"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":"u8"},{"name":"entries","docs":["Entries not yet claimed."],"type":"u32"},{"name":"unclaimed","docs":["What the winning side put in and has not yet claimed for."],"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 (at most `MAX_DECIDERS`)."],"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 winning entry takes its own back and one of the losers', in","the order they are claimed, 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":"losers","docs":["The losers' NFTs not taken yet, once a side won."],"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."],"type":"u8"},{"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 (at most 3)."],"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":"Counters","docs":["What this grant incarnation has given. Edits never reset it."],"type":{"kind":"struct","fields":[{"name":"claimed","type":"u32"},{"name":"today","docs":["Claims on `day`."],"type":"u32"},{"name":"day","docs":["The day `today` counts: unix time / `DAY_SECONDS`."],"type":"i64"}]}},{"name":"Crafted","docs":["A player crafted a recipe. The tokens it took and gave are the recipe's own lines."],"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":"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":"paid","docs":["Repaid: the NFT is the borrower's again, and anyone sends it home."],"type":"bool"}]}},{"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":"u8"}},{"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":"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, at most `MAX_PRIZES` (`prize.rs`): items, tokens, NFTs of a stash (a given one,","or one at random), a roll of another box. None is nothing: the payment is split as usual."],"type":{"vec":{"defined":{"name":"Prize"}}}},{"name":"burns","docs":["The player's payment is burned, all of it, in place of the box's split."],"type":"bool"},{"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":"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":"u8"},{"name":"amount","type":"u64"}]}},{"name":"Entry","docs":["At `[\"entry\", contest, player]`: what one player put on the one side they back. A wallet backs","one side of a contest, so a prize given to each winning entry (a trophy, a pick's prize) goes","to a wallet that backed the side that won, never to one that backed every side. They pay its","rent and get it back when it is claimed."],"type":{"kind":"struct","fields":[{"name":"contest","type":"pubkey"},{"name":"player","type":"pubkey"},{"name":"side","type":"u8"},{"name":"amount","type":"u64"},{"name":"asset","docs":["The NFT it staked, while the contest holds it (the default address for tokens, and for a","loser's NFT a winner took)."],"type":"pubkey"}]}},{"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_pool","docs":["The pool rewards arrive in, and the mint it had when the farm was opened."],"type":"u8"},{"name":"rewards_mint","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 the pool receives."],"type":{"option":{"defined":{"name":"Rate"}}}},{"name":"rate_at","docs":["When the rate last paid, and what it owes that is not yet a whole base unit (times one day","and `NFT_UNIT`)."],"type":"i64"},{"name":"rate_carry","type":"u128"},{"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 (empty: no upkeep)."],"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":"unbond","docs":["Seconds a token stake waits on its way out, earning nothing (`Seat::leaving`). 0: none."],"type":"u32"},{"name":"toll","docs":["A share of every payout of rewards, in the rewards mint."],"type":{"option":{"defined":{"name":"Toll"}}}},{"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: unallocated vault balance times `PRECISION`: rounding, the fractions seats leave,","and what seats gave back (`given`). The next move before the farm's end credits the rounding 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, sends its whole tokens back where they came from (`FarmSide::settle`)."],"type":"u128"},{"name":"given","docs":["The whole tokens of the carry that seats gave back (a forfeit, an early exit, a watched NFT","gone, a lapsed upkeep), never credited to anyone: the move sends them back where they came","from (`FarmSide::settle`), to the pool (released again in a sharing farm before its end, the","project's otherwise), or burned by a rate that mints. 0 between moves, unless a forfeit could","not move them, or the rewards mint refuses their burn (`tokens::burn_locked`)."],"type":"u64"},{"name":"unreleased","docs":["In a sharing farm (no rate): what of its rewards pool it counted and has not released yet,","still in the pool, and when the release was last brought up to (`Farm::release`)."],"type":"u64"},{"name":"released_at","type":"i64"},{"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 in the pool). Laid again when an arrival is","counted (`Farm::count`)."],"type":"i64"},{"name":"release_from","type":"i64"},{"name":"release_base","type":"u64"}]}},{"name":"FarmArgs","type":{"kind":"struct","fields":[{"name":"custody","type":{"defined":{"name":"Custody"}}},{"name":"rewards_pool","type":"u8"},{"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 (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":"unbond","docs":["Seconds a token stake waits on its way out, earning nothing. A farm of tokens only."],"type":"u32"},{"name":"toll","docs":["A share of every payout of rewards, and where it goes."],"type":{"option":{"defined":{"name":"Toll"}}}}]}},{"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":"u8"},{"name":"shifts","type":{"vec":{"defined":{"name":"Shift"}}}},{"name":"then","type":{"defined":{"name":"Then"}}}]}},{"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":"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 claim 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":"counters","type":{"defined":{"name":"Counters"}}},{"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":"GrantArgs","type":{"kind":"struct","fields":[{"name":"gives","docs":["What each claim 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":"GrantClaimed","docs":["A grant gave its reward to `wallet`: a collectible (`asset`, `serial`) or tokens (`amount`)."],"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":"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":"toll","docs":["What the farm's toll took."],"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`)."],"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."],"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":"Renew","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":"life","docs":["Collectibles only: when a recipe can take one, and how often."],"type":{"option":{"defined":{"name":"Life"}}}},{"name":"name","type":"string"},{"name":"uri","type":"string"}]}},{"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":"life","type":{"option":{"defined":{"name":"Life"}}}},{"name":"active","type":"bool"},{"name":"collection","docs":["A collectible's collection: one of the project's."],"type":"pubkey"}]}},{"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":"Life","docs":["How a collectible lives, for the recipes that take it (`craft.rs`). Every time is in","seconds, and 0 switches that rule off."],"type":{"kind":"struct","fields":[{"name":"ready_after","docs":["It can't go into a recipe until this long after it was made: an egg that incubates, a","crop that grows."],"type":"u32"},{"name":"lasts","docs":["It can't go into a recipe once this long has passed since it was made: food that rots,","a pet that dies."],"type":"u32"},{"name":"uses","docs":["The times a recipe can use it without burning it: a breed count, a tool that wears out,","a mine that runs dry."],"type":"u32"},{"name":"cooldown","docs":["The wait between two uses: a cooldown, a daily turn."],"type":"u32"}]}},{"name":"Limits","docs":["Counts of claims, not amounts. 0 switches a limit off."],"type":{"kind":"struct","fields":[{"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":"per_day","docs":["Claims in one day, by every wallet together (UTC, `DAY_SECONDS`)."],"type":"u32"},{"name":"total","docs":["Claims in all."],"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":"active","type":"bool"},{"name":"version","docs":["Counts the edits of what a roll reads (entries, odds, `stock_odds`, `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":"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 (at most","`MAX_BOOSTS`). 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 (`Receipt`)."],"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 and odds 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":"pot_bump","docs":["The bumps of its prize pot and its payment vault."],"type":"u8"},{"name":"funds_bump","type":"u8"},{"name":"incarnation","docs":["A creation identity allocated by the persistent Project."],"type":"u64"},{"name":"revision","docs":["Configuration edits within this incarnation. A purchase names the incarnation and the","revision it saw: together they fix every term but the draw date."],"type":"u32"},{"name":"pending","docs":["Contributions of this round not finished yet: routed, or refunded once it is cancelled."],"type":"u64"},{"name":"price","docs":["The price of one ticket, in the mint of the pot (or in `ticket_mint`)."],"type":"u64"},{"name":"mint","docs":["The mint of the pot, the lottery's own token account at `[\"pot\", lottery]`."],"type":"pubkey"},{"name":"shares","docs":["Where ticket money goes before the pot: what they leave goes into it."],"type":{"vec":{"defined":{"name":"Share"}}}},{"name":"places","docs":["What each place wins, first place first. Unused places win nothing (`Place::set`)."],"type":{"array":[{"defined":{"name":"Place"}},8]}},{"name":"ticket_mint","docs":["When set, a ticket costs `price` of this mint and is burned, and no ticket money","reaches the pot. The default address means there is none: tickets pay into the pot."],"type":"pubkey"},{"name":"every","docs":["Seconds from one draw to the next. 0: it draws once, then ends."],"type":"i64"},{"name":"draws_at","docs":["Unix time this round's draw is due. Sales stop then."],"type":"i64"},{"name":"round","docs":["Counts the rounds: up by one each time a round ends."],"type":"u32"},{"name":"status","type":{"defined":{"name":"Round"}}},{"name":"sold","docs":["Tickets sold this round. They are numbered from 0."],"type":"u64"},{"name":"asked_first","docs":["The slot the draw was first asked in this round. A cancel counts from it, and it names the","round's ticket: every request of the round answers to it, so the first answer to land draws","the round, whichever request it answers."],"type":"u64"},{"name":"asked_slot","docs":["The slot the draw was last asked in. A re-ask counts from it."],"type":"u64"},{"name":"first_ticket","docs":["The ticket that won first place."],"type":"u64"},{"name":"paid","docs":["The places paid this round, one bit each."],"type":"u8"},{"name":"pot_at_payout","docs":["What the pot held when the first place of this round was paid. The shares are of this."],"type":"u64"},{"name":"gate","docs":["Who may buy tickets: a player who shows a collectible that passes, or one of a list of","wallets (`rules.rs`). Written with the rest of the lottery, between rounds."],"type":{"option":{"defined":{"name":"Gate"}}}},{"name":"per_wallet","docs":["The most tickets one wallet holds in a round (`Receipt`). 0: no limit."],"type":"u32"},{"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 burned, given on or put in a stash when its","contribution is finished (back to its buyer when the round is cancelled). Such a lottery has no price and no","shares, and its pot is what the owner and its prizes put in."],"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). No shares, no ticket mint."],"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, and every contribution refunded. 0: no least."],"type":"u64"},{"name":"given","docs":["The places of this drawn round whose prize has been given (or found not there to give), one","bit each: no ticket money moves before every place's prize has (`PrizesFirst`)."],"type":"u8"}]}},{"name":"LotteryArgs","type":{"kind":"struct","fields":[{"name":"price","type":"u64"},{"name":"mint","docs":["The pot's mint. Fixed once the pot is open."],"type":"pubkey"},{"name":"shares","docs":["Where ticket money goes before the pot (at most `MAX_SHARES`; one may be the buyer's","choice). Empty when tickets are burned."],"type":{"vec":{"defined":{"name":"Share"}}}},{"name":"places","docs":["What each place wins, first place first: a share of the pot, a roll, or both. Empty means","one winner who takes all."],"type":{"vec":{"defined":{"name":"Place"}}}},{"name":"ticket_mint","type":"pubkey"},{"name":"every","type":"i64"},{"name":"draws_at","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":"nft_ticket","docs":["A ticket costs one NFT in place of tokens (`None`: tokens)."],"type":{"option":{"defined":{"name":"NftPrice"}}}},{"name":"returns","docs":["Every ticket goes back to its buyer after the draw (`Lottery::returns`)."],"type":"bool"},{"name":"min_sold","docs":["The least tickets a round sells to be drawn (`Lottery::min_sold`; 0: none)."],"type":"u64"}]}},{"name":"LotteryCancelled","docs":["The oracle never answered a round's draw: every contribution 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":"LotteryContribution","docs":["One purchase of tickets, at `[\"contribution\", lottery, player, nonce]`: tickets","`first_ticket..end` of the lottery's current round (none outlives its round), what arrived of","their price, and who its shares pay. Its buyer pays its rent and gets it back when it is","finished, or, holding a winning ticket, once its places are paid."],"type":{"kind":"struct","fields":[{"name":"lottery","type":"pubkey"},{"name":"player","type":"pubkey"},{"name":"first_ticket","type":"u64"},{"name":"end","type":"u64"},{"name":"amount","type":"u64"},{"name":"done","docs":["Routed, and kept because it holds a winning ticket."],"type":"bool"},{"name":"recipients","type":{"array":[{"defined":{"name":"LotteryRecipient"}},4]}},{"name":"asset","docs":["The NFT its ticket was paid with, which the project holds until the round is drawn (then it","goes where the lottery's price says) or cancelled (then back to its buyer); none for tokens."],"type":"pubkey"}]}},{"name":"LotteryContributionFinished","docs":["One contribution completed without needing its buyer or beneficiary to sign."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"incarnation","type":"u64"},{"name":"round","type":"u32"},{"name":"contribution","type":"pubkey"},{"name":"player","type":"pubkey"},{"name":"amount","type":"u64"},{"name":"refunded","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. The others follow at even steps (`Lottery::ticket_of_place`); each","place's winner is the buyer of the contribution that holds its ticket."],"type":"u64"},{"name":"randomness","type":{"array":["u8",32]}}]}},{"name":"LotteryPaid","docs":["One place of a lottery was paid its share of the pot."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"incarnation","type":"u64"},{"name":"round","type":"u32"},{"name":"place","type":"u8"},{"name":"winner","type":"pubkey"},{"name":"amount","type":"u64"}]}},{"name":"LotteryRecipient","docs":["Only buyer-dependent destinations are stored on a contribution. Common destinations stay","in the round terms: 0 uses that rule (an unchosen share uses treasury), 1 fixes a wallet,","2 fixes an unavailable holder whose share joins the prize pot."],"type":{"kind":"struct","fields":[{"name":"kind","type":"u8"},{"name":"wallet","type":"pubkey"}]}},{"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":["A number a recipe asks of a collectible handed in: the project's authority wrote `key` on it","(`collectible`), and it must be `at_least` this much."],"type":{"kind":"struct","fields":[{"name":"place","docs":["Which collectible: the first handed in is 0, in the recipe's order."],"type":"u8"},{"name":"key","type":"string"},{"name":"at_least","type":"u32"}]}},{"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":"u8"},{"name":"boost","type":{"defined":{"name":"Boost"}}}]}},{"name":"OddsRaised","docs":["A purchase fixed the odds boosts from the collectible its player showed (`rules.rs`):","`raised` has the basis points added 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 mission's or a recipe's roll,","the slot it was made in: `ask_roll` moves the order's to the slot it asks in, which its","`OrderRolled` and `OrderSettled` carry."],"type":"u64"},{"name":"asset","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":"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":"left","docs":["How many more takes it pays for: its money in the vault is `left` times `deal.unit()`."],"type":"u16"},{"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":"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, in basis points. `box_version`","binds each position to its rule; unused positions are zero. The roll still checks stock."],"type":{"array":["u32",4]}},{"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":"burns","docs":["The entry rolled burns the payment in place of the split."],"type":"bool"},{"name":"paid","docs":["What the player paid, held in the project's vault until settle or refund."],"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":"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":"counted","docs":["It counts against its player's limit on its box (`Receipt`), in this window. A refund","gives it back."],"type":{"option":"u32"}},{"name":"subject","docs":["The NFT the roll is on (the default address for none), and whether the project holds it until","the order ends (its box can burn it or give it away)."],"type":"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":"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: a box's one entry, or whatever a 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":"entry","docs":["The entry rolled, the first of the box being 0."],"type":"u8"},{"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":"burns","docs":["The entry burns the payment in place of the split."],"type":"bool"},{"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 and its payment split."],"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":"won","docs":["What the player got, as the roll set it aside."],"type":{"vec":{"defined":{"name":"Won"}}}},{"name":"assets","docs":["For each of `won`, the collectible minted, the NFT handed over or the order a roll is made in","(the default address for tokens, or a normal item, which the project's backend delivers)."],"type":{"vec":"pubkey"}},{"name":"amount","docs":["What the player paid."],"type":"u64"},{"name":"shares","docs":["The split fixed at purchase. An entry that burns burns the whole amount instead."],"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":"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":["Where the shares went. Each was sent `amount * bps / 10,000`, rounded down."],"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":"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":["What one place wins: `bps` of the pot (basis points), 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":"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":{"defined":{"name":"Amount"}}}]},{"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":"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":"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 (at most `MAX_COLLECTIONS`): 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":"Raise","docs":["A number a recipe moves on a collectible handed in and kept: `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 (`Shift`): 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."],"type":"u8"},{"name":"key","type":"string"},{"name":"by","type":"i32"},{"name":"most","type":"u32"},{"name":"from_now","type":"bool"}]}},{"name":"Rate","docs":["A fixed rate a farm pays at, instead of sharing whatever its rewards pool receives."],"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."],"type":"u64"},{"name":"mints","docs":["Minted (the project must be the rewards' mint authority), or paid from the rewards pool while","it lasts: what the pool can't cover, or the mint has no room for, is not owed later."],"type":"bool"}]}},{"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 (`Receipt`)."],"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":"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, or","sent home to its player by anyone once it was over."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"asset","type":"pubkey"},{"name":"player","docs":["Who handed it in."],"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), and its NFT went home."],"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":"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 mission's return or a recipe made a roll (`waiting_order`): it waits for anyone 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: the order's `requested_slot` 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":"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":"Round","type":{"kind":"enum","variants":[{"name":"Open"},{"name":"Drawing"},{"name":"Drawn"},{"name":"Ended"},{"name":"Cancelled"}]}},{"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":"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: it minted, burned or moved `amount`."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"id","type":"u32"},{"name":"run","docs":["Which run this was, counted from 1."],"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":"farm","type":"pubkey"},{"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":"upkeep_until","docs":["In a farm with an upkeep: until when it earns and grows, as its collectible said when last","read (staked, refreshed), and when it was last credited."],"type":"i64"},{"name":"credited_at","type":"i64"},{"name":"dry","docs":["Its upkeep ran out before its tier's lock did, at some point since it came in: a mission","that ran dry takes no prize, even refuelled before it lands."],"type":"bool"},{"name":"leaving","docs":["Tokens on their way out of a farm that unbonds: still in the staked vault, weighing nothing,","and free to take out from `leaving_at` (or once the farm is over)."],"type":"u64"},{"name":"leaving_at","type":"i64"},{"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, or into one of the project's pools."],"type":{"kind":"enum","variants":[{"name":"Burn"},{"name":"Pool","fields":["u8"]}]}},{"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":"Test","docs":["What a rule asks of the attribute under its key."],"type":{"kind":"enum","variants":[{"name":"Any"},{"name":"AtLeast","fields":["u32"]},{"name":"Equals","fields":[{"name":"text","type":"string"}]},{"name":"Ahead"},{"name":"Passed"},{"name":"AtMost","fields":["u32"]},{"name":"Within","fields":["u32"]}]}},{"name":"Then","docs":["Where the NFT a box rolls on goes once the roll is settled. A box takes an NFT as its price","this way: its `subject` says which NFTs, and each entry's fate where the one paid goes."],"type":{"kind":"enum","variants":[{"name":"Back"},{"name":"Burn"},{"name":"Give","fields":["pubkey"]},{"name":"Stash","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":"contribution","docs":["The contribution these tickets are (`LotteryContribution`)."],"type":"pubkey"},{"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":"To","docs":["Where a share of a payment goes."],"type":{"kind":"enum","variants":[{"name":"Burn"},{"name":"Pool","fields":["u8"]},{"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":["u8"]},{"name":"Mint","fields":["pubkey"]},{"name":"Vest","fields":["pubkey"]}]}},{"name":"Toll","docs":["A share of every payout of a farm's rewards (basis points, rounded up), taken before the player's","part moves, and where it goes."],"type":{"kind":"struct","fields":[{"name":"bps","type":"u16"},{"name":"to","type":{"defined":{"name":"Sink"}}}]}},{"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":"leaving","docs":["What started its wait on the way out (`Farm::unbond`), still in the seat."],"type":"u64"},{"name":"toll","docs":["What the farm's toll took of the rewards paid."],"type":"u64"}]}},{"name":"Verdict","type":{"kind":"enum","variants":[{"name":"Open"},{"name":"Won"},{"name":"Off"}]}},{"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":"Withdrawn","docs":["A player took out `amount` tokens whose unbonding wait was over (`Farm::unbond`)."],"type":{"kind":"struct","fields":[{"name":"project","type":"pubkey"},{"name":"farm","type":"u32"},{"name":"player","type":"pubkey"},{"name":"seat","type":"pubkey"},{"name":"amount","type":"u64"}]}},{"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":"Tokens","fields":[{"name":"mint","type":"pubkey"},{"name":"amount","type":"u64"}]},{"name":"Nft","fields":[{"name":"stash","type":"u32"},{"name":"nft","type":"pubkey"}]},{"name":"Roll","fields":["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":"BADGE_SEED","docs":["`[\"badge\", grant, incarnation, nft]`: how many times the NFT an open grant's gate asks for","claimed it the open way. A seed of its own: a voucher's person (32 bytes its key chooses) never","names a badge's count."],"type":"bytes","value":"[98, 97, 100, 103, 101]"},{"name":"BOX_SEED","docs":["`[\"box\", project, box id]`"],"type":"bytes","value":"[98, 111, 120]"},{"name":"CODE_SEED","docs":["`[\"code\", grant, incarnation, key]`: how many claims one voucher key signed (a promo code's)."],"type":"bytes","value":"[99, 111, 100, 101]"},{"name":"CONTEST_SEED","docs":["`[\"contest\", project, id]`, its pot at `[\"pot\", contest]`, and one player's stake at","`[\"entry\", contest, player]` (a wallet backs one side, `OtherSide`)."],"type":"bytes","value":"[99, 111, 110, 116, 101, 115, 116]"},{"name":"CONTRIBUTION_SEED","docs":["`[\"contribution\", lottery, player, nonce]`: one purchase of a lottery's tickets."],"type":"bytes","value":"[99, 111, 110, 116, 114, 105, 98, 117, 116, 105, 111, 110]"},{"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":"ENTRY_SEED","type":"bytes","value":"[101, 110, 116, 114, 121]"},{"name":"ESCROW_LAMPORTS","docs":["Put in the order on every purchase, with the fee: what settling pays a collectible's rent with","(a Core asset with our plugins costs about 0.004 SOL), so anyone can settle without the player","signing twice. What is left goes back to the player when the order closes."],"type":"u64","value":"6000000"},{"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_FUNDS_SEED","docs":["Ticket consideration, kept apart from the prize pot until the round is drawn."],"type":"bytes","value":"[108, 111, 116, 116, 101, 114, 121, 95, 102, 117, 110, 100, 115]"},{"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_SLOTS","docs":["A lottery draw the oracle has not answered this many slots after it was asked for (7 days at","400 ms a slot) lets anyone cancel the round and refund it."],"type":"u64","value":"1512000"},{"name":"MAX_CONTEST_SECONDS","docs":["The furthest off a contest's result may be due (5 years): a time written in milliseconds is","refused, as it would keep the contest from ever being off by itself."],"type":"i64","value":"157680000"},{"name":"MAX_FEE_LAMPORTS","docs":["The most either flat fee can ever be: 0.01 SOL."],"type":"u64","value":"10000000"},{"name":"MAX_RECEIPT_ROUNDS","docs":["The maximum paid voucher rounds per wallet and grant incarnation. Claims remain bounded","in memory and retain their consumed rounds for that incarnation."],"type":"u32","value":"256"},{"name":"MAX_SCHEDULE_SECONDS","docs":["The latest a sealed schedule's last run may fall, from when it is written: 10 years (a cliff of a","year and years of vesting fit; a time written in milliseconds doesn't)."],"type":"i64","value":"315360000"},{"name":"MAX_SEALED_RUNS","docs":["The most runs a sealed schedule may have. Each call is one run, so a last run thousands of","millions of calls away would never come and its vault would keep what is left: 10,000 runs is a","run a day for over 27 years, or one an hour for over a year."],"type":"u32","value":"10000"},{"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":"PERSON_SEED","docs":["`[\"person\", grant, incarnation, person_hash]`: how many times one person claimed a grant."],"type":"bytes","value":"[112, 101, 114, 115, 111, 110]"},{"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":"PROJECT_SEED","docs":["`[\"project\", creator, id]`: a project (`state::Project`)."],"type":"bytes","value":"[112, 114, 111, 106, 101, 99, 116]"},{"name":"RECEIPT_SEED","docs":["`[\"receipt\", record, wallet]`: how many times a wallet used a box or recipe. Grant and lottery","receipts add their incarnation before the wallet; grants retain paid rounds and list revision","(`instructions/counter.rs`)."],"type":"bytes","value":"[114, 101, 99, 101, 105, 112, 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":"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_SLOTS","docs":["A box still waiting for its roll after this many slots (about 10 minutes) can be refunded."],"type":"u64","value":"1500"},{"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":"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]"}]};
|