@reyaxyz/sdk 0.149.13 → 0.149.15
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 +18 -8
- package/dist/services/token/getBalanceByTokenAddress.js.map +1 -1
- package/dist/types/services/token/getBalanceByTokenAddress.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/services/token/getBalanceByTokenAddress.ts +29 -13
package/README.md
CHANGED
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
|
|
7
7
|
| Statements | Branches | Functions | Lines |
|
|
8
8
|
| --------------------------- | ----------------------- | ------------------------- | ----------------- |
|
|
9
|
-
|  |  |  |  |
|
|
10
10
|
|
|
@@ -186,15 +186,17 @@ var getBalancesForBridgeMA = function (_a) {
|
|
|
186
186
|
.map(function (moneyInOutChainId) {
|
|
187
187
|
var tokenInfos = (0, common_1.getTokenInfosByChain)(moneyInOutChainId);
|
|
188
188
|
return tokenInfos.map(function (tokenInfo) { return __awaiter(void 0, void 0, void 0, function () {
|
|
189
|
-
var balance;
|
|
189
|
+
var balance, error_2;
|
|
190
190
|
return __generator(this, function (_a) {
|
|
191
191
|
switch (_a.label) {
|
|
192
|
-
case 0:
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
192
|
+
case 0:
|
|
193
|
+
_a.trys.push([0, 2, , 3]);
|
|
194
|
+
return [4 /*yield*/, (0, common_1.getERC20BalanceBatch)({
|
|
195
|
+
tokenAddress: tokenInfo.address,
|
|
196
|
+
tokenDecimals: tokenInfo.decimals,
|
|
197
|
+
walletAddress: walletAddress,
|
|
198
|
+
chain: moneyInOutChainId,
|
|
199
|
+
})];
|
|
198
200
|
case 1:
|
|
199
201
|
balance = _a.sent();
|
|
200
202
|
return [2 /*return*/, {
|
|
@@ -202,6 +204,14 @@ var getBalancesForBridgeMA = function (_a) {
|
|
|
202
204
|
tokenName: tokenInfo.name,
|
|
203
205
|
balance: balance,
|
|
204
206
|
}];
|
|
207
|
+
case 2:
|
|
208
|
+
error_2 = _a.sent();
|
|
209
|
+
// Skip this single token/chain on failure (e.g. an RPC outage on one
|
|
210
|
+
// chain) so the reads that did succeed still resolve. Without this, a
|
|
211
|
+
// bare Promise.all means one failed balanceOf rejects the whole call
|
|
212
|
+
// and blanks every chain/token. Mirrors getBalancesForBridgeLPV2.
|
|
213
|
+
return [2 /*return*/, null];
|
|
214
|
+
case 3: return [2 /*return*/];
|
|
205
215
|
}
|
|
206
216
|
});
|
|
207
217
|
}); });
|
|
@@ -209,7 +219,7 @@ var getBalancesForBridgeMA = function (_a) {
|
|
|
209
219
|
.reduce(function (acc, value) { return acc.concat(value); }, []);
|
|
210
220
|
return [4 /*yield*/, Promise.all(balancePromises)];
|
|
211
221
|
case 1:
|
|
212
|
-
balancesArray = _b.sent();
|
|
222
|
+
balancesArray = (_b.sent()).filter(function (tokenData) { return tokenData !== null; });
|
|
213
223
|
balances = balancesArray.reduce(function (acc, _a) {
|
|
214
224
|
var _b;
|
|
215
225
|
var chain = _a.chain, tokenName = _a.tokenName, balance = _a.balance;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getBalanceByTokenAddress.js","sourceRoot":"/","sources":["services/token/getBalanceByTokenAddress.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n GetBalancesForBridgeLPResult,\n GetBalancesForBridgeLPV2Result,\n GetBalancesForBridgeMAResult,\n LPBalanceInfo,\n LPBalanceInfoV2,\n MABalanceInfo,\n} from './types';\nimport {\n GetBalancesForBridgeArgs,\n getRUSDUnderlyingTokenInfo,\n MoneyInOutChainId,\n getTokenInfosByChain,\n getERC20BalanceBatch,\n ReyaChainId,\n getTokenInfoByName,\n TokenName,\n TokenInfo,\n getMoneyInOutNetworks,\n} from '@reyaxyz/common';\nimport { getReyaNetwork } from '../../utils/network';\n\nexport const getBalancesForBridgeLP = async ({\n walletAddress,\n}: GetBalancesForBridgeArgs): Promise<GetBalancesForBridgeLPResult> => {\n const reyaNetwork = getReyaNetwork();\n const chains: (MoneyInOutChainId | ReyaChainId)[] =\n getMoneyInOutNetworks(reyaNetwork);\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 reyaNetwork = getReyaNetwork();\n const chains: (MoneyInOutChainId | ReyaChainId)[] =\n getMoneyInOutNetworks(reyaNetwork);\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.name, 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 reyaNetwork = getReyaNetwork();\n const moneyInOutChainIds: MoneyInOutChainId[] =\n getMoneyInOutNetworks(reyaNetwork);\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 GetBalancesForBridgeLPResult,\n GetBalancesForBridgeLPV2Result,\n GetBalancesForBridgeMAResult,\n LPBalanceInfo,\n LPBalanceInfoV2,\n MABalanceInfo,\n} from './types';\nimport {\n GetBalancesForBridgeArgs,\n getRUSDUnderlyingTokenInfo,\n MoneyInOutChainId,\n getTokenInfosByChain,\n getERC20BalanceBatch,\n ReyaChainId,\n getTokenInfoByName,\n TokenName,\n TokenInfo,\n getMoneyInOutNetworks,\n} from '@reyaxyz/common';\nimport { getReyaNetwork } from '../../utils/network';\n\nexport const getBalancesForBridgeLP = async ({\n walletAddress,\n}: GetBalancesForBridgeArgs): Promise<GetBalancesForBridgeLPResult> => {\n const reyaNetwork = getReyaNetwork();\n const chains: (MoneyInOutChainId | ReyaChainId)[] =\n getMoneyInOutNetworks(reyaNetwork);\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 reyaNetwork = getReyaNetwork();\n const chains: (MoneyInOutChainId | ReyaChainId)[] =\n getMoneyInOutNetworks(reyaNetwork);\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.name, 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 reyaNetwork = getReyaNetwork();\n const moneyInOutChainIds: MoneyInOutChainId[] =\n getMoneyInOutNetworks(reyaNetwork);\n\n const balancePromises = moneyInOutChainIds\n .map((moneyInOutChainId) => {\n const tokenInfos = getTokenInfosByChain(moneyInOutChainId);\n return tokenInfos.map(async (tokenInfo) => {\n try {\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 } catch (error) {\n // Skip this single token/chain on failure (e.g. an RPC outage on one\n // chain) so the reads that did succeed still resolve. Without this, a\n // bare Promise.all means one failed balanceOf rejects the whole call\n // and blanks every chain/token. Mirrors getBalancesForBridgeLPV2.\n return null;\n }\n });\n })\n .reduce((acc, value) => acc.concat(value), []);\n\n const balancesArray = (await Promise.all(balancePromises)).filter(\n (\n tokenData,\n ): tokenData is {\n chain: MoneyInOutChainId;\n tokenName: TokenName;\n balance: number;\n } => tokenData !== null,\n );\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":"getBalanceByTokenAddress.d.ts","sourceRoot":"/","sources":["services/token/getBalanceByTokenAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,4BAA4B,EAI7B,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,wBAAwB,EAUzB,MAAM,iBAAiB,CAAC;AAGzB,eAAO,MAAM,sBAAsB,uBAEhC,wBAAwB,KAAG,QAAQ,4BAA4B,CAuCjE,CAAC;AAEF,eAAO,MAAM,wBAAwB,uBAElC,wBAAwB,KAAG,QAAQ,8BAA8B,CAyEnE,CAAC;AAEF,eAAO,MAAM,sBAAsB,uBAEhC,wBAAwB,KAAG,QAAQ,4BAA4B,
|
|
1
|
+
{"version":3,"file":"getBalanceByTokenAddress.d.ts","sourceRoot":"/","sources":["services/token/getBalanceByTokenAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,EAC5B,8BAA8B,EAC9B,4BAA4B,EAI7B,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,wBAAwB,EAUzB,MAAM,iBAAiB,CAAC;AAGzB,eAAO,MAAM,sBAAsB,uBAEhC,wBAAwB,KAAG,QAAQ,4BAA4B,CAuCjE,CAAC;AAEF,eAAO,MAAM,wBAAwB,uBAElC,wBAAwB,KAAG,QAAQ,8BAA8B,CAyEnE,CAAC;AAEF,eAAO,MAAM,sBAAsB,uBAEhC,wBAAwB,KAAG,QAAQ,4BAA4B,CAuDjE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reyaxyz/sdk",
|
|
3
|
-
"version": "0.149.
|
|
3
|
+
"version": "0.149.15",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org"
|
|
@@ -32,11 +32,11 @@
|
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@reyaxyz/api-v2-sdk": "0.307.1",
|
|
35
|
-
"@reyaxyz/common": "0.
|
|
35
|
+
"@reyaxyz/common": "0.355.0",
|
|
36
36
|
"axios": "1.6.2",
|
|
37
37
|
"bignumber.js": "9.1.2",
|
|
38
38
|
"ethers": "6.9.0"
|
|
39
39
|
},
|
|
40
40
|
"packageManager": "pnpm@8.3.1",
|
|
41
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "d71c7d4f6d64d18d67e006ec0417ddb21f6dff39"
|
|
42
42
|
}
|
|
@@ -151,23 +151,39 @@ export const getBalancesForBridgeMA = async ({
|
|
|
151
151
|
.map((moneyInOutChainId) => {
|
|
152
152
|
const tokenInfos = getTokenInfosByChain(moneyInOutChainId);
|
|
153
153
|
return tokenInfos.map(async (tokenInfo) => {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
154
|
+
try {
|
|
155
|
+
const balance = await getERC20BalanceBatch({
|
|
156
|
+
tokenAddress: tokenInfo.address,
|
|
157
|
+
tokenDecimals: tokenInfo.decimals,
|
|
158
|
+
walletAddress: walletAddress,
|
|
159
|
+
chain: moneyInOutChainId,
|
|
160
|
+
});
|
|
161
|
+
|
|
162
|
+
return {
|
|
163
|
+
chain: moneyInOutChainId,
|
|
164
|
+
tokenName: tokenInfo.name,
|
|
165
|
+
balance: balance,
|
|
166
|
+
};
|
|
167
|
+
} catch (error) {
|
|
168
|
+
// Skip this single token/chain on failure (e.g. an RPC outage on one
|
|
169
|
+
// chain) so the reads that did succeed still resolve. Without this, a
|
|
170
|
+
// bare Promise.all means one failed balanceOf rejects the whole call
|
|
171
|
+
// and blanks every chain/token. Mirrors getBalancesForBridgeLPV2.
|
|
172
|
+
return null;
|
|
173
|
+
}
|
|
166
174
|
});
|
|
167
175
|
})
|
|
168
176
|
.reduce((acc, value) => acc.concat(value), []);
|
|
169
177
|
|
|
170
|
-
const balancesArray = await Promise.all(balancePromises)
|
|
178
|
+
const balancesArray = (await Promise.all(balancePromises)).filter(
|
|
179
|
+
(
|
|
180
|
+
tokenData,
|
|
181
|
+
): tokenData is {
|
|
182
|
+
chain: MoneyInOutChainId;
|
|
183
|
+
tokenName: TokenName;
|
|
184
|
+
balance: number;
|
|
185
|
+
} => tokenData !== null,
|
|
186
|
+
);
|
|
171
187
|
|
|
172
188
|
const balances = balancesArray.reduce<{
|
|
173
189
|
[key in MoneyInOutChainId]?: MABalanceInfo;
|