@reyaxyz/common 0.48.0 → 0.49.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.
@@ -52,11 +52,11 @@ var getSocketConnectors = function (params) {
52
52
  var deploymentJSON = getSocketDeploymentJSON(reyaChainId);
53
53
  var depositConnector = (_d = (_c = (_b = (_a = deploymentJSON === null || deploymentJSON === void 0 ? void 0 : deploymentJSON[params.moneyInOutChainId]) === null || _a === void 0 ? void 0 : _a[params.tokenName]) === null || _b === void 0 ? void 0 : _b.connectors) === null || _c === void 0 ? void 0 : _c[reyaChainId]) === null || _d === void 0 ? void 0 : _d.FAST;
54
54
  if (!depositConnector) {
55
- throw new Error("getSocketConnectors: deposit connector not found ".concat(params));
55
+ throw new Error("getSocketConnectors: deposit connector not found ".concat(JSON.stringify(params)));
56
56
  }
57
57
  var withdrawConnector = (_h = (_g = (_f = (_e = deploymentJSON === null || deploymentJSON === void 0 ? void 0 : deploymentJSON[reyaChainId]) === null || _e === void 0 ? void 0 : _e[params.tokenName]) === null || _f === void 0 ? void 0 : _f.connectors) === null || _g === void 0 ? void 0 : _g[params.moneyInOutChainId]) === null || _h === void 0 ? void 0 : _h.FAST;
58
58
  if (!withdrawConnector) {
59
- throw new Error("getSocketConnectors: withdraw connector not found ".concat(params));
59
+ throw new Error("getSocketConnectors: withdraw connector not found ".concat(JSON.stringify(params)));
60
60
  }
61
61
  return {
62
62
  deposit: (0, token_1.convertToAddress)(depositConnector),
@@ -69,7 +69,7 @@ var getSocketController = function (params) {
69
69
  var deploymentJSON = getSocketDeploymentJSON(params.reyaChainId);
70
70
  var controller = (_b = (_a = deploymentJSON === null || deploymentJSON === void 0 ? void 0 : deploymentJSON[params.reyaChainId]) === null || _a === void 0 ? void 0 : _a[params.tokenName]) === null || _b === void 0 ? void 0 : _b[SocketSuperBridgeContracts.Controller];
71
71
  if (!controller) {
72
- throw new Error("getSocketController: controller not found ".concat(params));
72
+ throw new Error("getSocketController: controller not found ".concat(JSON.stringify(params)));
73
73
  }
74
74
  return (0, token_1.convertToAddress)(controller);
75
75
  };
@@ -80,7 +80,7 @@ var getSocketVault = function (params) {
80
80
  var deploymentJSON = getSocketDeploymentJSON(reyaChainId);
81
81
  var vault = (_b = (_a = deploymentJSON === null || deploymentJSON === void 0 ? void 0 : deploymentJSON[params.moneyInOutChainId]) === null || _a === void 0 ? void 0 : _a[params.tokenName]) === null || _b === void 0 ? void 0 : _b[SocketSuperBridgeContracts.Vault];
82
82
  if (!vault) {
83
- throw new Error("getSocketVault: vault not found ".concat(params));
83
+ throw new Error("getSocketVault: vault not found ".concat(JSON.stringify(params)));
84
84
  }
85
85
  return (0, token_1.convertToAddress)(vault);
86
86
  };
@@ -1 +1 @@
1
- {"version":3,"file":"getSocketAddresses.js","sourceRoot":"/","sources":["services/getSocketAddresses.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ReyaChainId,\n GetSocketConnectorParams,\n Address,\n GetSocketControllerParams,\n MoneyInOutChainId,\n GetSocketVaultParams,\n SocketTokenConnectors,\n TokenName,\n} from '../types';\nimport { getReyaNetworkFromMoneyInOutChainId } from '../utils/network';\nimport { convertToAddress } from '../utils/token';\n\nimport * as REYA_CRONOS from '../utils/socket/reyaCronos.json';\n\ntype SocketDeploymentAddresses = {\n [chain in ReyaChainId | MoneyInOutChainId]?: SocketChainAddresses;\n};\n\ntype SocketChainAddresses = {\n [token in TokenName]?: SocketTokenAddresses;\n};\n\ntype SocketTokenAddresses =\n | SocketAppChainAddresses\n | SocketNonAppChainAddresses;\n\ninterface SocketAppChainAddresses {\n isAppChain: true;\n [SocketSuperBridgeContracts.MintableToken]?: string;\n [SocketSuperBridgeContracts.Controller]?: string;\n [SocketSuperBridgeContracts.ExchangeRate]?: string;\n connectors?: SocketConnectors;\n}\ninterface SocketNonAppChainAddresses {\n isAppChain: false;\n [SocketSuperBridgeContracts.NonMintableToken]?: string;\n [SocketSuperBridgeContracts.Vault]?: string;\n connectors?: SocketConnectors;\n}\n\nenum SocketSuperBridgeContracts {\n MintableToken = 'MintableToken',\n NonMintableToken = 'NonMintableToken',\n Vault = 'Vault',\n Controller = 'Controller',\n FiatTokenV2_1_Controller = 'FiatTokenV2_1_Controller',\n ExchangeRate = 'ExchangeRate',\n ConnectorPlug = 'ConnectorPlug',\n}\n\nexport type SocketConnectors = {\n [chainSlug in ReyaChainId | MoneyInOutChainId]?: SocketConnectorAddresses;\n};\n\nexport type SocketConnectorAddresses = {\n ['FAST']?: string;\n};\n\nconst getSocketDeploymentJSON = (\n reyaChainId: ReyaChainId,\n): SocketDeploymentAddresses => {\n switch (reyaChainId) {\n case ReyaChainId.reyaNetwork:\n throw new Error('getSocketDeploymentJSON unsupported chain id');\n case ReyaChainId.reyaCronos:\n return REYA_CRONOS;\n }\n};\n\nexport const getSocketConnectors = (\n params: GetSocketConnectorParams,\n): SocketTokenConnectors => {\n const reyaChainId = getReyaNetworkFromMoneyInOutChainId(\n params.moneyInOutChainId,\n );\n const deploymentJSON = getSocketDeploymentJSON(reyaChainId);\n const depositConnector =\n deploymentJSON?.[params.moneyInOutChainId]?.[params.tokenName]\n ?.connectors?.[reyaChainId]?.FAST;\n\n if (!depositConnector) {\n throw new Error(\n `getSocketConnectors: deposit connector not found ${params}`,\n );\n }\n\n const withdrawConnector =\n deploymentJSON?.[reyaChainId]?.[params.tokenName]?.connectors?.[\n params.moneyInOutChainId\n ]?.FAST;\n\n if (!withdrawConnector) {\n throw new Error(\n `getSocketConnectors: withdraw connector not found ${params}`,\n );\n }\n\n return {\n deposit: convertToAddress(depositConnector),\n withdraw: convertToAddress(withdrawConnector),\n };\n};\n\nexport const getSocketController = (\n params: GetSocketControllerParams,\n): Address => {\n const deploymentJSON = getSocketDeploymentJSON(params.reyaChainId);\n const controller = (\n deploymentJSON?.[params.reyaChainId]?.[\n params.tokenName\n ] as SocketAppChainAddresses\n )?.[SocketSuperBridgeContracts.Controller];\n\n if (!controller) {\n throw new Error(`getSocketController: controller not found ${params}`);\n }\n\n return convertToAddress(controller);\n};\n\nexport const getSocketVault = (params: GetSocketVaultParams): Address => {\n const reyaChainId = getReyaNetworkFromMoneyInOutChainId(\n params.moneyInOutChainId,\n );\n const deploymentJSON = getSocketDeploymentJSON(reyaChainId);\n\n const vault = (\n deploymentJSON?.[params.moneyInOutChainId]?.[\n params.tokenName\n ] as SocketNonAppChainAddresses\n )?.[SocketSuperBridgeContracts.Vault];\n\n if (!vault) {\n throw new Error(`getSocketVault: vault not found ${params}`);\n }\n\n return convertToAddress(vault);\n};\n"]}
1
+ {"version":3,"file":"getSocketAddresses.js","sourceRoot":"/","sources":["services/getSocketAddresses.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ReyaChainId,\n GetSocketConnectorParams,\n Address,\n GetSocketControllerParams,\n MoneyInOutChainId,\n GetSocketVaultParams,\n SocketTokenConnectors,\n TokenName,\n} from '../types';\nimport { getReyaNetworkFromMoneyInOutChainId } from '../utils/network';\nimport { convertToAddress } from '../utils/token';\n\nimport * as REYA_CRONOS from '../utils/socket/reyaCronos.json';\n\ntype SocketDeploymentAddresses = {\n [chain in ReyaChainId | MoneyInOutChainId]?: SocketChainAddresses;\n};\n\ntype SocketChainAddresses = {\n [token in TokenName]?: SocketTokenAddresses;\n};\n\ntype SocketTokenAddresses =\n | SocketAppChainAddresses\n | SocketNonAppChainAddresses;\n\ninterface SocketAppChainAddresses {\n isAppChain: true;\n [SocketSuperBridgeContracts.MintableToken]?: string;\n [SocketSuperBridgeContracts.Controller]?: string;\n [SocketSuperBridgeContracts.ExchangeRate]?: string;\n connectors?: SocketConnectors;\n}\ninterface SocketNonAppChainAddresses {\n isAppChain: false;\n [SocketSuperBridgeContracts.NonMintableToken]?: string;\n [SocketSuperBridgeContracts.Vault]?: string;\n connectors?: SocketConnectors;\n}\n\nenum SocketSuperBridgeContracts {\n MintableToken = 'MintableToken',\n NonMintableToken = 'NonMintableToken',\n Vault = 'Vault',\n Controller = 'Controller',\n FiatTokenV2_1_Controller = 'FiatTokenV2_1_Controller',\n ExchangeRate = 'ExchangeRate',\n ConnectorPlug = 'ConnectorPlug',\n}\n\nexport type SocketConnectors = {\n [chainSlug in ReyaChainId | MoneyInOutChainId]?: SocketConnectorAddresses;\n};\n\nexport type SocketConnectorAddresses = {\n ['FAST']?: string;\n};\n\nconst getSocketDeploymentJSON = (\n reyaChainId: ReyaChainId,\n): SocketDeploymentAddresses => {\n switch (reyaChainId) {\n case ReyaChainId.reyaNetwork:\n throw new Error('getSocketDeploymentJSON unsupported chain id');\n case ReyaChainId.reyaCronos:\n return REYA_CRONOS;\n }\n};\n\nexport const getSocketConnectors = (\n params: GetSocketConnectorParams,\n): SocketTokenConnectors => {\n const reyaChainId = getReyaNetworkFromMoneyInOutChainId(\n params.moneyInOutChainId,\n );\n const deploymentJSON = getSocketDeploymentJSON(reyaChainId);\n const depositConnector =\n deploymentJSON?.[params.moneyInOutChainId]?.[params.tokenName]\n ?.connectors?.[reyaChainId]?.FAST;\n\n if (!depositConnector) {\n throw new Error(\n `getSocketConnectors: deposit connector not found ${JSON.stringify(\n params,\n )}`,\n );\n }\n\n const withdrawConnector =\n deploymentJSON?.[reyaChainId]?.[params.tokenName]?.connectors?.[\n params.moneyInOutChainId\n ]?.FAST;\n\n if (!withdrawConnector) {\n throw new Error(\n `getSocketConnectors: withdraw connector not found ${JSON.stringify(\n params,\n )}`,\n );\n }\n\n return {\n deposit: convertToAddress(depositConnector),\n withdraw: convertToAddress(withdrawConnector),\n };\n};\n\nexport const getSocketController = (\n params: GetSocketControllerParams,\n): Address => {\n const deploymentJSON = getSocketDeploymentJSON(params.reyaChainId);\n const controller = (\n deploymentJSON?.[params.reyaChainId]?.[\n params.tokenName\n ] as SocketAppChainAddresses\n )?.[SocketSuperBridgeContracts.Controller];\n\n if (!controller) {\n throw new Error(\n `getSocketController: controller not found ${JSON.stringify(params)}`,\n );\n }\n\n return convertToAddress(controller);\n};\n\nexport const getSocketVault = (params: GetSocketVaultParams): Address => {\n const reyaChainId = getReyaNetworkFromMoneyInOutChainId(\n params.moneyInOutChainId,\n );\n const deploymentJSON = getSocketDeploymentJSON(reyaChainId);\n\n const vault = (\n deploymentJSON?.[params.moneyInOutChainId]?.[\n params.tokenName\n ] as SocketNonAppChainAddresses\n )?.[SocketSuperBridgeContracts.Vault];\n\n if (!vault) {\n throw new Error(\n `getSocketVault: vault not found ${JSON.stringify(params)}`,\n );\n }\n\n return convertToAddress(vault);\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"getSocketAddresses.d.ts","sourceRoot":"/","sources":["services/getSocketAddresses.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,wBAAwB,EACxB,OAAO,EACP,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EAEtB,MAAM,UAAU,CAAC;AA0ClB,MAAM,MAAM,gBAAgB,GAAG;KAC5B,SAAS,IAAI,WAAW,GAAG,iBAAiB,CAAC,CAAC,EAAE,wBAAwB;CAC1E,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAaF,eAAO,MAAM,mBAAmB,WACtB,wBAAwB,KAC/B,qBA8BF,CAAC;AAEF,eAAO,MAAM,mBAAmB,WACtB,yBAAyB,KAChC,OAaF,CAAC;AAEF,eAAO,MAAM,cAAc,WAAY,oBAAoB,KAAG,OAiB7D,CAAC"}
1
+ {"version":3,"file":"getSocketAddresses.d.ts","sourceRoot":"/","sources":["services/getSocketAddresses.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,wBAAwB,EACxB,OAAO,EACP,yBAAyB,EACzB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EAEtB,MAAM,UAAU,CAAC;AA0ClB,MAAM,MAAM,gBAAgB,GAAG;KAC5B,SAAS,IAAI,WAAW,GAAG,iBAAiB,CAAC,CAAC,EAAE,wBAAwB;CAC1E,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAaF,eAAO,MAAM,mBAAmB,WACtB,wBAAwB,KAC/B,qBAkCF,CAAC;AAEF,eAAO,MAAM,mBAAmB,WACtB,yBAAyB,KAChC,OAeF,CAAC;AAEF,eAAO,MAAM,cAAc,WAAY,oBAAoB,KAAG,OAmB7D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"token.d.ts","sourceRoot":"/","sources":["utils/token.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAG1C,OAAO,EACL,OAAO,EACP,uBAAuB,EACvB,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,SAAS,EACV,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,OAAO,kBAAmB,MAAM,aACzB,MAAM,WAKzB,CAAC;AAEF,eAAO,MAAM,KAAK,kBAAmB,MAAM,aACvB,MAAM,WAOzB,CAAC;AAEF,eAAO,MAAM,qBAAqB,iBAClB,MAAM,WACX,MAAM,KACd,QAWF,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAS,MAAM,KAAG,OAE9C,CAAC;AAEF,eAAO,MAAM,qBAAqB,sBACb,OAAO,GAAG,MAAM,YACzB,WAAW,GAAG,iBAAiB,KACxC,SA+BF,CAAC;AAEF,eAAO,MAAM,kBAAkB,cAClB,SAAS,WACX,WAAW,GAAG,iBAAiB,KACvC,SAYF,CAAC;AAEF,eAAO,MAAM,iBAAiB,8DAK3B,uBAAuB,KAAG,QAAQ,MAAM,CAW1C,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,eAAe,8CAIzB,mBAAmB,KAAG,QAAQ,MAAM,CAUtC,CAAC"}
1
+ {"version":3,"file":"token.d.ts","sourceRoot":"/","sources":["utils/token.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAG1C,OAAO,EACL,OAAO,EACP,uBAAuB,EACvB,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,SAAS,EACV,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,OAAO,kBAAmB,MAAM,aACzB,MAAM,WAKzB,CAAC;AAEF,eAAO,MAAM,KAAK,kBAAmB,MAAM,aAAY,MAAM,KAAK,MAiBjE,CAAC;AAEF,eAAO,MAAM,qBAAqB,iBAClB,MAAM,WACX,MAAM,KACd,QAWF,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAS,MAAM,KAAG,OAE9C,CAAC;AAEF,eAAO,MAAM,qBAAqB,sBACb,OAAO,GAAG,MAAM,YACzB,WAAW,GAAG,iBAAiB,KACxC,SA+BF,CAAC;AAEF,eAAO,MAAM,kBAAkB,cAClB,SAAS,WACX,WAAW,GAAG,iBAAiB,KACvC,SAYF,CAAC;AAEF,eAAO,MAAM,iBAAiB,8DAK3B,uBAAuB,KAAG,QAAQ,MAAM,CAW1C,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,eAAe,8CAIzB,mBAAmB,KAAG,QAAQ,MAAM,CAUtC,CAAC"}
@@ -49,10 +49,22 @@ var descale = function (tokenDecimals) {
49
49
  };
50
50
  exports.descale = descale;
51
51
  var scale = function (tokenDecimals) {
52
- var f = function (value) {
53
- return BigInt(ethers_1.ethers.parseUnits(value.toFixed(tokenDecimals), tokenDecimals));
52
+ return function (value) {
53
+ // Convert the number to a string
54
+ var valueStr = value.toString();
55
+ // Split the string into whole and fractional parts
56
+ // eslint-disable-next-line prefer-const
57
+ var _a = valueStr.split('.'), whole = _a[0], _b = _a[1], fractional = _b === void 0 ? '' : _b;
58
+ // Ensure the fractional part is the correct length, padding with zeros if necessary
59
+ fractional = fractional
60
+ .padEnd(tokenDecimals, '0')
61
+ .substring(0, tokenDecimals);
62
+ // Concatenate the whole part with the correctly length-limited fractional part
63
+ var scaledValueStr = whole + fractional;
64
+ // Convert the concatenated string to a BigInt, assuming it represents a value in wei (or equivalent smallest unit)
65
+ // This is safe as we're not losing precision - just scaling the number to its smallest unit representation
66
+ return BigInt(scaledValueStr);
54
67
  };
55
- return f;
56
68
  };
57
69
  exports.scale = scale;
58
70
  var getERC20TokenContract = function (tokenAddress, subject) {
@@ -1 +1 @@
1
- {"version":3,"file":"token.js","sourceRoot":"/","sources":["utils/token.ts"],"names":[],"mappings":"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","sourcesContent":["import { ethers } from 'ethers';\n\nimport { Contract, Signer } from 'ethers';\nimport { TOKEN_INFO } from './token-info';\nimport { exponentialBackoff } from './retry';\nimport {\n Address,\n GetERC20AllowanceParams,\n MoneyInOutChainId,\n ReyaChainId,\n TokenInfo,\n TokenName,\n} from '../types';\n\nexport const descale = (tokenDecimals: number) => {\n const f = (value: bigint) => {\n return Number(ethers.formatUnits(value.toString(), tokenDecimals));\n };\n\n return f;\n};\n\nexport const scale = (tokenDecimals: number) => {\n const f = (value: number) => {\n return BigInt(\n ethers.parseUnits(value.toFixed(tokenDecimals), tokenDecimals),\n );\n };\n\n return f;\n};\n\nexport const getERC20TokenContract = (\n tokenAddress: string,\n subject: Signer,\n): Contract => {\n const abi: string[] = [\n `function approve(address, uint256) external returns (bool)`,\n `function balanceOf(address) external view returns (uint256)`,\n `function allowance(address,address) external view returns (uint256)`,\n `function approve(address,uint256) external returns (bool)`,\n ];\n\n const contract = new Contract(tokenAddress, abi, subject);\n\n return contract;\n};\n\nexport const convertToAddress = (str: string): Address => {\n return str.toLowerCase() as Address;\n};\n\nexport const getTokenInfoByAddress = (\n tokenAddressParam: Address | string,\n chainId?: ReyaChainId | MoneyInOutChainId,\n): TokenInfo => {\n const tokenAddress =\n typeof tokenAddressParam === 'string'\n ? convertToAddress(tokenAddressParam)\n : tokenAddressParam;\n\n if (chainId) {\n const tokenInfo = TOKEN_INFO[chainId].find(\n (tokenInfo) => tokenInfo.address === tokenAddress,\n );\n if (!tokenInfo) {\n throw new Error(\n `getTokenInfoByAddress: no token info found [chainId ${chainId}, token address ${tokenAddress}]`,\n );\n }\n return tokenInfo;\n } else {\n for (const chainId in TOKEN_INFO) {\n const tokenInfos =\n TOKEN_INFO[chainId as unknown as keyof typeof TOKEN_INFO];\n const tokenInfo = tokenInfos.find(\n (tokenInfo) => tokenInfo.address === tokenAddress,\n );\n if (tokenInfo) {\n return tokenInfo;\n }\n }\n throw new Error(\n `getTokenInfoByAddress: no token info found [token address ${tokenAddress}]`,\n );\n }\n};\n\nexport const getTokenInfoByName = (\n tokenName: TokenName,\n chainId: ReyaChainId | MoneyInOutChainId,\n): TokenInfo => {\n const tokenInfo = TOKEN_INFO[chainId].find(\n (tokenInfo) => tokenInfo.name === tokenName,\n );\n\n if (!tokenInfo) {\n throw new Error(\n `getTokenInfoByName: no token info found [chain id ${chainId}, token name ${tokenName}]`,\n );\n }\n\n return tokenInfo;\n};\n\nexport const getERC20Allowance = async ({\n walletAddress,\n tokenAddress,\n spenderAddress,\n subject,\n}: GetERC20AllowanceParams): Promise<number> => {\n const tokenContract = getERC20TokenContract(tokenAddress, subject);\n const tokenInfo = getTokenInfoByAddress(tokenAddress);\n\n const allowance = await exponentialBackoff(() =>\n tokenContract.allowance(walletAddress, spenderAddress),\n );\n\n return BigInt(allowance) > scale(tokenInfo.decimals)(Number.MAX_SAFE_INTEGER)\n ? Number.MAX_SAFE_INTEGER\n : descale(tokenInfo.decimals)(allowance);\n};\n\nexport type GetERC20BalanceArgs = {\n tokenAddress: string;\n walletAddress: string;\n subject: Signer;\n};\n\nexport const getERC20Balance = async ({\n tokenAddress,\n walletAddress,\n subject,\n}: GetERC20BalanceArgs): Promise<number> => {\n const token = getERC20TokenContract(tokenAddress, subject);\n\n const tokenInfo = getTokenInfoByAddress(convertToAddress(tokenAddress));\n\n const currentBalance = await exponentialBackoff(() =>\n token.balanceOf(walletAddress),\n );\n\n return descale(tokenInfo.decimals)(currentBalance);\n};\n"]}
1
+ {"version":3,"file":"token.js","sourceRoot":"/","sources":["utils/token.ts"],"names":[],"mappings":"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","sourcesContent":["import { ethers } from 'ethers';\n\nimport { Contract, Signer } from 'ethers';\nimport { TOKEN_INFO } from './token-info';\nimport { exponentialBackoff } from './retry';\nimport {\n Address,\n GetERC20AllowanceParams,\n MoneyInOutChainId,\n ReyaChainId,\n TokenInfo,\n TokenName,\n} from '../types';\n\nexport const descale = (tokenDecimals: number) => {\n const f = (value: bigint) => {\n return Number(ethers.formatUnits(value.toString(), tokenDecimals));\n };\n\n return f;\n};\n\nexport const scale = (tokenDecimals: number): ((value: number) => bigint) => {\n return (value: number): bigint => {\n // Convert the number to a string\n const valueStr = value.toString();\n // Split the string into whole and fractional parts\n // eslint-disable-next-line prefer-const\n let [whole, fractional = ''] = valueStr.split('.');\n // Ensure the fractional part is the correct length, padding with zeros if necessary\n fractional = fractional\n .padEnd(tokenDecimals, '0')\n .substring(0, tokenDecimals);\n // Concatenate the whole part with the correctly length-limited fractional part\n const scaledValueStr = whole + fractional;\n // Convert the concatenated string to a BigInt, assuming it represents a value in wei (or equivalent smallest unit)\n // This is safe as we're not losing precision - just scaling the number to its smallest unit representation\n return BigInt(scaledValueStr);\n };\n};\n\nexport const getERC20TokenContract = (\n tokenAddress: string,\n subject: Signer,\n): Contract => {\n const abi: string[] = [\n `function approve(address, uint256) external returns (bool)`,\n `function balanceOf(address) external view returns (uint256)`,\n `function allowance(address,address) external view returns (uint256)`,\n `function approve(address,uint256) external returns (bool)`,\n ];\n\n const contract = new Contract(tokenAddress, abi, subject);\n\n return contract;\n};\n\nexport const convertToAddress = (str: string): Address => {\n return str.toLowerCase() as Address;\n};\n\nexport const getTokenInfoByAddress = (\n tokenAddressParam: Address | string,\n chainId?: ReyaChainId | MoneyInOutChainId,\n): TokenInfo => {\n const tokenAddress =\n typeof tokenAddressParam === 'string'\n ? convertToAddress(tokenAddressParam)\n : tokenAddressParam;\n\n if (chainId) {\n const tokenInfo = TOKEN_INFO[chainId].find(\n (tokenInfo) => tokenInfo.address === tokenAddress,\n );\n if (!tokenInfo) {\n throw new Error(\n `getTokenInfoByAddress: no token info found [chainId ${chainId}, token address ${tokenAddress}]`,\n );\n }\n return tokenInfo;\n } else {\n for (const chainId in TOKEN_INFO) {\n const tokenInfos =\n TOKEN_INFO[chainId as unknown as keyof typeof TOKEN_INFO];\n const tokenInfo = tokenInfos.find(\n (tokenInfo) => tokenInfo.address === tokenAddress,\n );\n if (tokenInfo) {\n return tokenInfo;\n }\n }\n throw new Error(\n `getTokenInfoByAddress: no token info found [token address ${tokenAddress}]`,\n );\n }\n};\n\nexport const getTokenInfoByName = (\n tokenName: TokenName,\n chainId: ReyaChainId | MoneyInOutChainId,\n): TokenInfo => {\n const tokenInfo = TOKEN_INFO[chainId].find(\n (tokenInfo) => tokenInfo.name === tokenName,\n );\n\n if (!tokenInfo) {\n throw new Error(\n `getTokenInfoByName: no token info found [chain id ${chainId}, token name ${tokenName}]`,\n );\n }\n\n return tokenInfo;\n};\n\nexport const getERC20Allowance = async ({\n walletAddress,\n tokenAddress,\n spenderAddress,\n subject,\n}: GetERC20AllowanceParams): Promise<number> => {\n const tokenContract = getERC20TokenContract(tokenAddress, subject);\n const tokenInfo = getTokenInfoByAddress(tokenAddress);\n\n const allowance = await exponentialBackoff(() =>\n tokenContract.allowance(walletAddress, spenderAddress),\n );\n\n return BigInt(allowance) > scale(tokenInfo.decimals)(Number.MAX_SAFE_INTEGER)\n ? Number.MAX_SAFE_INTEGER\n : descale(tokenInfo.decimals)(allowance);\n};\n\nexport type GetERC20BalanceArgs = {\n tokenAddress: string;\n walletAddress: string;\n subject: Signer;\n};\n\nexport const getERC20Balance = async ({\n tokenAddress,\n walletAddress,\n subject,\n}: GetERC20BalanceArgs): Promise<number> => {\n const token = getERC20TokenContract(tokenAddress, subject);\n\n const tokenInfo = getTokenInfoByAddress(convertToAddress(tokenAddress));\n\n const currentBalance = await exponentialBackoff(() =>\n token.balanceOf(walletAddress),\n );\n\n return descale(tokenInfo.decimals)(currentBalance);\n};\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reyaxyz/common",
3
- "version": "0.48.0",
3
+ "version": "0.49.0",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -42,5 +42,5 @@
42
42
  "generate:coverage-badges": "npx istanbul-badges-readme --silent"
43
43
  },
44
44
  "packageManager": "pnpm@8.10.4",
45
- "gitHead": "3710b22ddcc4be855f8f9523c970bcd2bdfa1892"
45
+ "gitHead": "bb7bb7686fb2e83b058223a63027c0477184f3e5"
46
46
  }
@@ -81,7 +81,9 @@ export const getSocketConnectors = (
81
81
 
82
82
  if (!depositConnector) {
83
83
  throw new Error(
84
- `getSocketConnectors: deposit connector not found ${params}`,
84
+ `getSocketConnectors: deposit connector not found ${JSON.stringify(
85
+ params,
86
+ )}`,
85
87
  );
86
88
  }
87
89
 
@@ -92,7 +94,9 @@ export const getSocketConnectors = (
92
94
 
93
95
  if (!withdrawConnector) {
94
96
  throw new Error(
95
- `getSocketConnectors: withdraw connector not found ${params}`,
97
+ `getSocketConnectors: withdraw connector not found ${JSON.stringify(
98
+ params,
99
+ )}`,
96
100
  );
97
101
  }
98
102
 
@@ -113,7 +117,9 @@ export const getSocketController = (
113
117
  )?.[SocketSuperBridgeContracts.Controller];
114
118
 
115
119
  if (!controller) {
116
- throw new Error(`getSocketController: controller not found ${params}`);
120
+ throw new Error(
121
+ `getSocketController: controller not found ${JSON.stringify(params)}`,
122
+ );
117
123
  }
118
124
 
119
125
  return convertToAddress(controller);
@@ -132,7 +138,9 @@ export const getSocketVault = (params: GetSocketVaultParams): Address => {
132
138
  )?.[SocketSuperBridgeContracts.Vault];
133
139
 
134
140
  if (!vault) {
135
- throw new Error(`getSocketVault: vault not found ${params}`);
141
+ throw new Error(
142
+ `getSocketVault: vault not found ${JSON.stringify(params)}`,
143
+ );
136
144
  }
137
145
 
138
146
  return convertToAddress(vault);
@@ -20,14 +20,23 @@ export const descale = (tokenDecimals: number) => {
20
20
  return f;
21
21
  };
22
22
 
23
- export const scale = (tokenDecimals: number) => {
24
- const f = (value: number) => {
25
- return BigInt(
26
- ethers.parseUnits(value.toFixed(tokenDecimals), tokenDecimals),
27
- );
23
+ export const scale = (tokenDecimals: number): ((value: number) => bigint) => {
24
+ return (value: number): bigint => {
25
+ // Convert the number to a string
26
+ const valueStr = value.toString();
27
+ // Split the string into whole and fractional parts
28
+ // eslint-disable-next-line prefer-const
29
+ let [whole, fractional = ''] = valueStr.split('.');
30
+ // Ensure the fractional part is the correct length, padding with zeros if necessary
31
+ fractional = fractional
32
+ .padEnd(tokenDecimals, '0')
33
+ .substring(0, tokenDecimals);
34
+ // Concatenate the whole part with the correctly length-limited fractional part
35
+ const scaledValueStr = whole + fractional;
36
+ // Convert the concatenated string to a BigInt, assuming it represents a value in wei (or equivalent smallest unit)
37
+ // This is safe as we're not losing precision - just scaling the number to its smallest unit representation
38
+ return BigInt(scaledValueStr);
28
39
  };
29
-
30
- return f;
31
40
  };
32
41
 
33
42
  export const getERC20TokenContract = (