@gfxlabs/oku-chains 1.12.2 → 1.12.4
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/browser.js +197 -7
- package/dist/index-mjs.js +191 -8
- package/dist/index.js +197 -7
- package/dist/types/definitions/arbitrum.d.ts +2 -1
- package/dist/types/definitions/base.d.ts +2 -1
- package/dist/types/definitions/bsc.d.ts +1 -1
- package/dist/types/definitions/optimism.d.ts +2 -1
- package/dist/types/definitions/polygon.d.ts +1 -1
- package/dist/types/definitions/worldchain.d.ts +4 -2
- package/dist/types/index.d.ts +63 -7
- package/dist/types/spec/index.d.ts +4 -2
- package/dist/types/util/lookup.d.ts +53 -0
- package/package.json +2 -2
package/dist/browser.js
CHANGED
|
@@ -146,7 +146,8 @@
|
|
|
146
146
|
usdcAddress: "0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8",
|
|
147
147
|
},
|
|
148
148
|
oku: {
|
|
149
|
-
|
|
149
|
+
router10: "0x822CFA9749d16Fb4B4F2B0515924cec69512893b",
|
|
150
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad",
|
|
150
151
|
limitOrderRegistry: "0x54dF9e11c7933a9cA3BD1E540B63dA15edAe40bf",
|
|
151
152
|
limitOrderRegistryDeployBlock: 98754575,
|
|
152
153
|
pricing: {
|
|
@@ -585,7 +586,8 @@
|
|
|
585
586
|
usdcAddress: "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
|
|
586
587
|
},
|
|
587
588
|
oku: {
|
|
588
|
-
|
|
589
|
+
router10: "0x822CFA9749d16Fb4B4F2B0515924cec69512893b",
|
|
590
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad",
|
|
589
591
|
limitOrderRegistry: "0xff8b754c64e9a8473bd6e1118d0eac67f0a8ae27",
|
|
590
592
|
limitOrderRegistryDeployBlock: 7644835,
|
|
591
593
|
pricing: {
|
|
@@ -1154,7 +1156,7 @@
|
|
|
1154
1156
|
wethAddress: "0x2170ed0880ac9a755fd29b2688956bd959f933f8",
|
|
1155
1157
|
},
|
|
1156
1158
|
oku: {
|
|
1157
|
-
|
|
1159
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad",
|
|
1158
1160
|
limitOrderRegistry: "0x19b9bd76028cab6f414ed1fc57400b75b5ca0627",
|
|
1159
1161
|
limitOrderRegistryDeployBlock: 34187988,
|
|
1160
1162
|
pricing: {
|
|
@@ -4063,7 +4065,8 @@
|
|
|
4063
4065
|
dexscreener: "optimism",
|
|
4064
4066
|
},
|
|
4065
4067
|
oku: {
|
|
4066
|
-
|
|
4068
|
+
router10: "0x822CFA9749d16Fb4B4F2B0515924cec69512893b",
|
|
4069
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad",
|
|
4067
4070
|
limitOrderRegistryDeployBlock: 105276132,
|
|
4068
4071
|
limitOrderRegistry: "0x54dF9e11c7933a9cA3BD1E540B63dA15edAe40bf",
|
|
4069
4072
|
customOrderTypes: {
|
|
@@ -4662,7 +4665,7 @@
|
|
|
4662
4665
|
wethAddress: "0x7ceb23fd6bc0add59e62ac25578270cff1b9f619",
|
|
4663
4666
|
},
|
|
4664
4667
|
oku: {
|
|
4665
|
-
|
|
4668
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad",
|
|
4666
4669
|
limitOrderRegistry: "0x54dF9e11c7933a9cA3BD1E540B63dA15edAe40bf",
|
|
4667
4670
|
limitOrderRegistryDeployBlock: 43640541,
|
|
4668
4671
|
pricing: {
|
|
@@ -6309,8 +6312,10 @@
|
|
|
6309
6312
|
wbtcAddress: "0x03c7054bcb39f7b2e5b2c7acb37583e32d70cfa3",
|
|
6310
6313
|
},
|
|
6311
6314
|
oku: {
|
|
6312
|
-
|
|
6313
|
-
|
|
6315
|
+
router10: "0x822CFA9749d16Fb4B4F2B0515924cec69512893b",
|
|
6316
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad",
|
|
6317
|
+
permit2Proxy10: "0x1B361B7cEce8920Bb5C3606B322EEC08FA85EB12",
|
|
6318
|
+
permit2Proxy11: "0x43830FE2074eaD6562586b512D87aa6af840a688",
|
|
6314
6319
|
pricing: {
|
|
6315
6320
|
nativeWrappedToken: "0x4200000000000000000000000000000000000006",
|
|
6316
6321
|
nativeWrappedName: "ETH",
|
|
@@ -6910,6 +6915,123 @@
|
|
|
6910
6915
|
return chain;
|
|
6911
6916
|
}
|
|
6912
6917
|
|
|
6918
|
+
/**
|
|
6919
|
+
* Error thrown when a network cannot be found by any lookup method.
|
|
6920
|
+
*/
|
|
6921
|
+
class NetworkNotFoundError extends Error {
|
|
6922
|
+
constructor(input) {
|
|
6923
|
+
super(`chain not found: ${String(input)}`);
|
|
6924
|
+
this.name = "NetworkNotFoundError";
|
|
6925
|
+
}
|
|
6926
|
+
}
|
|
6927
|
+
/**
|
|
6928
|
+
* Build a lookup index from a list of chains for fast repeated lookups.
|
|
6929
|
+
* Pre-computes maps keyed by chain ID, internal name, and CAIP-2 identifier.
|
|
6930
|
+
*/
|
|
6931
|
+
function buildNetworkIndex(chains) {
|
|
6932
|
+
const byId = new Map();
|
|
6933
|
+
const byName = new Map();
|
|
6934
|
+
const byCAIP2 = new Map();
|
|
6935
|
+
for (const chain of chains) {
|
|
6936
|
+
byId.set(chain.id, chain);
|
|
6937
|
+
byName.set(chain.internalName, chain);
|
|
6938
|
+
byCAIP2.set(`${chain.caip2Namespace}:${chain.id}`, chain);
|
|
6939
|
+
}
|
|
6940
|
+
return { byId, byName, byCAIP2 };
|
|
6941
|
+
}
|
|
6942
|
+
/**
|
|
6943
|
+
* Look up a chain by its numeric chain ID.
|
|
6944
|
+
*/
|
|
6945
|
+
function networkById$1(id, idx) {
|
|
6946
|
+
const chain = idx.byId.get(id);
|
|
6947
|
+
if (!chain) {
|
|
6948
|
+
throw new NetworkNotFoundError(id);
|
|
6949
|
+
}
|
|
6950
|
+
return chain;
|
|
6951
|
+
}
|
|
6952
|
+
/**
|
|
6953
|
+
* Look up a chain by its internal name (e.g. "arbitrum", "mainnet").
|
|
6954
|
+
*/
|
|
6955
|
+
function networkByName$1(name, idx) {
|
|
6956
|
+
const chain = idx.byName.get(name);
|
|
6957
|
+
if (!chain) {
|
|
6958
|
+
throw new NetworkNotFoundError(name);
|
|
6959
|
+
}
|
|
6960
|
+
return chain;
|
|
6961
|
+
}
|
|
6962
|
+
/**
|
|
6963
|
+
* Look up a chain by its CAIP-2 identifier string (e.g. "eip155:1").
|
|
6964
|
+
*/
|
|
6965
|
+
function networkByCAIP2$1(caip2, idx) {
|
|
6966
|
+
// Validate the format
|
|
6967
|
+
parseCAIP2(caip2);
|
|
6968
|
+
const chain = idx.byCAIP2.get(caip2);
|
|
6969
|
+
if (!chain) {
|
|
6970
|
+
throw new NetworkNotFoundError(caip2);
|
|
6971
|
+
}
|
|
6972
|
+
return chain;
|
|
6973
|
+
}
|
|
6974
|
+
/**
|
|
6975
|
+
* Look up a chain from a string. Tries, in order:
|
|
6976
|
+
* 1. CAIP-2 identifier (if the string contains ":")
|
|
6977
|
+
* 2. Internal name
|
|
6978
|
+
* 3. Numeric chain ID (parsed from string)
|
|
6979
|
+
*
|
|
6980
|
+
* Mirrors the Go `NetworkByString` function.
|
|
6981
|
+
*/
|
|
6982
|
+
function networkByString$1(s, idx) {
|
|
6983
|
+
if (s === "") {
|
|
6984
|
+
throw new NetworkNotFoundError("empty string");
|
|
6985
|
+
}
|
|
6986
|
+
// Try CAIP-2
|
|
6987
|
+
if (s.includes(":")) {
|
|
6988
|
+
return networkByCAIP2$1(s, idx);
|
|
6989
|
+
}
|
|
6990
|
+
// Try internal name
|
|
6991
|
+
const byName = idx.byName.get(s);
|
|
6992
|
+
if (byName) {
|
|
6993
|
+
return byName;
|
|
6994
|
+
}
|
|
6995
|
+
// Try numeric chain ID
|
|
6996
|
+
const parsed = Number(s);
|
|
6997
|
+
if (!Number.isNaN(parsed) && Number.isFinite(parsed)) {
|
|
6998
|
+
const byId = idx.byId.get(Math.trunc(parsed));
|
|
6999
|
+
if (byId) {
|
|
7000
|
+
return byId;
|
|
7001
|
+
}
|
|
7002
|
+
}
|
|
7003
|
+
throw new NetworkNotFoundError(s);
|
|
7004
|
+
}
|
|
7005
|
+
/**
|
|
7006
|
+
* Resolve a chain from an arbitrary input. Accepts:
|
|
7007
|
+
* - `number`: treated as chain ID
|
|
7008
|
+
* - `string`: tried as CAIP-2 identifier (if it contains ":"), then as
|
|
7009
|
+
* internal name, then as a numeric chain ID string
|
|
7010
|
+
* - `IChainInfo`: returned directly (pass-through)
|
|
7011
|
+
*
|
|
7012
|
+
* Mirrors the Go `NetworkByAny` function.
|
|
7013
|
+
*
|
|
7014
|
+
* @throws {NetworkNotFoundError} if no matching chain is found
|
|
7015
|
+
*/
|
|
7016
|
+
function networkByAny$1(v, idx) {
|
|
7017
|
+
if (v == null) {
|
|
7018
|
+
throw new NetworkNotFoundError("null");
|
|
7019
|
+
}
|
|
7020
|
+
// Pass-through if already a chain config object
|
|
7021
|
+
if (typeof v === "object" && "id" in v && "internalName" in v) {
|
|
7022
|
+
return v;
|
|
7023
|
+
}
|
|
7024
|
+
// Numeric chain ID
|
|
7025
|
+
if (typeof v === "number") {
|
|
7026
|
+
return networkById$1(Math.trunc(v), idx);
|
|
7027
|
+
}
|
|
7028
|
+
// String: CAIP-2, name, or numeric string
|
|
7029
|
+
if (typeof v === "string") {
|
|
7030
|
+
return networkByString$1(v, idx);
|
|
7031
|
+
}
|
|
7032
|
+
throw new NetworkNotFoundError(v);
|
|
7033
|
+
}
|
|
7034
|
+
|
|
6913
7035
|
const MAINNET_CHAINS = [
|
|
6914
7036
|
arbitrum,
|
|
6915
7037
|
base,
|
|
@@ -6960,8 +7082,70 @@
|
|
|
6960
7082
|
gensyn,
|
|
6961
7083
|
pharos,
|
|
6962
7084
|
];
|
|
7085
|
+
/** Pre-built lookup index over MAINNET_CHAINS (like Go's module-level maps). */
|
|
7086
|
+
const _idx = buildNetworkIndex(MAINNET_CHAINS);
|
|
7087
|
+
/**
|
|
7088
|
+
* Resolve a chain from an arbitrary input. Accepts:
|
|
7089
|
+
* - `number`: treated as chain ID
|
|
7090
|
+
* - `string`: tried as CAIP-2 identifier (if it contains ":"), then as
|
|
7091
|
+
* internal name, then as a numeric chain ID string
|
|
7092
|
+
* - `IChainInfo`: returned directly (pass-through)
|
|
7093
|
+
*
|
|
7094
|
+
* Mirrors the Go `NetworkByAny` function.
|
|
7095
|
+
*
|
|
7096
|
+
* @example
|
|
7097
|
+
* ```ts
|
|
7098
|
+
* import { networkByAny } from "@gfxlabs/oku-chains";
|
|
7099
|
+
*
|
|
7100
|
+
* networkByAny(1) // by chain ID
|
|
7101
|
+
* networkByAny("mainnet") // by internal name
|
|
7102
|
+
* networkByAny("eip155:1") // by CAIP-2
|
|
7103
|
+
* networkByAny("42161") // by chain ID string
|
|
7104
|
+
* ```
|
|
7105
|
+
*
|
|
7106
|
+
* @throws {NetworkNotFoundError} if no matching chain is found
|
|
7107
|
+
*/
|
|
7108
|
+
function networkByAny(v) {
|
|
7109
|
+
return networkByAny$1(v, _idx);
|
|
7110
|
+
}
|
|
7111
|
+
/**
|
|
7112
|
+
* Look up a chain by its numeric chain ID.
|
|
7113
|
+
*
|
|
7114
|
+
* @throws {NetworkNotFoundError} if no matching chain is found
|
|
7115
|
+
*/
|
|
7116
|
+
function networkById(id) {
|
|
7117
|
+
return networkById$1(id, _idx);
|
|
7118
|
+
}
|
|
7119
|
+
/**
|
|
7120
|
+
* Look up a chain by its internal name (e.g. "arbitrum", "mainnet").
|
|
7121
|
+
*
|
|
7122
|
+
* @throws {NetworkNotFoundError} if no matching chain is found
|
|
7123
|
+
*/
|
|
7124
|
+
function networkByName(name) {
|
|
7125
|
+
return networkByName$1(name, _idx);
|
|
7126
|
+
}
|
|
7127
|
+
/**
|
|
7128
|
+
* Look up a chain from a string. Tries, in order:
|
|
7129
|
+
* 1. CAIP-2 identifier (if the string contains ":")
|
|
7130
|
+
* 2. Internal name
|
|
7131
|
+
* 3. Numeric chain ID (parsed from string)
|
|
7132
|
+
*
|
|
7133
|
+
* @throws {NetworkNotFoundError} if no matching chain is found
|
|
7134
|
+
*/
|
|
7135
|
+
function networkByString(s) {
|
|
7136
|
+
return networkByString$1(s, _idx);
|
|
7137
|
+
}
|
|
7138
|
+
/**
|
|
7139
|
+
* Look up a chain by its CAIP-2 identifier string (e.g. "eip155:1").
|
|
7140
|
+
*
|
|
7141
|
+
* @throws {NetworkNotFoundError} if no matching chain is found
|
|
7142
|
+
*/
|
|
7143
|
+
function networkByCAIP2(caip2) {
|
|
7144
|
+
return networkByCAIP2$1(caip2, _idx);
|
|
7145
|
+
}
|
|
6963
7146
|
|
|
6964
7147
|
exports.MAINNET_CHAINS = MAINNET_CHAINS;
|
|
7148
|
+
exports.NetworkNotFoundError = NetworkNotFoundError;
|
|
6965
7149
|
exports.arbitrum = arbitrum;
|
|
6966
7150
|
exports.avalanche = avalanche;
|
|
6967
7151
|
exports.base = base;
|
|
@@ -6969,6 +7153,7 @@
|
|
|
6969
7153
|
exports.bob = bob;
|
|
6970
7154
|
exports.boba = boba;
|
|
6971
7155
|
exports.bsc = bsc;
|
|
7156
|
+
exports.buildNetworkIndex = buildNetworkIndex;
|
|
6972
7157
|
exports.celo = celo;
|
|
6973
7158
|
exports.corn = corn;
|
|
6974
7159
|
exports.etherlink = etherlink;
|
|
@@ -6991,6 +7176,11 @@
|
|
|
6991
7176
|
exports.metal = metal;
|
|
6992
7177
|
exports.monad = monad;
|
|
6993
7178
|
exports.moonbeam = moonbeam;
|
|
7179
|
+
exports.networkByAny = networkByAny;
|
|
7180
|
+
exports.networkByCAIP2 = networkByCAIP2;
|
|
7181
|
+
exports.networkById = networkById;
|
|
7182
|
+
exports.networkByName = networkByName;
|
|
7183
|
+
exports.networkByString = networkByString;
|
|
6994
7184
|
exports.nibiru = nibiru;
|
|
6995
7185
|
exports.optimism = optimism;
|
|
6996
7186
|
exports.parseCAIP2 = parseCAIP2;
|
package/dist/index-mjs.js
CHANGED
|
@@ -143,7 +143,8 @@ const arbitrum = makeConfig({
|
|
|
143
143
|
usdcAddress: "0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8",
|
|
144
144
|
},
|
|
145
145
|
oku: {
|
|
146
|
-
|
|
146
|
+
router10: "0x822CFA9749d16Fb4B4F2B0515924cec69512893b",
|
|
147
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad",
|
|
147
148
|
limitOrderRegistry: "0x54dF9e11c7933a9cA3BD1E540B63dA15edAe40bf",
|
|
148
149
|
limitOrderRegistryDeployBlock: 98754575,
|
|
149
150
|
pricing: {
|
|
@@ -582,7 +583,8 @@ const base = makeConfig({
|
|
|
582
583
|
usdcAddress: "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
|
|
583
584
|
},
|
|
584
585
|
oku: {
|
|
585
|
-
|
|
586
|
+
router10: "0x822CFA9749d16Fb4B4F2B0515924cec69512893b",
|
|
587
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad",
|
|
586
588
|
limitOrderRegistry: "0xff8b754c64e9a8473bd6e1118d0eac67f0a8ae27",
|
|
587
589
|
limitOrderRegistryDeployBlock: 7644835,
|
|
588
590
|
pricing: {
|
|
@@ -1151,7 +1153,7 @@ const bsc = makeConfig({
|
|
|
1151
1153
|
wethAddress: "0x2170ed0880ac9a755fd29b2688956bd959f933f8",
|
|
1152
1154
|
},
|
|
1153
1155
|
oku: {
|
|
1154
|
-
|
|
1156
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad",
|
|
1155
1157
|
limitOrderRegistry: "0x19b9bd76028cab6f414ed1fc57400b75b5ca0627",
|
|
1156
1158
|
limitOrderRegistryDeployBlock: 34187988,
|
|
1157
1159
|
pricing: {
|
|
@@ -4060,7 +4062,8 @@ const optimism = makeConfig({
|
|
|
4060
4062
|
dexscreener: "optimism",
|
|
4061
4063
|
},
|
|
4062
4064
|
oku: {
|
|
4063
|
-
|
|
4065
|
+
router10: "0x822CFA9749d16Fb4B4F2B0515924cec69512893b",
|
|
4066
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad",
|
|
4064
4067
|
limitOrderRegistryDeployBlock: 105276132,
|
|
4065
4068
|
limitOrderRegistry: "0x54dF9e11c7933a9cA3BD1E540B63dA15edAe40bf",
|
|
4066
4069
|
customOrderTypes: {
|
|
@@ -4659,7 +4662,7 @@ const polygon = makeConfig({
|
|
|
4659
4662
|
wethAddress: "0x7ceb23fd6bc0add59e62ac25578270cff1b9f619",
|
|
4660
4663
|
},
|
|
4661
4664
|
oku: {
|
|
4662
|
-
|
|
4665
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad",
|
|
4663
4666
|
limitOrderRegistry: "0x54dF9e11c7933a9cA3BD1E540B63dA15edAe40bf",
|
|
4664
4667
|
limitOrderRegistryDeployBlock: 43640541,
|
|
4665
4668
|
pricing: {
|
|
@@ -6306,8 +6309,10 @@ const worldchain = makeConfig({
|
|
|
6306
6309
|
wbtcAddress: "0x03c7054bcb39f7b2e5b2c7acb37583e32d70cfa3",
|
|
6307
6310
|
},
|
|
6308
6311
|
oku: {
|
|
6309
|
-
|
|
6310
|
-
|
|
6312
|
+
router10: "0x822CFA9749d16Fb4B4F2B0515924cec69512893b",
|
|
6313
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad",
|
|
6314
|
+
permit2Proxy10: "0x1B361B7cEce8920Bb5C3606B322EEC08FA85EB12",
|
|
6315
|
+
permit2Proxy11: "0x43830FE2074eaD6562586b512D87aa6af840a688",
|
|
6311
6316
|
pricing: {
|
|
6312
6317
|
nativeWrappedToken: "0x4200000000000000000000000000000000000006",
|
|
6313
6318
|
nativeWrappedName: "ETH",
|
|
@@ -6907,6 +6912,123 @@ function fromCAIP2(caip2, chains) {
|
|
|
6907
6912
|
return chain;
|
|
6908
6913
|
}
|
|
6909
6914
|
|
|
6915
|
+
/**
|
|
6916
|
+
* Error thrown when a network cannot be found by any lookup method.
|
|
6917
|
+
*/
|
|
6918
|
+
class NetworkNotFoundError extends Error {
|
|
6919
|
+
constructor(input) {
|
|
6920
|
+
super(`chain not found: ${String(input)}`);
|
|
6921
|
+
this.name = "NetworkNotFoundError";
|
|
6922
|
+
}
|
|
6923
|
+
}
|
|
6924
|
+
/**
|
|
6925
|
+
* Build a lookup index from a list of chains for fast repeated lookups.
|
|
6926
|
+
* Pre-computes maps keyed by chain ID, internal name, and CAIP-2 identifier.
|
|
6927
|
+
*/
|
|
6928
|
+
function buildNetworkIndex(chains) {
|
|
6929
|
+
const byId = new Map();
|
|
6930
|
+
const byName = new Map();
|
|
6931
|
+
const byCAIP2 = new Map();
|
|
6932
|
+
for (const chain of chains) {
|
|
6933
|
+
byId.set(chain.id, chain);
|
|
6934
|
+
byName.set(chain.internalName, chain);
|
|
6935
|
+
byCAIP2.set(`${chain.caip2Namespace}:${chain.id}`, chain);
|
|
6936
|
+
}
|
|
6937
|
+
return { byId, byName, byCAIP2 };
|
|
6938
|
+
}
|
|
6939
|
+
/**
|
|
6940
|
+
* Look up a chain by its numeric chain ID.
|
|
6941
|
+
*/
|
|
6942
|
+
function networkById$1(id, idx) {
|
|
6943
|
+
const chain = idx.byId.get(id);
|
|
6944
|
+
if (!chain) {
|
|
6945
|
+
throw new NetworkNotFoundError(id);
|
|
6946
|
+
}
|
|
6947
|
+
return chain;
|
|
6948
|
+
}
|
|
6949
|
+
/**
|
|
6950
|
+
* Look up a chain by its internal name (e.g. "arbitrum", "mainnet").
|
|
6951
|
+
*/
|
|
6952
|
+
function networkByName$1(name, idx) {
|
|
6953
|
+
const chain = idx.byName.get(name);
|
|
6954
|
+
if (!chain) {
|
|
6955
|
+
throw new NetworkNotFoundError(name);
|
|
6956
|
+
}
|
|
6957
|
+
return chain;
|
|
6958
|
+
}
|
|
6959
|
+
/**
|
|
6960
|
+
* Look up a chain by its CAIP-2 identifier string (e.g. "eip155:1").
|
|
6961
|
+
*/
|
|
6962
|
+
function networkByCAIP2$1(caip2, idx) {
|
|
6963
|
+
// Validate the format
|
|
6964
|
+
parseCAIP2(caip2);
|
|
6965
|
+
const chain = idx.byCAIP2.get(caip2);
|
|
6966
|
+
if (!chain) {
|
|
6967
|
+
throw new NetworkNotFoundError(caip2);
|
|
6968
|
+
}
|
|
6969
|
+
return chain;
|
|
6970
|
+
}
|
|
6971
|
+
/**
|
|
6972
|
+
* Look up a chain from a string. Tries, in order:
|
|
6973
|
+
* 1. CAIP-2 identifier (if the string contains ":")
|
|
6974
|
+
* 2. Internal name
|
|
6975
|
+
* 3. Numeric chain ID (parsed from string)
|
|
6976
|
+
*
|
|
6977
|
+
* Mirrors the Go `NetworkByString` function.
|
|
6978
|
+
*/
|
|
6979
|
+
function networkByString$1(s, idx) {
|
|
6980
|
+
if (s === "") {
|
|
6981
|
+
throw new NetworkNotFoundError("empty string");
|
|
6982
|
+
}
|
|
6983
|
+
// Try CAIP-2
|
|
6984
|
+
if (s.includes(":")) {
|
|
6985
|
+
return networkByCAIP2$1(s, idx);
|
|
6986
|
+
}
|
|
6987
|
+
// Try internal name
|
|
6988
|
+
const byName = idx.byName.get(s);
|
|
6989
|
+
if (byName) {
|
|
6990
|
+
return byName;
|
|
6991
|
+
}
|
|
6992
|
+
// Try numeric chain ID
|
|
6993
|
+
const parsed = Number(s);
|
|
6994
|
+
if (!Number.isNaN(parsed) && Number.isFinite(parsed)) {
|
|
6995
|
+
const byId = idx.byId.get(Math.trunc(parsed));
|
|
6996
|
+
if (byId) {
|
|
6997
|
+
return byId;
|
|
6998
|
+
}
|
|
6999
|
+
}
|
|
7000
|
+
throw new NetworkNotFoundError(s);
|
|
7001
|
+
}
|
|
7002
|
+
/**
|
|
7003
|
+
* Resolve a chain from an arbitrary input. Accepts:
|
|
7004
|
+
* - `number`: treated as chain ID
|
|
7005
|
+
* - `string`: tried as CAIP-2 identifier (if it contains ":"), then as
|
|
7006
|
+
* internal name, then as a numeric chain ID string
|
|
7007
|
+
* - `IChainInfo`: returned directly (pass-through)
|
|
7008
|
+
*
|
|
7009
|
+
* Mirrors the Go `NetworkByAny` function.
|
|
7010
|
+
*
|
|
7011
|
+
* @throws {NetworkNotFoundError} if no matching chain is found
|
|
7012
|
+
*/
|
|
7013
|
+
function networkByAny$1(v, idx) {
|
|
7014
|
+
if (v == null) {
|
|
7015
|
+
throw new NetworkNotFoundError("null");
|
|
7016
|
+
}
|
|
7017
|
+
// Pass-through if already a chain config object
|
|
7018
|
+
if (typeof v === "object" && "id" in v && "internalName" in v) {
|
|
7019
|
+
return v;
|
|
7020
|
+
}
|
|
7021
|
+
// Numeric chain ID
|
|
7022
|
+
if (typeof v === "number") {
|
|
7023
|
+
return networkById$1(Math.trunc(v), idx);
|
|
7024
|
+
}
|
|
7025
|
+
// String: CAIP-2, name, or numeric string
|
|
7026
|
+
if (typeof v === "string") {
|
|
7027
|
+
return networkByString$1(v, idx);
|
|
7028
|
+
}
|
|
7029
|
+
throw new NetworkNotFoundError(v);
|
|
7030
|
+
}
|
|
7031
|
+
|
|
6910
7032
|
const MAINNET_CHAINS = [
|
|
6911
7033
|
arbitrum,
|
|
6912
7034
|
base,
|
|
@@ -6957,5 +7079,66 @@ const MAINNET_CHAINS = [
|
|
|
6957
7079
|
gensyn,
|
|
6958
7080
|
pharos,
|
|
6959
7081
|
];
|
|
7082
|
+
/** Pre-built lookup index over MAINNET_CHAINS (like Go's module-level maps). */
|
|
7083
|
+
const _idx = buildNetworkIndex(MAINNET_CHAINS);
|
|
7084
|
+
/**
|
|
7085
|
+
* Resolve a chain from an arbitrary input. Accepts:
|
|
7086
|
+
* - `number`: treated as chain ID
|
|
7087
|
+
* - `string`: tried as CAIP-2 identifier (if it contains ":"), then as
|
|
7088
|
+
* internal name, then as a numeric chain ID string
|
|
7089
|
+
* - `IChainInfo`: returned directly (pass-through)
|
|
7090
|
+
*
|
|
7091
|
+
* Mirrors the Go `NetworkByAny` function.
|
|
7092
|
+
*
|
|
7093
|
+
* @example
|
|
7094
|
+
* ```ts
|
|
7095
|
+
* import { networkByAny } from "@gfxlabs/oku-chains";
|
|
7096
|
+
*
|
|
7097
|
+
* networkByAny(1) // by chain ID
|
|
7098
|
+
* networkByAny("mainnet") // by internal name
|
|
7099
|
+
* networkByAny("eip155:1") // by CAIP-2
|
|
7100
|
+
* networkByAny("42161") // by chain ID string
|
|
7101
|
+
* ```
|
|
7102
|
+
*
|
|
7103
|
+
* @throws {NetworkNotFoundError} if no matching chain is found
|
|
7104
|
+
*/
|
|
7105
|
+
function networkByAny(v) {
|
|
7106
|
+
return networkByAny$1(v, _idx);
|
|
7107
|
+
}
|
|
7108
|
+
/**
|
|
7109
|
+
* Look up a chain by its numeric chain ID.
|
|
7110
|
+
*
|
|
7111
|
+
* @throws {NetworkNotFoundError} if no matching chain is found
|
|
7112
|
+
*/
|
|
7113
|
+
function networkById(id) {
|
|
7114
|
+
return networkById$1(id, _idx);
|
|
7115
|
+
}
|
|
7116
|
+
/**
|
|
7117
|
+
* Look up a chain by its internal name (e.g. "arbitrum", "mainnet").
|
|
7118
|
+
*
|
|
7119
|
+
* @throws {NetworkNotFoundError} if no matching chain is found
|
|
7120
|
+
*/
|
|
7121
|
+
function networkByName(name) {
|
|
7122
|
+
return networkByName$1(name, _idx);
|
|
7123
|
+
}
|
|
7124
|
+
/**
|
|
7125
|
+
* Look up a chain from a string. Tries, in order:
|
|
7126
|
+
* 1. CAIP-2 identifier (if the string contains ":")
|
|
7127
|
+
* 2. Internal name
|
|
7128
|
+
* 3. Numeric chain ID (parsed from string)
|
|
7129
|
+
*
|
|
7130
|
+
* @throws {NetworkNotFoundError} if no matching chain is found
|
|
7131
|
+
*/
|
|
7132
|
+
function networkByString(s) {
|
|
7133
|
+
return networkByString$1(s, _idx);
|
|
7134
|
+
}
|
|
7135
|
+
/**
|
|
7136
|
+
* Look up a chain by its CAIP-2 identifier string (e.g. "eip155:1").
|
|
7137
|
+
*
|
|
7138
|
+
* @throws {NetworkNotFoundError} if no matching chain is found
|
|
7139
|
+
*/
|
|
7140
|
+
function networkByCAIP2(caip2) {
|
|
7141
|
+
return networkByCAIP2$1(caip2, _idx);
|
|
7142
|
+
}
|
|
6960
7143
|
|
|
6961
|
-
export { MAINNET_CHAINS, arbitrum, avalanche, base, blast, bob, boba, bsc, celo, corn, etherlink, filecoin, formatCAIP2, fromCAIP2, gensyn, gnosis, goat, hemi, hyperevm, lens, lightlink, linea, lisk, mainnet, manta, mantle, matchain, metal, monad, moonbeam, nibiru, optimism, parseCAIP2, pharos, plasma, polygon, polygonZkEvm, redbelly, ronin, rootstock, saga, scroll, sei, sonic, taiko, telos, toCAIP2, tronShasta, unichain, worldchain, xdc, zerog, zkSync };
|
|
7144
|
+
export { MAINNET_CHAINS, NetworkNotFoundError, arbitrum, avalanche, base, blast, bob, boba, bsc, buildNetworkIndex, celo, corn, etherlink, filecoin, formatCAIP2, fromCAIP2, gensyn, gnosis, goat, hemi, hyperevm, lens, lightlink, linea, lisk, mainnet, manta, mantle, matchain, metal, monad, moonbeam, networkByAny, networkByCAIP2, networkById, networkByName, networkByString, nibiru, optimism, parseCAIP2, pharos, plasma, polygon, polygonZkEvm, redbelly, ronin, rootstock, saga, scroll, sei, sonic, taiko, telos, toCAIP2, tronShasta, unichain, worldchain, xdc, zerog, zkSync };
|
package/dist/index.js
CHANGED
|
@@ -145,7 +145,8 @@ const arbitrum = makeConfig({
|
|
|
145
145
|
usdcAddress: "0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8",
|
|
146
146
|
},
|
|
147
147
|
oku: {
|
|
148
|
-
|
|
148
|
+
router10: "0x822CFA9749d16Fb4B4F2B0515924cec69512893b",
|
|
149
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad",
|
|
149
150
|
limitOrderRegistry: "0x54dF9e11c7933a9cA3BD1E540B63dA15edAe40bf",
|
|
150
151
|
limitOrderRegistryDeployBlock: 98754575,
|
|
151
152
|
pricing: {
|
|
@@ -584,7 +585,8 @@ const base = makeConfig({
|
|
|
584
585
|
usdcAddress: "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
|
|
585
586
|
},
|
|
586
587
|
oku: {
|
|
587
|
-
|
|
588
|
+
router10: "0x822CFA9749d16Fb4B4F2B0515924cec69512893b",
|
|
589
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad",
|
|
588
590
|
limitOrderRegistry: "0xff8b754c64e9a8473bd6e1118d0eac67f0a8ae27",
|
|
589
591
|
limitOrderRegistryDeployBlock: 7644835,
|
|
590
592
|
pricing: {
|
|
@@ -1153,7 +1155,7 @@ const bsc = makeConfig({
|
|
|
1153
1155
|
wethAddress: "0x2170ed0880ac9a755fd29b2688956bd959f933f8",
|
|
1154
1156
|
},
|
|
1155
1157
|
oku: {
|
|
1156
|
-
|
|
1158
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad",
|
|
1157
1159
|
limitOrderRegistry: "0x19b9bd76028cab6f414ed1fc57400b75b5ca0627",
|
|
1158
1160
|
limitOrderRegistryDeployBlock: 34187988,
|
|
1159
1161
|
pricing: {
|
|
@@ -4062,7 +4064,8 @@ const optimism = makeConfig({
|
|
|
4062
4064
|
dexscreener: "optimism",
|
|
4063
4065
|
},
|
|
4064
4066
|
oku: {
|
|
4065
|
-
|
|
4067
|
+
router10: "0x822CFA9749d16Fb4B4F2B0515924cec69512893b",
|
|
4068
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad",
|
|
4066
4069
|
limitOrderRegistryDeployBlock: 105276132,
|
|
4067
4070
|
limitOrderRegistry: "0x54dF9e11c7933a9cA3BD1E540B63dA15edAe40bf",
|
|
4068
4071
|
customOrderTypes: {
|
|
@@ -4661,7 +4664,7 @@ const polygon = makeConfig({
|
|
|
4661
4664
|
wethAddress: "0x7ceb23fd6bc0add59e62ac25578270cff1b9f619",
|
|
4662
4665
|
},
|
|
4663
4666
|
oku: {
|
|
4664
|
-
|
|
4667
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad",
|
|
4665
4668
|
limitOrderRegistry: "0x54dF9e11c7933a9cA3BD1E540B63dA15edAe40bf",
|
|
4666
4669
|
limitOrderRegistryDeployBlock: 43640541,
|
|
4667
4670
|
pricing: {
|
|
@@ -6308,8 +6311,10 @@ const worldchain = makeConfig({
|
|
|
6308
6311
|
wbtcAddress: "0x03c7054bcb39f7b2e5b2c7acb37583e32d70cfa3",
|
|
6309
6312
|
},
|
|
6310
6313
|
oku: {
|
|
6311
|
-
|
|
6312
|
-
|
|
6314
|
+
router10: "0x822CFA9749d16Fb4B4F2B0515924cec69512893b",
|
|
6315
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad",
|
|
6316
|
+
permit2Proxy10: "0x1B361B7cEce8920Bb5C3606B322EEC08FA85EB12",
|
|
6317
|
+
permit2Proxy11: "0x43830FE2074eaD6562586b512D87aa6af840a688",
|
|
6313
6318
|
pricing: {
|
|
6314
6319
|
nativeWrappedToken: "0x4200000000000000000000000000000000000006",
|
|
6315
6320
|
nativeWrappedName: "ETH",
|
|
@@ -6909,6 +6914,123 @@ function fromCAIP2(caip2, chains) {
|
|
|
6909
6914
|
return chain;
|
|
6910
6915
|
}
|
|
6911
6916
|
|
|
6917
|
+
/**
|
|
6918
|
+
* Error thrown when a network cannot be found by any lookup method.
|
|
6919
|
+
*/
|
|
6920
|
+
class NetworkNotFoundError extends Error {
|
|
6921
|
+
constructor(input) {
|
|
6922
|
+
super(`chain not found: ${String(input)}`);
|
|
6923
|
+
this.name = "NetworkNotFoundError";
|
|
6924
|
+
}
|
|
6925
|
+
}
|
|
6926
|
+
/**
|
|
6927
|
+
* Build a lookup index from a list of chains for fast repeated lookups.
|
|
6928
|
+
* Pre-computes maps keyed by chain ID, internal name, and CAIP-2 identifier.
|
|
6929
|
+
*/
|
|
6930
|
+
function buildNetworkIndex(chains) {
|
|
6931
|
+
const byId = new Map();
|
|
6932
|
+
const byName = new Map();
|
|
6933
|
+
const byCAIP2 = new Map();
|
|
6934
|
+
for (const chain of chains) {
|
|
6935
|
+
byId.set(chain.id, chain);
|
|
6936
|
+
byName.set(chain.internalName, chain);
|
|
6937
|
+
byCAIP2.set(`${chain.caip2Namespace}:${chain.id}`, chain);
|
|
6938
|
+
}
|
|
6939
|
+
return { byId, byName, byCAIP2 };
|
|
6940
|
+
}
|
|
6941
|
+
/**
|
|
6942
|
+
* Look up a chain by its numeric chain ID.
|
|
6943
|
+
*/
|
|
6944
|
+
function networkById$1(id, idx) {
|
|
6945
|
+
const chain = idx.byId.get(id);
|
|
6946
|
+
if (!chain) {
|
|
6947
|
+
throw new NetworkNotFoundError(id);
|
|
6948
|
+
}
|
|
6949
|
+
return chain;
|
|
6950
|
+
}
|
|
6951
|
+
/**
|
|
6952
|
+
* Look up a chain by its internal name (e.g. "arbitrum", "mainnet").
|
|
6953
|
+
*/
|
|
6954
|
+
function networkByName$1(name, idx) {
|
|
6955
|
+
const chain = idx.byName.get(name);
|
|
6956
|
+
if (!chain) {
|
|
6957
|
+
throw new NetworkNotFoundError(name);
|
|
6958
|
+
}
|
|
6959
|
+
return chain;
|
|
6960
|
+
}
|
|
6961
|
+
/**
|
|
6962
|
+
* Look up a chain by its CAIP-2 identifier string (e.g. "eip155:1").
|
|
6963
|
+
*/
|
|
6964
|
+
function networkByCAIP2$1(caip2, idx) {
|
|
6965
|
+
// Validate the format
|
|
6966
|
+
parseCAIP2(caip2);
|
|
6967
|
+
const chain = idx.byCAIP2.get(caip2);
|
|
6968
|
+
if (!chain) {
|
|
6969
|
+
throw new NetworkNotFoundError(caip2);
|
|
6970
|
+
}
|
|
6971
|
+
return chain;
|
|
6972
|
+
}
|
|
6973
|
+
/**
|
|
6974
|
+
* Look up a chain from a string. Tries, in order:
|
|
6975
|
+
* 1. CAIP-2 identifier (if the string contains ":")
|
|
6976
|
+
* 2. Internal name
|
|
6977
|
+
* 3. Numeric chain ID (parsed from string)
|
|
6978
|
+
*
|
|
6979
|
+
* Mirrors the Go `NetworkByString` function.
|
|
6980
|
+
*/
|
|
6981
|
+
function networkByString$1(s, idx) {
|
|
6982
|
+
if (s === "") {
|
|
6983
|
+
throw new NetworkNotFoundError("empty string");
|
|
6984
|
+
}
|
|
6985
|
+
// Try CAIP-2
|
|
6986
|
+
if (s.includes(":")) {
|
|
6987
|
+
return networkByCAIP2$1(s, idx);
|
|
6988
|
+
}
|
|
6989
|
+
// Try internal name
|
|
6990
|
+
const byName = idx.byName.get(s);
|
|
6991
|
+
if (byName) {
|
|
6992
|
+
return byName;
|
|
6993
|
+
}
|
|
6994
|
+
// Try numeric chain ID
|
|
6995
|
+
const parsed = Number(s);
|
|
6996
|
+
if (!Number.isNaN(parsed) && Number.isFinite(parsed)) {
|
|
6997
|
+
const byId = idx.byId.get(Math.trunc(parsed));
|
|
6998
|
+
if (byId) {
|
|
6999
|
+
return byId;
|
|
7000
|
+
}
|
|
7001
|
+
}
|
|
7002
|
+
throw new NetworkNotFoundError(s);
|
|
7003
|
+
}
|
|
7004
|
+
/**
|
|
7005
|
+
* Resolve a chain from an arbitrary input. Accepts:
|
|
7006
|
+
* - `number`: treated as chain ID
|
|
7007
|
+
* - `string`: tried as CAIP-2 identifier (if it contains ":"), then as
|
|
7008
|
+
* internal name, then as a numeric chain ID string
|
|
7009
|
+
* - `IChainInfo`: returned directly (pass-through)
|
|
7010
|
+
*
|
|
7011
|
+
* Mirrors the Go `NetworkByAny` function.
|
|
7012
|
+
*
|
|
7013
|
+
* @throws {NetworkNotFoundError} if no matching chain is found
|
|
7014
|
+
*/
|
|
7015
|
+
function networkByAny$1(v, idx) {
|
|
7016
|
+
if (v == null) {
|
|
7017
|
+
throw new NetworkNotFoundError("null");
|
|
7018
|
+
}
|
|
7019
|
+
// Pass-through if already a chain config object
|
|
7020
|
+
if (typeof v === "object" && "id" in v && "internalName" in v) {
|
|
7021
|
+
return v;
|
|
7022
|
+
}
|
|
7023
|
+
// Numeric chain ID
|
|
7024
|
+
if (typeof v === "number") {
|
|
7025
|
+
return networkById$1(Math.trunc(v), idx);
|
|
7026
|
+
}
|
|
7027
|
+
// String: CAIP-2, name, or numeric string
|
|
7028
|
+
if (typeof v === "string") {
|
|
7029
|
+
return networkByString$1(v, idx);
|
|
7030
|
+
}
|
|
7031
|
+
throw new NetworkNotFoundError(v);
|
|
7032
|
+
}
|
|
7033
|
+
|
|
6912
7034
|
const MAINNET_CHAINS = [
|
|
6913
7035
|
arbitrum,
|
|
6914
7036
|
base,
|
|
@@ -6959,8 +7081,70 @@ const MAINNET_CHAINS = [
|
|
|
6959
7081
|
gensyn,
|
|
6960
7082
|
pharos,
|
|
6961
7083
|
];
|
|
7084
|
+
/** Pre-built lookup index over MAINNET_CHAINS (like Go's module-level maps). */
|
|
7085
|
+
const _idx = buildNetworkIndex(MAINNET_CHAINS);
|
|
7086
|
+
/**
|
|
7087
|
+
* Resolve a chain from an arbitrary input. Accepts:
|
|
7088
|
+
* - `number`: treated as chain ID
|
|
7089
|
+
* - `string`: tried as CAIP-2 identifier (if it contains ":"), then as
|
|
7090
|
+
* internal name, then as a numeric chain ID string
|
|
7091
|
+
* - `IChainInfo`: returned directly (pass-through)
|
|
7092
|
+
*
|
|
7093
|
+
* Mirrors the Go `NetworkByAny` function.
|
|
7094
|
+
*
|
|
7095
|
+
* @example
|
|
7096
|
+
* ```ts
|
|
7097
|
+
* import { networkByAny } from "@gfxlabs/oku-chains";
|
|
7098
|
+
*
|
|
7099
|
+
* networkByAny(1) // by chain ID
|
|
7100
|
+
* networkByAny("mainnet") // by internal name
|
|
7101
|
+
* networkByAny("eip155:1") // by CAIP-2
|
|
7102
|
+
* networkByAny("42161") // by chain ID string
|
|
7103
|
+
* ```
|
|
7104
|
+
*
|
|
7105
|
+
* @throws {NetworkNotFoundError} if no matching chain is found
|
|
7106
|
+
*/
|
|
7107
|
+
function networkByAny(v) {
|
|
7108
|
+
return networkByAny$1(v, _idx);
|
|
7109
|
+
}
|
|
7110
|
+
/**
|
|
7111
|
+
* Look up a chain by its numeric chain ID.
|
|
7112
|
+
*
|
|
7113
|
+
* @throws {NetworkNotFoundError} if no matching chain is found
|
|
7114
|
+
*/
|
|
7115
|
+
function networkById(id) {
|
|
7116
|
+
return networkById$1(id, _idx);
|
|
7117
|
+
}
|
|
7118
|
+
/**
|
|
7119
|
+
* Look up a chain by its internal name (e.g. "arbitrum", "mainnet").
|
|
7120
|
+
*
|
|
7121
|
+
* @throws {NetworkNotFoundError} if no matching chain is found
|
|
7122
|
+
*/
|
|
7123
|
+
function networkByName(name) {
|
|
7124
|
+
return networkByName$1(name, _idx);
|
|
7125
|
+
}
|
|
7126
|
+
/**
|
|
7127
|
+
* Look up a chain from a string. Tries, in order:
|
|
7128
|
+
* 1. CAIP-2 identifier (if the string contains ":")
|
|
7129
|
+
* 2. Internal name
|
|
7130
|
+
* 3. Numeric chain ID (parsed from string)
|
|
7131
|
+
*
|
|
7132
|
+
* @throws {NetworkNotFoundError} if no matching chain is found
|
|
7133
|
+
*/
|
|
7134
|
+
function networkByString(s) {
|
|
7135
|
+
return networkByString$1(s, _idx);
|
|
7136
|
+
}
|
|
7137
|
+
/**
|
|
7138
|
+
* Look up a chain by its CAIP-2 identifier string (e.g. "eip155:1").
|
|
7139
|
+
*
|
|
7140
|
+
* @throws {NetworkNotFoundError} if no matching chain is found
|
|
7141
|
+
*/
|
|
7142
|
+
function networkByCAIP2(caip2) {
|
|
7143
|
+
return networkByCAIP2$1(caip2, _idx);
|
|
7144
|
+
}
|
|
6962
7145
|
|
|
6963
7146
|
exports.MAINNET_CHAINS = MAINNET_CHAINS;
|
|
7147
|
+
exports.NetworkNotFoundError = NetworkNotFoundError;
|
|
6964
7148
|
exports.arbitrum = arbitrum;
|
|
6965
7149
|
exports.avalanche = avalanche;
|
|
6966
7150
|
exports.base = base;
|
|
@@ -6968,6 +7152,7 @@ exports.blast = blast;
|
|
|
6968
7152
|
exports.bob = bob;
|
|
6969
7153
|
exports.boba = boba;
|
|
6970
7154
|
exports.bsc = bsc;
|
|
7155
|
+
exports.buildNetworkIndex = buildNetworkIndex;
|
|
6971
7156
|
exports.celo = celo;
|
|
6972
7157
|
exports.corn = corn;
|
|
6973
7158
|
exports.etherlink = etherlink;
|
|
@@ -6990,6 +7175,11 @@ exports.matchain = matchain;
|
|
|
6990
7175
|
exports.metal = metal;
|
|
6991
7176
|
exports.monad = monad;
|
|
6992
7177
|
exports.moonbeam = moonbeam;
|
|
7178
|
+
exports.networkByAny = networkByAny;
|
|
7179
|
+
exports.networkByCAIP2 = networkByCAIP2;
|
|
7180
|
+
exports.networkById = networkById;
|
|
7181
|
+
exports.networkByName = networkByName;
|
|
7182
|
+
exports.networkByString = networkByString;
|
|
6993
7183
|
exports.nibiru = nibiru;
|
|
6994
7184
|
exports.optimism = optimism;
|
|
6995
7185
|
exports.parseCAIP2 = parseCAIP2;
|
|
@@ -114,7 +114,8 @@ export declare const arbitrum: Readonly<{
|
|
|
114
114
|
usdcAddress: "0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8";
|
|
115
115
|
};
|
|
116
116
|
oku: {
|
|
117
|
-
|
|
117
|
+
router10: "0x822CFA9749d16Fb4B4F2B0515924cec69512893b";
|
|
118
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad";
|
|
118
119
|
limitOrderRegistry: "0x54dF9e11c7933a9cA3BD1E540B63dA15edAe40bf";
|
|
119
120
|
limitOrderRegistryDeployBlock: number;
|
|
120
121
|
pricing: {
|
|
@@ -110,7 +110,8 @@ export declare const base: Readonly<{
|
|
|
110
110
|
usdcAddress: "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913";
|
|
111
111
|
};
|
|
112
112
|
oku: {
|
|
113
|
-
|
|
113
|
+
router10: "0x822CFA9749d16Fb4B4F2B0515924cec69512893b";
|
|
114
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad";
|
|
114
115
|
limitOrderRegistry: "0xff8b754c64e9a8473bd6e1118d0eac67f0a8ae27";
|
|
115
116
|
limitOrderRegistryDeployBlock: number;
|
|
116
117
|
pricing: {
|
|
@@ -114,7 +114,7 @@ export declare const bsc: Readonly<{
|
|
|
114
114
|
wethAddress: "0x2170ed0880ac9a755fd29b2688956bd959f933f8";
|
|
115
115
|
};
|
|
116
116
|
oku: {
|
|
117
|
-
|
|
117
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad";
|
|
118
118
|
limitOrderRegistry: "0x19b9bd76028cab6f414ed1fc57400b75b5ca0627";
|
|
119
119
|
limitOrderRegistryDeployBlock: number;
|
|
120
120
|
pricing: {
|
|
@@ -84,7 +84,8 @@ export declare const optimism: Readonly<{
|
|
|
84
84
|
dexscreener: string;
|
|
85
85
|
};
|
|
86
86
|
oku: {
|
|
87
|
-
|
|
87
|
+
router10: "0x822CFA9749d16Fb4B4F2B0515924cec69512893b";
|
|
88
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad";
|
|
88
89
|
limitOrderRegistryDeployBlock: number;
|
|
89
90
|
limitOrderRegistry: "0x54dF9e11c7933a9cA3BD1E540B63dA15edAe40bf";
|
|
90
91
|
customOrderTypes: {
|
|
@@ -109,7 +109,7 @@ export declare const polygon: Readonly<{
|
|
|
109
109
|
wethAddress: "0x7ceb23fd6bc0add59e62ac25578270cff1b9f619";
|
|
110
110
|
};
|
|
111
111
|
oku: {
|
|
112
|
-
|
|
112
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad";
|
|
113
113
|
limitOrderRegistry: "0x54dF9e11c7933a9cA3BD1E540B63dA15edAe40bf";
|
|
114
114
|
limitOrderRegistryDeployBlock: number;
|
|
115
115
|
pricing: {
|
|
@@ -61,8 +61,10 @@ export declare const worldchain: Readonly<{
|
|
|
61
61
|
wbtcAddress: "0x03c7054bcb39f7b2e5b2c7acb37583e32d70cfa3";
|
|
62
62
|
};
|
|
63
63
|
oku: {
|
|
64
|
-
|
|
65
|
-
|
|
64
|
+
router10: "0x822CFA9749d16Fb4B4F2B0515924cec69512893b";
|
|
65
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad";
|
|
66
|
+
permit2Proxy10: "0x1B361B7cEce8920Bb5C3606B322EEC08FA85EB12";
|
|
67
|
+
permit2Proxy11: "0x43830FE2074eaD6562586b512D87aa6af840a688";
|
|
66
68
|
pricing: {
|
|
67
69
|
nativeWrappedToken: "0x4200000000000000000000000000000000000006";
|
|
68
70
|
nativeWrappedName: string;
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export * from "./definitions/index";
|
|
2
2
|
export * from "./spec/index";
|
|
3
3
|
export * from "./util/caip2";
|
|
4
|
+
export { NetworkNotFoundError, type NetworkIndex, buildNetworkIndex, } from "./util/lookup";
|
|
5
|
+
import type { IChainInfo } from "./spec";
|
|
4
6
|
export declare const MAINNET_CHAINS: readonly [Readonly<{
|
|
5
7
|
name: "Arbitrum";
|
|
6
8
|
launchTime: 1688997600;
|
|
@@ -117,7 +119,8 @@ export declare const MAINNET_CHAINS: readonly [Readonly<{
|
|
|
117
119
|
usdcAddress: "0xFF970A61A04b1cA14834A43f5dE4533eBDDB5CC8";
|
|
118
120
|
};
|
|
119
121
|
oku: {
|
|
120
|
-
|
|
122
|
+
router10: "0x822CFA9749d16Fb4B4F2B0515924cec69512893b";
|
|
123
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad";
|
|
121
124
|
limitOrderRegistry: "0x54dF9e11c7933a9cA3BD1E540B63dA15edAe40bf";
|
|
122
125
|
limitOrderRegistryDeployBlock: number;
|
|
123
126
|
pricing: {
|
|
@@ -325,7 +328,8 @@ export declare const MAINNET_CHAINS: readonly [Readonly<{
|
|
|
325
328
|
usdcAddress: "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913";
|
|
326
329
|
};
|
|
327
330
|
oku: {
|
|
328
|
-
|
|
331
|
+
router10: "0x822CFA9749d16Fb4B4F2B0515924cec69512893b";
|
|
332
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad";
|
|
329
333
|
limitOrderRegistry: "0xff8b754c64e9a8473bd6e1118d0eac67f0a8ae27";
|
|
330
334
|
limitOrderRegistryDeployBlock: number;
|
|
331
335
|
pricing: {
|
|
@@ -1367,7 +1371,7 @@ export declare const MAINNET_CHAINS: readonly [Readonly<{
|
|
|
1367
1371
|
wethAddress: "0x2170ed0880ac9a755fd29b2688956bd959f933f8";
|
|
1368
1372
|
};
|
|
1369
1373
|
oku: {
|
|
1370
|
-
|
|
1374
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad";
|
|
1371
1375
|
limitOrderRegistry: "0x19b9bd76028cab6f414ed1fc57400b75b5ca0627";
|
|
1372
1376
|
limitOrderRegistryDeployBlock: number;
|
|
1373
1377
|
pricing: {
|
|
@@ -2063,7 +2067,8 @@ export declare const MAINNET_CHAINS: readonly [Readonly<{
|
|
|
2063
2067
|
dexscreener: string;
|
|
2064
2068
|
};
|
|
2065
2069
|
oku: {
|
|
2066
|
-
|
|
2070
|
+
router10: "0x822CFA9749d16Fb4B4F2B0515924cec69512893b";
|
|
2071
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad";
|
|
2067
2072
|
limitOrderRegistryDeployBlock: number;
|
|
2068
2073
|
limitOrderRegistry: "0x54dF9e11c7933a9cA3BD1E540B63dA15edAe40bf";
|
|
2069
2074
|
customOrderTypes: {
|
|
@@ -2579,7 +2584,7 @@ export declare const MAINNET_CHAINS: readonly [Readonly<{
|
|
|
2579
2584
|
wethAddress: "0x7ceb23fd6bc0add59e62ac25578270cff1b9f619";
|
|
2580
2585
|
};
|
|
2581
2586
|
oku: {
|
|
2582
|
-
|
|
2587
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad";
|
|
2583
2588
|
limitOrderRegistry: "0x54dF9e11c7933a9cA3BD1E540B63dA15edAe40bf";
|
|
2584
2589
|
limitOrderRegistryDeployBlock: number;
|
|
2585
2590
|
pricing: {
|
|
@@ -8131,8 +8136,10 @@ export declare const MAINNET_CHAINS: readonly [Readonly<{
|
|
|
8131
8136
|
wbtcAddress: "0x03c7054bcb39f7b2e5b2c7acb37583e32d70cfa3";
|
|
8132
8137
|
};
|
|
8133
8138
|
oku: {
|
|
8134
|
-
|
|
8135
|
-
|
|
8139
|
+
router10: "0x822CFA9749d16Fb4B4F2B0515924cec69512893b";
|
|
8140
|
+
router11: "0x25132a6F4f0A993d62e57D0510df1395729125ad";
|
|
8141
|
+
permit2Proxy10: "0x1B361B7cEce8920Bb5C3606B322EEC08FA85EB12";
|
|
8142
|
+
permit2Proxy11: "0x43830FE2074eaD6562586b512D87aa6af840a688";
|
|
8136
8143
|
pricing: {
|
|
8137
8144
|
nativeWrappedToken: "0x4200000000000000000000000000000000000006";
|
|
8138
8145
|
nativeWrappedName: string;
|
|
@@ -10755,3 +10762,52 @@ export declare const MAINNET_CHAINS: readonly [Readonly<{
|
|
|
10755
10762
|
} & {
|
|
10756
10763
|
caip2Namespace: string;
|
|
10757
10764
|
}>];
|
|
10765
|
+
/**
|
|
10766
|
+
* Resolve a chain from an arbitrary input. Accepts:
|
|
10767
|
+
* - `number`: treated as chain ID
|
|
10768
|
+
* - `string`: tried as CAIP-2 identifier (if it contains ":"), then as
|
|
10769
|
+
* internal name, then as a numeric chain ID string
|
|
10770
|
+
* - `IChainInfo`: returned directly (pass-through)
|
|
10771
|
+
*
|
|
10772
|
+
* Mirrors the Go `NetworkByAny` function.
|
|
10773
|
+
*
|
|
10774
|
+
* @example
|
|
10775
|
+
* ```ts
|
|
10776
|
+
* import { networkByAny } from "@gfxlabs/oku-chains";
|
|
10777
|
+
*
|
|
10778
|
+
* networkByAny(1) // by chain ID
|
|
10779
|
+
* networkByAny("mainnet") // by internal name
|
|
10780
|
+
* networkByAny("eip155:1") // by CAIP-2
|
|
10781
|
+
* networkByAny("42161") // by chain ID string
|
|
10782
|
+
* ```
|
|
10783
|
+
*
|
|
10784
|
+
* @throws {NetworkNotFoundError} if no matching chain is found
|
|
10785
|
+
*/
|
|
10786
|
+
export declare function networkByAny(v: string | number | IChainInfo): IChainInfo;
|
|
10787
|
+
/**
|
|
10788
|
+
* Look up a chain by its numeric chain ID.
|
|
10789
|
+
*
|
|
10790
|
+
* @throws {NetworkNotFoundError} if no matching chain is found
|
|
10791
|
+
*/
|
|
10792
|
+
export declare function networkById(id: number): IChainInfo;
|
|
10793
|
+
/**
|
|
10794
|
+
* Look up a chain by its internal name (e.g. "arbitrum", "mainnet").
|
|
10795
|
+
*
|
|
10796
|
+
* @throws {NetworkNotFoundError} if no matching chain is found
|
|
10797
|
+
*/
|
|
10798
|
+
export declare function networkByName(name: string): IChainInfo;
|
|
10799
|
+
/**
|
|
10800
|
+
* Look up a chain from a string. Tries, in order:
|
|
10801
|
+
* 1. CAIP-2 identifier (if the string contains ":")
|
|
10802
|
+
* 2. Internal name
|
|
10803
|
+
* 3. Numeric chain ID (parsed from string)
|
|
10804
|
+
*
|
|
10805
|
+
* @throws {NetworkNotFoundError} if no matching chain is found
|
|
10806
|
+
*/
|
|
10807
|
+
export declare function networkByString(s: string): IChainInfo;
|
|
10808
|
+
/**
|
|
10809
|
+
* Look up a chain by its CAIP-2 identifier string (e.g. "eip155:1").
|
|
10810
|
+
*
|
|
10811
|
+
* @throws {NetworkNotFoundError} if no matching chain is found
|
|
10812
|
+
*/
|
|
10813
|
+
export declare function networkByCAIP2(caip2: string): IChainInfo;
|
|
@@ -70,8 +70,10 @@ export interface OkuCustomOrderTypesMetadata {
|
|
|
70
70
|
oracleLessDeployBlock?: number;
|
|
71
71
|
}
|
|
72
72
|
export interface OkuMetadata {
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
router10?: Address;
|
|
74
|
+
router11?: Address;
|
|
75
|
+
permit2Proxy10?: Address;
|
|
76
|
+
permit2Proxy11?: Address;
|
|
75
77
|
limitOrderRegistry?: Address;
|
|
76
78
|
limitOrderRegistryDeployBlock?: number;
|
|
77
79
|
pricing?: OkuPricingMetadata;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { IChainInfo } from "../spec";
|
|
2
|
+
/**
|
|
3
|
+
* Error thrown when a network cannot be found by any lookup method.
|
|
4
|
+
*/
|
|
5
|
+
export declare class NetworkNotFoundError extends Error {
|
|
6
|
+
constructor(input: unknown);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Pre-computed lookup index for fast chain resolution.
|
|
10
|
+
*/
|
|
11
|
+
export interface NetworkIndex {
|
|
12
|
+
byId: Map<number, IChainInfo>;
|
|
13
|
+
byName: Map<string, IChainInfo>;
|
|
14
|
+
byCAIP2: Map<string, IChainInfo>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Build a lookup index from a list of chains for fast repeated lookups.
|
|
18
|
+
* Pre-computes maps keyed by chain ID, internal name, and CAIP-2 identifier.
|
|
19
|
+
*/
|
|
20
|
+
export declare function buildNetworkIndex(chains: readonly IChainInfo[]): NetworkIndex;
|
|
21
|
+
/**
|
|
22
|
+
* Look up a chain by its numeric chain ID.
|
|
23
|
+
*/
|
|
24
|
+
export declare function networkById(id: number, idx: NetworkIndex): IChainInfo;
|
|
25
|
+
/**
|
|
26
|
+
* Look up a chain by its internal name (e.g. "arbitrum", "mainnet").
|
|
27
|
+
*/
|
|
28
|
+
export declare function networkByName(name: string, idx: NetworkIndex): IChainInfo;
|
|
29
|
+
/**
|
|
30
|
+
* Look up a chain by its CAIP-2 identifier string (e.g. "eip155:1").
|
|
31
|
+
*/
|
|
32
|
+
export declare function networkByCAIP2(caip2: string, idx: NetworkIndex): IChainInfo;
|
|
33
|
+
/**
|
|
34
|
+
* Look up a chain from a string. Tries, in order:
|
|
35
|
+
* 1. CAIP-2 identifier (if the string contains ":")
|
|
36
|
+
* 2. Internal name
|
|
37
|
+
* 3. Numeric chain ID (parsed from string)
|
|
38
|
+
*
|
|
39
|
+
* Mirrors the Go `NetworkByString` function.
|
|
40
|
+
*/
|
|
41
|
+
export declare function networkByString(s: string, idx: NetworkIndex): IChainInfo;
|
|
42
|
+
/**
|
|
43
|
+
* Resolve a chain from an arbitrary input. Accepts:
|
|
44
|
+
* - `number`: treated as chain ID
|
|
45
|
+
* - `string`: tried as CAIP-2 identifier (if it contains ":"), then as
|
|
46
|
+
* internal name, then as a numeric chain ID string
|
|
47
|
+
* - `IChainInfo`: returned directly (pass-through)
|
|
48
|
+
*
|
|
49
|
+
* Mirrors the Go `NetworkByAny` function.
|
|
50
|
+
*
|
|
51
|
+
* @throws {NetworkNotFoundError} if no matching chain is found
|
|
52
|
+
*/
|
|
53
|
+
export declare function networkByAny(v: string | number | IChainInfo, idx: NetworkIndex): IChainInfo;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gfxlabs/oku-chains",
|
|
3
|
-
"version": "1.12.
|
|
3
|
+
"version": "1.12.4",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index-mjs.js",
|
|
@@ -53,7 +53,7 @@
|
|
|
53
53
|
"typescript": "^5.9.3",
|
|
54
54
|
"viem": "^2.47.11"
|
|
55
55
|
},
|
|
56
|
-
"packageManager": "yarn@4.
|
|
56
|
+
"packageManager": "yarn@4.15.0",
|
|
57
57
|
"peerDependencies": {
|
|
58
58
|
"viem": "2.x"
|
|
59
59
|
}
|