@sudobility/auctions_contracts 0.1.12 → 0.1.13

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 (66) hide show
  1. package/README.md +86 -0
  2. package/dist/react-native/evm/evm-auction-client.d.ts +475 -0
  3. package/dist/react-native/evm/evm-auction-client.d.ts.map +1 -0
  4. package/dist/react-native/evm/evm-auction-client.js +606 -0
  5. package/dist/react-native/evm/evm-auction-client.js.map +1 -0
  6. package/dist/react-native/evm/index.d.ts +2 -0
  7. package/dist/react-native/evm/index.d.ts.map +1 -0
  8. package/dist/react-native/evm/index.js +2 -0
  9. package/dist/react-native/evm/index.js.map +1 -0
  10. package/dist/react-native/solana/index.d.ts +3 -0
  11. package/dist/react-native/solana/index.d.ts.map +1 -0
  12. package/dist/react-native/solana/index.js +3 -0
  13. package/dist/react-native/solana/index.js.map +1 -0
  14. package/dist/react-native/solana/solana-auction-client.d.ts +118 -0
  15. package/dist/react-native/solana/solana-auction-client.d.ts.map +1 -0
  16. package/dist/react-native/solana/solana-auction-client.js +604 -0
  17. package/dist/react-native/solana/solana-auction-client.js.map +1 -0
  18. package/dist/react-native/solana/types.d.ts +19 -0
  19. package/dist/react-native/solana/types.d.ts.map +1 -0
  20. package/dist/react-native/solana/types.js +7 -0
  21. package/dist/react-native/solana/types.js.map +1 -0
  22. package/dist/react-native/types/common.d.ts +181 -0
  23. package/dist/react-native/types/common.d.ts.map +1 -0
  24. package/dist/react-native/types/common.js +222 -0
  25. package/dist/react-native/types/common.js.map +1 -0
  26. package/dist/react-native/unified/index.d.ts +3 -0
  27. package/dist/react-native/unified/index.d.ts.map +1 -0
  28. package/dist/react-native/unified/index.js +3 -0
  29. package/dist/react-native/unified/index.js.map +1 -0
  30. package/dist/react-native/unified/onchain-auction-client.d.ts +90 -0
  31. package/dist/react-native/unified/onchain-auction-client.d.ts.map +1 -0
  32. package/dist/react-native/unified/onchain-auction-client.js +205 -0
  33. package/dist/react-native/unified/onchain-auction-client.js.map +1 -0
  34. package/dist/unified/evm/evm-auction-client.d.ts +475 -0
  35. package/dist/unified/evm/evm-auction-client.d.ts.map +1 -0
  36. package/dist/unified/evm/evm-auction-client.js +606 -0
  37. package/dist/unified/evm/evm-auction-client.js.map +1 -0
  38. package/dist/unified/evm/index.d.ts +2 -0
  39. package/dist/unified/evm/index.d.ts.map +1 -0
  40. package/dist/unified/evm/index.js +2 -0
  41. package/dist/unified/evm/index.js.map +1 -0
  42. package/dist/unified/solana/index.d.ts +3 -0
  43. package/dist/unified/solana/index.d.ts.map +1 -0
  44. package/dist/unified/solana/index.js +3 -0
  45. package/dist/unified/solana/index.js.map +1 -0
  46. package/dist/unified/solana/solana-auction-client.d.ts +118 -0
  47. package/dist/unified/solana/solana-auction-client.d.ts.map +1 -0
  48. package/dist/unified/solana/solana-auction-client.js +604 -0
  49. package/dist/unified/solana/solana-auction-client.js.map +1 -0
  50. package/dist/unified/solana/types.d.ts +19 -0
  51. package/dist/unified/solana/types.d.ts.map +1 -0
  52. package/dist/unified/solana/types.js +7 -0
  53. package/dist/unified/solana/types.js.map +1 -0
  54. package/dist/unified/types/common.d.ts +181 -0
  55. package/dist/unified/types/common.d.ts.map +1 -0
  56. package/dist/unified/types/common.js +222 -0
  57. package/dist/unified/types/common.js.map +1 -0
  58. package/dist/unified/unified/index.d.ts +3 -0
  59. package/dist/unified/unified/index.d.ts.map +1 -0
  60. package/dist/unified/unified/index.js +3 -0
  61. package/dist/unified/unified/index.js.map +1 -0
  62. package/dist/unified/unified/onchain-auction-client.d.ts +90 -0
  63. package/dist/unified/unified/onchain-auction-client.d.ts.map +1 -0
  64. package/dist/unified/unified/onchain-auction-client.js +205 -0
  65. package/dist/unified/unified/onchain-auction-client.js.map +1 -0
  66. package/package.json +1 -1
@@ -0,0 +1,205 @@
1
+ /**
2
+ * Unified Onchain Auction Client
3
+ * Stateless client that detects chain type and routes to appropriate platform client
4
+ */
5
+ import { ChainType, } from '../types/common.js';
6
+ /**
7
+ * Unified Onchain Auction Client
8
+ * Lazy-loads platform-specific clients to optimize bundle size
9
+ */
10
+ export class OnchainAuctionClient {
11
+ /**
12
+ * Lazy-load EVM client
13
+ */
14
+ async getEVMClient() {
15
+ if (!OnchainAuctionClient.evmClient) {
16
+ const { EVMAuctionClient } = await import('../evm/evm-auction-client.js');
17
+ OnchainAuctionClient.evmClient = new EVMAuctionClient();
18
+ }
19
+ return OnchainAuctionClient.evmClient;
20
+ }
21
+ /**
22
+ * Lazy-load Solana client
23
+ */
24
+ async getSolanaClient() {
25
+ if (!OnchainAuctionClient.solanaClient) {
26
+ const { SolanaAuctionClient } = await import('../solana/solana-auction-client.js');
27
+ OnchainAuctionClient.solanaClient = new SolanaAuctionClient();
28
+ }
29
+ return OnchainAuctionClient.solanaClient;
30
+ }
31
+ /**
32
+ * Detect wallet type
33
+ */
34
+ isEVMWallet(wallet) {
35
+ return 'walletClient' in wallet && 'publicClient' in wallet;
36
+ }
37
+ /**
38
+ * Detect chain type from ChainInfo
39
+ */
40
+ isEVMChain(chainInfo) {
41
+ return 'chainType' in chainInfo && chainInfo.chainType === ChainType.EVM;
42
+ }
43
+ // ============ Read Methods ============
44
+ /**
45
+ * Get auction details
46
+ */
47
+ async getAuction(chainInfo, auctionId, publicClientOrConnection) {
48
+ if (this.isEVMChain(chainInfo)) {
49
+ const client = await this.getEVMClient();
50
+ return client.getAuction(publicClientOrConnection, chainInfo, auctionId);
51
+ }
52
+ else {
53
+ const client = await this.getSolanaClient();
54
+ return client.getAuction(publicClientOrConnection, chainInfo, auctionId);
55
+ }
56
+ }
57
+ /**
58
+ * Get Traditional auction parameters
59
+ */
60
+ async getTraditionalParams(chainInfo, auctionId, publicClientOrConnection) {
61
+ if (this.isEVMChain(chainInfo)) {
62
+ const client = await this.getEVMClient();
63
+ return client.getTraditionalParams(publicClientOrConnection, chainInfo, auctionId);
64
+ }
65
+ else {
66
+ throw new Error('Solana not yet implemented');
67
+ }
68
+ }
69
+ /**
70
+ * Get Dutch auction parameters
71
+ */
72
+ async getDutchParams(chainInfo, auctionId, publicClientOrConnection) {
73
+ if (this.isEVMChain(chainInfo)) {
74
+ const client = await this.getEVMClient();
75
+ return client.getDutchParams(publicClientOrConnection, chainInfo, auctionId);
76
+ }
77
+ else {
78
+ throw new Error('Solana not yet implemented');
79
+ }
80
+ }
81
+ /**
82
+ * Get current Dutch auction price
83
+ */
84
+ async getDutchCurrentPrice(chainInfo, auctionId, publicClientOrConnection) {
85
+ if (this.isEVMChain(chainInfo)) {
86
+ const client = await this.getEVMClient();
87
+ return client.getDutchCurrentPrice(publicClientOrConnection, chainInfo, auctionId);
88
+ }
89
+ else {
90
+ throw new Error('Solana not yet implemented');
91
+ }
92
+ }
93
+ /**
94
+ * Get Penny auction parameters
95
+ */
96
+ async getPennyParams(chainInfo, auctionId, publicClientOrConnection) {
97
+ if (this.isEVMChain(chainInfo)) {
98
+ const client = await this.getEVMClient();
99
+ return client.getPennyParams(publicClientOrConnection, chainInfo, auctionId);
100
+ }
101
+ else {
102
+ throw new Error('Solana not yet implemented');
103
+ }
104
+ }
105
+ // ============ Write Methods ============
106
+ /**
107
+ * Create a Traditional auction
108
+ */
109
+ async createTraditionalAuction(wallet, chainInfo, params) {
110
+ if (this.isEVMWallet(wallet) && this.isEVMChain(chainInfo)) {
111
+ const client = await this.getEVMClient();
112
+ return client.createTraditionalAuction(wallet, chainInfo, params);
113
+ }
114
+ else {
115
+ throw new Error('Solana not yet implemented');
116
+ }
117
+ }
118
+ /**
119
+ * Create a Dutch auction
120
+ */
121
+ async createDutchAuction(wallet, chainInfo, params) {
122
+ if (this.isEVMWallet(wallet) && this.isEVMChain(chainInfo)) {
123
+ const client = await this.getEVMClient();
124
+ return client.createDutchAuction(wallet, chainInfo, params);
125
+ }
126
+ else {
127
+ throw new Error('Solana not yet implemented');
128
+ }
129
+ }
130
+ /**
131
+ * Create a Penny auction
132
+ */
133
+ async createPennyAuction(wallet, chainInfo, params) {
134
+ if (this.isEVMWallet(wallet) && this.isEVMChain(chainInfo)) {
135
+ const client = await this.getEVMClient();
136
+ return client.createPennyAuction(wallet, chainInfo, params);
137
+ }
138
+ else {
139
+ throw new Error('Solana not yet implemented');
140
+ }
141
+ }
142
+ /**
143
+ * Place a bid on a Traditional auction
144
+ */
145
+ async bidTraditional(wallet, chainInfo, auctionId, amount) {
146
+ if (this.isEVMWallet(wallet) && this.isEVMChain(chainInfo)) {
147
+ const client = await this.getEVMClient();
148
+ return client.bidTraditional(wallet, chainInfo, auctionId, amount);
149
+ }
150
+ else {
151
+ throw new Error('Solana not yet implemented');
152
+ }
153
+ }
154
+ /**
155
+ * Buy at current price in a Dutch auction
156
+ */
157
+ async buyDutch(wallet, chainInfo, auctionId) {
158
+ if (this.isEVMWallet(wallet) && this.isEVMChain(chainInfo)) {
159
+ const client = await this.getEVMClient();
160
+ return client.buyDutch(wallet, chainInfo, auctionId);
161
+ }
162
+ else {
163
+ throw new Error('Solana not yet implemented');
164
+ }
165
+ }
166
+ /**
167
+ * Place a bid on a Penny auction
168
+ */
169
+ async bidPenny(wallet, chainInfo, auctionId) {
170
+ if (this.isEVMWallet(wallet) && this.isEVMChain(chainInfo)) {
171
+ const client = await this.getEVMClient();
172
+ return client.bidPenny(wallet, chainInfo, auctionId);
173
+ }
174
+ else {
175
+ throw new Error('Solana not yet implemented');
176
+ }
177
+ }
178
+ /**
179
+ * Finalize an auction
180
+ */
181
+ async finalizeAuction(wallet, chainInfo, auctionId) {
182
+ if (this.isEVMWallet(wallet) && this.isEVMChain(chainInfo)) {
183
+ const client = await this.getEVMClient();
184
+ return client.finalizeAuction(wallet, chainInfo, auctionId);
185
+ }
186
+ else {
187
+ throw new Error('Solana not yet implemented');
188
+ }
189
+ }
190
+ /**
191
+ * Dealer accepts bid below reserve (Traditional only)
192
+ */
193
+ async dealerAcceptBid(wallet, chainInfo, auctionId) {
194
+ if (this.isEVMWallet(wallet) && this.isEVMChain(chainInfo)) {
195
+ const client = await this.getEVMClient();
196
+ return client.dealerAcceptBid(wallet, chainInfo, auctionId);
197
+ }
198
+ else {
199
+ throw new Error('Solana not yet implemented');
200
+ }
201
+ }
202
+ }
203
+ OnchainAuctionClient.evmClient = null;
204
+ OnchainAuctionClient.solanaClient = null;
205
+ //# sourceMappingURL=onchain-auction-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onchain-auction-client.js","sourceRoot":"","sources":["../../../src/unified/onchain-auction-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,475 @@
1
+ /**
2
+ * EVM Auction Client
3
+ * Stateless client for interacting with the AuctionRegistry contract on EVM chains
4
+ */
5
+ import { type PublicClient, type WalletClient, type Hash, type Chain } from 'viem';
6
+ import { type AuctionItem, type AuctionCore, type TraditionalParams, type DutchParams, type PennyParams, type CreateTraditionalAuctionParams, type CreateDutchAuctionParams, type CreatePennyAuctionParams, type TransactionResult, type ChainInfo } from '../types/common.js';
7
+ export declare const AUCTION_REGISTRY_ABI: readonly [{
8
+ readonly name: "getAuction";
9
+ readonly type: "function";
10
+ readonly stateMutability: "view";
11
+ readonly inputs: readonly [{
12
+ readonly name: "auctionId";
13
+ readonly type: "uint256";
14
+ }];
15
+ readonly outputs: readonly [{
16
+ readonly name: "core";
17
+ readonly type: "tuple";
18
+ readonly components: readonly [{
19
+ readonly name: "dealer";
20
+ readonly type: "address";
21
+ }, {
22
+ readonly name: "auctionType";
23
+ readonly type: "uint8";
24
+ }, {
25
+ readonly name: "status";
26
+ readonly type: "uint8";
27
+ }, {
28
+ readonly name: "paymentToken";
29
+ readonly type: "address";
30
+ }, {
31
+ readonly name: "deadline";
32
+ readonly type: "uint96";
33
+ }, {
34
+ readonly name: "highBidder";
35
+ readonly type: "address";
36
+ }, {
37
+ readonly name: "currentBid";
38
+ readonly type: "uint128";
39
+ }, {
40
+ readonly name: "createdAt";
41
+ readonly type: "uint64";
42
+ }];
43
+ }, {
44
+ readonly name: "items";
45
+ readonly type: "tuple[]";
46
+ readonly components: readonly [{
47
+ readonly name: "tokenAddress";
48
+ readonly type: "address";
49
+ }, {
50
+ readonly name: "itemType";
51
+ readonly type: "uint8";
52
+ }, {
53
+ readonly name: "tokenId";
54
+ readonly type: "uint256";
55
+ }, {
56
+ readonly name: "amount";
57
+ readonly type: "uint256";
58
+ }];
59
+ }];
60
+ }, {
61
+ readonly name: "getTraditionalParams";
62
+ readonly type: "function";
63
+ readonly stateMutability: "view";
64
+ readonly inputs: readonly [{
65
+ readonly name: "auctionId";
66
+ readonly type: "uint256";
67
+ }];
68
+ readonly outputs: readonly [{
69
+ readonly name: "params";
70
+ readonly type: "tuple";
71
+ readonly components: readonly [{
72
+ readonly name: "startAmount";
73
+ readonly type: "uint128";
74
+ }, {
75
+ readonly name: "increment";
76
+ readonly type: "uint128";
77
+ }, {
78
+ readonly name: "reservePrice";
79
+ readonly type: "uint128";
80
+ }, {
81
+ readonly name: "acceptanceDeadline";
82
+ readonly type: "uint96";
83
+ }, {
84
+ readonly name: "reserveMet";
85
+ readonly type: "bool";
86
+ }];
87
+ }];
88
+ }, {
89
+ readonly name: "getDutchParams";
90
+ readonly type: "function";
91
+ readonly stateMutability: "view";
92
+ readonly inputs: readonly [{
93
+ readonly name: "auctionId";
94
+ readonly type: "uint256";
95
+ }];
96
+ readonly outputs: readonly [{
97
+ readonly name: "params";
98
+ readonly type: "tuple";
99
+ readonly components: readonly [{
100
+ readonly name: "startPrice";
101
+ readonly type: "uint128";
102
+ }, {
103
+ readonly name: "decreaseAmount";
104
+ readonly type: "uint128";
105
+ }, {
106
+ readonly name: "decreaseInterval";
107
+ readonly type: "uint64";
108
+ }, {
109
+ readonly name: "minimumPrice";
110
+ readonly type: "uint128";
111
+ }, {
112
+ readonly name: "startTime";
113
+ readonly type: "uint64";
114
+ }];
115
+ }];
116
+ }, {
117
+ readonly name: "getPennyParams";
118
+ readonly type: "function";
119
+ readonly stateMutability: "view";
120
+ readonly inputs: readonly [{
121
+ readonly name: "auctionId";
122
+ readonly type: "uint256";
123
+ }];
124
+ readonly outputs: readonly [{
125
+ readonly name: "params";
126
+ readonly type: "tuple";
127
+ readonly components: readonly [{
128
+ readonly name: "incrementAmount";
129
+ readonly type: "uint128";
130
+ }, {
131
+ readonly name: "totalPaid";
132
+ readonly type: "uint128";
133
+ }, {
134
+ readonly name: "lastBidTime";
135
+ readonly type: "uint64";
136
+ }, {
137
+ readonly name: "timerDuration";
138
+ readonly type: "uint64";
139
+ }];
140
+ }];
141
+ }, {
142
+ readonly name: "getDutchCurrentPrice";
143
+ readonly type: "function";
144
+ readonly stateMutability: "view";
145
+ readonly inputs: readonly [{
146
+ readonly name: "auctionId";
147
+ readonly type: "uint256";
148
+ }];
149
+ readonly outputs: readonly [{
150
+ readonly name: "currentPrice";
151
+ readonly type: "uint128";
152
+ }];
153
+ }, {
154
+ readonly name: "getPennyDeadline";
155
+ readonly type: "function";
156
+ readonly stateMutability: "view";
157
+ readonly inputs: readonly [{
158
+ readonly name: "auctionId";
159
+ readonly type: "uint256";
160
+ }];
161
+ readonly outputs: readonly [{
162
+ readonly name: "effectiveDeadline";
163
+ readonly type: "uint256";
164
+ }];
165
+ }, {
166
+ readonly name: "nextAuctionId";
167
+ readonly type: "function";
168
+ readonly stateMutability: "view";
169
+ readonly inputs: readonly [];
170
+ readonly outputs: readonly [{
171
+ readonly name: "";
172
+ readonly type: "uint256";
173
+ }];
174
+ }, {
175
+ readonly name: "paused";
176
+ readonly type: "function";
177
+ readonly stateMutability: "view";
178
+ readonly inputs: readonly [];
179
+ readonly outputs: readonly [{
180
+ readonly name: "";
181
+ readonly type: "bool";
182
+ }];
183
+ }, {
184
+ readonly name: "feeRate";
185
+ readonly type: "function";
186
+ readonly stateMutability: "view";
187
+ readonly inputs: readonly [];
188
+ readonly outputs: readonly [{
189
+ readonly name: "";
190
+ readonly type: "uint16";
191
+ }];
192
+ }, {
193
+ readonly name: "accumulatedFees";
194
+ readonly type: "function";
195
+ readonly stateMutability: "view";
196
+ readonly inputs: readonly [{
197
+ readonly name: "token";
198
+ readonly type: "address";
199
+ }];
200
+ readonly outputs: readonly [{
201
+ readonly name: "";
202
+ readonly type: "uint256";
203
+ }];
204
+ }, {
205
+ readonly name: "createTraditionalAuction";
206
+ readonly type: "function";
207
+ readonly stateMutability: "nonpayable";
208
+ readonly inputs: readonly [{
209
+ readonly name: "items";
210
+ readonly type: "tuple[]";
211
+ readonly components: readonly [{
212
+ readonly name: "tokenAddress";
213
+ readonly type: "address";
214
+ }, {
215
+ readonly name: "itemType";
216
+ readonly type: "uint8";
217
+ }, {
218
+ readonly name: "tokenId";
219
+ readonly type: "uint256";
220
+ }, {
221
+ readonly name: "amount";
222
+ readonly type: "uint256";
223
+ }];
224
+ }, {
225
+ readonly name: "paymentToken";
226
+ readonly type: "address";
227
+ }, {
228
+ readonly name: "startAmount";
229
+ readonly type: "uint128";
230
+ }, {
231
+ readonly name: "increment";
232
+ readonly type: "uint128";
233
+ }, {
234
+ readonly name: "reservePrice";
235
+ readonly type: "uint128";
236
+ }, {
237
+ readonly name: "deadline";
238
+ readonly type: "uint96";
239
+ }];
240
+ readonly outputs: readonly [{
241
+ readonly name: "auctionId";
242
+ readonly type: "uint256";
243
+ }];
244
+ }, {
245
+ readonly name: "createDutchAuction";
246
+ readonly type: "function";
247
+ readonly stateMutability: "nonpayable";
248
+ readonly inputs: readonly [{
249
+ readonly name: "items";
250
+ readonly type: "tuple[]";
251
+ readonly components: readonly [{
252
+ readonly name: "tokenAddress";
253
+ readonly type: "address";
254
+ }, {
255
+ readonly name: "itemType";
256
+ readonly type: "uint8";
257
+ }, {
258
+ readonly name: "tokenId";
259
+ readonly type: "uint256";
260
+ }, {
261
+ readonly name: "amount";
262
+ readonly type: "uint256";
263
+ }];
264
+ }, {
265
+ readonly name: "paymentToken";
266
+ readonly type: "address";
267
+ }, {
268
+ readonly name: "startPrice";
269
+ readonly type: "uint128";
270
+ }, {
271
+ readonly name: "decreaseAmount";
272
+ readonly type: "uint128";
273
+ }, {
274
+ readonly name: "decreaseInterval";
275
+ readonly type: "uint64";
276
+ }, {
277
+ readonly name: "minimumPrice";
278
+ readonly type: "uint128";
279
+ }, {
280
+ readonly name: "deadline";
281
+ readonly type: "uint96";
282
+ }];
283
+ readonly outputs: readonly [{
284
+ readonly name: "auctionId";
285
+ readonly type: "uint256";
286
+ }];
287
+ }, {
288
+ readonly name: "createPennyAuction";
289
+ readonly type: "function";
290
+ readonly stateMutability: "nonpayable";
291
+ readonly inputs: readonly [{
292
+ readonly name: "items";
293
+ readonly type: "tuple[]";
294
+ readonly components: readonly [{
295
+ readonly name: "tokenAddress";
296
+ readonly type: "address";
297
+ }, {
298
+ readonly name: "itemType";
299
+ readonly type: "uint8";
300
+ }, {
301
+ readonly name: "tokenId";
302
+ readonly type: "uint256";
303
+ }, {
304
+ readonly name: "amount";
305
+ readonly type: "uint256";
306
+ }];
307
+ }, {
308
+ readonly name: "paymentToken";
309
+ readonly type: "address";
310
+ }, {
311
+ readonly name: "incrementAmount";
312
+ readonly type: "uint128";
313
+ }];
314
+ readonly outputs: readonly [{
315
+ readonly name: "auctionId";
316
+ readonly type: "uint256";
317
+ }];
318
+ }, {
319
+ readonly name: "bidTraditional";
320
+ readonly type: "function";
321
+ readonly stateMutability: "nonpayable";
322
+ readonly inputs: readonly [{
323
+ readonly name: "auctionId";
324
+ readonly type: "uint256";
325
+ }, {
326
+ readonly name: "amount";
327
+ readonly type: "uint128";
328
+ }];
329
+ readonly outputs: readonly [];
330
+ }, {
331
+ readonly name: "buyDutch";
332
+ readonly type: "function";
333
+ readonly stateMutability: "nonpayable";
334
+ readonly inputs: readonly [{
335
+ readonly name: "auctionId";
336
+ readonly type: "uint256";
337
+ }];
338
+ readonly outputs: readonly [];
339
+ }, {
340
+ readonly name: "bidPenny";
341
+ readonly type: "function";
342
+ readonly stateMutability: "nonpayable";
343
+ readonly inputs: readonly [{
344
+ readonly name: "auctionId";
345
+ readonly type: "uint256";
346
+ }];
347
+ readonly outputs: readonly [];
348
+ }, {
349
+ readonly name: "finalizeAuction";
350
+ readonly type: "function";
351
+ readonly stateMutability: "nonpayable";
352
+ readonly inputs: readonly [{
353
+ readonly name: "auctionId";
354
+ readonly type: "uint256";
355
+ }];
356
+ readonly outputs: readonly [];
357
+ }, {
358
+ readonly name: "dealerAcceptBid";
359
+ readonly type: "function";
360
+ readonly stateMutability: "nonpayable";
361
+ readonly inputs: readonly [{
362
+ readonly name: "auctionId";
363
+ readonly type: "uint256";
364
+ }];
365
+ readonly outputs: readonly [];
366
+ }];
367
+ export declare const ERC20_ABI: readonly [{
368
+ readonly name: "approve";
369
+ readonly type: "function";
370
+ readonly stateMutability: "nonpayable";
371
+ readonly inputs: readonly [{
372
+ readonly name: "spender";
373
+ readonly type: "address";
374
+ }, {
375
+ readonly name: "amount";
376
+ readonly type: "uint256";
377
+ }];
378
+ readonly outputs: readonly [{
379
+ readonly name: "";
380
+ readonly type: "bool";
381
+ }];
382
+ }, {
383
+ readonly name: "allowance";
384
+ readonly type: "function";
385
+ readonly stateMutability: "view";
386
+ readonly inputs: readonly [{
387
+ readonly name: "owner";
388
+ readonly type: "address";
389
+ }, {
390
+ readonly name: "spender";
391
+ readonly type: "address";
392
+ }];
393
+ readonly outputs: readonly [{
394
+ readonly name: "";
395
+ readonly type: "uint256";
396
+ }];
397
+ }];
398
+ export interface EVMWallet {
399
+ walletClient: WalletClient;
400
+ publicClient: PublicClient;
401
+ chain?: Chain;
402
+ }
403
+ /**
404
+ * Stateless EVM Auction Client
405
+ */
406
+ export declare class EVMAuctionClient {
407
+ /**
408
+ * Get auction details
409
+ */
410
+ getAuction(publicClient: PublicClient, chainInfo: ChainInfo, auctionId: bigint): Promise<{
411
+ core: AuctionCore;
412
+ items: AuctionItem[];
413
+ }>;
414
+ /**
415
+ * Get Traditional auction parameters
416
+ */
417
+ getTraditionalParams(publicClient: PublicClient, chainInfo: ChainInfo, auctionId: bigint): Promise<TraditionalParams>;
418
+ /**
419
+ * Get Dutch auction parameters
420
+ */
421
+ getDutchParams(publicClient: PublicClient, chainInfo: ChainInfo, auctionId: bigint): Promise<DutchParams>;
422
+ /**
423
+ * Get current Dutch auction price
424
+ */
425
+ getDutchCurrentPrice(publicClient: PublicClient, chainInfo: ChainInfo, auctionId: bigint): Promise<bigint>;
426
+ /**
427
+ * Get Penny auction parameters
428
+ */
429
+ getPennyParams(publicClient: PublicClient, chainInfo: ChainInfo, auctionId: bigint): Promise<PennyParams>;
430
+ /**
431
+ * Get effective deadline for Penny auction
432
+ */
433
+ getPennyDeadline(publicClient: PublicClient, chainInfo: ChainInfo, auctionId: bigint): Promise<bigint>;
434
+ /**
435
+ * Create a Traditional auction
436
+ */
437
+ createTraditionalAuction(wallet: EVMWallet, chainInfo: ChainInfo, params: CreateTraditionalAuctionParams): Promise<TransactionResult>;
438
+ /**
439
+ * Create a Dutch auction
440
+ */
441
+ createDutchAuction(wallet: EVMWallet, chainInfo: ChainInfo, params: CreateDutchAuctionParams): Promise<TransactionResult>;
442
+ /**
443
+ * Create a Penny auction
444
+ */
445
+ createPennyAuction(wallet: EVMWallet, chainInfo: ChainInfo, params: CreatePennyAuctionParams): Promise<TransactionResult>;
446
+ /**
447
+ * Place a bid on a Traditional auction
448
+ */
449
+ bidTraditional(wallet: EVMWallet, chainInfo: ChainInfo, auctionId: bigint, amount: bigint): Promise<TransactionResult>;
450
+ /**
451
+ * Buy at current price in a Dutch auction
452
+ */
453
+ buyDutch(wallet: EVMWallet, chainInfo: ChainInfo, auctionId: bigint): Promise<TransactionResult>;
454
+ /**
455
+ * Place a bid on a Penny auction
456
+ */
457
+ bidPenny(wallet: EVMWallet, chainInfo: ChainInfo, auctionId: bigint): Promise<TransactionResult>;
458
+ /**
459
+ * Finalize an auction
460
+ */
461
+ finalizeAuction(wallet: EVMWallet, chainInfo: ChainInfo, auctionId: bigint): Promise<TransactionResult>;
462
+ /**
463
+ * Dealer accepts bid below reserve
464
+ */
465
+ dealerAcceptBid(wallet: EVMWallet, chainInfo: ChainInfo, auctionId: bigint): Promise<TransactionResult>;
466
+ /**
467
+ * Approve ERC-20 token spending
468
+ */
469
+ approveToken(wallet: EVMWallet, tokenAddress: string, spenderAddress: string, amount: bigint): Promise<Hash>;
470
+ /**
471
+ * Check ERC-20 token allowance
472
+ */
473
+ checkAllowance(publicClient: PublicClient, tokenAddress: string, ownerAddress: string, spenderAddress: string): Promise<bigint>;
474
+ }
475
+ //# sourceMappingURL=evm-auction-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evm-auction-client.d.ts","sourceRoot":"","sources":["../../../src/evm/evm-auction-client.ts"],"names":[],"mappings":"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"}