@xgamesfun/solana 0.26.4 → 0.27.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/README.md +9 -9
- package/js/client/compressed.js +12 -5
- package/js/client/idl/loot.js +1 -1
- package/js/client/idl/loot.json +53 -7
- package/js/client/ix.js +44 -9
- package/js/economy/check.mjs +2 -2
- package/js/economy/guide.mjs +1 -1
- package/js/mcp/tools.mjs +1 -0
- package/js/play/index.js +943 -283
- package/package.json +1 -1
- package/release.json +5 -5
- package/skills/xsolana-economy/SKILL.md +4 -4
- package/skills/xsolana-economy/references/apps.md +10 -0
- package/skills/xsolana-economy/references/trust-and-cheating.md +4 -3
- package/types/client/compressed.d.ts +5 -2
- package/types/client/ix.d.ts +38 -7
- package/types/play/index.d.ts +375 -141
package/types/play/index.d.ts
CHANGED
|
@@ -60,13 +60,14 @@ export declare function solanaApp({ spec, rpcUrl, rpc, wallet, programs, now, ke
|
|
|
60
60
|
settled: null;
|
|
61
61
|
says: string;
|
|
62
62
|
} | {
|
|
63
|
-
says?: undefined;
|
|
64
63
|
order: any;
|
|
65
64
|
won: any;
|
|
66
65
|
assets: any;
|
|
67
66
|
settled: any;
|
|
68
67
|
parts?: any[] | undefined;
|
|
69
68
|
asset?: any;
|
|
69
|
+
gone?: any[] | undefined;
|
|
70
|
+
says?: string | undefined;
|
|
70
71
|
} | {
|
|
71
72
|
signature: any;
|
|
72
73
|
assets: any[];
|
|
@@ -80,13 +81,14 @@ export declare function solanaApp({ spec, rpcUrl, rpc, wallet, programs, now, ke
|
|
|
80
81
|
settled: null;
|
|
81
82
|
says: string;
|
|
82
83
|
} | {
|
|
83
|
-
says?: undefined;
|
|
84
84
|
order: any;
|
|
85
85
|
won: any;
|
|
86
86
|
assets: any;
|
|
87
87
|
settled: any;
|
|
88
88
|
parts?: any[] | undefined;
|
|
89
89
|
asset?: any;
|
|
90
|
+
gone?: any[] | undefined;
|
|
91
|
+
says?: string | undefined;
|
|
90
92
|
})[] | undefined;
|
|
91
93
|
} | {
|
|
92
94
|
orders: ({
|
|
@@ -98,70 +100,24 @@ export declare function solanaApp({ spec, rpcUrl, rpc, wallet, programs, now, ke
|
|
|
98
100
|
settled: null;
|
|
99
101
|
says: string;
|
|
100
102
|
} | {
|
|
101
|
-
says?: undefined;
|
|
102
|
-
order: any;
|
|
103
|
-
won: any;
|
|
104
|
-
assets: any;
|
|
105
|
-
settled: any;
|
|
106
|
-
parts?: any[] | undefined;
|
|
107
|
-
asset?: any;
|
|
108
|
-
})[];
|
|
109
|
-
won: any[];
|
|
110
|
-
assets: any[];
|
|
111
|
-
parts: any[];
|
|
112
|
-
} | {
|
|
113
|
-
order: any;
|
|
114
|
-
settled: string;
|
|
115
|
-
says: string;
|
|
116
|
-
orders: ({
|
|
117
|
-
order: any;
|
|
118
|
-
settled: string;
|
|
119
|
-
says: string;
|
|
120
|
-
} | {
|
|
121
|
-
order: any;
|
|
122
|
-
settled: null;
|
|
123
|
-
says: string;
|
|
124
|
-
} | {
|
|
125
|
-
says?: undefined;
|
|
126
|
-
order: any;
|
|
127
|
-
won: any;
|
|
128
|
-
assets: any;
|
|
129
|
-
settled: any;
|
|
130
|
-
parts?: any[] | undefined;
|
|
131
|
-
asset?: any;
|
|
132
|
-
})[];
|
|
133
|
-
won: any[];
|
|
134
|
-
assets: any[];
|
|
135
|
-
parts: any[];
|
|
136
|
-
} | {
|
|
137
|
-
order: any;
|
|
138
|
-
settled: null;
|
|
139
|
-
says: string;
|
|
140
|
-
orders: ({
|
|
141
|
-
order: any;
|
|
142
|
-
settled: string;
|
|
143
|
-
says: string;
|
|
144
|
-
} | {
|
|
145
|
-
order: any;
|
|
146
|
-
settled: null;
|
|
147
|
-
says: string;
|
|
148
|
-
} | {
|
|
149
|
-
says?: undefined;
|
|
150
103
|
order: any;
|
|
151
104
|
won: any;
|
|
152
105
|
assets: any;
|
|
153
106
|
settled: any;
|
|
154
107
|
parts?: any[] | undefined;
|
|
155
108
|
asset?: any;
|
|
109
|
+
gone?: any[] | undefined;
|
|
110
|
+
says?: string | undefined;
|
|
156
111
|
})[];
|
|
157
112
|
won: any[];
|
|
158
113
|
assets: any[];
|
|
159
114
|
parts: any[];
|
|
160
115
|
} | {
|
|
161
|
-
says?: undefined;
|
|
162
116
|
order: any;
|
|
163
117
|
settled: any;
|
|
164
118
|
asset?: any;
|
|
119
|
+
gone?: any[] | undefined;
|
|
120
|
+
says?: string | undefined;
|
|
165
121
|
orders: ({
|
|
166
122
|
order: any;
|
|
167
123
|
settled: string;
|
|
@@ -171,13 +127,14 @@ export declare function solanaApp({ spec, rpcUrl, rpc, wallet, programs, now, ke
|
|
|
171
127
|
settled: null;
|
|
172
128
|
says: string;
|
|
173
129
|
} | {
|
|
174
|
-
says?: undefined;
|
|
175
130
|
order: any;
|
|
176
131
|
won: any;
|
|
177
132
|
assets: any;
|
|
178
133
|
settled: any;
|
|
179
134
|
parts?: any[] | undefined;
|
|
180
135
|
asset?: any;
|
|
136
|
+
gone?: any[] | undefined;
|
|
137
|
+
says?: string | undefined;
|
|
181
138
|
})[];
|
|
182
139
|
won: any[];
|
|
183
140
|
assets: any[];
|
|
@@ -197,13 +154,14 @@ export declare function solanaApp({ spec, rpcUrl, rpc, wallet, programs, now, ke
|
|
|
197
154
|
settled: null;
|
|
198
155
|
says: string;
|
|
199
156
|
} | {
|
|
200
|
-
says?: undefined;
|
|
201
157
|
order: any;
|
|
202
158
|
won: any;
|
|
203
159
|
assets: any;
|
|
204
160
|
settled: any;
|
|
205
161
|
parts?: any[] | undefined;
|
|
206
162
|
asset?: any;
|
|
163
|
+
gone?: any[] | undefined;
|
|
164
|
+
says?: string | undefined;
|
|
207
165
|
} | {
|
|
208
166
|
signature: any;
|
|
209
167
|
assets: any[];
|
|
@@ -217,13 +175,14 @@ export declare function solanaApp({ spec, rpcUrl, rpc, wallet, programs, now, ke
|
|
|
217
175
|
settled: null;
|
|
218
176
|
says: string;
|
|
219
177
|
} | {
|
|
220
|
-
says?: undefined;
|
|
221
178
|
order: any;
|
|
222
179
|
won: any;
|
|
223
180
|
assets: any;
|
|
224
181
|
settled: any;
|
|
225
182
|
parts?: any[] | undefined;
|
|
226
183
|
asset?: any;
|
|
184
|
+
gone?: any[] | undefined;
|
|
185
|
+
says?: string | undefined;
|
|
227
186
|
})[] | undefined;
|
|
228
187
|
} | {
|
|
229
188
|
orders: ({
|
|
@@ -235,70 +194,24 @@ export declare function solanaApp({ spec, rpcUrl, rpc, wallet, programs, now, ke
|
|
|
235
194
|
settled: null;
|
|
236
195
|
says: string;
|
|
237
196
|
} | {
|
|
238
|
-
says?: undefined;
|
|
239
197
|
order: any;
|
|
240
198
|
won: any;
|
|
241
199
|
assets: any;
|
|
242
200
|
settled: any;
|
|
243
201
|
parts?: any[] | undefined;
|
|
244
202
|
asset?: any;
|
|
203
|
+
gone?: any[] | undefined;
|
|
204
|
+
says?: string | undefined;
|
|
245
205
|
})[];
|
|
246
206
|
won: any[];
|
|
247
207
|
assets: any[];
|
|
248
208
|
parts: any[];
|
|
249
209
|
} | {
|
|
250
|
-
order: any;
|
|
251
|
-
settled: string;
|
|
252
|
-
says: string;
|
|
253
|
-
orders: ({
|
|
254
|
-
order: any;
|
|
255
|
-
settled: string;
|
|
256
|
-
says: string;
|
|
257
|
-
} | {
|
|
258
|
-
order: any;
|
|
259
|
-
settled: null;
|
|
260
|
-
says: string;
|
|
261
|
-
} | {
|
|
262
|
-
says?: undefined;
|
|
263
|
-
order: any;
|
|
264
|
-
won: any;
|
|
265
|
-
assets: any;
|
|
266
|
-
settled: any;
|
|
267
|
-
parts?: any[] | undefined;
|
|
268
|
-
asset?: any;
|
|
269
|
-
})[];
|
|
270
|
-
won: any[];
|
|
271
|
-
assets: any[];
|
|
272
|
-
parts: any[];
|
|
273
|
-
} | {
|
|
274
|
-
order: any;
|
|
275
|
-
settled: null;
|
|
276
|
-
says: string;
|
|
277
|
-
orders: ({
|
|
278
|
-
order: any;
|
|
279
|
-
settled: string;
|
|
280
|
-
says: string;
|
|
281
|
-
} | {
|
|
282
|
-
order: any;
|
|
283
|
-
settled: null;
|
|
284
|
-
says: string;
|
|
285
|
-
} | {
|
|
286
|
-
says?: undefined;
|
|
287
|
-
order: any;
|
|
288
|
-
won: any;
|
|
289
|
-
assets: any;
|
|
290
|
-
settled: any;
|
|
291
|
-
parts?: any[] | undefined;
|
|
292
|
-
asset?: any;
|
|
293
|
-
})[];
|
|
294
|
-
won: any[];
|
|
295
|
-
assets: any[];
|
|
296
|
-
parts: any[];
|
|
297
|
-
} | {
|
|
298
|
-
says?: undefined;
|
|
299
210
|
order: any;
|
|
300
211
|
settled: any;
|
|
301
212
|
asset?: any;
|
|
213
|
+
gone?: any[] | undefined;
|
|
214
|
+
says?: string | undefined;
|
|
302
215
|
orders: ({
|
|
303
216
|
order: any;
|
|
304
217
|
settled: string;
|
|
@@ -308,13 +221,14 @@ export declare function solanaApp({ spec, rpcUrl, rpc, wallet, programs, now, ke
|
|
|
308
221
|
settled: null;
|
|
309
222
|
says: string;
|
|
310
223
|
} | {
|
|
311
|
-
says?: undefined;
|
|
312
224
|
order: any;
|
|
313
225
|
won: any;
|
|
314
226
|
assets: any;
|
|
315
227
|
settled: any;
|
|
316
228
|
parts?: any[] | undefined;
|
|
317
229
|
asset?: any;
|
|
230
|
+
gone?: any[] | undefined;
|
|
231
|
+
says?: string | undefined;
|
|
318
232
|
})[];
|
|
319
233
|
won: any[];
|
|
320
234
|
assets: any[];
|
|
@@ -330,13 +244,14 @@ export declare function solanaApp({ spec, rpcUrl, rpc, wallet, programs, now, ke
|
|
|
330
244
|
settled: null;
|
|
331
245
|
says: string;
|
|
332
246
|
} | {
|
|
333
|
-
says?: undefined;
|
|
334
247
|
order: any;
|
|
335
248
|
won: any;
|
|
336
249
|
assets: any;
|
|
337
250
|
settled: any;
|
|
338
251
|
parts?: any[] | undefined;
|
|
339
252
|
asset?: any;
|
|
253
|
+
gone?: any[] | undefined;
|
|
254
|
+
says?: string | undefined;
|
|
340
255
|
}>;
|
|
341
256
|
/**
|
|
342
257
|
* Finds the settle keys a page that closed left holding the player's SOL, and finishes their jobs: a key whose order
|
|
@@ -369,7 +284,9 @@ export declare function solanaApp({ spec, rpcUrl, rpc, wallet, programs, now, ke
|
|
|
369
284
|
key: string;
|
|
370
285
|
swept: bigint;
|
|
371
286
|
})[]>;
|
|
372
|
-
/** Gives an order's payment back once its time has come (a roll that failed or never came).
|
|
287
|
+
/** Gives an order's payment back once its time has come (a roll that failed or never came). An NFT the project
|
|
288
|
+
* held for the roll goes back with it; one it no longer holds (its collection took it back or burned it) is not
|
|
289
|
+
* looked for, and the whole payment goes back all the same. */
|
|
373
290
|
refund(orderAddress: any): Promise<any>;
|
|
374
291
|
/** Asks the oracle for a roll a mission, a recipe or a prize made (its player or the project's keys may; the asker
|
|
375
292
|
* pays the oracle). Its first ask fixes its odds: the player's profile, and an NFT they show (`shown`; by default
|
|
@@ -550,18 +467,31 @@ export declare function solanaApp({ spec, rpcUrl, rpc, wallet, programs, now, ke
|
|
|
550
467
|
settled: null;
|
|
551
468
|
says: string;
|
|
552
469
|
} | {
|
|
553
|
-
says?: undefined;
|
|
554
470
|
order: any;
|
|
555
471
|
won: any;
|
|
556
472
|
assets: any;
|
|
557
473
|
settled: any;
|
|
558
474
|
parts?: any[] | undefined;
|
|
559
475
|
asset?: any;
|
|
476
|
+
gone?: any[] | undefined;
|
|
477
|
+
says?: string | undefined;
|
|
560
478
|
} | undefined;
|
|
561
479
|
}>;
|
|
562
480
|
/**
|
|
563
481
|
* Hands an NFT of any kind to the project until a time (a hold): `seconds` from now, or `{ until }` (Unix seconds).
|
|
564
482
|
* The hold's address names its end. Returns { signature, freeAt }.
|
|
483
|
+
*
|
|
484
|
+
* Like every route that hands an NFT in (`stakeNft` in escrow, `borrow`, `enter`, `bid`, `listForSale`,
|
|
485
|
+
* `listForRent`, a ticket paid with an NFT, a box that rolls on one), it first clears what an earlier owner of the
|
|
486
|
+
* NFT left in this project: a hold or a listing that stayed open when whoever controls the NFT's collection took it
|
|
487
|
+
* out of the project's hands. Left open, such a record could take the NFT once the project holds it again. The
|
|
488
|
+
* player holds the NFT now, so the program closes each on that proof (a hold by `release`, a listing by
|
|
489
|
+
* `take_listing`, nothing sent or paid), in front of the deposit in the same transaction, or in a transaction of
|
|
490
|
+
* their own before it when the two do not fit one. The closes cost the player their transaction fee only: each
|
|
491
|
+
* record's rent goes to whoever that record names (a hold's payer, a listing's maker), never to the player. Only
|
|
492
|
+
* what can't be closed still refuses the deposit, in words (a listing whose rental still runs: the program keeps
|
|
493
|
+
* it until the rental has run); `acceptLeftover: true` goes ahead all the same. NFTs of the project's own
|
|
494
|
+
* collections are not read.
|
|
565
495
|
*/
|
|
566
496
|
hold(asset: any, seconds: any, { acceptLeftover, ...others }?: Readonly<Record<string, any>>): Promise<{
|
|
567
497
|
signature: any;
|
|
@@ -613,7 +543,9 @@ export declare function solanaApp({ spec, rpcUrl, rpc, wallet, programs, now, ke
|
|
|
613
543
|
* borrower in the same instruction: one prompt. `repay`: the debt the payer was shown (`loan()`'s, in base units);
|
|
614
544
|
* the program refuses any other (`TermsChanged`). An NFT its collection took back or burned while the project held
|
|
615
545
|
* it is refused here, before anything is signed: the program takes no repayment for it, and the borrower keeps what
|
|
616
|
-
* they borrowed.
|
|
546
|
+
* they borrowed. Such a loan is closed for nothing instead: `claims()` lists it for its borrower and its lender, and
|
|
547
|
+
* `claim` of it closes the hold (nothing is repaid, and the hold's rent goes back to whoever paid it). When the NFT
|
|
548
|
+
* can't move now (frozen for now, or its collection refuses the move), or `home` is
|
|
617
549
|
* false, the money goes alone, so the loan does not fall due: the hold is then over, and anyone sends the NFT home
|
|
618
550
|
* once it can move (`claims()` lists it). A compressed NFT is proven in the same transaction; the money alone for one
|
|
619
551
|
* whose proof keeps going out of date goes without it. Returns { signature, home }, and `says` when the NFT waits.
|
|
@@ -644,7 +576,9 @@ export declare function solanaApp({ spec, rpcUrl, rpc, wallet, programs, now, ke
|
|
|
644
576
|
* Bids `amount` (whole units) on an auction. The bid it tops goes back to its bidder in the same transaction
|
|
645
577
|
* (the program opens their account again if they closed it, paid by this bidder). In SOL, only what the player's
|
|
646
578
|
* wrapped-SOL account does not hold already is wrapped, and the account stays open: if this bid is topped, it comes
|
|
647
|
-
* back there.
|
|
579
|
+
* back there. In an auction of NFT bids, an NFT of the topped bid that the project no longer holds (its collection
|
|
580
|
+
* took it back or burned it) can't go back: the bid makes it a hold for its bidder and closes that hold on the
|
|
581
|
+
* proof in the same transaction, so a high bid with an NFT gone can still be topped.
|
|
648
582
|
*/
|
|
649
583
|
bid(auctionKey: any, amount: any, { shown, listProof, nfts, acceptLeftover, ...others }?: Readonly<Record<string, any>>): Promise<any>;
|
|
650
584
|
/**
|
|
@@ -659,23 +593,42 @@ export declare function solanaApp({ spec, rpcUrl, rpc, wallet, programs, now, ke
|
|
|
659
593
|
* the sale is called off on that evidence, which anyone may: the bid goes back to its bidder (`{ calledOff: true }`).
|
|
660
594
|
* With no bid, the lot goes home to its seller. An end too big for one transaction otherwise makes each NFT that may
|
|
661
595
|
* be a hold one, and sends each on with a release after it (`releases`).
|
|
596
|
+
* An NFT that is gone is never sent, whatever its kind, and the result says so (`gone: true`, and `says`, what the
|
|
597
|
+
* end did in words): a lot gone with no bid stays where it is and the auction closes, its rent to its seller; a
|
|
598
|
+
* sale with the lot or an NFT of the bid gone is called off, and what the project still holds goes back; for the
|
|
599
|
+
* project's own lot, or a lot that went first, the end passes the bid's NFT that is gone over and pays the rest.
|
|
600
|
+
* A hold made at the end whose NFT goes before its release is closed on the proof: its entry in `releases` is
|
|
601
|
+
* then `{ asset, gone: true, closed }`, `closed` the signature.
|
|
662
602
|
*/
|
|
663
603
|
endAuction(auctionKey: any, { holders, ...others }?: Readonly<Record<string, any>>): Promise<{
|
|
664
|
-
says?: undefined;
|
|
665
604
|
owedPaid: any;
|
|
666
605
|
waiting?: undefined;
|
|
606
|
+
gone: boolean;
|
|
607
|
+
says: string;
|
|
608
|
+
paid: any;
|
|
609
|
+
} | {
|
|
610
|
+
owedPaid: any;
|
|
611
|
+
waiting?: undefined;
|
|
612
|
+
gone?: undefined;
|
|
613
|
+
says?: undefined;
|
|
667
614
|
paid: any;
|
|
668
|
-
releases?: undefined;
|
|
669
615
|
} | {
|
|
670
616
|
owedPaid: any;
|
|
671
617
|
waiting?: undefined;
|
|
672
618
|
paid: null;
|
|
673
619
|
says: string;
|
|
674
|
-
releases?: undefined;
|
|
675
620
|
} | {
|
|
676
|
-
says?: undefined;
|
|
677
621
|
owedPaid: any;
|
|
678
622
|
waiting?: undefined;
|
|
623
|
+
gone: boolean;
|
|
624
|
+
says: string;
|
|
625
|
+
paid: any;
|
|
626
|
+
releases: any[];
|
|
627
|
+
} | {
|
|
628
|
+
owedPaid: any;
|
|
629
|
+
waiting?: undefined;
|
|
630
|
+
gone?: undefined;
|
|
631
|
+
says?: undefined;
|
|
679
632
|
paid: any;
|
|
680
633
|
releases: any[];
|
|
681
634
|
} | {
|
|
@@ -687,7 +640,6 @@ export declare function solanaApp({ spec, rpcUrl, rpc, wallet, programs, now, ke
|
|
|
687
640
|
waiting: boolean;
|
|
688
641
|
says: string;
|
|
689
642
|
} | {
|
|
690
|
-
says?: undefined;
|
|
691
643
|
winner?: any;
|
|
692
644
|
asset?: any;
|
|
693
645
|
waiting?: undefined;
|
|
@@ -702,23 +654,34 @@ export declare function solanaApp({ spec, rpcUrl, rpc, wallet, programs, now, ke
|
|
|
702
654
|
settled: null;
|
|
703
655
|
says: string;
|
|
704
656
|
} | {
|
|
705
|
-
says?: undefined;
|
|
706
657
|
order: any;
|
|
707
658
|
won: any;
|
|
708
659
|
assets: any;
|
|
709
660
|
settled: any;
|
|
710
661
|
parts?: any[] | undefined;
|
|
711
662
|
asset?: any;
|
|
663
|
+
gone?: any[] | undefined;
|
|
664
|
+
says?: string | undefined;
|
|
712
665
|
} | undefined;
|
|
713
|
-
} | {
|
|
714
666
|
says?: undefined;
|
|
667
|
+
} | {
|
|
715
668
|
winner?: any;
|
|
716
669
|
asset?: any;
|
|
717
670
|
waiting?: undefined;
|
|
718
671
|
signature: any;
|
|
719
672
|
lotFirst: boolean;
|
|
673
|
+
gone: boolean;
|
|
674
|
+
says: string;
|
|
675
|
+
paid: any;
|
|
676
|
+
} | {
|
|
677
|
+
winner?: any;
|
|
678
|
+
asset?: any;
|
|
679
|
+
waiting?: undefined;
|
|
680
|
+
signature: any;
|
|
681
|
+
lotFirst: boolean;
|
|
682
|
+
gone?: undefined;
|
|
683
|
+
says?: undefined;
|
|
720
684
|
paid: any;
|
|
721
|
-
releases?: undefined;
|
|
722
685
|
} | {
|
|
723
686
|
winner?: any;
|
|
724
687
|
asset?: any;
|
|
@@ -727,14 +690,24 @@ export declare function solanaApp({ spec, rpcUrl, rpc, wallet, programs, now, ke
|
|
|
727
690
|
lotFirst: boolean;
|
|
728
691
|
paid: null;
|
|
729
692
|
says: string;
|
|
730
|
-
releases?: undefined;
|
|
731
693
|
} | {
|
|
732
|
-
says?: undefined;
|
|
733
694
|
winner?: any;
|
|
734
695
|
asset?: any;
|
|
735
696
|
waiting?: undefined;
|
|
736
697
|
signature: any;
|
|
737
698
|
lotFirst: boolean;
|
|
699
|
+
gone: boolean;
|
|
700
|
+
says: string;
|
|
701
|
+
paid: any;
|
|
702
|
+
releases: any[];
|
|
703
|
+
} | {
|
|
704
|
+
winner?: any;
|
|
705
|
+
asset?: any;
|
|
706
|
+
waiting?: undefined;
|
|
707
|
+
signature: any;
|
|
708
|
+
lotFirst: boolean;
|
|
709
|
+
gone?: undefined;
|
|
710
|
+
says?: undefined;
|
|
738
711
|
paid: any;
|
|
739
712
|
releases: any[];
|
|
740
713
|
}>;
|
|
@@ -745,21 +718,34 @@ export declare function solanaApp({ spec, rpcUrl, rpc, wallet, programs, now, ke
|
|
|
745
718
|
* an NFT of the winning bid is gone (`endAuction` does it then). Refused once the lot went to its winner (`CantCallOff`).
|
|
746
719
|
*/
|
|
747
720
|
callOffSale(auctionKey: any, { ...others }?: Readonly<Record<string, any>>): Promise<{
|
|
748
|
-
says?: undefined;
|
|
749
721
|
owedPaid: any;
|
|
750
722
|
waiting?: undefined;
|
|
723
|
+
gone: boolean;
|
|
724
|
+
says: string;
|
|
725
|
+
paid: any;
|
|
726
|
+
} | {
|
|
727
|
+
owedPaid: any;
|
|
728
|
+
waiting?: undefined;
|
|
729
|
+
gone?: undefined;
|
|
730
|
+
says?: undefined;
|
|
751
731
|
paid: any;
|
|
752
|
-
releases?: undefined;
|
|
753
732
|
} | {
|
|
754
733
|
owedPaid: any;
|
|
755
734
|
waiting?: undefined;
|
|
756
735
|
paid: null;
|
|
757
736
|
says: string;
|
|
758
|
-
releases?: undefined;
|
|
759
737
|
} | {
|
|
760
|
-
says?: undefined;
|
|
761
738
|
owedPaid: any;
|
|
762
739
|
waiting?: undefined;
|
|
740
|
+
gone: boolean;
|
|
741
|
+
says: string;
|
|
742
|
+
paid: any;
|
|
743
|
+
releases: any[];
|
|
744
|
+
} | {
|
|
745
|
+
owedPaid: any;
|
|
746
|
+
waiting?: undefined;
|
|
747
|
+
gone?: undefined;
|
|
748
|
+
says?: undefined;
|
|
763
749
|
paid: any;
|
|
764
750
|
releases: any[];
|
|
765
751
|
} | {
|
|
@@ -771,7 +757,6 @@ export declare function solanaApp({ spec, rpcUrl, rpc, wallet, programs, now, ke
|
|
|
771
757
|
waiting: boolean;
|
|
772
758
|
says: string;
|
|
773
759
|
} | {
|
|
774
|
-
says?: undefined;
|
|
775
760
|
winner?: any;
|
|
776
761
|
asset?: any;
|
|
777
762
|
waiting?: undefined;
|
|
@@ -786,23 +771,34 @@ export declare function solanaApp({ spec, rpcUrl, rpc, wallet, programs, now, ke
|
|
|
786
771
|
settled: null;
|
|
787
772
|
says: string;
|
|
788
773
|
} | {
|
|
789
|
-
says?: undefined;
|
|
790
774
|
order: any;
|
|
791
775
|
won: any;
|
|
792
776
|
assets: any;
|
|
793
777
|
settled: any;
|
|
794
778
|
parts?: any[] | undefined;
|
|
795
779
|
asset?: any;
|
|
780
|
+
gone?: any[] | undefined;
|
|
781
|
+
says?: string | undefined;
|
|
796
782
|
} | undefined;
|
|
797
|
-
} | {
|
|
798
783
|
says?: undefined;
|
|
784
|
+
} | {
|
|
785
|
+
winner?: any;
|
|
786
|
+
asset?: any;
|
|
787
|
+
waiting?: undefined;
|
|
788
|
+
signature: any;
|
|
789
|
+
lotFirst: boolean;
|
|
790
|
+
gone: boolean;
|
|
791
|
+
says: string;
|
|
792
|
+
paid: any;
|
|
793
|
+
} | {
|
|
799
794
|
winner?: any;
|
|
800
795
|
asset?: any;
|
|
801
796
|
waiting?: undefined;
|
|
802
797
|
signature: any;
|
|
803
798
|
lotFirst: boolean;
|
|
799
|
+
gone?: undefined;
|
|
800
|
+
says?: undefined;
|
|
804
801
|
paid: any;
|
|
805
|
-
releases?: undefined;
|
|
806
802
|
} | {
|
|
807
803
|
winner?: any;
|
|
808
804
|
asset?: any;
|
|
@@ -811,14 +807,24 @@ export declare function solanaApp({ spec, rpcUrl, rpc, wallet, programs, now, ke
|
|
|
811
807
|
lotFirst: boolean;
|
|
812
808
|
paid: null;
|
|
813
809
|
says: string;
|
|
814
|
-
releases?: undefined;
|
|
815
810
|
} | {
|
|
816
|
-
says?: undefined;
|
|
817
811
|
winner?: any;
|
|
818
812
|
asset?: any;
|
|
819
813
|
waiting?: undefined;
|
|
820
814
|
signature: any;
|
|
821
815
|
lotFirst: boolean;
|
|
816
|
+
gone: boolean;
|
|
817
|
+
says: string;
|
|
818
|
+
paid: any;
|
|
819
|
+
releases: any[];
|
|
820
|
+
} | {
|
|
821
|
+
winner?: any;
|
|
822
|
+
asset?: any;
|
|
823
|
+
waiting?: undefined;
|
|
824
|
+
signature: any;
|
|
825
|
+
lotFirst: boolean;
|
|
826
|
+
gone?: undefined;
|
|
827
|
+
says?: undefined;
|
|
822
828
|
paid: any;
|
|
823
829
|
releases: any[];
|
|
824
830
|
}>;
|
|
@@ -839,24 +845,76 @@ export declare function solanaApp({ spec, rpcUrl, rpc, wallet, programs, now, ke
|
|
|
839
845
|
* `maxPeriods` at once. Nobody can end a rental early; the next renter takes it once one is over, until it is unlisted.
|
|
840
846
|
*/
|
|
841
847
|
listForRent(asset: any, { price, lasts, maxPeriods, currency, shares, acceptLeftover, ...others }?: Readonly<Record<string, any>>): Promise<any>;
|
|
842
|
-
/**
|
|
848
|
+
/**
|
|
849
|
+
* The listing of `asset` (one account read), or null: { listing, asset, maker, mint, deal, renter, until }. One more
|
|
850
|
+
* read says whether the project still holds the NFT: when whoever controls its collection took it back or burned
|
|
851
|
+
* it, the listing is flagged `gone` with `says`, what that means in words. There is then nothing to buy or rent,
|
|
852
|
+
* and the listing can be closed for nothing (`unlist` by its maker, `closeGone` by anyone).
|
|
853
|
+
*/
|
|
843
854
|
listing(asset: any): Promise<any>;
|
|
844
855
|
/** Who rents `asset` now (one account read, then a check that the project still holds it), or null. */
|
|
845
856
|
rentedTo(asset: any): Promise<any>;
|
|
846
|
-
/**
|
|
857
|
+
/**
|
|
858
|
+
* The project's listings, a maker's (`maker`) or all: one search of the program's accounts, then one read of the
|
|
859
|
+
* listed NFTs together, which flags a listing `gone` (with `says`) when the project no longer holds its NFT: a
|
|
860
|
+
* Core asset held by another or burned, a Token Metadata NFT whose token left the project's account. A compressed
|
|
861
|
+
* NFT is not read here (an indexer's answer for each): `listing(asset)` says it for one.
|
|
862
|
+
*/
|
|
847
863
|
listings({ maker, ...others }?: Readonly<Record<string, any>>): Promise<any>;
|
|
848
864
|
/**
|
|
849
865
|
* Buys a listed NFT at the terms the player saw: `listing`, as `listing()` or `listings()` showed it. It is
|
|
850
866
|
* required: the terms signed are those, never the listing read now, so a price or a share changed since is refused.
|
|
867
|
+
* A listing whose NFT the project no longer holds (its collection took it back or burned it) is refused in words
|
|
868
|
+
* before anything is signed: nothing is there to buy, and anyone can close that listing for nothing (`closeGone`).
|
|
851
869
|
*/
|
|
852
870
|
buyListing(asset: any, { listing, ...others }?: Readonly<Record<string, any>>): Promise<any>;
|
|
853
871
|
/**
|
|
854
872
|
* Rents a listed NFT for `periods` periods, at the terms the player saw: `listing`, as `listing()` or `listings()`
|
|
855
|
-
* showed it (required, as for `buyListing`).
|
|
873
|
+
* showed it (required, as for `buyListing`). One whose NFT the project no longer holds is refused in words, as
|
|
874
|
+
* `buyListing` refuses it.
|
|
856
875
|
*/
|
|
857
876
|
rentListing(asset: any, { periods, listing, ...others }?: Readonly<Record<string, any>>): Promise<any>;
|
|
858
|
-
/**
|
|
877
|
+
/**
|
|
878
|
+
* Takes a listed NFT home (its maker). While a rental runs it only stops the listing; call again once it is over.
|
|
879
|
+
* A listing whose NFT the project no longer holds (its collection took it back or burned it) closes without it, on
|
|
880
|
+
* that proof: nothing is sent, and the listing's rent comes back to its maker. While a rental of it still runs,
|
|
881
|
+
* that close too only stops the listing, and closes it once the rental has run.
|
|
882
|
+
*/
|
|
859
883
|
unlist(asset: any): Promise<any>;
|
|
884
|
+
/**
|
|
885
|
+
* Closes what this project still records of an NFT it no longer holds (`asset`: whoever controls its collection
|
|
886
|
+
* took it out of the project's hands or burned it): each hold of it (`release`), its listing (`take_listing`),
|
|
887
|
+
* and its row on each of the project's stashes that lists it (`stash`, out), on the proof that it is gone. Anyone
|
|
888
|
+
* may, at any time, also while a hold runs and for a loan before it is due: nothing is sent or paid, and a loan's
|
|
889
|
+
* debt ends unpaid. The sender pays the transaction's fee only; each record's rent goes to whoever that record
|
|
890
|
+
* names (a hold's payer, a listing's maker), never to the sender, and a stash keeps the rent its row no longer
|
|
891
|
+
* needs (it goes to the sender only when that is one of the project's keys). With its row off a stash, no roll
|
|
892
|
+
* draws the NFT, and a prize that names it is passed over in place of failing on an NFT that can't move.
|
|
893
|
+
* What is left is in `waits`: a listing whose rental still runs (the program keeps a running rental, and the
|
|
894
|
+
* listing closes once it has run), and a lottery's own stash that lists the NFT (`kind` 'lottery-stash', with its
|
|
895
|
+
* `lottery`, the lottery's id): only the project's keys take a row out of that one (`unraffle`), gone or not.
|
|
896
|
+
* Refused in words, with nothing sent, when the project still holds the NFT or nothing shows it gone.
|
|
897
|
+
* Besides one search of the NFT's holds, this makes one search of the project's stashes, which returns every
|
|
898
|
+
* stash of the project whole (36 bytes for each NFT a stash lists): a stash's rows have no fixed place to look in.
|
|
899
|
+
* Returns { signature, closed: [{ kind, address }], unstashed: [{ address, id }], waits: [{ kind, address }] }:
|
|
900
|
+
* `closed` the holds and the listing it closed, `unstashed` the project's stashes it took the row off;
|
|
901
|
+
* `signature` is null when there was nothing to close.
|
|
902
|
+
*/
|
|
903
|
+
closeGone(asset: any): Promise<{
|
|
904
|
+
signature: any;
|
|
905
|
+
closed: {
|
|
906
|
+
kind: any;
|
|
907
|
+
address: any;
|
|
908
|
+
}[];
|
|
909
|
+
unstashed: {
|
|
910
|
+
address: any;
|
|
911
|
+
id: number;
|
|
912
|
+
}[];
|
|
913
|
+
waits: {
|
|
914
|
+
kind: any;
|
|
915
|
+
address: any;
|
|
916
|
+
}[];
|
|
917
|
+
}>;
|
|
860
918
|
/**
|
|
861
919
|
* The project's owner raffles an NFT they hold, as lottery `id`: the NFT goes into the lottery's own stash, where
|
|
862
920
|
* nothing but the lottery can take it while a place names it; the winner gets it before any ticket money moves.
|
|
@@ -867,7 +925,13 @@ export declare function solanaApp({ spec, rpcUrl, rpc, wallet, programs, now, ke
|
|
|
867
925
|
* owner they are.
|
|
868
926
|
*/
|
|
869
927
|
raffle(id: any, nft: any, { price, currency, drawsAt, minSold, perWallet, shares, ...others }?: Readonly<Record<string, any>>): Promise<any>;
|
|
870
|
-
/**
|
|
928
|
+
/**
|
|
929
|
+
* The raffle's owner takes the NFT back out of lottery `id`'s own stash once nothing promises it (the lottery
|
|
930
|
+
* ended, or no place names it). When the project no longer holds the NFT (its collection took it back or burned
|
|
931
|
+
* it), only its row comes off the stash, on that proof: nothing is sent, and the owner gets no NFT back. Only the
|
|
932
|
+
* project's owner or authority may, gone or not: a lottery's own stash is theirs alone (`NotAuthority` for anyone
|
|
933
|
+
* else; `closeGone` leaves it and says so). Returns the signature.
|
|
934
|
+
*/
|
|
871
935
|
unraffle(id: any, nft: any): Promise<any>;
|
|
872
936
|
/** Turns what waits in the player's wrapped-SOL account (a bid that was topped) into plain SOL. */
|
|
873
937
|
unwrap(): Promise<any>;
|
|
@@ -899,17 +963,187 @@ export declare function solanaApp({ spec, rpcUrl, rpc, wallet, programs, now, ke
|
|
|
899
963
|
}[]>;
|
|
900
964
|
/**
|
|
901
965
|
* What this player can finish now, themselves: a box to settle or refund, a contest entry to claim, a held
|
|
902
|
-
* collectible to take home,
|
|
966
|
+
* collectible to take home, a hold of theirs or a loan they made or took whose NFT the project no longer holds (its
|
|
967
|
+
* collection took it back or burned it: listed at any time, also while the hold runs, as a `release` flagged
|
|
968
|
+
* `gone`, whose claim closes the hold and sends nothing), an auction they won (or one off by the clock: their bid back), a lottery place they
|
|
903
969
|
* won, a draw that is due (anyone may reveal it, or ask again when the oracle never answered; it takes 0.0008
|
|
904
970
|
* SOL), and a drawn lottery's unpaid places, which anyone may pay so the next round can open. [{ kind, says, … }];
|
|
905
971
|
* a winner's first claim of a contest of tokens carries `potUnits` and `prizeUnits`, its part as the decision wrote
|
|
906
972
|
* it (base units, as text). Pass one to `claim`.
|
|
973
|
+
* A `pull`, a `contest` or an `auction` whose claim would hand out an NFT the project no longer holds is flagged
|
|
974
|
+
* `gone` too, with `assets` (those NFTs) and `says`, what the claim does about each in words: a ticket's NFT, a
|
|
975
|
+
* place's NFT, a contest's entry or a loser's NFT picked is not sent anywhere and its part closes; an auction with
|
|
976
|
+
* its lot or an NFT of its winning bid gone is called off, or ended without it. Show `says` before the player signs.
|
|
907
977
|
*/
|
|
908
|
-
claims(): Promise<
|
|
978
|
+
claims(): Promise<({
|
|
979
|
+
key?: undefined;
|
|
980
|
+
tree?: undefined;
|
|
981
|
+
gone?: undefined;
|
|
982
|
+
kind: string;
|
|
983
|
+
order: any;
|
|
984
|
+
says: string;
|
|
985
|
+
assets?: undefined;
|
|
986
|
+
round?: undefined;
|
|
987
|
+
asset?: undefined;
|
|
988
|
+
table?: undefined;
|
|
989
|
+
} | {
|
|
990
|
+
key?: undefined;
|
|
991
|
+
tree?: undefined;
|
|
992
|
+
order?: undefined;
|
|
993
|
+
kind: string;
|
|
994
|
+
id: any;
|
|
995
|
+
side: any;
|
|
996
|
+
gone: boolean;
|
|
997
|
+
assets: any[];
|
|
998
|
+
says: string;
|
|
999
|
+
potUnits?: string | undefined;
|
|
1000
|
+
prizeUnits?: string | undefined;
|
|
1001
|
+
round?: undefined;
|
|
1002
|
+
asset?: undefined;
|
|
1003
|
+
table?: undefined;
|
|
1004
|
+
} | {
|
|
1005
|
+
key?: undefined;
|
|
1006
|
+
tree?: undefined;
|
|
1007
|
+
gone?: undefined;
|
|
1008
|
+
order?: undefined;
|
|
1009
|
+
kind: string;
|
|
1010
|
+
id: any;
|
|
1011
|
+
side: any;
|
|
1012
|
+
says: string;
|
|
1013
|
+
potUnits?: string | undefined;
|
|
1014
|
+
prizeUnits?: string | undefined;
|
|
1015
|
+
assets?: undefined;
|
|
1016
|
+
round?: undefined;
|
|
1017
|
+
asset?: undefined;
|
|
1018
|
+
table?: undefined;
|
|
1019
|
+
} | {
|
|
1020
|
+
key?: undefined;
|
|
1021
|
+
tree?: undefined;
|
|
1022
|
+
order?: undefined;
|
|
1023
|
+
kind: string;
|
|
1024
|
+
asset: any;
|
|
1025
|
+
hold: any;
|
|
1026
|
+
gone: boolean;
|
|
1027
|
+
says: string;
|
|
1028
|
+
assets?: undefined;
|
|
1029
|
+
round?: undefined;
|
|
1030
|
+
table?: undefined;
|
|
1031
|
+
} | {
|
|
1032
|
+
key?: undefined;
|
|
1033
|
+
tree?: undefined;
|
|
1034
|
+
gone?: undefined;
|
|
1035
|
+
order?: undefined;
|
|
1036
|
+
kind: string;
|
|
1037
|
+
asset: any;
|
|
1038
|
+
hold: any;
|
|
1039
|
+
says: string;
|
|
1040
|
+
assets?: undefined;
|
|
1041
|
+
round?: undefined;
|
|
1042
|
+
table?: undefined;
|
|
1043
|
+
} | {
|
|
1044
|
+
key?: undefined;
|
|
1045
|
+
gone?: undefined;
|
|
1046
|
+
order?: undefined;
|
|
1047
|
+
kind: string;
|
|
1048
|
+
asset: string;
|
|
1049
|
+
tree: string;
|
|
1050
|
+
says: string;
|
|
1051
|
+
assets?: undefined;
|
|
1052
|
+
round?: undefined;
|
|
1053
|
+
table?: undefined;
|
|
1054
|
+
} | {
|
|
1055
|
+
tree?: undefined;
|
|
1056
|
+
order?: undefined;
|
|
1057
|
+
kind: string;
|
|
1058
|
+
key: any;
|
|
1059
|
+
gone: boolean;
|
|
1060
|
+
assets: any[];
|
|
1061
|
+
says: string;
|
|
1062
|
+
round?: undefined;
|
|
1063
|
+
asset?: undefined;
|
|
1064
|
+
table?: undefined;
|
|
1065
|
+
} | {
|
|
1066
|
+
tree?: undefined;
|
|
1067
|
+
gone?: undefined;
|
|
1068
|
+
order?: undefined;
|
|
1069
|
+
assets?: undefined;
|
|
1070
|
+
kind: string;
|
|
1071
|
+
key: any;
|
|
1072
|
+
says: string;
|
|
1073
|
+
round?: undefined;
|
|
1074
|
+
asset?: undefined;
|
|
1075
|
+
table?: undefined;
|
|
1076
|
+
} | {
|
|
1077
|
+
tree?: undefined;
|
|
1078
|
+
gone?: undefined;
|
|
1079
|
+
order?: undefined;
|
|
1080
|
+
assets?: undefined;
|
|
1081
|
+
kind: string;
|
|
1082
|
+
key: any;
|
|
1083
|
+
round: any;
|
|
1084
|
+
says: string;
|
|
1085
|
+
asset?: undefined;
|
|
1086
|
+
table?: undefined;
|
|
1087
|
+
} | {
|
|
1088
|
+
tree?: undefined;
|
|
1089
|
+
order?: undefined;
|
|
1090
|
+
kind: string;
|
|
1091
|
+
key: any;
|
|
1092
|
+
round: any;
|
|
1093
|
+
pulls: any;
|
|
1094
|
+
gone: boolean;
|
|
1095
|
+
assets: any[];
|
|
1096
|
+
says: string;
|
|
1097
|
+
asset?: undefined;
|
|
1098
|
+
table?: undefined;
|
|
1099
|
+
} | {
|
|
1100
|
+
tree?: undefined;
|
|
1101
|
+
gone?: undefined;
|
|
1102
|
+
order?: undefined;
|
|
1103
|
+
assets?: undefined;
|
|
1104
|
+
kind: string;
|
|
1105
|
+
key: any;
|
|
1106
|
+
round: any;
|
|
1107
|
+
pulls: any;
|
|
1108
|
+
says: string;
|
|
1109
|
+
asset?: undefined;
|
|
1110
|
+
table?: undefined;
|
|
1111
|
+
} | {
|
|
1112
|
+
key?: undefined;
|
|
1113
|
+
tree?: undefined;
|
|
1114
|
+
gone?: undefined;
|
|
1115
|
+
order?: undefined;
|
|
1116
|
+
assets?: undefined;
|
|
1117
|
+
round?: undefined;
|
|
1118
|
+
kind: string;
|
|
1119
|
+
asset: any;
|
|
1120
|
+
says: string;
|
|
1121
|
+
table?: undefined;
|
|
1122
|
+
} | {
|
|
1123
|
+
key?: undefined;
|
|
1124
|
+
tree?: undefined;
|
|
1125
|
+
gone?: undefined;
|
|
1126
|
+
order?: undefined;
|
|
1127
|
+
assets?: undefined;
|
|
1128
|
+
round?: undefined;
|
|
1129
|
+
asset?: undefined;
|
|
1130
|
+
kind: string;
|
|
1131
|
+
table: any;
|
|
1132
|
+
says: string;
|
|
1133
|
+
})[]>;
|
|
909
1134
|
/**
|
|
910
|
-
* Finishes one of `claims()`, signed by this player. Returns the signature. A
|
|
911
|
-
*
|
|
912
|
-
*
|
|
1135
|
+
* Finishes one of `claims()`, signed by this player. Returns the signature. A `release` flagged `gone` closes its
|
|
1136
|
+
* hold on the proof that the project no longer holds the NFT: nothing is sent, the hold's rent goes back to whoever
|
|
1137
|
+
* paid it, and a loan's debt ends unpaid. A winner of a contest of NFTs picks
|
|
1138
|
+
* which loser's NFT they take (`{ take: asset }`, the NFT of a losing entry that still holds one; by default the
|
|
1139
|
+
* first found that the project still holds): only the winner can, while any are left.
|
|
1140
|
+
* An NFT a lottery's round or a contest owes that the project no longer holds (its collection took it back or
|
|
1141
|
+
* burned it) is not sent anywhere, and the claim still finishes. A ticket whose price sends it on (burned, given,
|
|
1142
|
+
* stashed) settles on the proof with nothing moved. A ticket going back to its buyer, a place's NFT and a
|
|
1143
|
+
* contest's NFT are only handed out by the program, which reads nothing first: the claim has it make a hold of
|
|
1144
|
+
* that NFT (`["hold", nft, 0]`) and closes that hold on the proof right after, in the same transaction when it
|
|
1145
|
+
* fits. The signer pays that hold's rent and gets it back at once. The program's receipts for it are those of a
|
|
1146
|
+
* hold made (`Held`, and `PrizeGiven` for a place's prize) and then `NftGone`: no `Released`.
|
|
913
1147
|
*/
|
|
914
1148
|
claim(c: any, { take, build, ...others }?: Readonly<Record<string, any>>): Promise<any>;
|
|
915
1149
|
/**
|