@scallop-io/sui-scallop-sdk 1.3.0-alpha.1 → 1.3.0-alpha.2
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/constants/common.d.ts +6 -4
- package/dist/constants/enum.d.ts +1 -0
- package/dist/index.js +211 -137
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +208 -137
- package/dist/index.mjs.map +1 -1
- package/dist/models/scallopBuilder.d.ts +4 -4
- package/dist/models/scallopQuery.d.ts +11 -3
- package/dist/models/scallopUtils.d.ts +4 -2
- package/dist/queries/borrowIncentiveQuery.d.ts +2 -0
- package/dist/queries/coreQuery.d.ts +2 -0
- package/dist/queries/portfolioQuery.d.ts +1 -0
- package/dist/queries/sCoinQuery.d.ts +1 -1
- package/dist/queries/vescaQuery.d.ts +1 -1
- package/dist/types/constant/common.d.ts +3 -1
- package/dist/types/constant/enum.d.ts +7 -1
- package/dist/types/model.d.ts +3 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/indexer.d.ts +17 -0
- package/dist/utils/util.d.ts +4 -2
- package/package.json +6 -6
- package/src/builders/coreBuilder.ts +2 -2
- package/src/builders/referralBuilder.ts +1 -1
- package/src/builders/spoolBuilder.ts +1 -1
- package/src/constants/common.ts +15 -1
- package/src/constants/enum.ts +13 -0
- package/src/models/scallop.ts +1 -0
- package/src/models/scallopAddress.ts +13 -1
- package/src/models/scallopBuilder.ts +1 -0
- package/src/models/scallopClient.ts +6 -4
- package/src/models/scallopQuery.ts +42 -2
- package/src/models/scallopUtils.ts +54 -23
- package/src/queries/coreQuery.ts +0 -1
- package/src/queries/spoolQuery.ts +40 -103
- package/src/queries/vescaQuery.ts +8 -2
- package/src/types/constant/common.ts +4 -0
- package/src/types/constant/enum.ts +9 -0
- package/src/types/model.ts +3 -0
- package/src/utils/index.ts +1 -0
- package/src/utils/indexer.ts +39 -0
- package/src/utils/util.ts +25 -3
package/dist/index.js
CHANGED
|
@@ -52,6 +52,8 @@ __export(src_exports, {
|
|
|
52
52
|
SUPPORT_SCOIN: () => SUPPORT_SCOIN,
|
|
53
53
|
SUPPORT_SPOOLS: () => SUPPORT_SPOOLS,
|
|
54
54
|
SUPPORT_SPOOLS_REWARDS: () => SUPPORT_SPOOLS_REWARDS,
|
|
55
|
+
SUPPORT_SUI_BRIDGE: () => SUPPORT_SUI_BRIDGE,
|
|
56
|
+
SUPPORT_WORMHOLE: () => SUPPORT_WORMHOLE,
|
|
55
57
|
Scallop: () => Scallop,
|
|
56
58
|
ScallopAddress: () => ScallopAddress,
|
|
57
59
|
ScallopBuilder: () => ScallopBuilder,
|
|
@@ -71,6 +73,7 @@ __export(src_exports, {
|
|
|
71
73
|
sCoins: () => sCoins,
|
|
72
74
|
spoolRewardCoins: () => spoolRewardCoins,
|
|
73
75
|
stakeMarketCoins: () => stakeMarketCoins,
|
|
76
|
+
suiBridgeCoins: () => suiBridgeCoins,
|
|
74
77
|
voloCoinIds: () => voloCoinIds,
|
|
75
78
|
wormholeCoinIds: () => wormholeCoinIds
|
|
76
79
|
});
|
|
@@ -89,6 +92,8 @@ var OLD_BORROW_INCENTIVE_PROTOCOL_ID = "0xc63072e7f5f4983a2efaf5bdba1480d5e7d74d
|
|
|
89
92
|
var SUPPORT_POOLS = [
|
|
90
93
|
"usdc",
|
|
91
94
|
// native USDC
|
|
95
|
+
"sbeth",
|
|
96
|
+
// native ETH
|
|
92
97
|
"weth",
|
|
93
98
|
"wbtc",
|
|
94
99
|
"wusdc",
|
|
@@ -104,6 +109,9 @@ var SUPPORT_POOLS = [
|
|
|
104
109
|
];
|
|
105
110
|
var SUPPORT_COLLATERALS = [
|
|
106
111
|
"usdc",
|
|
112
|
+
// native USDC
|
|
113
|
+
"sbeth",
|
|
114
|
+
// native ETH
|
|
107
115
|
"weth",
|
|
108
116
|
"wbtc",
|
|
109
117
|
"wusdc",
|
|
@@ -130,6 +138,7 @@ var SUPPORT_SPOOLS = [
|
|
|
130
138
|
];
|
|
131
139
|
var SUPPORT_SCOIN = [
|
|
132
140
|
"susdc",
|
|
141
|
+
"ssbeth",
|
|
133
142
|
"ssui",
|
|
134
143
|
"swusdc",
|
|
135
144
|
"swusdt",
|
|
@@ -142,6 +151,15 @@ var SUPPORT_SCOIN = [
|
|
|
142
151
|
"swsol",
|
|
143
152
|
"swbtc"
|
|
144
153
|
];
|
|
154
|
+
var SUPPORT_SUI_BRIDGE = ["sbeth"];
|
|
155
|
+
var SUPPORT_WORMHOLE = [
|
|
156
|
+
"wusdc",
|
|
157
|
+
"wusdt",
|
|
158
|
+
"weth",
|
|
159
|
+
"wbtc",
|
|
160
|
+
"wapt",
|
|
161
|
+
"wsol"
|
|
162
|
+
];
|
|
145
163
|
var SUPPORT_SPOOLS_REWARDS = ["sui"];
|
|
146
164
|
var SUPPORT_BORROW_INCENTIVE_POOLS = [
|
|
147
165
|
"sui",
|
|
@@ -151,6 +169,7 @@ var SUPPORT_BORROW_INCENTIVE_POOLS = [
|
|
|
151
169
|
"hasui",
|
|
152
170
|
"vsui",
|
|
153
171
|
"weth",
|
|
172
|
+
"sbeth",
|
|
154
173
|
"sca",
|
|
155
174
|
"usdc"
|
|
156
175
|
];
|
|
@@ -174,6 +193,7 @@ var SUPPORT_PACKAGES = [
|
|
|
174
193
|
// src/constants/enum.ts
|
|
175
194
|
var coinDecimals = {
|
|
176
195
|
usdc: 6,
|
|
196
|
+
sbeth: 8,
|
|
177
197
|
weth: 8,
|
|
178
198
|
wbtc: 8,
|
|
179
199
|
wusdc: 6,
|
|
@@ -188,6 +208,7 @@ var coinDecimals = {
|
|
|
188
208
|
sca: 9,
|
|
189
209
|
susdc: 6,
|
|
190
210
|
sweth: 8,
|
|
211
|
+
ssbeth: 8,
|
|
191
212
|
swbtc: 8,
|
|
192
213
|
swusdc: 6,
|
|
193
214
|
swusdt: 6,
|
|
@@ -202,6 +223,7 @@ var coinDecimals = {
|
|
|
202
223
|
};
|
|
203
224
|
var assetCoins = {
|
|
204
225
|
usdc: "usdc",
|
|
226
|
+
sbeth: "sbeth",
|
|
205
227
|
weth: "weth",
|
|
206
228
|
wbtc: "wbtc",
|
|
207
229
|
wusdc: "wusdc",
|
|
@@ -217,6 +239,7 @@ var assetCoins = {
|
|
|
217
239
|
};
|
|
218
240
|
var marketCoins = {
|
|
219
241
|
susdc: "susdc",
|
|
242
|
+
ssbeth: "ssbeth",
|
|
220
243
|
sweth: "sweth",
|
|
221
244
|
swbtc: "swbtc",
|
|
222
245
|
swusdc: "swusdc",
|
|
@@ -232,6 +255,7 @@ var marketCoins = {
|
|
|
232
255
|
};
|
|
233
256
|
var sCoins = {
|
|
234
257
|
susdc: "susdc",
|
|
258
|
+
ssbeth: "ssbeth",
|
|
235
259
|
sweth: "sweth",
|
|
236
260
|
swusdc: "swusdc",
|
|
237
261
|
swusdt: "swusdt",
|
|
@@ -266,6 +290,9 @@ var spoolRewardCoins = {
|
|
|
266
290
|
svsui: "sui",
|
|
267
291
|
susdc: "sui"
|
|
268
292
|
};
|
|
293
|
+
var suiBridgeCoins = {
|
|
294
|
+
sbeth: "sbeth"
|
|
295
|
+
};
|
|
269
296
|
var borrowIncentiveRewardCoins = {
|
|
270
297
|
usdc: ["sui", "sca"],
|
|
271
298
|
sui: ["sui", "sca"],
|
|
@@ -275,11 +302,13 @@ var borrowIncentiveRewardCoins = {
|
|
|
275
302
|
afsui: ["sui"],
|
|
276
303
|
hasui: ["sui"],
|
|
277
304
|
vsui: ["sui"],
|
|
278
|
-
weth: ["sui"]
|
|
305
|
+
weth: ["sui"],
|
|
306
|
+
sbeth: ["sui"]
|
|
279
307
|
};
|
|
280
308
|
var coinIds = {
|
|
281
309
|
usdc: "0xdba34672e30cb065b1f93e3ab55318768fd6fef66c15942c9f7cb846e2f900e7",
|
|
282
310
|
sui: "0x0000000000000000000000000000000000000000000000000000000000000002",
|
|
311
|
+
sbeth: "0xd0e89b2af5e4910726fbcd8b8dd37bb79b29e5f83f7491bca830e94f7f226d29",
|
|
283
312
|
weth: "0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5",
|
|
284
313
|
wbtc: "0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881",
|
|
285
314
|
wusdc: "0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf",
|
|
@@ -305,6 +334,7 @@ var voloCoinIds = {
|
|
|
305
334
|
};
|
|
306
335
|
var sCoinIds = {
|
|
307
336
|
susdc: "0x854950aa624b1df59fe64e630b2ba7c550642e9342267a33061d59fb31582da5::scallop_usdc::SCALLOP_USDC",
|
|
337
|
+
ssbeth: "0xb14f82d8506d139eacef109688d1b71e7236bcce9b2c0ad526abcd6aa5be7de0::scallop_sb_eth::SCALLOP_SB_ETH",
|
|
308
338
|
ssui: "0xaafc4f740de0dd0dde642a31148fb94517087052f19afb0f7bed1dc41a50c77b::scallop_sui::SCALLOP_SUI",
|
|
309
339
|
scetus: "0xea346ce428f91ab007210443efcea5f5cdbbb3aae7e9affc0ca93f9203c31f0c::scallop_cetus::SCALLOP_CETUS",
|
|
310
340
|
ssca: "0x5ca17430c1d046fae9edeaa8fd76c7b4193a00d764a0ecfa9418d733ad27bc1e::scallop_sca::SCALLOP_SCA",
|
|
@@ -861,11 +891,23 @@ var isMarketCoin = (coinName) => {
|
|
|
861
891
|
const assetCoinName = coinName.slice(1).toLowerCase();
|
|
862
892
|
return coinName.charAt(0).toLowerCase() === "s" && COIN_SET.includes(assetCoinName);
|
|
863
893
|
};
|
|
894
|
+
var isSuiBridgeAsset = (coinName) => {
|
|
895
|
+
return SUPPORT_SUI_BRIDGE.includes(coinName);
|
|
896
|
+
};
|
|
897
|
+
var isWormholeAsset = (coinName) => {
|
|
898
|
+
return SUPPORT_WORMHOLE.includes(coinName);
|
|
899
|
+
};
|
|
864
900
|
var parseAssetSymbol = (coinName) => {
|
|
865
|
-
|
|
866
|
-
if (isWormhole) {
|
|
901
|
+
if (isWormholeAsset(coinName)) {
|
|
867
902
|
return `w${coinName.slice(1).toUpperCase()}`;
|
|
868
903
|
}
|
|
904
|
+
if (isSuiBridgeAsset(coinName)) {
|
|
905
|
+
return `sb${coinName.slice(2).toUpperCase()}`;
|
|
906
|
+
}
|
|
907
|
+
if (isMarketCoin(coinName)) {
|
|
908
|
+
const assetCoinName = coinName.slice(1).toLowerCase();
|
|
909
|
+
return coinName.slice(0, 1).toLowerCase() + parseAssetSymbol(assetCoinName);
|
|
910
|
+
}
|
|
869
911
|
switch (coinName) {
|
|
870
912
|
case "afsui":
|
|
871
913
|
return "afSUI";
|
|
@@ -971,6 +1013,25 @@ var callWithRateLimit = async (tokenBucket, fn, retryDelayInMs = DEFAULT_INTERVA
|
|
|
971
1013
|
return tryRequest();
|
|
972
1014
|
};
|
|
973
1015
|
|
|
1016
|
+
// src/utils/indexer.ts
|
|
1017
|
+
async function callMethodWithIndexerFallback(method, context, ...args) {
|
|
1018
|
+
const indexer = args[args.length - 1];
|
|
1019
|
+
if (indexer) {
|
|
1020
|
+
try {
|
|
1021
|
+
return await method.apply(context, args);
|
|
1022
|
+
} catch (_e) {
|
|
1023
|
+
console.warn("Indexer requests failed. Retrying without indexer..");
|
|
1024
|
+
return await method.apply(context, [...args.slice(0, -1), false]);
|
|
1025
|
+
}
|
|
1026
|
+
}
|
|
1027
|
+
return await method.apply(context, args);
|
|
1028
|
+
}
|
|
1029
|
+
function withIndexerFallback(method) {
|
|
1030
|
+
return (...args) => {
|
|
1031
|
+
return callMethodWithIndexerFallback(method, this, ...args);
|
|
1032
|
+
};
|
|
1033
|
+
}
|
|
1034
|
+
|
|
974
1035
|
// src/models/scallopCache.ts
|
|
975
1036
|
var ScallopCache = class {
|
|
976
1037
|
constructor(suiKit, walletAddress, cacheOptions, tokenBucket) {
|
|
@@ -1974,7 +2035,7 @@ var EMPTY_ADDRESSES = {
|
|
|
1974
2035
|
};
|
|
1975
2036
|
var ScallopAddress = class {
|
|
1976
2037
|
constructor(params, instance) {
|
|
1977
|
-
const { id, auth, network } = params;
|
|
2038
|
+
const { id, auth, network, forceInterface } = params;
|
|
1978
2039
|
this.cache = instance?.cache ?? new ScallopCache(
|
|
1979
2040
|
instance?.suiKit ?? new import_sui_kit2.SuiKit({}),
|
|
1980
2041
|
void 0,
|
|
@@ -1995,6 +2056,17 @@ var ScallopAddress = class {
|
|
|
1995
2056
|
this._addressesMap = USE_TEST_ADDRESS ? /* @__PURE__ */ new Map([["mainnet", TEST_ADDRESSES]]) : /* @__PURE__ */ new Map();
|
|
1996
2057
|
if (USE_TEST_ADDRESS)
|
|
1997
2058
|
this._currentAddresses = TEST_ADDRESSES;
|
|
2059
|
+
if (forceInterface) {
|
|
2060
|
+
for (const [network2, addresses] of Object.entries(
|
|
2061
|
+
forceInterface
|
|
2062
|
+
)) {
|
|
2063
|
+
if (["localnet", "devnet", "testnet", "mainnet"].includes(network2)) {
|
|
2064
|
+
if (network2 === this._network)
|
|
2065
|
+
this._currentAddresses = addresses;
|
|
2066
|
+
this._addressesMap.set(network2, addresses);
|
|
2067
|
+
}
|
|
2068
|
+
}
|
|
2069
|
+
}
|
|
1998
2070
|
}
|
|
1999
2071
|
/**
|
|
2000
2072
|
* Get addresses API id.
|
|
@@ -3116,18 +3188,13 @@ var getStakeAccounts = async ({
|
|
|
3116
3188
|
hasNextPage = false;
|
|
3117
3189
|
}
|
|
3118
3190
|
} while (hasNextPage);
|
|
3119
|
-
const stakeAccounts =
|
|
3120
|
-
|
|
3121
|
-
|
|
3122
|
-
|
|
3123
|
-
|
|
3124
|
-
|
|
3125
|
-
|
|
3126
|
-
safsui: [],
|
|
3127
|
-
shasui: [],
|
|
3128
|
-
svsui: []
|
|
3129
|
-
// ssca: [],
|
|
3130
|
-
};
|
|
3191
|
+
const stakeAccounts = SUPPORT_SPOOLS.reduce(
|
|
3192
|
+
(acc, stakeName) => {
|
|
3193
|
+
acc[stakeName] = [];
|
|
3194
|
+
return acc;
|
|
3195
|
+
},
|
|
3196
|
+
{}
|
|
3197
|
+
);
|
|
3131
3198
|
const stakeMarketCoinTypes = Object.keys(stakeAccounts).reduce(
|
|
3132
3199
|
(types, stakeMarketCoinName) => {
|
|
3133
3200
|
const stakeCoinName = utils.parseCoinName(stakeMarketCoinName);
|
|
@@ -3137,6 +3204,13 @@ var getStakeAccounts = async ({
|
|
|
3137
3204
|
},
|
|
3138
3205
|
{}
|
|
3139
3206
|
);
|
|
3207
|
+
const reversedStakeMarketCoinTypes = Object.entries(stakeMarketCoinTypes).reduce(
|
|
3208
|
+
(reversedTypes, [key, value]) => {
|
|
3209
|
+
reversedTypes[value] = key;
|
|
3210
|
+
return reversedTypes;
|
|
3211
|
+
},
|
|
3212
|
+
{}
|
|
3213
|
+
);
|
|
3140
3214
|
const stakeObjectIds = stakeObjectsResponse.map((ref) => ref?.data?.objectId).filter((id) => id !== void 0);
|
|
3141
3215
|
const stakeObjects = await utils.cache.queryGetObjects(stakeObjectIds, {
|
|
3142
3216
|
showContent: true,
|
|
@@ -3153,98 +3227,23 @@ var getStakeAccounts = async ({
|
|
|
3153
3227
|
const index = Number(fields.index);
|
|
3154
3228
|
const points = Number(fields.points);
|
|
3155
3229
|
const totalPoints = Number(fields.total_points);
|
|
3156
|
-
|
|
3157
|
-
stakeAccounts.sweth
|
|
3158
|
-
|
|
3159
|
-
|
|
3160
|
-
|
|
3161
|
-
|
|
3162
|
-
|
|
3163
|
-
|
|
3164
|
-
|
|
3165
|
-
|
|
3166
|
-
|
|
3167
|
-
|
|
3168
|
-
|
|
3169
|
-
|
|
3170
|
-
|
|
3171
|
-
stakePoolId,
|
|
3172
|
-
stakeType: (0, import_utils5.normalizeStructTag)(stakeType),
|
|
3173
|
-
staked,
|
|
3174
|
-
index,
|
|
3175
|
-
points,
|
|
3176
|
-
totalPoints
|
|
3177
|
-
});
|
|
3178
|
-
} else if ((0, import_utils5.normalizeStructTag)(type) === stakeMarketCoinTypes.swusdc) {
|
|
3179
|
-
stakeAccounts.swusdc.push({
|
|
3180
|
-
id,
|
|
3181
|
-
type: (0, import_utils5.normalizeStructTag)(type),
|
|
3182
|
-
stakePoolId,
|
|
3183
|
-
stakeType: (0, import_utils5.normalizeStructTag)(stakeType),
|
|
3184
|
-
staked,
|
|
3185
|
-
index,
|
|
3186
|
-
points,
|
|
3187
|
-
totalPoints
|
|
3188
|
-
});
|
|
3189
|
-
} else if ((0, import_utils5.normalizeStructTag)(type) === stakeMarketCoinTypes.swusdt) {
|
|
3190
|
-
stakeAccounts.swusdt.push({
|
|
3191
|
-
id,
|
|
3192
|
-
type: (0, import_utils5.normalizeStructTag)(type),
|
|
3193
|
-
stakePoolId,
|
|
3194
|
-
stakeType: (0, import_utils5.normalizeStructTag)(stakeType),
|
|
3195
|
-
staked,
|
|
3196
|
-
index,
|
|
3197
|
-
points,
|
|
3198
|
-
totalPoints
|
|
3199
|
-
});
|
|
3200
|
-
} else if ((0, import_utils5.normalizeStructTag)(type) === stakeMarketCoinTypes.scetus) {
|
|
3201
|
-
stakeAccounts.scetus.push({
|
|
3202
|
-
id,
|
|
3203
|
-
type: (0, import_utils5.normalizeStructTag)(type),
|
|
3204
|
-
stakePoolId,
|
|
3205
|
-
stakeType: (0, import_utils5.normalizeStructTag)(stakeType),
|
|
3206
|
-
staked,
|
|
3207
|
-
index,
|
|
3208
|
-
points,
|
|
3209
|
-
totalPoints
|
|
3210
|
-
});
|
|
3211
|
-
} else if ((0, import_utils5.normalizeStructTag)(type) === stakeMarketCoinTypes.safsui) {
|
|
3212
|
-
stakeAccounts.safsui.push({
|
|
3213
|
-
id,
|
|
3214
|
-
type: (0, import_utils5.normalizeStructTag)(type),
|
|
3215
|
-
stakePoolId,
|
|
3216
|
-
stakeType: (0, import_utils5.normalizeStructTag)(stakeType),
|
|
3217
|
-
staked,
|
|
3218
|
-
index,
|
|
3219
|
-
points,
|
|
3220
|
-
totalPoints
|
|
3221
|
-
});
|
|
3222
|
-
} else if ((0, import_utils5.normalizeStructTag)(type) === stakeMarketCoinTypes.shasui) {
|
|
3223
|
-
stakeAccounts.shasui.push({
|
|
3224
|
-
id,
|
|
3225
|
-
type: (0, import_utils5.normalizeStructTag)(type),
|
|
3226
|
-
stakePoolId,
|
|
3227
|
-
stakeType: (0, import_utils5.normalizeStructTag)(stakeType),
|
|
3228
|
-
staked,
|
|
3229
|
-
index,
|
|
3230
|
-
points,
|
|
3231
|
-
totalPoints
|
|
3232
|
-
});
|
|
3233
|
-
} else if ((0, import_utils5.normalizeStructTag)(type) === stakeMarketCoinTypes.svsui) {
|
|
3234
|
-
stakeAccounts.svsui.push({
|
|
3235
|
-
id,
|
|
3236
|
-
type: (0, import_utils5.normalizeStructTag)(type),
|
|
3237
|
-
stakePoolId,
|
|
3238
|
-
stakeType: (0, import_utils5.normalizeStructTag)(stakeType),
|
|
3239
|
-
staked,
|
|
3240
|
-
index,
|
|
3241
|
-
points,
|
|
3242
|
-
totalPoints
|
|
3243
|
-
});
|
|
3244
|
-
} else if ((0, import_utils5.normalizeStructTag)(type) === stakeMarketCoinTypes.susdc) {
|
|
3245
|
-
stakeAccounts.susdc.push({
|
|
3230
|
+
const stakeMarketCoinTypeMap = {
|
|
3231
|
+
sweth: stakeAccounts.sweth,
|
|
3232
|
+
ssui: stakeAccounts.ssui,
|
|
3233
|
+
swusdc: stakeAccounts.swusdc,
|
|
3234
|
+
swusdt: stakeAccounts.swusdt,
|
|
3235
|
+
scetus: stakeAccounts.scetus,
|
|
3236
|
+
safsui: stakeAccounts.safsui,
|
|
3237
|
+
shasui: stakeAccounts.shasui,
|
|
3238
|
+
svsui: stakeAccounts.svsui,
|
|
3239
|
+
susdc: stakeAccounts.susdc
|
|
3240
|
+
};
|
|
3241
|
+
const normalizedType = (0, import_utils5.normalizeStructTag)(type);
|
|
3242
|
+
const stakeAccountArray = stakeMarketCoinTypeMap[reversedStakeMarketCoinTypes[normalizedType]];
|
|
3243
|
+
if (stakeAccountArray) {
|
|
3244
|
+
stakeAccountArray.push({
|
|
3246
3245
|
id,
|
|
3247
|
-
type:
|
|
3246
|
+
type: normalizedType,
|
|
3248
3247
|
stakePoolId,
|
|
3249
3248
|
stakeType: (0, import_utils5.normalizeStructTag)(stakeType),
|
|
3250
3249
|
staked,
|
|
@@ -4163,7 +4162,7 @@ var getVescaKeys = async (utils, ownerAddress) => {
|
|
|
4163
4162
|
};
|
|
4164
4163
|
var getVeScas = async ({
|
|
4165
4164
|
utils
|
|
4166
|
-
}, ownerAddress) => {
|
|
4165
|
+
}, ownerAddress, excludeEmpty) => {
|
|
4167
4166
|
const keyObjectDatas = await getVescaKeys(utils, ownerAddress);
|
|
4168
4167
|
const veScas = Array(keyObjectDatas.length).fill(null);
|
|
4169
4168
|
const tasks = keyObjectDatas.map(async (veScaKey, idx) => {
|
|
@@ -4173,7 +4172,11 @@ var getVeScas = async ({
|
|
|
4173
4172
|
}
|
|
4174
4173
|
});
|
|
4175
4174
|
await Promise.allSettled(tasks);
|
|
4176
|
-
|
|
4175
|
+
const result = veScas.filter(Boolean).sort((a, b) => b.currentVeScaBalance - a.currentVeScaBalance);
|
|
4176
|
+
if (excludeEmpty) {
|
|
4177
|
+
return result.filter((v) => v.lockedScaAmount !== "0");
|
|
4178
|
+
}
|
|
4179
|
+
return result;
|
|
4177
4180
|
};
|
|
4178
4181
|
var SuiObjectRefZod = import_zod2.z.object({
|
|
4179
4182
|
objectId: import_zod2.z.string(),
|
|
@@ -4408,7 +4411,8 @@ var ScallopUtils = class {
|
|
|
4408
4411
|
this.address = instance?.address ?? new ScallopAddress(
|
|
4409
4412
|
{
|
|
4410
4413
|
id: params?.addressesId || ADDRESSES_ID,
|
|
4411
|
-
network: params?.networkType
|
|
4414
|
+
network: params?.networkType,
|
|
4415
|
+
forceInterface: params?.forceAddressesInterface
|
|
4412
4416
|
},
|
|
4413
4417
|
{
|
|
4414
4418
|
cache: this.cache
|
|
@@ -4417,6 +4421,13 @@ var ScallopUtils = class {
|
|
|
4417
4421
|
}
|
|
4418
4422
|
this.isTestnet = params.networkType ? params.networkType === "testnet" : false;
|
|
4419
4423
|
}
|
|
4424
|
+
// -------------- TYPE GUARDS --------------
|
|
4425
|
+
isSuiBridgeAsset(coinName) {
|
|
4426
|
+
return isSuiBridgeAsset(coinName);
|
|
4427
|
+
}
|
|
4428
|
+
isWormholeAsset(coinName) {
|
|
4429
|
+
return isWormholeAsset(coinName);
|
|
4430
|
+
}
|
|
4420
4431
|
/**
|
|
4421
4432
|
* Request the scallop API to initialize data.
|
|
4422
4433
|
*
|
|
@@ -4437,12 +4448,7 @@ var ScallopUtils = class {
|
|
|
4437
4448
|
* @return Symbol string.
|
|
4438
4449
|
*/
|
|
4439
4450
|
parseSymbol(coinName) {
|
|
4440
|
-
|
|
4441
|
-
const assetCoinName = coinName.slice(1).toLowerCase();
|
|
4442
|
-
return coinName.slice(0, 1).toLowerCase() + parseAssetSymbol(assetCoinName);
|
|
4443
|
-
} else {
|
|
4444
|
-
return parseAssetSymbol(coinName);
|
|
4445
|
-
}
|
|
4451
|
+
return parseAssetSymbol(coinName);
|
|
4446
4452
|
}
|
|
4447
4453
|
/**
|
|
4448
4454
|
* Convert coin name to coin type.
|
|
@@ -4474,10 +4480,21 @@ var ScallopUtils = class {
|
|
|
4474
4480
|
const voloPackageIds = [
|
|
4475
4481
|
this.address.get("core.coins.vsui.id") ?? voloCoinIds.vsui
|
|
4476
4482
|
];
|
|
4483
|
+
const suiBridgePackageIds = Object.values(
|
|
4484
|
+
suiBridgeCoins
|
|
4485
|
+
).reduce((curr, coinName2) => {
|
|
4486
|
+
curr.push(
|
|
4487
|
+
this.address.get(`core.coins.${coinName2}.id`) ?? coinIds[coinName2]
|
|
4488
|
+
);
|
|
4489
|
+
return curr;
|
|
4490
|
+
}, []);
|
|
4477
4491
|
if (wormHolePackageIds.includes(coinPackageId)) {
|
|
4478
4492
|
return `${coinPackageId}::coin::COIN`;
|
|
4479
4493
|
} else if (voloPackageIds.includes(coinPackageId)) {
|
|
4480
4494
|
return `${coinPackageId}::cert::CERT`;
|
|
4495
|
+
} else if (suiBridgePackageIds.includes(coinPackageId)) {
|
|
4496
|
+
const typeCoinName = coinName.slice(2);
|
|
4497
|
+
return `${coinPackageId}::${typeCoinName}::${typeCoinName.toUpperCase()}`;
|
|
4481
4498
|
} else {
|
|
4482
4499
|
return `${coinPackageId}::${coinName}::${coinName.toUpperCase()}`;
|
|
4483
4500
|
}
|
|
@@ -4553,11 +4570,20 @@ var ScallopUtils = class {
|
|
|
4553
4570
|
const voloCoinTypeMap = {
|
|
4554
4571
|
[`${this.address.get("core.coins.vsui.id") ?? voloCoinIds.vsui}::cert::CERT`]: "vsui"
|
|
4555
4572
|
};
|
|
4556
|
-
const
|
|
4573
|
+
const suiBridgeTypeMap = Object.values(
|
|
4574
|
+
suiBridgeCoins
|
|
4575
|
+
).reduce(
|
|
4576
|
+
(curr, coinName) => {
|
|
4577
|
+
curr[this.parseCoinType(coinName)] = coinName;
|
|
4578
|
+
return curr;
|
|
4579
|
+
},
|
|
4580
|
+
{}
|
|
4581
|
+
);
|
|
4582
|
+
const assetCoinName = wormHoleCoinTypeMap[coinType] || voloCoinTypeMap[coinType] || suiBridgeTypeMap[coinType] || coinType.split("::")[2].toLowerCase();
|
|
4557
4583
|
return isMarketCoinType ? this.parseMarketCoinName(assetCoinName) : assetCoinName;
|
|
4558
4584
|
}
|
|
4559
4585
|
/**
|
|
4560
|
-
* Convert
|
|
4586
|
+
* Convert market coin name to coin name.
|
|
4561
4587
|
*
|
|
4562
4588
|
* @param marketCoinName - Specific support market coin name.
|
|
4563
4589
|
* @return Coin Name.
|
|
@@ -4588,10 +4614,18 @@ var ScallopUtils = class {
|
|
|
4588
4614
|
* return Coin wrapped type.
|
|
4589
4615
|
*/
|
|
4590
4616
|
getCoinWrappedType(assetCoinName) {
|
|
4591
|
-
|
|
4592
|
-
|
|
4593
|
-
|
|
4594
|
-
|
|
4617
|
+
if (this.isSuiBridgeAsset(assetCoinName)) {
|
|
4618
|
+
return {
|
|
4619
|
+
from: "Sui Bridge",
|
|
4620
|
+
type: "Asset from Sui Bridge"
|
|
4621
|
+
};
|
|
4622
|
+
} else if (this.isWormholeAsset(assetCoinName)) {
|
|
4623
|
+
return {
|
|
4624
|
+
from: "Wormhole",
|
|
4625
|
+
type: "Portal from Ethereum"
|
|
4626
|
+
};
|
|
4627
|
+
}
|
|
4628
|
+
return void 0;
|
|
4595
4629
|
}
|
|
4596
4630
|
/**
|
|
4597
4631
|
* Select coin id that add up to the given amount as transaction arguments.
|
|
@@ -4627,7 +4661,7 @@ var ScallopUtils = class {
|
|
|
4627
4661
|
if (existingCoins.length > 0) {
|
|
4628
4662
|
txBlock.mergeCoins(dest, existingCoins.slice(0, 500));
|
|
4629
4663
|
}
|
|
4630
|
-
} catch (
|
|
4664
|
+
} catch (_e) {
|
|
4631
4665
|
}
|
|
4632
4666
|
}
|
|
4633
4667
|
/**
|
|
@@ -5232,10 +5266,10 @@ var generateCoreQuickMethod = ({
|
|
|
5232
5266
|
txBlock.transferObjects([leftCoin2], sender);
|
|
5233
5267
|
txBlock.mergeCoins(marketCoins2, [walletMarketCoins]);
|
|
5234
5268
|
}
|
|
5235
|
-
} catch (
|
|
5269
|
+
} catch (_e) {
|
|
5236
5270
|
}
|
|
5237
5271
|
return txBlock.withdraw(marketCoins2, poolCoinName);
|
|
5238
|
-
} catch (
|
|
5272
|
+
} catch (_e) {
|
|
5239
5273
|
const { leftCoin, takeCoin: walletMarketCoins } = await builder.selectMarketCoin(
|
|
5240
5274
|
txBlock,
|
|
5241
5275
|
marketCoinName,
|
|
@@ -5385,7 +5419,7 @@ var stakeHelper = async (builder, txBlock, stakeAccount, coinName, amount, sende
|
|
|
5385
5419
|
}
|
|
5386
5420
|
txBlock.transferObjects([leftCoin], sender);
|
|
5387
5421
|
return totalAmount;
|
|
5388
|
-
} catch (
|
|
5422
|
+
} catch (_e) {
|
|
5389
5423
|
return 0;
|
|
5390
5424
|
}
|
|
5391
5425
|
};
|
|
@@ -6169,7 +6203,7 @@ var generateReferralQuickMethod = ({
|
|
|
6169
6203
|
builder.utils.parseCoinType(coinName)
|
|
6170
6204
|
);
|
|
6171
6205
|
txBlock.mergeCoins(rewardCoin, coins.slice(0, 500));
|
|
6172
|
-
} catch (
|
|
6206
|
+
} catch (_e) {
|
|
6173
6207
|
} finally {
|
|
6174
6208
|
objToTransfer.push(rewardCoin);
|
|
6175
6209
|
}
|
|
@@ -6686,7 +6720,8 @@ var ScallopQuery = class {
|
|
|
6686
6720
|
this.address = new ScallopAddress(
|
|
6687
6721
|
{
|
|
6688
6722
|
id: params?.addressesId || ADDRESSES_ID,
|
|
6689
|
-
network: params?.networkType
|
|
6723
|
+
network: params?.networkType,
|
|
6724
|
+
forceInterface: params?.forceAddressesInterface
|
|
6690
6725
|
},
|
|
6691
6726
|
{
|
|
6692
6727
|
cache: this.cache
|
|
@@ -6697,7 +6732,36 @@ var ScallopQuery = class {
|
|
|
6697
6732
|
});
|
|
6698
6733
|
}
|
|
6699
6734
|
this.indexer = instance?.indexer ?? new ScallopIndexer(this.params, { cache: this.cache });
|
|
6735
|
+
this.queryMarket = withIndexerFallback.call(this, this.queryMarket);
|
|
6736
|
+
this.getMarketPools = withIndexerFallback.call(this, this.getMarketPools);
|
|
6737
|
+
this.getMarketPool = withIndexerFallback.call(this, this.getMarketPool);
|
|
6738
|
+
this.getMarketCollaterals = withIndexerFallback.call(
|
|
6739
|
+
this,
|
|
6740
|
+
this.getMarketCollaterals
|
|
6741
|
+
);
|
|
6742
|
+
this.getMarketCollateral = withIndexerFallback.call(
|
|
6743
|
+
this,
|
|
6744
|
+
this.getMarketCollateral
|
|
6745
|
+
);
|
|
6746
|
+
this.getSpools = withIndexerFallback.call(this, this.getSpools);
|
|
6747
|
+
this.getSpool = withIndexerFallback.call(this, this.getSpool);
|
|
6748
|
+
this.getBorrowIncentivePools = withIndexerFallback.call(
|
|
6749
|
+
this,
|
|
6750
|
+
this.getBorrowIncentivePools
|
|
6751
|
+
);
|
|
6752
|
+
this.getLendings = withIndexerFallback.call(this, this.getLendings);
|
|
6753
|
+
this.getLending = withIndexerFallback.call(this, this.getLending);
|
|
6754
|
+
this.getObligationAccounts = withIndexerFallback.call(
|
|
6755
|
+
this,
|
|
6756
|
+
this.getObligationAccounts
|
|
6757
|
+
);
|
|
6758
|
+
this.getObligationAccount = withIndexerFallback.call(
|
|
6759
|
+
this,
|
|
6760
|
+
this.getObligationAccount
|
|
6761
|
+
);
|
|
6762
|
+
this.getTvl = withIndexerFallback.call(this, this.getTvl);
|
|
6700
6763
|
}
|
|
6764
|
+
/* ========================================================== */
|
|
6701
6765
|
/**
|
|
6702
6766
|
* Request the scallop API to initialize data.
|
|
6703
6767
|
*
|
|
@@ -7056,8 +7120,11 @@ var ScallopQuery = class {
|
|
|
7056
7120
|
* @param walletAddress
|
|
7057
7121
|
* @returns array of veSca
|
|
7058
7122
|
*/
|
|
7059
|
-
async getVeScas(
|
|
7060
|
-
|
|
7123
|
+
async getVeScas({
|
|
7124
|
+
walletAddress = this.walletAddress,
|
|
7125
|
+
excludeEmpty = false
|
|
7126
|
+
} = {}) {
|
|
7127
|
+
return await getVeScas(this, walletAddress, excludeEmpty);
|
|
7061
7128
|
}
|
|
7062
7129
|
/**
|
|
7063
7130
|
* Get total vesca treasury with movecall
|
|
@@ -7175,7 +7242,8 @@ var ScallopBuilder = class {
|
|
|
7175
7242
|
this.address = new ScallopAddress(
|
|
7176
7243
|
{
|
|
7177
7244
|
id: params?.addressesId || ADDRESSES_ID,
|
|
7178
|
-
network: params?.networkType
|
|
7245
|
+
network: params?.networkType,
|
|
7246
|
+
forceInterface: params?.forceAddressesInterface
|
|
7179
7247
|
},
|
|
7180
7248
|
{
|
|
7181
7249
|
cache: this.cache
|
|
@@ -7325,7 +7393,8 @@ var ScallopClient = class {
|
|
|
7325
7393
|
this.address = new ScallopAddress(
|
|
7326
7394
|
{
|
|
7327
7395
|
id: params?.addressesId || ADDRESSES_ID,
|
|
7328
|
-
network: params?.networkType
|
|
7396
|
+
network: params?.networkType,
|
|
7397
|
+
forceInterface: params?.forceAddressesInterface
|
|
7329
7398
|
},
|
|
7330
7399
|
{
|
|
7331
7400
|
cache: this.cache
|
|
@@ -7718,7 +7787,6 @@ var ScallopClient = class {
|
|
|
7718
7787
|
false
|
|
7719
7788
|
);
|
|
7720
7789
|
const stakeCoinName = this.utils.parseCoinName(stakeMarketCoinName);
|
|
7721
|
-
console.log(stakeMarketCoin, stakeCoinName);
|
|
7722
7790
|
if (stakeMarketCoin) {
|
|
7723
7791
|
const coin = txBlock.withdraw(stakeMarketCoin, stakeCoinName);
|
|
7724
7792
|
await this.utils.mergeSimilarCoins(
|
|
@@ -7885,7 +7953,7 @@ var ScallopClient = class {
|
|
|
7885
7953
|
if (sCoin) {
|
|
7886
7954
|
sCoins2.push(sCoin);
|
|
7887
7955
|
}
|
|
7888
|
-
} catch (
|
|
7956
|
+
} catch (_e) {
|
|
7889
7957
|
}
|
|
7890
7958
|
}
|
|
7891
7959
|
}
|
|
@@ -7910,7 +7978,9 @@ var ScallopClient = class {
|
|
|
7910
7978
|
}
|
|
7911
7979
|
}
|
|
7912
7980
|
async claimAllUnlockedSca(sign = true) {
|
|
7913
|
-
const veScaKeys = (await this.query.getVeScas(
|
|
7981
|
+
const veScaKeys = (await this.query.getVeScas({
|
|
7982
|
+
walletAddress: this.walletAddress
|
|
7983
|
+
}) ?? []).map(({ keyObject }) => keyObject);
|
|
7914
7984
|
if (veScaKeys.length === 0) {
|
|
7915
7985
|
throw new Error("No veSCA found in the wallet");
|
|
7916
7986
|
}
|
|
@@ -7924,7 +7994,7 @@ var ScallopClient = class {
|
|
|
7924
7994
|
if (!scaCoin)
|
|
7925
7995
|
return;
|
|
7926
7996
|
scaCoins.push(scaCoin);
|
|
7927
|
-
} catch (
|
|
7997
|
+
} catch (_e) {
|
|
7928
7998
|
}
|
|
7929
7999
|
})
|
|
7930
8000
|
);
|
|
@@ -7987,7 +8057,8 @@ var Scallop = class {
|
|
|
7987
8057
|
this.address = new ScallopAddress(
|
|
7988
8058
|
{
|
|
7989
8059
|
id: params?.addressesId || ADDRESSES_ID,
|
|
7990
|
-
network: params?.networkType
|
|
8060
|
+
network: params?.networkType,
|
|
8061
|
+
forceInterface: params?.forceAddressesInterface
|
|
7991
8062
|
},
|
|
7992
8063
|
{ cache: this.cache }
|
|
7993
8064
|
);
|
|
@@ -8109,6 +8180,8 @@ var Scallop = class {
|
|
|
8109
8180
|
SUPPORT_SCOIN,
|
|
8110
8181
|
SUPPORT_SPOOLS,
|
|
8111
8182
|
SUPPORT_SPOOLS_REWARDS,
|
|
8183
|
+
SUPPORT_SUI_BRIDGE,
|
|
8184
|
+
SUPPORT_WORMHOLE,
|
|
8112
8185
|
Scallop,
|
|
8113
8186
|
ScallopAddress,
|
|
8114
8187
|
ScallopBuilder,
|
|
@@ -8128,6 +8201,7 @@ var Scallop = class {
|
|
|
8128
8201
|
sCoins,
|
|
8129
8202
|
spoolRewardCoins,
|
|
8130
8203
|
stakeMarketCoins,
|
|
8204
|
+
suiBridgeCoins,
|
|
8131
8205
|
voloCoinIds,
|
|
8132
8206
|
wormholeCoinIds
|
|
8133
8207
|
});
|