@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.
@@ -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. When the NFT can't move now (frozen for now, or its collection refuses the move), or `home` is
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
- /** The listing of `asset` (one account read), or null: { listing, asset, maker, mint, deal, renter, until }. */
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
- /** The project's listings, a maker's (`maker`) or all: one search of the program's accounts. */
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
- /** Takes a listed NFT home (its maker). While a rental runs it only stops the listing; call again once it is over. */
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
- /** The raffle's owner takes the NFT back out of lottery `id`'s own stash once nothing promises it (the lottery ended, or no place names it). */
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, an auction they won (or one off by the clock: their bid back), a lottery place they
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<any[]>;
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 winner of a contest of NFTs picks
911
- * which loser's NFT they take (`{ take: asset }`, the NFT of a losing entry that still holds one; the first found by default):
912
- * only the winner can, while any are left.
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
  /**