@reyaxyz/sdk 0.149.14 → 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 CHANGED
@@ -6,5 +6,5 @@
6
6
 
7
7
  | Statements | Branches | Functions | Lines |
8
8
  | --------------------------- | ----------------------- | ------------------------- | ----------------- |
9
- | ![Statements](https://img.shields.io/badge/statements-12.69%25-red.svg?style=flat) | ![Branches](https://img.shields.io/badge/branches-16.35%25-red.svg?style=flat) | ![Functions](https://img.shields.io/badge/functions-4.65%25-red.svg?style=flat) | ![Lines](https://img.shields.io/badge/lines-12.21%25-red.svg?style=flat) |
9
+ | ![Statements](https://img.shields.io/badge/statements-16.24%25-red.svg?style=flat) | ![Branches](https://img.shields.io/badge/branches-16.35%25-red.svg?style=flat) | ![Functions](https://img.shields.io/badge/functions-11.49%25-red.svg?style=flat) | ![Lines](https://img.shields.io/badge/lines-15.74%25-red.svg?style=flat) |
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: return [4 /*yield*/, (0, common_1.getERC20BalanceBatch)({
193
- tokenAddress: tokenInfo.address,
194
- tokenDecimals: tokenInfo.decimals,
195
- walletAddress: walletAddress,
196
- chain: moneyInOutChainId,
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,CAuCjE,CAAC"}
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.14",
3
+ "version": "0.149.15",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -38,5 +38,5 @@
38
38
  "ethers": "6.9.0"
39
39
  },
40
40
  "packageManager": "pnpm@8.3.1",
41
- "gitHead": "4272713930af0d2ee205dc569fce06839aa0486c"
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
- const balance = await getERC20BalanceBatch({
155
- tokenAddress: tokenInfo.address,
156
- tokenDecimals: tokenInfo.decimals,
157
- walletAddress: walletAddress,
158
- chain: moneyInOutChainId,
159
- });
160
-
161
- return {
162
- chain: moneyInOutChainId,
163
- tokenName: tokenInfo.name,
164
- balance: balance,
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;