@across-protocol/sdk 4.3.38 → 4.3.41
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/arch/svm/BlockUtils.d.ts +3 -1
- package/dist/cjs/arch/svm/BlockUtils.js +3 -2
- package/dist/cjs/arch/svm/BlockUtils.js.map +1 -1
- package/dist/cjs/arch/svm/SpokeUtils.d.ts +8 -7
- package/dist/cjs/arch/svm/SpokeUtils.js +76 -26
- package/dist/cjs/arch/svm/SpokeUtils.js.map +1 -1
- package/dist/cjs/arch/svm/utils.d.ts +3 -2
- package/dist/cjs/arch/svm/utils.js +7 -6
- package/dist/cjs/arch/svm/utils.js.map +1 -1
- package/dist/cjs/clients/BaseAbstractClient.d.ts +3 -1
- package/dist/cjs/clients/BaseAbstractClient.js +33 -13
- package/dist/cjs/clients/BaseAbstractClient.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/BundleDataClient.js +1 -1
- package/dist/cjs/clients/BundleDataClient/BundleDataClient.js.map +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js +1 -1
- package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
- package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js +7 -6
- package/dist/cjs/clients/SpokePoolClient/SVMSpokePoolClient.js.map +1 -1
- package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.d.ts +1 -1
- package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.js +2 -2
- package/dist/cjs/providers/mocks/MockCachedSolanaRpcFactory.js.map +1 -1
- package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.d.ts +1 -1
- package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.js +2 -2
- package/dist/cjs/providers/mocks/MockRateLimitedSolanaRpcFactory.js.map +1 -1
- package/dist/cjs/providers/mocks/MockRetrySolanaRpcFactory.d.ts +1 -1
- package/dist/cjs/providers/mocks/MockRetrySolanaRpcFactory.js +2 -2
- package/dist/cjs/providers/mocks/MockRetrySolanaRpcFactory.js.map +1 -1
- package/dist/cjs/providers/solana/baseRpcFactories.d.ts +3 -3
- package/dist/cjs/providers/solana/baseRpcFactories.js +4 -8
- package/dist/cjs/providers/solana/baseRpcFactories.js.map +1 -1
- package/dist/cjs/providers/solana/cachedRpcFactory.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/quorumFallbackRpcFactory.d.ts +16 -0
- package/dist/cjs/providers/solana/quorumFallbackRpcFactory.js +208 -0
- package/dist/cjs/providers/solana/quorumFallbackRpcFactory.js.map +1 -0
- package/dist/cjs/providers/utils.d.ts +1 -0
- package/dist/cjs/providers/utils.js +5 -1
- package/dist/cjs/providers/utils.js.map +1 -1
- package/dist/esm/arch/svm/BlockUtils.d.ts +3 -1
- package/dist/esm/arch/svm/BlockUtils.js +3 -2
- package/dist/esm/arch/svm/BlockUtils.js.map +1 -1
- package/dist/esm/arch/svm/SpokeUtils.d.ts +8 -7
- package/dist/esm/arch/svm/SpokeUtils.js +75 -25
- package/dist/esm/arch/svm/SpokeUtils.js.map +1 -1
- package/dist/esm/arch/svm/utils.d.ts +3 -2
- package/dist/esm/arch/svm/utils.js +8 -7
- package/dist/esm/arch/svm/utils.js.map +1 -1
- package/dist/esm/clients/BaseAbstractClient.d.ts +3 -1
- package/dist/esm/clients/BaseAbstractClient.js +33 -13
- package/dist/esm/clients/BaseAbstractClient.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/BundleDataClient.js +1 -1
- package/dist/esm/clients/BundleDataClient/BundleDataClient.js.map +1 -1
- package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js +1 -1
- package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
- package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js +7 -6
- package/dist/esm/clients/SpokePoolClient/SVMSpokePoolClient.js.map +1 -1
- package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.d.ts +1 -1
- package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.js +1 -1
- package/dist/esm/providers/mocks/MockCachedSolanaRpcFactory.js.map +1 -1
- package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.d.ts +1 -1
- package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.js +1 -1
- package/dist/esm/providers/mocks/MockRateLimitedSolanaRpcFactory.js.map +1 -1
- package/dist/esm/providers/mocks/MockRetrySolanaRpcFactory.d.ts +1 -1
- package/dist/esm/providers/mocks/MockRetrySolanaRpcFactory.js +1 -1
- package/dist/esm/providers/mocks/MockRetrySolanaRpcFactory.js.map +1 -1
- package/dist/esm/providers/solana/baseRpcFactories.d.ts +3 -3
- package/dist/esm/providers/solana/baseRpcFactories.js +4 -8
- package/dist/esm/providers/solana/baseRpcFactories.js.map +1 -1
- package/dist/esm/providers/solana/cachedRpcFactory.js +2 -0
- package/dist/esm/providers/solana/cachedRpcFactory.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/quorumFallbackRpcFactory.d.ts +16 -0
- package/dist/esm/providers/solana/quorumFallbackRpcFactory.js +225 -0
- package/dist/esm/providers/solana/quorumFallbackRpcFactory.js.map +1 -0
- package/dist/esm/providers/utils.d.ts +1 -0
- package/dist/esm/providers/utils.js +3 -0
- package/dist/esm/providers/utils.js.map +1 -1
- package/dist/types/arch/svm/BlockUtils.d.ts +3 -1
- package/dist/types/arch/svm/BlockUtils.d.ts.map +1 -1
- package/dist/types/arch/svm/SpokeUtils.d.ts +8 -7
- package/dist/types/arch/svm/SpokeUtils.d.ts.map +1 -1
- package/dist/types/arch/svm/utils.d.ts +3 -2
- package/dist/types/arch/svm/utils.d.ts.map +1 -1
- package/dist/types/clients/BaseAbstractClient.d.ts +3 -1
- package/dist/types/clients/BaseAbstractClient.d.ts.map +1 -1
- package/dist/types/clients/BundleDataClient/BundleDataClient.d.ts.map +1 -1
- package/dist/types/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts.map +1 -1
- package/dist/types/clients/SpokePoolClient/SVMSpokePoolClient.d.ts.map +1 -1
- package/dist/types/providers/mocks/MockCachedSolanaRpcFactory.d.ts +1 -1
- package/dist/types/providers/mocks/MockCachedSolanaRpcFactory.d.ts.map +1 -1
- package/dist/types/providers/mocks/MockRateLimitedSolanaRpcFactory.d.ts +1 -1
- package/dist/types/providers/mocks/MockRateLimitedSolanaRpcFactory.d.ts.map +1 -1
- package/dist/types/providers/mocks/MockRetrySolanaRpcFactory.d.ts +1 -1
- package/dist/types/providers/mocks/MockRetrySolanaRpcFactory.d.ts.map +1 -1
- package/dist/types/providers/solana/baseRpcFactories.d.ts +3 -3
- package/dist/types/providers/solana/baseRpcFactories.d.ts.map +1 -1
- package/dist/types/providers/solana/cachedRpcFactory.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/quorumFallbackRpcFactory.d.ts +17 -0
- package/dist/types/providers/solana/quorumFallbackRpcFactory.d.ts.map +1 -0
- package/dist/types/providers/utils.d.ts +1 -0
- package/dist/types/providers/utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/arch/svm/BlockUtils.ts +3 -1
- package/src/arch/svm/SpokeUtils.ts +69 -15
- package/src/arch/svm/utils.ts +9 -5
- package/src/clients/BaseAbstractClient.ts +25 -8
- package/src/clients/BundleDataClient/BundleDataClient.ts +2 -1
- package/src/clients/BundleDataClient/utils/PoolRebalanceUtils.ts +5 -1
- package/src/clients/SpokePoolClient/SVMSpokePoolClient.ts +6 -5
- package/src/providers/mocks/MockCachedSolanaRpcFactory.ts +1 -1
- package/src/providers/mocks/MockRateLimitedSolanaRpcFactory.ts +1 -1
- package/src/providers/mocks/MockRetrySolanaRpcFactory.ts +1 -1
- package/src/providers/solana/baseRpcFactories.ts +3 -3
- package/src/providers/solana/cachedRpcFactory.ts +2 -0
- package/src/providers/solana/index.ts +1 -0
- package/src/providers/solana/quorumFallbackRpcFactory.ts +248 -0
- package/src/providers/utils.ts +4 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cachedRpcFactory.js","sourceRoot":"","sources":["../../../../src/providers/solana/cachedRpcFactory.ts"],"names":[],"mappings":";;;;AACA,6DAAkF;AAClF,2CAAkE;AAElE,uDAA6D;AAC7D,kCAAqC;AACrC,qCAA8E;AAC9E,qDAA0D;
|
|
1
|
+
{"version":3,"file":"cachedRpcFactory.js","sourceRoot":"","sources":["../../../../src/providers/solana/cachedRpcFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,5 +6,6 @@ tslib_1.__exportStar(require("./cachedRpcFactory"), exports);
|
|
|
6
6
|
tslib_1.__exportStar(require("./defaultRpcFactory"), exports);
|
|
7
7
|
tslib_1.__exportStar(require("./rateLimitedRpcFactory"), exports);
|
|
8
8
|
tslib_1.__exportStar(require("./retryRpcFactory"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./quorumFallbackRpcFactory"), exports);
|
|
9
10
|
tslib_1.__exportStar(require("./utils"), exports);
|
|
10
11
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/providers/solana/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,6DAAmC;AACnC,8DAAoC;AACpC,kEAAwC;AACxC,4DAAkC;AAClC,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,4DAAkC;AAClC,qEAA2C;AAC3C,kDAAwB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { RpcFromTransport, RpcTransport, SolanaRpcApiFromTransport } from "@solana/kit";
|
|
2
|
+
import { CachedSolanaRpcFactory } from "./cachedRpcFactory";
|
|
3
|
+
import { SolanaBaseRpcFactory } from "./baseRpcFactories";
|
|
4
|
+
import { Logger } from "winston";
|
|
5
|
+
export declare class QuorumFallbackSolanaRpcFactory extends SolanaBaseRpcFactory {
|
|
6
|
+
readonly nodeQuorumThreshold: number;
|
|
7
|
+
readonly logger: Logger;
|
|
8
|
+
readonly rpcFactories: {
|
|
9
|
+
transport: RpcTransport;
|
|
10
|
+
rpcClient: RpcFromTransport<SolanaRpcApiFromTransport<RpcTransport>, RpcTransport>;
|
|
11
|
+
rpcFactory: CachedSolanaRpcFactory;
|
|
12
|
+
}[];
|
|
13
|
+
constructor(factoryConstructorParams: ConstructorParameters<typeof CachedSolanaRpcFactory>[], nodeQuorumThreshold: number, logger: Logger);
|
|
14
|
+
createTransport(): RpcTransport;
|
|
15
|
+
_getQuorum(method: string, _params: Array<unknown>): number;
|
|
16
|
+
}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.QuorumFallbackSolanaRpcFactory = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var cachedRpcFactory_1 = require("./cachedRpcFactory");
|
|
6
|
+
var baseRpcFactories_1 = require("./baseRpcFactories");
|
|
7
|
+
var TypeGuards_1 = require("../../utils/TypeGuards");
|
|
8
|
+
var utils_1 = require("../utils");
|
|
9
|
+
var QuorumFallbackSolanaRpcFactory = (function (_super) {
|
|
10
|
+
tslib_1.__extends(QuorumFallbackSolanaRpcFactory, _super);
|
|
11
|
+
function QuorumFallbackSolanaRpcFactory(factoryConstructorParams, nodeQuorumThreshold, logger) {
|
|
12
|
+
var _this = _super.call(this) || this;
|
|
13
|
+
_this.nodeQuorumThreshold = nodeQuorumThreshold;
|
|
14
|
+
_this.logger = logger;
|
|
15
|
+
_this.rpcFactories = [];
|
|
16
|
+
factoryConstructorParams.forEach(function (params) {
|
|
17
|
+
var rpcFactory = new (cachedRpcFactory_1.CachedSolanaRpcFactory.bind.apply(cachedRpcFactory_1.CachedSolanaRpcFactory, tslib_1.__spreadArray([void 0], params, false)))();
|
|
18
|
+
_this.rpcFactories.push({
|
|
19
|
+
transport: rpcFactory.createTransport(),
|
|
20
|
+
rpcClient: rpcFactory.createRpcClient(),
|
|
21
|
+
rpcFactory: rpcFactory,
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
if (_this.nodeQuorumThreshold < 1 || !Number.isInteger(_this.nodeQuorumThreshold)) {
|
|
25
|
+
throw new Error("nodeQuorum,Threshold cannot be < 1 and must be an integer. Currently set to ".concat(_this.nodeQuorumThreshold));
|
|
26
|
+
}
|
|
27
|
+
return _this;
|
|
28
|
+
}
|
|
29
|
+
QuorumFallbackSolanaRpcFactory.prototype.createTransport = function () {
|
|
30
|
+
var _this = this;
|
|
31
|
+
return function () {
|
|
32
|
+
var args = [];
|
|
33
|
+
for (var _i = 0; _i < arguments.length; _i++) {
|
|
34
|
+
args[_i] = arguments[_i];
|
|
35
|
+
}
|
|
36
|
+
return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
37
|
+
var _a, method, params, quorumThreshold, requiredFactories, fallbackFactories, errors, tryWithFallback, results, getErrorStrings, errorTexts, successfulProviderUrls_1, values, getHighestCountResult, logQuorumMismatchOrFailureDetails, throwQuorumError, mostFrequentResult, fallbackResults, fallbackValues, _b, quorumResult, count, mismatchedProviders, successfulProviderUrls;
|
|
38
|
+
var _this = this;
|
|
39
|
+
var _c;
|
|
40
|
+
return tslib_1.__generator(this, function (_d) {
|
|
41
|
+
switch (_d.label) {
|
|
42
|
+
case 0:
|
|
43
|
+
_a = args[0].payload, method = _a.method, params = _a.params;
|
|
44
|
+
quorumThreshold = this._getQuorum(method, params !== null && params !== void 0 ? params : []);
|
|
45
|
+
requiredFactories = this.rpcFactories.slice(0, quorumThreshold);
|
|
46
|
+
fallbackFactories = tslib_1.__spreadArray([], this.rpcFactories.slice(quorumThreshold), true);
|
|
47
|
+
errors = [];
|
|
48
|
+
tryWithFallback = function (factory) {
|
|
49
|
+
var args = [];
|
|
50
|
+
for (var _i = 1; _i < arguments.length; _i++) {
|
|
51
|
+
args[_i - 1] = arguments[_i];
|
|
52
|
+
}
|
|
53
|
+
return factory
|
|
54
|
+
.transport.apply(factory, args).then(function (result) { return [factory.rpcFactory, result]; })
|
|
55
|
+
.catch(function (error) {
|
|
56
|
+
errors.push([factory.rpcFactory, (error === null || error === void 0 ? void 0 : error.stack) || (error === null || error === void 0 ? void 0 : error.toString())]);
|
|
57
|
+
if (fallbackFactories.length === 0) {
|
|
58
|
+
throw error;
|
|
59
|
+
}
|
|
60
|
+
var currentFactory = factory.rpcFactory.clusterUrl;
|
|
61
|
+
var nextFactory = fallbackFactories.shift();
|
|
62
|
+
_this.logger.debug({
|
|
63
|
+
at: "FallbackSolanaRpcFactory#createTransport::tryWithFallback",
|
|
64
|
+
message: "[".concat(method, "] ").concat(currentFactory, " failed, falling back to ").concat(nextFactory.rpcFactory.clusterUrl, ", new fallback providers length: ").concat(fallbackFactories.length),
|
|
65
|
+
method: method,
|
|
66
|
+
error: error,
|
|
67
|
+
});
|
|
68
|
+
return tryWithFallback.apply(void 0, tslib_1.__spreadArray([nextFactory], args, false));
|
|
69
|
+
});
|
|
70
|
+
};
|
|
71
|
+
return [4, Promise.allSettled(requiredFactories.map(function (factory) {
|
|
72
|
+
return tryWithFallback.apply(void 0, tslib_1.__spreadArray([factory], args, false));
|
|
73
|
+
}))];
|
|
74
|
+
case 1:
|
|
75
|
+
results = _d.sent();
|
|
76
|
+
getErrorStrings = function () {
|
|
77
|
+
return errors.map(function (_a) {
|
|
78
|
+
var factory = _a[0], errorText = _a[1];
|
|
79
|
+
return "Provider ".concat(factory.clusterUrl, " failed to call ").concat(method, " with error ").concat(errorText);
|
|
80
|
+
});
|
|
81
|
+
};
|
|
82
|
+
if (!results.every(TypeGuards_1.isPromiseFulfilled)) {
|
|
83
|
+
errorTexts = getErrorStrings();
|
|
84
|
+
successfulProviderUrls_1 = results.filter(TypeGuards_1.isPromiseFulfilled).map(function (result) { return result.value[0].clusterUrl; });
|
|
85
|
+
throw (0, utils_1.createSendErrorWithMessage)("Not enough providers succeeded on ".concat(method, " call. Errors:\n").concat(errorTexts.join("\n"), "\n") +
|
|
86
|
+
"Successful Providers:\n".concat(successfulProviderUrls_1.join("\n")), (_c = results.find(TypeGuards_1.isPromiseRejected)) === null || _c === void 0 ? void 0 : _c.reason);
|
|
87
|
+
}
|
|
88
|
+
values = results.map(function (result) { return result.value; });
|
|
89
|
+
if (values.slice(1).every(function (_a) {
|
|
90
|
+
var output = _a[1];
|
|
91
|
+
return (0, utils_1.compareSvmRpcResults)(method, values[0][1], output);
|
|
92
|
+
})) {
|
|
93
|
+
return [2, values[0][1]];
|
|
94
|
+
}
|
|
95
|
+
getHighestCountResult = function (values) {
|
|
96
|
+
var counts = tslib_1.__spreadArray([], values, true).reduce(function (acc, curr) {
|
|
97
|
+
var result = curr[1];
|
|
98
|
+
var existingMatch = acc.find(function (_a) {
|
|
99
|
+
var existingResult = _a[0];
|
|
100
|
+
return (0, utils_1.compareSvmRpcResults)(method, existingResult, result);
|
|
101
|
+
});
|
|
102
|
+
if (existingMatch) {
|
|
103
|
+
existingMatch[1]++;
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
acc.push([result, 1]);
|
|
107
|
+
}
|
|
108
|
+
return acc;
|
|
109
|
+
}, [[undefined, 0]]);
|
|
110
|
+
counts.sort(function (_a, _b) {
|
|
111
|
+
var a = _a[1];
|
|
112
|
+
var b = _b[1];
|
|
113
|
+
return b - a;
|
|
114
|
+
});
|
|
115
|
+
var _a = counts[0], mostFrequentResult = _a[0], count = _a[1];
|
|
116
|
+
return [mostFrequentResult, count];
|
|
117
|
+
};
|
|
118
|
+
logQuorumMismatchOrFailureDetails = function (method, params, mismatchedProviders, successfulProviders, errors, quorumResult) {
|
|
119
|
+
_this.logger.warn({
|
|
120
|
+
at: "FallbackSolanaRpcFactory#createTransport",
|
|
121
|
+
message: "[".concat(method, "] Some providers mismatched with the quorum result or failed \uD83D\uDEB8"),
|
|
122
|
+
notificationPath: "across-warn",
|
|
123
|
+
method: method,
|
|
124
|
+
params: JSON.stringify(params),
|
|
125
|
+
quorumResult: METHODS_RETURNING_BIGINT.includes(method) ? Number(quorumResult) : undefined,
|
|
126
|
+
mismatchedProviders: mismatchedProviders,
|
|
127
|
+
successfulProviders: successfulProviders,
|
|
128
|
+
erroringProviders: errors.map(function (_a) {
|
|
129
|
+
var factory = _a[0], errorText = _a[1];
|
|
130
|
+
return "Provider ".concat(factory.clusterUrl, " failed with error ").concat(errorText);
|
|
131
|
+
}),
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
throwQuorumError = function (mostFrequentResult, allValues) {
|
|
135
|
+
var errorTexts = getErrorStrings();
|
|
136
|
+
var successfulProviderUrls = values.map(function (_a) {
|
|
137
|
+
var provider = _a[0];
|
|
138
|
+
return provider.clusterUrl;
|
|
139
|
+
});
|
|
140
|
+
var mismatchedProviders = allValues
|
|
141
|
+
.filter(function (_a) {
|
|
142
|
+
var result = _a[1];
|
|
143
|
+
return !(0, utils_1.compareSvmRpcResults)(method, result, mostFrequentResult);
|
|
144
|
+
})
|
|
145
|
+
.map(function (_a) {
|
|
146
|
+
var factory = _a[0];
|
|
147
|
+
return factory.clusterUrl;
|
|
148
|
+
});
|
|
149
|
+
logQuorumMismatchOrFailureDetails(method, params !== null && params !== void 0 ? params : [], mismatchedProviders, successfulProviderUrls, errors, mostFrequentResult);
|
|
150
|
+
throw new Error("Not enough providers agreed to meet quorum.\n" +
|
|
151
|
+
"Providers that errored:\n" +
|
|
152
|
+
"".concat(errorTexts.join("\n"), "\n") +
|
|
153
|
+
"Providers that succeeded, but some failed to match:\n" +
|
|
154
|
+
successfulProviderUrls.join("\n"));
|
|
155
|
+
};
|
|
156
|
+
if (fallbackFactories.length === 0) {
|
|
157
|
+
mostFrequentResult = getHighestCountResult(values)[0];
|
|
158
|
+
throwQuorumError(mostFrequentResult, values);
|
|
159
|
+
}
|
|
160
|
+
return [4, Promise.allSettled(fallbackFactories.map(function (factory) {
|
|
161
|
+
return factory
|
|
162
|
+
.transport.apply(factory, args).then(function (result) { return [factory.rpcFactory, result]; })
|
|
163
|
+
.catch(function (err) {
|
|
164
|
+
errors.push([factory.rpcFactory, (err === null || err === void 0 ? void 0 : err.stack) || (err === null || err === void 0 ? void 0 : err.toString())]);
|
|
165
|
+
throw new Error("Fallback RPC call failed while trying to reach quorum", err);
|
|
166
|
+
});
|
|
167
|
+
}))];
|
|
168
|
+
case 2:
|
|
169
|
+
fallbackResults = _d.sent();
|
|
170
|
+
fallbackValues = fallbackResults.filter(TypeGuards_1.isPromiseFulfilled).map(function (promise) { return promise.value; });
|
|
171
|
+
_b = getHighestCountResult(tslib_1.__spreadArray(tslib_1.__spreadArray([], values, true), fallbackValues, true)), quorumResult = _b[0], count = _b[1];
|
|
172
|
+
if (count < quorumThreshold) {
|
|
173
|
+
throwQuorumError(quorumResult, tslib_1.__spreadArray(tslib_1.__spreadArray([], values, true), fallbackValues, true));
|
|
174
|
+
}
|
|
175
|
+
mismatchedProviders = tslib_1.__spreadArray(tslib_1.__spreadArray([], values, true), fallbackValues, true).filter(function (_a) {
|
|
176
|
+
var result = _a[1];
|
|
177
|
+
return !(0, utils_1.compareSvmRpcResults)(method, result, quorumResult);
|
|
178
|
+
})
|
|
179
|
+
.map(function (_a) {
|
|
180
|
+
var factory = _a[0];
|
|
181
|
+
return factory.clusterUrl;
|
|
182
|
+
});
|
|
183
|
+
successfulProviderUrls = tslib_1.__spreadArray(tslib_1.__spreadArray([], values, true), fallbackValues, true).map(function (_a) {
|
|
184
|
+
var provider = _a[0];
|
|
185
|
+
return provider.clusterUrl;
|
|
186
|
+
});
|
|
187
|
+
if (mismatchedProviders.length > 0 || errors.length > 0) {
|
|
188
|
+
logQuorumMismatchOrFailureDetails(method, params !== null && params !== void 0 ? params : [], mismatchedProviders, successfulProviderUrls, errors, quorumResult);
|
|
189
|
+
}
|
|
190
|
+
return [2, quorumResult];
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
};
|
|
195
|
+
};
|
|
196
|
+
QuorumFallbackSolanaRpcFactory.prototype._getQuorum = function (method, _params) {
|
|
197
|
+
switch (method) {
|
|
198
|
+
case "getBlock":
|
|
199
|
+
case "getBlockTime":
|
|
200
|
+
return this.nodeQuorumThreshold;
|
|
201
|
+
}
|
|
202
|
+
return 1;
|
|
203
|
+
};
|
|
204
|
+
return QuorumFallbackSolanaRpcFactory;
|
|
205
|
+
}(baseRpcFactories_1.SolanaBaseRpcFactory));
|
|
206
|
+
exports.QuorumFallbackSolanaRpcFactory = QuorumFallbackSolanaRpcFactory;
|
|
207
|
+
var METHODS_RETURNING_BIGINT = ["getBlockTime", "getSlot"];
|
|
208
|
+
//# sourceMappingURL=quorumFallbackRpcFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quorumFallbackRpcFactory.js","sourceRoot":"","sources":["../../../../src/providers/solana/quorumFallbackRpcFactory.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,7 @@ export declare function createSendErrorWithMessage(message: string, sendError: R
|
|
|
17
17
|
cause?: unknown;
|
|
18
18
|
};
|
|
19
19
|
export declare function compareRpcResults(method: string, rpcResultA: unknown, rpcResultB: unknown): boolean;
|
|
20
|
+
export declare function compareSvmRpcResults(_method: string, rpcResultA: unknown, rpcResultB: unknown): boolean;
|
|
20
21
|
export declare enum CacheType {
|
|
21
22
|
NONE = 0,
|
|
22
23
|
WITH_TTL = 1,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CacheType = exports.compareRpcResults = exports.createSendErrorWithMessage = exports.formatProviderError = exports.compareArrayResultsWithIgnoredKeys = exports.compareResultsAndFilterIgnoredKeys = exports.getURL = exports.isSupportedProvider = void 0;
|
|
3
|
+
exports.CacheType = exports.compareSvmRpcResults = exports.compareRpcResults = exports.createSendErrorWithMessage = exports.formatProviderError = exports.compareArrayResultsWithIgnoredKeys = exports.compareResultsAndFilterIgnoredKeys = exports.getURL = exports.isSupportedProvider = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var assert_1 = tslib_1.__importDefault(require("assert"));
|
|
6
6
|
var lodash_1 = require("lodash");
|
|
@@ -85,6 +85,10 @@ function compareRpcResults(method, rpcResultA, rpcResultB) {
|
|
|
85
85
|
}
|
|
86
86
|
}
|
|
87
87
|
exports.compareRpcResults = compareRpcResults;
|
|
88
|
+
function compareSvmRpcResults(_method, rpcResultA, rpcResultB) {
|
|
89
|
+
return (0, lodash_1.isEqual)(rpcResultA, rpcResultB);
|
|
90
|
+
}
|
|
91
|
+
exports.compareSvmRpcResults = compareSvmRpcResults;
|
|
88
92
|
var CacheType;
|
|
89
93
|
(function (CacheType) {
|
|
90
94
|
CacheType[CacheType["NONE"] = 0] = "NONE";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/providers/utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/providers/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { BlockFinder, type Block, type BlockTimeAverage, type BlockFinderHints } from "../../utils/BlockFinder";
|
|
2
2
|
import { SVMProvider } from "./";
|
|
3
|
+
import winston from "winston";
|
|
3
4
|
interface SVMBlock extends Block {
|
|
4
5
|
}
|
|
5
6
|
/**
|
|
@@ -9,9 +10,10 @@ interface SVMBlock extends Block {
|
|
|
9
10
|
*/
|
|
10
11
|
export declare function averageBlockTime(): Pick<BlockTimeAverage, "average" | "blockRange">;
|
|
11
12
|
export declare class SVMBlockFinder extends BlockFinder<SVMBlock> {
|
|
13
|
+
private readonly logger;
|
|
12
14
|
private readonly provider;
|
|
13
15
|
private readonly blocks;
|
|
14
|
-
constructor(provider: SVMProvider, blocks?: SVMBlock[]);
|
|
16
|
+
constructor(logger: winston.Logger, provider: SVMProvider, blocks?: SVMBlock[]);
|
|
15
17
|
/**
|
|
16
18
|
* @notice Gets the latest slot whose timestamp is <= the provided timestamp.
|
|
17
19
|
* @param number Timestamp timestamp to search.
|
|
@@ -28,9 +28,10 @@ function estimateBlocksElapsed(seconds, cushionPercentage, _provider) {
|
|
|
28
28
|
}
|
|
29
29
|
var SVMBlockFinder = /** @class */ (function (_super) {
|
|
30
30
|
__extends(SVMBlockFinder, _super);
|
|
31
|
-
function SVMBlockFinder(provider, blocks) {
|
|
31
|
+
function SVMBlockFinder(logger, provider, blocks) {
|
|
32
32
|
if (blocks === void 0) { blocks = []; }
|
|
33
33
|
var _this = _super.call(this) || this;
|
|
34
|
+
_this.logger = logger;
|
|
34
35
|
_this.provider = provider;
|
|
35
36
|
_this.blocks = blocks;
|
|
36
37
|
return _this;
|
|
@@ -103,7 +104,7 @@ var SVMBlockFinder = /** @class */ (function (_super) {
|
|
|
103
104
|
*/
|
|
104
105
|
SVMBlockFinder.prototype.getBlockTime = function (slot) {
|
|
105
106
|
var opts = isDefined(slot) ? { slot: slot } : undefined;
|
|
106
|
-
return getNearestSlotTime(this.provider, opts);
|
|
107
|
+
return getNearestSlotTime(this.provider, opts, this.logger);
|
|
107
108
|
};
|
|
108
109
|
// Grabs the most recent slot and caches it.
|
|
109
110
|
SVMBlockFinder.prototype.getLatestBlock = function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockUtils.js","sourceRoot":"","sources":["../../../../src/arch/svm/BlockUtils.ts"],"names":[],"mappings":";;AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,WAAW,EAA4D,MAAM,yBAAyB,CAAC;AAChH,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"BlockUtils.js","sourceRoot":"","sources":["../../../../src/arch/svm/BlockUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { MessageTransmitterClient, SvmSpokeClient } from "@across-protocol/contracts";
|
|
2
2
|
import { Mint } from "@solana-program/token";
|
|
3
|
-
import { Account, Address, FetchAccountConfig, IAccountMeta, KeyPairSigner, ReadonlyUint8Array, type TransactionSigner } from "@solana/kit";
|
|
4
|
-
import
|
|
3
|
+
import { Account, Address, FetchAccountConfig, IAccountMeta, KeyPairSigner, ReadonlyUint8Array, type TransactionSigner, type Commitment } from "@solana/kit";
|
|
4
|
+
import winston from "winston";
|
|
5
5
|
import { DepositWithBlock, FillStatus, FillWithBlock, RelayData } from "../../interfaces";
|
|
6
6
|
import { BigNumber, EvmAddress, Address as SdkAddress, SvmAddress } from "../../utils";
|
|
7
7
|
import { SvmCpiEventsClient } from "./eventsClient";
|
|
@@ -16,10 +16,11 @@ type ProtoFill = Omit<RelayData, "recipient" | "outputToken"> & {
|
|
|
16
16
|
recipient: SvmAddress;
|
|
17
17
|
outputToken: SvmAddress;
|
|
18
18
|
};
|
|
19
|
+
export declare function getSlot(provider: SVMProvider, commitment: Commitment, logger?: winston.Logger): Promise<bigint>;
|
|
19
20
|
/**
|
|
20
21
|
* Retrieves the chain time at a particular slot.
|
|
21
22
|
*/
|
|
22
|
-
export declare function getTimestampForSlot(provider: SVMProvider, slotNumber: bigint, maxRetries?: number): Promise<number | undefined>;
|
|
23
|
+
export declare function getTimestampForSlot(provider: SVMProvider, slotNumber: bigint, maxRetries?: number, logger?: winston.Logger): Promise<number | undefined>;
|
|
23
24
|
/**
|
|
24
25
|
* Returns the current fill deadline buffer.
|
|
25
26
|
* @param provider SVM Provider instance
|
|
@@ -63,7 +64,7 @@ export declare function getDepositIdAtBlock(_contract: unknown, _blockTag: numbe
|
|
|
63
64
|
* @param secondsLookback - The number of seconds to look back for deposits (defaults to 2 days).
|
|
64
65
|
* @returns The deposit if found within the slot window, undefined otherwise
|
|
65
66
|
*/
|
|
66
|
-
export declare function findDeposit(eventClient: SvmCpiEventsClient, depositId: BigNumber, slot?: bigint, secondsLookback?: number): Promise<DepositWithBlock | undefined>;
|
|
67
|
+
export declare function findDeposit(eventClient: SvmCpiEventsClient, depositId: BigNumber, logger: winston.Logger, slot?: bigint, secondsLookback?: number): Promise<DepositWithBlock | undefined>;
|
|
67
68
|
/**
|
|
68
69
|
* Resolves the fill status of a deposit at a specific slot or at the current confirmed one.
|
|
69
70
|
*
|
|
@@ -77,7 +78,7 @@ export declare function findDeposit(eventClient: SvmCpiEventsClient, depositId:
|
|
|
77
78
|
* @param atHeight - (Optional) Specific slot number to query. Defaults to the latest confirmed slot.
|
|
78
79
|
* @returns The fill status for the deposit at the specified or current slot.
|
|
79
80
|
*/
|
|
80
|
-
export declare function relayFillStatus(programId: Address, relayData: RelayData, destinationChainId: number, svmEventsClient: SvmCpiEventsClient, atHeight?: number): Promise<FillStatus>;
|
|
81
|
+
export declare function relayFillStatus(programId: Address, relayData: RelayData, destinationChainId: number, svmEventsClient: SvmCpiEventsClient, logger: winston.Logger, atHeight?: number): Promise<FillStatus>;
|
|
81
82
|
/**
|
|
82
83
|
* Resolves fill statuses for multiple deposits at a specific or latest confirmed slot,
|
|
83
84
|
* using PDAs when possible and falling back to events if needed.
|
|
@@ -90,7 +91,7 @@ export declare function relayFillStatus(programId: Address, relayData: RelayData
|
|
|
90
91
|
* @param atHeight (Optional) The slot number to query at. If omitted, queries the latest confirmed slot.
|
|
91
92
|
* @returns An array of fill statuses for the specified deposits at the requested slot (or at the current confirmed slot).
|
|
92
93
|
*/
|
|
93
|
-
export declare function fillStatusArray(programId: Address, relayData: RelayData[], destinationChainId: number, svmEventsClient: SvmCpiEventsClient,
|
|
94
|
+
export declare function fillStatusArray(programId: Address, relayData: RelayData[], destinationChainId: number, svmEventsClient: SvmCpiEventsClient, logger: winston.Logger, atHeight?: number): Promise<(FillStatus | undefined)[]>;
|
|
94
95
|
/**
|
|
95
96
|
* Finds the `FilledRelay` event for a given deposit within the provided slot range.
|
|
96
97
|
*
|
|
@@ -101,7 +102,7 @@ export declare function fillStatusArray(programId: Address, relayData: RelayData
|
|
|
101
102
|
* @param toSlot (Optional) Ending slot to search. If not provided, the current confirmed slot will be used.
|
|
102
103
|
* @returns The fill event with block info, or `undefined` if not found.
|
|
103
104
|
*/
|
|
104
|
-
export declare function findFillEvent(relayData: RelayData, destinationChainId: number, svmEventsClient: SvmCpiEventsClient, fromSlot: number, toSlot?: number): Promise<FillWithBlock | undefined>;
|
|
105
|
+
export declare function findFillEvent(relayData: RelayData, destinationChainId: number, svmEventsClient: SvmCpiEventsClient, fromSlot: number, toSlot?: number, logger?: winston.Logger): Promise<FillWithBlock | undefined>;
|
|
105
106
|
/**
|
|
106
107
|
* @param spokePool Address (program ID) of the SvmSpoke.
|
|
107
108
|
* @param relayData RelayData instance, supplemented with destinationChainId
|