@reyaxyz/common 0.365.0 → 0.365.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -6,5 +6,5 @@
6
6
 
7
7
  | Statements | Branches | Functions | Lines |
8
8
  | --------------------------- | ----------------------- | ------------------------- | ----------------- |
9
- | ![Statements](https://img.shields.io/badge/statements-50.12%25-red.svg?style=flat) | ![Branches](https://img.shields.io/badge/branches-46.66%25-red.svg?style=flat) | ![Functions](https://img.shields.io/badge/functions-38.46%25-red.svg?style=flat) | ![Lines](https://img.shields.io/badge/lines-53.72%25-red.svg?style=flat) |
9
+ | ![Statements](https://img.shields.io/badge/statements-50.45%25-red.svg?style=flat) | ![Branches](https://img.shields.io/badge/branches-47.25%25-red.svg?style=flat) | ![Functions](https://img.shields.io/badge/functions-38.91%25-red.svg?style=flat) | ![Lines](https://img.shields.io/badge/lines-54%25-red.svg?style=flat) |
10
10
 
@@ -42,18 +42,7 @@ var API_CLIENT_CONFIGS = {
42
42
  timeout: utils_1.API_TIMEOUT,
43
43
  logging: false,
44
44
  },
45
- test: {
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
- return API_CLIENT_CONFIGS[env] || API_CLIENT_CONFIGS['test'];
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;AAmB1C,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,IAAI,EAAE;QACJ,KAAK,EAAE,mBAAW,CAAC,UAAU;QAC7B,WAAW,EAAE,SAAS,CACpB,+BAA+B,EAC/B,6BAA6B,CAC9B;QACD,iBAAiB,EAAE,SAAS,CAC1B,qCAAqC,EACrC,kCAAkC,CACnC;QACD,WAAW,EAAE,SAAS,CACpB,8BAA8B,EAC9B,MAAM,CACe;QACvB,OAAO,EAAE,mBAAW;QACpB,OAAO,EAAE,IAAI;KACd;IACD,6DAA6D;IAC7D,kEAAkE;IAClE,+DAA+D;IAC/D,8DAA8D;IAC9D,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,OAAO,kBAAkB,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAC/D,CAAC,CAAC;AAFW,QAAA,kBAAkB,sBAE7B","sourcesContent":["import { API_TIMEOUT } from '../../utils';\nimport { ReyaChainId } from '../../types';\n\nexport type ServiceEnvironment =\n | 'production'\n | 'staging'\n | 'test'\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 test: {\n chain: ReyaChainId.reyaCronos,\n apiEndpoint: getEnvVar(\n 'NEXT_PUBLIC_REYA_API_ENDPOINT',\n 'https://api-cronos.reya.xyz',\n ),\n webSocketEndpoint: getEnvVar(\n 'NEXT_PUBLIC_REYA_WEBSOCKET_ENDPOINT',\n 'wss://websocket-testnet.reya.xyz',\n ),\n environment: getEnvVar(\n 'NEXT_PUBLIC_REYA_ENVIRONMENT',\n 'test',\n ) as ServiceEnvironment,\n timeout: API_TIMEOUT,\n logging: true,\n },\n // Devnet1 shares the cronos chain (89346162) but has its own\n // sub-deploy at `reya-cronos.network` (distinct from `reya.xyz`).\n // Added so UIs can offer \"devnet\" as a first-class environment\n // selection rather than overriding `test`'s default endpoint.\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 return API_CLIENT_CONFIGS[env] || API_CLIENT_CONFIGS['test'];\n};\n"]}
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"]}
@@ -1,5 +1,5 @@
1
1
  import { ReyaChainId } from '../../types';
2
- export type ServiceEnvironment = 'production' | 'staging' | 'test' | 'devnet' | 'localmainnet' | 'localtestnet';
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,MAAM,GACN,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;AAoGD,eAAO,MAAM,kBAAkB,QAAS,kBAAkB,KAAG,aAE5D,CAAC"}
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"}
@@ -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, so cronos itself is a no-op.
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, so cronos itself is a no-op.\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"]}
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.0",
3
+ "version": "0.365.1",
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": "8bef4d5aa630fab81e24fe4cf684c82bba19710a"
46
+ "gitHead": "ff13ef71817cd76722adfd0d4e471e8a4c513344"
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
- test: {
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
- return API_CLIENT_CONFIGS[env] || API_CLIENT_CONFIGS['test'];
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
  };
@@ -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, so cronos itself is a no-op.
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.