@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.
- package/dist/services/getSocketAddresses.js +4 -4
- package/dist/services/getSocketAddresses.js.map +1 -1
- package/dist/types/services/getSocketAddresses.d.ts.map +1 -1
- package/dist/types/utils/token.d.ts.map +1 -1
- package/dist/utils/token.js +15 -3
- package/dist/utils/token.js.map +1 -1
- package/package.json +2 -2
- package/src/services/getSocketAddresses.ts +12 -4
- package/src/utils/token.ts +16 -7
|
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kCASkB;AAClB,4CAAuE;AACvE,wCAAkD;AAElD,2EAA+D;AA4B/D,IAAK,0BAQJ;AARD,WAAK,0BAA0B;IAC7B,6DAA+B,CAAA;IAC/B,mEAAqC,CAAA;IACrC,6CAAe,CAAA;IACf,uDAAyB,CAAA;IACzB,mFAAqD,CAAA;IACrD,2DAA6B,CAAA;IAC7B,6DAA+B,CAAA;AACjC,CAAC,EARI,0BAA0B,KAA1B,0BAA0B,QAQ9B;AAUD,IAAM,uBAAuB,GAAG,UAC9B,WAAwB;IAExB,QAAQ,WAAW,EAAE,CAAC;QACpB,KAAK,mBAAW,CAAC,WAAW;YAC1B,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;QAClE,KAAK,mBAAW,CAAC,UAAU;YACzB,OAAO,WAAW,CAAC;IACvB,CAAC;AACH,CAAC,CAAC;AAEK,IAAM,mBAAmB,GAAG,UACjC,MAAgC;;IAEhC,IAAM,WAAW,GAAG,IAAA,6CAAmC,EACrD,MAAM,CAAC,iBAAiB,CACzB,CAAC;IACF,IAAM,cAAc,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;IAC5D,IAAM,gBAAgB,GACpB,MAAA,MAAA,MAAA,MAAA,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAG,MAAM,CAAC,iBAAiB,CAAC,0CAAG,MAAM,CAAC,SAAS,CAAC,0CAC1D,UAAU,0CAAG,WAAW,CAAC,0CAAE,IAAI,CAAC;IAEtC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,2DAAoD,MAAM,CAAE,
|
|
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,
|
|
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,
|
|
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"}
|
package/dist/utils/token.js
CHANGED
|
@@ -49,10 +49,22 @@ var descale = function (tokenDecimals) {
|
|
|
49
49
|
};
|
|
50
50
|
exports.descale = descale;
|
|
51
51
|
var scale = function (tokenDecimals) {
|
|
52
|
-
|
|
53
|
-
|
|
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) {
|
package/dist/utils/token.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"/","sources":["utils/token.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAAgC;AAEhC,iCAA0C;AAC1C,2CAA0C;AAC1C,iCAA6C;AAUtC,IAAM,OAAO,GAAG,UAAC,aAAqB;IAC3C,IAAM,CAAC,GAAG,UAAC,KAAa;QACtB,OAAO,MAAM,CAAC,eAAM,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AANW,QAAA,OAAO,WAMlB;AAEK,IAAM,KAAK,GAAG,UAAC,aAAqB;IACzC,IAAM,
|
|
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.
|
|
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": "
|
|
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 ${
|
|
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 ${
|
|
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(
|
|
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(
|
|
141
|
+
throw new Error(
|
|
142
|
+
`getSocketVault: vault not found ${JSON.stringify(params)}`,
|
|
143
|
+
);
|
|
136
144
|
}
|
|
137
145
|
|
|
138
146
|
return convertToAddress(vault);
|
package/src/utils/token.ts
CHANGED
|
@@ -20,14 +20,23 @@ export const descale = (tokenDecimals: number) => {
|
|
|
20
20
|
return f;
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
-
export const scale = (tokenDecimals: number) => {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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 = (
|