@xgamesfun/solana 0.20.1 → 0.25.0

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.
Files changed (112) hide show
  1. package/README.md +95 -52
  2. package/bin/xsolana.mjs +23 -8
  3. package/examples/blind-forge.json +2 -4
  4. package/examples/coin-flip-arena.json +4 -12
  5. package/examples/duel-arena.json +1 -4
  6. package/examples/elements-set.json +2 -9
  7. package/examples/expedition-guild.json +1 -8
  8. package/examples/fair-presale.json +1 -3
  9. package/examples/guild-missions.json +3 -10
  10. package/examples/halving-seasons.json +4 -9
  11. package/examples/hero-trials.json +15 -6
  12. package/examples/holder-den.json +38 -0
  13. package/examples/holders-drop.json +105 -0
  14. package/examples/ideas.json +788 -788
  15. package/examples/match-predictions.json +24 -0
  16. package/examples/merge-2048.json +5 -5
  17. package/examples/nft-raffle.json +1 -0
  18. package/examples/pack-league.json +108 -0
  19. package/examples/paper-hands-farm.json +4 -16
  20. package/examples/partner-vault.json +20 -7
  21. package/examples/sacrifice-raffle.json +2 -10
  22. package/examples/shelter-fair.json +1 -0
  23. package/examples/stakers-draw.json +4 -15
  24. package/examples/star-fleet.json +1 -8
  25. package/examples/starforce.json +6 -6
  26. package/examples/stride-sneakers.json +164 -0
  27. package/examples/trade-in-shop.json +2 -3
  28. package/js/approve/details.mjs +122 -52
  29. package/js/approve/ed25519.mjs +5 -1
  30. package/js/approve/live-check.mjs +83 -26
  31. package/js/approve/page.html +217 -78
  32. package/js/approve/page.js +43 -15
  33. package/js/approve/server.mjs +290 -73
  34. package/js/chain/base58.js +7 -1
  35. package/js/chain/borsh.js +24 -11
  36. package/js/chain/bytes.js +11 -8
  37. package/js/chain/core.js +35 -7
  38. package/js/chain/curve.js +1 -1
  39. package/js/chain/lookup.js +124 -36
  40. package/js/chain/mint.js +6 -2
  41. package/js/chain/pda.js +2 -2
  42. package/js/chain/programs.js +6 -6
  43. package/js/chain/rpc.js +44 -16
  44. package/js/chain/token.js +13 -2
  45. package/js/chain/token2022.js +55 -16
  46. package/js/chain/tx.js +32 -22
  47. package/js/client/accounts.js +653 -131
  48. package/js/client/compressed.js +4 -3
  49. package/js/client/grant.js +267 -83
  50. package/js/client/idl/loot.js +1 -1
  51. package/js/client/idl/loot.json +2406 -2176
  52. package/js/client/index.js +1 -0
  53. package/js/client/ix.js +3059 -664
  54. package/js/client/pda.js +39 -33
  55. package/js/client/policy.js +52 -24
  56. package/js/client/random.js +70 -0
  57. package/js/client/sizes.js +414 -16
  58. package/js/client/traits.js +14 -5
  59. package/js/connect/connect.mjs +59 -17
  60. package/js/economy/check.mjs +4153 -725
  61. package/js/economy/cost.mjs +403 -64
  62. package/js/economy/examples.mjs +176 -35
  63. package/js/economy/explain.mjs +466 -111
  64. package/js/economy/guide.mjs +296 -72
  65. package/js/economy/legal.mjs +12 -6
  66. package/js/economy/live.mjs +83 -19
  67. package/js/economy/model.mjs +462 -124
  68. package/js/economy/plan.mjs +1306 -219
  69. package/js/economy/schema.json +390 -484
  70. package/js/economy/secrets.mjs +17 -7
  71. package/js/economy/simulate.mjs +883 -223
  72. package/js/economy/txsize.mjs +15 -3
  73. package/js/economy/validate.mjs +61 -24
  74. package/js/mcp/server.mjs +42 -14
  75. package/js/mcp/tools.mjs +307 -88
  76. package/js/play/index.js +2864 -619
  77. package/js/play/keys.js +193 -0
  78. package/js/results/index.js +223 -30
  79. package/js/results/server.js +230 -0
  80. package/js/results/wire.js +64 -16
  81. package/package.json +6 -4
  82. package/release.json +5 -5
  83. package/skills/xsolana-economy/SKILL.md +39 -21
  84. package/skills/xsolana-economy/references/after-launch.md +58 -38
  85. package/skills/xsolana-economy/references/apps.md +97 -50
  86. package/skills/xsolana-economy/references/sentence-to-spec.md +148 -121
  87. package/skills/xsolana-economy/references/telling-the-person.md +61 -17
  88. package/types/chain/core.d.ts +4 -2
  89. package/types/chain/lookup.d.ts +5 -2
  90. package/types/chain/rpc.d.ts +3 -1
  91. package/types/client/accounts.d.ts +217 -56
  92. package/types/client/grant.d.ts +72 -27
  93. package/types/client/idl/loot.d.ts +602 -549
  94. package/types/client/index.d.ts +1 -0
  95. package/types/client/ix.d.ts +3884 -247
  96. package/types/client/pda.d.ts +22 -16
  97. package/types/client/policy.d.ts +39 -14
  98. package/types/client/random.d.ts +26 -0
  99. package/types/client/sizes.d.ts +93 -5
  100. package/types/economy/check.d.mts +5 -10
  101. package/types/economy/cost.d.mts +2 -1
  102. package/types/economy/guide.d.mts +5 -0
  103. package/types/economy/live.d.mts +16 -1
  104. package/types/economy/model.d.mts +151 -38
  105. package/types/economy/plan.d.mts +237 -194
  106. package/types/economy/simulate.d.mts +21 -13
  107. package/types/mcp/tools.d.mts +21 -13
  108. package/types/play/index.d.ts +453 -53
  109. package/types/play/keys.d.ts +51 -0
  110. package/types/results/index.d.ts +7 -6
  111. package/types/results/server.d.ts +126 -0
  112. package/types/results/wire.d.ts +1 -1
@@ -10,12 +10,13 @@ export declare const FEES: Readonly<{
10
10
  * on `open_box` (order.rs), whoever sends `draw_lottery` (lottery.rs, its `payer`), the authority on `roll`
11
11
  * (roll.rs). Measured on devnet: 500,000 lamports per open.
12
12
  */
13
- export declare const ORACLE_FEE = 500000n;
13
+ export declare const ORACLE_FEE = 800000n;
14
14
  /**
15
- * Put in the order itself on every purchase, with the player fee on top of it (order.rs: ESCROW_LAMPORTS + fee); what
16
- * a collectible's rent doesn't use goes back at settle, and a refund returns all of it (constants.rs).
15
+ * What js/play's throwaway settle key is funded with, in the purchase's own transaction, for each prize its settle may
16
+ * open or mint (`loot.SETTLE_RENT_UNIT`): whoever settles pays that rent, the order lends nothing. What the settle
17
+ * doesn't spend goes back to the player when the key empties itself, and all of it when the roll fails.
17
18
  */
18
- export declare const ESCROW_LAMPORTS = 6000000n;
19
+ export declare const SETTLE_RENT_UNIT = 6000000n;
19
20
  /** Rent: (bytes + 128) × 5,080 lamports, as `solana rent` reads it on devnet and mainnet-beta. */
20
21
  export declare const RENT_PER_BYTE = 5080n;
21
22
  export declare const ACCOUNT_OVERHEAD = 128n;
@@ -35,29 +36,36 @@ export declare const COLLECTIBLE_RENT = 3100000n;
35
36
  export declare const SIGNATURE_FEE = 5000n;
36
37
  export declare const LAMPORTS_PER_SOL = 1000000000n;
37
38
  export declare const WSOL = "So11111111111111111111111111111111111111112";
38
- /** The program's limits. */
39
+ /** The limits a spec meets: the chain's (the oracle's answer carries 21 accounts; a farm names a tier and a recipe a
40
+ * collectible's place in a byte; Bubblegum keeps a compressed NFT's link in 200 bytes and its name in 32) and the two
41
+ * caps that keep a farm's numbers from overflowing. Since loot 0.22 the program caps no count or size of its own. */
39
42
  export declare const LIMITS: Readonly<{
40
- shares: 4;
41
- entries: 8;
42
43
  callbackAccounts: 21;
43
- lines: 8;
44
- collectiblesPerCraft: 8;
45
- places: 8;
46
- tiers: 4;
47
- boosts: 4;
48
- growths: 4;
49
- gates: 4;
50
- odds: 4;
44
+ tiers: 256;
45
+ collectiblesPerCraft: 255;
51
46
  vouchers: 3;
52
- deciders: 3;
53
- gateWallets: 16;
54
- nameBytes: 32;
55
- uriBytes: 200;
56
- keyBytes: 32;
47
+ compressedNameBytes: 32;
48
+ compressedUriBytes: 200;
57
49
  maxBoostBps: 1000000;
58
50
  maxTierBps: 110000;
51
+ boxEntries: 128;
52
+ boxSlots: 32;
53
+ boxOdds: 32;
54
+ boxFates: 64;
55
+ entryPrizes: 14;
56
+ itemTraits: 64;
57
+ traitKeyBytes: 64;
58
+ recipeLines: 48;
59
+ farmRules: 32;
60
+ growthSteps: 128;
61
+ contestSides: 1024;
62
+ deciders: 32;
63
+ collections: 32;
64
+ lotteryRuns: 64;
65
+ farmEnds: 100000;
59
66
  }>;
60
- /** Attribute names the program writes itself, which a recipe cannot copy and `Set` cannot change (craft.rs, make.rs). */
67
+ /** Attribute names the program writes itself, which a recipe cannot copy and `Set` cannot change (craft.rs, make.rs),
68
+ * and the two a collectible's life keeps (`lifeLines`: its uses and its next use). */
61
69
  export declare const RESERVED_ATTRIBUTES: readonly string[];
62
70
  export declare const RARITIES: readonly string[];
63
71
  /** A refusal raised while reading a value; the checker turns it into a refusal with a code. */
@@ -79,18 +87,43 @@ export declare function toBps(percent: any): number | null;
79
87
  /** "7d" → 604800. A number is seconds already. */
80
88
  export declare function toSeconds(duration: any): number;
81
89
  /**
82
- * How long what lands in a farm's rewards pool takes to be released to its seats, in seconds (a farm that shares its
83
- * pool, `farm.rs` `release_span`): its longest lock tier, and a day at least.
90
+ * How long what lands in a farm's rewards vault takes to be released to its seats, in seconds (a farm that shares what
91
+ * lands, `farm.rs` `release_span`): its longest lock tier, and a day at least.
84
92
  */
85
93
  export declare const releaseSeconds: (f: any) => number;
86
94
  /** A farm's release span in words: "a day", "30 days", "36 hours". */
87
95
  export declare function releaseWords(f: any): string;
96
+ /**
97
+ * What a run sent late does, in words (schedule.rs `catches_up`): a sealed schedule's fixed amount pays every run due;
98
+ * any other run pays once, for the latest run due, and the runs before it lapse.
99
+ */
100
+ export declare const lateRunWords: (s: any) => "a run missed is missed: one sent late pays once, for the latest run due, and the runs before it lapse" | "a run sent late pays every run due since";
101
+ /**
102
+ * Whether a farm's boost reads a number its own growth writes (`refresh_seat` writes it): each level counts from when it is
103
+ * written, so a page or a keeper should refresh seats.
104
+ */
105
+ export declare const boostReadsGrowth: (f: any) => any;
106
+ /** A box's roll against what is in stock, in words (order.rs): the odds stay as written, whatever is left. */
107
+ export declare const STOCK_WORDS = "The odds stay as written whatever is in stock: a draw that lands on an outcome that can\u2019t be given then (its pool short of the whole amount, its item or stash gone) is not made, no other outcome takes its place, and that draw\u2019s worth of the price goes back at the settle; with no draw made at all, a paid open fails and is refunded, and a free roll goes back to waiting";
108
+ /**
109
+ * What a box that rolls does once an outcome can't be given (`whenOut`, order.rs `WhenOut`), in words. `sold`: it is
110
+ * sold (an open checks the stock); a box only other routes roll (a prize, a mission) never stops a sale.
111
+ */
112
+ export declare function whenOutWords(b: any, { sold }?: {
113
+ sold?: boolean | undefined;
114
+ }): "The odds stay as written whatever is in stock: a draw that lands on an outcome that can’t be given then (its pool short of the whole amount, its item or stash gone) is not made, no other outcome takes its place, and that draw’s worth of the price goes back at the settle; with no draw made at all, a paid open fails and is refunded, and a free roll goes back to waiting. A free roll (a prize, a recipe’s, a mission’s chest) is on the odds as written too: a draw on an outcome that is out misses and gives nothing back (a pack keeps what its other draws won; a roll that drew nothing waits to be asked again), so emptying a shared source before asking steers nothing. A pack that should draw among what is left needs \"whenOut\": \"drawLeft\"" | "When an outcome runs out (an item sold out, a pool short of its prize, a stash empty), a roll draws among the outcomes still there by their written weights, so the others’ chances rise; with nothing left at all, a free roll waits to be asked again and a paid one is refunded" | "When an outcome runs out (an item sold out, a pool short of its prize, a stash empty), the box keeps selling while its first draw has anything left, and a roll draws among the outcomes still there by their written weights: the others’ chances rise as one runs out, so a player can empty a common outcome to make a rare one likelier (a box selling a rare prize should stop selling instead, the default)" | "When an outcome runs out, the box stops selling: it isn’t sold while anything an outcome takes (an item’s units left, a pool’s tokens, a stash’s NFTs) couldn’t cover, at the most any outcome sharing it takes in one draw, this purchase’s draws and those of purchases still waiting for the oracle, so every roll is on the odds as written and nobody can buy their way to a refund on every miss; it sells again once the project restocks or edits the box (an outcome whose odds shrink with stock needs no cover). An outcome emptied another way all the same (another route sharing its pool, item or stash) makes no draw, no other outcome taking its place, and gives back that draw’s worth of the price at the settle; with no draw made at all, the open is refunded";
88
115
  /**
89
116
  * What the end of a sharing farm that `runs` means, in words, or null (no end, or a fixed rate): its release keeps its
90
- * pace, so what it has not let go by the end stays in the pool, the project's, and so does what a seat gives back after
91
- * the end; a seat that may be dead (a watched NFT sold, an upkeep run out) is refreshed a release span before it.
117
+ * pace, so what it has not let go by the end stays in its vault, free for the authority to take back, and so does what
118
+ * a seat forfeits after the end.
92
119
  */
93
120
  export declare function farmEndWords(f: any): string | null;
121
+ /**
122
+ * The token a farm's rewards are in (`rewards`, a token key): by default its staked token, or for a farm of
123
+ * collectibles the project's currency. One that names a pool (as farms did before they had a vault of their own) is
124
+ * read as that pool's token, and the checker refuses it.
125
+ */
126
+ export declare function farmRewardsToken(f: any, tokens: any, currencyKey: any, poolCurrency?: Map<any, any>): any;
94
127
  /** A raise's or a shift's `by`: a number, or for a time a duration, which may be negative ("-1d"). */
95
128
  export declare function toBy(by: any): any;
96
129
  /** "publish", "publish+7d" or a date → Unix seconds, counted from `now` (Unix seconds) for the first two. */
@@ -130,8 +163,9 @@ export declare function model(economy: any, { now }?: {
130
163
  /** The project's number among its owner's: its address is ["project", owner, number]. */
131
164
  projectNumber: any;
132
165
  items: any;
133
- pools: any[];
166
+ pools: any;
134
167
  stashes: any;
168
+ tables: any;
135
169
  boxes: never[];
136
170
  payments: any;
137
171
  recipes: any;
@@ -155,12 +189,12 @@ export declare function model(economy: any, { now }?: {
155
189
  export declare function stashNfts(s: any): any;
156
190
  /**
157
191
  * A prize as the spec writes it (`$defs/prize`), read the one way: a line { gives, … } as a recipe's `out` lines are:
158
- * "item" (`item`), "tokens" (`amount`, `from` "mint" with `currency`, or "pool:<key>"), "share" (`percent` of `pool`),
192
+ * "item" (`item`), "tokens" (`amount`, `from` "mint" with `currency`, or "pool:<key>"),
159
193
  * "nft" (`nft`, an address the stash `stash` lists) or "roll" (a roll of `box`; in a recipe, on the collectible kept
160
194
  * at `on`). A grant's older `gives` ({ item }, { pool, amount }, { roll }) reads as its line. Null for none.
161
195
  */
162
196
  export declare function prizeLine(p: any): any;
163
- /** The pool a prize line pays from: a share's, or tokens' "pool:<key>". */
197
+ /** The pool a prize line pays from: tokens' "pool:<key>". */
164
198
  export declare const prizePool: (p: any) => any;
165
199
  /** The token a prize line pays in: its pool's, or the one it mints. */
166
200
  export declare const prizeToken: (p: any, m: any) => any;
@@ -203,25 +237,49 @@ export declare function rollsOf(m: any): {
203
237
  by: any;
204
238
  route: any;
205
239
  }[];
206
- /** A prize line in words: "one Badge", "100 GOLD from “rewards”", "100 GOLD, minted", "10% of “jackpot”", "the NFT ab12…cd34 of “vault”", "a roll of “Chest”". */
240
+ /** A prize line in words: "one Badge", "100 GOLD from “rewards”", "100 GOLD, minted", "the NFT ab12…cd34 of “vault”", "a roll of “Chest”". */
207
241
  export declare function prizeWords(p: any, m: any): string;
208
242
  /**
209
- * What one box outcome gives (catalog.rs, at most three prizes an entry), each in the box's own words: "item",
210
- * "pay" (a fixed amount from a pool), "share" (a percent of a pool), "stash" (an NFT of a stash at random), "mint"
243
+ * What one box outcome gives (catalog.rs), each in the box's own words: "item", "pay" (a fixed amount from a pool),
244
+ * "stash" (an NFT of a stash at random), "mint"
211
245
  * (tokens minted), "nft" (one NFT a stash lists) or "roll" (a roll of another box). A bundle gives its `prizes`; "burn"
212
246
  * and "nothing" give none.
213
247
  */
214
248
  export declare function outcomeParts(o: any): any;
215
- /** Whether an outcome burns the payment in place of the box's split: "burn", or a bundle that says `burns`. */
216
- export declare const outcomeBurns: (o: any) => boolean;
217
249
  /** Whether a box leaves its outcome to the oracle (catalog.rs `rolls`): more than one outcome, or an NFT at random. */
218
- export declare const boxRolls: (b: any) => any;
219
- /** Whether a box sells with `buy`, in one transaction (buy.rs): it doesn't roll, and rolls on no NFT. */
220
- export declare const boxBuys: (b: any) => boolean;
221
- /** A lottery's place as { percent, prize }: a number is a share of the pot and no prize. */
250
+ /** How many draws one open of a box makes: its slots' counts, or one. */
251
+ export declare const drawsOf: (b: any) => any;
252
+ /** Whether a box's prize costs its settle a collectible's rent: an item minted as a Core NFT, or a fresh compressed one
253
+ * (its traits' Sheet). A plain compressed NFT costs no rent. */
254
+ export declare const holdsRent: (p: any, m: any) => boolean;
255
+ /**
256
+ * The units of `SETTLE_RENT_UNIT` a settle of box `b`'s order may spend (`loot.settleRent`), which js/play funds its
257
+ * throwaway settle key with and gets back unspent: for each draw, each part of the richest outcome that opens an
258
+ * account (a collectible, a fresh compressed NFT's Sheet, a stash's NFT); once an order, each source of tokens it may
259
+ * pay, and the fate of the NFT it rolls on.
260
+ */
261
+ export declare function settleUnits(b: any, m: any): number;
262
+ export declare const boxRolls: (b: any, m: any) => any;
263
+ /** Whether a box sells with `buy`, in one transaction (buy.rs): it doesn't roll and rolls on no NFT, any number of draws
264
+ * a sale (a fixed pack: its prizes given once for each draw). */
265
+ export declare const boxBuys: (b: any, m: any) => boolean;
266
+ /**
267
+ * What a recipe's lines owe the life of each collectible they take (an item's `life`), as the program's needs and
268
+ * raises (craft.rs `Need`, `Raise`), at each collectible's place in the recipe (each burned unit, then each kept one, in
269
+ * line order; a pay line takes none): ready after `readyAfter` (`made` older than it), for `lasts` (`made` within it),
270
+ * on every line that takes it; `uses` times (`used` raised by 1 up to it) and a `cooldown` (`next_use` passed, then
271
+ * raised to that far from now) on a line that uses it or takes it staked; a renew line counts its uses from 0 again.
272
+ * { needs, raises }, in the program's shapes.
273
+ */
274
+ export declare function lifeLines(r: any, m: any): {
275
+ needs: any[];
276
+ raises: any[];
277
+ };
278
+ /** A lottery's place as { percent, prize }: a number is a percent of what the round pays from, and no prize. */
222
279
  export declare const placeOf: (p: any) => {
223
280
  percent: any;
224
281
  prize: any;
282
+ times: any;
225
283
  };
226
284
  /** "pool:house" → { kind: 'pool', key: 'house' }; "burn" → { kind: 'burn' }. */
227
285
  export declare function destination(to: any): {
@@ -237,7 +295,8 @@ export declare const sharesOf: (split: any) => any;
237
295
  * The program's `To` for a destination, with pool indexes resolved (the IDL's own shape). A wallet ("wallet:<address>")
238
296
  * is paid at its own token account of the part's currency (the program opens it when it is not there); "treasury" is the game's treasury wallet's; "chosen"
239
297
  * (or "chosen:<item>") is the one the buyer names when they buy; "lottery:<key>" is that lottery's pot
240
- * ("@pot:<id>", which the plan resolves once the game is known).
298
+ * ("@pot:<lottery id>:<pot id>") and "farm:<key>" that farm's rewards vault ("@rewards:<id>"), which the plan resolves once the game is
299
+ * known.
241
300
  */
242
301
  export declare function toEnum(to: any, m: any): "Burn" | "Treasury" | {
243
302
  Pool: any[];
@@ -342,6 +401,51 @@ export declare const windowOf: (part: any, now: any) => {
342
401
  opens_at: bigint;
343
402
  closes_at: bigint;
344
403
  };
404
+ /** Whether lottery `l` pays its places from a pot it keeps (`"pot"`, `PaysFrom::Pot`); false when each round pays from
405
+ * its own ticket money and sends what its places leave to `"rest"` (`PaysFrom::Round`). */
406
+ export declare const keepsPot: (l: any) => boolean;
407
+ /** The program's `PaysFrom` for a lottery: `{ Pot: [id] }` or `{ Round: { rest } }` (its `rest` as `toEnum` gives it). */
408
+ export declare const paysFromOf: (l: any, m: any) => {
409
+ Pot: any[];
410
+ Round?: undefined;
411
+ } | {
412
+ Pot?: undefined;
413
+ Round: {
414
+ rest: string | {
415
+ Pool: any[];
416
+ Account?: undefined;
417
+ Wallet?: undefined;
418
+ Chosen?: undefined;
419
+ Holder?: undefined;
420
+ } | {
421
+ Pool?: undefined;
422
+ Account: (string | undefined)[];
423
+ Wallet?: undefined;
424
+ Chosen?: undefined;
425
+ Holder?: undefined;
426
+ } | {
427
+ Pool?: undefined;
428
+ Account?: undefined;
429
+ Wallet: (string | undefined)[];
430
+ Chosen?: undefined;
431
+ Holder?: undefined;
432
+ } | {
433
+ Pool?: undefined;
434
+ Account?: undefined;
435
+ Wallet?: undefined;
436
+ Chosen: {
437
+ item: any;
438
+ };
439
+ Holder?: undefined;
440
+ } | {
441
+ Pool?: undefined;
442
+ Account?: undefined;
443
+ Wallet?: undefined;
444
+ Chosen?: undefined;
445
+ Holder: (string | undefined)[];
446
+ };
447
+ };
448
+ };
345
449
  /** A lottery's split of ticket money: its own, and "cutPercent" as a share to the treasury. */
346
450
  export declare const lotterySplit: (l: any) => any[];
347
451
  /** The program's `Effect` for a spec effect: a flat share, or a share per point of the attribute. */
@@ -361,3 +465,12 @@ export declare function weights(box: any): any;
361
465
  export declare function poolTakers(m: any): any[];
362
466
  /** Every place the spec sends money into a pool. */
363
467
  export declare function poolFillers(m: any): any[];
468
+ /**
469
+ * Every place the spec sends money into a farm's rewards vault ("farm:<key>"): a split's share, a schedule that pays it,
470
+ * a craft that pays it, the owner's seed, an early exit's fee into its own vault. [{ farm, by, how }]
471
+ */
472
+ export declare function farmFillers(m: any): {
473
+ farm: any;
474
+ by: string;
475
+ how: string;
476
+ }[];