@scallop-io/sui-scallop-sdk 0.46.36 → 0.46.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/builders/loyaltyProgramBuilder.d.ts +12 -0
- package/dist/builders/referralBuilder.d.ts +1 -1
- package/dist/constants/testAddress.d.ts +2 -0
- package/dist/index.js +567 -71
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +557 -61
- package/dist/index.mjs.map +1 -1
- package/dist/models/scallopQuery.d.ts +10 -3
- package/dist/models/scallopUtils.d.ts +1 -1
- package/dist/queries/index.d.ts +1 -0
- package/dist/queries/loyaltyProgramQuery.d.ts +10 -0
- package/dist/queries/vescaQuery.d.ts +8 -6
- package/dist/types/address.d.ts +6 -0
- package/dist/types/builder/index.d.ts +3 -1
- package/dist/types/builder/loyaltyProgram.d.ts +23 -0
- package/dist/types/builder/vesca.d.ts +16 -0
- package/dist/types/query/index.d.ts +1 -0
- package/dist/types/query/loyaltyProgram.d.ts +5 -0
- package/dist/types/query/vesca.d.ts +18 -0
- package/dist/utils/builder.d.ts +6 -5
- package/package.json +7 -6
- package/src/builders/index.ts +6 -1
- package/src/builders/loyaltyProgramBuilder.ts +115 -0
- package/src/builders/referralBuilder.ts +1 -1
- package/src/builders/vescaBuilder.ts +5 -1
- package/src/constants/testAddress.ts +383 -0
- package/src/models/scallopAddress.ts +12 -2
- package/src/models/scallopCache.ts +0 -1
- package/src/models/scallopQuery.ts +16 -5
- package/src/models/scallopUtils.ts +3 -3
- package/src/queries/index.ts +1 -0
- package/src/queries/loyaltyProgramQuery.ts +77 -0
- package/src/queries/vescaQuery.ts +70 -15
- package/src/types/address.ts +6 -0
- package/src/types/builder/index.ts +3 -0
- package/src/types/builder/loyaltyProgram.ts +35 -0
- package/src/types/builder/vesca.ts +16 -0
- package/src/types/query/index.ts +1 -0
- package/src/types/query/loyaltyProgram.ts +5 -0
- package/src/types/query/vesca.ts +21 -0
- package/src/utils/builder.ts +69 -53
|
@@ -0,0 +1,383 @@
|
|
|
1
|
+
import { AddressesInterface } from 'src/types';
|
|
2
|
+
|
|
3
|
+
export const TEST_ADDRESSES: AddressesInterface = {
|
|
4
|
+
core: {
|
|
5
|
+
version:
|
|
6
|
+
'0x07871c4b3c847a0f674510d4978d5cf6f960452795e8ff6f189fd2088a3f6ac7',
|
|
7
|
+
versionCap:
|
|
8
|
+
'0x590a4011cb649b3878f3ea14b3a78674642a9548d79b7e091ef679574b158a07',
|
|
9
|
+
object:
|
|
10
|
+
'0xefe8b36d5b2e43728cc323298626b83177803521d195cfb11e15b910e892fddf',
|
|
11
|
+
market:
|
|
12
|
+
'0xa757975255146dc9686aa823b7838b507f315d704f428cbadad2f4ea061939d9',
|
|
13
|
+
adminCap:
|
|
14
|
+
'0x09689d018e71c337d9db6d67cbca06b74ed92196103624028ccc3ecea411777c',
|
|
15
|
+
coinDecimalsRegistry:
|
|
16
|
+
'0x200abe9bf19751cc566ae35aa58e2b7e4ff688fc1130f8d8909ea09bc137d668',
|
|
17
|
+
obligationAccessStore:
|
|
18
|
+
'0x733e30b7c94d619d78cb8f5bc4bfbb759ced9a531239028caabb2474e5be59c9',
|
|
19
|
+
coins: {
|
|
20
|
+
cetus: {
|
|
21
|
+
id: '0x06864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b',
|
|
22
|
+
metaData:
|
|
23
|
+
'0x4c0dce55eff2db5419bbd2d239d1aa22b4a400c01bbb648b058a9883989025da',
|
|
24
|
+
treasury: '',
|
|
25
|
+
oracle: {
|
|
26
|
+
supra: '',
|
|
27
|
+
switchboard: '',
|
|
28
|
+
pyth: {
|
|
29
|
+
feed: 'e5b274b2611143df055d6e7cd8d93fe1961716bcd4dca1cad87a83bc1e78c1ef',
|
|
30
|
+
feedObject:
|
|
31
|
+
'0x24c0247fb22457a719efac7f670cdc79be321b521460bd6bd2ccfa9f80713b14',
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
apt: {
|
|
36
|
+
id: '0x3a5143bb1196e3bcdfab6203d1683ae29edd26294fc8bfeafe4aaa9d2704df37',
|
|
37
|
+
metaData:
|
|
38
|
+
'0xc969c5251f372c0f34c32759f1d315cf1ea0ee5e4454b52aea08778eacfdd0a8',
|
|
39
|
+
treasury: '',
|
|
40
|
+
oracle: {
|
|
41
|
+
supra: '',
|
|
42
|
+
switchboard: '',
|
|
43
|
+
pyth: {
|
|
44
|
+
feed: '03ae4db29ed4ae33d323568895aa00337e658e348b37509f5372ae51f0af00d5',
|
|
45
|
+
feedObject:
|
|
46
|
+
'0x7c5b7837c44a69b469325463ac0673ac1aa8435ff44ddb4191c9ae380463647f',
|
|
47
|
+
},
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
sol: {
|
|
51
|
+
id: '0xb7844e289a8410e50fb3ca48d69eb9cf29e27d223ef90353fe1bd8e27ff8f3f8',
|
|
52
|
+
metaData:
|
|
53
|
+
'0x4d2c39082b4477e3e79dc4562d939147ab90c42fc5f3e4acf03b94383cd69b6e',
|
|
54
|
+
treasury: '',
|
|
55
|
+
oracle: {
|
|
56
|
+
supra: '',
|
|
57
|
+
switchboard: '',
|
|
58
|
+
pyth: {
|
|
59
|
+
feed: 'ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d',
|
|
60
|
+
feedObject:
|
|
61
|
+
'0x9d0d275efbd37d8a8855f6f2c761fa5983293dd8ce202ee5196626de8fcd4469',
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
},
|
|
65
|
+
btc: {
|
|
66
|
+
id: '0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881',
|
|
67
|
+
metaData:
|
|
68
|
+
'0x5d3c6e60eeff8a05b693b481539e7847dfe33013e7070cdcb387f5c0cac05dfd',
|
|
69
|
+
treasury: '',
|
|
70
|
+
oracle: {
|
|
71
|
+
supra: '',
|
|
72
|
+
switchboard: '',
|
|
73
|
+
pyth: {
|
|
74
|
+
feed: 'e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43',
|
|
75
|
+
feedObject:
|
|
76
|
+
'0x9a62b4863bdeaabdc9500fce769cf7e72d5585eeb28a6d26e4cafadc13f76ab2',
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
eth: {
|
|
81
|
+
id: '0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5',
|
|
82
|
+
metaData:
|
|
83
|
+
'0x8900e4ceede3363bef086d6b50ca89d816d0e90bf6bc46efefe1f8455e08f50f',
|
|
84
|
+
treasury: '',
|
|
85
|
+
oracle: {
|
|
86
|
+
supra: '',
|
|
87
|
+
switchboard: '',
|
|
88
|
+
pyth: {
|
|
89
|
+
feed: 'ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace',
|
|
90
|
+
feedObject:
|
|
91
|
+
'0x9193fd47f9a0ab99b6e365a464c8a9ae30e6150fc37ed2a89c1586631f6fc4ab',
|
|
92
|
+
},
|
|
93
|
+
},
|
|
94
|
+
},
|
|
95
|
+
usdc: {
|
|
96
|
+
id: '0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf',
|
|
97
|
+
metaData:
|
|
98
|
+
'0x4fbf84f3029bd0c0b77164b587963be957f853eccf834a67bb9ecba6ec80f189',
|
|
99
|
+
treasury: '',
|
|
100
|
+
oracle: {
|
|
101
|
+
supra: '',
|
|
102
|
+
switchboard: '',
|
|
103
|
+
pyth: {
|
|
104
|
+
feed: 'eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a',
|
|
105
|
+
feedObject:
|
|
106
|
+
'0x5dec622733a204ca27f5a90d8c2fad453cc6665186fd5dff13a83d0b6c9027ab',
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
usdt: {
|
|
111
|
+
id: '0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c',
|
|
112
|
+
metaData:
|
|
113
|
+
'0xfb0e3eb97dd158a5ae979dddfa24348063843c5b20eb8381dd5fa7c93699e45c',
|
|
114
|
+
treasury: '',
|
|
115
|
+
oracle: {
|
|
116
|
+
supra: '',
|
|
117
|
+
switchboard: '',
|
|
118
|
+
pyth: {
|
|
119
|
+
feed: '2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b',
|
|
120
|
+
feedObject:
|
|
121
|
+
'0x985e3db9f93f76ee8bace7c3dd5cc676a096accd5d9e09e9ae0fb6e492b14572',
|
|
122
|
+
},
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
sui: {
|
|
126
|
+
id: '0x0000000000000000000000000000000000000000000000000000000000000002',
|
|
127
|
+
metaData:
|
|
128
|
+
'0x9258181f5ceac8dbffb7030890243caed69a9599d2886d957a9cb7656af3bdb3',
|
|
129
|
+
treasury: '',
|
|
130
|
+
oracle: {
|
|
131
|
+
supra: '',
|
|
132
|
+
switchboard:
|
|
133
|
+
'0xbca474133638352ba83ccf7b5c931d50f764b09550e16612c9f70f1e21f3f594',
|
|
134
|
+
pyth: {
|
|
135
|
+
feed: '23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744',
|
|
136
|
+
feedObject:
|
|
137
|
+
'0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37',
|
|
138
|
+
},
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
afsui: {
|
|
142
|
+
id: '0xf325ce1300e8dac124071d3152c5c5ee6174914f8bc2161e88329cf579246efc',
|
|
143
|
+
metaData:
|
|
144
|
+
'0x2f9217f533e51334873a39b8026a4aa6919497b47f49d0986a4f1aec66f8a34d',
|
|
145
|
+
treasury: '',
|
|
146
|
+
oracle: {
|
|
147
|
+
supra: '',
|
|
148
|
+
switchboard: '',
|
|
149
|
+
pyth: {
|
|
150
|
+
feed: '23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744',
|
|
151
|
+
feedObject:
|
|
152
|
+
'0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37',
|
|
153
|
+
},
|
|
154
|
+
},
|
|
155
|
+
},
|
|
156
|
+
hasui: {
|
|
157
|
+
id: '0xbde4ba4c2e274a60ce15c1cfff9e5c42e41654ac8b6d906a57efa4bd3c29f47d',
|
|
158
|
+
metaData:
|
|
159
|
+
'0x2c5f33af93f6511df699aaaa5822d823aac6ed99d4a0de2a4a50b3afa0172e24',
|
|
160
|
+
treasury: '',
|
|
161
|
+
oracle: {
|
|
162
|
+
supra: '',
|
|
163
|
+
switchboard: '',
|
|
164
|
+
pyth: {
|
|
165
|
+
feed: '23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744',
|
|
166
|
+
feedObject:
|
|
167
|
+
'0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37',
|
|
168
|
+
},
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
vsui: {
|
|
172
|
+
id: '0x549e8b69270defbfafd4f94e17ec44cdbdd99820b33bda2278dea3b9a32d3f55',
|
|
173
|
+
metaData:
|
|
174
|
+
'0xabd84a23467b33854ab25cf862006fd97479f8f6f53e50fe732c43a274d939bd',
|
|
175
|
+
treasury: '',
|
|
176
|
+
oracle: {
|
|
177
|
+
supra: '',
|
|
178
|
+
switchboard: '',
|
|
179
|
+
pyth: {
|
|
180
|
+
feed: '23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744',
|
|
181
|
+
feedObject:
|
|
182
|
+
'0x801dbc2f0053d34734814b2d6df491ce7807a725fe9a01ad74a07e9c51396c37',
|
|
183
|
+
},
|
|
184
|
+
},
|
|
185
|
+
},
|
|
186
|
+
sca: {
|
|
187
|
+
id: '0x7016aae72cfc67f2fadf55769c0a7dd54291a583b63051a5ed71081cce836ac6',
|
|
188
|
+
metaData:
|
|
189
|
+
'0x5d26a1e9a55c88147ac870bfa31b729d7f49f8804b8b3adfdf3582d301cca844',
|
|
190
|
+
treasury: '',
|
|
191
|
+
oracle: {
|
|
192
|
+
supra: '',
|
|
193
|
+
switchboard: '',
|
|
194
|
+
pyth: {
|
|
195
|
+
feed: '7e17f0ac105abe9214deb9944c30264f5986bf292869c6bd8e8da3ccd92d79bc',
|
|
196
|
+
feedObject:
|
|
197
|
+
'0xf6de1d3279a269a597d813cbaca59aa906543ab9a8c64e84a4722f1a20863985',
|
|
198
|
+
},
|
|
199
|
+
},
|
|
200
|
+
},
|
|
201
|
+
},
|
|
202
|
+
oracles: {
|
|
203
|
+
xOracle:
|
|
204
|
+
'0x93d5bf0936b71eb27255941e532fac33b5a5c7759e377b4923af0a1359ad494f',
|
|
205
|
+
xOracleCap:
|
|
206
|
+
'0x1edeae568fde99e090dbdec4bcdbd33a15f53a1ce1f87aeef1a560dedf4b4a90',
|
|
207
|
+
supra: { registry: '', registryCap: '', holder: '' },
|
|
208
|
+
switchboard: { registry: '', registryCap: '' },
|
|
209
|
+
pyth: {
|
|
210
|
+
registry:
|
|
211
|
+
'0xedc293f9413a5a7a5d53bdba1fd889d0a4030894469228f0acdae4aa3c55a213',
|
|
212
|
+
registryCap:
|
|
213
|
+
'0xbcb07141eb1f7e01fbda4130ecf5f5adaeabb77f5d9c32158b7532bcd2197acd',
|
|
214
|
+
state:
|
|
215
|
+
'0x1f9310238ee9298fb703c3419030b35b22bb1cc37113e3bb5007c99aec79e5b8',
|
|
216
|
+
wormhole:
|
|
217
|
+
'0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a',
|
|
218
|
+
wormholeState:
|
|
219
|
+
'0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c',
|
|
220
|
+
},
|
|
221
|
+
},
|
|
222
|
+
packages: {
|
|
223
|
+
coinDecimalsRegistry: {
|
|
224
|
+
id: '0xca5a5a62f01c79a104bf4d31669e29daa387f325c241de4edbe30986a9bc8b0d',
|
|
225
|
+
upgradeCap:
|
|
226
|
+
'0x34e76a945d29f195bc53ca704fa70877d1cf3a5d7bbfdda1b13e633fff13c0f6',
|
|
227
|
+
},
|
|
228
|
+
math: {
|
|
229
|
+
id: '0xad013d5fde39e15eabda32b3dbdafd67dac32b798ce63237c27a8f73339b9b6f',
|
|
230
|
+
upgradeCap:
|
|
231
|
+
'0x3a329598231de02e6135c62284b66005b41cad1d9ab7ca2dc79c08293aba2ec6',
|
|
232
|
+
},
|
|
233
|
+
whitelist: {
|
|
234
|
+
id: '0x1318fdc90319ec9c24df1456d960a447521b0a658316155895014a6e39b5482f',
|
|
235
|
+
upgradeCap:
|
|
236
|
+
'0xf5a22aea23db664f7b69855b6a546747f17c1ec4230319cfc17225e462b05761',
|
|
237
|
+
},
|
|
238
|
+
x: {
|
|
239
|
+
id: '0x779b5c547976899f5474f3a5bc0db36ddf4697ad7e5a901db0415c2281d28162',
|
|
240
|
+
upgradeCap:
|
|
241
|
+
'0x3f203f6fff6a69d151e4f1cd931f22b68c489ef2759765662fc7baf673943c9e',
|
|
242
|
+
},
|
|
243
|
+
protocol: {
|
|
244
|
+
id: '0x6e641f0dca8aedab3101d047e96439178f16301bf0b57fe8745086ff1195eb3e',
|
|
245
|
+
upgradeCap:
|
|
246
|
+
'0x38527d154618d1fd5a644b90717fe07cf0e9f26b46b63e9568e611a3f86d5c1a',
|
|
247
|
+
},
|
|
248
|
+
protocolWhitelist: {
|
|
249
|
+
id: '0x4c262d9343dac53ecb28f482a2a3f62c73d0ebac5b5f03d57383d56ff219acdf',
|
|
250
|
+
upgradeCap:
|
|
251
|
+
'0x4a5e88a75039b00988f633f811f58117f31b8627a46bf822aa114d9010049449',
|
|
252
|
+
},
|
|
253
|
+
query: {
|
|
254
|
+
id: '0xb8d603a39114a5efef3dd0bf84df0bed1be1fbd39b78b7dd6e8a61ccc5e6006f',
|
|
255
|
+
upgradeCap:
|
|
256
|
+
'0x0d535c35f608b9b01b7ccce11acf43b1dd80c1b72bf8b541744a6e28e8d2745f',
|
|
257
|
+
},
|
|
258
|
+
supra: { id: '', upgradeCap: '' },
|
|
259
|
+
pyth: {
|
|
260
|
+
id: '0x910f30cbc7f601f75a5141a01265cd47c62d468707c5e1aecb32a18f448cb25a',
|
|
261
|
+
upgradeCap:
|
|
262
|
+
'0xdf0ffbae1ea5bb25fbca5efba433dcf00c7cced65679af2f04728901275c6157',
|
|
263
|
+
},
|
|
264
|
+
switchboard: { id: '', upgradeCap: '' },
|
|
265
|
+
xOracle: {
|
|
266
|
+
id: '0x1478a432123e4b3d61878b629f2c692969fdb375644f1251cd278a4b1e7d7cd6',
|
|
267
|
+
upgradeCap:
|
|
268
|
+
'0x0f928a6b2e26b73330fecaf9b44acfc9800a4a9794d6415c2a3153bc70e3c1f0',
|
|
269
|
+
},
|
|
270
|
+
testCoin: { id: '', upgradeCap: '' },
|
|
271
|
+
},
|
|
272
|
+
},
|
|
273
|
+
spool: {
|
|
274
|
+
id: '0x7c4fdabe81c31b19a45d1e572a52a539997a90903fbb5bfab71480abe0fa62c3',
|
|
275
|
+
adminCap:
|
|
276
|
+
'0xdd8a047cbbf802bfcde5288b8ef1910965d789cc614da11d39af05fca0bd020a',
|
|
277
|
+
object:
|
|
278
|
+
'0xe87f1b2d498106a2c61421cec75b7b5c5e348512b0dc263949a0e7a3c256571a',
|
|
279
|
+
pools: {
|
|
280
|
+
seth: {
|
|
281
|
+
id: '0xeec40beccb07c575bebd842eeaabb835f77cd3dab73add433477e57f583a6787',
|
|
282
|
+
rewardPoolId:
|
|
283
|
+
'0x957de68a18d87817de8309b30c1ec269a4d87ae513abbeed86b5619cb9ce1077',
|
|
284
|
+
},
|
|
285
|
+
ssui: {
|
|
286
|
+
id: '0x4f0ba970d3c11db05c8f40c64a15b6a33322db3702d634ced6536960ab6f3ee4',
|
|
287
|
+
rewardPoolId:
|
|
288
|
+
'0x162250ef72393a4ad3d46294c4e1bdfcb03f04c869d390e7efbfc995353a7ee9',
|
|
289
|
+
},
|
|
290
|
+
susdc: {
|
|
291
|
+
id: '0x4ace6648ddc64e646ba47a957c562c32c9599b3bba8f5ac1aadb2ae23a2f8ca0',
|
|
292
|
+
rewardPoolId:
|
|
293
|
+
'0xf4268cc9b9413b9bfe09e8966b8de650494c9e5784bf0930759cfef4904daff8',
|
|
294
|
+
},
|
|
295
|
+
susdt: {
|
|
296
|
+
id: '0xcb328f7ffa7f9342ed85af3fdb2f22919e1a06dfb2f713c04c73543870d7548f',
|
|
297
|
+
rewardPoolId:
|
|
298
|
+
'0x2c9f934d67a5baa586ceec2cc24163a2f049a6af3d5ba36b84d8ac40f25c4080',
|
|
299
|
+
},
|
|
300
|
+
scetus: {
|
|
301
|
+
id: '0xac1bb13bf4472a637c18c2415fb0e3c1227ea2bcf35242e50563c98215bd298e',
|
|
302
|
+
rewardPoolId:
|
|
303
|
+
'0x6835c1224126a45086fc6406adc249e3f30df18d779ca4f4e570e38716a17f3f',
|
|
304
|
+
},
|
|
305
|
+
safsui: {
|
|
306
|
+
id: '0xeedf438abcaa6ce4d9625ffca110920592d5867e4c5637d84ad9f466c4feb800',
|
|
307
|
+
rewardPoolId:
|
|
308
|
+
'0x89255a2f86ed7fbfef35ab8b7be48cc7667015975be2685dd9a55a9a64baf76e',
|
|
309
|
+
},
|
|
310
|
+
shasui: {
|
|
311
|
+
id: '0xa6148bc1b623e936d39a952ceb5bea79e8b37228a8f595067bf1852efd3c34aa',
|
|
312
|
+
rewardPoolId:
|
|
313
|
+
'0x6f3563644d3e2ef13176dbf9d865bd93479df60ccbe07b7e66db57f6309f5a66',
|
|
314
|
+
},
|
|
315
|
+
svsui: {
|
|
316
|
+
id: '0x69ce8e537e750a95381e6040794afa5ab1758353a1a2e1de7760391b01f91670',
|
|
317
|
+
rewardPoolId:
|
|
318
|
+
'0xbca914adce058ad0902c7f3cfcd698392a475f00dcfdc3f76001d0370b98777a',
|
|
319
|
+
},
|
|
320
|
+
},
|
|
321
|
+
config: '',
|
|
322
|
+
},
|
|
323
|
+
borrowIncentive: {
|
|
324
|
+
id: '0x6152f696fc3a658f33c4b891764731a59153125ffedfa8bff7167c42823f58a9',
|
|
325
|
+
adminCap:
|
|
326
|
+
'0xc486afa253646f4d381e81d7f1df8aa4723b845a6bb356f69bad635ffefffe2c',
|
|
327
|
+
object:
|
|
328
|
+
'0x002875153e09f8145ab63527bc85c00f2bd102e12f9573c47f8cdf1a1cb62934',
|
|
329
|
+
query: '0x529edc54a3dce2207703ceebbccb0ac14133f7825c1f528775ba0d85a4063489',
|
|
330
|
+
incentivePools:
|
|
331
|
+
'0x6547e143d406b5ccd5f46aae482497de279cc1a68c406f701df70a05f9212ab4',
|
|
332
|
+
incentiveAccounts:
|
|
333
|
+
'0xc4701fdbc1c92f9a636d334d66012b3027659e9fb8aff27279a82edfb6b77d02',
|
|
334
|
+
config:
|
|
335
|
+
'0xdf5d04b4691cc67e82fd4db8394d89ff44823a9de29716c924f74bb4f11cc1f7',
|
|
336
|
+
},
|
|
337
|
+
referral: {
|
|
338
|
+
id: '0xa3654ebb63eb06c0f4ff52f8aa6512df9f164f7772bdf15dac3709bd3798dda9',
|
|
339
|
+
object:
|
|
340
|
+
'0x5658d4bf5ddcba27e4337b4262108b3ad1716643cac8c2054ac341538adc72ec',
|
|
341
|
+
adminCap:
|
|
342
|
+
'0xc5dc06b9074291259f2cac460c940012c781c4430e42125c541cc43101c3bcbd',
|
|
343
|
+
referralBindings:
|
|
344
|
+
'0xf63299d58789d99de94092b9011323466e55ca0c1ea1a7a3786a589af46e1c09',
|
|
345
|
+
bindingTableId:
|
|
346
|
+
'0x1c8202b17267ec8d6cf97ca013615354181a04f179570e42601ff2dae19294b1',
|
|
347
|
+
referralRevenuePool:
|
|
348
|
+
'0x6abd852caf90769c1b185cdf636d841673fa95528f0550f018b8a138bd283c07',
|
|
349
|
+
revenueTableId:
|
|
350
|
+
'0x595baa3654c297bff84ab7786a2d250f019cefc66e8df8e89fd9d41e02bd30dd',
|
|
351
|
+
referralTiers:
|
|
352
|
+
'0x962cb903d8d7346190c5204785ccbb91b61086aa764f674c8145df82335cf83e',
|
|
353
|
+
tiersTableId:
|
|
354
|
+
'0xeac755a7a8b7798530905ac79e8c114f19d0f130f6eab012954f08faac29c75d',
|
|
355
|
+
authorizedWitnessList:
|
|
356
|
+
'0xf21b0ed043c9bb70842c0129159f4943dbcc3c9ef2f2f808af65f8be25cfd20e',
|
|
357
|
+
version:
|
|
358
|
+
'0x1bd4b7285f72e11c316b828c7c47b3f4da18dcec9f9b3dba6d8629cbb6f93e5e',
|
|
359
|
+
},
|
|
360
|
+
vesca: {
|
|
361
|
+
id: '0xb15b6e0cdd85afb5028bea851dd249405e734d800a259147bbc24980629723a4',
|
|
362
|
+
object:
|
|
363
|
+
'0xb15b6e0cdd85afb5028bea851dd249405e734d800a259147bbc24980629723a4',
|
|
364
|
+
adminCap:
|
|
365
|
+
'0x8ffa76135c5b85c5fbd73a6448a4a733d826cb63a267ab817656acb77c72d4a5',
|
|
366
|
+
tableId:
|
|
367
|
+
'0xe3153b2bf124be0b86cb8bd468346a861efd0da52fc42197b54d2f616488a311',
|
|
368
|
+
table: '0x611cb8d9d4d90867467b5ebdf4cc447a0047ed5b01334a28a29fcfe733e3d609',
|
|
369
|
+
treasury:
|
|
370
|
+
'0xe8c112c09b88158dc6c8e23d1fbae5b3c7136cdee54b7dafc08e65db28c4a5bc',
|
|
371
|
+
config:
|
|
372
|
+
'0xe0a2ff281e73c1d53cfa85807080f87e833e4f1a7f93dcf8800b3865269a76b9',
|
|
373
|
+
},
|
|
374
|
+
loyaltyProgram: {
|
|
375
|
+
id: '0xd17bcf8b5a59652c36225d478564a8593ae0ed7d650bcacdda1d6fe179127907',
|
|
376
|
+
object:
|
|
377
|
+
'0xd17bcf8b5a59652c36225d478564a8593ae0ed7d650bcacdda1d6fe179127907',
|
|
378
|
+
rewardPool:
|
|
379
|
+
'0xf9c090492ef476bd542109d0913ffe871cbfa28578b7114eca2a8c0e5671786f',
|
|
380
|
+
userRewardTableId:
|
|
381
|
+
'0x748a80395849ed37db1b0e14f2ab5d1d96458d2359ab3a84eb079d0f4ac7cf2e',
|
|
382
|
+
},
|
|
383
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { API_BASE_URL } from '../constants';
|
|
1
|
+
import { API_BASE_URL, IS_VE_SCA_TEST } from '../constants';
|
|
2
2
|
import type { NetworkType } from '@scallop-io/sui-kit';
|
|
3
3
|
import type {
|
|
4
4
|
ScallopAddressParams,
|
|
@@ -8,6 +8,7 @@ import type {
|
|
|
8
8
|
import { ScallopCache } from './scallopCache';
|
|
9
9
|
import { DEFAULT_CACHE_OPTIONS } from 'src/constants/cache';
|
|
10
10
|
import axios, { AxiosInstance } from 'axios';
|
|
11
|
+
import { TEST_ADDRESSES } from 'src/constants/testAddress';
|
|
11
12
|
|
|
12
13
|
const EMPTY_ADDRESSES: AddressesInterface = {
|
|
13
14
|
core: {
|
|
@@ -302,6 +303,12 @@ const EMPTY_ADDRESSES: AddressesInterface = {
|
|
|
302
303
|
tiersTableId: '',
|
|
303
304
|
authorizedWitnessList: '',
|
|
304
305
|
},
|
|
306
|
+
loyaltyProgram: {
|
|
307
|
+
id: '',
|
|
308
|
+
object: '',
|
|
309
|
+
rewardPool: '',
|
|
310
|
+
userRewardTableId: '',
|
|
311
|
+
},
|
|
305
312
|
};
|
|
306
313
|
/**
|
|
307
314
|
* @description
|
|
@@ -338,7 +345,10 @@ export class ScallopAddress {
|
|
|
338
345
|
if (auth) this._auth = auth;
|
|
339
346
|
this._id = id;
|
|
340
347
|
this._network = network || 'mainnet';
|
|
341
|
-
this._addressesMap =
|
|
348
|
+
this._addressesMap = IS_VE_SCA_TEST
|
|
349
|
+
? new Map([['mainnet', TEST_ADDRESSES]])
|
|
350
|
+
: new Map();
|
|
351
|
+
if (IS_VE_SCA_TEST) this._currentAddresses = TEST_ADDRESSES;
|
|
342
352
|
}
|
|
343
353
|
|
|
344
354
|
/**
|
|
@@ -30,7 +30,8 @@ import {
|
|
|
30
30
|
getBindedVeScaKey,
|
|
31
31
|
getVeScas,
|
|
32
32
|
getPythPrices,
|
|
33
|
-
|
|
33
|
+
getVeScaTreasuryInfo,
|
|
34
|
+
getLoyaltyProgramInformations,
|
|
34
35
|
} from '../queries';
|
|
35
36
|
import {
|
|
36
37
|
ScallopQueryParams,
|
|
@@ -49,6 +50,7 @@ import { ScallopUtils } from './scallopUtils';
|
|
|
49
50
|
import { ScallopIndexer } from './scallopIndexer';
|
|
50
51
|
import { ScallopCache } from './scallopCache';
|
|
51
52
|
import { DEFAULT_CACHE_OPTIONS } from 'src/constants/cache';
|
|
53
|
+
import { SuiObjectData } from '@mysten/sui.js/src/client';
|
|
52
54
|
|
|
53
55
|
/**
|
|
54
56
|
* @description
|
|
@@ -543,7 +545,7 @@ export class ScallopQuery {
|
|
|
543
545
|
* @param walletAddress
|
|
544
546
|
* @returns array of veSca
|
|
545
547
|
*/
|
|
546
|
-
public async getVeScas(walletAddress
|
|
548
|
+
public async getVeScas(walletAddress?: string) {
|
|
547
549
|
return await getVeScas(this, walletAddress);
|
|
548
550
|
}
|
|
549
551
|
|
|
@@ -551,12 +553,12 @@ export class ScallopQuery {
|
|
|
551
553
|
* Get total vesca treasury with movecall
|
|
552
554
|
* @returns Promise<string | undefined>
|
|
553
555
|
*/
|
|
554
|
-
public async
|
|
555
|
-
return await
|
|
556
|
+
public async getVeScaTreasuryInfo() {
|
|
557
|
+
return await getVeScaTreasuryInfo(this);
|
|
556
558
|
}
|
|
557
559
|
|
|
558
560
|
/**
|
|
559
|
-
* Return binded veScaKeyId of walletAddress if exist
|
|
561
|
+
* Return binded referrer veScaKeyId of referee walletAddress if exist
|
|
560
562
|
* @param walletAddress
|
|
561
563
|
* @returns veScaKeyId
|
|
562
564
|
*/
|
|
@@ -581,4 +583,13 @@ export class ScallopQuery {
|
|
|
581
583
|
public async getBindedVeScaKey(obligationId: string) {
|
|
582
584
|
return await getBindedVeScaKey(this, obligationId);
|
|
583
585
|
}
|
|
586
|
+
|
|
587
|
+
/**
|
|
588
|
+
* Get user's veSCA loyalty program informations
|
|
589
|
+
* @param walletAddress
|
|
590
|
+
* @returns Loyalty program information
|
|
591
|
+
*/
|
|
592
|
+
public async getLoyaltyProgramInfos(veScaKey?: string | SuiObjectData) {
|
|
593
|
+
return await getLoyaltyProgramInformations(this, veScaKey);
|
|
594
|
+
}
|
|
584
595
|
}
|
|
@@ -513,11 +513,11 @@ export class ScallopUtils {
|
|
|
513
513
|
*/
|
|
514
514
|
public getUnlockAt(
|
|
515
515
|
extendLockPeriodInDay?: number,
|
|
516
|
-
|
|
516
|
+
unlockAtInMillisTimestamp?: number
|
|
517
517
|
) {
|
|
518
518
|
const now = Math.floor(new Date().getTime() / 1000);
|
|
519
|
-
const remainingLockPeriod =
|
|
520
|
-
? Math.max(
|
|
519
|
+
const remainingLockPeriod = unlockAtInMillisTimestamp
|
|
520
|
+
? Math.max(Math.floor(unlockAtInMillisTimestamp / 1000) - now, 0)
|
|
521
521
|
: 0;
|
|
522
522
|
|
|
523
523
|
let newUnlockAtInSecondTimestamp = 0;
|
package/src/queries/index.ts
CHANGED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { SuiObjectData } from '@mysten/sui.js/src/client';
|
|
2
|
+
import BigNumber from 'bignumber.js';
|
|
3
|
+
import { ScallopQuery } from 'src/models';
|
|
4
|
+
import { LoyaltyProgramInfo } from 'src/types';
|
|
5
|
+
import { z as zod } from 'zod';
|
|
6
|
+
|
|
7
|
+
const rewardPoolFieldsZod = zod
|
|
8
|
+
.object({
|
|
9
|
+
balance: zod.string(),
|
|
10
|
+
enable_claim: zod.boolean(),
|
|
11
|
+
})
|
|
12
|
+
.transform((value) => ({
|
|
13
|
+
totalPoolReward: BigNumber(value.balance).shiftedBy(-9).toNumber(),
|
|
14
|
+
isClaimEnabled: value.enable_claim,
|
|
15
|
+
}));
|
|
16
|
+
|
|
17
|
+
const userRewardFieldsZod = zod
|
|
18
|
+
.object({
|
|
19
|
+
value: zod.string(),
|
|
20
|
+
})
|
|
21
|
+
.transform((value) => BigNumber(value.value).shiftedBy(-9).toNumber());
|
|
22
|
+
|
|
23
|
+
type RewardPoolFields = zod.infer<typeof rewardPoolFieldsZod>;
|
|
24
|
+
type UserRewardFields = zod.infer<typeof userRewardFieldsZod>;
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Get user's loyalty program information and pending rewards if exists
|
|
28
|
+
* @param query
|
|
29
|
+
* @param veScaKey
|
|
30
|
+
* @returns
|
|
31
|
+
*/
|
|
32
|
+
export const getLoyaltyProgramInformations = async (
|
|
33
|
+
query: ScallopQuery,
|
|
34
|
+
veScaKey?: string | SuiObjectData
|
|
35
|
+
): Promise<LoyaltyProgramInfo | null> => {
|
|
36
|
+
const rewardPool = query.address.get('loyaltyProgram.rewardPool');
|
|
37
|
+
|
|
38
|
+
// get fields from rewardPool object
|
|
39
|
+
const rewardPoolObject = await query.cache.queryGetObject(rewardPool, {
|
|
40
|
+
showContent: true,
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
if (rewardPoolObject.data?.content?.dataType !== 'moveObject') return null;
|
|
44
|
+
const rewardPoolFields = rewardPoolObject.data.content.fields;
|
|
45
|
+
const { isClaimEnabled, totalPoolReward } = rewardPoolFieldsZod.parse(
|
|
46
|
+
rewardPoolFields
|
|
47
|
+
) as RewardPoolFields;
|
|
48
|
+
|
|
49
|
+
const result: LoyaltyProgramInfo = {
|
|
50
|
+
pendingReward: 0,
|
|
51
|
+
totalPoolReward,
|
|
52
|
+
isClaimEnabled,
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
// query the user pending reward if exist
|
|
56
|
+
veScaKey = veScaKey || (await query.getVeScas())[0]?.keyObject;
|
|
57
|
+
if (!veScaKey) return result;
|
|
58
|
+
|
|
59
|
+
const userRewardTableId = query.address.get(
|
|
60
|
+
'loyaltyProgram.userRewardTableId'
|
|
61
|
+
);
|
|
62
|
+
|
|
63
|
+
const userRewardObject = await query.cache.queryGetDynamicFieldObject({
|
|
64
|
+
parentId: userRewardTableId,
|
|
65
|
+
name: {
|
|
66
|
+
type: '0x2::object::ID',
|
|
67
|
+
value: typeof veScaKey === 'string' ? veScaKey : veScaKey.objectId,
|
|
68
|
+
},
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
if (userRewardObject.data?.content?.dataType !== 'moveObject') return result;
|
|
72
|
+
const userRewardFields = userRewardObject.data.content.fields;
|
|
73
|
+
result.pendingReward = userRewardFieldsZod.parse(
|
|
74
|
+
userRewardFields
|
|
75
|
+
) as UserRewardFields;
|
|
76
|
+
return result;
|
|
77
|
+
};
|