@across-protocol/sdk 4.1.19 → 4.1.22
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/cjs/addressAggregator/adapters/bybit.d.ts +10 -0
- package/dist/cjs/addressAggregator/adapters/bybit.js +42 -0
- package/dist/cjs/addressAggregator/adapters/bybit.js.map +1 -0
- package/dist/cjs/addressAggregator/adapters/env.d.ts +8 -0
- package/dist/cjs/addressAggregator/adapters/env.js +33 -0
- package/dist/cjs/addressAggregator/adapters/env.js.map +1 -0
- package/dist/cjs/addressAggregator/adapters/file.d.ts +8 -0
- package/dist/cjs/addressAggregator/adapters/file.js +50 -0
- package/dist/cjs/addressAggregator/adapters/file.js.map +1 -0
- package/dist/cjs/addressAggregator/adapters/index.d.ts +3 -0
- package/dist/cjs/addressAggregator/adapters/index.js +8 -0
- package/dist/cjs/addressAggregator/adapters/index.js.map +1 -0
- package/dist/cjs/addressAggregator/adapters/util.d.ts +4 -0
- package/dist/cjs/addressAggregator/adapters/util.js +66 -0
- package/dist/cjs/addressAggregator/adapters/util.js.map +1 -0
- package/dist/cjs/addressAggregator/index.d.ts +10 -0
- package/dist/cjs/addressAggregator/index.js +109 -0
- package/dist/cjs/addressAggregator/index.js.map +1 -0
- package/dist/cjs/addressAggregator/types.d.ts +6 -0
- package/dist/cjs/addressAggregator/types.js +5 -0
- package/dist/cjs/addressAggregator/types.js.map +1 -0
- package/dist/cjs/caching/Memory/MemoryCacheClient.d.ts +6 -0
- package/dist/cjs/caching/Memory/MemoryCacheClient.js +32 -0
- package/dist/cjs/caching/Memory/MemoryCacheClient.js.map +1 -0
- package/dist/cjs/caching/Memory/index.d.ts +1 -0
- package/dist/cjs/caching/Memory/index.js +5 -0
- package/dist/cjs/caching/Memory/index.js.map +1 -0
- package/dist/cjs/caching/index.d.ts +1 -0
- package/dist/cjs/caching/index.js +1 -0
- package/dist/cjs/caching/index.js.map +1 -1
- package/dist/cjs/clients/HubPoolClient.d.ts +1 -1
- package/dist/cjs/clients/HubPoolClient.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient.d.ts +2 -1
- package/dist/cjs/clients/SpokePoolClient.js +61 -71
- package/dist/cjs/clients/SpokePoolClient.js.map +1 -1
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.js +3 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lpFeeCalculator/lpFeeCalculator.js +2 -1
- package/dist/cjs/lpFeeCalculator/lpFeeCalculator.js.map +1 -1
- package/dist/cjs/providers/cachedProvider.js +21 -20
- package/dist/cjs/providers/cachedProvider.js.map +1 -1
- package/dist/cjs/providers/solana/baseRpcFactories.d.ts +2 -2
- package/dist/cjs/providers/solana/baseRpcFactories.js +2 -2
- package/dist/cjs/providers/solana/baseRpcFactories.js.map +1 -1
- package/dist/cjs/providers/solana/cachedRpcFactory.d.ts +16 -0
- package/dist/cjs/providers/solana/cachedRpcFactory.js +121 -0
- package/dist/cjs/providers/solana/cachedRpcFactory.js.map +1 -0
- package/dist/cjs/providers/solana/defaultRpcFactory.d.ts +1 -1
- package/dist/cjs/providers/solana/defaultRpcFactory.js +2 -2
- package/dist/cjs/providers/solana/defaultRpcFactory.js.map +1 -1
- package/dist/cjs/providers/solana/index.d.ts +1 -0
- package/dist/cjs/providers/solana/index.js +1 -0
- package/dist/cjs/providers/solana/index.js.map +1 -1
- package/dist/cjs/providers/solana/rateLimitedRpcFactory.d.ts +2 -2
- package/dist/cjs/svm/eventsClient.d.ts +15 -0
- package/dist/cjs/svm/eventsClient.js +164 -0
- package/dist/cjs/svm/eventsClient.js.map +1 -0
- package/dist/cjs/svm/index.d.ts +1 -0
- package/dist/cjs/svm/index.js +5 -0
- package/dist/cjs/svm/index.js.map +1 -0
- package/dist/cjs/svm/types.d.ts +29 -0
- package/dist/cjs/svm/types.js +21 -0
- package/dist/cjs/svm/types.js.map +1 -0
- package/dist/cjs/svm/utils/events.d.ts +3 -0
- package/dist/cjs/svm/utils/events.js +38 -0
- package/dist/cjs/svm/utils/events.js.map +1 -0
- package/dist/cjs/svm/utils/helpers.d.ts +2 -0
- package/dist/cjs/svm/utils/helpers.js +19 -0
- package/dist/cjs/svm/utils/helpers.js.map +1 -0
- package/dist/cjs/utils/DepositUtils.js +2 -3
- package/dist/cjs/utils/DepositUtils.js.map +1 -1
- package/dist/cjs/utils/JSONUtils.d.ts +2 -0
- package/dist/cjs/utils/JSONUtils.js +9 -1
- package/dist/cjs/utils/JSONUtils.js.map +1 -1
- package/dist/cjs/utils/LogUtils.d.ts +4 -2
- package/dist/cjs/utils/LogUtils.js +10 -1
- package/dist/cjs/utils/LogUtils.js.map +1 -1
- package/dist/cjs/utils/SpokeUtils.d.ts +9 -0
- package/dist/cjs/utils/SpokeUtils.js +29 -1
- package/dist/cjs/utils/SpokeUtils.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +0 -1
- package/dist/cjs/utils/index.js +0 -1
- package/dist/cjs/utils/index.js.map +1 -1
- package/dist/esm/addressAggregator/adapters/bybit.d.ts +10 -0
- package/dist/esm/addressAggregator/adapters/bybit.js +41 -0
- package/dist/esm/addressAggregator/adapters/bybit.js.map +1 -0
- package/dist/esm/addressAggregator/adapters/env.d.ts +8 -0
- package/dist/esm/addressAggregator/adapters/env.js +30 -0
- package/dist/esm/addressAggregator/adapters/env.js.map +1 -0
- package/dist/esm/addressAggregator/adapters/file.d.ts +8 -0
- package/dist/esm/addressAggregator/adapters/file.js +47 -0
- package/dist/esm/addressAggregator/adapters/file.js.map +1 -0
- package/dist/esm/addressAggregator/adapters/index.d.ts +3 -0
- package/dist/esm/addressAggregator/adapters/index.js +7 -0
- package/dist/esm/addressAggregator/adapters/index.js.map +1 -0
- package/dist/esm/addressAggregator/adapters/util.d.ts +4 -0
- package/dist/esm/addressAggregator/adapters/util.js +60 -0
- package/dist/esm/addressAggregator/adapters/util.js.map +1 -0
- package/dist/esm/addressAggregator/index.d.ts +10 -0
- package/dist/esm/addressAggregator/index.js +107 -0
- package/dist/esm/addressAggregator/index.js.map +1 -0
- package/dist/esm/addressAggregator/types.d.ts +6 -0
- package/dist/esm/addressAggregator/types.js +2 -0
- package/dist/esm/addressAggregator/types.js.map +1 -0
- package/dist/esm/caching/Memory/MemoryCacheClient.d.ts +9 -0
- package/dist/esm/caching/Memory/MemoryCacheClient.js +32 -0
- package/dist/esm/caching/Memory/MemoryCacheClient.js.map +1 -0
- package/dist/esm/caching/Memory/index.d.ts +1 -0
- package/dist/esm/caching/Memory/index.js +2 -0
- package/dist/esm/caching/Memory/index.js.map +1 -0
- package/dist/esm/caching/index.d.ts +1 -0
- package/dist/esm/caching/index.js +1 -0
- package/dist/esm/caching/index.js.map +1 -1
- package/dist/esm/clients/HubPoolClient.d.ts +1 -1
- package/dist/esm/clients/HubPoolClient.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient.d.ts +2 -1
- package/dist/esm/clients/SpokePoolClient.js +61 -70
- package/dist/esm/clients/SpokePoolClient.js.map +1 -1
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/lpFeeCalculator/lpFeeCalculator.js +2 -1
- package/dist/esm/lpFeeCalculator/lpFeeCalculator.js.map +1 -1
- package/dist/esm/providers/cachedProvider.js +21 -20
- package/dist/esm/providers/cachedProvider.js.map +1 -1
- package/dist/esm/providers/solana/baseRpcFactories.d.ts +2 -2
- package/dist/esm/providers/solana/baseRpcFactories.js +1 -1
- package/dist/esm/providers/solana/baseRpcFactories.js.map +1 -1
- package/dist/esm/providers/solana/cachedRpcFactory.d.ts +16 -0
- package/dist/esm/providers/solana/cachedRpcFactory.js +128 -0
- package/dist/esm/providers/solana/cachedRpcFactory.js.map +1 -0
- package/dist/esm/providers/solana/defaultRpcFactory.d.ts +1 -1
- package/dist/esm/providers/solana/defaultRpcFactory.js +1 -1
- package/dist/esm/providers/solana/defaultRpcFactory.js.map +1 -1
- package/dist/esm/providers/solana/index.d.ts +1 -0
- package/dist/esm/providers/solana/index.js +1 -0
- package/dist/esm/providers/solana/index.js.map +1 -1
- package/dist/esm/providers/solana/rateLimitedRpcFactory.d.ts +2 -2
- package/dist/esm/svm/eventsClient.d.ts +51 -0
- package/dist/esm/svm/eventsClient.js +202 -0
- package/dist/esm/svm/eventsClient.js.map +1 -0
- package/dist/esm/svm/index.d.ts +1 -0
- package/dist/esm/svm/index.js +2 -0
- package/dist/esm/svm/index.js.map +1 -0
- package/dist/esm/svm/types.d.ts +29 -0
- package/dist/esm/svm/types.js +18 -0
- package/dist/esm/svm/types.js.map +1 -0
- package/dist/esm/svm/utils/events.d.ts +9 -0
- package/dist/esm/svm/utils/events.js +43 -0
- package/dist/esm/svm/utils/events.js.map +1 -0
- package/dist/esm/svm/utils/helpers.d.ts +5 -0
- package/dist/esm/svm/utils/helpers.js +18 -0
- package/dist/esm/svm/utils/helpers.js.map +1 -0
- package/dist/esm/utils/DepositUtils.js +1 -2
- package/dist/esm/utils/DepositUtils.js.map +1 -1
- package/dist/esm/utils/JSONUtils.d.ts +8 -0
- package/dist/esm/utils/JSONUtils.js +12 -0
- package/dist/esm/utils/JSONUtils.js.map +1 -1
- package/dist/esm/utils/LogUtils.d.ts +4 -2
- package/dist/esm/utils/LogUtils.js +10 -1
- package/dist/esm/utils/LogUtils.js.map +1 -1
- package/dist/esm/utils/SpokeUtils.d.ts +9 -0
- package/dist/esm/utils/SpokeUtils.js +34 -1
- package/dist/esm/utils/SpokeUtils.js.map +1 -1
- package/dist/esm/utils/index.d.ts +0 -1
- package/dist/esm/utils/index.js +0 -1
- package/dist/esm/utils/index.js.map +1 -1
- package/dist/types/addressAggregator/adapters/bybit.d.ts +11 -0
- package/dist/types/addressAggregator/adapters/bybit.d.ts.map +1 -0
- package/dist/types/addressAggregator/adapters/env.d.ts +9 -0
- package/dist/types/addressAggregator/adapters/env.d.ts.map +1 -0
- package/dist/types/addressAggregator/adapters/file.d.ts +9 -0
- package/dist/types/addressAggregator/adapters/file.d.ts.map +1 -0
- package/dist/types/addressAggregator/adapters/index.d.ts +4 -0
- package/dist/types/addressAggregator/adapters/index.d.ts.map +1 -0
- package/dist/types/addressAggregator/adapters/util.d.ts +5 -0
- package/dist/types/addressAggregator/adapters/util.d.ts.map +1 -0
- package/dist/types/addressAggregator/index.d.ts +11 -0
- package/dist/types/addressAggregator/index.d.ts.map +1 -0
- package/dist/types/addressAggregator/types.d.ts +7 -0
- package/dist/types/addressAggregator/types.d.ts.map +1 -0
- package/dist/types/caching/Memory/MemoryCacheClient.d.ts +10 -0
- package/dist/types/caching/Memory/MemoryCacheClient.d.ts.map +1 -0
- package/dist/types/caching/Memory/index.d.ts +2 -0
- package/dist/types/caching/Memory/index.d.ts.map +1 -0
- package/dist/types/caching/index.d.ts +1 -0
- package/dist/types/caching/index.d.ts.map +1 -1
- package/dist/types/clients/HubPoolClient.d.ts +1 -1
- package/dist/types/clients/HubPoolClient.d.ts.map +1 -1
- package/dist/types/clients/SpokePoolClient.d.ts +2 -1
- package/dist/types/clients/SpokePoolClient.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/lpFeeCalculator/lpFeeCalculator.d.ts.map +1 -1
- package/dist/types/providers/solana/baseRpcFactories.d.ts +2 -2
- package/dist/types/providers/solana/baseRpcFactories.d.ts.map +1 -1
- package/dist/types/providers/solana/cachedRpcFactory.d.ts +17 -0
- package/dist/types/providers/solana/cachedRpcFactory.d.ts.map +1 -0
- package/dist/types/providers/solana/defaultRpcFactory.d.ts +1 -1
- package/dist/types/providers/solana/defaultRpcFactory.d.ts.map +1 -1
- package/dist/types/providers/solana/index.d.ts +1 -0
- package/dist/types/providers/solana/index.d.ts.map +1 -1
- package/dist/types/providers/solana/rateLimitedRpcFactory.d.ts +2 -2
- package/dist/types/providers/solana/rateLimitedRpcFactory.d.ts.map +1 -1
- package/dist/types/svm/eventsClient.d.ts +52 -0
- package/dist/types/svm/eventsClient.d.ts.map +1 -0
- package/dist/types/svm/index.d.ts +2 -0
- package/dist/types/svm/index.d.ts.map +1 -0
- package/dist/types/svm/types.d.ts +30 -0
- package/dist/types/svm/types.d.ts.map +1 -0
- package/dist/types/svm/utils/events.d.ts +10 -0
- package/dist/types/svm/utils/events.d.ts.map +1 -0
- package/dist/types/svm/utils/helpers.d.ts +6 -0
- package/dist/types/svm/utils/helpers.d.ts.map +1 -0
- package/dist/types/utils/DepositUtils.d.ts.map +1 -1
- package/dist/types/utils/JSONUtils.d.ts +8 -0
- package/dist/types/utils/JSONUtils.d.ts.map +1 -1
- package/dist/types/utils/LogUtils.d.ts +4 -2
- package/dist/types/utils/LogUtils.d.ts.map +1 -1
- package/dist/types/utils/SpokeUtils.d.ts +9 -0
- package/dist/types/utils/SpokeUtils.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts +0 -1
- package/dist/types/utils/index.d.ts.map +1 -1
- package/package.json +8 -3
- package/src/addressAggregator/adapters/bybit.ts +32 -0
- package/src/addressAggregator/adapters/env.ts +30 -0
- package/src/addressAggregator/adapters/file.ts +39 -0
- package/src/addressAggregator/adapters/index.ts +3 -0
- package/src/addressAggregator/adapters/util.ts +47 -0
- package/src/addressAggregator/index.ts +86 -0
- package/src/addressAggregator/types.ts +8 -0
- package/src/caching/Memory/MemoryCacheClient.ts +35 -0
- package/src/caching/Memory/index.ts +1 -0
- package/src/caching/index.ts +1 -0
- package/src/clients/HubPoolClient.ts +2 -2
- package/src/clients/SpokePoolClient.ts +16 -17
- package/src/index.ts +2 -0
- package/src/lpFeeCalculator/lpFeeCalculator.ts +6 -1
- package/src/providers/cachedProvider.ts +34 -34
- package/src/providers/solana/baseRpcFactories.ts +1 -1
- package/src/providers/solana/cachedRpcFactory.ts +124 -0
- package/src/providers/solana/defaultRpcFactory.ts +1 -1
- package/src/providers/solana/index.ts +1 -0
- package/src/providers/solana/rateLimitedRpcFactory.ts +2 -2
- package/src/svm/eventsClient.ts +205 -0
- package/src/svm/index.ts +1 -0
- package/src/svm/types.ts +47 -0
- package/src/svm/utils/events.ts +46 -0
- package/src/svm/utils/helpers.ts +9 -0
- package/src/utils/DepositUtils.ts +1 -2
- package/src/utils/JSONUtils.ts +14 -0
- package/src/utils/LogUtils.ts +3 -2
- package/src/utils/SpokeUtils.ts +42 -1
- package/src/utils/index.ts +0 -1
- package/dist/cjs/utils/FlowUtils.d.ts +0 -11
- package/dist/cjs/utils/FlowUtils.js +0 -34
- package/dist/cjs/utils/FlowUtils.js.map +0 -1
- package/dist/esm/utils/FlowUtils.d.ts +0 -11
- package/dist/esm/utils/FlowUtils.js +0 -36
- package/dist/esm/utils/FlowUtils.js.map +0 -1
- package/dist/types/utils/FlowUtils.d.ts +0 -12
- package/dist/types/utils/FlowUtils.d.ts.map +0 -1
- package/src/utils/FlowUtils.ts +0 -44
|
@@ -52,47 +52,48 @@ var CacheProvider = (function (_super) {
|
|
|
52
52
|
_f.label = 3;
|
|
53
53
|
case 3:
|
|
54
54
|
cacheType = _d;
|
|
55
|
-
if (!(cacheType
|
|
55
|
+
if (!(cacheType === utils_1.CacheType.NONE)) return [3, 5];
|
|
56
|
+
return [4, _super.prototype.send.call(this, method, params)];
|
|
57
|
+
case 4: return [2, _f.sent()];
|
|
58
|
+
case 5:
|
|
56
59
|
redisKey = this.buildRedisKey(method, params);
|
|
57
60
|
return [4, ((_a = this.redisClient) === null || _a === void 0 ? void 0 : _a.get(redisKey))];
|
|
58
|
-
case
|
|
61
|
+
case 6:
|
|
59
62
|
redisResult = _f.sent();
|
|
60
63
|
if (redisResult) {
|
|
61
64
|
return [2, JSON.parse(redisResult)];
|
|
62
65
|
}
|
|
63
66
|
return [4, _super.prototype.send.call(this, method, params)];
|
|
64
|
-
case
|
|
67
|
+
case 7:
|
|
65
68
|
result = _f.sent();
|
|
66
|
-
if (!(cacheType === utils_1.CacheType.DECIDE_TTL_POST_SEND)) return [3,
|
|
69
|
+
if (!(cacheType === utils_1.CacheType.DECIDE_TTL_POST_SEND)) return [3, 9];
|
|
67
70
|
blockNumber = this.getBlockNumberFromRpcResponse(method, result);
|
|
68
71
|
return [4, this.cacheTypeForBlock(blockNumber)];
|
|
69
|
-
case
|
|
72
|
+
case 8:
|
|
70
73
|
cacheType = _f.sent();
|
|
71
74
|
if (cacheType === utils_1.CacheType.NONE) {
|
|
72
75
|
return [2, result];
|
|
73
76
|
}
|
|
74
|
-
_f.label =
|
|
75
|
-
case
|
|
77
|
+
_f.label = 9;
|
|
78
|
+
case 9:
|
|
76
79
|
_e = cacheType;
|
|
77
80
|
switch (_e) {
|
|
78
|
-
case utils_1.CacheType.WITH_TTL: return [3,
|
|
79
|
-
case utils_1.CacheType.NO_TTL: return [3,
|
|
81
|
+
case utils_1.CacheType.WITH_TTL: return [3, 10];
|
|
82
|
+
case utils_1.CacheType.NO_TTL: return [3, 12];
|
|
80
83
|
}
|
|
81
|
-
return [3,
|
|
82
|
-
case
|
|
84
|
+
return [3, 14];
|
|
85
|
+
case 10:
|
|
83
86
|
ttl = this.baseTTL + Math.ceil((0, lodash_1.random)(-constants_1.PROVIDER_CACHE_TTL_MODIFIER, constants_1.PROVIDER_CACHE_TTL_MODIFIER, true) * this.baseTTL);
|
|
84
87
|
return [4, ((_b = this.redisClient) === null || _b === void 0 ? void 0 : _b.set(redisKey, JSON.stringify(result), ttl))];
|
|
85
|
-
case 9:
|
|
86
|
-
_f.sent();
|
|
87
|
-
return [3, 13];
|
|
88
|
-
case 10: return [4, ((_c = this.redisClient) === null || _c === void 0 ? void 0 : _c.set(redisKey, JSON.stringify(result), Number.POSITIVE_INFINITY))];
|
|
89
88
|
case 11:
|
|
90
89
|
_f.sent();
|
|
91
|
-
return [3,
|
|
92
|
-
case 12:
|
|
93
|
-
case 13:
|
|
94
|
-
|
|
95
|
-
|
|
90
|
+
return [3, 15];
|
|
91
|
+
case 12: return [4, ((_c = this.redisClient) === null || _c === void 0 ? void 0 : _c.set(redisKey, JSON.stringify(result), Number.POSITIVE_INFINITY))];
|
|
92
|
+
case 13:
|
|
93
|
+
_f.sent();
|
|
94
|
+
return [3, 15];
|
|
95
|
+
case 14: throw new Error("Unexpected Cache type: ".concat(cacheType));
|
|
96
|
+
case 15: return [2, result];
|
|
96
97
|
}
|
|
97
98
|
});
|
|
98
99
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cachedProvider.js","sourceRoot":"","sources":["../../../src/providers/cachedProvider.ts"],"names":[],"mappings":";;;;AAAA,iCAAgC;AAEhC,yCAAgH;AAChH,6DAA4D;AAC5D,iCAAoC;AAEpC;IAAmC,yCAAmB;IAOpD,uBACE,sBAA8B,EACrB,WAAuC,EAEvC,wBAAmD,EAEnD,kBAA6C,EAC7C,gBAAqC;QAHrC,yCAAA,EAAA,2BAA2B,MAAM,CAAC,iBAAiB;QAEnD,mCAAA,EAAA,qBAAqB,MAAM,CAAC,iBAAiB;QAC7C,iCAAA,EAAA,mBAAmB,8BAAkB;QAC9C,kCAA8E;aAA9E,UAA8E,EAA9E,qBAA8E,EAA9E,IAA8E;YAA9E,iDAA8E;;QARhF,+BAUW,wBAAwB,UAiBlC;QAzBU,iBAAW,GAAX,WAAW,CAA4B;QAEvC,8BAAwB,GAAxB,wBAAwB,CAA2B;QAEnD,wBAAkB,GAAlB,kBAAkB,CAA2B;QAC7C,sBAAgB,GAAhB,gBAAgB,CAAqB;QAKtC,IAAA,OAAO,GAAK,KAAI,CAAC,OAAO,QAAjB,CAAkB;QAGjC,IAAM,WAAW,GAAG,UAAG,sBAAsB,cAAI,IAAI,GAAG,CAAC,KAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,cAAI,OAAO,CAAE,CAAC;QACpG,KAAI,CAAC,sBAAsB,GAAG,UAAG,WAAW,uBAAoB,CAAC;QACjE,KAAI,CAAC,kBAAkB,GAAG,UAAG,WAAW,kBAAe,CAAC;QACxD,KAAI,CAAC,eAAe,GAAG,UAAG,WAAW,eAAY,CAAC;QAClD,KAAI,CAAC,2BAA2B,GAAG,UAAG,WAAW,gCAA6B,CAAC;QAE/E,IAAM,OAAO,GAAG,gBAAgB,CAAC;QACjC,IAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE;YAC5B,MAAM,IAAI,KAAK,CAAC,8BAAuB,OAAO,8BAA2B,CAAC,CAAC;SAC5E;QACD,KAAI,CAAC,OAAO,GAAG,IAAI,CAAC;;IACtB,CAAC;IACc,4BAAI,GAAnB,UAAoB,MAAc,EAAE,MAAsB;;;;;;;6BACxC,IAAI,CAAC,WAAW,EAAhB,cAAgB;wBAAG,WAAM,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAA;;wBAApC,KAAA,SAAoC,CAAA;;;wBAAG,KAAA,iBAAS,CAAC,IAAI,CAAA;;;wBAApF,SAAS,KAA2E;6BAEpF,CAAA,SAAS,KAAK,iBAAS,CAAC,IAAI,CAAA,EAA5B,
|
|
1
|
+
{"version":3,"file":"cachedProvider.js","sourceRoot":"","sources":["../../../src/providers/cachedProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { ClusterUrl, RpcTransport } from "@solana/
|
|
1
|
+
import { ClusterUrl, RpcTransport } from "@solana/kit";
|
|
2
2
|
export declare abstract class SolanaBaseRpcFactory {
|
|
3
3
|
readonly chainId: number;
|
|
4
4
|
constructor(chainId: number);
|
|
5
5
|
abstract createTransport(): RpcTransport;
|
|
6
|
-
createRpcClient(): import("@solana/
|
|
6
|
+
createRpcClient(): import("@solana/kit").Rpc<import("@solana/kit").RequestAirdropApi & import("@solana/kit").GetAccountInfoApi & import("@solana/kit").GetBalanceApi & import("@solana/kit").GetBlockApi & import("@solana/kit").GetBlockCommitmentApi & import("@solana/kit").GetBlockHeightApi & import("@solana/kit").GetBlockProductionApi & import("@solana/kit").GetBlocksApi & import("@solana/kit").GetBlocksWithLimitApi & import("@solana/kit").GetBlockTimeApi & import("@solana/kit").GetClusterNodesApi & import("@solana/kit").GetEpochInfoApi & import("@solana/kit").GetEpochScheduleApi & import("@solana/kit").GetFeeForMessageApi & import("@solana/kit").GetFirstAvailableBlockApi & import("@solana/kit").GetGenesisHashApi & import("@solana/kit").GetHealthApi & import("@solana/kit").GetHighestSnapshotSlotApi & import("@solana/kit").GetIdentityApi & import("@solana/kit").GetInflationGovernorApi & import("@solana/kit").GetInflationRateApi & import("@solana/kit").GetInflationRewardApi & import("@solana/kit").GetLargestAccountsApi & import("@solana/kit").GetLatestBlockhashApi & import("@solana/kit").GetLeaderScheduleApi & import("@solana/kit").GetMaxRetransmitSlotApi & import("@solana/kit").GetMaxShredInsertSlotApi & import("@solana/kit").GetMinimumBalanceForRentExemptionApi & import("@solana/kit").GetMultipleAccountsApi & import("@solana/kit").GetProgramAccountsApi & import("@solana/kit").GetRecentPerformanceSamplesApi & import("@solana/kit").GetRecentPrioritizationFeesApi & import("@solana/kit").GetSignaturesForAddressApi & import("@solana/kit").GetSignatureStatusesApi & import("@solana/kit").GetSlotApi & import("@solana/kit").GetSlotLeaderApi & import("@solana/kit").GetSlotLeadersApi & import("@solana/kit").GetStakeMinimumDelegationApi & import("@solana/kit").GetSupplyApi & import("@solana/kit").GetTokenAccountBalanceApi & import("@solana/kit").GetTokenAccountsByDelegateApi & import("@solana/kit").GetTokenAccountsByOwnerApi & import("@solana/kit").GetTokenLargestAccountsApi & import("@solana/kit").GetTokenSupplyApi & import("@solana/kit").GetTransactionApi & import("@solana/kit").GetTransactionCountApi & import("@solana/kit").GetVersionApi & import("@solana/kit").GetVoteAccountsApi & import("@solana/kit").IsBlockhashValidApi & import("@solana/kit").MinimumLedgerSlotApi & import("@solana/kit").SendTransactionApi & import("@solana/kit").SimulateTransactionApi>;
|
|
7
7
|
}
|
|
8
8
|
export declare abstract class SolanaClusterRpcFactory extends SolanaBaseRpcFactory {
|
|
9
9
|
readonly clusterUrl: ClusterUrl;
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SolanaClusterRpcFactory = exports.SolanaBaseRpcFactory = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
|
-
var
|
|
5
|
+
var kit_1 = require("@solana/kit");
|
|
6
6
|
var SolanaBaseRpcFactory = (function () {
|
|
7
7
|
function SolanaBaseRpcFactory(chainId) {
|
|
8
8
|
this.chainId = chainId;
|
|
9
9
|
}
|
|
10
10
|
SolanaBaseRpcFactory.prototype.createRpcClient = function () {
|
|
11
|
-
return (0,
|
|
11
|
+
return (0, kit_1.createSolanaRpcFromTransport)(this.createTransport());
|
|
12
12
|
};
|
|
13
13
|
return SolanaBaseRpcFactory;
|
|
14
14
|
}());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseRpcFactories.js","sourceRoot":"","sources":["../../../../src/providers/solana/baseRpcFactories.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"baseRpcFactories.js","sourceRoot":"","sources":["../../../../src/providers/solana/baseRpcFactories.ts"],"names":[],"mappings":";;;;AAAA,mCAAqF;AAGrF;IACE,8BAAqB,OAAe;QAAf,YAAO,GAAP,OAAO,CAAQ;IAAG,CAAC;IAMjC,8CAAe,GAAtB;QACE,OAAO,IAAA,kCAA4B,EAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IAC9D,CAAC;IACH,2BAAC;AAAD,CAAC,AAVD,IAUC;AAVqB,oDAAoB;AAc1C;IAAsD,mDAAoB;IACxE,iCACW,UAAsB;QAC/B,+BAA4E;aAA5E,UAA4E,EAA5E,qBAA4E,EAA5E,IAA4E;YAA5E,8CAA4E;;QAF9E,+BAIW,qBAAqB,UAC/B;QAJU,gBAAU,GAAV,UAAU,CAAY;;IAIjC,CAAC;IACH,8BAAC;AAAD,CAAC,AAPD,CAAsD,oBAAoB,GAOzE;AAPqB,0DAAuB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { RpcTransport, RpcFromTransport, SolanaRpcApiFromTransport } from "@solana/kit";
|
|
2
|
+
import { CachingMechanismInterface } from "../../interfaces";
|
|
3
|
+
import { SolanaClusterRpcFactory } from "./baseRpcFactories";
|
|
4
|
+
import { RateLimitedSolanaRpcFactory } from "./rateLimitedRpcFactory";
|
|
5
|
+
export declare class CachedSolanaRpcFactory extends SolanaClusterRpcFactory {
|
|
6
|
+
readonly redisClient?: CachingMechanismInterface | undefined;
|
|
7
|
+
readonly getTransactionCachePrefix: string;
|
|
8
|
+
protected rateLimitedTransport: RpcTransport;
|
|
9
|
+
protected rateLimitedRpcClient: RpcFromTransport<SolanaRpcApiFromTransport<RpcTransport>, RpcTransport>;
|
|
10
|
+
constructor(providerCacheNamespace: string, redisClient?: CachingMechanismInterface | undefined, ...rateLimitedConstructorParams: ConstructorParameters<typeof RateLimitedSolanaRpcFactory>);
|
|
11
|
+
createTransport(): RpcTransport;
|
|
12
|
+
private requestAndCacheFinalized;
|
|
13
|
+
private buildRedisKey;
|
|
14
|
+
private cacheType;
|
|
15
|
+
private isGetTransactionParams;
|
|
16
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CachedSolanaRpcFactory = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var superstruct_1 = require("superstruct");
|
|
6
|
+
var baseRpcFactories_1 = require("./baseRpcFactories");
|
|
7
|
+
var rateLimitedRpcFactory_1 = require("./rateLimitedRpcFactory");
|
|
8
|
+
var utils_1 = require("../utils");
|
|
9
|
+
var utils_2 = require("../../utils");
|
|
10
|
+
var CachedSolanaRpcFactory = (function (_super) {
|
|
11
|
+
tslib_1.__extends(CachedSolanaRpcFactory, _super);
|
|
12
|
+
function CachedSolanaRpcFactory(providerCacheNamespace, redisClient) {
|
|
13
|
+
var _this = this;
|
|
14
|
+
var rateLimitedConstructorParams = [];
|
|
15
|
+
for (var _i = 2; _i < arguments.length; _i++) {
|
|
16
|
+
rateLimitedConstructorParams[_i - 2] = arguments[_i];
|
|
17
|
+
}
|
|
18
|
+
var superParams = rateLimitedConstructorParams.slice(-2);
|
|
19
|
+
_this = _super.apply(this, superParams) || this;
|
|
20
|
+
_this.redisClient = redisClient;
|
|
21
|
+
var rateLimitedRpcFactory = new (rateLimitedRpcFactory_1.RateLimitedSolanaRpcFactory.bind.apply(rateLimitedRpcFactory_1.RateLimitedSolanaRpcFactory, tslib_1.__spreadArray([void 0], rateLimitedConstructorParams, false)))();
|
|
22
|
+
_this.rateLimitedTransport = rateLimitedRpcFactory.createTransport();
|
|
23
|
+
_this.rateLimitedRpcClient = rateLimitedRpcFactory.createRpcClient();
|
|
24
|
+
var cachePrefix = "".concat(providerCacheNamespace, ",").concat(new URL(_this.clusterUrl).hostname, ",").concat(_this.chainId);
|
|
25
|
+
_this.getTransactionCachePrefix = "".concat(cachePrefix, ":getTransaction,");
|
|
26
|
+
return _this;
|
|
27
|
+
}
|
|
28
|
+
CachedSolanaRpcFactory.prototype.createTransport = function () {
|
|
29
|
+
var _this = this;
|
|
30
|
+
return function () {
|
|
31
|
+
var args = [];
|
|
32
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
33
|
+
args[_i] = arguments[_i];
|
|
34
|
+
}
|
|
35
|
+
return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
36
|
+
var _a, method, params, cacheType, redisKey, redisResult;
|
|
37
|
+
var _b;
|
|
38
|
+
return tslib_1.__generator(this, function (_c) {
|
|
39
|
+
switch (_c.label) {
|
|
40
|
+
case 0:
|
|
41
|
+
_a = args[0].payload, method = _a.method, params = _a.params;
|
|
42
|
+
cacheType = this.redisClient ? this.cacheType(method) : utils_1.CacheType.NONE;
|
|
43
|
+
if (cacheType === utils_1.CacheType.NONE) {
|
|
44
|
+
return [2, this.rateLimitedTransport.apply(this, args)];
|
|
45
|
+
}
|
|
46
|
+
redisKey = this.buildRedisKey(method, params);
|
|
47
|
+
return [4, ((_b = this.redisClient) === null || _b === void 0 ? void 0 : _b.get(redisKey))];
|
|
48
|
+
case 1:
|
|
49
|
+
redisResult = _c.sent();
|
|
50
|
+
if (redisResult) {
|
|
51
|
+
return [2, JSON.parse(redisResult, utils_2.jsonReviverWithBigInts)];
|
|
52
|
+
}
|
|
53
|
+
return [2, this.requestAndCacheFinalized.apply(this, args)];
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
CachedSolanaRpcFactory.prototype.requestAndCacheFinalized = function () {
|
|
60
|
+
var _a, _b;
|
|
61
|
+
var args = [];
|
|
62
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
63
|
+
args[_i] = arguments[_i];
|
|
64
|
+
}
|
|
65
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
66
|
+
var _c, method, params, getSignatureStatusesResponse, getTransactionResponse, redisKey;
|
|
67
|
+
return tslib_1.__generator(this, function (_d) {
|
|
68
|
+
switch (_d.label) {
|
|
69
|
+
case 0:
|
|
70
|
+
_c = args[0].payload, method = _c.method, params = _c.params;
|
|
71
|
+
if (method !== "getTransaction")
|
|
72
|
+
return [2, this.rateLimitedTransport.apply(this, args)];
|
|
73
|
+
if (!this.isGetTransactionParams(params))
|
|
74
|
+
return [2, this.rateLimitedTransport.apply(this, args)];
|
|
75
|
+
return [4, this.rateLimitedRpcClient
|
|
76
|
+
.getSignatureStatuses([params[0]], {
|
|
77
|
+
searchTransactionHistory: true,
|
|
78
|
+
})
|
|
79
|
+
.send()];
|
|
80
|
+
case 1:
|
|
81
|
+
getSignatureStatusesResponse = _d.sent();
|
|
82
|
+
return [4, this.rateLimitedTransport.apply(this, args)];
|
|
83
|
+
case 2:
|
|
84
|
+
getTransactionResponse = _d.sent();
|
|
85
|
+
if (!(((_a = getSignatureStatusesResponse.value[0]) === null || _a === void 0 ? void 0 : _a.confirmationStatus) === "finalized")) return [3, 4];
|
|
86
|
+
redisKey = this.buildRedisKey(method, params);
|
|
87
|
+
return [4, ((_b = this.redisClient) === null || _b === void 0 ? void 0 : _b.set(redisKey, JSON.stringify(getTransactionResponse, utils_2.jsonReplacerWithBigInts), Number.POSITIVE_INFINITY))];
|
|
88
|
+
case 3:
|
|
89
|
+
_d.sent();
|
|
90
|
+
_d.label = 4;
|
|
91
|
+
case 4: return [2, getTransactionResponse];
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
CachedSolanaRpcFactory.prototype.buildRedisKey = function (method, params) {
|
|
97
|
+
switch (method) {
|
|
98
|
+
case "getTransaction":
|
|
99
|
+
return this.getTransactionCachePrefix + JSON.stringify(params, utils_2.jsonReplacerWithBigInts);
|
|
100
|
+
default:
|
|
101
|
+
throw new Error("CachedSolanaRpcFactory::buildRedisKey: invalid JSON-RPC method ".concat(method));
|
|
102
|
+
}
|
|
103
|
+
};
|
|
104
|
+
CachedSolanaRpcFactory.prototype.cacheType = function (method) {
|
|
105
|
+
if (method === "getTransaction") {
|
|
106
|
+
return utils_1.CacheType.NO_TTL;
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
return utils_1.CacheType.NONE;
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
CachedSolanaRpcFactory.prototype.isGetTransactionParams = function (params) {
|
|
113
|
+
return (0, superstruct_1.is)(params, (0, superstruct_1.tuple)([
|
|
114
|
+
(0, superstruct_1.string)(),
|
|
115
|
+
(0, superstruct_1.optional)((0, superstruct_1.object)()),
|
|
116
|
+
]));
|
|
117
|
+
};
|
|
118
|
+
return CachedSolanaRpcFactory;
|
|
119
|
+
}(baseRpcFactories_1.SolanaClusterRpcFactory));
|
|
120
|
+
exports.CachedSolanaRpcFactory = CachedSolanaRpcFactory;
|
|
121
|
+
//# sourceMappingURL=cachedRpcFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cachedRpcFactory.js","sourceRoot":"","sources":["../../../../src/providers/solana/cachedRpcFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RpcTransport } from "@solana/
|
|
1
|
+
import { RpcTransport } from "@solana/kit";
|
|
2
2
|
import { SolanaClusterRpcFactory } from "./baseRpcFactories";
|
|
3
3
|
export declare class SolanaDefaultRpcFactory extends SolanaClusterRpcFactory {
|
|
4
4
|
constructor(...clusterConstructorParams: ConstructorParameters<typeof SolanaClusterRpcFactory>);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SolanaDefaultRpcFactory = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
|
-
var
|
|
5
|
+
var kit_1 = require("@solana/kit");
|
|
6
6
|
var baseRpcFactories_1 = require("./baseRpcFactories");
|
|
7
7
|
var SolanaDefaultRpcFactory = (function (_super) {
|
|
8
8
|
tslib_1.__extends(SolanaDefaultRpcFactory, _super);
|
|
@@ -14,7 +14,7 @@ var SolanaDefaultRpcFactory = (function (_super) {
|
|
|
14
14
|
return _super.apply(this, clusterConstructorParams) || this;
|
|
15
15
|
}
|
|
16
16
|
SolanaDefaultRpcFactory.prototype.createTransport = function () {
|
|
17
|
-
return (0,
|
|
17
|
+
return (0, kit_1.createDefaultRpcTransport)({ url: this.clusterUrl });
|
|
18
18
|
};
|
|
19
19
|
return SolanaDefaultRpcFactory;
|
|
20
20
|
}(baseRpcFactories_1.SolanaClusterRpcFactory));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultRpcFactory.js","sourceRoot":"","sources":["../../../../src/providers/solana/defaultRpcFactory.ts"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"defaultRpcFactory.js","sourceRoot":"","sources":["../../../../src/providers/solana/defaultRpcFactory.ts"],"names":[],"mappings":";;;;AAAA,mCAAsE;AACtE,uDAA6D;AAG7D;IAA6C,mDAAuB;IAClE;QAAY,kCAAkF;aAAlF,UAAkF,EAAlF,qBAAkF,EAAlF,IAAkF;YAAlF,6CAAkF;;kCACnF,wBAAwB;IACnC,CAAC;IAEM,iDAAe,GAAtB;QACE,OAAO,IAAA,+BAAyB,EAAC,EAAE,GAAG,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7D,CAAC;IACH,8BAAC;AAAD,CAAC,AARD,CAA6C,0CAAuB,GAQnE;AARY,0DAAuB"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
var tslib_1 = require("tslib");
|
|
4
4
|
tslib_1.__exportStar(require("./baseRpcFactories"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./cachedRpcFactory"), exports);
|
|
5
6
|
tslib_1.__exportStar(require("./defaultRpcFactory"), exports);
|
|
6
7
|
tslib_1.__exportStar(require("./rateLimitedRpcFactory"), exports);
|
|
7
8
|
tslib_1.__exportStar(require("./utils"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/providers/solana/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,8DAAoC;AACpC,kEAAwC;AACxC,kDAAwB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/providers/solana/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,6DAAmC;AACnC,8DAAoC;AACpC,kEAAwC;AACxC,kDAAwB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { RpcResponse } from "@solana/
|
|
1
|
+
import { RpcResponse, RpcTransport } from "@solana/kit";
|
|
2
2
|
import { Logger } from "winston";
|
|
3
3
|
import { SolanaClusterRpcFactory } from "./baseRpcFactories";
|
|
4
4
|
import { SolanaDefaultRpcFactory } from "./defaultRpcFactory";
|
|
@@ -6,7 +6,7 @@ export declare class RateLimitedSolanaRpcFactory extends SolanaClusterRpcFactory
|
|
|
6
6
|
readonly pctRpcCallsLogged: number;
|
|
7
7
|
readonly logger: Logger;
|
|
8
8
|
private queue;
|
|
9
|
-
|
|
9
|
+
protected defaultTransport: RpcTransport;
|
|
10
10
|
constructor(maxConcurrency: number, pctRpcCallsLogged: number, logger: Logger, ...defaultConstructorParams: ConstructorParameters<typeof SolanaDefaultRpcFactory>);
|
|
11
11
|
private wrapSendWithLog;
|
|
12
12
|
createTransport(): <TResponse>(config: Readonly<{
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import web3, { GetSignaturesForAddressApi, RpcTransport } from "@solana/kit";
|
|
2
|
+
import { EventData, EventName, EventWithData } from "./types";
|
|
3
|
+
type GetSignaturesForAddressConfig = Parameters<GetSignaturesForAddressApi["getSignaturesForAddress"]>[1];
|
|
4
|
+
export declare class SvmSpokeEventsClient {
|
|
5
|
+
private rpc;
|
|
6
|
+
private svmSpokeAddress;
|
|
7
|
+
private svmSpokeEventAuthority;
|
|
8
|
+
private constructor();
|
|
9
|
+
static create(rpc: web3.Rpc<web3.SolanaRpcApiFromTransport<RpcTransport>>): Promise<SvmSpokeEventsClient>;
|
|
10
|
+
queryEvents<T extends EventData>(eventName: EventName, fromSlot?: bigint, toSlot?: bigint, options?: GetSignaturesForAddressConfig): Promise<EventWithData<T>[]>;
|
|
11
|
+
private queryAllEvents;
|
|
12
|
+
private readEventsFromSignature;
|
|
13
|
+
private processEventFromTx;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SvmSpokeEventsClient = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var contracts_1 = require("@across-protocol/contracts");
|
|
6
|
+
var web3_v1_1 = require("@across-protocol/contracts/dist/src/svm/web3-v1");
|
|
7
|
+
var anchor_1 = require("@coral-xyz/anchor");
|
|
8
|
+
var kit_1 = tslib_1.__importDefault(require("@solana/kit"));
|
|
9
|
+
var events_1 = require("./utils/events");
|
|
10
|
+
var helpers_1 = require("./utils/helpers");
|
|
11
|
+
var SvmSpokeEventsClient = (function () {
|
|
12
|
+
function SvmSpokeEventsClient(rpc, svmSpokeAddress, eventAuthority) {
|
|
13
|
+
this.rpc = rpc;
|
|
14
|
+
this.svmSpokeAddress = svmSpokeAddress;
|
|
15
|
+
this.svmSpokeEventAuthority = eventAuthority;
|
|
16
|
+
}
|
|
17
|
+
SvmSpokeEventsClient.create = function (rpc) {
|
|
18
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
19
|
+
var isTestnet, programId, svmSpokeAddress, svmSpokeEventAuthority;
|
|
20
|
+
return tslib_1.__generator(this, function (_a) {
|
|
21
|
+
switch (_a.label) {
|
|
22
|
+
case 0: return [4, (0, helpers_1.isDevnet)(rpc)];
|
|
23
|
+
case 1:
|
|
24
|
+
isTestnet = _a.sent();
|
|
25
|
+
programId = (0, contracts_1.getDeployedAddress)("SvmSpoke", (0, web3_v1_1.getSolanaChainId)(isTestnet ? "devnet" : "mainnet").toString());
|
|
26
|
+
if (!programId)
|
|
27
|
+
throw new Error("Program not found");
|
|
28
|
+
svmSpokeAddress = kit_1.default.address(programId);
|
|
29
|
+
return [4, kit_1.default.getProgramDerivedAddress({
|
|
30
|
+
programAddress: svmSpokeAddress,
|
|
31
|
+
seeds: ["__event_authority"],
|
|
32
|
+
})];
|
|
33
|
+
case 2:
|
|
34
|
+
svmSpokeEventAuthority = (_a.sent())[0];
|
|
35
|
+
return [2, new SvmSpokeEventsClient(rpc, svmSpokeAddress, svmSpokeEventAuthority)];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
};
|
|
40
|
+
SvmSpokeEventsClient.prototype.queryEvents = function (eventName, fromSlot, toSlot, options) {
|
|
41
|
+
if (options === void 0) { options = { limit: 1000, commitment: "confirmed" }; }
|
|
42
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
43
|
+
var events;
|
|
44
|
+
return tslib_1.__generator(this, function (_a) {
|
|
45
|
+
switch (_a.label) {
|
|
46
|
+
case 0: return [4, this.queryAllEvents(fromSlot, toSlot, options)];
|
|
47
|
+
case 1:
|
|
48
|
+
events = _a.sent();
|
|
49
|
+
return [2, events.filter(function (event) { return event.name === eventName; })];
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
SvmSpokeEventsClient.prototype.queryAllEvents = function (fromSlot, toSlot, options) {
|
|
55
|
+
if (options === void 0) { options = { limit: 1000, commitment: "confirmed" }; }
|
|
56
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
57
|
+
var allSignatures, hasMoreSignatures, currentOptions, signatures, filteredSignatures, eventsWithSlots;
|
|
58
|
+
var _this = this;
|
|
59
|
+
return tslib_1.__generator(this, function (_a) {
|
|
60
|
+
switch (_a.label) {
|
|
61
|
+
case 0:
|
|
62
|
+
allSignatures = [];
|
|
63
|
+
hasMoreSignatures = true;
|
|
64
|
+
currentOptions = options;
|
|
65
|
+
_a.label = 1;
|
|
66
|
+
case 1:
|
|
67
|
+
if (!hasMoreSignatures) return [3, 3];
|
|
68
|
+
return [4, this.rpc
|
|
69
|
+
.getSignaturesForAddress(this.svmSpokeAddress, currentOptions)
|
|
70
|
+
.send()];
|
|
71
|
+
case 2:
|
|
72
|
+
signatures = _a.sent();
|
|
73
|
+
allSignatures.push.apply(allSignatures, signatures);
|
|
74
|
+
if (signatures.length > 0) {
|
|
75
|
+
currentOptions = tslib_1.__assign(tslib_1.__assign({}, currentOptions), { before: signatures[signatures.length - 1].signature });
|
|
76
|
+
}
|
|
77
|
+
if (fromSlot && allSignatures.length > 0 && allSignatures[allSignatures.length - 1].slot < fromSlot) {
|
|
78
|
+
hasMoreSignatures = false;
|
|
79
|
+
}
|
|
80
|
+
hasMoreSignatures = Boolean(hasMoreSignatures && currentOptions.limit && signatures.length === currentOptions.limit);
|
|
81
|
+
return [3, 1];
|
|
82
|
+
case 3:
|
|
83
|
+
filteredSignatures = allSignatures.filter(function (signatureTransaction) {
|
|
84
|
+
if (fromSlot && signatureTransaction.slot < fromSlot)
|
|
85
|
+
return false;
|
|
86
|
+
if (toSlot && signatureTransaction.slot > toSlot)
|
|
87
|
+
return false;
|
|
88
|
+
return true;
|
|
89
|
+
});
|
|
90
|
+
return [4, Promise.all(filteredSignatures.map(function (signatureTransaction) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
91
|
+
var events;
|
|
92
|
+
return tslib_1.__generator(this, function (_a) {
|
|
93
|
+
switch (_a.label) {
|
|
94
|
+
case 0: return [4, this.readEventsFromSignature(signatureTransaction.signature, options.commitment)];
|
|
95
|
+
case 1:
|
|
96
|
+
events = _a.sent();
|
|
97
|
+
return [2, events.map(function (event) { return (tslib_1.__assign(tslib_1.__assign({}, event), { confirmationStatus: signatureTransaction.confirmationStatus, blockTime: signatureTransaction.blockTime, signature: signatureTransaction.signature, slot: signatureTransaction.slot })); })];
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
}); }))];
|
|
101
|
+
case 4:
|
|
102
|
+
eventsWithSlots = _a.sent();
|
|
103
|
+
return [2, eventsWithSlots.flat()];
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
SvmSpokeEventsClient.prototype.readEventsFromSignature = function (txSignature, commitment) {
|
|
109
|
+
if (commitment === void 0) { commitment = "confirmed"; }
|
|
110
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
111
|
+
var txResult;
|
|
112
|
+
return tslib_1.__generator(this, function (_a) {
|
|
113
|
+
switch (_a.label) {
|
|
114
|
+
case 0: return [4, this.rpc
|
|
115
|
+
.getTransaction(txSignature, { commitment: commitment, maxSupportedTransactionVersion: 0 })
|
|
116
|
+
.send()];
|
|
117
|
+
case 1:
|
|
118
|
+
txResult = _a.sent();
|
|
119
|
+
if (txResult === null)
|
|
120
|
+
return [2, []];
|
|
121
|
+
return [2, this.processEventFromTx(txResult)];
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
};
|
|
126
|
+
SvmSpokeEventsClient.prototype.processEventFromTx = function (txResult) {
|
|
127
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
128
|
+
if (!txResult)
|
|
129
|
+
return [];
|
|
130
|
+
var events = [];
|
|
131
|
+
var accountKeys = txResult.transaction.message.accountKeys;
|
|
132
|
+
var messageAccountKeys = tslib_1.__spreadArray([], accountKeys, true);
|
|
133
|
+
messageAccountKeys.push.apply(messageAccountKeys, ((_c = (_b = (_a = txResult === null || txResult === void 0 ? void 0 : txResult.meta) === null || _a === void 0 ? void 0 : _a.loadedAddresses) === null || _b === void 0 ? void 0 : _b.writable) !== null && _c !== void 0 ? _c : []));
|
|
134
|
+
messageAccountKeys.push.apply(messageAccountKeys, ((_f = (_e = (_d = txResult === null || txResult === void 0 ? void 0 : txResult.meta) === null || _d === void 0 ? void 0 : _d.loadedAddresses) === null || _e === void 0 ? void 0 : _e.readonly) !== null && _f !== void 0 ? _f : []));
|
|
135
|
+
for (var _i = 0, _j = (_h = (_g = txResult.meta) === null || _g === void 0 ? void 0 : _g.innerInstructions) !== null && _h !== void 0 ? _h : []; _i < _j.length; _i++) {
|
|
136
|
+
var ixBlock = _j[_i];
|
|
137
|
+
for (var _k = 0, _l = ixBlock.instructions; _k < _l.length; _k++) {
|
|
138
|
+
var ix = _l[_k];
|
|
139
|
+
var ixProgramId = messageAccountKeys[ix.programIdIndex];
|
|
140
|
+
var singleIxAccount = ix.accounts.length === 1 ? messageAccountKeys[ix.accounts[0]] : undefined;
|
|
141
|
+
if (ixProgramId !== undefined &&
|
|
142
|
+
singleIxAccount !== undefined &&
|
|
143
|
+
this.svmSpokeAddress === ixProgramId &&
|
|
144
|
+
this.svmSpokeEventAuthority === singleIxAccount) {
|
|
145
|
+
var ixData = anchor_1.utils.bytes.bs58.decode(ix.data);
|
|
146
|
+
var eventData = anchor_1.utils.bytes.base64.encode(Buffer.from(new Uint8Array(ixData).slice(8)));
|
|
147
|
+
var event_1 = new anchor_1.BorshEventCoder(contracts_1.SvmSpokeIdl).decode(eventData);
|
|
148
|
+
if (!(event_1 === null || event_1 === void 0 ? void 0 : event_1.name))
|
|
149
|
+
throw new Error("Event name is undefined");
|
|
150
|
+
var name_1 = (0, events_1.getEventName)(event_1.name);
|
|
151
|
+
events.push({
|
|
152
|
+
program: this.svmSpokeAddress,
|
|
153
|
+
data: (0, events_1.parseEventData)(event_1 === null || event_1 === void 0 ? void 0 : event_1.data),
|
|
154
|
+
name: name_1,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return events;
|
|
160
|
+
};
|
|
161
|
+
return SvmSpokeEventsClient;
|
|
162
|
+
}());
|
|
163
|
+
exports.SvmSpokeEventsClient = SvmSpokeEventsClient;
|
|
164
|
+
//# sourceMappingURL=eventsClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eventsClient.js","sourceRoot":"","sources":["../../../src/svm/eventsClient.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./eventsClient";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/svm/index.ts"],"names":[],"mappings":";;;AAAA,yDAA+B"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Signature, Address, UnixTimestamp } from "@solana/kit";
|
|
2
|
+
import { SvmSpokeClient } from "@across-protocol/contracts";
|
|
3
|
+
export type EventData = SvmSpokeClient.BridgedToHubPool | SvmSpokeClient.TokensBridged | SvmSpokeClient.ExecutedRelayerRefundRoot | SvmSpokeClient.RelayedRootBundle | SvmSpokeClient.PausedDeposits | SvmSpokeClient.PausedFills | SvmSpokeClient.SetXDomainAdmin | SvmSpokeClient.EnabledDepositRoute | SvmSpokeClient.FilledRelay | SvmSpokeClient.FundsDeposited | SvmSpokeClient.EmergencyDeletedRootBundle | SvmSpokeClient.RequestedSlowFill | SvmSpokeClient.ClaimedRelayerRefund | SvmSpokeClient.TransferredOwnership;
|
|
4
|
+
export declare enum SVMEventNames {
|
|
5
|
+
FilledRelay = "FilledRelay",
|
|
6
|
+
FundsDeposited = "FundsDeposited",
|
|
7
|
+
EnabledDepositRoute = "EnabledDepositRoute",
|
|
8
|
+
RelayedRootBundle = "RelayedRootBundle",
|
|
9
|
+
ExecutedRelayerRefundRoot = "ExecutedRelayerRefundRoot",
|
|
10
|
+
BridgedToHubPool = "BridgedToHubPool",
|
|
11
|
+
PausedDeposits = "PausedDeposits",
|
|
12
|
+
PausedFills = "PausedFills",
|
|
13
|
+
SetXDomainAdmin = "SetXDomainAdmin",
|
|
14
|
+
EmergencyDeletedRootBundle = "EmergencyDeletedRootBundle",
|
|
15
|
+
RequestedSlowFill = "RequestedSlowFill",
|
|
16
|
+
ClaimedRelayerRefund = "ClaimedRelayerRefund",
|
|
17
|
+
TokensBridged = "TokensBridged",
|
|
18
|
+
TransferredOwnership = "TransferredOwnership"
|
|
19
|
+
}
|
|
20
|
+
export type EventName = keyof typeof SVMEventNames;
|
|
21
|
+
export type EventWithData<T extends EventData> = {
|
|
22
|
+
confirmationStatus: string | null;
|
|
23
|
+
blockTime: UnixTimestamp | null;
|
|
24
|
+
signature: Signature;
|
|
25
|
+
slot: bigint;
|
|
26
|
+
name: EventName;
|
|
27
|
+
data: T;
|
|
28
|
+
program: Address;
|
|
29
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SVMEventNames = void 0;
|
|
4
|
+
var SVMEventNames;
|
|
5
|
+
(function (SVMEventNames) {
|
|
6
|
+
SVMEventNames["FilledRelay"] = "FilledRelay";
|
|
7
|
+
SVMEventNames["FundsDeposited"] = "FundsDeposited";
|
|
8
|
+
SVMEventNames["EnabledDepositRoute"] = "EnabledDepositRoute";
|
|
9
|
+
SVMEventNames["RelayedRootBundle"] = "RelayedRootBundle";
|
|
10
|
+
SVMEventNames["ExecutedRelayerRefundRoot"] = "ExecutedRelayerRefundRoot";
|
|
11
|
+
SVMEventNames["BridgedToHubPool"] = "BridgedToHubPool";
|
|
12
|
+
SVMEventNames["PausedDeposits"] = "PausedDeposits";
|
|
13
|
+
SVMEventNames["PausedFills"] = "PausedFills";
|
|
14
|
+
SVMEventNames["SetXDomainAdmin"] = "SetXDomainAdmin";
|
|
15
|
+
SVMEventNames["EmergencyDeletedRootBundle"] = "EmergencyDeletedRootBundle";
|
|
16
|
+
SVMEventNames["RequestedSlowFill"] = "RequestedSlowFill";
|
|
17
|
+
SVMEventNames["ClaimedRelayerRefund"] = "ClaimedRelayerRefund";
|
|
18
|
+
SVMEventNames["TokensBridged"] = "TokensBridged";
|
|
19
|
+
SVMEventNames["TransferredOwnership"] = "TransferredOwnership";
|
|
20
|
+
})(SVMEventNames || (exports.SVMEventNames = SVMEventNames = {}));
|
|
21
|
+
//# sourceMappingURL=types.js.map
|