@scallop-io/sui-scallop-sdk 0.42.7 → 0.42.8
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/enum.d.ts +3 -1
- package/dist/index.js +125 -57
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +95 -29
- package/dist/index.mjs.map +1 -1
- package/dist/models/scallopUtils.d.ts +1 -0
- package/dist/types/constant/enum.d.ts +8 -0
- package/dist/types/query/core.d.ts +1 -1
- package/dist/types/query/portfolio.d.ts +44 -28
- package/dist/types/query/spool.d.ts +1 -1
- package/dist/utils/query.d.ts +3 -0
- package/package.json +1 -1
- package/src/constants/enum.ts +22 -0
- package/src/models/scallopUtils.ts +36 -13
- package/src/queries/coreQuery.ts +4 -0
- package/src/queries/portfolioQuery.ts +55 -14
- package/src/types/constant/enum.ts +13 -0
- package/src/types/query/core.ts +2 -0
- package/src/types/query/portfolio.ts +46 -36
- package/src/types/query/spool.ts +1 -1
- package/src/utils/query.ts +18 -2
package/dist/constants/enum.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import type { SupportCoinDecimals, AssetCoins, MarketCoins, StakeMarketCoins, RewardCoins } from '../types';
|
|
1
|
+
import type { SupportCoinDecimals, AssetCoins, MarketCoins, StakeMarketCoins, RewardCoins, AssetCoinIds, WormholeCoinIds } from '../types';
|
|
2
2
|
export declare const coinDecimals: SupportCoinDecimals;
|
|
3
3
|
export declare const assetCoins: AssetCoins;
|
|
4
4
|
export declare const marketCoins: MarketCoins;
|
|
5
5
|
export declare const stakeMarketCoins: StakeMarketCoins;
|
|
6
6
|
export declare const rewardCoins: RewardCoins;
|
|
7
|
+
export declare const coinIds: AssetCoinIds;
|
|
8
|
+
export declare const wormholeCoinIds: WormholeCoinIds;
|
package/dist/index.js
CHANGED
|
@@ -47,9 +47,11 @@ __export(src_exports, {
|
|
|
47
47
|
ScallopUtils: () => ScallopUtils,
|
|
48
48
|
assetCoins: () => assetCoins,
|
|
49
49
|
coinDecimals: () => coinDecimals,
|
|
50
|
+
coinIds: () => coinIds,
|
|
50
51
|
marketCoins: () => marketCoins,
|
|
51
52
|
rewardCoins: () => rewardCoins,
|
|
52
|
-
stakeMarketCoins: () => stakeMarketCoins
|
|
53
|
+
stakeMarketCoins: () => stakeMarketCoins,
|
|
54
|
+
wormholeCoinIds: () => wormholeCoinIds
|
|
53
55
|
});
|
|
54
56
|
module.exports = __toCommonJS(src_exports);
|
|
55
57
|
|
|
@@ -144,6 +146,24 @@ var rewardCoins = {
|
|
|
144
146
|
susdc: "sui",
|
|
145
147
|
susdt: "sui"
|
|
146
148
|
};
|
|
149
|
+
var coinIds = {
|
|
150
|
+
sui: "0x0000000000000000000000000000000000000000000000000000000000000002",
|
|
151
|
+
eth: "0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5",
|
|
152
|
+
btc: "0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881",
|
|
153
|
+
usdc: "0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf",
|
|
154
|
+
usdt: "0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c",
|
|
155
|
+
apt: "0x3a5143bb1196e3bcdfab6203d1683ae29edd26294fc8bfeafe4aaa9d2704df37",
|
|
156
|
+
sol: "0xb7844e289a8410e50fb3ca48d69eb9cf29e27d223ef90353fe1bd8e27ff8f3f8",
|
|
157
|
+
cetus: "0x06864a6f921804860930db6ddbe2e16acdf8504495ea7481637a1c8b9a8fe54b"
|
|
158
|
+
};
|
|
159
|
+
var wormholeCoinIds = {
|
|
160
|
+
eth: "0xaf8cd5edc19c4512f4259f0bee101a40d41ebed738ade5874359610ef8eeced5",
|
|
161
|
+
btc: "0x027792d9fed7f9844eb4839566001bb6f6cb4804f66aa2da6fe1ee242d896881",
|
|
162
|
+
usdc: "0x5d4b302506645c37ff133b98c4b50a5ae14841659738d6d733d59d0d217a93bf",
|
|
163
|
+
usdt: "0xc060006111016b8a020ad5b33834984a437aaa7d3c74c18e09a95d48aceab08c",
|
|
164
|
+
apt: "0x3a5143bb1196e3bcdfab6203d1683ae29edd26294fc8bfeafe4aaa9d2704df37",
|
|
165
|
+
sol: "0xb7844e289a8410e50fb3ca48d69eb9cf29e27d223ef90353fe1bd8e27ff8f3f8"
|
|
166
|
+
};
|
|
147
167
|
|
|
148
168
|
// src/models/scallop.ts
|
|
149
169
|
var import_sui_kit8 = require("@scallop-io/sui-kit");
|
|
@@ -604,11 +624,11 @@ var ScallopAddress = class {
|
|
|
604
624
|
};
|
|
605
625
|
|
|
606
626
|
// src/models/scallopClient.ts
|
|
607
|
-
var
|
|
627
|
+
var import_utils11 = require("@mysten/sui.js/utils");
|
|
608
628
|
var import_sui_kit7 = require("@scallop-io/sui-kit");
|
|
609
629
|
|
|
610
630
|
// src/models/scallopUtils.ts
|
|
611
|
-
var
|
|
631
|
+
var import_utils5 = require("@mysten/sui.js/utils");
|
|
612
632
|
var import_sui_kit3 = require("@scallop-io/sui-kit");
|
|
613
633
|
var import_pyth_sui_js = require("@pythnetwork/pyth-sui-js");
|
|
614
634
|
|
|
@@ -851,9 +871,9 @@ var calculateRewardPoolData = (parsedStakePoolData, parsedRewardPoolData, calcul
|
|
|
851
871
|
);
|
|
852
872
|
const claimedRewardValue = claimedRewardCoin.multipliedBy(rewardCoinPrice);
|
|
853
873
|
const rewardValueForYear = (0, import_bignumber.default)(rewardPerSec).shiftedBy(-1 * rewardCoinDecimal).multipliedBy(rateYearFactor).multipliedBy(rewardCoinPrice);
|
|
854
|
-
const
|
|
874
|
+
const rewardRate = rewardValueForYear.dividedBy(calculatedStakePoolData.stakedValue).isFinite() ? rewardValueForYear.dividedBy(calculatedStakePoolData.stakedValue).toNumber() : Infinity;
|
|
855
875
|
return {
|
|
856
|
-
|
|
876
|
+
rewardApr: rewardRate,
|
|
857
877
|
totalRewardAmount: totalRewardAmount.toNumber(),
|
|
858
878
|
totalRewardCoin: totalRewardCoin.toNumber(),
|
|
859
879
|
totalRewardValue: totalRewardValue.toNumber(),
|
|
@@ -868,6 +888,13 @@ var calculateRewardPoolData = (parsedStakePoolData, parsedRewardPoolData, calcul
|
|
|
868
888
|
exchangeRateDenominator: parsedRewardPoolData.exchangeRateDenominator
|
|
869
889
|
};
|
|
870
890
|
};
|
|
891
|
+
var minBigNumber = (...args) => {
|
|
892
|
+
return (0, import_bignumber.default)(
|
|
893
|
+
args.reduce(
|
|
894
|
+
(min, current) => new import_bignumber.default(current).lt(min) ? current : min
|
|
895
|
+
)
|
|
896
|
+
);
|
|
897
|
+
};
|
|
871
898
|
|
|
872
899
|
// src/utils/util.ts
|
|
873
900
|
var isMarketCoin = (coinName) => {
|
|
@@ -928,6 +955,8 @@ var queryMarket = async (query) => {
|
|
|
928
955
|
coinWrappedType: query.utils.getCoinWrappedType(poolCoinName),
|
|
929
956
|
coinDecimal: query.utils.getCoinDecimal(poolCoinName),
|
|
930
957
|
coinPrice,
|
|
958
|
+
highKink: parsedMarketPoolData.highKink,
|
|
959
|
+
midKink: parsedMarketPoolData.midKink,
|
|
931
960
|
reserveFactor: parsedMarketPoolData.reserveFactor,
|
|
932
961
|
borrowWeight: parsedMarketPoolData.borrowWeight,
|
|
933
962
|
marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
|
|
@@ -1096,6 +1125,8 @@ var getMarketPool = async (query, poolCoinName, marketObject, coinPrice) => {
|
|
|
1096
1125
|
coinWrappedType: query.utils.getCoinWrappedType(poolCoinName),
|
|
1097
1126
|
coinDecimal: query.utils.getCoinDecimal(poolCoinName),
|
|
1098
1127
|
coinPrice: coinPrice ?? 0,
|
|
1128
|
+
highKink: parsedMarketPoolData.highKink,
|
|
1129
|
+
midKink: parsedMarketPoolData.midKink,
|
|
1099
1130
|
reserveFactor: parsedMarketPoolData.reserveFactor,
|
|
1100
1131
|
borrowWeight: parsedMarketPoolData.borrowWeight,
|
|
1101
1132
|
marketCoinSupplyAmount: parsedMarketPoolData.marketCoinSupplyAmount,
|
|
@@ -1776,7 +1807,9 @@ var getLending = async (query, poolCoinName, ownerAddress, marketPool, spool, st
|
|
|
1776
1807
|
let stakedCoin = (0, import_bignumber3.default)(0);
|
|
1777
1808
|
let stakedValue = (0, import_bignumber3.default)(0);
|
|
1778
1809
|
let availableUnstakeAmount = (0, import_bignumber3.default)(0);
|
|
1810
|
+
let availableUnstakeCoin = (0, import_bignumber3.default)(0);
|
|
1779
1811
|
let availableClaimAmount = (0, import_bignumber3.default)(0);
|
|
1812
|
+
let availableClaimCoin = (0, import_bignumber3.default)(0);
|
|
1780
1813
|
if (spool) {
|
|
1781
1814
|
for (const stakeAccount of stakeAccounts) {
|
|
1782
1815
|
const accountStakedMarketCoinAmount = (0, import_bignumber3.default)(stakeAccount.staked);
|
|
@@ -1802,6 +1835,7 @@ var getLending = async (query, poolCoinName, ownerAddress, marketPool, spool, st
|
|
|
1802
1835
|
availableUnstakeAmount = availableUnstakeAmount.plus(
|
|
1803
1836
|
accountStakedMarketCoinAmount
|
|
1804
1837
|
);
|
|
1838
|
+
availableUnstakeCoin = availableUnstakeAmount.shiftedBy(-1 * coinDecimal);
|
|
1805
1839
|
const baseIndexRate = 1e9;
|
|
1806
1840
|
const increasedPointRate = spool?.currentPointIndex ? (0, import_bignumber3.default)(spool.currentPointIndex - stakeAccount.index).dividedBy(
|
|
1807
1841
|
baseIndexRate
|
|
@@ -1809,6 +1843,7 @@ var getLending = async (query, poolCoinName, ownerAddress, marketPool, spool, st
|
|
|
1809
1843
|
availableClaimAmount = availableClaimAmount.plus(
|
|
1810
1844
|
(0, import_bignumber3.default)(stakeAccount.staked).multipliedBy(increasedPointRate).plus(stakeAccount.points).multipliedBy(spool.exchangeRateNumerator).dividedBy(spool.exchangeRateDenominator)
|
|
1811
1845
|
);
|
|
1846
|
+
availableClaimCoin = availableClaimAmount.shiftedBy(-1 * coinDecimal);
|
|
1812
1847
|
}
|
|
1813
1848
|
}
|
|
1814
1849
|
const suppliedAmount = (0, import_bignumber3.default)(marketCoinAmount).multipliedBy(
|
|
@@ -1816,6 +1851,18 @@ var getLending = async (query, poolCoinName, ownerAddress, marketPool, spool, st
|
|
|
1816
1851
|
);
|
|
1817
1852
|
const suppliedCoin = suppliedAmount.shiftedBy(-1 * coinDecimal);
|
|
1818
1853
|
const suppliedValue = suppliedCoin.multipliedBy(coinPrice ?? 0);
|
|
1854
|
+
const unstakedMarketAmount = (0, import_bignumber3.default)(marketCoinAmount);
|
|
1855
|
+
const unstakedMarketCoin = unstakedMarketAmount.shiftedBy(-1 * coinDecimal);
|
|
1856
|
+
const availableSupplyAmount = (0, import_bignumber3.default)(coinAmount);
|
|
1857
|
+
const availableSupplyCoin = availableSupplyAmount.shiftedBy(-1 * coinDecimal);
|
|
1858
|
+
const availableWithdrawAmount = minBigNumber(
|
|
1859
|
+
suppliedAmount,
|
|
1860
|
+
marketPool?.supplyAmount ?? Infinity
|
|
1861
|
+
).plus(stakedAmount);
|
|
1862
|
+
const availableWithdrawCoin = minBigNumber(
|
|
1863
|
+
suppliedCoin,
|
|
1864
|
+
marketPool?.supplyCoin ?? Infinity
|
|
1865
|
+
).plus(stakedCoin);
|
|
1819
1866
|
const lending = {
|
|
1820
1867
|
coinName: poolCoinName,
|
|
1821
1868
|
symbol: query.utils.parseSymbol(poolCoinName),
|
|
@@ -1825,7 +1872,7 @@ var getLending = async (query, poolCoinName, ownerAddress, marketPool, spool, st
|
|
|
1825
1872
|
coinPrice: coinPrice ?? 0,
|
|
1826
1873
|
supplyApr: marketPool?.supplyApr ?? 0,
|
|
1827
1874
|
supplyApy: marketPool?.supplyApy ?? 0,
|
|
1828
|
-
rewardApr: spool?.
|
|
1875
|
+
rewardApr: spool?.rewardApr ?? 0,
|
|
1829
1876
|
suppliedAmount: suppliedAmount.plus(stakedAmount).toNumber(),
|
|
1830
1877
|
suppliedCoin: suppliedCoin.plus(stakedCoin).toNumber(),
|
|
1831
1878
|
suppliedValue: suppliedValue.plus(stakedValue).toNumber(),
|
|
@@ -1834,11 +1881,21 @@ var getLending = async (query, poolCoinName, ownerAddress, marketPool, spool, st
|
|
|
1834
1881
|
stakedAmount: stakedAmount.toNumber(),
|
|
1835
1882
|
stakedCoin: stakedCoin.toNumber(),
|
|
1836
1883
|
stakedValue: stakedValue.toNumber(),
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1884
|
+
unstakedMarketAmount: unstakedMarketAmount.toNumber(),
|
|
1885
|
+
unstakedMarketCoin: unstakedMarketCoin.toNumber(),
|
|
1886
|
+
unstakedAmount: suppliedAmount.toNumber(),
|
|
1887
|
+
unstakedCoin: suppliedCoin.toNumber(),
|
|
1888
|
+
unstakedValue: suppliedValue.toNumber(),
|
|
1889
|
+
availableSupplyAmount: availableSupplyAmount.toNumber(),
|
|
1890
|
+
availableSupplyCoin: availableSupplyCoin.toNumber(),
|
|
1891
|
+
availableWithdrawAmount: availableWithdrawAmount.toNumber(),
|
|
1892
|
+
availableWithdrawCoin: availableWithdrawCoin.toNumber(),
|
|
1893
|
+
availableStakeAmount: unstakedMarketAmount.toNumber(),
|
|
1894
|
+
availableStakeCoin: unstakedMarketCoin.toNumber(),
|
|
1840
1895
|
availableUnstakeAmount: availableUnstakeAmount.toNumber(),
|
|
1841
|
-
|
|
1896
|
+
availableUnstakeCoin: availableUnstakeCoin.toNumber(),
|
|
1897
|
+
availableClaimAmount: availableClaimAmount.toNumber(),
|
|
1898
|
+
availableClaimCoin: availableClaimCoin.toNumber()
|
|
1842
1899
|
};
|
|
1843
1900
|
return lending;
|
|
1844
1901
|
};
|
|
@@ -1916,6 +1973,8 @@ var getObligationAccount = async (query, obligationId, ownerAddress, market, coi
|
|
|
1916
1973
|
coinName: collateralCoinName,
|
|
1917
1974
|
coinType: collateral.type.name,
|
|
1918
1975
|
symbol: query.utils.parseSymbol(collateralCoinName),
|
|
1976
|
+
coinDecimal,
|
|
1977
|
+
coinPrice,
|
|
1919
1978
|
depositedAmount: depositedAmount.toNumber(),
|
|
1920
1979
|
depositedCoin: depositedCoin.toNumber(),
|
|
1921
1980
|
depositedValue: depositedValue.toNumber(),
|
|
@@ -1960,6 +2019,8 @@ var getObligationAccount = async (query, obligationId, ownerAddress, market, coi
|
|
|
1960
2019
|
coinName: poolCoinName,
|
|
1961
2020
|
coinType: debt.type.name,
|
|
1962
2021
|
symbol: query.utils.parseSymbol(poolCoinName),
|
|
2022
|
+
coinDecimal,
|
|
2023
|
+
coinPrice,
|
|
1963
2024
|
borrowedAmount: borrowedAmount.toNumber(),
|
|
1964
2025
|
borrowedCoin: borrowedCoin.toNumber(),
|
|
1965
2026
|
borrowedValue: borrowedValue.toNumber(),
|
|
@@ -2007,13 +2068,13 @@ var getObligationAccount = async (query, obligationId, ownerAddress, market, coi
|
|
|
2007
2068
|
)) {
|
|
2008
2069
|
const marketCollateral = market.collaterals[collateralCoinName];
|
|
2009
2070
|
if (marketCollateral) {
|
|
2010
|
-
const availableWithdrawAmount = obligationAccount.totalBorrowedValueWithWeight === 0 ? obligationCollateral.depositedAmount :
|
|
2071
|
+
const availableWithdrawAmount = obligationAccount.totalBorrowedValueWithWeight === 0 ? (0, import_bignumber3.default)(obligationCollateral.depositedAmount) : minBigNumber(
|
|
2011
2072
|
(0, import_bignumber3.default)(obligationAccount.totalAvailableCollateralValue).dividedBy(marketCollateral.collateralFactor).dividedBy(marketCollateral.coinPrice).multipliedBy(0.99).toNumber(),
|
|
2012
2073
|
obligationCollateral.depositedAmount,
|
|
2013
2074
|
marketCollateral.depositAmount
|
|
2014
2075
|
);
|
|
2015
|
-
obligationCollateral.availableWithdrawAmount = availableWithdrawAmount;
|
|
2016
|
-
obligationCollateral.availableWithdrawCoin = availableWithdrawAmount;
|
|
2076
|
+
obligationCollateral.availableWithdrawAmount = availableWithdrawAmount.toNumber();
|
|
2077
|
+
obligationCollateral.availableWithdrawCoin = availableWithdrawAmount.shiftedBy(-1 * obligationCollateral.coinDecimal).toNumber();
|
|
2017
2078
|
}
|
|
2018
2079
|
}
|
|
2019
2080
|
for (const [assetCoinName, obligationDebt] of Object.entries(
|
|
@@ -2023,17 +2084,19 @@ var getObligationAccount = async (query, obligationId, ownerAddress, market, coi
|
|
|
2023
2084
|
if (marketPool) {
|
|
2024
2085
|
const availableRepayAmount = (0, import_bignumber3.default)(
|
|
2025
2086
|
obligationDebt.availableRepayAmount
|
|
2026
|
-
).multipliedBy(1.01)
|
|
2027
|
-
const availableBorrowAmount = obligationAccount.totalAvailableCollateralValue !== 0 ?
|
|
2087
|
+
).multipliedBy(1.01);
|
|
2088
|
+
const availableBorrowAmount = obligationAccount.totalAvailableCollateralValue !== 0 ? minBigNumber(
|
|
2028
2089
|
(0, import_bignumber3.default)(obligationAccount.totalAvailableCollateralValue).dividedBy(
|
|
2029
2090
|
(0, import_bignumber3.default)(marketPool.coinPrice).multipliedBy(
|
|
2030
2091
|
marketPool.borrowWeight
|
|
2031
2092
|
)
|
|
2032
2093
|
).multipliedBy(0.99).toNumber(),
|
|
2033
2094
|
marketPool.supplyAmount
|
|
2034
|
-
) : 0;
|
|
2035
|
-
obligationDebt.availableBorrowAmount = availableBorrowAmount;
|
|
2036
|
-
obligationDebt.
|
|
2095
|
+
) : (0, import_bignumber3.default)(0);
|
|
2096
|
+
obligationDebt.availableBorrowAmount = availableBorrowAmount.toNumber();
|
|
2097
|
+
obligationDebt.availableBorrowCoin = availableBorrowAmount.shiftedBy(-1 * obligationDebt.coinDecimal).toNumber();
|
|
2098
|
+
obligationDebt.availableRepayAmount = availableRepayAmount.toNumber();
|
|
2099
|
+
obligationDebt.availableRepayCoin = availableRepayAmount.shiftedBy(-1 * obligationDebt.coinDecimal).toNumber();
|
|
2037
2100
|
}
|
|
2038
2101
|
}
|
|
2039
2102
|
return obligationAccount;
|
|
@@ -2435,16 +2498,19 @@ var ScallopUtils = class {
|
|
|
2435
2498
|
*/
|
|
2436
2499
|
parseCoinType(coinName) {
|
|
2437
2500
|
coinName = isMarketCoin(coinName) ? this.parseCoinName(coinName) : coinName;
|
|
2438
|
-
const coinPackageId = this._address.get(`core.coins.${coinName}.id`);
|
|
2501
|
+
const coinPackageId = this._address.get(`core.coins.${coinName}.id`) ?? coinIds[coinName] ?? void 0;
|
|
2502
|
+
if (!coinPackageId) {
|
|
2503
|
+
throw Error(`Coin ${coinName} is not supported`);
|
|
2504
|
+
}
|
|
2439
2505
|
if (coinName === "sui")
|
|
2440
|
-
return (0,
|
|
2506
|
+
return (0, import_utils5.normalizeStructTag)(`${coinPackageId}::sui::SUI`);
|
|
2441
2507
|
const wormHoleCoinIds = [
|
|
2442
|
-
this._address.get("core.coins.usdc.id"),
|
|
2443
|
-
this._address.get("core.coins.usdt.id"),
|
|
2444
|
-
this._address.get("core.coins.eth.id"),
|
|
2445
|
-
this._address.get("core.coins.btc.id"),
|
|
2446
|
-
this._address.get("core.coins.sol.id"),
|
|
2447
|
-
this._address.get("core.coins.apt.id")
|
|
2508
|
+
this._address.get("core.coins.usdc.id") ?? wormholeCoinIds.usdc,
|
|
2509
|
+
this._address.get("core.coins.usdt.id") ?? wormholeCoinIds.usdt,
|
|
2510
|
+
this._address.get("core.coins.eth.id") ?? wormholeCoinIds.eth,
|
|
2511
|
+
this._address.get("core.coins.btc.id") ?? wormholeCoinIds.btc,
|
|
2512
|
+
this._address.get("core.coins.sol.id") ?? wormholeCoinIds.sol,
|
|
2513
|
+
this._address.get("core.coins.apt.id") ?? wormholeCoinIds.apt
|
|
2448
2514
|
];
|
|
2449
2515
|
if (wormHoleCoinIds.includes(coinPackageId)) {
|
|
2450
2516
|
return `${coinPackageId}::coin::COIN`;
|
|
@@ -2464,18 +2530,18 @@ var ScallopUtils = class {
|
|
|
2464
2530
|
return `${PROTOCOL_OBJECT_ID}::reserve::MarketCoin<${coinType}>`;
|
|
2465
2531
|
}
|
|
2466
2532
|
parseCoinNameFromType(coinType) {
|
|
2467
|
-
coinType = (0,
|
|
2533
|
+
coinType = (0, import_utils5.normalizeStructTag)(coinType);
|
|
2468
2534
|
const coinTypeRegex = new RegExp(`((0x[^:]+::[^:]+::[^<>]+))(?![^<>]*<)`);
|
|
2469
2535
|
const coinTypeMatch = coinType.match(coinTypeRegex);
|
|
2470
2536
|
const isMarketCoinType = coinType.includes("reserve::MarketCoin");
|
|
2471
2537
|
coinType = coinTypeMatch?.[1] || coinType;
|
|
2472
2538
|
const wormHoleCoinTypeMap = {
|
|
2473
|
-
[`${this._address.get("core.coins.usdc.id")}::coin::COIN`]: "usdc",
|
|
2474
|
-
[`${this._address.get("core.coins.usdt.id")}::coin::COIN`]: "usdt",
|
|
2475
|
-
[`${this._address.get("core.coins.eth.id")}::coin::COIN`]: "eth",
|
|
2476
|
-
[`${this._address.get("core.coins.btc.id")}::coin::COIN`]: "btc",
|
|
2477
|
-
[`${this._address.get("core.coins.sol.id")}::coin::COIN`]: "sol",
|
|
2478
|
-
[`${this._address.get("core.coins.apt.id")}::coin::COIN`]: "apt"
|
|
2539
|
+
[`${this._address.get("core.coins.usdc.id") ?? wormholeCoinIds.usdc}::coin::COIN`]: "usdc",
|
|
2540
|
+
[`${this._address.get("core.coins.usdt.id") ?? wormholeCoinIds.usdt}::coin::COIN`]: "usdt",
|
|
2541
|
+
[`${this._address.get("core.coins.eth.id") ?? wormholeCoinIds.eth}::coin::COIN`]: "eth",
|
|
2542
|
+
[`${this._address.get("core.coins.btc.id") ?? wormholeCoinIds.btc}::coin::COIN`]: "btc",
|
|
2543
|
+
[`${this._address.get("core.coins.sol.id") ?? wormholeCoinIds.sol}::coin::COIN`]: "sol",
|
|
2544
|
+
[`${this._address.get("core.coins.apt.id") ?? wormholeCoinIds.apt}::coin::COIN`]: "apt"
|
|
2479
2545
|
};
|
|
2480
2546
|
const assetCoinName = wormHoleCoinTypeMap[coinType] || coinType.split("::")[2].toLowerCase();
|
|
2481
2547
|
return isMarketCoinType ? this.parseMarketCoinName(assetCoinName) : assetCoinName;
|
|
@@ -2525,7 +2591,7 @@ var ScallopUtils = class {
|
|
|
2525
2591
|
* @param coinType - The coin type, default is 0x2::SUI::SUI.
|
|
2526
2592
|
* @return The selected transaction coin arguments.
|
|
2527
2593
|
*/
|
|
2528
|
-
async selectCoinIds(amount, coinType =
|
|
2594
|
+
async selectCoinIds(amount, coinType = import_utils5.SUI_TYPE_ARG, ownerAddress) {
|
|
2529
2595
|
ownerAddress = ownerAddress || this._suiKit.currentAddress();
|
|
2530
2596
|
const coins = await this._suiKit.suiInteractor.selectCoins(
|
|
2531
2597
|
ownerAddress,
|
|
@@ -2644,16 +2710,16 @@ var ScallopUtils = class {
|
|
|
2644
2710
|
};
|
|
2645
2711
|
|
|
2646
2712
|
// src/models/scallopBuilder.ts
|
|
2647
|
-
var
|
|
2713
|
+
var import_utils10 = require("@mysten/sui.js/utils");
|
|
2648
2714
|
var import_sui_kit6 = require("@scallop-io/sui-kit");
|
|
2649
2715
|
|
|
2650
2716
|
// src/builders/coreBuilder.ts
|
|
2651
2717
|
var import_transactions = require("@mysten/sui.js/transactions");
|
|
2652
|
-
var
|
|
2718
|
+
var import_utils8 = require("@mysten/sui.js/utils");
|
|
2653
2719
|
var import_sui_kit4 = require("@scallop-io/sui-kit");
|
|
2654
2720
|
|
|
2655
2721
|
// src/builders/oracle.ts
|
|
2656
|
-
var
|
|
2722
|
+
var import_utils7 = require("@mysten/sui.js/utils");
|
|
2657
2723
|
var import_pyth_sui_js2 = require("@pythnetwork/pyth-sui-js");
|
|
2658
2724
|
var updateOracles = async (builder, txBlock, assetCoinNames) => {
|
|
2659
2725
|
assetCoinNames = assetCoinNames ?? [
|
|
@@ -2759,27 +2825,27 @@ var priceUpdateRequest = (txBlock, packageId, xOracleId, coinType) => {
|
|
|
2759
2825
|
var confirmPriceUpdateRequest = (txBlock, packageId, xOracleId, request, coinType) => {
|
|
2760
2826
|
const target = `${packageId}::x_oracle::confirm_price_update_request`;
|
|
2761
2827
|
const typeArgs = [coinType];
|
|
2762
|
-
txBlock.moveCall(target, [xOracleId, request,
|
|
2828
|
+
txBlock.moveCall(target, [xOracleId, request, import_utils7.SUI_CLOCK_OBJECT_ID], typeArgs);
|
|
2763
2829
|
return txBlock;
|
|
2764
2830
|
};
|
|
2765
2831
|
var updateSupraPrice = (txBlock, packageId, request, holderId, registryId, coinType) => {
|
|
2766
2832
|
txBlock.moveCall(
|
|
2767
2833
|
`${packageId}::rule::set_price`,
|
|
2768
|
-
[request, holderId, registryId,
|
|
2834
|
+
[request, holderId, registryId, import_utils7.SUI_CLOCK_OBJECT_ID],
|
|
2769
2835
|
[coinType]
|
|
2770
2836
|
);
|
|
2771
2837
|
};
|
|
2772
2838
|
var updateSwitchboardPrice = (txBlock, packageId, request, aggregatorId, registryId, coinType) => {
|
|
2773
2839
|
txBlock.moveCall(
|
|
2774
2840
|
`${packageId}::rule::set_price`,
|
|
2775
|
-
[request, aggregatorId, registryId,
|
|
2841
|
+
[request, aggregatorId, registryId, import_utils7.SUI_CLOCK_OBJECT_ID],
|
|
2776
2842
|
[coinType]
|
|
2777
2843
|
);
|
|
2778
2844
|
};
|
|
2779
2845
|
var updatePythPrice = (txBlock, packageId, request, stateId, feedObjectId, registryId, coinType) => {
|
|
2780
2846
|
txBlock.moveCall(
|
|
2781
2847
|
`${packageId}::rule::set_price`,
|
|
2782
|
-
[request, stateId, feedObjectId, registryId,
|
|
2848
|
+
[request, stateId, feedObjectId, registryId, import_utils7.SUI_CLOCK_OBJECT_ID],
|
|
2783
2849
|
[coinType]
|
|
2784
2850
|
);
|
|
2785
2851
|
};
|
|
@@ -2852,7 +2918,7 @@ var generateCoreNormalMethod = ({
|
|
|
2852
2918
|
coreIds.coinDecimalsRegistry,
|
|
2853
2919
|
amount,
|
|
2854
2920
|
coreIds.xOracle,
|
|
2855
|
-
|
|
2921
|
+
import_utils8.SUI_CLOCK_OBJECT_ID
|
|
2856
2922
|
],
|
|
2857
2923
|
[coinType]
|
|
2858
2924
|
);
|
|
@@ -2861,7 +2927,7 @@ var generateCoreNormalMethod = ({
|
|
|
2861
2927
|
const coinType = builder.utils.parseCoinType(poolCoinName);
|
|
2862
2928
|
return txBlock.moveCall(
|
|
2863
2929
|
`${coreIds.protocolPkg}::mint::mint`,
|
|
2864
|
-
[coreIds.version, coreIds.market, coin,
|
|
2930
|
+
[coreIds.version, coreIds.market, coin, import_utils8.SUI_CLOCK_OBJECT_ID],
|
|
2865
2931
|
[coinType]
|
|
2866
2932
|
);
|
|
2867
2933
|
},
|
|
@@ -2869,7 +2935,7 @@ var generateCoreNormalMethod = ({
|
|
|
2869
2935
|
const coinType = builder.utils.parseCoinType(poolCoinName);
|
|
2870
2936
|
return txBlock.moveCall(
|
|
2871
2937
|
`${coreIds.protocolPkg}::mint::mint_entry`,
|
|
2872
|
-
[coreIds.version, coreIds.market, coin,
|
|
2938
|
+
[coreIds.version, coreIds.market, coin, import_utils8.SUI_CLOCK_OBJECT_ID],
|
|
2873
2939
|
[coinType]
|
|
2874
2940
|
);
|
|
2875
2941
|
},
|
|
@@ -2877,7 +2943,7 @@ var generateCoreNormalMethod = ({
|
|
|
2877
2943
|
const coinType = builder.utils.parseCoinType(poolCoinName);
|
|
2878
2944
|
return txBlock.moveCall(
|
|
2879
2945
|
`${coreIds.protocolPkg}::redeem::redeem`,
|
|
2880
|
-
[coreIds.version, coreIds.market, marketCoin,
|
|
2946
|
+
[coreIds.version, coreIds.market, marketCoin, import_utils8.SUI_CLOCK_OBJECT_ID],
|
|
2881
2947
|
[coinType]
|
|
2882
2948
|
);
|
|
2883
2949
|
},
|
|
@@ -2885,7 +2951,7 @@ var generateCoreNormalMethod = ({
|
|
|
2885
2951
|
const coinType = builder.utils.parseCoinType(poolCoinName);
|
|
2886
2952
|
return txBlock.moveCall(
|
|
2887
2953
|
`${coreIds.protocolPkg}::redeem::redeem_entry`,
|
|
2888
|
-
[coreIds.version, coreIds.market, marketCoin,
|
|
2954
|
+
[coreIds.version, coreIds.market, marketCoin, import_utils8.SUI_CLOCK_OBJECT_ID],
|
|
2889
2955
|
[coinType]
|
|
2890
2956
|
);
|
|
2891
2957
|
},
|
|
@@ -2901,7 +2967,7 @@ var generateCoreNormalMethod = ({
|
|
|
2901
2967
|
coreIds.coinDecimalsRegistry,
|
|
2902
2968
|
amount,
|
|
2903
2969
|
coreIds.xOracle,
|
|
2904
|
-
|
|
2970
|
+
import_utils8.SUI_CLOCK_OBJECT_ID
|
|
2905
2971
|
],
|
|
2906
2972
|
[coinType]
|
|
2907
2973
|
);
|
|
@@ -2918,7 +2984,7 @@ var generateCoreNormalMethod = ({
|
|
|
2918
2984
|
coreIds.coinDecimalsRegistry,
|
|
2919
2985
|
amount,
|
|
2920
2986
|
coreIds.xOracle,
|
|
2921
|
-
|
|
2987
|
+
import_utils8.SUI_CLOCK_OBJECT_ID
|
|
2922
2988
|
],
|
|
2923
2989
|
[coinType]
|
|
2924
2990
|
);
|
|
@@ -2932,7 +2998,7 @@ var generateCoreNormalMethod = ({
|
|
|
2932
2998
|
obligation,
|
|
2933
2999
|
coreIds.market,
|
|
2934
3000
|
coin,
|
|
2935
|
-
|
|
3001
|
+
import_utils8.SUI_CLOCK_OBJECT_ID
|
|
2936
3002
|
],
|
|
2937
3003
|
[coinType]
|
|
2938
3004
|
);
|
|
@@ -3110,7 +3176,7 @@ var newCoreTxBlock = (builder, initTxBlock) => {
|
|
|
3110
3176
|
|
|
3111
3177
|
// src/builders/spoolBuilder.ts
|
|
3112
3178
|
var import_transactions2 = require("@mysten/sui.js/transactions");
|
|
3113
|
-
var
|
|
3179
|
+
var import_utils9 = require("@mysten/sui.js/utils");
|
|
3114
3180
|
var import_sui_kit5 = require("@scallop-io/sui-kit");
|
|
3115
3181
|
var requireSender2 = (txBlock) => {
|
|
3116
3182
|
const sender = txBlock.blockData.sender;
|
|
@@ -3157,7 +3223,7 @@ var generateSpoolNormalMethod = ({
|
|
|
3157
3223
|
);
|
|
3158
3224
|
return txBlock.moveCall(
|
|
3159
3225
|
`${spoolIds.spoolPkg}::user::new_spool_account`,
|
|
3160
|
-
[stakePoolId,
|
|
3226
|
+
[stakePoolId, import_utils9.SUI_CLOCK_OBJECT_ID],
|
|
3161
3227
|
[marketCoinType]
|
|
3162
3228
|
);
|
|
3163
3229
|
},
|
|
@@ -3168,7 +3234,7 @@ var generateSpoolNormalMethod = ({
|
|
|
3168
3234
|
);
|
|
3169
3235
|
txBlock.moveCall(
|
|
3170
3236
|
`${spoolIds.spoolPkg}::user::stake`,
|
|
3171
|
-
[stakePoolId, stakeAccount, coin,
|
|
3237
|
+
[stakePoolId, stakeAccount, coin, import_utils9.SUI_CLOCK_OBJECT_ID],
|
|
3172
3238
|
[marketCoinType]
|
|
3173
3239
|
);
|
|
3174
3240
|
},
|
|
@@ -3179,7 +3245,7 @@ var generateSpoolNormalMethod = ({
|
|
|
3179
3245
|
);
|
|
3180
3246
|
return txBlock.moveCall(
|
|
3181
3247
|
`${spoolIds.spoolPkg}::user::unstake`,
|
|
3182
|
-
[stakePoolId, stakeAccount, amount,
|
|
3248
|
+
[stakePoolId, stakeAccount, amount, import_utils9.SUI_CLOCK_OBJECT_ID],
|
|
3183
3249
|
[marketCoinType]
|
|
3184
3250
|
);
|
|
3185
3251
|
},
|
|
@@ -3195,7 +3261,7 @@ var generateSpoolNormalMethod = ({
|
|
|
3195
3261
|
const rewardCoinType = builder.utils.parseCoinType(rewardCoinName);
|
|
3196
3262
|
return txBlock.moveCall(
|
|
3197
3263
|
`${spoolIds.spoolPkg}::user::redeem_rewards`,
|
|
3198
|
-
[stakePoolId, rewardPoolId, stakeAccount,
|
|
3264
|
+
[stakePoolId, rewardPoolId, stakeAccount, import_utils9.SUI_CLOCK_OBJECT_ID],
|
|
3199
3265
|
[marketCoinType, rewardCoinType]
|
|
3200
3266
|
);
|
|
3201
3267
|
}
|
|
@@ -3335,7 +3401,7 @@ var ScallopBuilder = class {
|
|
|
3335
3401
|
address: this.address,
|
|
3336
3402
|
query: this.query
|
|
3337
3403
|
});
|
|
3338
|
-
this.walletAddress = (0,
|
|
3404
|
+
this.walletAddress = (0, import_utils10.normalizeSuiAddress)(
|
|
3339
3405
|
params?.walletAddress || this.suiKit.currentAddress()
|
|
3340
3406
|
);
|
|
3341
3407
|
this.isTestnet = params.networkType ? params.networkType === "testnet" : false;
|
|
@@ -3431,7 +3497,7 @@ var ScallopClient = class {
|
|
|
3431
3497
|
query: this.query,
|
|
3432
3498
|
utils: this.utils
|
|
3433
3499
|
});
|
|
3434
|
-
this.walletAddress = (0,
|
|
3500
|
+
this.walletAddress = (0, import_utils11.normalizeSuiAddress)(
|
|
3435
3501
|
params?.walletAddress || this.suiKit.currentAddress()
|
|
3436
3502
|
);
|
|
3437
3503
|
}
|
|
@@ -3938,8 +4004,10 @@ var Scallop = class {
|
|
|
3938
4004
|
ScallopUtils,
|
|
3939
4005
|
assetCoins,
|
|
3940
4006
|
coinDecimals,
|
|
4007
|
+
coinIds,
|
|
3941
4008
|
marketCoins,
|
|
3942
4009
|
rewardCoins,
|
|
3943
|
-
stakeMarketCoins
|
|
4010
|
+
stakeMarketCoins,
|
|
4011
|
+
wormholeCoinIds
|
|
3944
4012
|
});
|
|
3945
4013
|
//# sourceMappingURL=index.js.map
|