@reyaxyz/common 0.365.0 → 0.365.2
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/rest/helpers/constants.js +5 -13
- package/dist/rest/helpers/constants.js.map +1 -1
- package/dist/transactions/contractAddresses.js +4 -5
- package/dist/transactions/contractAddresses.js.map +1 -1
- package/dist/types/rest/helpers/constants.d.ts +1 -1
- package/dist/types/rest/helpers/constants.d.ts.map +1 -1
- package/dist/types/transactions/contractAddresses.d.ts.map +1 -1
- package/dist/utils/token/token-info-getters.js +1 -1
- package/dist/utils/token/token-info-getters.js.map +1 -1
- package/package.json +2 -2
- package/src/rest/helpers/constants.ts +5 -23
- package/src/transactions/contractAddresses.ts +4 -5
- package/src/utils/token/token-info-getters.ts +1 -1
package/README.md
CHANGED
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
|
|
7
7
|
| Statements | Branches | Functions | Lines |
|
|
8
8
|
| --------------------------- | ----------------------- | ------------------------- | ----------------- |
|
|
9
|
-
|  |  |  |  |
|
|
10
10
|
|
|
@@ -42,18 +42,7 @@ var API_CLIENT_CONFIGS = {
|
|
|
42
42
|
timeout: utils_1.API_TIMEOUT,
|
|
43
43
|
logging: false,
|
|
44
44
|
},
|
|
45
|
-
|
|
46
|
-
chain: types_1.ReyaChainId.reyaCronos,
|
|
47
|
-
apiEndpoint: getEnvVar('NEXT_PUBLIC_REYA_API_ENDPOINT', 'https://api-cronos.reya.xyz'),
|
|
48
|
-
webSocketEndpoint: getEnvVar('NEXT_PUBLIC_REYA_WEBSOCKET_ENDPOINT', 'wss://websocket-testnet.reya.xyz'),
|
|
49
|
-
environment: getEnvVar('NEXT_PUBLIC_REYA_ENVIRONMENT', 'test'),
|
|
50
|
-
timeout: utils_1.API_TIMEOUT,
|
|
51
|
-
logging: true,
|
|
52
|
-
},
|
|
53
|
-
// Devnet1 shares the cronos chain (89346162) but has its own
|
|
54
|
-
// sub-deploy at `reya-cronos.network` (distinct from `reya.xyz`).
|
|
55
|
-
// Added so UIs can offer "devnet" as a first-class environment
|
|
56
|
-
// selection rather than overriding `test`'s default endpoint.
|
|
45
|
+
// Devnet1 uses the live reya-cronos chain (89346162).
|
|
57
46
|
devnet: {
|
|
58
47
|
chain: types_1.ReyaChainId.reyaCronos,
|
|
59
48
|
apiEndpoint: getEnvVar('NEXT_PUBLIC_REYA_API_ENDPOINT', 'https://api-devnet.reya-cronos.network'),
|
|
@@ -64,7 +53,10 @@ var API_CLIENT_CONFIGS = {
|
|
|
64
53
|
},
|
|
65
54
|
};
|
|
66
55
|
var getApiClientConfig = function (env) {
|
|
67
|
-
|
|
56
|
+
if (!Object.prototype.hasOwnProperty.call(API_CLIENT_CONFIGS, env)) {
|
|
57
|
+
throw new Error("Unsupported SDK environment: ".concat(env));
|
|
58
|
+
}
|
|
59
|
+
return API_CLIENT_CONFIGS[env];
|
|
68
60
|
};
|
|
69
61
|
exports.getApiClientConfig = getApiClientConfig;
|
|
70
62
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"/","sources":["rest/helpers/constants.ts"],"names":[],"mappings":";;;AAAA,qCAA0C;AAC1C,qCAA0C;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"/","sources":["rest/helpers/constants.ts"],"names":[],"mappings":";;;AAAA,qCAA0C;AAC1C,qCAA0C;AAkB1C,IAAM,SAAS,GAAG,UAAC,IAAY,EAAE,QAAgB;IAC/C,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACvE,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAW,CAAC;IACrC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAEF,IAAM,kBAAkB,GAA8C;IACpE,YAAY,EAAE;QACZ,KAAK,EAAE,mBAAW,CAAC,UAAU;QAC7B,WAAW,EAAE,uBAAuB;QACpC,iBAAiB,EAAE,qBAAqB;QACxC,WAAW,EAAE,cAAc;QAC3B,OAAO,EAAE,mBAAW;QACpB,OAAO,EAAE,IAAI;KACd;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,mBAAW,CAAC,WAAW;QAC9B,WAAW,EAAE,uBAAuB;QACpC,iBAAiB,EAAE,qBAAqB;QACxC,WAAW,EAAE,cAAc;QAC3B,OAAO,EAAE,mBAAW;QACpB,OAAO,EAAE,IAAI;KACd;IACD,UAAU,EAAE;QACV,KAAK,EAAE,mBAAW,CAAC,WAAW;QAC9B,WAAW,EAAE,SAAS,CACpB,+BAA+B,EAC/B,sBAAsB,CACvB;QACD,iBAAiB,EAAE,SAAS,CAC1B,qCAAqC,EACrC,mBAAmB,CACpB;QACD,WAAW,EAAE,SAAS,CACpB,8BAA8B,EAC9B,YAAY,CACS;QACvB,OAAO,EAAE,mBAAW;QACpB,OAAO,EAAE,KAAK;KACf;IACD,OAAO,EAAE;QACP,KAAK,EAAE,mBAAW,CAAC,WAAW;QAC9B,WAAW,EAAE,SAAS,CACpB,+BAA+B,EAC/B,8BAA8B,CAC/B;QACD,iBAAiB,EAAE,SAAS,CAC1B,qCAAqC,EACrC,kCAAkC,CACnC;QACD,WAAW,EAAE,SAAS,CACpB,8BAA8B,EAC9B,SAAS,CACY;QACvB,OAAO,EAAE,mBAAW;QACpB,OAAO,EAAE,KAAK;KACf;IACD,sDAAsD;IACtD,MAAM,EAAE;QACN,KAAK,EAAE,mBAAW,CAAC,UAAU;QAC7B,WAAW,EAAE,SAAS,CACpB,+BAA+B,EAC/B,wCAAwC,CACzC;QACD,iBAAiB,EAAE,SAAS,CAC1B,qCAAqC,EACrC,4CAA4C,CAC7C;QACD,WAAW,EAAE,SAAS,CACpB,8BAA8B,EAC9B,QAAQ,CACa;QACvB,OAAO,EAAE,mBAAW;QACpB,OAAO,EAAE,IAAI;KACd;CACF,CAAC;AAEK,IAAM,kBAAkB,GAAG,UAAC,GAAuB;IACxD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,uCAAgC,GAAG,CAAE,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC;AACjC,CAAC,CAAC;AALW,QAAA,kBAAkB,sBAK7B","sourcesContent":["import { API_TIMEOUT } from '../../utils';\nimport { ReyaChainId } from '../../types';\n\nexport type ServiceEnvironment =\n | 'production'\n | 'staging'\n | 'devnet'\n | 'localmainnet'\n | 'localtestnet';\n\nexport interface ServiceConfig {\n chain: ReyaChainId;\n apiEndpoint: string;\n webSocketEndpoint: string;\n environment: ServiceEnvironment; // Configuration for SDK, such as base URL for the REST API\n timeout: number; // Optional timeout for API requests\n logging: boolean;\n}\n\nconst getEnvVar = (name: string, fallback: string): string => {\n if (typeof process !== 'undefined' && process.env && process.env[name]) {\n return process.env[name] as string;\n }\n return fallback;\n};\n\nconst API_CLIENT_CONFIGS: Record<ServiceEnvironment, ServiceConfig> = {\n localtestnet: {\n chain: ReyaChainId.reyaCronos,\n apiEndpoint: 'http://localhost:8000',\n webSocketEndpoint: 'ws://localhost:8080',\n environment: 'localtestnet',\n timeout: API_TIMEOUT,\n logging: true,\n },\n localmainnet: {\n chain: ReyaChainId.reyaNetwork,\n apiEndpoint: 'http://localhost:8000',\n webSocketEndpoint: 'ws://localhost:8080',\n environment: 'localmainnet',\n timeout: API_TIMEOUT,\n logging: true,\n },\n production: {\n chain: ReyaChainId.reyaNetwork,\n apiEndpoint: getEnvVar(\n 'NEXT_PUBLIC_REYA_API_ENDPOINT',\n 'https://api.reya.xyz',\n ),\n webSocketEndpoint: getEnvVar(\n 'NEXT_PUBLIC_REYA_WEBSOCKET_ENDPOINT',\n 'wss://ws.reya.xyz',\n ),\n environment: getEnvVar(\n 'NEXT_PUBLIC_REYA_ENVIRONMENT',\n 'production',\n ) as ServiceEnvironment,\n timeout: API_TIMEOUT,\n logging: false,\n },\n staging: {\n chain: ReyaChainId.reyaNetwork,\n apiEndpoint: getEnvVar(\n 'NEXT_PUBLIC_REYA_API_ENDPOINT',\n 'https://api-staging.reya.xyz',\n ),\n webSocketEndpoint: getEnvVar(\n 'NEXT_PUBLIC_REYA_WEBSOCKET_ENDPOINT',\n 'wss://websocket-staging.reya.xyz',\n ),\n environment: getEnvVar(\n 'NEXT_PUBLIC_REYA_ENVIRONMENT',\n 'staging',\n ) as ServiceEnvironment,\n timeout: API_TIMEOUT,\n logging: false,\n },\n // Devnet1 uses the live reya-cronos chain (89346162).\n devnet: {\n chain: ReyaChainId.reyaCronos,\n apiEndpoint: getEnvVar(\n 'NEXT_PUBLIC_REYA_API_ENDPOINT',\n 'https://api-devnet.reya-cronos.network',\n ),\n webSocketEndpoint: getEnvVar(\n 'NEXT_PUBLIC_REYA_WEBSOCKET_ENDPOINT',\n 'wss://websocket-devnet.reya-cronos.network',\n ),\n environment: getEnvVar(\n 'NEXT_PUBLIC_REYA_ENVIRONMENT',\n 'devnet',\n ) as ServiceEnvironment,\n timeout: API_TIMEOUT,\n logging: true,\n },\n};\n\nexport const getApiClientConfig = (env: ServiceEnvironment): ServiceConfig => {\n if (!Object.prototype.hasOwnProperty.call(API_CLIENT_CONFIGS, env)) {\n throw new Error(`Unsupported SDK environment: ${env}`);\n }\n return API_CLIENT_CONFIGS[env];\n};\n"]}
|
|
@@ -75,11 +75,10 @@ var CONTRACT_ADDRESS_ENV_OVERRIDES = (_e = {},
|
|
|
75
75
|
_e);
|
|
76
76
|
var getAddress = function (chainId, contractName) {
|
|
77
77
|
// Normalize env-overridden addresses to lowercase. The hardcoded fallback
|
|
78
|
-
// map below stores lowercased values, and downstream comparisons
|
|
79
|
-
//
|
|
80
|
-
//
|
|
81
|
-
//
|
|
82
|
-
// OG-aware settlement path gets bypassed.
|
|
78
|
+
// map below stores lowercased values, and downstream comparisons that
|
|
79
|
+
// lowercase the runtime value with `convertToAddress` assume that
|
|
80
|
+
// invariant. Without this, a checksummed env value silently fails every
|
|
81
|
+
// such comparison.
|
|
83
82
|
var override = CONTRACT_ADDRESS_ENV_OVERRIDES[contractName];
|
|
84
83
|
if (override)
|
|
85
84
|
return override.toLowerCase();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contractAddresses.js","sourceRoot":"/","sources":["transactions/contractAddresses.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,kCAAgD;AAEhD,IAAY,YAUX;AAVD,WAAY,YAAY;IACtB,yCAAyB,CAAA;IACzB,yDAAyC,CAAA;IACzC,mDAAmC,CAAA;IACnC,6DAA6C,CAAA;IAC7C,yDAAyC,CAAA;IACzC,+DAA+C,CAAA;IAC/C,uCAAuB,CAAA;IACvB,uCAAuB,CAAA;IACvB,+DAA+C,CAAA;AACjD,CAAC,EAVW,YAAY,4BAAZ,YAAY,QAUvB;AAID,IAAM,eAAe,GAAG,CAAA;IACtB,GAAC,mBAAW,CAAC,UAAU;QACrB,GAAC,YAAY,CAAC,UAAU,IAAG,4CAA4C;QACvE,GAAC,YAAY,CAAC,kBAAkB,IAC9B,4CAA4C;QAC9C,GAAC,YAAY,CAAC,eAAe,IAC3B,4CAA4C;QAC9C,GAAC,YAAY,CAAC,oBAAoB,IAChC,4CAA4C;QAC9C,GAAC,YAAY,CAAC,kBAAkB,IAC9B,4CAA4C;QAC9C,GAAC,YAAY,CAAC,qBAAqB,IACjC,4CAA4C;QAC9C,GAAC,YAAY,CAAC,SAAS,IAAG,4CAA4C;QACtE,GAAC,YAAY,CAAC,SAAS,IAAG,4CAA4C;QACtE,GAAC,YAAY,CAAC,qBAAqB,IACjC,4CAA4C;WAC/C;IACD,GAAC,mBAAW,CAAC,WAAW;QACtB,GAAC,YAAY,CAAC,UAAU,IAAG,4CAA4C;QACvE,GAAC,YAAY,CAAC,kBAAkB,IAC9B,4CAA4C;QAC9C,GAAC,YAAY,CAAC,eAAe,IAC3B,4CAA4C;QAC9C,GAAC,YAAY,CAAC,oBAAoB,IAChC,4CAA4C;QAC9C,GAAC,YAAY,CAAC,kBAAkB,IAC9B,4CAA4C;QAC9C,GAAC,YAAY,CAAC,qBAAqB,IACjC,4CAA4C;QAC9C,GAAC,YAAY,CAAC,SAAS,IAAG,4CAA4C;QACtE,GAAC,YAAY,CAAC,SAAS,IAAG,4CAA4C;QACtE,GAAC,YAAY,CAAC,qBAAqB,IACjC,4CAA4C;WAC/C;MACiE,CAAA,CAAC;AAErE,IAAM,SAAS,yBACV,eAAe,gBACjB,mBAAW,CAAC,SAAS,IAAG,EAAE,MAC5B,CAAC;AACF,qEAAqE;AACrE,mEAAmE;AACnE,mBAAmB;AACnB,EAAE;AACF,kEAAkE;AAClE,qEAAqE;AACrE,8DAA8D;AAC9D,qEAAqE;AACrE,sEAAsE;AACtE,oEAAoE;AACpE,oEAAoE;AACpE,EAAE;AACF,+DAA+D;AAC/D,gEAAgE;AAChE,IAAM,8BAA8B;IAClC,GAAC,YAAY,CAAC,UAAU,IAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB;IACzD,GAAC,YAAY,CAAC,kBAAkB,IAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B;IACzE,GAAC,YAAY,CAAC,oBAAoB,IAAG,OAAO,CAAC,GAAG,CAAC,4BAA4B;IAC7E,GAAC,YAAY,CAAC,eAAe,IAAG,OAAO,CAAC,GAAG,CAAC,uBAAuB;IACnE,GAAC,YAAY,CAAC,qBAAqB,IACjC,OAAO,CAAC,GAAG,CAAC,6BAA6B;IAC3C,GAAC,YAAY,CAAC,kBAAkB,IAAG,OAAO,CAAC,GAAG,CAAC,0BAA0B;OAC1E,CAAC;AAEK,IAAM,UAAU,GAAG,UACxB,OAAe,EACf,YAA0B;IAE1B,0EAA0E;IAC1E,
|
|
1
|
+
{"version":3,"file":"contractAddresses.js","sourceRoot":"/","sources":["transactions/contractAddresses.ts"],"names":[],"mappings":"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","sourcesContent":["import { Address, ReyaChainId } from '../types';\n\nexport enum ContractType {\n CORE_PROXY = 'core_proxy',\n PASSIVE_POOL_PROXY = 'passive_pool_proxy',\n PERIPHERY_PROXY = 'periphery_proxy',\n ORDERS_GATEWAY_PROXY = 'orders_gateway_proxy',\n PASSIVE_PERP_PROXY = 'passive_perp_proxy',\n ORACLE_ADAPTERS_PROXY = 'oracle_adapters_proxy',\n MULTICALL = 'multicall',\n REYA_SBTS = 'reya_sbts',\n REYA_TGE_DISTRIBUTION = 'reya_tge_distribution',\n}\n\ntype RemoteReyaChainId = Exclude<ReyaChainId, ReyaChainId.reyaLocal>;\n\nconst remoteAddresses = {\n [ReyaChainId.reyaCronos]: {\n [ContractType.CORE_PROXY]: '0xc6fb022962e1426f4e0ec9d2f8861c57926e9f72',\n [ContractType.PASSIVE_POOL_PROXY]:\n '0x9a3a664987b88790a6fdc1632e3b607813fd94ff',\n [ContractType.PERIPHERY_PROXY]:\n '0x94ccae812f1647696754412082dd6684c2366a7f',\n [ContractType.ORDERS_GATEWAY_PROXY]:\n '0x5a0ac2f89e0bdeafc5c549e354842210a3e87ca5',\n [ContractType.PASSIVE_PERP_PROXY]:\n '0x9ec177fed042ef2307928be2f5cdbf663b20244b',\n [ContractType.ORACLE_ADAPTERS_PROXY]:\n '0xc501a2356703cd351703d68963c6f4136120f7cf',\n [ContractType.MULTICALL]: '0x5abde4f0af8eaf3c9967f7fa126e59a103357b5c',\n [ContractType.REYA_SBTS]: '0xc0092ea9179ace93b0cd8910958e335575562722',\n [ContractType.REYA_TGE_DISTRIBUTION]:\n '0x16917248669fa64340e6517538e419588e9684c3',\n },\n [ReyaChainId.reyaNetwork]: {\n [ContractType.CORE_PROXY]: '0xa763b6a5e09378434406c003dae6487fbbdc1a80',\n [ContractType.PASSIVE_POOL_PROXY]:\n '0xb4b77d6180cc14472a9a7bdff01cc2459368d413',\n [ContractType.PERIPHERY_PROXY]:\n '0xcd2869d1eb1bc8991bc55de9e9b779e912faf736',\n [ContractType.ORDERS_GATEWAY_PROXY]:\n '0xfc8c96be87da63cecddbf54abfa7b13ee8044739',\n [ContractType.PASSIVE_PERP_PROXY]:\n '0x27e5cb712334e101b3c232eb0be198baaa595f5f',\n [ContractType.ORACLE_ADAPTERS_PROXY]:\n '0x32edabc058c1207fe0ec5f8557643c28e4ff379e',\n [ContractType.MULTICALL]: '0xed28d27dfca47ad2513c9f2e2d3c098c2ea5a47f',\n [ContractType.REYA_SBTS]: '0x14d7c1efc024e118df70b241afbd2447d37f1ed6',\n [ContractType.REYA_TGE_DISTRIBUTION]:\n '0x0000000000000000000000000000000000000000',\n },\n} satisfies Record<RemoteReyaChainId, Record<ContractType, Address>>;\n\nconst addresses: Record<ReyaChainId, Partial<Record<ContractType, Address>>> = {\n ...remoteAddresses,\n [ReyaChainId.reyaLocal]: {},\n};\n// Map stores the resolved env-var VALUES (not the var names) so that\n// webpack / Next.js `DefinePlugin` can statically inline them into\n// browser bundles.\n//\n// DefinePlugin only inlines literal `process.env.NAME` access — a\n// dynamic `process.env[varName]` lookup is opaque to its source-text\n// pass and stays `undefined` in the browser. Keeping the four\n// `process.env.*` accesses as static literals in this object literal\n// is what makes the override work in both Node (real `process.env` at\n// runtime) and browser (DefinePlugin-substituted constants at build\n// time). See PR #2660 / Daniel's comment for the discovery context.\n//\n// New entries must use the same static-literal pattern; do NOT\n// introduce a dynamic `process.env[someVar]` lookup downstream.\nconst CONTRACT_ADDRESS_ENV_OVERRIDES: Partial<Record<ContractType, string>> = {\n [ContractType.CORE_PROXY]: process.env.CORE_PROXY_ADDRESS,\n [ContractType.PASSIVE_PERP_PROXY]: process.env.PASSIVE_PERP_PROXY_ADDRESS,\n [ContractType.ORDERS_GATEWAY_PROXY]: process.env.ORDERS_GATEWAY_PROXY_ADDRESS,\n [ContractType.PERIPHERY_PROXY]: process.env.PERIPHERY_PROXY_ADDRESS,\n [ContractType.ORACLE_ADAPTERS_PROXY]:\n process.env.ORACLE_ADAPTERS_PROXY_ADDRESS,\n [ContractType.PASSIVE_POOL_PROXY]: process.env.PASSIVE_POOL_PROXY_ADDRESS,\n};\n\nexport const getAddress = (\n chainId: number,\n contractName: ContractType,\n): Address => {\n // Normalize env-overridden addresses to lowercase. The hardcoded fallback\n // map below stores lowercased values, and downstream comparisons that\n // lowercase the runtime value with `convertToAddress` assume that\n // invariant. Without this, a checksummed env value silently fails every\n // such comparison.\n const override = CONTRACT_ADDRESS_ENV_OVERRIDES[contractName];\n if (override) return override.toLowerCase() as Address;\n\n const keyChainId = chainId.toString();\n\n if (!Object.keys(addresses).includes(keyChainId)) {\n throw new Error(`Unspecified addresses for chain id ${keyChainId}`);\n }\n\n const networkAddresses = addresses[chainId as ReyaChainId];\n if (!Object.keys(networkAddresses).includes(contractName)) {\n throw new Error(`Unspecified address for ${contractName} contract`);\n }\n\n return networkAddresses[contractName]!;\n};\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ReyaChainId } from '../../types';
|
|
2
|
-
export type ServiceEnvironment = 'production' | 'staging' | '
|
|
2
|
+
export type ServiceEnvironment = 'production' | 'staging' | 'devnet' | 'localmainnet' | 'localtestnet';
|
|
3
3
|
export interface ServiceConfig {
|
|
4
4
|
chain: ReyaChainId;
|
|
5
5
|
apiEndpoint: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"/","sources":["rest/helpers/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,MAAM,kBAAkB,GAC1B,YAAY,GACZ,SAAS,GACT,
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"/","sources":["rest/helpers/constants.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,MAAM,kBAAkB,GAC1B,YAAY,GACZ,SAAS,GACT,QAAQ,GACR,cAAc,GACd,cAAc,CAAC;AAEnB,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,kBAAkB,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB;AAgFD,eAAO,MAAM,kBAAkB,QAAS,kBAAkB,KAAG,aAK5D,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contractAddresses.d.ts","sourceRoot":"/","sources":["transactions/contractAddresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAe,MAAM,UAAU,CAAC;AAEhD,oBAAY,YAAY;IACtB,UAAU,eAAe;IACzB,kBAAkB,uBAAuB;IACzC,eAAe,oBAAoB;IACnC,oBAAoB,yBAAyB;IAC7C,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;IAC/C,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,qBAAqB,0BAA0B;CAChD;AAqED,eAAO,MAAM,UAAU,YACZ,MAAM,gBACD,YAAY,KACzB,
|
|
1
|
+
{"version":3,"file":"contractAddresses.d.ts","sourceRoot":"/","sources":["transactions/contractAddresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAe,MAAM,UAAU,CAAC;AAEhD,oBAAY,YAAY;IACtB,UAAU,eAAe;IACzB,kBAAkB,uBAAuB;IACzC,eAAe,oBAAoB;IACnC,oBAAoB,yBAAyB;IAC7C,kBAAkB,uBAAuB;IACzC,qBAAqB,0BAA0B;IAC/C,SAAS,cAAc;IACvB,SAAS,cAAc;IACvB,qBAAqB,0BAA0B;CAChD;AAqED,eAAO,MAAM,UAAU,YACZ,MAAM,gBACD,YAAY,KACzB,OAqBF,CAAC"}
|
|
@@ -42,7 +42,7 @@ var localAddressOverride = function (envName, fallback) {
|
|
|
42
42
|
* getTokenInfoByAddress threw "no token info found" for devnet's own sRUSD,
|
|
43
43
|
* which broke /v2/wallet/:address/accountBalances -- the RLP balance never
|
|
44
44
|
* appeared after staking rUSD. Each override still falls back to the compiled
|
|
45
|
-
* address when its env var is unset
|
|
45
|
+
* chain address when its env var is unset.
|
|
46
46
|
*
|
|
47
47
|
* Same root cause and same fix as the asset map in common-backend (#2903);
|
|
48
48
|
* these two must stay in step.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-info-getters.js","sourceRoot":"/","sources":["utils/token/token-info-getters.ts"],"names":[],"mappings":"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","sourcesContent":["import { TOKEN_INFO } from './token-info';\nimport {\n Address,\n MoneyInOutChainId,\n ReyaChainId,\n TokenInfo,\n TokenName,\n} from '../../types';\nimport { convertToAddress } from './utils';\n\nconst LOCAL_ADDRESS_PATTERN = /^0x[a-fA-F0-9]{40}$/;\n\nconst localAddressOverride = (envName: string, fallback: Address): Address => {\n const rawAddress = process.env[envName]?.trim();\n if (!rawAddress) {\n return fallback;\n }\n\n if (!LOCAL_ADDRESS_PATTERN.test(rawAddress)) {\n throw new Error(`Invalid ${envName} address override: ${rawAddress}`);\n }\n\n return rawAddress.toLowerCase() as Address;\n};\n\n/**\n * The Reya chains whose token addresses may be overridden from the\n * environment. An ALLOWLIST on purpose: this function also accepts\n * MoneyInOutChainId, and TOKEN_INFO carries entries for external chains\n * (ethereum, op, polygon, arbitrum, base) whose USDC/WETH names collide with\n * the ones overridden below. A \"not mainnet\" test would quietly rewrite those\n * external addresses from Reya-local env vars; an allowlist cannot, and a new\n * money-in/out chain cannot opt itself in by accident.\n *\n * reyaCronos is here because devnet1 shares that chain id while running its\n * OWN passive pool and sRUSD (2026-08-22), publishing SRUSD_PROXY_ADDRESS in\n * its api values. Gated on reyaLocal alone it never reached this path, so\n * getTokenInfoByAddress threw \"no token info found\" for devnet's own sRUSD,\n * which broke /v2/wallet/:address/accountBalances -- the RLP balance never\n * appeared after staking rUSD. Each override still falls back to the compiled\n * address when its env var is unset
|
|
1
|
+
{"version":3,"file":"token-info-getters.js","sourceRoot":"/","sources":["utils/token/token-info-getters.ts"],"names":[],"mappings":"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","sourcesContent":["import { TOKEN_INFO } from './token-info';\nimport {\n Address,\n MoneyInOutChainId,\n ReyaChainId,\n TokenInfo,\n TokenName,\n} from '../../types';\nimport { convertToAddress } from './utils';\n\nconst LOCAL_ADDRESS_PATTERN = /^0x[a-fA-F0-9]{40}$/;\n\nconst localAddressOverride = (envName: string, fallback: Address): Address => {\n const rawAddress = process.env[envName]?.trim();\n if (!rawAddress) {\n return fallback;\n }\n\n if (!LOCAL_ADDRESS_PATTERN.test(rawAddress)) {\n throw new Error(`Invalid ${envName} address override: ${rawAddress}`);\n }\n\n return rawAddress.toLowerCase() as Address;\n};\n\n/**\n * The Reya chains whose token addresses may be overridden from the\n * environment. An ALLOWLIST on purpose: this function also accepts\n * MoneyInOutChainId, and TOKEN_INFO carries entries for external chains\n * (ethereum, op, polygon, arbitrum, base) whose USDC/WETH names collide with\n * the ones overridden below. A \"not mainnet\" test would quietly rewrite those\n * external addresses from Reya-local env vars; an allowlist cannot, and a new\n * money-in/out chain cannot opt itself in by accident.\n *\n * reyaCronos is here because devnet1 shares that chain id while running its\n * OWN passive pool and sRUSD (2026-08-22), publishing SRUSD_PROXY_ADDRESS in\n * its api values. Gated on reyaLocal alone it never reached this path, so\n * getTokenInfoByAddress threw \"no token info found\" for devnet's own sRUSD,\n * which broke /v2/wallet/:address/accountBalances -- the RLP balance never\n * appeared after staking rUSD. Each override still falls back to the compiled\n * chain address when its env var is unset.\n *\n * Same root cause and same fix as the asset map in common-backend (#2903);\n * these two must stay in step.\n */\nconst REYA_CHAINS_WITH_ADDRESS_OVERRIDES: ReadonlySet<ReyaChainId> = new Set([\n ReyaChainId.reyaLocal,\n ReyaChainId.reyaCronos,\n]);\n\nconst withLocalAddressOverrides = (tokenInfos: TokenInfo[]): TokenInfo[] =>\n tokenInfos.map((tokenInfo) => {\n switch (tokenInfo.name) {\n case 'RUSD':\n return {\n ...tokenInfo,\n address: localAddressOverride(\n 'RUSD_COLLATERAL_ADDRESS',\n tokenInfo.address,\n ),\n };\n case 'WETH':\n return {\n ...tokenInfo,\n address: localAddressOverride(\n 'LOCAL_ETH_ASSET_ADDRESS',\n tokenInfo.address,\n ),\n };\n case 'WBTC':\n return {\n ...tokenInfo,\n address: localAddressOverride(\n 'LOCAL_BTC_ASSET_ADDRESS',\n tokenInfo.address,\n ),\n };\n case 'SRUSD':\n return {\n ...tokenInfo,\n address: localAddressOverride(\n 'SRUSD_PROXY_ADDRESS',\n tokenInfo.address,\n ),\n };\n case 'USDC':\n return {\n ...tokenInfo,\n address: localAddressOverride(\n 'LOCAL_USDC_ASSET_ADDRESS',\n tokenInfo.address,\n ),\n };\n default:\n return tokenInfo;\n }\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 = getTokenInfosByChain(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 // getTokenInfosByChain, NOT raw TOKEN_INFO: the address overrides live\n // in that function, so reading the table directly here made this branch\n // blind to any deployment running its own token. devnet1's sRUSD\n // resolved on the chainId-passing branch above and threw here --\n // \"no token info found [token address 0x8a04...]\", with no chainId in\n // the message, which is what distinguishes the two call sites.\n const tokenInfos = getTokenInfosByChain(\n Number(chainId) as ReyaChainId | MoneyInOutChainId,\n );\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 = getTokenInfosByChain(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 const tokenInfos = TOKEN_INFO[chainId];\n return REYA_CHAINS_WITH_ADDRESS_OVERRIDES.has(chainId as ReyaChainId)\n ? withLocalAddressOverrides(tokenInfos)\n : tokenInfos;\n};\n\nexport const getRUSDUnderlyingTokenInfo = (\n chainId: ReyaChainId | MoneyInOutChainId,\n): TokenInfo => {\n const tokenInfo = getTokenInfosByChain(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"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@reyaxyz/common",
|
|
3
|
-
"version": "0.365.
|
|
3
|
+
"version": "0.365.2",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public",
|
|
6
6
|
"registry": "https://registry.npmjs.org"
|
|
@@ -43,5 +43,5 @@
|
|
|
43
43
|
"generate:coverage-badges": "npx istanbul-badges-readme --silent"
|
|
44
44
|
},
|
|
45
45
|
"packageManager": "pnpm@8.3.1",
|
|
46
|
-
"gitHead": "
|
|
46
|
+
"gitHead": "f09c1b532eddac6cd1d4324d12a9b13cb989f608"
|
|
47
47
|
}
|
|
@@ -4,7 +4,6 @@ import { ReyaChainId } from '../../types';
|
|
|
4
4
|
export type ServiceEnvironment =
|
|
5
5
|
| 'production'
|
|
6
6
|
| 'staging'
|
|
7
|
-
| 'test'
|
|
8
7
|
| 'devnet'
|
|
9
8
|
| 'localmainnet'
|
|
10
9
|
| 'localtestnet';
|
|
@@ -76,27 +75,7 @@ const API_CLIENT_CONFIGS: Record<ServiceEnvironment, ServiceConfig> = {
|
|
|
76
75
|
timeout: API_TIMEOUT,
|
|
77
76
|
logging: false,
|
|
78
77
|
},
|
|
79
|
-
|
|
80
|
-
chain: ReyaChainId.reyaCronos,
|
|
81
|
-
apiEndpoint: getEnvVar(
|
|
82
|
-
'NEXT_PUBLIC_REYA_API_ENDPOINT',
|
|
83
|
-
'https://api-cronos.reya.xyz',
|
|
84
|
-
),
|
|
85
|
-
webSocketEndpoint: getEnvVar(
|
|
86
|
-
'NEXT_PUBLIC_REYA_WEBSOCKET_ENDPOINT',
|
|
87
|
-
'wss://websocket-testnet.reya.xyz',
|
|
88
|
-
),
|
|
89
|
-
environment: getEnvVar(
|
|
90
|
-
'NEXT_PUBLIC_REYA_ENVIRONMENT',
|
|
91
|
-
'test',
|
|
92
|
-
) as ServiceEnvironment,
|
|
93
|
-
timeout: API_TIMEOUT,
|
|
94
|
-
logging: true,
|
|
95
|
-
},
|
|
96
|
-
// Devnet1 shares the cronos chain (89346162) but has its own
|
|
97
|
-
// sub-deploy at `reya-cronos.network` (distinct from `reya.xyz`).
|
|
98
|
-
// Added so UIs can offer "devnet" as a first-class environment
|
|
99
|
-
// selection rather than overriding `test`'s default endpoint.
|
|
78
|
+
// Devnet1 uses the live reya-cronos chain (89346162).
|
|
100
79
|
devnet: {
|
|
101
80
|
chain: ReyaChainId.reyaCronos,
|
|
102
81
|
apiEndpoint: getEnvVar(
|
|
@@ -117,5 +96,8 @@ const API_CLIENT_CONFIGS: Record<ServiceEnvironment, ServiceConfig> = {
|
|
|
117
96
|
};
|
|
118
97
|
|
|
119
98
|
export const getApiClientConfig = (env: ServiceEnvironment): ServiceConfig => {
|
|
120
|
-
|
|
99
|
+
if (!Object.prototype.hasOwnProperty.call(API_CLIENT_CONFIGS, env)) {
|
|
100
|
+
throw new Error(`Unsupported SDK environment: ${env}`);
|
|
101
|
+
}
|
|
102
|
+
return API_CLIENT_CONFIGS[env];
|
|
121
103
|
};
|
|
@@ -84,11 +84,10 @@ export const getAddress = (
|
|
|
84
84
|
contractName: ContractType,
|
|
85
85
|
): Address => {
|
|
86
86
|
// Normalize env-overridden addresses to lowercase. The hardcoded fallback
|
|
87
|
-
// map below stores lowercased values, and downstream comparisons
|
|
88
|
-
//
|
|
89
|
-
//
|
|
90
|
-
//
|
|
91
|
-
// OG-aware settlement path gets bypassed.
|
|
87
|
+
// map below stores lowercased values, and downstream comparisons that
|
|
88
|
+
// lowercase the runtime value with `convertToAddress` assume that
|
|
89
|
+
// invariant. Without this, a checksummed env value silently fails every
|
|
90
|
+
// such comparison.
|
|
92
91
|
const override = CONTRACT_ADDRESS_ENV_OVERRIDES[contractName];
|
|
93
92
|
if (override) return override.toLowerCase() as Address;
|
|
94
93
|
|
|
@@ -38,7 +38,7 @@ const localAddressOverride = (envName: string, fallback: Address): Address => {
|
|
|
38
38
|
* getTokenInfoByAddress threw "no token info found" for devnet's own sRUSD,
|
|
39
39
|
* which broke /v2/wallet/:address/accountBalances -- the RLP balance never
|
|
40
40
|
* appeared after staking rUSD. Each override still falls back to the compiled
|
|
41
|
-
* address when its env var is unset
|
|
41
|
+
* chain address when its env var is unset.
|
|
42
42
|
*
|
|
43
43
|
* Same root cause and same fix as the asset map in common-backend (#2903);
|
|
44
44
|
* these two must stay in step.
|