@centurion_project/smart-order-router 4.31.15 → 4.31.18

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.
Files changed (42) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/README.md +1 -1
  3. package/build/main/providers/caching-subgraph-provider.js +6 -1
  4. package/build/main/providers/token-provider.js +15 -10
  5. package/build/main/providers/v2/static-subgraph-provider.js +7 -5
  6. package/build/main/providers/v3/static-subgraph-provider.js +7 -5
  7. package/build/main/routers/alpha-router/gas-models/gas-costs.d.ts +1 -1
  8. package/build/main/routers/alpha-router/gas-models/gas-costs.js +8 -2
  9. package/build/main/routers/legacy-router/bases.d.ts +24 -0
  10. package/build/main/routers/legacy-router/bases.js +6 -1
  11. package/build/main/tsconfig.tsbuildinfo +1 -1
  12. package/build/main/util/addresses.d.ts +9 -2
  13. package/build/main/util/addresses.js +23 -10
  14. package/build/main/util/chains.d.ts +38 -1
  15. package/build/main/util/chains.js +9 -5
  16. package/build/main/util/defaultBlocksToLive.d.ts +38 -2
  17. package/build/main/util/defaultBlocksToLive.js +4 -1
  18. package/build/main/util/pool.d.ts +38 -2
  19. package/build/main/util/pool.js +3 -1
  20. package/build/main/util/security.d.ts +3 -0
  21. package/build/main/util/security.js +120 -0
  22. package/build/module/providers/caching-subgraph-provider.js +6 -1
  23. package/build/module/providers/token-provider.js +10 -5
  24. package/build/module/providers/v2/static-subgraph-provider.js +7 -5
  25. package/build/module/providers/v3/static-subgraph-provider.js +7 -5
  26. package/build/module/routers/alpha-router/gas-models/gas-costs.d.ts +1 -1
  27. package/build/module/routers/alpha-router/gas-models/gas-costs.js +8 -2
  28. package/build/module/routers/legacy-router/bases.d.ts +24 -0
  29. package/build/module/routers/legacy-router/bases.js +6 -1
  30. package/build/module/tsconfig.module.tsbuildinfo +1 -1
  31. package/build/module/util/addresses.d.ts +9 -2
  32. package/build/module/util/addresses.js +23 -10
  33. package/build/module/util/chains.d.ts +38 -1
  34. package/build/module/util/chains.js +10 -6
  35. package/build/module/util/defaultBlocksToLive.d.ts +38 -2
  36. package/build/module/util/defaultBlocksToLive.js +4 -1
  37. package/build/module/util/pool.d.ts +38 -2
  38. package/build/module/util/pool.js +3 -1
  39. package/build/module/util/security.d.ts +3 -0
  40. package/build/module/util/security.js +111 -0
  41. package/centurion-deployment-binding.json +13 -0
  42. package/package.json +26 -16
@@ -0,0 +1,3 @@
1
+ export declare const isLocalOrPrivateHostname: (hostname: string) => boolean;
2
+ export declare const assertPublicHttpsUrl: (rawUrl: string, contextLabel: string) => string;
3
+ export declare const formatErrorForLog: (err: unknown) => Record<string, unknown>;
@@ -0,0 +1,111 @@
1
+ import axios from 'axios';
2
+ import net from 'net';
3
+ const LOOPBACK_HOSTNAMES = new Set([
4
+ 'localhost',
5
+ 'localhost.localdomain',
6
+ 'ip6-localhost',
7
+ 'ip6-loopback',
8
+ ]);
9
+ const normalizeHostname = (hostname) => {
10
+ return hostname.trim().toLowerCase().replace(/\.$/, '').replace(/^\[|\]$/g, '');
11
+ };
12
+ const isPrivateIpv4 = (ipAddress) => {
13
+ var _a, _b;
14
+ const octets = ipAddress
15
+ .split('.')
16
+ .map((octet) => Number.parseInt(octet, 10));
17
+ if (octets.length !== 4 || octets.some((octet) => Number.isNaN(octet))) {
18
+ return false;
19
+ }
20
+ const first = (_a = octets[0]) !== null && _a !== void 0 ? _a : -1;
21
+ const second = (_b = octets[1]) !== null && _b !== void 0 ? _b : -1;
22
+ return (first === 0 ||
23
+ first === 10 ||
24
+ first === 127 ||
25
+ (first === 169 && second === 254) ||
26
+ (first === 172 && second >= 16 && second <= 31) ||
27
+ (first === 192 && second === 168));
28
+ };
29
+ const isPrivateIpv6 = (ipAddress) => {
30
+ const normalized = ipAddress.toLowerCase();
31
+ if (normalized === '::1') {
32
+ return true;
33
+ }
34
+ if (normalized.startsWith('::ffff:')) {
35
+ return isPrivateIpv4(normalized.substring('::ffff:'.length));
36
+ }
37
+ return (normalized.startsWith('fc') ||
38
+ normalized.startsWith('fd') ||
39
+ normalized.startsWith('fe80:'));
40
+ };
41
+ export const isLocalOrPrivateHostname = (hostname) => {
42
+ const normalized = normalizeHostname(hostname);
43
+ if (!normalized) {
44
+ return true;
45
+ }
46
+ if (LOOPBACK_HOSTNAMES.has(normalized) ||
47
+ normalized.endsWith('.localhost')) {
48
+ return true;
49
+ }
50
+ const ipVersion = net.isIP(normalized);
51
+ if (ipVersion === 4) {
52
+ return isPrivateIpv4(normalized);
53
+ }
54
+ if (ipVersion === 6) {
55
+ return isPrivateIpv6(normalized);
56
+ }
57
+ return false;
58
+ };
59
+ export const assertPublicHttpsUrl = (rawUrl, contextLabel) => {
60
+ let parsedUrl;
61
+ try {
62
+ parsedUrl = new URL(rawUrl);
63
+ }
64
+ catch (_err) {
65
+ throw new Error(`Invalid ${contextLabel}`);
66
+ }
67
+ if (parsedUrl.protocol !== 'https:') {
68
+ throw new Error(`${contextLabel} must use https`);
69
+ }
70
+ if (parsedUrl.username || parsedUrl.password) {
71
+ throw new Error(`${contextLabel} must not include URL credentials`);
72
+ }
73
+ if (isLocalOrPrivateHostname(parsedUrl.hostname)) {
74
+ throw new Error(`${contextLabel} must not target localhost or private network ranges`);
75
+ }
76
+ return parsedUrl.toString();
77
+ };
78
+ const getUrlOrigin = (rawUrl) => {
79
+ if (!rawUrl) {
80
+ return undefined;
81
+ }
82
+ try {
83
+ return new URL(rawUrl).origin;
84
+ }
85
+ catch (_err) {
86
+ return undefined;
87
+ }
88
+ };
89
+ export const formatErrorForLog = (err) => {
90
+ var _a, _b, _c, _d;
91
+ if (axios.isAxiosError(err)) {
92
+ return {
93
+ name: err.name,
94
+ message: err.message,
95
+ code: err.code,
96
+ method: (_b = (_a = err.config) === null || _a === void 0 ? void 0 : _a.method) === null || _b === void 0 ? void 0 : _b.toUpperCase(),
97
+ origin: getUrlOrigin((_c = err.config) === null || _c === void 0 ? void 0 : _c.url),
98
+ status: (_d = err.response) === null || _d === void 0 ? void 0 : _d.status,
99
+ };
100
+ }
101
+ if (err instanceof Error) {
102
+ return {
103
+ name: err.name,
104
+ message: err.message,
105
+ };
106
+ }
107
+ return {
108
+ message: String(err),
109
+ };
110
+ };
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbC9zZWN1cml0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxHQUFHLE1BQU0sS0FBSyxDQUFDO0FBRXRCLE1BQU0sa0JBQWtCLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDakMsV0FBVztJQUNYLHVCQUF1QjtJQUN2QixlQUFlO0lBQ2YsY0FBYztDQUNmLENBQUMsQ0FBQztBQUVILE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxRQUFnQixFQUFVLEVBQUU7SUFDckQsT0FBTyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQ2xGLENBQUMsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUFHLENBQUMsU0FBaUIsRUFBVyxFQUFFOztJQUNuRCxNQUFNLE1BQU0sR0FBRyxTQUFTO1NBQ3JCLEtBQUssQ0FBQyxHQUFHLENBQUM7U0FDVixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFFOUMsSUFBSSxNQUFNLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7UUFDdEUsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUVELE1BQU0sS0FBSyxHQUFHLE1BQUEsTUFBTSxDQUFDLENBQUMsQ0FBQyxtQ0FBSSxDQUFDLENBQUMsQ0FBQztJQUM5QixNQUFNLE1BQU0sR0FBRyxNQUFBLE1BQU0sQ0FBQyxDQUFDLENB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
@@ -0,0 +1,13 @@
1
+ {
2
+ "schema": "centurion.sor-deployment-binding.v1",
3
+ "chainId": 286,
4
+ "signedManifestSha256": "9a39bbd1e49673e4a96b2e444c024d5a1da3dd14a05b8ad6f0f65feb615e55eb",
5
+ "manifestCoreSha256": "0ab3a3837163e0564cb60aa4bc453bfbadc27f12cbe040d093051fa70270f55d",
6
+ "sdkSourceCommit": "219bec38",
7
+ "protocols": {
8
+ "v2": true,
9
+ "v3": true,
10
+ "v4": false,
11
+ "across": false
12
+ }
13
+ }
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@centurion_project/smart-order-router",
3
- "version": "4.31.15",
4
- "description": "Uniswap Smart Order Router",
3
+ "version": "4.31.18",
4
+ "description": "CenturionDEX Smart Order Router derived from the Uniswap Smart Order Router",
5
5
  "main": "build/main/index.js",
6
6
  "typings": "build/main/index.d.ts",
7
7
  "module": "build/module/index.js",
8
8
  "repository": {
9
9
  "type": "git",
10
- "url": "https://github.com/Uniswap/smart-order-router.git"
10
+ "url": "https://github.com/CenturionDEX/centurion-dex-smart-order-router.git"
11
11
  },
12
12
  "license": "GPL",
13
13
  "keywords": [],
@@ -35,12 +35,12 @@
35
35
  "dependencies": {
36
36
  "@eth-optimism/sdk": "^3.2.2",
37
37
  "@types/brotli": "^1.3.4",
38
- "@centurion_project/permit2-sdk": "1.4.0",
39
- "@centurion_project/router-sdk": "2.9.0",
40
- "@centurion_project/sdk-core": "7.13.0",
41
- "@centurion_project/universal-router-sdk": "5.1.0",
42
- "@centurion_project/v2-sdk": "4.20.2",
43
- "@centurion_project/v3-sdk": "3.30.2",
38
+ "@centurion_project/permit2-sdk": "1.4.6",
39
+ "@centurion_project/router-sdk": "2.11.4",
40
+ "@centurion_project/sdk-core": "7.18.5",
41
+ "@centurion_project/universal-router-sdk": "5.9.4",
42
+ "@centurion_project/v2-sdk": "4.21.5",
43
+ "@centurion_project/v3-sdk": "3.31.5",
44
44
  "@centurion_project/v4-sdk": "2.0.0",
45
45
  "@uniswap/default-token-list": "^11.13.0",
46
46
  "@uniswap/swap-router-contracts": "^1.3.1",
@@ -48,7 +48,7 @@
48
48
  "@uniswap/universal-router": "^1.6.0",
49
49
  "async-retry": "^1.3.1",
50
50
  "await-timeout": "^1.1.1",
51
- "axios": "^0.21.1",
51
+ "axios": "^1.18.1",
52
52
  "brotli": "^1.3.3",
53
53
  "bunyan": "^1.8.15",
54
54
  "bunyan-blackhole": "^1.1.1",
@@ -77,6 +77,7 @@
77
77
  "@types/node": "^15.0.2",
78
78
  "@types/sinon": "^10.0.2",
79
79
  "@types/stats-lite": "^2.2.0",
80
+ "@uniswap/sdk-core": "npm:@centurion_project/sdk-core@7.18.5",
80
81
  "@typescript-eslint/eslint-plugin": "^4.0.1",
81
82
  "@typescript-eslint/parser": "^4.0.1",
82
83
  "@uniswap/v2-core": "^1.0.1",
@@ -111,19 +112,20 @@
111
112
  "jsbi": "^3.2.0"
112
113
  },
113
114
  "overrides": {
114
- "@uniswap/sdk-core": "npm:@centurion_project/sdk-core@7.13.0",
115
- "@uniswap/v2-sdk": "npm:@centurion_project/v2-sdk@4.20.2",
116
- "@uniswap/v3-sdk": "npm:@centurion_project/v3-sdk@3.30.2",
115
+ "@uniswap/sdk-core": "npm:@centurion_project/sdk-core@7.18.5",
116
+ "@uniswap/v2-sdk": "npm:@centurion_project/v2-sdk@4.21.5",
117
+ "@uniswap/v3-sdk": "npm:@centurion_project/v3-sdk@3.31.5",
117
118
  "@uniswap/v4-sdk": "npm:@centurion_project/v4-sdk@2.0.0",
118
- "@uniswap/router-sdk": "npm:@centurion_project/router-sdk@2.9.0",
119
- "@uniswap/universal-router-sdk": "npm:@centurion_project/universal-router-sdk@5.1.0",
120
- "@uniswap/permit2-sdk": "npm:@centurion_project/permit2-sdk@1.4.0"
119
+ "@uniswap/router-sdk": "npm:@centurion_project/router-sdk@2.11.4",
120
+ "@uniswap/universal-router-sdk": "npm:@centurion_project/universal-router-sdk@5.9.4",
121
+ "@uniswap/permit2-sdk": "npm:@centurion_project/permit2-sdk@1.4.6"
121
122
  },
122
123
  "files": [
123
124
  "build/main",
124
125
  "build/module",
125
126
  "!**/*.spec.*",
126
127
  "!**/*.json",
128
+ "centurion-deployment-binding.json",
127
129
  "CHANGELOG.md",
128
130
  "LICENSE",
129
131
  "README.md"
@@ -133,5 +135,13 @@
133
135
  },
134
136
  "oclif": {
135
137
  "commands": "./cli/commands"
138
+ },
139
+ "publishConfig": {
140
+ "access": "public"
141
+ },
142
+ "centurionUpstream": {
143
+ "name": "@uniswap/smart-order-router",
144
+ "version": "4.31.10",
145
+ "ref": "f506b99b8a7bf4d6f9c386ee721e0f8adb61d7f9"
136
146
  }
137
147
  }