@sodax/sdk 1.2.1-beta → 1.2.2-beta
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/index.cjs +46 -114
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +46 -114
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -17712,37 +17712,18 @@ var StakingService = class {
|
|
|
17712
17712
|
if (params.action === "stake" || params.action === "unstake" || params.action === "instantUnstake") {
|
|
17713
17713
|
invariant6__default.default(params.amount > 0n, "Amount must be greater than 0");
|
|
17714
17714
|
const walletAddress = await spokeProvider.walletProvider.getWalletAddress();
|
|
17715
|
-
const targetToken = params.action === "stake" || spokeProvider
|
|
17715
|
+
const targetToken = params.action === "stake" || !isHubSpokeProvider(spokeProvider, this.hubProvider) ? spokeProvider.chainConfig.supportedTokens.SODA?.address : this.hubProvider.chainConfig.addresses.xSoda;
|
|
17716
17716
|
invariant6__default.default(targetToken, "Target token not found");
|
|
17717
|
-
if (isEvmSpokeProviderType(spokeProvider)) {
|
|
17718
|
-
const
|
|
17719
|
-
targetToken,
|
|
17720
|
-
params.amount,
|
|
17717
|
+
if (isEvmSpokeProviderType(spokeProvider) || isSonicSpokeProviderType(spokeProvider)) {
|
|
17718
|
+
const spender = isHubSpokeProvider(spokeProvider, this.hubProvider) ? await HubService.getUserRouter(
|
|
17721
17719
|
walletAddress,
|
|
17722
|
-
|
|
17723
|
-
|
|
17724
|
-
);
|
|
17725
|
-
if (!allowanceResult.ok) {
|
|
17726
|
-
return {
|
|
17727
|
-
ok: false,
|
|
17728
|
-
error: {
|
|
17729
|
-
code: "ALLOWANCE_CHECK_FAILED",
|
|
17730
|
-
error: allowanceResult.error
|
|
17731
|
-
}
|
|
17732
|
-
};
|
|
17733
|
-
}
|
|
17734
|
-
return {
|
|
17735
|
-
ok: true,
|
|
17736
|
-
value: allowanceResult.value
|
|
17737
|
-
};
|
|
17738
|
-
}
|
|
17739
|
-
if (isSonicSpokeProviderType(spokeProvider)) {
|
|
17740
|
-
const userRouter = await SonicSpokeService.getUserRouter(walletAddress, spokeProvider);
|
|
17720
|
+
this.hubProvider
|
|
17721
|
+
) : spokeProvider.chainConfig.addresses.assetManager;
|
|
17741
17722
|
const allowanceResult = await Erc20Service.isAllowanceValid(
|
|
17742
17723
|
targetToken,
|
|
17743
17724
|
params.amount,
|
|
17744
17725
|
walletAddress,
|
|
17745
|
-
|
|
17726
|
+
spender,
|
|
17746
17727
|
spokeProvider
|
|
17747
17728
|
);
|
|
17748
17729
|
if (!allowanceResult.ok) {
|
|
@@ -17803,13 +17784,17 @@ var StakingService = class {
|
|
|
17803
17784
|
if (params.action === "stake" || params.action === "unstake" || params.action === "instantUnstake") {
|
|
17804
17785
|
invariant6__default.default(params.amount > 0n, "Amount must be greater than 0");
|
|
17805
17786
|
const walletAddress = await spokeProvider.walletProvider.getWalletAddress();
|
|
17806
|
-
const targetToken = params.action === "stake" || spokeProvider
|
|
17787
|
+
const targetToken = params.action === "stake" || !isHubSpokeProvider(spokeProvider, this.hubProvider) ? spokeProvider.chainConfig.supportedTokens.SODA?.address : this.hubProvider.chainConfig.addresses.xSoda;
|
|
17807
17788
|
invariant6__default.default(targetToken, "Target token not found");
|
|
17808
|
-
if (isEvmSpokeProviderType(spokeProvider)) {
|
|
17789
|
+
if (isEvmSpokeProviderType(spokeProvider) || isSonicSpokeProviderType(spokeProvider)) {
|
|
17790
|
+
const spender = isHubSpokeProvider(spokeProvider, this.hubProvider) ? await HubService.getUserRouter(
|
|
17791
|
+
walletAddress,
|
|
17792
|
+
this.hubProvider
|
|
17793
|
+
) : spokeProvider.chainConfig.addresses.assetManager;
|
|
17809
17794
|
const result = await Erc20Service.approve(
|
|
17810
17795
|
targetToken,
|
|
17811
17796
|
params.amount,
|
|
17812
|
-
|
|
17797
|
+
spender,
|
|
17813
17798
|
spokeProvider,
|
|
17814
17799
|
raw
|
|
17815
17800
|
);
|
|
@@ -17818,17 +17803,6 @@ var StakingService = class {
|
|
|
17818
17803
|
value: result
|
|
17819
17804
|
};
|
|
17820
17805
|
}
|
|
17821
|
-
if (isSonicSpokeProviderType(spokeProvider)) {
|
|
17822
|
-
const userRouter = await SonicSpokeService.getUserRouter(
|
|
17823
|
-
walletAddress,
|
|
17824
|
-
spokeProvider
|
|
17825
|
-
);
|
|
17826
|
-
const result = await Erc20Service.approve(targetToken, params.amount, userRouter, spokeProvider, raw);
|
|
17827
|
-
return {
|
|
17828
|
-
ok: true,
|
|
17829
|
-
value: result
|
|
17830
|
-
};
|
|
17831
|
-
}
|
|
17832
17806
|
if (isStellarSpokeProviderType(spokeProvider)) {
|
|
17833
17807
|
const result = await StellarSpokeService.requestTrustline(targetToken, params.amount, spokeProvider, raw);
|
|
17834
17808
|
return {
|
|
@@ -17888,7 +17862,7 @@ var StakingService = class {
|
|
|
17888
17862
|
};
|
|
17889
17863
|
}
|
|
17890
17864
|
let hubTxHash = null;
|
|
17891
|
-
if (spokeProvider
|
|
17865
|
+
if (!isHubSpokeProvider(spokeProvider, this.hubProvider)) {
|
|
17892
17866
|
const packetResult = await relayTxAndWaitPacket(
|
|
17893
17867
|
txResult.value,
|
|
17894
17868
|
spokeProvider instanceof SolanaSpokeProvider ? txResult.data : void 0,
|
|
@@ -17945,16 +17919,12 @@ var StakingService = class {
|
|
|
17945
17919
|
invariant6__default.default(sodaToken, "SODA token not found");
|
|
17946
17920
|
const sodaAsset = this.configService.getHubAssetInfo(spokeProvider.chainConfig.chain.id, sodaToken.address);
|
|
17947
17921
|
invariant6__default.default(sodaAsset, "SODA asset not found");
|
|
17948
|
-
const hubWallet = await
|
|
17922
|
+
const hubWallet = await HubService.getUserHubWalletAddress(
|
|
17949
17923
|
walletAddress,
|
|
17950
|
-
spokeProvider,
|
|
17924
|
+
spokeProvider.chainConfig.chain.id,
|
|
17951
17925
|
this.hubProvider
|
|
17952
17926
|
);
|
|
17953
|
-
|
|
17954
|
-
if (spokeProvider.chainConfig.chain.id === this.hubProvider.chainConfig.chain.id) {
|
|
17955
|
-
to = walletAddress;
|
|
17956
|
-
}
|
|
17957
|
-
const data = this.buildStakeData(sodaAsset, to, params);
|
|
17927
|
+
const data = this.buildStakeData(sodaAsset, hubWallet, params);
|
|
17958
17928
|
const txResult = await SpokeService.deposit(
|
|
17959
17929
|
{
|
|
17960
17930
|
from: walletAddress,
|
|
@@ -18025,7 +17995,7 @@ var StakingService = class {
|
|
|
18025
17995
|
};
|
|
18026
17996
|
}
|
|
18027
17997
|
let hubTxHash = null;
|
|
18028
|
-
if (spokeProvider
|
|
17998
|
+
if (!isHubSpokeProvider(spokeProvider, this.hubProvider)) {
|
|
18029
17999
|
const packetResult = await relayTxAndWaitPacket(
|
|
18030
18000
|
txResult.value,
|
|
18031
18001
|
spokeProvider instanceof SolanaSpokeProvider ? txResult.data : void 0,
|
|
@@ -18077,11 +18047,10 @@ var StakingService = class {
|
|
|
18077
18047
|
raw
|
|
18078
18048
|
}) {
|
|
18079
18049
|
try {
|
|
18080
|
-
const isHub = this.hubProvider.chainConfig.chain.id === spokeProvider.chainConfig.chain.id;
|
|
18081
18050
|
const walletAddress = await spokeProvider.walletProvider.getWalletAddress();
|
|
18082
|
-
const hubWallet = await
|
|
18051
|
+
const hubWallet = await HubService.getUserHubWalletAddress(
|
|
18083
18052
|
walletAddress,
|
|
18084
|
-
spokeProvider,
|
|
18053
|
+
spokeProvider.chainConfig.chain.id,
|
|
18085
18054
|
this.hubProvider
|
|
18086
18055
|
);
|
|
18087
18056
|
const xSoda = this.hubProvider.chainConfig.addresses.xSoda;
|
|
@@ -18091,23 +18060,7 @@ var StakingService = class {
|
|
|
18091
18060
|
this.hubProvider.publicClient
|
|
18092
18061
|
);
|
|
18093
18062
|
const data = this.buildUnstakeData(hubWallet, params, xSoda, underlyingSodaAmount);
|
|
18094
|
-
|
|
18095
|
-
if (isHub) {
|
|
18096
|
-
txResult = await SpokeService.deposit(
|
|
18097
|
-
{
|
|
18098
|
-
from: walletAddress,
|
|
18099
|
-
to: hubWallet,
|
|
18100
|
-
token: this.hubProvider.chainConfig.addresses.xSoda,
|
|
18101
|
-
amount: params.amount,
|
|
18102
|
-
data
|
|
18103
|
-
},
|
|
18104
|
-
spokeProvider,
|
|
18105
|
-
this.hubProvider,
|
|
18106
|
-
raw
|
|
18107
|
-
);
|
|
18108
|
-
} else {
|
|
18109
|
-
txResult = await SpokeService.callWallet(hubWallet, data, spokeProvider, this.hubProvider, raw);
|
|
18110
|
-
}
|
|
18063
|
+
const txResult = await SpokeService.callWallet(hubWallet, data, spokeProvider, this.hubProvider, raw);
|
|
18111
18064
|
return {
|
|
18112
18065
|
ok: true,
|
|
18113
18066
|
value: txResult,
|
|
@@ -18161,7 +18114,7 @@ var StakingService = class {
|
|
|
18161
18114
|
};
|
|
18162
18115
|
}
|
|
18163
18116
|
let hubTxHash = null;
|
|
18164
|
-
if (spokeProvider
|
|
18117
|
+
if (!isHubSpokeProvider(spokeProvider, this.hubProvider)) {
|
|
18165
18118
|
const packetResult = await relayTxAndWaitPacket(
|
|
18166
18119
|
txResult.value,
|
|
18167
18120
|
spokeProvider instanceof SolanaSpokeProvider ? txResult.data : void 0,
|
|
@@ -18211,11 +18164,10 @@ var StakingService = class {
|
|
|
18211
18164
|
raw
|
|
18212
18165
|
}) {
|
|
18213
18166
|
try {
|
|
18214
|
-
const isHub = this.hubProvider.chainConfig.chain.id === spokeProvider.chainConfig.chain.id;
|
|
18215
18167
|
const walletAddress = await spokeProvider.walletProvider.getWalletAddress();
|
|
18216
|
-
const hubWallet = await
|
|
18168
|
+
const hubWallet = await HubService.getUserHubWalletAddress(
|
|
18217
18169
|
walletAddress,
|
|
18218
|
-
spokeProvider,
|
|
18170
|
+
spokeProvider.chainConfig.chain.id,
|
|
18219
18171
|
this.hubProvider
|
|
18220
18172
|
);
|
|
18221
18173
|
const sodaToken = spokeProvider.chainConfig.supportedTokens.SODA;
|
|
@@ -18228,23 +18180,7 @@ var StakingService = class {
|
|
|
18228
18180
|
encodeAddress(spokeProvider.chainConfig.chain.id, walletAddress),
|
|
18229
18181
|
params
|
|
18230
18182
|
);
|
|
18231
|
-
|
|
18232
|
-
if (isHub) {
|
|
18233
|
-
txResult = await SpokeService.deposit(
|
|
18234
|
-
{
|
|
18235
|
-
from: walletAddress,
|
|
18236
|
-
to: hubWallet,
|
|
18237
|
-
token: this.hubProvider.chainConfig.addresses.xSoda,
|
|
18238
|
-
amount: params.amount,
|
|
18239
|
-
data
|
|
18240
|
-
},
|
|
18241
|
-
spokeProvider,
|
|
18242
|
-
this.hubProvider,
|
|
18243
|
-
raw
|
|
18244
|
-
);
|
|
18245
|
-
} else {
|
|
18246
|
-
txResult = await SpokeService.callWallet(hubWallet, data, spokeProvider, this.hubProvider, raw);
|
|
18247
|
-
}
|
|
18183
|
+
const txResult = await SpokeService.callWallet(hubWallet, data, spokeProvider, this.hubProvider, raw);
|
|
18248
18184
|
return {
|
|
18249
18185
|
ok: true,
|
|
18250
18186
|
value: txResult,
|
|
@@ -18310,7 +18246,7 @@ var StakingService = class {
|
|
|
18310
18246
|
};
|
|
18311
18247
|
}
|
|
18312
18248
|
let hubTxHash = null;
|
|
18313
|
-
if (spokeProvider
|
|
18249
|
+
if (!isHubSpokeProvider(spokeProvider, this.hubProvider)) {
|
|
18314
18250
|
const packetResult = await relayTxAndWaitPacket(
|
|
18315
18251
|
txResult.value,
|
|
18316
18252
|
spokeProvider instanceof SolanaSpokeProvider ? txResult.data : void 0,
|
|
@@ -18361,9 +18297,9 @@ var StakingService = class {
|
|
|
18361
18297
|
}) {
|
|
18362
18298
|
try {
|
|
18363
18299
|
const walletAddress = await spokeProvider.walletProvider.getWalletAddress();
|
|
18364
|
-
const hubWallet = await
|
|
18300
|
+
const hubWallet = await HubService.getUserHubWalletAddress(
|
|
18365
18301
|
walletAddress,
|
|
18366
|
-
spokeProvider,
|
|
18302
|
+
spokeProvider.chainConfig.chain.id,
|
|
18367
18303
|
this.hubProvider
|
|
18368
18304
|
);
|
|
18369
18305
|
const sodaToken = spokeProvider.chainConfig.supportedTokens.SODA;
|
|
@@ -18446,7 +18382,7 @@ var StakingService = class {
|
|
|
18446
18382
|
};
|
|
18447
18383
|
}
|
|
18448
18384
|
let hubTxHash = null;
|
|
18449
|
-
if (spokeProvider
|
|
18385
|
+
if (!isHubSpokeProvider(spokeProvider, this.hubProvider)) {
|
|
18450
18386
|
const packetResult = await relayTxAndWaitPacket(
|
|
18451
18387
|
txResult.value,
|
|
18452
18388
|
spokeProvider instanceof SolanaSpokeProvider ? txResult.data : void 0,
|
|
@@ -18497,16 +18433,11 @@ var StakingService = class {
|
|
|
18497
18433
|
}) {
|
|
18498
18434
|
try {
|
|
18499
18435
|
const walletAddress = await spokeProvider.walletProvider.getWalletAddress();
|
|
18500
|
-
|
|
18501
|
-
|
|
18502
|
-
|
|
18503
|
-
|
|
18504
|
-
|
|
18505
|
-
walletAddress,
|
|
18506
|
-
spokeProvider,
|
|
18507
|
-
this.hubProvider
|
|
18508
|
-
);
|
|
18509
|
-
}
|
|
18436
|
+
const hubWallet = await HubService.getUserHubWalletAddress(
|
|
18437
|
+
walletAddress,
|
|
18438
|
+
spokeProvider.chainConfig.chain.id,
|
|
18439
|
+
this.hubProvider
|
|
18440
|
+
);
|
|
18510
18441
|
const data = await this.buildCancelUnstakeData(params, hubWallet);
|
|
18511
18442
|
const txResult = await SpokeService.callWallet(hubWallet, data, spokeProvider, this.hubProvider, raw);
|
|
18512
18443
|
return {
|
|
@@ -18562,12 +18493,9 @@ var StakingService = class {
|
|
|
18562
18493
|
async getStakingInfoFromSpoke(spokeProvider) {
|
|
18563
18494
|
try {
|
|
18564
18495
|
const walletAddress = await spokeProvider.walletProvider.getWalletAddress();
|
|
18565
|
-
|
|
18566
|
-
return this.getStakingInfo(walletAddress);
|
|
18567
|
-
}
|
|
18568
|
-
const hubWallet = await WalletAbstractionService.getUserAbstractedWalletAddress(
|
|
18496
|
+
const hubWallet = await HubService.getUserHubWalletAddress(
|
|
18569
18497
|
walletAddress,
|
|
18570
|
-
spokeProvider,
|
|
18498
|
+
spokeProvider.chainConfig.chain.id,
|
|
18571
18499
|
this.hubProvider
|
|
18572
18500
|
);
|
|
18573
18501
|
return this.getStakingInfo(hubWallet);
|
|
@@ -18591,8 +18519,12 @@ var StakingService = class {
|
|
|
18591
18519
|
invariant6__default.default(userAddress, "User address is required");
|
|
18592
18520
|
const hubConfig = getHubChainConfig();
|
|
18593
18521
|
const xSoda = hubConfig.addresses.xSoda;
|
|
18594
|
-
const totalUnderlying = await
|
|
18595
|
-
|
|
18522
|
+
const [totalUnderlying, userXSodaShares] = await Promise.all([
|
|
18523
|
+
StakingLogic.getXSodaTotalAssets(xSoda, this.hubProvider.publicClient),
|
|
18524
|
+
// Get total assets in xSoda vault (total underlying SODA)
|
|
18525
|
+
this.getXSodaBalance(xSoda, userAddress)
|
|
18526
|
+
// Get user's raw xSODA shares
|
|
18527
|
+
]);
|
|
18596
18528
|
const userXSodaValue = await StakingLogic.convertXSodaSharesToSoda(
|
|
18597
18529
|
xSoda,
|
|
18598
18530
|
userXSodaShares,
|
|
@@ -18635,9 +18567,9 @@ var StakingService = class {
|
|
|
18635
18567
|
userAddress = param;
|
|
18636
18568
|
} else {
|
|
18637
18569
|
const walletAddress = await param.walletProvider.getWalletAddress();
|
|
18638
|
-
userAddress = await
|
|
18570
|
+
userAddress = await HubService.getUserHubWalletAddress(
|
|
18639
18571
|
walletAddress,
|
|
18640
|
-
param,
|
|
18572
|
+
param.chainConfig.chain.id,
|
|
18641
18573
|
this.hubProvider
|
|
18642
18574
|
);
|
|
18643
18575
|
}
|
|
@@ -18740,9 +18672,9 @@ var StakingService = class {
|
|
|
18740
18672
|
userAddress = param;
|
|
18741
18673
|
} else {
|
|
18742
18674
|
const walletAddress = await param.walletProvider.getWalletAddress();
|
|
18743
|
-
userAddress = await
|
|
18675
|
+
userAddress = await HubService.getUserHubWalletAddress(
|
|
18744
18676
|
walletAddress,
|
|
18745
|
-
param,
|
|
18677
|
+
param.chainConfig.chain.id,
|
|
18746
18678
|
this.hubProvider
|
|
18747
18679
|
);
|
|
18748
18680
|
}
|