@reyaxyz/common 0.72.1 → 0.73.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/types/utils/network.d.ts +3 -0
- package/dist/types/utils/network.d.ts.map +1 -1
- package/dist/types/utils/token.d.ts +6 -2
- package/dist/types/utils/token.d.ts.map +1 -1
- package/dist/utils/network.js +13 -2
- package/dist/utils/network.js.map +1 -1
- package/dist/utils/token.js.map +1 -1
- package/package.json +2 -2
- package/src/utils/network.ts +14 -0
- package/src/utils/token.ts +7 -4
package/README.md
CHANGED
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
|
|
7
7
|
| Statements | Branches | Functions | Lines |
|
|
8
8
|
| --------------------------- | ----------------------- | ------------------------- | ----------------- |
|
|
9
|
-
|  |  |  |  |
|
|
10
10
|
|
|
@@ -4,4 +4,7 @@ export declare function getMoneyInOutNetworks(env: 'production' | 'test'): Money
|
|
|
4
4
|
export declare function getReyaNetworkFromMoneyInOutChainId(moneyInOutChainId: MoneyInOutChainId): ReyaChainId;
|
|
5
5
|
export declare function getMoneyInOutNetworksFromReyaChainId(reyaChainId: ReyaChainId): MoneyInOutChainId[];
|
|
6
6
|
export declare const chainIdToExplorerURL: Record<number, string>;
|
|
7
|
+
export declare const ChainRpcUrls: {
|
|
8
|
+
[key in MoneyInOutChainId]: string;
|
|
9
|
+
};
|
|
7
10
|
//# sourceMappingURL=network.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.d.ts","sourceRoot":"/","sources":["utils/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE1D,wBAAgB,cAAc,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,GAAG,WAAW,CAKtE;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,YAAY,GAAG,MAAM,GACzB,iBAAiB,EAAE,CAkBrB;AAED,wBAAgB,mCAAmC,CACjD,iBAAiB,EAAE,iBAAiB,GACnC,WAAW,CAWb;AAED,wBAAgB,oCAAoC,CAClD,WAAW,EAAE,WAAW,GACvB,iBAAiB,EAAE,CAWrB;AAED,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAWvD,CAAC"}
|
|
1
|
+
{"version":3,"file":"network.d.ts","sourceRoot":"/","sources":["utils/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE1D,wBAAgB,cAAc,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,GAAG,WAAW,CAKtE;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,YAAY,GAAG,MAAM,GACzB,iBAAiB,EAAE,CAkBrB;AAED,wBAAgB,mCAAmC,CACjD,iBAAiB,EAAE,iBAAiB,GACnC,WAAW,CAWb;AAED,wBAAgB,oCAAoC,CAClD,WAAW,EAAE,WAAW,GACvB,iBAAiB,EAAE,CAWrB;AAED,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAWvD,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE;KAAG,GAAG,IAAI,iBAAiB,GAAG,MAAM;CAY9D,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
+
import { Provider } from 'ethers';
|
|
1
2
|
import { Contract, Signer } from 'ethers';
|
|
2
3
|
import { Address, GetERC20AllowanceParams, MoneyInOutChainId, ReyaChainId, TokenInfo, TokenName } from '../types';
|
|
3
4
|
export declare const descale: (tokenDecimals: number) => (value: bigint) => number;
|
|
4
5
|
export declare const scale: (tokenDecimals: number) => (value: number) => bigint;
|
|
5
|
-
export declare const getERC20TokenContract: (tokenAddress: string, subject: Signer) => Contract;
|
|
6
|
+
export declare const getERC20TokenContract: (tokenAddress: string, subject: Signer | Provider) => Contract;
|
|
6
7
|
export declare const convertToAddress: (str: string) => Address;
|
|
7
8
|
export declare const getTokenInfoByAddress: (tokenAddressParam: Address | string, chainId?: ReyaChainId | MoneyInOutChainId) => TokenInfo;
|
|
8
9
|
export declare const getTokenInfoByName: (tokenName: TokenName, chainId: ReyaChainId | MoneyInOutChainId) => TokenInfo;
|
|
@@ -12,7 +13,10 @@ export declare const getERC20Allowance: ({ walletAddress, tokenAddress, spenderA
|
|
|
12
13
|
export type GetERC20BalanceArgs = {
|
|
13
14
|
tokenAddress: string;
|
|
14
15
|
walletAddress: string;
|
|
15
|
-
subject: Signer;
|
|
16
|
+
subject: Signer | Provider;
|
|
17
|
+
};
|
|
18
|
+
export type GetBalancesForBridgeArgs = {
|
|
19
|
+
walletAddress: string;
|
|
16
20
|
};
|
|
17
21
|
export declare const getERC20Balance: ({ tokenAddress, walletAddress, subject, }: GetERC20BalanceArgs) => Promise<number>;
|
|
18
22
|
//# sourceMappingURL=token.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.d.ts","sourceRoot":"/","sources":["utils/token.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"/","sources":["utils/token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAE1C,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;AAClB,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,GAAG,QAAQ,KACzB,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,oBAAoB,YACtB,WAAW,GAAG,iBAAiB,KACvC,SAAS,EAEX,CAAC;AAEF,eAAO,MAAM,0BAA0B,YAC5B,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,GAAG,QAAQ,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACrC,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,eAAe,8CAIzB,mBAAmB,KAAG,QAAQ,MAAM,CAUtC,CAAC"}
|
package/dist/utils/network.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a;
|
|
2
|
+
var _a, _b;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.chainIdToExplorerURL = exports.getMoneyInOutNetworksFromReyaChainId = exports.getReyaNetworkFromMoneyInOutChainId = exports.getMoneyInOutNetworks = exports.getReyaNetwork = void 0;
|
|
4
|
+
exports.ChainRpcUrls = exports.chainIdToExplorerURL = exports.getMoneyInOutNetworksFromReyaChainId = exports.getReyaNetworkFromMoneyInOutChainId = exports.getMoneyInOutNetworks = exports.getReyaNetwork = void 0;
|
|
5
5
|
var types_1 = require("../types");
|
|
6
6
|
function getReyaNetwork(env) {
|
|
7
7
|
if (env === 'production')
|
|
@@ -61,4 +61,15 @@ exports.chainIdToExplorerURL = (_a = {},
|
|
|
61
61
|
_a[types_1.ReyaChainId.reyaNetwork] = 'https://explorer.reya.network',
|
|
62
62
|
_a[types_1.ReyaChainId.reyaCronos] = 'https://reya-cronos.blockscout.com',
|
|
63
63
|
_a);
|
|
64
|
+
exports.ChainRpcUrls = (_b = {},
|
|
65
|
+
_b[types_1.MoneyInOutChainId.ethereumMainnet] = 'https://mainnet.gateway.tenderly.co',
|
|
66
|
+
_b[types_1.MoneyInOutChainId.opMainnet] = 'https://mainnet.optimism.io',
|
|
67
|
+
_b[types_1.MoneyInOutChainId.polygonMainnet] = 'https://polygon-rpc.com/',
|
|
68
|
+
_b[types_1.MoneyInOutChainId.arbitrumOne] = 'https://arb1.arbitrum.io/rpc',
|
|
69
|
+
// Add the rest of the mainnet URLs above
|
|
70
|
+
_b[types_1.MoneyInOutChainId.polygonMumbai] = 'https://rpc.ankr.com/polygon_mumbai',
|
|
71
|
+
_b[types_1.MoneyInOutChainId.arbitrumSepolia] = 'https://sepolia-rollup.arbitrum.io/rpc',
|
|
72
|
+
_b[types_1.MoneyInOutChainId.opSepolia] = 'https://sepolia.optimism.io',
|
|
73
|
+
_b[types_1.MoneyInOutChainId.ethereumSepolia] = 'https://sepolia.gateway.tenderly.co',
|
|
74
|
+
_b);
|
|
64
75
|
//# sourceMappingURL=network.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.js","sourceRoot":"/","sources":["utils/network.ts"],"names":[],"mappings":";;;;AAAA,kCAA0D;AAE1D,SAAgB,cAAc,CAAC,GAA0B;IACvD,IAAI,GAAG,KAAK,YAAY;QAAE,OAAO,mBAAW,CAAC,WAAW,CAAC;IACzD,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,mBAAW,CAAC,UAAU,CAAC;IAElD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACpD,CAAC;AALD,wCAKC;AAED,SAAgB,qBAAqB,CACnC,GAA0B;IAE1B,IAAI,GAAG,KAAK,YAAY;QACtB,OAAO;YACL,yBAAiB,CAAC,eAAe;YACjC,yBAAiB,CAAC,SAAS;YAC3B,yBAAiB,CAAC,cAAc;YAChC,yBAAiB,CAAC,WAAW;SAC9B,CAAC;IAEJ,IAAI,GAAG,KAAK,MAAM;QAChB,OAAO;YACL,yBAAiB,CAAC,eAAe;YACjC,yBAAiB,CAAC,SAAS;YAC3B,yBAAiB,CAAC,eAAe;YACjC,yBAAiB,CAAC,aAAa;SAChC,CAAC;IAEJ,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;AAC3D,CAAC;AApBD,sDAoBC;AAED,SAAgB,mCAAmC,CACjD,iBAAoC;IAEpC,IAAI,qBAAqB,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACpE,OAAO,cAAc,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC9D,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAC;AACJ,CAAC;AAbD,kFAaC;AAED,SAAgB,oCAAoC,CAClD,WAAwB;IAExB,IAAI,cAAc,CAAC,YAAY,CAAC,KAAK,WAAW,EAAE,CAAC;QACjD,OAAO,qBAAqB,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,cAAc,CAAC,MAAM,CAAC,KAAK,WAAW,EAAE,CAAC;QAC3C,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAC;AACJ,CAAC;AAbD,oFAaC;AAEY,QAAA,oBAAoB;IAC/B,GAAC,yBAAiB,CAAC,eAAe,IAAG,sBAAsB;IAC3D,GAAC,yBAAiB,CAAC,SAAS,IAAG,iCAAiC;IAChE,GAAC,yBAAiB,CAAC,cAAc,IAAG,yBAAyB;IAC7D,GAAC,yBAAiB,CAAC,WAAW,IAAG,qBAAqB;IACtD,GAAC,yBAAiB,CAAC,aAAa,IAAG,gCAAgC;IACnE,GAAC,yBAAiB,CAAC,eAAe,IAAG,6BAA6B;IAClE,GAAC,yBAAiB,CAAC,SAAS,IAAG,uCAAuC;IACtE,GAAC,yBAAiB,CAAC,eAAe,IAAG,8BAA8B;IACnE,GAAC,mBAAW,CAAC,WAAW,IAAG,+BAA+B;IAC1D,GAAC,mBAAW,CAAC,UAAU,IAAG,oCAAoC;QAC9D","sourcesContent":["import { MoneyInOutChainId, ReyaChainId } from '../types';\n\nexport function getReyaNetwork(env: 'production' | 'test'): ReyaChainId {\n if (env === 'production') return ReyaChainId.reyaNetwork;\n if (env === 'test') return ReyaChainId.reyaCronos;\n\n throw new Error('Unknown env for getReyaNetwork');\n}\n\nexport function getMoneyInOutNetworks(\n env: 'production' | 'test',\n): MoneyInOutChainId[] {\n if (env === 'production')\n return [\n MoneyInOutChainId.ethereumMainnet,\n MoneyInOutChainId.opMainnet,\n MoneyInOutChainId.polygonMainnet,\n MoneyInOutChainId.arbitrumOne,\n ];\n\n if (env === 'test')\n return [\n MoneyInOutChainId.ethereumSepolia,\n MoneyInOutChainId.opSepolia,\n MoneyInOutChainId.arbitrumSepolia,\n MoneyInOutChainId.polygonMumbai,\n ];\n\n throw new Error('Unknown env for getMoneyInOutNetworks');\n}\n\nexport function getReyaNetworkFromMoneyInOutChainId(\n moneyInOutChainId: MoneyInOutChainId,\n): ReyaChainId {\n if (getMoneyInOutNetworks('production').includes(moneyInOutChainId)) {\n return getReyaNetwork('production');\n }\n if (getMoneyInOutNetworks('test').includes(moneyInOutChainId)) {\n return getReyaNetwork('test');\n }\n\n throw new Error(\n 'Unknown money in out network in getReyaNetworkFromMoneyInOutChainId',\n );\n}\n\nexport function getMoneyInOutNetworksFromReyaChainId(\n reyaChainId: ReyaChainId,\n): MoneyInOutChainId[] {\n if (getReyaNetwork('production') === reyaChainId) {\n return getMoneyInOutNetworks('production');\n }\n if (getReyaNetwork('test') === reyaChainId) {\n return getMoneyInOutNetworks('test');\n }\n\n throw new Error(\n 'Unknown money in out network in getMoneyInOutNetworksFromReyaChainId',\n );\n}\n\nexport const chainIdToExplorerURL: Record<number, string> = {\n [MoneyInOutChainId.ethereumMainnet]: 'https://etherscan.io',\n [MoneyInOutChainId.opMainnet]: 'https://optimistic.etherscan.io',\n [MoneyInOutChainId.polygonMainnet]: 'https://polygonscan.com',\n [MoneyInOutChainId.arbitrumOne]: 'https://arbiscan.io',\n [MoneyInOutChainId.polygonMumbai]: 'https://mumbai.polygonscan.com',\n [MoneyInOutChainId.arbitrumSepolia]: 'https://sepolia.arbiscan.io',\n [MoneyInOutChainId.opSepolia]: 'https://sepolia-optimism.etherscan.io',\n [MoneyInOutChainId.ethereumSepolia]: 'https://sepolia.etherscan.io',\n [ReyaChainId.reyaNetwork]: 'https://explorer.reya.network',\n [ReyaChainId.reyaCronos]: 'https://reya-cronos.blockscout.com',\n};\n"]}
|
|
1
|
+
{"version":3,"file":"network.js","sourceRoot":"/","sources":["utils/network.ts"],"names":[],"mappings":";;;;AAAA,kCAA0D;AAE1D,SAAgB,cAAc,CAAC,GAA0B;IACvD,IAAI,GAAG,KAAK,YAAY;QAAE,OAAO,mBAAW,CAAC,WAAW,CAAC;IACzD,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,mBAAW,CAAC,UAAU,CAAC;IAElD,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;AACpD,CAAC;AALD,wCAKC;AAED,SAAgB,qBAAqB,CACnC,GAA0B;IAE1B,IAAI,GAAG,KAAK,YAAY;QACtB,OAAO;YACL,yBAAiB,CAAC,eAAe;YACjC,yBAAiB,CAAC,SAAS;YAC3B,yBAAiB,CAAC,cAAc;YAChC,yBAAiB,CAAC,WAAW;SAC9B,CAAC;IAEJ,IAAI,GAAG,KAAK,MAAM;QAChB,OAAO;YACL,yBAAiB,CAAC,eAAe;YACjC,yBAAiB,CAAC,SAAS;YAC3B,yBAAiB,CAAC,eAAe;YACjC,yBAAiB,CAAC,aAAa;SAChC,CAAC;IAEJ,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;AAC3D,CAAC;AApBD,sDAoBC;AAED,SAAgB,mCAAmC,CACjD,iBAAoC;IAEpC,IAAI,qBAAqB,CAAC,YAAY,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QACpE,OAAO,cAAc,CAAC,YAAY,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,qBAAqB,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAC9D,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,IAAI,KAAK,CACb,qEAAqE,CACtE,CAAC;AACJ,CAAC;AAbD,kFAaC;AAED,SAAgB,oCAAoC,CAClD,WAAwB;IAExB,IAAI,cAAc,CAAC,YAAY,CAAC,KAAK,WAAW,EAAE,CAAC;QACjD,OAAO,qBAAqB,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,cAAc,CAAC,MAAM,CAAC,KAAK,WAAW,EAAE,CAAC;QAC3C,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,IAAI,KAAK,CACb,sEAAsE,CACvE,CAAC;AACJ,CAAC;AAbD,oFAaC;AAEY,QAAA,oBAAoB;IAC/B,GAAC,yBAAiB,CAAC,eAAe,IAAG,sBAAsB;IAC3D,GAAC,yBAAiB,CAAC,SAAS,IAAG,iCAAiC;IAChE,GAAC,yBAAiB,CAAC,cAAc,IAAG,yBAAyB;IAC7D,GAAC,yBAAiB,CAAC,WAAW,IAAG,qBAAqB;IACtD,GAAC,yBAAiB,CAAC,aAAa,IAAG,gCAAgC;IACnE,GAAC,yBAAiB,CAAC,eAAe,IAAG,6BAA6B;IAClE,GAAC,yBAAiB,CAAC,SAAS,IAAG,uCAAuC;IACtE,GAAC,yBAAiB,CAAC,eAAe,IAAG,8BAA8B;IACnE,GAAC,mBAAW,CAAC,WAAW,IAAG,+BAA+B;IAC1D,GAAC,mBAAW,CAAC,UAAU,IAAG,oCAAoC;QAC9D;AAEW,QAAA,YAAY;IACvB,GAAC,yBAAiB,CAAC,eAAe,IAAG,qCAAqC;IAC1E,GAAC,yBAAiB,CAAC,SAAS,IAAG,6BAA6B;IAC5D,GAAC,yBAAiB,CAAC,cAAc,IAAG,0BAA0B;IAC9D,GAAC,yBAAiB,CAAC,WAAW,IAAG,8BAA8B;IAC/D,yCAAyC;IAEzC,GAAC,yBAAiB,CAAC,aAAa,IAAG,qCAAqC;IACxE,GAAC,yBAAiB,CAAC,eAAe,IAAG,wCAAwC;IAC7E,GAAC,yBAAiB,CAAC,SAAS,IAAG,6BAA6B;IAC5D,GAAC,yBAAiB,CAAC,eAAe,IAAG,qCAAqC;QAE1E","sourcesContent":["import { MoneyInOutChainId, ReyaChainId } from '../types';\n\nexport function getReyaNetwork(env: 'production' | 'test'): ReyaChainId {\n if (env === 'production') return ReyaChainId.reyaNetwork;\n if (env === 'test') return ReyaChainId.reyaCronos;\n\n throw new Error('Unknown env for getReyaNetwork');\n}\n\nexport function getMoneyInOutNetworks(\n env: 'production' | 'test',\n): MoneyInOutChainId[] {\n if (env === 'production')\n return [\n MoneyInOutChainId.ethereumMainnet,\n MoneyInOutChainId.opMainnet,\n MoneyInOutChainId.polygonMainnet,\n MoneyInOutChainId.arbitrumOne,\n ];\n\n if (env === 'test')\n return [\n MoneyInOutChainId.ethereumSepolia,\n MoneyInOutChainId.opSepolia,\n MoneyInOutChainId.arbitrumSepolia,\n MoneyInOutChainId.polygonMumbai,\n ];\n\n throw new Error('Unknown env for getMoneyInOutNetworks');\n}\n\nexport function getReyaNetworkFromMoneyInOutChainId(\n moneyInOutChainId: MoneyInOutChainId,\n): ReyaChainId {\n if (getMoneyInOutNetworks('production').includes(moneyInOutChainId)) {\n return getReyaNetwork('production');\n }\n if (getMoneyInOutNetworks('test').includes(moneyInOutChainId)) {\n return getReyaNetwork('test');\n }\n\n throw new Error(\n 'Unknown money in out network in getReyaNetworkFromMoneyInOutChainId',\n );\n}\n\nexport function getMoneyInOutNetworksFromReyaChainId(\n reyaChainId: ReyaChainId,\n): MoneyInOutChainId[] {\n if (getReyaNetwork('production') === reyaChainId) {\n return getMoneyInOutNetworks('production');\n }\n if (getReyaNetwork('test') === reyaChainId) {\n return getMoneyInOutNetworks('test');\n }\n\n throw new Error(\n 'Unknown money in out network in getMoneyInOutNetworksFromReyaChainId',\n );\n}\n\nexport const chainIdToExplorerURL: Record<number, string> = {\n [MoneyInOutChainId.ethereumMainnet]: 'https://etherscan.io',\n [MoneyInOutChainId.opMainnet]: 'https://optimistic.etherscan.io',\n [MoneyInOutChainId.polygonMainnet]: 'https://polygonscan.com',\n [MoneyInOutChainId.arbitrumOne]: 'https://arbiscan.io',\n [MoneyInOutChainId.polygonMumbai]: 'https://mumbai.polygonscan.com',\n [MoneyInOutChainId.arbitrumSepolia]: 'https://sepolia.arbiscan.io',\n [MoneyInOutChainId.opSepolia]: 'https://sepolia-optimism.etherscan.io',\n [MoneyInOutChainId.ethereumSepolia]: 'https://sepolia.etherscan.io',\n [ReyaChainId.reyaNetwork]: 'https://explorer.reya.network',\n [ReyaChainId.reyaCronos]: 'https://reya-cronos.blockscout.com',\n};\n\nexport const ChainRpcUrls: { [key in MoneyInOutChainId]: string } = {\n [MoneyInOutChainId.ethereumMainnet]: 'https://mainnet.gateway.tenderly.co',\n [MoneyInOutChainId.opMainnet]: 'https://mainnet.optimism.io',\n [MoneyInOutChainId.polygonMainnet]: 'https://polygon-rpc.com/',\n [MoneyInOutChainId.arbitrumOne]: 'https://arb1.arbitrum.io/rpc',\n // Add the rest of the mainnet URLs above\n\n [MoneyInOutChainId.polygonMumbai]: 'https://rpc.ankr.com/polygon_mumbai',\n [MoneyInOutChainId.arbitrumSepolia]: 'https://sepolia-rollup.arbitrum.io/rpc',\n [MoneyInOutChainId.opSepolia]: 'https://sepolia.optimism.io',\n [MoneyInOutChainId.ethereumSepolia]: 'https://sepolia.gateway.tenderly.co',\n // Add the rest of the testnet URLs above\n};\n"]}
|
package/dist/utils/token.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"/","sources":["utils/token.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"/","sources":["utils/token.ts"],"names":[],"mappings":"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","sourcesContent":["import { ethers, Provider } 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';\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 | Provider,\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 getTokenInfosByChain = (\n chainId: ReyaChainId | MoneyInOutChainId,\n): TokenInfo[] => {\n return TOKEN_INFO[chainId];\n};\n\nexport const getRUSDUnderlyingTokenInfo = (\n chainId: ReyaChainId | MoneyInOutChainId,\n): TokenInfo => {\n const tokenInfo = TOKEN_INFO[chainId].find(\n (tokenInfo) => tokenInfo.isRUSDUnderlying === true,\n );\n\n if (!tokenInfo) {\n throw new Error(\n `getRUSDUnderlyingTokenInfo: no token info found [chain id ${chainId}]`,\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 | Provider;\n};\n\nexport type GetBalancesForBridgeArgs = {\n walletAddress: string;\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.73.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": "e515796e1445af959aa1083d01b884aaafc66055"
|
|
46
46
|
}
|
package/src/utils/network.ts
CHANGED
|
@@ -71,3 +71,17 @@ export const chainIdToExplorerURL: Record<number, string> = {
|
|
|
71
71
|
[ReyaChainId.reyaNetwork]: 'https://explorer.reya.network',
|
|
72
72
|
[ReyaChainId.reyaCronos]: 'https://reya-cronos.blockscout.com',
|
|
73
73
|
};
|
|
74
|
+
|
|
75
|
+
export const ChainRpcUrls: { [key in MoneyInOutChainId]: string } = {
|
|
76
|
+
[MoneyInOutChainId.ethereumMainnet]: 'https://mainnet.gateway.tenderly.co',
|
|
77
|
+
[MoneyInOutChainId.opMainnet]: 'https://mainnet.optimism.io',
|
|
78
|
+
[MoneyInOutChainId.polygonMainnet]: 'https://polygon-rpc.com/',
|
|
79
|
+
[MoneyInOutChainId.arbitrumOne]: 'https://arb1.arbitrum.io/rpc',
|
|
80
|
+
// Add the rest of the mainnet URLs above
|
|
81
|
+
|
|
82
|
+
[MoneyInOutChainId.polygonMumbai]: 'https://rpc.ankr.com/polygon_mumbai',
|
|
83
|
+
[MoneyInOutChainId.arbitrumSepolia]: 'https://sepolia-rollup.arbitrum.io/rpc',
|
|
84
|
+
[MoneyInOutChainId.opSepolia]: 'https://sepolia.optimism.io',
|
|
85
|
+
[MoneyInOutChainId.ethereumSepolia]: 'https://sepolia.gateway.tenderly.co',
|
|
86
|
+
// Add the rest of the testnet URLs above
|
|
87
|
+
};
|
package/src/utils/token.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ethers } from 'ethers';
|
|
1
|
+
import { ethers, Provider } from 'ethers';
|
|
2
2
|
|
|
3
3
|
import { Contract, Signer } from 'ethers';
|
|
4
4
|
import { TOKEN_INFO } from './token-info';
|
|
@@ -11,7 +11,6 @@ import {
|
|
|
11
11
|
TokenInfo,
|
|
12
12
|
TokenName,
|
|
13
13
|
} from '../types';
|
|
14
|
-
|
|
15
14
|
export const descale = (tokenDecimals: number) => {
|
|
16
15
|
const f = (value: bigint) => {
|
|
17
16
|
return Number(ethers.formatUnits(value.toString(), tokenDecimals));
|
|
@@ -41,7 +40,7 @@ export const scale = (tokenDecimals: number): ((value: number) => bigint) => {
|
|
|
41
40
|
|
|
42
41
|
export const getERC20TokenContract = (
|
|
43
42
|
tokenAddress: string,
|
|
44
|
-
subject: Signer,
|
|
43
|
+
subject: Signer | Provider,
|
|
45
44
|
): Contract => {
|
|
46
45
|
const abi: string[] = [
|
|
47
46
|
`function approve(address, uint256) external returns (bool)`,
|
|
@@ -155,7 +154,11 @@ export const getERC20Allowance = async ({
|
|
|
155
154
|
export type GetERC20BalanceArgs = {
|
|
156
155
|
tokenAddress: string;
|
|
157
156
|
walletAddress: string;
|
|
158
|
-
subject: Signer;
|
|
157
|
+
subject: Signer | Provider;
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
export type GetBalancesForBridgeArgs = {
|
|
161
|
+
walletAddress: string;
|
|
159
162
|
};
|
|
160
163
|
|
|
161
164
|
export const getERC20Balance = async ({
|