@reyaxyz/sdk 0.114.3 → 0.115.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/services/token/getBalanceByTokenAddress.js +74 -1
- package/dist/services/token/getBalanceByTokenAddress.js.map +1 -1
- package/dist/services/token/types.js.map +1 -1
- package/dist/types/services/token/getBalanceByTokenAddress.d.ts +2 -1
- package/dist/types/services/token/getBalanceByTokenAddress.d.ts.map +1 -1
- package/dist/types/services/token/types.d.ts +9 -0
- package/dist/types/services/token/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/services/token/getBalanceByTokenAddress.ts +85 -0
- package/src/services/token/types.ts +10 -0
package/README.md
CHANGED
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
|
|
7
7
|
| Statements | Branches | Functions | Lines |
|
|
8
8
|
| --------------------------- | ----------------------- | ------------------------- | ----------------- |
|
|
9
|
-
|  |  |  |  |
|
|
10
10
|
|
|
@@ -47,7 +47,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
47
47
|
}
|
|
48
48
|
};
|
|
49
49
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
-
exports.getBalancesForBridgeMA = exports.getBalancesForBridgeLP = exports.getBalanceByTokenAddress = void 0;
|
|
50
|
+
exports.getBalancesForBridgeMA = exports.getBalancesForBridgeLPV2 = exports.getBalancesForBridgeLP = exports.getBalanceByTokenAddress = void 0;
|
|
51
51
|
var common_1 = require("@reyaxyz/common");
|
|
52
52
|
var config_1 = require("../../config");
|
|
53
53
|
var getBalanceByTokenAddress = function (_a) {
|
|
@@ -122,6 +122,79 @@ var getBalancesForBridgeLP = function (_a) {
|
|
|
122
122
|
});
|
|
123
123
|
};
|
|
124
124
|
exports.getBalancesForBridgeLP = getBalancesForBridgeLP;
|
|
125
|
+
var getBalancesForBridgeLPV2 = function (_a) {
|
|
126
|
+
var walletAddress = _a.walletAddress;
|
|
127
|
+
return __awaiter(void 0, void 0, void 0, function () {
|
|
128
|
+
var chains, reyaNetwork, tokenNames, balancePromises, balancesArray, balances;
|
|
129
|
+
return __generator(this, function (_b) {
|
|
130
|
+
switch (_b.label) {
|
|
131
|
+
case 0:
|
|
132
|
+
chains = (0, common_1.getMoneyInOutNetworks)((0, config_1.getSdkEnvironment)());
|
|
133
|
+
reyaNetwork = (0, common_1.getReyaNetwork)((0, config_1.getSdkEnvironment)());
|
|
134
|
+
chains.push(reyaNetwork);
|
|
135
|
+
tokenNames = ['RUSD', 'DEUSD', 'SDEUSD'];
|
|
136
|
+
balancePromises = chains.map(function (chain) { return __awaiter(void 0, void 0, void 0, function () {
|
|
137
|
+
var tokenBalances;
|
|
138
|
+
return __generator(this, function (_a) {
|
|
139
|
+
switch (_a.label) {
|
|
140
|
+
case 0: return [4 /*yield*/, Promise.all(tokenNames.map(function (tokenName) { return __awaiter(void 0, void 0, void 0, function () {
|
|
141
|
+
var tokenInfo, balance, error_1;
|
|
142
|
+
return __generator(this, function (_a) {
|
|
143
|
+
switch (_a.label) {
|
|
144
|
+
case 0:
|
|
145
|
+
_a.trys.push([0, 2, , 3]);
|
|
146
|
+
tokenInfo = chain === reyaNetwork || tokenName !== 'RUSD'
|
|
147
|
+
? (0, common_1.getTokenInfoByName)(tokenName, chain)
|
|
148
|
+
: (0, common_1.getRUSDUnderlyingTokenInfo)(chain);
|
|
149
|
+
return [4 /*yield*/, (0, common_1.getERC20BalanceBatch)({
|
|
150
|
+
tokenAddress: tokenInfo.address,
|
|
151
|
+
tokenDecimals: tokenInfo.decimals,
|
|
152
|
+
walletAddress: walletAddress,
|
|
153
|
+
chain: chain,
|
|
154
|
+
})];
|
|
155
|
+
case 1:
|
|
156
|
+
balance = _a.sent();
|
|
157
|
+
return [2 /*return*/, { tokenName: tokenName, tokenInfo: tokenInfo, balance: balance }];
|
|
158
|
+
case 2:
|
|
159
|
+
error_1 = _a.sent();
|
|
160
|
+
// Skip this token if getTokenInfoByName throws an error
|
|
161
|
+
return [2 /*return*/, null];
|
|
162
|
+
case 3: return [2 /*return*/];
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
}); }))];
|
|
166
|
+
case 1:
|
|
167
|
+
tokenBalances = (_a.sent()).filter(function (tokenData) { return tokenData !== null; });
|
|
168
|
+
return [2 /*return*/, { chain: chain, tokenBalances: tokenBalances }];
|
|
169
|
+
}
|
|
170
|
+
});
|
|
171
|
+
}); });
|
|
172
|
+
return [4 /*yield*/, Promise.all(balancePromises)];
|
|
173
|
+
case 1:
|
|
174
|
+
balancesArray = _b.sent();
|
|
175
|
+
balances = balancesArray.reduce(function (acc, _a) {
|
|
176
|
+
var chain = _a.chain, tokenBalances = _a.tokenBalances;
|
|
177
|
+
if (tokenBalances.length > 0) {
|
|
178
|
+
acc[chain] = tokenBalances.reduce(function (tokenAcc, _a) {
|
|
179
|
+
var tokenName = _a.tokenName, tokenInfo = _a.tokenInfo, balance = _a.balance;
|
|
180
|
+
tokenAcc[tokenName] = {
|
|
181
|
+
tokenEntity: {
|
|
182
|
+
name: tokenInfo.name,
|
|
183
|
+
address: tokenInfo.address,
|
|
184
|
+
},
|
|
185
|
+
balance: balance,
|
|
186
|
+
};
|
|
187
|
+
return tokenAcc;
|
|
188
|
+
}, {});
|
|
189
|
+
}
|
|
190
|
+
return acc;
|
|
191
|
+
}, {});
|
|
192
|
+
return [2 /*return*/, balances];
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
};
|
|
197
|
+
exports.getBalancesForBridgeLPV2 = getBalancesForBridgeLPV2;
|
|
125
198
|
var getBalancesForBridgeMA = function (_a) {
|
|
126
199
|
var walletAddress = _a.walletAddress;
|
|
127
200
|
return __awaiter(void 0, void 0, void 0, function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBalanceByTokenAddress.js","sourceRoot":"/","sources":["services/token/getBalanceByTokenAddress.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n GetBalanceByTokenAddressParams,\n GetBalancesForBridgeLPResult,\n GetBalancesForBridgeMAResult,\n LPBalanceInfo,\n MABalanceInfo,\n} from './types';\nimport {\n getERC20Balance,\n GetBalancesForBridgeArgs,\n getMoneyInOutNetworks,\n getRUSDUnderlyingTokenInfo,\n MoneyInOutChainId,\n getTokenInfosByChain,\n getERC20BalanceBatch,\n getTokenInfoByAddress,\n getReyaNetwork,\n ReyaChainId,\n getTokenInfoByName,\n} from '@reyaxyz/common';\nimport { getSdkEnvironment } from '../../config';\n\nexport const getBalanceByTokenAddress = async ({\n signer,\n tokenAddress,\n}: GetBalanceByTokenAddressParams): Promise<number> => {\n const walletAddress = await signer.getAddress();\n const tokenInfo = getTokenInfoByAddress(tokenAddress);\n return await getERC20Balance({\n walletAddress,\n tokenDecimals: tokenInfo.decimals,\n subject: signer,\n tokenAddress: tokenAddress,\n });\n};\nexport const getBalancesForBridgeLP = async ({\n walletAddress,\n}: GetBalancesForBridgeArgs): Promise<GetBalancesForBridgeLPResult> => {\n const chains: (MoneyInOutChainId | ReyaChainId)[] = getMoneyInOutNetworks(\n getSdkEnvironment() as 'production' | 'test',\n );\n\n const reyaNetwork: ReyaChainId = getReyaNetwork(\n getSdkEnvironment() as 'production' | 'test',\n );\n\n chains.push(reyaNetwork);\n\n // Use Promise.all to fetch balances for all chains in parallel\n const balancePromises = chains.map(async (chain) => {\n const tokenInfo =\n chain === reyaNetwork\n ? getTokenInfoByName('RUSD', chain)\n : getRUSDUnderlyingTokenInfo(chain);\n const balance = await getERC20BalanceBatch({\n tokenAddress: tokenInfo.address,\n tokenDecimals: tokenInfo.decimals,\n walletAddress: walletAddress,\n chain: chain,\n });\n\n return { chain, tokenInfo, balance };\n });\n\n const balancesArray = await Promise.all(balancePromises);\n\n const balances = balancesArray.reduce<{\n [key in MoneyInOutChainId | ReyaChainId]?: LPBalanceInfo;\n }>((acc, { chain, tokenInfo, balance }) => {\n acc[chain] = {\n tokenEntity: {\n name: tokenInfo.name,\n address: tokenInfo.address,\n },\n balance: balance,\n };\n return acc;\n }, {});\n\n return balances;\n};\n\nexport const getBalancesForBridgeMA = async ({\n walletAddress,\n}: GetBalancesForBridgeArgs): Promise<GetBalancesForBridgeMAResult> => {\n const moneyInOutChainIds: MoneyInOutChainId[] = getMoneyInOutNetworks(\n getSdkEnvironment() as 'production' | 'test',\n );\n\n const balancePromises = moneyInOutChainIds\n .map((moneyInOutChainId) => {\n const tokenInfos = getTokenInfosByChain(moneyInOutChainId);\n return tokenInfos.map(async (tokenInfo) => {\n const balance = await getERC20BalanceBatch({\n tokenAddress: tokenInfo.address,\n tokenDecimals: tokenInfo.decimals,\n walletAddress: walletAddress,\n chain: moneyInOutChainId,\n });\n\n return {\n chain: moneyInOutChainId,\n tokenName: tokenInfo.name,\n balance: balance,\n };\n });\n })\n .reduce((acc, value) => acc.concat(value), []);\n\n const balancesArray = await Promise.all(balancePromises);\n\n const balances = balancesArray.reduce<{\n [key in MoneyInOutChainId]?: MABalanceInfo;\n }>((acc, { chain, tokenName, balance }) => {\n acc[chain] = {\n ...acc[chain],\n [tokenName]: balance,\n };\n\n return acc;\n }, {});\n\n return balances;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"getBalanceByTokenAddress.js","sourceRoot":"/","sources":["services/token/getBalanceByTokenAddress.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n GetBalanceByTokenAddressParams,\n GetBalancesForBridgeLPResult,\n GetBalancesForBridgeLPV2Result,\n GetBalancesForBridgeMAResult,\n LPBalanceInfo,\n LPBalanceInfoV2,\n MABalanceInfo,\n} from './types';\nimport {\n getERC20Balance,\n GetBalancesForBridgeArgs,\n getMoneyInOutNetworks,\n getRUSDUnderlyingTokenInfo,\n MoneyInOutChainId,\n getTokenInfosByChain,\n getERC20BalanceBatch,\n getTokenInfoByAddress,\n getReyaNetwork,\n ReyaChainId,\n getTokenInfoByName,\n TokenName,\n TokenInfo,\n} from '@reyaxyz/common';\nimport { getSdkEnvironment } from '../../config';\n\nexport const getBalanceByTokenAddress = async ({\n signer,\n tokenAddress,\n}: GetBalanceByTokenAddressParams): Promise<number> => {\n const walletAddress = await signer.getAddress();\n const tokenInfo = getTokenInfoByAddress(tokenAddress);\n return await getERC20Balance({\n walletAddress,\n tokenDecimals: tokenInfo.decimals,\n subject: signer,\n tokenAddress: tokenAddress,\n });\n};\nexport const getBalancesForBridgeLP = async ({\n walletAddress,\n}: GetBalancesForBridgeArgs): Promise<GetBalancesForBridgeLPResult> => {\n const chains: (MoneyInOutChainId | ReyaChainId)[] = getMoneyInOutNetworks(\n getSdkEnvironment() as 'production' | 'test',\n );\n\n const reyaNetwork: ReyaChainId = getReyaNetwork(\n getSdkEnvironment() as 'production' | 'test',\n );\n\n chains.push(reyaNetwork);\n\n // Use Promise.all to fetch balances for all chains in parallel\n const balancePromises = chains.map(async (chain) => {\n const tokenInfo =\n chain === reyaNetwork\n ? getTokenInfoByName('RUSD', chain)\n : getRUSDUnderlyingTokenInfo(chain);\n const balance = await getERC20BalanceBatch({\n tokenAddress: tokenInfo.address,\n tokenDecimals: tokenInfo.decimals,\n walletAddress: walletAddress,\n chain: chain,\n });\n\n return { chain, tokenInfo, balance };\n });\n\n const balancesArray = await Promise.all(balancePromises);\n\n const balances = balancesArray.reduce<{\n [key in MoneyInOutChainId | ReyaChainId]?: LPBalanceInfo;\n }>((acc, { chain, tokenInfo, balance }) => {\n acc[chain] = {\n tokenEntity: {\n name: tokenInfo.name,\n address: tokenInfo.address,\n },\n balance: balance,\n };\n return acc;\n }, {});\n\n return balances;\n};\n\nexport const getBalancesForBridgeLPV2 = async ({\n walletAddress,\n}: GetBalancesForBridgeArgs): Promise<GetBalancesForBridgeLPV2Result> => {\n const chains: (MoneyInOutChainId | ReyaChainId)[] = getMoneyInOutNetworks(\n getSdkEnvironment() as 'production' | 'test',\n );\n\n const reyaNetwork: ReyaChainId = getReyaNetwork(\n getSdkEnvironment() as 'production' | 'test',\n );\n\n chains.push(reyaNetwork);\n\n // List of token names to include\n const tokenNames: TokenName[] = ['RUSD', 'DEUSD', 'SDEUSD'];\n\n // Use Promise.all to fetch balances for all chains in parallel\n const balancePromises = chains.map(async (chain) => {\n const tokenBalances = (\n await Promise.all(\n tokenNames.map(async (tokenName) => {\n try {\n const tokenInfo =\n chain === reyaNetwork || tokenName !== 'RUSD'\n ? getTokenInfoByName(tokenName, chain)\n : getRUSDUnderlyingTokenInfo(chain);\n\n const balance = await getERC20BalanceBatch({\n tokenAddress: tokenInfo.address,\n tokenDecimals: tokenInfo.decimals,\n walletAddress: walletAddress,\n chain: chain,\n });\n\n return { tokenName, tokenInfo, balance };\n } catch (error) {\n // Skip this token if getTokenInfoByName throws an error\n return null;\n }\n }),\n )\n ).filter(\n (\n tokenData,\n ): tokenData is {\n tokenName: TokenName;\n tokenInfo: TokenInfo;\n balance: number;\n } => tokenData !== null,\n ); // Filter out null values\n\n return { chain, tokenBalances };\n });\n\n const balancesArray = await Promise.all(balancePromises);\n\n const balances = balancesArray.reduce<GetBalancesForBridgeLPV2Result>(\n (acc, { chain, tokenBalances }) => {\n if (tokenBalances.length > 0) {\n acc[chain] = tokenBalances.reduce<LPBalanceInfoV2>(\n (tokenAcc, { tokenName, tokenInfo, balance }) => {\n tokenAcc[tokenName] = {\n tokenEntity: {\n name: tokenInfo.name,\n address: tokenInfo.address,\n },\n balance: balance,\n };\n return tokenAcc;\n },\n {},\n );\n }\n return acc;\n },\n {},\n );\n\n return balances;\n};\n\nexport const getBalancesForBridgeMA = async ({\n walletAddress,\n}: GetBalancesForBridgeArgs): Promise<GetBalancesForBridgeMAResult> => {\n const moneyInOutChainIds: MoneyInOutChainId[] = getMoneyInOutNetworks(\n getSdkEnvironment() as 'production' | 'test',\n );\n\n const balancePromises = moneyInOutChainIds\n .map((moneyInOutChainId) => {\n const tokenInfos = getTokenInfosByChain(moneyInOutChainId);\n return tokenInfos.map(async (tokenInfo) => {\n const balance = await getERC20BalanceBatch({\n tokenAddress: tokenInfo.address,\n tokenDecimals: tokenInfo.decimals,\n walletAddress: walletAddress,\n chain: moneyInOutChainId,\n });\n\n return {\n chain: moneyInOutChainId,\n tokenName: tokenInfo.name,\n balance: balance,\n };\n });\n })\n .reduce((acc, value) => acc.concat(value), []);\n\n const balancesArray = await Promise.all(balancePromises);\n\n const balances = balancesArray.reduce<{\n [key in MoneyInOutChainId]?: MABalanceInfo;\n }>((acc, { chain, tokenName, balance }) => {\n acc[chain] = {\n ...acc[chain],\n [tokenName]: balance,\n };\n\n return acc;\n }, {});\n\n return balances;\n};\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"/","sources":["services/token/types.ts"],"names":[],"mappings":";;;AAKA,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,2CAAE,CAAA;IACF,qDAAO,CAAA;IACP,mDAAM,CAAA;AACR,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB","sourcesContent":["import { JsonRpcSigner, Signer } from 'ethers';\nimport { TokenEntity, TokenName } from '@reyaxyz/common';\n\nexport { GetBalancesForBridgeArgs } from '@reyaxyz/common';\n\nexport enum ApprovalType {\n LP,\n DEPOSIT,\n BRIDGE,\n}\n\nexport type ApproveTokenParams = {\n signer: Signer | JsonRpcSigner;\n tokenAddress: TokenEntity['address'];\n amount: number;\n type: ApprovalType;\n};\n\nexport type GetAllowanceParams = {\n signer: Signer | JsonRpcSigner;\n tokenAddress: TokenEntity['address'];\n type: ApprovalType;\n};\n\nexport type GetBalanceByTokenAddressParams = {\n signer: Signer | JsonRpcSigner;\n tokenAddress: TokenEntity['address'];\n};\n\nexport type GetRUSDUnderlyingSignerInfoParams = {\n signer: Signer | JsonRpcSigner;\n};\n\nexport type GetRUSDUnderlyingSignerInfoResult = {\n balance: number;\n rusdUnderlying: TokenEntity;\n};\n\nexport type LPBalanceInfo = {\n tokenEntity: TokenEntity;\n balance: number;\n};\n\nexport type GetBalancesForBridgeLPResult = {\n [chainId: string]: LPBalanceInfo;\n};\n\nexport type MABalanceInfo = { [tokenName: TokenName]: number };\n\nexport type GetBalancesForBridgeMAResult = {\n [chainId: string]: MABalanceInfo;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"/","sources":["services/token/types.ts"],"names":[],"mappings":";;;AAKA,IAAY,YAIX;AAJD,WAAY,YAAY;IACtB,2CAAE,CAAA;IACF,qDAAO,CAAA;IACP,mDAAM,CAAA;AACR,CAAC,EAJW,YAAY,4BAAZ,YAAY,QAIvB","sourcesContent":["import { JsonRpcSigner, Signer } from 'ethers';\nimport { TokenEntity, TokenName } from '@reyaxyz/common';\n\nexport { GetBalancesForBridgeArgs } from '@reyaxyz/common';\n\nexport enum ApprovalType {\n LP,\n DEPOSIT,\n BRIDGE,\n}\n\nexport type ApproveTokenParams = {\n signer: Signer | JsonRpcSigner;\n tokenAddress: TokenEntity['address'];\n amount: number;\n type: ApprovalType;\n};\n\nexport type GetAllowanceParams = {\n signer: Signer | JsonRpcSigner;\n tokenAddress: TokenEntity['address'];\n type: ApprovalType;\n};\n\nexport type GetBalanceByTokenAddressParams = {\n signer: Signer | JsonRpcSigner;\n tokenAddress: TokenEntity['address'];\n};\n\nexport type GetRUSDUnderlyingSignerInfoParams = {\n signer: Signer | JsonRpcSigner;\n};\n\nexport type GetRUSDUnderlyingSignerInfoResult = {\n balance: number;\n rusdUnderlying: TokenEntity;\n};\n\nexport type LPBalanceInfo = {\n tokenEntity: TokenEntity;\n balance: number;\n};\n\nexport type LPBalanceInfoV2 = {\n [tokenName: TokenName]: {\n tokenEntity: TokenEntity;\n balance: number;\n };\n};\n\nexport type GetBalancesForBridgeLPResult = {\n [chainId: string]: LPBalanceInfo;\n};\n\nexport type GetBalancesForBridgeLPV2Result = {\n [chainId: string]: LPBalanceInfoV2;\n};\nexport type MABalanceInfo = { [tokenName: TokenName]: number };\n\nexport type GetBalancesForBridgeMAResult = {\n [chainId: string]: MABalanceInfo;\n};\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { GetBalanceByTokenAddressParams, GetBalancesForBridgeLPResult, GetBalancesForBridgeMAResult } from './types';
|
|
1
|
+
import { GetBalanceByTokenAddressParams, GetBalancesForBridgeLPResult, GetBalancesForBridgeLPV2Result, GetBalancesForBridgeMAResult } from './types';
|
|
2
2
|
import { GetBalancesForBridgeArgs } from '@reyaxyz/common';
|
|
3
3
|
export declare const getBalanceByTokenAddress: ({ signer, tokenAddress, }: GetBalanceByTokenAddressParams) => Promise<number>;
|
|
4
4
|
export declare const getBalancesForBridgeLP: ({ walletAddress, }: GetBalancesForBridgeArgs) => Promise<GetBalancesForBridgeLPResult>;
|
|
5
|
+
export declare const getBalancesForBridgeLPV2: ({ walletAddress, }: GetBalancesForBridgeArgs) => Promise<GetBalancesForBridgeLPV2Result>;
|
|
5
6
|
export declare const getBalancesForBridgeMA: ({ walletAddress, }: GetBalancesForBridgeArgs) => Promise<GetBalancesForBridgeMAResult>;
|
|
6
7
|
//# sourceMappingURL=getBalanceByTokenAddress.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBalanceByTokenAddress.d.ts","sourceRoot":"/","sources":["services/token/getBalanceByTokenAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC5B,4BAA4B,
|
|
1
|
+
{"version":3,"file":"getBalanceByTokenAddress.d.ts","sourceRoot":"/","sources":["services/token/getBalanceByTokenAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,4BAA4B,EAC5B,8BAA8B,EAC9B,4BAA4B,EAI7B,MAAM,SAAS,CAAC;AACjB,OAAO,EAEL,wBAAwB,EAYzB,MAAM,iBAAiB,CAAC;AAGzB,eAAO,MAAM,wBAAwB,8BAGlC,8BAA8B,KAAG,QAAQ,MAAM,CASjD,CAAC;AACF,eAAO,MAAM,sBAAsB,uBAEhC,wBAAwB,KAAG,QAAQ,4BAA4B,CA2CjE,CAAC;AAEF,eAAO,MAAM,wBAAwB,uBAElC,wBAAwB,KAAG,QAAQ,8BAA8B,CA6EnE,CAAC;AAEF,eAAO,MAAM,sBAAsB,uBAEhC,wBAAwB,KAAG,QAAQ,4BAA4B,CAuCjE,CAAC"}
|
|
@@ -32,9 +32,18 @@ export type LPBalanceInfo = {
|
|
|
32
32
|
tokenEntity: TokenEntity;
|
|
33
33
|
balance: number;
|
|
34
34
|
};
|
|
35
|
+
export type LPBalanceInfoV2 = {
|
|
36
|
+
[tokenName: TokenName]: {
|
|
37
|
+
tokenEntity: TokenEntity;
|
|
38
|
+
balance: number;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
35
41
|
export type GetBalancesForBridgeLPResult = {
|
|
36
42
|
[chainId: string]: LPBalanceInfo;
|
|
37
43
|
};
|
|
44
|
+
export type GetBalancesForBridgeLPV2Result = {
|
|
45
|
+
[chainId: string]: LPBalanceInfoV2;
|
|
46
|
+
};
|
|
38
47
|
export type MABalanceInfo = {
|
|
39
48
|
[tokenName: TokenName]: number;
|
|
40
49
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"/","sources":["services/token/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,oBAAY,YAAY;IACtB,EAAE,IAAA;IACF,OAAO,IAAA;IACP,MAAM,IAAA;CACP;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,WAAW,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAAE,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAA;CAAE,CAAC;AAE/D,MAAM,MAAM,4BAA4B,GAAG;IACzC,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC;CAClC,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"/","sources":["services/token/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAE3D,oBAAY,YAAY;IACtB,EAAE,IAAA;IACF,OAAO,IAAA;IACP,MAAM,IAAA;CACP;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrC,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;IAC/B,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,MAAM,EAAE,MAAM,GAAG,aAAa,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,WAAW,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,WAAW,EAAE,WAAW,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,CAAC,SAAS,EAAE,SAAS,GAAG;QACtB,WAAW,EAAE,WAAW,CAAC;QACzB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,4BAA4B,GAAG;IACzC,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG;IAC3C,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAAC;CACpC,CAAC;AACF,MAAM,MAAM,aAAa,GAAG;IAAE,CAAC,SAAS,EAAE,SAAS,GAAG,MAAM,CAAA;CAAE,CAAC;AAE/D,MAAM,MAAM,4BAA4B,GAAG;IACzC,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,CAAC;CAClC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reyaxyz/sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.115.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org"
|
|
@@ -29,11 +29,11 @@
|
|
|
29
29
|
"generate:coverage-badges": "npx istanbul-badges-readme --silent"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@reyaxyz/common": "0.
|
|
32
|
+
"@reyaxyz/common": "0.215.0",
|
|
33
33
|
"axios": "^1.6.2",
|
|
34
34
|
"bignumber.js": "^9.1.2",
|
|
35
35
|
"ethers": "6.9.0"
|
|
36
36
|
},
|
|
37
37
|
"packageManager": "pnpm@8.3.1",
|
|
38
|
-
"gitHead": "
|
|
38
|
+
"gitHead": "38dbec8bddffce38ae9658470df563fdd39a2f70"
|
|
39
39
|
}
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import {
|
|
2
2
|
GetBalanceByTokenAddressParams,
|
|
3
3
|
GetBalancesForBridgeLPResult,
|
|
4
|
+
GetBalancesForBridgeLPV2Result,
|
|
4
5
|
GetBalancesForBridgeMAResult,
|
|
5
6
|
LPBalanceInfo,
|
|
7
|
+
LPBalanceInfoV2,
|
|
6
8
|
MABalanceInfo,
|
|
7
9
|
} from './types';
|
|
8
10
|
import {
|
|
@@ -17,6 +19,8 @@ import {
|
|
|
17
19
|
getReyaNetwork,
|
|
18
20
|
ReyaChainId,
|
|
19
21
|
getTokenInfoByName,
|
|
22
|
+
TokenName,
|
|
23
|
+
TokenInfo,
|
|
20
24
|
} from '@reyaxyz/common';
|
|
21
25
|
import { getSdkEnvironment } from '../../config';
|
|
22
26
|
|
|
@@ -80,6 +84,87 @@ export const getBalancesForBridgeLP = async ({
|
|
|
80
84
|
return balances;
|
|
81
85
|
};
|
|
82
86
|
|
|
87
|
+
export const getBalancesForBridgeLPV2 = async ({
|
|
88
|
+
walletAddress,
|
|
89
|
+
}: GetBalancesForBridgeArgs): Promise<GetBalancesForBridgeLPV2Result> => {
|
|
90
|
+
const chains: (MoneyInOutChainId | ReyaChainId)[] = getMoneyInOutNetworks(
|
|
91
|
+
getSdkEnvironment() as 'production' | 'test',
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
const reyaNetwork: ReyaChainId = getReyaNetwork(
|
|
95
|
+
getSdkEnvironment() as 'production' | 'test',
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
chains.push(reyaNetwork);
|
|
99
|
+
|
|
100
|
+
// List of token names to include
|
|
101
|
+
const tokenNames: TokenName[] = ['RUSD', 'DEUSD', 'SDEUSD'];
|
|
102
|
+
|
|
103
|
+
// Use Promise.all to fetch balances for all chains in parallel
|
|
104
|
+
const balancePromises = chains.map(async (chain) => {
|
|
105
|
+
const tokenBalances = (
|
|
106
|
+
await Promise.all(
|
|
107
|
+
tokenNames.map(async (tokenName) => {
|
|
108
|
+
try {
|
|
109
|
+
const tokenInfo =
|
|
110
|
+
chain === reyaNetwork || tokenName !== 'RUSD'
|
|
111
|
+
? getTokenInfoByName(tokenName, chain)
|
|
112
|
+
: getRUSDUnderlyingTokenInfo(chain);
|
|
113
|
+
|
|
114
|
+
const balance = await getERC20BalanceBatch({
|
|
115
|
+
tokenAddress: tokenInfo.address,
|
|
116
|
+
tokenDecimals: tokenInfo.decimals,
|
|
117
|
+
walletAddress: walletAddress,
|
|
118
|
+
chain: chain,
|
|
119
|
+
});
|
|
120
|
+
|
|
121
|
+
return { tokenName, tokenInfo, balance };
|
|
122
|
+
} catch (error) {
|
|
123
|
+
// Skip this token if getTokenInfoByName throws an error
|
|
124
|
+
return null;
|
|
125
|
+
}
|
|
126
|
+
}),
|
|
127
|
+
)
|
|
128
|
+
).filter(
|
|
129
|
+
(
|
|
130
|
+
tokenData,
|
|
131
|
+
): tokenData is {
|
|
132
|
+
tokenName: TokenName;
|
|
133
|
+
tokenInfo: TokenInfo;
|
|
134
|
+
balance: number;
|
|
135
|
+
} => tokenData !== null,
|
|
136
|
+
); // Filter out null values
|
|
137
|
+
|
|
138
|
+
return { chain, tokenBalances };
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
const balancesArray = await Promise.all(balancePromises);
|
|
142
|
+
|
|
143
|
+
const balances = balancesArray.reduce<GetBalancesForBridgeLPV2Result>(
|
|
144
|
+
(acc, { chain, tokenBalances }) => {
|
|
145
|
+
if (tokenBalances.length > 0) {
|
|
146
|
+
acc[chain] = tokenBalances.reduce<LPBalanceInfoV2>(
|
|
147
|
+
(tokenAcc, { tokenName, tokenInfo, balance }) => {
|
|
148
|
+
tokenAcc[tokenName] = {
|
|
149
|
+
tokenEntity: {
|
|
150
|
+
name: tokenInfo.name,
|
|
151
|
+
address: tokenInfo.address,
|
|
152
|
+
},
|
|
153
|
+
balance: balance,
|
|
154
|
+
};
|
|
155
|
+
return tokenAcc;
|
|
156
|
+
},
|
|
157
|
+
{},
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
return acc;
|
|
161
|
+
},
|
|
162
|
+
{},
|
|
163
|
+
);
|
|
164
|
+
|
|
165
|
+
return balances;
|
|
166
|
+
};
|
|
167
|
+
|
|
83
168
|
export const getBalancesForBridgeMA = async ({
|
|
84
169
|
walletAddress,
|
|
85
170
|
}: GetBalancesForBridgeArgs): Promise<GetBalancesForBridgeMAResult> => {
|
|
@@ -41,10 +41,20 @@ export type LPBalanceInfo = {
|
|
|
41
41
|
balance: number;
|
|
42
42
|
};
|
|
43
43
|
|
|
44
|
+
export type LPBalanceInfoV2 = {
|
|
45
|
+
[tokenName: TokenName]: {
|
|
46
|
+
tokenEntity: TokenEntity;
|
|
47
|
+
balance: number;
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
|
|
44
51
|
export type GetBalancesForBridgeLPResult = {
|
|
45
52
|
[chainId: string]: LPBalanceInfo;
|
|
46
53
|
};
|
|
47
54
|
|
|
55
|
+
export type GetBalancesForBridgeLPV2Result = {
|
|
56
|
+
[chainId: string]: LPBalanceInfoV2;
|
|
57
|
+
};
|
|
48
58
|
export type MABalanceInfo = { [tokenName: TokenName]: number };
|
|
49
59
|
|
|
50
60
|
export type GetBalancesForBridgeMAResult = {
|