@medialane/sdk 0.204.0 → 0.206.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/README.md +1 -0
  2. package/dist/{chunk-GIBIHGSV.js → chunk-EPU52YSA.js} +24 -11
  3. package/dist/chunk-EPU52YSA.js.map +1 -0
  4. package/dist/{chunk-KGAGWULG.js → chunk-GENBWVGK.js} +8 -5
  5. package/dist/chunk-GENBWVGK.js.map +1 -0
  6. package/dist/{chunk-3HPMEDYH.cjs → chunk-MCVAZVLN.cjs} +8 -5
  7. package/dist/chunk-MCVAZVLN.cjs.map +1 -0
  8. package/dist/{chunk-ZLMIHQWM.cjs → chunk-ZYRSMDMJ.cjs} +36 -23
  9. package/dist/chunk-ZYRSMDMJ.cjs.map +1 -0
  10. package/dist/contract/index.cjs +2 -1
  11. package/dist/contract/index.cjs.map +1 -1
  12. package/dist/contract/index.d.cts +2 -2
  13. package/dist/contract/index.d.ts +2 -2
  14. package/dist/contract/index.js +2 -1
  15. package/dist/contract/index.js.map +1 -1
  16. package/dist/index.cjs +35 -35
  17. package/dist/index.cjs.map +1 -1
  18. package/dist/index.d.cts +4 -4
  19. package/dist/index.d.ts +4 -4
  20. package/dist/index.js +2 -2
  21. package/dist/index.js.map +1 -1
  22. package/dist/{passkey-errors-yndCFeHv.d.cts → passkey-errors-BjqEFmu_.d.cts} +1 -1
  23. package/dist/{passkey-errors-B0HGcjPc.d.ts → passkey-errors-DMv2Vn1P.d.ts} +1 -1
  24. package/dist/{responses-D3nBY71f.d.ts → responses-BpnS-Io9.d.cts} +5 -0
  25. package/dist/{responses-D3nBY71f.d.cts → responses-BpnS-Io9.d.ts} +5 -0
  26. package/dist/{services-B15RJBSW.d.cts → services-Cy5FH8sP.d.cts} +8 -4
  27. package/dist/{services-BAnTJhwt.d.ts → services-DWmXVwTV.d.ts} +8 -4
  28. package/dist/starknet/index.cjs +84 -84
  29. package/dist/starknet/index.d.cts +20 -7
  30. package/dist/starknet/index.d.ts +20 -7
  31. package/dist/starknet/index.js +3 -3
  32. package/dist/wallet/index.cjs +59 -59
  33. package/dist/wallet/index.d.cts +3 -3
  34. package/dist/wallet/index.d.ts +3 -3
  35. package/dist/wallet/index.js +2 -2
  36. package/package.json +1 -1
  37. package/dist/chunk-3HPMEDYH.cjs.map +0 -1
  38. package/dist/chunk-GIBIHGSV.js.map +0 -1
  39. package/dist/chunk-KGAGWULG.js.map +0 -1
  40. package/dist/chunk-ZLMIHQWM.cjs.map +0 -1
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkZLMIHQWM_cjs = require('../chunk-ZLMIHQWM.cjs');
4
- var chunk3HPMEDYH_cjs = require('../chunk-3HPMEDYH.cjs');
3
+ var chunkZYRSMDMJ_cjs = require('../chunk-ZYRSMDMJ.cjs');
4
+ var chunkMCVAZVLN_cjs = require('../chunk-MCVAZVLN.cjs');
5
5
  require('../chunk-H2NJB3AK.cjs');
6
6
  require('../chunk-W76AZ5WC.cjs');
7
7
  require('../chunk-Q7SFCCGT.cjs');
@@ -10,231 +10,231 @@ require('../chunk-Q7SFCCGT.cjs');
10
10
 
11
11
  Object.defineProperty(exports, "InvalidPairingPayloadError", {
12
12
  enumerable: true,
13
- get: function () { return chunkZLMIHQWM_cjs.InvalidPairingPayloadError; }
13
+ get: function () { return chunkZYRSMDMJ_cjs.InvalidPairingPayloadError; }
14
14
  });
15
15
  Object.defineProperty(exports, "InvalidRecoveryKeyError", {
16
16
  enumerable: true,
17
- get: function () { return chunkZLMIHQWM_cjs.InvalidRecoveryKeyError; }
17
+ get: function () { return chunkZYRSMDMJ_cjs.InvalidRecoveryKeyError; }
18
18
  });
19
19
  Object.defineProperty(exports, "InvalidStarkPrivateKeyError", {
20
20
  enumerable: true,
21
- get: function () { return chunkZLMIHQWM_cjs.InvalidStarkPrivateKeyError; }
21
+ get: function () { return chunkZYRSMDMJ_cjs.InvalidStarkPrivateKeyError; }
22
22
  });
23
23
  Object.defineProperty(exports, "accountFor", {
24
24
  enumerable: true,
25
- get: function () { return chunkZLMIHQWM_cjs.accountFor; }
25
+ get: function () { return chunkZYRSMDMJ_cjs.accountFor; }
26
26
  });
27
27
  Object.defineProperty(exports, "buildAddOwnerCall", {
28
28
  enumerable: true,
29
- get: function () { return chunkZLMIHQWM_cjs.buildAddOwnerCall; }
29
+ get: function () { return chunkZYRSMDMJ_cjs.buildAddOwnerCall; }
30
30
  });
31
31
  Object.defineProperty(exports, "buildCancelEscapeCall", {
32
32
  enumerable: true,
33
- get: function () { return chunkZLMIHQWM_cjs.buildCancelEscapeCall; }
33
+ get: function () { return chunkZYRSMDMJ_cjs.buildCancelEscapeCall; }
34
34
  });
35
35
  Object.defineProperty(exports, "buildCompleteEscapeOwnerCall", {
36
36
  enumerable: true,
37
- get: function () { return chunkZLMIHQWM_cjs.buildCompleteEscapeOwnerCall; }
37
+ get: function () { return chunkZYRSMDMJ_cjs.buildCompleteEscapeOwnerCall; }
38
38
  });
39
39
  Object.defineProperty(exports, "buildDeployAccountParams", {
40
40
  enumerable: true,
41
- get: function () { return chunkZLMIHQWM_cjs.buildDeployAccountParams; }
41
+ get: function () { return chunkZYRSMDMJ_cjs.buildDeployAccountParams; }
42
42
  });
43
43
  Object.defineProperty(exports, "buildRemoveOwnerByGuidCall", {
44
44
  enumerable: true,
45
- get: function () { return chunkZLMIHQWM_cjs.buildRemoveOwnerByGuidCall; }
45
+ get: function () { return chunkZYRSMDMJ_cjs.buildRemoveOwnerByGuidCall; }
46
46
  });
47
47
  Object.defineProperty(exports, "buildRemoveOwnerCall", {
48
48
  enumerable: true,
49
- get: function () { return chunkZLMIHQWM_cjs.buildRemoveOwnerCall; }
49
+ get: function () { return chunkZYRSMDMJ_cjs.buildRemoveOwnerCall; }
50
50
  });
51
51
  Object.defineProperty(exports, "buildSetFirstGuardianCall", {
52
52
  enumerable: true,
53
- get: function () { return chunkZLMIHQWM_cjs.buildSetFirstGuardianCall; }
53
+ get: function () { return chunkZYRSMDMJ_cjs.buildSetFirstGuardianCall; }
54
54
  });
55
55
  Object.defineProperty(exports, "buildTriggerEscapeOwnerCall", {
56
56
  enumerable: true,
57
- get: function () { return chunkZLMIHQWM_cjs.buildTriggerEscapeOwnerCall; }
57
+ get: function () { return chunkZYRSMDMJ_cjs.buildTriggerEscapeOwnerCall; }
58
58
  });
59
59
  Object.defineProperty(exports, "canRemoveDevice", {
60
60
  enumerable: true,
61
- get: function () { return chunkZLMIHQWM_cjs.canRemoveDevice; }
61
+ get: function () { return chunkZYRSMDMJ_cjs.canRemoveDevice; }
62
62
  });
63
63
  Object.defineProperty(exports, "claimSessionWallet", {
64
64
  enumerable: true,
65
- get: function () { return chunkZLMIHQWM_cjs.claimSessionWallet; }
65
+ get: function () { return chunkZYRSMDMJ_cjs.claimSessionWallet; }
66
66
  });
67
67
  Object.defineProperty(exports, "completeDeployment", {
68
68
  enumerable: true,
69
- get: function () { return chunkZLMIHQWM_cjs.completeDeployment; }
69
+ get: function () { return chunkZYRSMDMJ_cjs.completeDeployment; }
70
70
  });
71
71
  Object.defineProperty(exports, "computeAccountAddress", {
72
72
  enumerable: true,
73
- get: function () { return chunkZLMIHQWM_cjs.computeAccountAddress; }
73
+ get: function () { return chunkZYRSMDMJ_cjs.computeAccountAddress; }
74
74
  });
75
75
  Object.defineProperty(exports, "computeOwnerGuid", {
76
76
  enumerable: true,
77
- get: function () { return chunkZLMIHQWM_cjs.computeOwnerGuid; }
77
+ get: function () { return chunkZYRSMDMJ_cjs.computeOwnerGuid; }
78
78
  });
79
79
  Object.defineProperty(exports, "createDeploymentCoordinator", {
80
80
  enumerable: true,
81
- get: function () { return chunkZLMIHQWM_cjs.createDeploymentCoordinator; }
81
+ get: function () { return chunkZYRSMDMJ_cjs.createDeploymentCoordinator; }
82
82
  });
83
83
  Object.defineProperty(exports, "createMediaWallet", {
84
84
  enumerable: true,
85
- get: function () { return chunkZLMIHQWM_cjs.createMediaWallet; }
85
+ get: function () { return chunkZYRSMDMJ_cjs.createMediaWallet; }
86
86
  });
87
87
  Object.defineProperty(exports, "createOwnerStore", {
88
88
  enumerable: true,
89
- get: function () { return chunkZLMIHQWM_cjs.createOwnerStore; }
89
+ get: function () { return chunkZYRSMDMJ_cjs.createOwnerStore; }
90
90
  });
91
91
  Object.defineProperty(exports, "createPasskeyOwner", {
92
92
  enumerable: true,
93
- get: function () { return chunkZLMIHQWM_cjs.createPasskeyOwner; }
93
+ get: function () { return chunkZYRSMDMJ_cjs.createPasskeyOwner; }
94
94
  });
95
95
  Object.defineProperty(exports, "createSelfFundConsent", {
96
96
  enumerable: true,
97
- get: function () { return chunkZLMIHQWM_cjs.createSelfFundConsent; }
97
+ get: function () { return chunkZYRSMDMJ_cjs.createSelfFundConsent; }
98
98
  });
99
99
  Object.defineProperty(exports, "decodeEscapeAndStatus", {
100
100
  enumerable: true,
101
- get: function () { return chunkZLMIHQWM_cjs.decodeEscapeAndStatus; }
101
+ get: function () { return chunkZYRSMDMJ_cjs.decodeEscapeAndStatus; }
102
102
  });
103
103
  Object.defineProperty(exports, "decodeGuardiansInfo", {
104
104
  enumerable: true,
105
- get: function () { return chunkZLMIHQWM_cjs.decodeGuardiansInfo; }
105
+ get: function () { return chunkZYRSMDMJ_cjs.decodeGuardiansInfo; }
106
106
  });
107
107
  Object.defineProperty(exports, "deploySelfFunded", {
108
108
  enumerable: true,
109
- get: function () { return chunkZLMIHQWM_cjs.deploySelfFunded; }
109
+ get: function () { return chunkZYRSMDMJ_cjs.deploySelfFunded; }
110
110
  });
111
111
  Object.defineProperty(exports, "deploySponsored", {
112
112
  enumerable: true,
113
- get: function () { return chunkZLMIHQWM_cjs.deploySponsored; }
113
+ get: function () { return chunkZYRSMDMJ_cjs.deploySponsored; }
114
114
  });
115
115
  Object.defineProperty(exports, "deriveAesKey", {
116
116
  enumerable: true,
117
- get: function () { return chunkZLMIHQWM_cjs.deriveAesKey; }
117
+ get: function () { return chunkZYRSMDMJ_cjs.deriveAesKey; }
118
118
  });
119
119
  Object.defineProperty(exports, "deriveOwnerKeyPair", {
120
120
  enumerable: true,
121
- get: function () { return chunkZLMIHQWM_cjs.deriveOwnerKeyPair; }
121
+ get: function () { return chunkZYRSMDMJ_cjs.deriveOwnerKeyPair; }
122
122
  });
123
123
  Object.defineProperty(exports, "describeDevices", {
124
124
  enumerable: true,
125
- get: function () { return chunkZLMIHQWM_cjs.describeDevices; }
125
+ get: function () { return chunkZYRSMDMJ_cjs.describeDevices; }
126
126
  });
127
127
  Object.defineProperty(exports, "describeGuardianStatus", {
128
128
  enumerable: true,
129
- get: function () { return chunkZLMIHQWM_cjs.describeGuardianStatus; }
129
+ get: function () { return chunkZYRSMDMJ_cjs.describeGuardianStatus; }
130
130
  });
131
131
  Object.defineProperty(exports, "describeRecoveryAction", {
132
132
  enumerable: true,
133
- get: function () { return chunkZLMIHQWM_cjs.describeRecoveryAction; }
133
+ get: function () { return chunkZYRSMDMJ_cjs.describeRecoveryAction; }
134
134
  });
135
135
  Object.defineProperty(exports, "encodePairingPayload", {
136
136
  enumerable: true,
137
- get: function () { return chunkZLMIHQWM_cjs.encodePairingPayload; }
137
+ get: function () { return chunkZYRSMDMJ_cjs.encodePairingPayload; }
138
138
  });
139
139
  Object.defineProperty(exports, "encodeRecoveryKey", {
140
140
  enumerable: true,
141
- get: function () { return chunkZLMIHQWM_cjs.encodeRecoveryKey; }
141
+ get: function () { return chunkZYRSMDMJ_cjs.encodeRecoveryKey; }
142
142
  });
143
143
  Object.defineProperty(exports, "estimateSelfFundedFee", {
144
144
  enumerable: true,
145
- get: function () { return chunkZLMIHQWM_cjs.estimateSelfFundedFee; }
145
+ get: function () { return chunkZYRSMDMJ_cjs.estimateSelfFundedFee; }
146
146
  });
147
147
  Object.defineProperty(exports, "generateStarkKeyPair", {
148
148
  enumerable: true,
149
- get: function () { return chunkZLMIHQWM_cjs.generateStarkKeyPair; }
149
+ get: function () { return chunkZYRSMDMJ_cjs.generateStarkKeyPair; }
150
150
  });
151
151
  Object.defineProperty(exports, "getEscape", {
152
152
  enumerable: true,
153
- get: function () { return chunkZLMIHQWM_cjs.getEscape; }
153
+ get: function () { return chunkZYRSMDMJ_cjs.getEscape; }
154
154
  });
155
155
  Object.defineProperty(exports, "getEscapeSecurityPeriod", {
156
156
  enumerable: true,
157
- get: function () { return chunkZLMIHQWM_cjs.getEscapeSecurityPeriod; }
157
+ get: function () { return chunkZYRSMDMJ_cjs.getEscapeSecurityPeriod; }
158
158
  });
159
159
  Object.defineProperty(exports, "getGuardians", {
160
160
  enumerable: true,
161
- get: function () { return chunkZLMIHQWM_cjs.getGuardians; }
161
+ get: function () { return chunkZYRSMDMJ_cjs.getGuardians; }
162
162
  });
163
163
  Object.defineProperty(exports, "getOwners", {
164
164
  enumerable: true,
165
- get: function () { return chunkZLMIHQWM_cjs.getOwners; }
165
+ get: function () { return chunkZYRSMDMJ_cjs.getOwners; }
166
166
  });
167
167
  Object.defineProperty(exports, "indexedDbDeviceKeys", {
168
168
  enumerable: true,
169
- get: function () { return chunkZLMIHQWM_cjs.indexedDbDeviceKeys; }
169
+ get: function () { return chunkZYRSMDMJ_cjs.indexedDbDeviceKeys; }
170
170
  });
171
171
  Object.defineProperty(exports, "isDeployed", {
172
172
  enumerable: true,
173
- get: function () { return chunkZLMIHQWM_cjs.isDeployed; }
173
+ get: function () { return chunkZYRSMDMJ_cjs.isDeployed; }
174
174
  });
175
175
  Object.defineProperty(exports, "isValidStarknetAddress", {
176
176
  enumerable: true,
177
- get: function () { return chunkZLMIHQWM_cjs.isValidStarknetAddress; }
177
+ get: function () { return chunkZYRSMDMJ_cjs.isValidStarknetAddress; }
178
178
  });
179
179
  Object.defineProperty(exports, "normalizeWalletAddress", {
180
180
  enumerable: true,
181
- get: function () { return chunkZLMIHQWM_cjs.normalizeWalletAddress; }
181
+ get: function () { return chunkZYRSMDMJ_cjs.normalizeWalletAddress; }
182
182
  });
183
183
  Object.defineProperty(exports, "ownerConstructorCalldata", {
184
184
  enumerable: true,
185
- get: function () { return chunkZLMIHQWM_cjs.ownerConstructorCalldata; }
185
+ get: function () { return chunkZYRSMDMJ_cjs.ownerConstructorCalldata; }
186
186
  });
187
187
  Object.defineProperty(exports, "parseAccountAddress", {
188
188
  enumerable: true,
189
- get: function () { return chunkZLMIHQWM_cjs.parseAccountAddress; }
189
+ get: function () { return chunkZYRSMDMJ_cjs.parseAccountAddress; }
190
190
  });
191
191
  Object.defineProperty(exports, "parsePairingPayload", {
192
192
  enumerable: true,
193
- get: function () { return chunkZLMIHQWM_cjs.parsePairingPayload; }
193
+ get: function () { return chunkZYRSMDMJ_cjs.parsePairingPayload; }
194
194
  });
195
195
  Object.defineProperty(exports, "parseRecoveryKey", {
196
196
  enumerable: true,
197
- get: function () { return chunkZLMIHQWM_cjs.parseRecoveryKey; }
197
+ get: function () { return chunkZYRSMDMJ_cjs.parseRecoveryKey; }
198
198
  });
199
199
  Object.defineProperty(exports, "sealPrivateKey", {
200
200
  enumerable: true,
201
- get: function () { return chunkZLMIHQWM_cjs.sealPrivateKey; }
201
+ get: function () { return chunkZYRSMDMJ_cjs.sealPrivateKey; }
202
202
  });
203
203
  Object.defineProperty(exports, "selfFundedExecutor", {
204
204
  enumerable: true,
205
- get: function () { return chunkZLMIHQWM_cjs.selfFundedExecutor; }
205
+ get: function () { return chunkZYRSMDMJ_cjs.selfFundedExecutor; }
206
206
  });
207
207
  Object.defineProperty(exports, "signWithPrivateKey", {
208
208
  enumerable: true,
209
- get: function () { return chunkZLMIHQWM_cjs.signWithPrivateKey; }
209
+ get: function () { return chunkZYRSMDMJ_cjs.signWithPrivateKey; }
210
210
  });
211
211
  Object.defineProperty(exports, "sponsoredExecutor", {
212
212
  enumerable: true,
213
- get: function () { return chunkZLMIHQWM_cjs.sponsoredExecutor; }
213
+ get: function () { return chunkZYRSMDMJ_cjs.sponsoredExecutor; }
214
214
  });
215
215
  Object.defineProperty(exports, "starkKeyPairFromPrivateKey", {
216
216
  enumerable: true,
217
- get: function () { return chunkZLMIHQWM_cjs.starkKeyPairFromPrivateKey; }
217
+ get: function () { return chunkZYRSMDMJ_cjs.starkKeyPairFromPrivateKey; }
218
218
  });
219
219
  Object.defineProperty(exports, "unsealPrivateKey", {
220
220
  enumerable: true,
221
- get: function () { return chunkZLMIHQWM_cjs.unsealPrivateKey; }
221
+ get: function () { return chunkZYRSMDMJ_cjs.unsealPrivateKey; }
222
222
  });
223
223
  Object.defineProperty(exports, "waitUntilDeployed", {
224
224
  enumerable: true,
225
- get: function () { return chunkZLMIHQWM_cjs.waitUntilDeployed; }
225
+ get: function () { return chunkZYRSMDMJ_cjs.waitUntilDeployed; }
226
226
  });
227
227
  Object.defineProperty(exports, "DeviceKeyMissingError", {
228
228
  enumerable: true,
229
- get: function () { return chunk3HPMEDYH_cjs.DeviceKeyMissingError; }
229
+ get: function () { return chunkMCVAZVLN_cjs.DeviceKeyMissingError; }
230
230
  });
231
231
  Object.defineProperty(exports, "PasskeyCancelledError", {
232
232
  enumerable: true,
233
- get: function () { return chunk3HPMEDYH_cjs.PasskeyCancelledError; }
233
+ get: function () { return chunkMCVAZVLN_cjs.PasskeyCancelledError; }
234
234
  });
235
235
  Object.defineProperty(exports, "PasskeyUnsupportedError", {
236
236
  enumerable: true,
237
- get: function () { return chunk3HPMEDYH_cjs.PasskeyUnsupportedError; }
237
+ get: function () { return chunkMCVAZVLN_cjs.PasskeyUnsupportedError; }
238
238
  });
239
239
  //# sourceMappingURL=index.cjs.map
240
240
  //# sourceMappingURL=index.cjs.map
@@ -1,10 +1,10 @@
1
1
  import { BigNumberish, Call, DeployAccountContractPayload, ProviderInterface, TypedData, Account } from 'starknet';
2
2
  import { F as FetchLike } from '../fetch-Cx9Pr7-B.cjs';
3
- import { bb as CreateWalletManageIntentParams, c as AccountApi } from '../passkey-errors-yndCFeHv.cjs';
4
- export { bc as DeviceKeyMissingError, bv as PasskeyCancelledError, bw as PasskeyUnsupportedError, bx as PasskeyUnsupportedReason } from '../passkey-errors-yndCFeHv.cjs';
3
+ import { bb as CreateWalletManageIntentParams, c as AccountApi } from '../passkey-errors-BjqEFmu_.cjs';
4
+ export { bc as DeviceKeyMissingError, bv as PasskeyCancelledError, bw as PasskeyUnsupportedError, bx as PasskeyUnsupportedReason } from '../passkey-errors-BjqEFmu_.cjs';
5
5
  import '../chains-CmwjZVU7.cjs';
6
6
  import 'zod';
7
- import '../responses-D3nBY71f.cjs';
7
+ import '../responses-BpnS-Io9.cjs';
8
8
 
9
9
  declare function deriveOwnerKeyPair(secret: Uint8Array, recipientId: string): {
10
10
  privateKey: string;
@@ -1,10 +1,10 @@
1
1
  import { BigNumberish, Call, DeployAccountContractPayload, ProviderInterface, TypedData, Account } from 'starknet';
2
2
  import { F as FetchLike } from '../fetch-Cx9Pr7-B.js';
3
- import { bb as CreateWalletManageIntentParams, c as AccountApi } from '../passkey-errors-B0HGcjPc.js';
4
- export { bc as DeviceKeyMissingError, bv as PasskeyCancelledError, bw as PasskeyUnsupportedError, bx as PasskeyUnsupportedReason } from '../passkey-errors-B0HGcjPc.js';
3
+ import { bb as CreateWalletManageIntentParams, c as AccountApi } from '../passkey-errors-DMv2Vn1P.js';
4
+ export { bc as DeviceKeyMissingError, bv as PasskeyCancelledError, bw as PasskeyUnsupportedError, bx as PasskeyUnsupportedReason } from '../passkey-errors-DMv2Vn1P.js';
5
5
  import '../chains-CmwjZVU7.js';
6
6
  import 'zod';
7
- import '../responses-D3nBY71f.js';
7
+ import '../responses-BpnS-Io9.js';
8
8
 
9
9
  declare function deriveOwnerKeyPair(secret: Uint8Array, recipientId: string): {
10
10
  privateKey: string;
@@ -1,5 +1,5 @@
1
- export { InvalidPairingPayloadError, InvalidRecoveryKeyError, InvalidStarkPrivateKeyError, accountFor, buildAddOwnerCall, buildCancelEscapeCall, buildCompleteEscapeOwnerCall, buildDeployAccountParams, buildRemoveOwnerByGuidCall, buildRemoveOwnerCall, buildSetFirstGuardianCall, buildTriggerEscapeOwnerCall, canRemoveDevice, claimSessionWallet, completeDeployment, computeAccountAddress, computeOwnerGuid, createDeploymentCoordinator, createMediaWallet, createOwnerStore, createPasskeyOwner, createSelfFundConsent, decodeEscapeAndStatus, decodeGuardiansInfo, deploySelfFunded, deploySponsored, deriveAesKey, deriveOwnerKeyPair, describeDevices, describeGuardianStatus, describeRecoveryAction, encodePairingPayload, encodeRecoveryKey, estimateSelfFundedFee, generateStarkKeyPair, getEscape, getEscapeSecurityPeriod, getGuardians, getOwners, indexedDbDeviceKeys, isDeployed, isValidStarknetAddress, normalizeWalletAddress, ownerConstructorCalldata, parseAccountAddress, parsePairingPayload, parseRecoveryKey, sealPrivateKey, selfFundedExecutor, signWithPrivateKey, sponsoredExecutor, starkKeyPairFromPrivateKey, unsealPrivateKey, waitUntilDeployed } from '../chunk-GIBIHGSV.js';
2
- export { DeviceKeyMissingError, PasskeyCancelledError, PasskeyUnsupportedError } from '../chunk-KGAGWULG.js';
1
+ export { InvalidPairingPayloadError, InvalidRecoveryKeyError, InvalidStarkPrivateKeyError, accountFor, buildAddOwnerCall, buildCancelEscapeCall, buildCompleteEscapeOwnerCall, buildDeployAccountParams, buildRemoveOwnerByGuidCall, buildRemoveOwnerCall, buildSetFirstGuardianCall, buildTriggerEscapeOwnerCall, canRemoveDevice, claimSessionWallet, completeDeployment, computeAccountAddress, computeOwnerGuid, createDeploymentCoordinator, createMediaWallet, createOwnerStore, createPasskeyOwner, createSelfFundConsent, decodeEscapeAndStatus, decodeGuardiansInfo, deploySelfFunded, deploySponsored, deriveAesKey, deriveOwnerKeyPair, describeDevices, describeGuardianStatus, describeRecoveryAction, encodePairingPayload, encodeRecoveryKey, estimateSelfFundedFee, generateStarkKeyPair, getEscape, getEscapeSecurityPeriod, getGuardians, getOwners, indexedDbDeviceKeys, isDeployed, isValidStarknetAddress, normalizeWalletAddress, ownerConstructorCalldata, parseAccountAddress, parsePairingPayload, parseRecoveryKey, sealPrivateKey, selfFundedExecutor, signWithPrivateKey, sponsoredExecutor, starkKeyPairFromPrivateKey, unsealPrivateKey, waitUntilDeployed } from '../chunk-EPU52YSA.js';
2
+ export { DeviceKeyMissingError, PasskeyCancelledError, PasskeyUnsupportedError } from '../chunk-GENBWVGK.js';
3
3
  import '../chunk-5KY6P434.js';
4
4
  import '../chunk-WRBXQPRL.js';
5
5
  import '../chunk-PZ5AY32C.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@medialane/sdk",
3
- "version": "0.204.0",
3
+ "version": "0.206.0",
4
4
  "description": "Framework-agnostic TypeScript SDK for Medialane.io — the IP marketplace on Starknet",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/errors.ts","../src/utils/address.ts","../src/utils/retry.ts","../src/api/transport.ts","../src/api/domains/orders.ts","../src/api/domains/tokens.ts","../src/api/domains/collections.ts","../src/api/domains/activity.ts","../src/api/domains/intents.ts","../src/api/domains/metadata.ts","../src/api/domains/creators.ts","../src/api/domains/account.ts","../src/api/domains/portal.ts","../src/api/domains/business.ts","../src/api/domains/remix.ts","../src/api/domains/coins.ts","../src/api/domains/drops.ts","../src/api/domains/sponsorship.ts","../src/api/domains/rewards.ts","../src/api/domains/platform.ts","../src/api/domains/chainReads.ts","../src/api/client.ts","../src/wallet/passkey-errors.ts","../src/constants.ts","../src/utils/token.ts"],"names":["keccak_256","base58","base32","intentPath","dropStateFromWire","getCoordinates"],"mappings":"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","file":"chunk-3HPMEDYH.cjs","sourcesContent":["import type { MedialaneErrorCode } from \"./types/errors.js\";\n\nexport class UserFacingError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"UserFacingError\";\n }\n}\n\nexport class MedialaneError extends Error {\n constructor(\n message: string,\n public readonly code: MedialaneErrorCode = \"UNKNOWN\",\n public readonly cause?: unknown,\n ) {\n super(message);\n this.name = \"MedialaneError\";\n }\n}\n\nconst RESOURCE_NOT_FOUND: ReadonlyArray<readonly [string, MedialaneErrorCode]> = [\n [\"/v1/orders\", \"ORDER_NOT_FOUND\"],\n [\"/v1/tokens\", \"TOKEN_NOT_FOUND\"],\n [\"/v1/collections\", \"COLLECTION_NOT_FOUND\"],\n [\"/v1/intents\", \"INTENT_NOT_FOUND\"],\n];\n\nexport function errorCodeFor(status: number, path = \"\"): MedialaneErrorCode {\n if (status === 404) {\n return RESOURCE_NOT_FOUND.find(([prefix]) => path.startsWith(prefix))?.[1] ?? \"NOT_FOUND\";\n }\n if (status === 429) return \"RATE_LIMITED\";\n if (status === 410) return \"INTENT_EXPIRED\";\n if (status === 401 || status === 403) return \"UNAUTHORIZED\";\n if (status === 400) return \"INVALID_PARAMS\";\n return \"UNKNOWN\";\n}\n\nexport class MedialaneApiError extends MedialaneError {\n constructor(\n public readonly status: number,\n message: string,\n public readonly retryAfterMs?: number,\n public readonly details?: unknown,\n path?: string,\n public readonly serverCode?: string,\n ) {\n super(message, errorCodeFor(status, path));\n this.name = \"MedialaneApiError\";\n }\n}\n\nexport function parseRetryAfter(value: string | null): number | undefined {\n if (!value) return undefined;\n const seconds = Number(value);\n if (Number.isFinite(seconds)) return Math.max(0, seconds * 1000);\n const date = Date.parse(value);\n if (!Number.isNaN(date)) return Math.max(0, date - Date.now());\n return undefined;\n}\n","import { keccak_256 } from \"@noble/hashes/sha3.js\";\nimport { base32, base58 } from \"@scure/base\";\nimport type { Chain } from \"../chains.js\";\n\nexport function normalizeAddress(chain: Chain, address: string): string {\n switch (chain) {\n case \"STARKNET\":\n return normalizeStarknet(address);\n case \"ETHEREUM\":\n case \"BASE\":\n return normalizeEvm(address);\n case \"SOLANA\":\n return normalizeSolana(address);\n case \"STELLAR\":\n return normalizeStellar(address);\n case \"BITCOIN\":\n throw new Error(\"BITCOIN address normalization not implemented\");\n }\n}\n\nfunction normalizeStarknet(address: string): string {\n try {\n const hex = BigInt(address).toString(16);\n return \"0x\" + hex.padStart(64, \"0\").toLowerCase();\n } catch {\n throw new Error(`Invalid STARKNET address: \"${address}\"`);\n }\n}\n\nfunction normalizeEvm(address: string): string {\n const m = /^0x([0-9a-fA-F]{40})$/.exec(address);\n if (!m) throw new Error(`Invalid ETHEREUM/BASE address: \"${address}\"`);\n const lower = m[1].toLowerCase();\n\n const hash = keccak_256(new TextEncoder().encode(lower));\n let out = \"0x\";\n for (let i = 0; i < 40; i++) {\n const nibble = (hash[i >> 1]! >> (i % 2 === 0 ? 4 : 0)) & 0xf;\n out += nibble >= 8 ? lower[i]!.toUpperCase() : lower[i];\n }\n return out;\n}\n\nfunction normalizeSolana(address: string): string {\n try {\n const bytes = base58.decode(address);\n if (bytes.length !== 32) throw new Error(\"not a 32-byte key\");\n return address;\n } catch {\n throw new Error(`Invalid SOLANA address: \"${address}\"`);\n }\n}\n\nconst STELLAR_VERSION_BYTES = new Set([6 << 3, 2 << 3]);\n\nfunction normalizeStellar(address: string): string {\n const upper = address.toUpperCase();\n if (!/^[GC][A-Z2-7]{55}$/.test(upper)) {\n throw new Error(`Invalid STELLAR address: \"${address}\"`);\n }\n let decoded: Uint8Array;\n try {\n decoded = base32.decode(upper);\n } catch {\n throw new Error(`Invalid STELLAR address: \"${address}\"`);\n }\n if (decoded.length !== 35 || !STELLAR_VERSION_BYTES.has(decoded[0]!)) {\n throw new Error(`Invalid STELLAR address: \"${address}\"`);\n }\n const payload = decoded.subarray(0, 33);\n const checksum = decoded[33]! | (decoded[34]! << 8);\n if (crc16xmodem(payload) !== checksum) {\n throw new Error(`Invalid STELLAR address: \"${address}\"`);\n }\n return upper;\n}\n\nfunction crc16xmodem(bytes: Uint8Array): number {\n let crc = 0;\n for (const byte of bytes) {\n crc ^= byte << 8;\n for (let i = 0; i < 8; i++) {\n crc = crc & 0x8000 ? ((crc << 1) ^ 0x1021) & 0xffff : (crc << 1) & 0xffff;\n }\n }\n return crc;\n}\n\ndeclare const canonicalHashBrand: unique symbol;\n\nexport type CanonicalHash = string & { readonly [canonicalHashBrand]: true };\n\nexport function normalizeHash(hash: string): CanonicalHash {\n try {\n const hex = BigInt(hash).toString(16);\n return (\"0x\" + hex.padStart(64, \"0\").toLowerCase()) as CanonicalHash;\n } catch {\n throw new Error(`Invalid hash: \"${hash}\"`);\n }\n}\n\nexport function shortenAddress(chain: Chain, address: string, chars = 4): string {\n const norm = normalizeAddress(chain, address);\n return `${norm.slice(0, chars + 2)}...${norm.slice(-chars)}`;\n}\n","import { MedialaneApiError } from \"../errors.js\";\n\nexport interface RetryOptions {\n maxAttempts?: number;\n baseDelayMs?: number;\n maxDelayMs?: number;\n}\n\nconst DEFAULT_MAX_ATTEMPTS = 3;\nconst DEFAULT_BASE_DELAY_MS = 300;\nconst DEFAULT_MAX_DELAY_MS = 5000;\n\nfunction sleep(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n\nexport function isRetryableFor(method: string, err: unknown): boolean {\n if (err instanceof MedialaneApiError && err.status === 429) return true;\n const isRead = method === \"GET\" || method === \"HEAD\";\n if (!isRead) return false;\n return (err instanceof MedialaneApiError && err.status >= 500) || err instanceof TypeError;\n}\n\nexport async function withRetry<T>(\n fn: () => Promise<T>,\n opts?: RetryOptions,\n method = \"GET\",\n): Promise<T> {\n const maxAttempts = opts?.maxAttempts ?? DEFAULT_MAX_ATTEMPTS;\n const baseDelayMs = opts?.baseDelayMs ?? DEFAULT_BASE_DELAY_MS;\n const maxDelayMs = opts?.maxDelayMs ?? DEFAULT_MAX_DELAY_MS;\n\n let lastError: unknown;\n\n for (let attempt = 0; attempt < maxAttempts; attempt++) {\n try {\n return await fn();\n } catch (err) {\n lastError = err;\n\n if (!isRetryableFor(method, err) || attempt === maxAttempts - 1) {\n throw err;\n }\n\n const retryAfterMs = err instanceof MedialaneApiError ? err.retryAfterMs : undefined;\n const backoff = baseDelayMs * Math.pow(2, attempt) + Math.random() * baseDelayMs;\n const delay = Math.min(retryAfterMs ?? backoff, maxDelayMs);\n await sleep(delay);\n }\n }\n\n throw lastError;\n}\n","import type { Chain } from \"../chains.js\";\nimport { MedialaneApiError, parseRetryAfter } from \"../errors.js\";\nimport { normalizeAddress } from \"../utils/address.js\";\nimport type { FetchLike } from \"../utils/fetch.js\";\nimport { withRetry, type RetryOptions } from \"../utils/retry.js\";\n\nexport type BearerSource = string | (() => string | undefined);\n\nexport interface TransportOptions {\n baseUrl: string;\n apiKey?: string;\n bearer?: BearerSource;\n retry?: RetryOptions;\n chain?: Chain;\n fetch?: FetchLike;\n}\n\nexport type QueryValue = string | number | boolean | null | undefined;\n\nexport interface RequestOptions {\n method?: \"GET\" | \"POST\" | \"PATCH\" | \"PUT\" | \"DELETE\";\n body?: unknown;\n query?: Record<string, QueryValue>;\n bearer?: string;\n absent?: readonly number[];\n}\n\nexport function queryString(query: Record<string, QueryValue> | undefined): string {\n if (!query) return \"\";\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(query)) {\n if (value !== undefined && value !== null && value !== \"\") params.set(key, String(value));\n }\n const qs = params.toString();\n return qs ? `?${qs}` : \"\";\n}\n\nasync function failureFrom(response: Response, path: string): Promise<MedialaneApiError> {\n const text = await response.text().catch(() => response.statusText);\n let message = `Request failed with status ${response.status}`;\n let details: unknown = text;\n let serverCode: string | undefined;\n try {\n const body = JSON.parse(text) as { error?: unknown; code?: unknown };\n if (typeof body.error === \"string\" && body.error.trim() !== \"\") message = body.error;\n if (typeof body.code === \"string\") serverCode = body.code;\n details = body;\n } catch {\n details = text;\n }\n return new MedialaneApiError(\n response.status,\n message,\n parseRetryAfter(response.headers.get(\"retry-after\")),\n details,\n path,\n serverCode,\n );\n}\n\nexport class Transport {\n readonly chain: Chain;\n private readonly baseUrl: string;\n private readonly headers: Record<string, string>;\n\n constructor(private readonly options: TransportOptions) {\n this.baseUrl = options.baseUrl.replace(/\\/$/, \"\");\n this.headers = options.apiKey ? { \"x-api-key\": options.apiKey } : {};\n this.chain = options.chain ?? \"STARKNET\";\n }\n\n withBearer(bearer: BearerSource | undefined): Transport {\n return new Transport({ ...this.options, bearer });\n }\n\n settings(): TransportOptions {\n return this.options;\n }\n\n addr(address: string): string {\n return normalizeAddress(this.chain, address);\n }\n\n async request<T>(path: string, opts: RequestOptions = {}): Promise<T> {\n const method = opts.method ?? \"GET\";\n const url = `${this.baseUrl}${path}${queryString(opts.query)}`;\n const headers: Record<string, string> = { ...this.headers };\n const token = opts.bearer ?? this.defaultBearer();\n if (token) headers.Authorization = `Bearer ${token}`;\n\n let body: BodyInit | undefined;\n if (opts.body instanceof FormData) {\n body = opts.body;\n } else if (opts.body !== undefined) {\n headers[\"Content-Type\"] = \"application/json\";\n body = JSON.stringify(opts.body);\n }\n\n const absent = (status: number) => opts.absent?.includes(status) === true;\n const response = await withRetry(\n async () => {\n const res = await (this.options.fetch ?? globalThis.fetch)(url, { method, headers, body });\n if (!res.ok && !absent(res.status)) throw await failureFrom(res, path);\n return res;\n },\n this.options.retry,\n method,\n );\n\n if (absent(response.status)) return null as T;\n return response.json() as Promise<T>;\n }\n\n get<T>(path: string, query?: Record<string, QueryValue>): Promise<T> {\n return this.request<T>(path, { query });\n }\n\n post<T>(path: string, body?: unknown, opts: Omit<RequestOptions, \"method\" | \"body\"> = {}): Promise<T> {\n return this.request<T>(path, { ...opts, method: \"POST\", body: body ?? {} });\n }\n\n patch<T>(path: string, body: unknown, opts: Omit<RequestOptions, \"method\" | \"body\"> = {}): Promise<T> {\n return this.request<T>(path, { ...opts, method: \"PATCH\", body });\n }\n\n delete<T>(path: string, body?: unknown, opts: Omit<RequestOptions, \"method\" | \"body\"> = {}): Promise<T> {\n return this.request<T>(path, { ...opts, method: \"DELETE\", body });\n }\n\n find<T>(path: string, opts: Omit<RequestOptions, \"absent\"> & { also?: readonly number[] } = {}): Promise<T | null> {\n const { also, ...rest } = opts;\n return this.request<T | null>(path, { ...rest, absent: [404, ...(also ?? [])] });\n }\n\n private defaultBearer(): string | undefined {\n const source = this.options.bearer;\n return typeof source === \"function\" ? source() : source;\n }\n}\n","import type { Transport } from \"../transport.js\";\nimport type { ApiOrder, ApiOrdersQuery, ApiCounterOffersQuery, ApiResponse } from \"../../types/api.js\";\n\nexport interface OrdersApi {\n list(query?: ApiOrdersQuery): Promise<ApiResponse<ApiOrder[]>>;\n get(orderHash: string): Promise<ApiOrder>;\n forToken(contract: string, tokenId: string): Promise<ApiResponse<ApiOrder[]>>;\n receivedBy(address: string, opts?: { page?: number; limit?: number }): Promise<ApiResponse<ApiOrder[]>>;\n byUser(address: string, opts?: { page?: number; limit?: number }): Promise<ApiResponse<ApiOrder[]>>;\n counterOffers(query: ApiCounterOffersQuery): Promise<ApiResponse<ApiOrder[]>>;\n}\n\nexport function createOrdersApi(t: Transport): OrdersApi {\n return {\n list(query = {}) {\n return t.get(\"/v1/orders\", {\n status: query.status,\n collection: query.collection,\n currency: query.currency,\n sort: query.sort,\n page: query.page,\n limit: query.limit,\n offerer: query.offerer ? t.addr(query.offerer) : undefined,\n minPrice: query.minPrice,\n maxPrice: query.maxPrice,\n chain: query.chain,\n });\n },\n async get(orderHash) {\n return (await t.get<ApiResponse<ApiOrder>>(`/v1/orders/${orderHash}`)).data;\n },\n forToken(contract, tokenId) {\n return t.get(`/v1/orders/token/${t.addr(contract)}/${tokenId}`);\n },\n receivedBy(address, opts = {}) {\n return t.get(`/v1/orders/received/${t.addr(address)}`, { page: opts.page ?? 1, limit: opts.limit ?? 50 });\n },\n byUser(address, opts = {}) {\n return t.get(`/v1/orders/user/${t.addr(address)}`, { page: opts.page ?? 1, limit: opts.limit ?? 20 });\n },\n counterOffers(query) {\n return t.get(\"/v1/orders/counter-offers\", {\n originalOrderHash: query.originalOrderHash,\n sellerAddress: query.sellerAddress,\n page: query.page,\n limit: query.limit,\n });\n },\n };\n}\n","import type { Transport } from \"../transport.js\";\nimport type {\n ApiActivity,\n ApiComment,\n ApiPublicRemix,\n ApiResponse,\n ApiToken,\n ApiTokenBalance,\n ApiTokensQuery,\n} from \"../../types/api.js\";\n\ninterface Paging {\n page?: number;\n limit?: number;\n}\n\nexport interface TokensApi {\n list(query?: ApiTokensQuery): Promise<ApiResponse<ApiToken[]>>;\n get(contract: string, tokenId: string, opts?: { wait?: boolean }): Promise<ApiToken>;\n balance(contract: string, tokenId: string, owner: string): Promise<ApiTokenBalance>;\n ownedBy(address: string, opts?: Paging): Promise<ApiResponse<ApiToken[]>>;\n history(contract: string, tokenId: string, opts?: Paging): Promise<ApiResponse<ApiActivity[]>>;\n comments(contract: string, tokenId: string, opts?: Paging): Promise<ApiResponse<ApiComment[]>>;\n remixes(contract: string, tokenId: string, opts?: Paging): Promise<ApiResponse<ApiPublicRemix[]>>;\n}\n\nexport function createTokensApi(t: Transport): TokensApi {\n return {\n list(query = {}) {\n return t.get(\"/v1/tokens\", {\n page: query.page,\n limit: query.limit,\n sort: query.sort,\n ipType: query.ipType,\n derivatives: query.derivatives,\n });\n },\n async get(contract, tokenId, opts = {}) {\n const res = await t.get<ApiResponse<ApiToken>>(`/v1/tokens/${contract}/${tokenId}`, opts.wait ? { wait: \"true\" } : undefined);\n return res.data;\n },\n async balance(contract, tokenId, owner) {\n return (await t.get<ApiResponse<ApiTokenBalance>>(`/v1/tokens/${contract}/${tokenId}/balances/${t.addr(owner)}`)).data;\n },\n ownedBy(address, opts = {}) {\n return t.get(`/v1/tokens/owned/${t.addr(address)}`, { page: opts.page ?? 1, limit: opts.limit ?? 20 });\n },\n history(contract, tokenId, opts = {}) {\n return t.get(`/v1/tokens/${contract}/${tokenId}/history`, { page: opts.page ?? 1, limit: opts.limit ?? 20 });\n },\n comments(contract, tokenId, opts = {}) {\n return t.get(`/v1/tokens/${t.addr(contract)}/${tokenId}/comments`, { page: opts.page, limit: opts.limit });\n },\n remixes(contract, tokenId, opts = {}) {\n return t.get(`/v1/tokens/${t.addr(contract)}/${tokenId}/remixes`, { page: opts.page, limit: opts.limit });\n },\n };\n}\n","import type { Transport } from \"../transport.js\";\nimport type {\n ApiCollection,\n ApiCollectionClaim,\n ApiCollectionProfile,\n ApiCollectionSlugClaim,\n ApiCollectionsListQuery,\n ApiResponse,\n ApiToken,\n CollectionTokensSort,\n UpdateCollectionProfileInput,\n} from \"../../types/api.js\";\n\nexport interface GatedContent {\n title: string;\n url: string;\n type: string;\n}\n\nexport interface CollectionsApi {\n list(query?: ApiCollectionsListQuery): Promise<ApiResponse<ApiCollection[]>>;\n get(contract: string): Promise<ApiCollection>;\n findBySlug(slug: string): Promise<ApiCollection | null>;\n tokens(contract: string, opts?: { page?: number; limit?: number; sort?: CollectionTokensSort }): Promise<ApiResponse<ApiToken[]>>;\n register(contractAddress: string): Promise<ApiCollection>;\n findProfile(contractAddress: string): Promise<ApiCollectionProfile | null>;\n updateProfile(contractAddress: string, data: UpdateCollectionProfileInput): Promise<ApiCollectionProfile>;\n findGatedContent(contractAddress: string): Promise<GatedContent | null>;\n claim(contractAddress: string, walletAddress: string): Promise<{ verified: boolean; collection?: ApiCollection; reason?: string }>;\n requestClaim(params: { contractAddress: string; walletAddress?: string; email: string; notes?: string }): Promise<{ claim: ApiCollectionClaim }>;\n slugAvailability(slug: string): Promise<{ available: boolean; reason?: string }>;\n submitSlugClaim(contractAddress: string, slug: string, notifyEmail?: string): Promise<{ claim: ApiCollectionSlugClaim }>;\n mySlugClaims(): Promise<{ claims: ApiCollectionSlugClaim[] }>;\n}\n\nconst slugOf = (slug: string) => encodeURIComponent(slug.toLowerCase().trim());\n\nexport function createCollectionsApi(t: Transport): CollectionsApi {\n return {\n list(query = {}) {\n return t.get(\"/v1/collections\", {\n page: query.page,\n limit: query.limit,\n owner: query.owner ? t.addr(query.owner) : undefined,\n service: query.service,\n sort: query.sort,\n isFeatured: query.isFeatured,\n hideEmpty: query.hideEmpty,\n standard: query.standard,\n chain: query.chain,\n });\n },\n async get(contract) {\n return (await t.get<ApiResponse<ApiCollection>>(`/v1/collections/${t.addr(contract)}`)).data;\n },\n async findBySlug(slug) {\n const res = await t.find<{ data: ApiCollection }>(`/v1/collections/by-slug/${slugOf(slug)}`);\n return res?.data ?? null;\n },\n tokens(contract, opts = {}) {\n return t.get(`/v1/collections/${t.addr(contract)}/tokens`, {\n page: opts.page ?? 1,\n limit: opts.limit ?? 20,\n sort: opts.sort ?? \"recent\",\n });\n },\n async register(contractAddress) {\n return (await t.post<{ data: ApiCollection }>(\"/v1/collections/register\", { contractAddress })).data;\n },\n findProfile(contractAddress) {\n return t.find(`/v1/collections/${t.addr(contractAddress)}/profile`);\n },\n updateProfile(contractAddress, data) {\n return t.patch(`/v1/collections/${t.addr(contractAddress)}/profile`, data);\n },\n findGatedContent(contractAddress) {\n return t.find(`/v1/collections/${t.addr(contractAddress)}/gated-content`, { also: [403] });\n },\n claim(contractAddress, walletAddress) {\n return t.post(\"/v1/collections/claim\", { contractAddress, walletAddress });\n },\n requestClaim(params) {\n return t.post(\"/v1/collections/claim/request\", params);\n },\n slugAvailability(slug) {\n return t.get(`/v1/collection-slug-claims/check/${slugOf(slug)}`);\n },\n submitSlugClaim(contractAddress, slug, notifyEmail) {\n return t.post(\"/v1/collection-slug-claims\", { contractAddress, slug, notifyEmail });\n },\n mySlugClaims() {\n return t.get(\"/v1/collection-slug-claims/me\");\n },\n };\n}\n","import type { Transport } from \"../transport.js\";\nimport type { ApiActivitiesQuery, ApiActivity, ApiResponse, ApiSearchResult, ApiWalletActivity, ChainFilter } from \"../../types/api.js\";\n\nexport interface ActivityApi {\n list(query?: ApiActivitiesQuery): Promise<ApiResponse<ApiActivity[]>>;\n byAddress(address: string, opts?: { page?: number; limit?: number }): Promise<ApiResponse<ApiActivity[]>>;\n wallet(address: string, chain?: \"STARKNET\"): Promise<ApiResponse<ApiWalletActivity[]>>;\n}\n\nexport interface SearchApi {\n (q: string, limit?: number, chain?: ChainFilter): Promise<ApiResponse<ApiSearchResult> & { query: string }>;\n}\n\nexport function createActivityApi(t: Transport): ActivityApi {\n return {\n list(query = {}) {\n return t.get(\"/v1/activities\", {\n type: query.type,\n contract: query.contract,\n page: query.page,\n limit: query.limit,\n chain: query.chain,\n });\n },\n byAddress(address, opts = {}) {\n return t.get(`/v1/activities/${t.addr(address)}`, { page: opts.page ?? 1, limit: opts.limit ?? 20 });\n },\n wallet(address, chain = \"STARKNET\") {\n return t.get(\"/v1/wallet-activity\", { address: t.addr(address), chain });\n },\n };\n}\n\nexport function createSearchApi(t: Transport): SearchApi {\n return (q, limit = 10, chain) => t.get(\"/v1/search\", { q, limit, chain });\n}\n","import type { Transport } from \"../transport.js\";\nimport { intentPath, type IntentKind } from \"../../contract/intents.js\";\nimport type {\n ApiCheckoutIntentResult,\n ApiIntent,\n ApiIntentCreated,\n ApiTxSyncResult,\n CreateCheckoutIntentParams,\n IntentParamsByKind,\n} from \"../../types/api.js\";\n\nexport interface IntentsApi {\n create<K extends IntentKind>(kind: K, params: IntentParamsByKind[K], opts?: { bearer?: string }): Promise<ApiIntentCreated>;\n checkout(params: CreateCheckoutIntentParams): Promise<ApiCheckoutIntentResult[]>;\n get(id: string): Promise<ApiIntent>;\n submitSignature(id: string, signature: string[]): Promise<ApiIntent>;\n confirm(id: string, txHash: string): Promise<ApiIntent>;\n syncTransaction(txHash: string): Promise<ApiTxSyncResult>;\n}\n\nexport function createIntentsApi(t: Transport): IntentsApi {\n return {\n async create(kind, params, opts) {\n const res = await t.post<{ data: ApiIntentCreated }>(intentPath(kind), params, { bearer: opts?.bearer });\n return res.data;\n },\n async checkout(params) {\n const res = await t.post<{ data: ApiCheckoutIntentResult[] }>(intentPath(\"checkout\"), params);\n return res.data;\n },\n async get(id) {\n return (await t.get<{ data: ApiIntent }>(`/v1/intents/${id}`)).data;\n },\n async submitSignature(id, signature) {\n return (await t.patch<{ data: ApiIntent }>(`/v1/intents/${id}/signature`, { signature })).data;\n },\n async confirm(id, txHash) {\n return (await t.patch<{ data: ApiIntent }>(`/v1/intents/${id}/confirm`, { txHash })).data;\n },\n async syncTransaction(txHash) {\n return (await t.post<{ data: ApiTxSyncResult }>(\"/v1/tx/sync\", { txHash })).data;\n },\n };\n}\n","import type { Transport } from \"../transport.js\";\nimport type { ApiMetadataSignedUrl, ApiMetadataUpload, ApiResponse } from \"../../types/api.js\";\n\nexport interface MetadataApi {\n signedUrl(kind?: \"image\" | \"document\" | \"media\"): Promise<ApiResponse<ApiMetadataSignedUrl>>;\n upload(metadata: Record<string, unknown>): Promise<ApiResponse<ApiMetadataUpload>>;\n uploadDirectory(files: { name: string; content: unknown }[]): Promise<{ cid: string; baseUri: string }>;\n resolve(uri: string): Promise<ApiResponse<unknown>>;\n uploadFile(file: File): Promise<ApiResponse<ApiMetadataUpload>>;\n}\n\nexport function createMetadataApi(t: Transport): MetadataApi {\n return {\n signedUrl(kind) {\n return t.get(\"/v1/metadata/signed-url\", { kind });\n },\n upload(metadata) {\n return t.post(\"/v1/metadata/upload\", metadata);\n },\n async uploadDirectory(files) {\n return (await t.post<{ data: { cid: string; baseUri: string } }>(\"/v1/metadata/upload-directory\", { files })).data;\n },\n resolve(uri) {\n return t.get(\"/v1/metadata/resolve\", { uri });\n },\n uploadFile(file) {\n const formData = new FormData();\n formData.append(\"file\", file);\n return t.request(\"/v1/metadata/upload-file\", { method: \"POST\", body: formData });\n },\n };\n}\n","import type { Transport } from \"../transport.js\";\nimport type { ApiCreatorListResult, ApiCreatorProfile, ApiUsernameClaim } from \"../../types/api.js\";\n\nexport interface CreatorsApi {\n list(opts?: { search?: string; page?: number; limit?: number }): Promise<ApiCreatorListResult>;\n findProfile(walletAddress: string): Promise<ApiCreatorProfile | null>;\n findByUsername(username: string): Promise<ApiCreatorProfile | null>;\n updateProfile(\n walletAddress: string,\n data: Partial<Omit<ApiCreatorProfile, \"walletAddress\" | \"chain\" | \"updatedAt\">>,\n ): Promise<ApiCreatorProfile>;\n isHidden(wallet: string): Promise<boolean>;\n myUsernameClaim(): Promise<{ username: string | null; claim: ApiUsernameClaim | null }>;\n usernameAvailability(username: string): Promise<{ available: boolean; reason?: string }>;\n submitUsernameClaim(username: string, notifyEmail?: string): Promise<ApiUsernameClaim>;\n}\n\nexport function createCreatorsApi(t: Transport): CreatorsApi {\n return {\n list(opts = {}) {\n return t.get(\"/v1/creators\", { search: opts.search, page: opts.page || undefined, limit: opts.limit || undefined });\n },\n findProfile(walletAddress) {\n return t.find(`/v1/creators/${t.addr(walletAddress)}/profile`);\n },\n findByUsername(username) {\n return t.find(`/v1/creators/by-username/${encodeURIComponent(username.toLowerCase().trim())}`);\n },\n updateProfile(walletAddress, data) {\n return t.patch(`/v1/creators/${t.addr(walletAddress)}/profile`, data);\n },\n async isHidden(wallet) {\n return (await t.get<{ isHidden: boolean }>(`/v1/creators/${t.addr(wallet)}/hidden`)).isHidden;\n },\n myUsernameClaim() {\n return t.get(\"/v1/username-claims/me\");\n },\n usernameAvailability(username) {\n return t.get(`/v1/username-claims/check/${encodeURIComponent(username)}`);\n },\n async submitUsernameClaim(username, notifyEmail) {\n const res = await t.post<{ claim: ApiUsernameClaim }>(\"/v1/username-claims\", {\n username,\n ...(notifyEmail ? { notifyEmail } : {}),\n });\n return res.claim;\n },\n };\n}\n","import type { Transport } from \"../transport.js\";\nimport type { ApiChain, ApiUserWallet } from \"../../types/api.js\";\n\nexport interface RegisteredUser {\n accountId: string;\n publicId: string;\n walletAddress: string;\n chain: string;\n provider: string;\n createdAt: string;\n}\n\nexport interface AccountApi {\n registerUser(params: { walletAddress: string; walletType?: string; chain?: ApiChain }): Promise<RegisteredUser>;\n upsertMyWallet(options?: { walletType?: string; chain?: ApiChain; email?: string }): Promise<ApiUserWallet>;\n findMyWallet(): Promise<ApiUserWallet | null>;\n changeMyEmail(email: string): Promise<{ email: string }>;\n sessionWallet(): Promise<{ walletAddress: string; needsKeySetup: boolean } | null>;\n setupWalletKey(params: { newOwnerPubkey: string }): Promise<{ walletAddress: string; removeOwnerGuid: string | null }>;\n generateWallet(newWalletSiwsToken: string): Promise<{ walletAddress: string }>;\n emailExists(email: string): Promise<boolean>;\n requestEmailCode(email: string): Promise<void>;\n registerEmailAccount(email: string): Promise<void>;\n verifyEmailCode(email: string, code: string): Promise<void>;\n confirmEmail(token: string): Promise<{ email: string }>;\n}\n\nexport function createAccountApi(t: Transport): AccountApi {\n return {\n registerUser(params) {\n return t.post(\"/v1/users/register\", params);\n },\n upsertMyWallet(options = {}) {\n const body: Record<string, string> = { walletType: options.walletType ?? \"UNKNOWN\" };\n if (options.chain) body.chain = options.chain;\n if (options.email) body.email = options.email;\n return t.post(\"/v1/users/me\", body);\n },\n findMyWallet() {\n return t.find(\"/v1/users/me\");\n },\n changeMyEmail(email) {\n return t.post(\"/v1/users/me/email\", { email });\n },\n async sessionWallet() {\n const body = await t.post<{ walletAddress?: string | null; needsKeySetup?: boolean }>(\"/v1/users/me/wallet\", {});\n return body.walletAddress ? { walletAddress: body.walletAddress, needsKeySetup: body.needsKeySetup === true } : null;\n },\n setupWalletKey(params) {\n return t.post(\"/v1/users/me/wallet/key\", params);\n },\n generateWallet(newWalletSiwsToken) {\n return t.post(\"/v1/users/me/generate-wallet\", { newWalletSiwsToken });\n },\n async emailExists(email) {\n return (await t.get<{ exists: boolean }>(\"/v1/auth/email/exists\", { email })).exists;\n },\n async requestEmailCode(email) {\n await t.post(\"/v1/auth/email/request-code\", { email });\n },\n async registerEmailAccount(email) {\n await t.post(\"/v1/auth/email/register-account\", { email });\n },\n async verifyEmailCode(email, code) {\n await t.post(\"/v1/auth/email/verify-code\", { email, code });\n },\n async confirmEmail(token) {\n const body = await t.post<{ ok: boolean; email: string }>(\"/v1/auth/email/confirm\", { token });\n return { email: body.email };\n },\n };\n}\n","import type { Transport } from \"../transport.js\";\nimport type { ApiKeyConfirmation } from \"../../starknet/api-key-confirmation.js\";\nimport type {\n ApiCreditPayment,\n ApiFundingInstructions,\n ApiFundingIntent,\n ApiFundingMethod,\n ApiFundingSubmit,\n ApiPortalKey,\n ApiPortalKeyCreated,\n ApiPortalMe,\n ApiPortalSpend,\n ApiPricing,\n ApiResponse,\n} from \"../../types/api.js\";\n\nexport interface FundingApi {\n methods(): Promise<ApiFundingMethod[]>;\n create(input: { method: string; params: Record<string, unknown> }): Promise<ApiFundingIntent>;\n get(id: string): Promise<ApiFundingIntent>;\n challenge(id: string, payer: string): Promise<{ typedData: unknown }>;\n authorize(id: string, input: { payer: string; signature: string[] }): Promise<{ instructions: ApiFundingInstructions }>;\n submit(id: string, txHash: string): Promise<ApiFundingSubmit>;\n cancel(id: string): Promise<{ status: string }>;\n}\n\nexport interface PortalApi {\n me(): Promise<ApiPortalMe>;\n apiKeys(): Promise<ApiPortalKey[]>;\n createApiKey(input: { label?: string } | undefined, confirmation: ApiKeyConfirmation): Promise<ApiPortalKeyCreated>;\n deleteApiKey(id: string, confirmation: ApiKeyConfirmation): Promise<{ id: string }>;\n creditHistory(): Promise<ApiCreditPayment[]>;\n spend(): Promise<ApiPortalSpend>;\n checkDeposit(txHash: string): Promise<{ deposits: number }>;\n pricing(): Promise<ApiPricing>;\n funding: FundingApi;\n}\n\nexport function createPortalApi(t: Transport): PortalApi {\n const data = async <T>(promise: Promise<ApiResponse<T>>): Promise<T> => (await promise).data;\n const fundingPath = (id: string) => `/v1/portal/funding/${encodeURIComponent(id)}`;\n return {\n me: () => data(t.get(\"/v1/portal/me\")),\n apiKeys: () => data(t.get(\"/v1/portal/keys\")),\n createApiKey: (input, confirmation) => data(t.post(\"/v1/portal/keys\", { ...(input ?? {}), confirmation })),\n deleteApiKey: (id, confirmation) => data(t.delete(`/v1/portal/keys/${id}`, { confirmation })),\n creditHistory: () => data(t.get(\"/v1/portal/credits/history\")),\n spend: () => data(t.get(\"/v1/portal/credits/spend\")),\n checkDeposit: (txHash) => data(t.post(\"/v1/portal/credits/check\", { txHash })),\n pricing: () => t.get(\"/v1/pricing\"),\n funding: {\n methods: () => data(t.get(\"/v1/portal/funding/methods\")),\n create: (input) => data(t.post(\"/v1/portal/funding\", { method: input.method, params: input.params })),\n get: (id) => data(t.get(fundingPath(id))),\n challenge: (id, payer) => data(t.post(`${fundingPath(id)}/challenge`, { payer })),\n authorize: (id, input) => data(t.post(`${fundingPath(id)}/authorize`, { payer: input.payer, signature: input.signature })),\n submit: (id, txHash) => data(t.post(`${fundingPath(id)}/submit`, { txHash })),\n cancel: (id) => data(t.post(`${fundingPath(id)}/cancel`, {})),\n },\n };\n}\n","import type { z } from \"zod\";\nimport type { Transport } from \"../transport.js\";\nimport type * as provisioning from \"../../contract/provisioning.js\";\nimport type { ApiBusinessProvisioning, ApiEmissionResult, ApiResponse, EmissionParams } from \"../../types/api.js\";\n\nexport type ProvisioningResult = ApiResponse<ApiBusinessProvisioning> & { reusedExistingWallet?: boolean };\n\nexport interface BusinessApi {\n emit(params: EmissionParams): Promise<ApiEmissionResult>;\n registerProvisioning(params: z.input<typeof provisioning.provisioningRegisterSchema>): Promise<ProvisioningResult>;\n}\n\nexport function createBusinessApi(t: Transport): BusinessApi {\n return {\n async emit(params) {\n return (await t.post<ApiResponse<ApiEmissionResult>>(\"/v1/business/issuance/emission\", params)).data;\n },\n registerProvisioning(params) {\n return t.post(\"/v1/business/provisioning\", { chain: params.chain ?? \"STARKNET\", email: params.email });\n },\n };\n}\n","import type { Transport } from \"../transport.js\";\nimport type {\n ApiRemixOffer,\n ApiRemixOffersQuery,\n AutoRemixOfferParams,\n ConfirmRemixOfferParams,\n ConfirmSelfRemixParams,\n CreateRemixOfferParams,\n ApiResponse,\n} from \"../../types/api.js\";\n\nexport interface RemixApi {\n submit(params: CreateRemixOfferParams): Promise<ApiRemixOffer>;\n submitAuto(params: AutoRemixOfferParams): Promise<ApiRemixOffer>;\n confirmSelf(params: ConfirmSelfRemixParams): Promise<ApiRemixOffer>;\n list(query: ApiRemixOffersQuery): Promise<ApiResponse<ApiRemixOffer[]>>;\n get(id: string): Promise<ApiRemixOffer>;\n confirm(id: string, params: ConfirmRemixOfferParams): Promise<ApiRemixOffer>;\n reject(id: string): Promise<ApiRemixOffer>;\n extend(id: string, days: number): Promise<ApiRemixOffer>;\n}\n\nexport function createRemixApi(t: Transport): RemixApi {\n const one = async (promise: Promise<ApiResponse<ApiRemixOffer>>): Promise<ApiRemixOffer> => (await promise).data;\n return {\n submit: (params) => one(t.post(\"/v1/remix-offers\", params)),\n submitAuto: (params) => one(t.post(\"/v1/remix-offers/auto\", params)),\n confirmSelf: (params) => one(t.post(\"/v1/remix-offers/self/confirm\", params)),\n list: (query) =>\n t.get(\"/v1/remix-offers\", { role: query.role, status: query.status, page: query.page, limit: query.limit }),\n get: (id) => one(t.get(`/v1/remix-offers/${id}`)),\n confirm: (id, params) => one(t.post(`/v1/remix-offers/${id}/confirm`, params)),\n reject: (id) => one(t.post(`/v1/remix-offers/${id}/reject`, {})),\n extend: (id, days) => one(t.post(`/v1/remix-offers/${id}/extend`, { days })),\n };\n}\n","import type { Transport } from \"../transport.js\";\nimport type {\n ApiCoin,\n ApiCoinClaimResult,\n ApiCoinPrices,\n ApiCoinsQuery,\n ApiCollectionClaim,\n ApiResponse,\n} from \"../../types/api.js\";\n\nexport interface CoinsApi {\n list(opts?: ApiCoinsQuery): Promise<ApiResponse<ApiCoin[]>>;\n get(contract: string): Promise<ApiCoin>;\n prices(): Promise<ApiCoinPrices>;\n claim(coinAddress: string): Promise<ApiCoinClaimResult>;\n claims(status?: string): Promise<ApiResponse<ApiCollectionClaim[]>>;\n updateProfile(contract: string, data: { image?: string | null; description?: string | null }): Promise<ApiCoin>;\n sync(coinAddress: string, owner?: string): Promise<ApiCoin>;\n}\n\nexport function createCoinsApi(t: Transport): CoinsApi {\n return {\n list(opts = {}) {\n return t.get(\"/v1/coins\", {\n page: opts.page || undefined,\n limit: opts.limit || undefined,\n service: opts.service,\n sort: opts.sort,\n creator: opts.creator ? t.addr(opts.creator) : undefined,\n chain: opts.chain,\n });\n },\n async get(contract) {\n return (await t.get<{ data: ApiCoin }>(`/v1/coins/${t.addr(contract)}`)).data;\n },\n async prices() {\n return (await t.get<ApiResponse<ApiCoinPrices>>(\"/v1/coins/prices\")).data;\n },\n claim(coinAddress) {\n return t.post(\"/v1/coins/claim\", { coinAddress });\n },\n claims(status = \"PENDING\") {\n return t.get(\"/v1/coins/claims\", { status });\n },\n async updateProfile(contract, data) {\n return (await t.patch<ApiResponse<ApiCoin>>(`/v1/coins/${t.addr(contract)}`, data)).data;\n },\n async sync(coinAddress, owner) {\n return (await t.post<{ data: ApiCoin }>(\"/v1/coins/sync\", { coinAddress, ...(owner ? { owner } : {}) })).data;\n },\n };\n}\n","import type { Transport } from \"../transport.js\";\nimport type { ApiDrop, ApiDropFee, ApiDropListStatus, ApiDropMint, ApiResponse } from \"../../types/api.js\";\n\nexport interface DropsApi {\n fee(): Promise<ApiDropFee>;\n list(query?: { status?: ApiDropListStatus; organizer?: string; page?: number; limit?: number }): Promise<ApiResponse<ApiDrop[]>>;\n find(contract: string): Promise<ApiDrop | null>;\n mints(contract: string, opts?: { page?: number; limit?: number }): Promise<ApiResponse<ApiDropMint[]>>;\n}\n\nexport function createDropsApi(t: Transport): DropsApi {\n return {\n async fee() {\n return (await t.get<{ data: ApiDropFee }>(\"/v1/drops/fee\")).data;\n },\n list(query = {}) {\n return t.get(\"/v1/drops\", {\n status: query.status,\n organizer: query.organizer ? t.addr(query.organizer) : undefined,\n page: query.page,\n limit: query.limit,\n });\n },\n async find(contract) {\n const res = await t.find<{ data: ApiDrop }>(`/v1/drops/${t.addr(contract)}`);\n return res?.data ?? null;\n },\n mints(contract, opts = {}) {\n return t.get(`/v1/drops/${t.addr(contract)}/mints`, { page: opts.page, limit: opts.limit });\n },\n };\n}\n","import type { Transport } from \"../transport.js\";\nimport type {\n ApiResponse,\n ApiSponsorshipBid,\n ApiSponsorshipLicense,\n ApiSponsorshipLicensesQuery,\n ApiSponsorshipOffer,\n ApiSponsorshipOffersQuery,\n ApiSponsorshipProposal,\n ApiSponsorshipProposalsQuery,\n} from \"../../types/api.js\";\n\nexport interface SponsorshipApi {\n offers(query?: ApiSponsorshipOffersQuery): Promise<ApiResponse<ApiSponsorshipOffer[]>>;\n findOffer(offerId: string): Promise<ApiSponsorshipOffer | null>;\n bids(offerId: string): Promise<ApiSponsorshipBid[]>;\n proposals(query?: ApiSponsorshipProposalsQuery): Promise<ApiResponse<ApiSponsorshipProposal[]>>;\n findProposal(proposalId: string): Promise<ApiSponsorshipProposal | null>;\n licenses(query?: ApiSponsorshipLicensesQuery): Promise<ApiResponse<ApiSponsorshipLicense[]>>;\n}\n\nexport function createSponsorshipApi(t: Transport): SponsorshipApi {\n return {\n offers(query = {}) {\n return t.get(\"/v1/sponsorship/offers\", {\n limit: query.limit ?? 50,\n nftContract: query.nftContract,\n author: query.author,\n owner: query.owner,\n open: query.open,\n });\n },\n async findOffer(offerId) {\n const res = await t.find<{ data: ApiSponsorshipOffer }>(`/v1/sponsorship/offers/${encodeURIComponent(offerId)}`);\n return res?.data ?? null;\n },\n async bids(offerId) {\n return (await t.get<{ data: ApiSponsorshipBid[] }>(`/v1/sponsorship/offers/${encodeURIComponent(offerId)}/bids`)).data;\n },\n proposals(query = {}) {\n return t.get(\"/v1/sponsorship/proposals\", {\n limit: query.limit ?? 50,\n nftContract: query.nftContract,\n proposer: query.proposer,\n owner: query.owner,\n open: query.open,\n });\n },\n async findProposal(proposalId) {\n const res = await t.find<{ data: ApiSponsorshipProposal }>(`/v1/sponsorship/proposals/${encodeURIComponent(proposalId)}`);\n return res?.data ?? null;\n },\n licenses(query = {}) {\n return t.get(\"/v1/sponsorship/licenses\", { limit: query.limit ?? 50, holder: query.holder, author: query.author });\n },\n };\n}\n","import type { Transport } from \"../transport.js\";\nimport type {\n ApiPointEvent,\n ApiResponse,\n ApiRewardsBatchEntry,\n ApiRewardsConfig,\n ApiRewardsLeaderboardEntry,\n ApiUserRewards,\n} from \"../../types/api.js\";\n\nexport interface RewardsApi {\n get(address: string): Promise<ApiUserRewards>;\n leaderboard(opts?: { page?: number; limit?: number }): Promise<ApiResponse<ApiRewardsLeaderboardEntry[]>>;\n events(address: string, opts?: { page?: number; limit?: number }): Promise<ApiResponse<ApiPointEvent[]>>;\n config(): Promise<ApiRewardsConfig>;\n batch(addresses: string[]): Promise<ApiRewardsBatchEntry[]>;\n}\n\nexport function createRewardsApi(t: Transport): RewardsApi {\n return {\n async get(address) {\n return (await t.get<{ data: ApiUserRewards }>(`/v1/rewards/${t.addr(address)}`)).data;\n },\n leaderboard(opts = {}) {\n return t.get(\"/v1/rewards\", { page: opts.page ?? 1, limit: opts.limit ?? 50 });\n },\n events(address, opts = {}) {\n return t.get(`/v1/rewards/${t.addr(address)}/events`, { page: opts.page ?? 1, limit: opts.limit ?? 20 });\n },\n async config() {\n return (await t.get<{ data: ApiRewardsConfig }>(\"/v1/rewards/config\")).data;\n },\n async batch(addresses) {\n if (addresses.length === 0) return [];\n const res = await t.get<{ data: ApiRewardsBatchEntry[] }>(\"/v1/rewards/batch\", {\n addresses: addresses.map((a) => t.addr(a)).join(\",\"),\n });\n return res.data;\n },\n };\n}\n","import type { Transport } from \"../transport.js\";\nimport type { ApiPlatformStats, ApiSubmitReport, ApiSwapQuote, ApiSwapQuoteRequest } from \"../../types/api.js\";\n\nexport interface PlatformApi {\n stats(): Promise<ApiPlatformStats>;\n swapQuote(body: ApiSwapQuoteRequest): Promise<ApiSwapQuote>;\n submitReport(report: ApiSubmitReport): Promise<void>;\n}\n\nexport function createPlatformApi(t: Transport): PlatformApi {\n return {\n async stats() {\n return (await t.get<{ data: ApiPlatformStats }>(\"/v1/stats\")).data;\n },\n async swapQuote(body) {\n return (await t.post<{ quote: ApiSwapQuote }>(\"/v1/swap/quote\", body)).quote;\n },\n async submitReport(report) {\n const targetContract = report.targetContract ? t.addr(report.targetContract) : undefined;\n const targetAddress = report.targetAddress ? t.addr(report.targetAddress) : undefined;\n let targetKey: string | null = null;\n if (report.targetType === \"TOKEN\" && targetContract && report.targetTokenId) {\n targetKey = `TOKEN:${targetContract}:${report.targetTokenId}`;\n } else if (report.targetType === \"COLLECTION\" && targetContract) {\n targetKey = `COLLECTION:${targetContract}`;\n } else if (report.targetType === \"CREATOR\" && targetAddress) {\n targetKey = `CREATOR:${targetAddress}`;\n } else if (report.targetType === \"COMMENT\" && report.targetId) {\n targetKey = `COMMENT::${report.targetId}`;\n }\n if (!targetKey) throw new Error(`A ${report.targetType} report needs its target`);\n await t.post(\"/v1/reports\", { ...report, targetKey, targetContract, targetAddress });\n },\n };\n}\n","import type { Transport } from \"../transport.js\";\nimport type { CreatorCoinGuarantees } from \"../../starknet/services/creatorCoin.js\";\nimport type { PopClaimInfo } from \"../../starknet/pop-claim.js\";\nimport type { DropOnchain } from \"../../starknet/drop-state.js\";\nimport { dropStateFromWire, type DropStateWire } from \"../../contract/chainReads.js\";\nimport type { ApiIpNftTokenData, ApiTierOnchain } from \"../../types/api.js\";\n\nexport interface ChainReadsApi {\n ticket(contract: string, tokenId: string): Promise<ApiTierOnchain>;\n ticketCount(contract: string): Promise<number>;\n clubMembershipCount(contract: string): Promise<number>;\n clubMembership(contract: string, tokenId: string): Promise<ApiTierOnchain>;\n isClubMember(contract: string, tokenId: string, wallet: string): Promise<boolean>;\n ipNftTokenData(contract: string, tokenId: string): Promise<ApiIpNftTokenData | null>;\n coinGuarantees(contract: string): Promise<CreatorCoinGuarantees | null>;\n popClaimInfo(collection: string): Promise<PopClaimInfo | null>;\n dropState(contract: string): Promise<DropOnchain | null>;\n}\n\nexport function createChainReadsApi(t: Transport): ChainReadsApi {\n const data = async <T>(path: string): Promise<T> => (await t.get<{ data: T }>(path)).data;\n return {\n ticket: (contract, tokenId) => data(`/v1/tickets/${t.addr(contract)}/${tokenId}`),\n ticketCount: async (contract) => (await data<{ count: number }>(`/v1/tickets/${t.addr(contract)}/count`)).count,\n clubMembershipCount: async (contract) => (await data<{ count: number }>(`/v1/club/${t.addr(contract)}/count`)).count,\n clubMembership: (contract, tokenId) => data(`/v1/club/${t.addr(contract)}/${tokenId}`),\n isClubMember: async (contract, tokenId, wallet) =>\n (await data<{ isMember: boolean }>(`/v1/club/${t.addr(contract)}/${tokenId}/member/${t.addr(wallet)}`)).isMember,\n ipNftTokenData: (contract, tokenId) => data(`/v1/ipnft/${t.addr(contract)}/${tokenId}`),\n coinGuarantees: (contract) => data(`/v1/coins/${t.addr(contract)}/guarantees`),\n popClaimInfo: (collection) => data(`/v1/pop/${t.addr(collection)}/claim-info`),\n async dropState(contract) {\n const wire = await data<DropStateWire | null>(`/v1/drops/${t.addr(contract)}/state`);\n return wire ? dropStateFromWire(wire) : null;\n },\n };\n}\n","import { MedialaneApiError, parseRetryAfter } from \"../errors.js\";\nimport { Transport, type BearerSource, type TransportOptions } from \"./transport.js\";\nimport { createOrdersApi, type OrdersApi } from \"./domains/orders.js\";\nimport { createTokensApi, type TokensApi } from \"./domains/tokens.js\";\nimport { createCollectionsApi, type CollectionsApi } from \"./domains/collections.js\";\nimport { createActivityApi, createSearchApi, type ActivityApi, type SearchApi } from \"./domains/activity.js\";\nimport { createIntentsApi, type IntentsApi } from \"./domains/intents.js\";\nimport { createMetadataApi, type MetadataApi } from \"./domains/metadata.js\";\nimport { createCreatorsApi, type CreatorsApi } from \"./domains/creators.js\";\nimport { createAccountApi, type AccountApi } from \"./domains/account.js\";\nimport { createPortalApi, type PortalApi } from \"./domains/portal.js\";\nimport { createBusinessApi, type BusinessApi } from \"./domains/business.js\";\nimport { createRemixApi, type RemixApi } from \"./domains/remix.js\";\nimport { createCoinsApi, type CoinsApi } from \"./domains/coins.js\";\nimport { createDropsApi, type DropsApi } from \"./domains/drops.js\";\nimport { createSponsorshipApi, type SponsorshipApi } from \"./domains/sponsorship.js\";\nimport { createRewardsApi, type RewardsApi } from \"./domains/rewards.js\";\nimport { createPlatformApi, type PlatformApi } from \"./domains/platform.js\";\nimport { createChainReadsApi, type ChainReadsApi } from \"./domains/chainReads.js\";\n\nexport { MedialaneApiError, parseRetryAfter };\n\nexport type ApiClientOptions = TransportOptions;\n\nexport class ApiClient {\n private readonly transport: Transport;\n\n readonly orders: OrdersApi;\n readonly tokens: TokensApi;\n readonly collections: CollectionsApi;\n readonly activity: ActivityApi;\n readonly search: SearchApi;\n readonly intents: IntentsApi;\n readonly metadata: MetadataApi;\n readonly creators: CreatorsApi;\n readonly account: AccountApi;\n readonly portal: PortalApi;\n readonly business: BusinessApi;\n readonly remix: RemixApi;\n readonly coins: CoinsApi;\n readonly drops: DropsApi;\n readonly sponsorship: SponsorshipApi;\n readonly rewards: RewardsApi;\n readonly platform: PlatformApi;\n readonly chainReads: ChainReadsApi;\n\n constructor(options: ApiClientOptions) {\n this.transport = new Transport(options);\n const t = this.transport;\n this.orders = createOrdersApi(t);\n this.tokens = createTokensApi(t);\n this.collections = createCollectionsApi(t);\n this.activity = createActivityApi(t);\n this.search = createSearchApi(t);\n this.intents = createIntentsApi(t);\n this.metadata = createMetadataApi(t);\n this.creators = createCreatorsApi(t);\n this.account = createAccountApi(t);\n this.portal = createPortalApi(t);\n this.business = createBusinessApi(t);\n this.remix = createRemixApi(t);\n this.coins = createCoinsApi(t);\n this.drops = createDropsApi(t);\n this.sponsorship = createSponsorshipApi(t);\n this.rewards = createRewardsApi(t);\n this.platform = createPlatformApi(t);\n this.chainReads = createChainReadsApi(t);\n }\n\n withBearer(bearer: BearerSource | undefined): ApiClient {\n return new ApiClient({ ...this.transport.settings(), bearer });\n }\n}\n","export class PasskeyCancelledError extends Error {\n constructor(message = \"Passkey prompt was cancelled.\") {\n super(message);\n this.name = \"PasskeyCancelledError\";\n }\n}\n\nexport class DeviceKeyMissingError extends Error {\n constructor() {\n super(\"This browser no longer holds the wallet key. Recover the wallet with its recovery key.\");\n this.name = \"DeviceKeyMissingError\";\n }\n}\n\nexport type PasskeyUnsupportedReason = \"no-webauthn\" | \"no-prf\";\n\nexport class PasskeyUnsupportedError extends Error {\n readonly reason: PasskeyUnsupportedReason;\n constructor(reason: PasskeyUnsupportedReason) {\n super(\n reason === \"no-webauthn\"\n ? \"Passkeys are not available in this environment.\"\n : \"This passkey did not return a PRF secret, so it cannot seal a wallet key.\",\n );\n this.name = \"PasskeyUnsupportedError\";\n this.reason = reason;\n }\n}\n","import { getCoordinates } from \"./chains.js\";\n\nconst SN = getCoordinates(\"STARKNET\");\n\nexport const STARKNET_MARKETPLACE_721_CONTRACT = SN.marketplace721;\nexport const STARKNET_MARKETPLACE_1155_CONTRACT = SN.marketplace1155;\n\nexport const STARKNET_COLLECTION_721_CONTRACT = SN.collection721;\nexport const STARKNET_DATA_TOKENIZATION_721_CONTRACT = SN.dataTokenization721;\nexport const STARKNET_COLLECTION_1155_CONTRACT = SN.collection1155;\n\nexport const STARKNET_POP_FACTORY_CONTRACT = SN.popFactory;\nexport const STARKNET_POP_FACTORY_START_BLOCK = SN.popFactoryStartBlock;\nexport const STARKNET_DROP_FACTORY_CONTRACT = SN.dropFactory;\nexport const STARKNET_DROP_FACTORY_START_BLOCK = SN.dropFactoryStartBlock;\nexport const STARKNET_NFTCOMMENTS_CONTRACT = SN.nftComments;\n\nexport const STARKNET_IP_TICKETS_FACTORY_CONTRACT = SN.ipTicketsFactory;\nexport const STARKNET_IP_CLUB_FACTORY_CONTRACT = SN.ipClubFactory;\nexport const STARKNET_IP_SPONSORSHIP_CONTRACT = SN.ipSponsorship;\n\nexport const STARKNET_MEDIAWALLET_CLASS_HASH = SN.mediaWalletClassHash;\n\nexport const STARKNET_CREATOR_COIN_FACTORY_CONTRACT = SN.creatorCoinFactory;\n\nexport const STARKNET_GENESIS_MINT_CONTRACT = SN.genesisMint;\nexport const STARKNET_GENESIS_NFT_URI = \"ipfs://bafkreiag6wzov7migmxwx3wrtudvbx4ajrlbjopqw7uni7nn2nsxv4eykm\";\n\nexport const SUPPORTED_TOKENS = [\n {\n\n symbol: \"USDC\",\n address:\n \"0x033068f6539f8e6e6b131e6b2b814e6c34a5224bc66947c47dab9dfee93b35fb\",\n decimals: 6,\n listable: true,\n },\n {\n symbol: \"USDT\",\n address:\n \"0x068f5c6a61780768455de69077e07e89787839bf8166decfbf92b645209c0fb8\",\n decimals: 6,\n listable: true,\n },\n {\n symbol: \"ETH\",\n address:\n \"0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7\",\n decimals: 18,\n listable: true,\n },\n {\n symbol: \"STRK\",\n address:\n \"0x04718f5a0fc34cc1af16a1cdee98ffb20c31f5cd61d6ab07201858f4287c938d\",\n decimals: 18,\n listable: true,\n },\n {\n symbol: \"WBTC\",\n address:\n \"0x03fe2b97c1fd336e750087d68b9b867997fd64a2661ff3ca5a7c771641e8e7ac\",\n decimals: 8,\n listable: true,\n },\n] as const;\n\nexport type SupportedTokenSymbol = (typeof SUPPORTED_TOKENS)[number][\"symbol\"];\n\nexport const DEFAULT_CURRENCY: SupportedTokenSymbol = \"USDC\";\n","import { SUPPORTED_TOKENS } from \"../constants.js\";\n\nexport type SupportedToken = (typeof SUPPORTED_TOKENS)[number];\n\nexport function parseAmount(human: string, decimals: number): string {\n const [whole, frac = \"\"] = human.split(\".\");\n const fracPadded = frac.padEnd(decimals, \"0\").slice(0, decimals);\n return (BigInt(whole) * BigInt(10) ** BigInt(decimals) + BigInt(fracPadded)).toString();\n}\n\nexport function formatAmount(raw: string, decimals: number): string {\n const value = BigInt(raw);\n const factor = 10n ** BigInt(decimals);\n const whole = value / factor;\n const remainder = value % factor;\n const fractional = remainder.toString().padStart(decimals, \"0\").replace(/0+$/, \"\");\n return fractional ? `${whole}.${fractional}` : whole.toString();\n}\n\nexport function getTokenByAddress(address: string | null | undefined): SupportedToken | undefined {\n if (typeof address !== \"string\" || address.trim() === \"\") return undefined;\n\n let target: bigint | null = null;\n try {\n target = BigInt(address);\n } catch {\n target = null;\n }\n return SUPPORTED_TOKENS.find((t) => {\n if (target !== null) {\n try {\n return BigInt(t.address) === target;\n } catch {\n\n }\n }\n return t.address.toLowerCase() === address.toLowerCase();\n });\n}\n\nexport function getTokenBySymbol(symbol: string | null | undefined): SupportedToken | undefined {\n if (typeof symbol !== \"string\") return undefined;\n const upper = symbol.toUpperCase();\n return SUPPORTED_TOKENS.find((t) => t.symbol === upper);\n}\n\nexport function getListableTokens(): ReadonlyArray<SupportedToken> {\n return SUPPORTED_TOKENS.filter((t) => t.listable);\n}\n"]}