@across-protocol/sdk 4.1.16 → 4.1.17

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.
@@ -8,10 +8,12 @@ export declare class CacheProvider extends RateLimitedProvider {
8
8
  readonly getBlockByNumberPrefix: string;
9
9
  readonly getLogsCachePrefix: string;
10
10
  readonly callCachePrefix: string;
11
+ readonly getTransactionReceiptPrefix: string;
11
12
  readonly baseTTL: number;
12
13
  constructor(providerCacheNamespace: string, redisClient?: CachingMechanismInterface | undefined, standardTtlBlockDistance: number, noTtlBlockDistance: number, providerCacheTtl: number, ...jsonRpcConstructorParams: ConstructorParameters<typeof RateLimitedProvider>);
13
14
  send(method: string, params: Array<unknown>): Promise<unknown>;
14
15
  private buildRedisKey;
15
16
  private cacheType;
17
+ private getBlockNumberFromRpcResponse;
16
18
  private cacheTypeForBlock;
17
19
  }
@@ -26,6 +26,7 @@ var CacheProvider = (function (_super) {
26
26
  _this.getBlockByNumberPrefix = "".concat(cachePrefix, ":getBlockByNumber,");
27
27
  _this.getLogsCachePrefix = "".concat(cachePrefix, ":eth_getLogs,");
28
28
  _this.callCachePrefix = "".concat(cachePrefix, ":eth_call,");
29
+ _this.getTransactionReceiptPrefix = "".concat(cachePrefix, ":eth_getTransactionReceipt,");
29
30
  var _ttlVar = providerCacheTtl;
30
31
  var _ttl = Number(_ttlVar);
31
32
  if (isNaN(_ttl) || _ttl <= 0) {
@@ -37,7 +38,7 @@ var CacheProvider = (function (_super) {
37
38
  CacheProvider.prototype.send = function (method, params) {
38
39
  var _a, _b, _c;
39
40
  return tslib_1.__awaiter(this, void 0, void 0, function () {
40
- var cacheType, _d, redisKey, redisResult, result, _e, ttl;
41
+ var cacheType, _d, redisKey, redisResult, result, blockNumber, _e, ttl;
41
42
  return tslib_1.__generator(this, function (_f) {
42
43
  switch (_f.label) {
43
44
  case 0:
@@ -51,7 +52,7 @@ var CacheProvider = (function (_super) {
51
52
  _f.label = 3;
52
53
  case 3:
53
54
  cacheType = _d;
54
- if (!(cacheType !== utils_1.CacheType.NONE)) return [3, 12];
55
+ if (!(cacheType !== utils_1.CacheType.NONE)) return [3, 14];
55
56
  redisKey = this.buildRedisKey(method, params);
56
57
  return [4, ((_a = this.redisClient) === null || _a === void 0 ? void 0 : _a.get(redisKey))];
57
58
  case 4:
@@ -62,26 +63,33 @@ var CacheProvider = (function (_super) {
62
63
  return [4, _super.prototype.send.call(this, method, params)];
63
64
  case 5:
64
65
  result = _f.sent();
66
+ if (!(cacheType === utils_1.CacheType.DECIDE_TTL_POST_SEND)) return [3, 7];
67
+ blockNumber = this.getBlockNumberFromRpcResponse(method, result);
68
+ return [4, this.cacheTypeForBlock(blockNumber)];
69
+ case 6:
70
+ cacheType = _f.sent();
71
+ _f.label = 7;
72
+ case 7:
65
73
  _e = cacheType;
66
74
  switch (_e) {
67
- case utils_1.CacheType.WITH_TTL: return [3, 6];
68
- case utils_1.CacheType.NO_TTL: return [3, 8];
75
+ case utils_1.CacheType.WITH_TTL: return [3, 8];
76
+ case utils_1.CacheType.NO_TTL: return [3, 10];
69
77
  }
70
- return [3, 10];
71
- case 6:
78
+ return [3, 12];
79
+ case 8:
72
80
  ttl = this.baseTTL + Math.ceil((0, lodash_1.random)(-constants_1.PROVIDER_CACHE_TTL_MODIFIER, constants_1.PROVIDER_CACHE_TTL_MODIFIER, true) * this.baseTTL);
73
81
  return [4, ((_b = this.redisClient) === null || _b === void 0 ? void 0 : _b.set(redisKey, JSON.stringify(result), ttl))];
74
- case 7:
75
- _f.sent();
76
- return [3, 11];
77
- case 8: return [4, ((_c = this.redisClient) === null || _c === void 0 ? void 0 : _c.set(redisKey, JSON.stringify(result), Number.POSITIVE_INFINITY))];
78
82
  case 9:
79
83
  _f.sent();
80
- return [3, 11];
81
- case 10: throw new Error("Unexpected Cache type: ".concat(cacheType));
82
- case 11: return [2, result];
83
- case 12: return [4, _super.prototype.send.call(this, method, params)];
84
- case 13: return [2, _f.sent()];
84
+ return [3, 13];
85
+ case 10: return [4, ((_c = this.redisClient) === null || _c === void 0 ? void 0 : _c.set(redisKey, JSON.stringify(result), Number.POSITIVE_INFINITY))];
86
+ case 11:
87
+ _f.sent();
88
+ return [3, 13];
89
+ case 12: throw new Error("Unexpected Cache type: ".concat(cacheType));
90
+ case 13: return [2, result];
91
+ case 14: return [4, _super.prototype.send.call(this, method, params)];
92
+ case 15: return [2, _f.sent()];
85
93
  }
86
94
  });
87
95
  });
@@ -94,6 +102,8 @@ var CacheProvider = (function (_super) {
94
102
  return this.getLogsCachePrefix + JSON.stringify(params);
95
103
  case "eth_call":
96
104
  return this.callCachePrefix + JSON.stringify(params);
105
+ case "eth_getTransactionReceipt":
106
+ return this.getTransactionReceiptPrefix + JSON.stringify(params);
97
107
  default:
98
108
  throw new Error("CacheProvider::buildRedisKey: invalid JSON-RPC method ".concat(method));
99
109
  }
@@ -119,10 +129,22 @@ var CacheProvider = (function (_super) {
119
129
  }
120
130
  return this.cacheTypeForBlock(blockNumber);
121
131
  }
132
+ else if ("eth_getTransactionReceipt" === method) {
133
+ return Promise.resolve(utils_1.CacheType.DECIDE_TTL_POST_SEND);
134
+ }
122
135
  else {
123
136
  return Promise.resolve(utils_1.CacheType.NONE);
124
137
  }
125
138
  };
139
+ CacheProvider.prototype.getBlockNumberFromRpcResponse = function (method, result) {
140
+ if (method === "eth_getTransactionReceipt") {
141
+ var receipt = result;
142
+ return Number(receipt.blockNumber);
143
+ }
144
+ else {
145
+ throw new Error("CacheProvider::getBlockNumberFromRpcResponse: unsupported JSON-RPC method ".concat(method));
146
+ }
147
+ };
126
148
  CacheProvider.prototype.cacheTypeForBlock = function (blockNumber) {
127
149
  return tslib_1.__awaiter(this, void 0, void 0, function () {
128
150
  var currentBlockNumber, headDistance;
@@ -1 +1 @@
1
- {"version":3,"file":"cachedProvider.js","sourceRoot":"","sources":["../../../src/providers/cachedProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cachedProvider.js","sourceRoot":"","sources":["../../../src/providers/cachedProvider.ts"],"names":[],"mappings":"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"}
@@ -20,5 +20,6 @@ export declare function compareRpcResults(method: string, rpcResultA: unknown, r
20
20
  export declare enum CacheType {
21
21
  NONE = 0,
22
22
  WITH_TTL = 1,
23
- NO_TTL = 2
23
+ NO_TTL = 2,
24
+ DECIDE_TTL_POST_SEND = 3
24
25
  }
@@ -86,5 +86,6 @@ var CacheType;
86
86
  CacheType[CacheType["NONE"] = 0] = "NONE";
87
87
  CacheType[CacheType["WITH_TTL"] = 1] = "WITH_TTL";
88
88
  CacheType[CacheType["NO_TTL"] = 2] = "NO_TTL";
89
+ CacheType[CacheType["DECIDE_TTL_POST_SEND"] = 3] = "DECIDE_TTL_POST_SEND";
89
90
  })(CacheType || (exports.CacheType = CacheType = {}));
90
91
  //# sourceMappingURL=utils.js.map
@@ -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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"}
@@ -8,10 +8,12 @@ export declare class CacheProvider extends RateLimitedProvider {
8
8
  readonly getBlockByNumberPrefix: string;
9
9
  readonly getLogsCachePrefix: string;
10
10
  readonly callCachePrefix: string;
11
+ readonly getTransactionReceiptPrefix: string;
11
12
  readonly baseTTL: number;
12
13
  constructor(providerCacheNamespace: string, redisClient?: CachingMechanismInterface | undefined, standardTtlBlockDistance: number, noTtlBlockDistance: number, providerCacheTtl: number, ...jsonRpcConstructorParams: ConstructorParameters<typeof RateLimitedProvider>);
13
14
  send(method: string, params: Array<unknown>): Promise<unknown>;
14
15
  private buildRedisKey;
15
16
  private cacheType;
17
+ private getBlockNumberFromRpcResponse;
16
18
  private cacheTypeForBlock;
17
19
  }
@@ -28,6 +28,7 @@ var CacheProvider = /** @class */ (function (_super) {
28
28
  _this.getBlockByNumberPrefix = "".concat(cachePrefix, ":getBlockByNumber,");
29
29
  _this.getLogsCachePrefix = "".concat(cachePrefix, ":eth_getLogs,");
30
30
  _this.callCachePrefix = "".concat(cachePrefix, ":eth_call,");
31
+ _this.getTransactionReceiptPrefix = "".concat(cachePrefix, ":eth_getTransactionReceipt,");
31
32
  var _ttlVar = providerCacheTtl;
32
33
  var _ttl = Number(_ttlVar);
33
34
  if (isNaN(_ttl) || _ttl <= 0) {
@@ -39,7 +40,7 @@ var CacheProvider = /** @class */ (function (_super) {
39
40
  CacheProvider.prototype.send = function (method, params) {
40
41
  var _a, _b, _c;
41
42
  return __awaiter(this, void 0, void 0, function () {
42
- var cacheType, _d, redisKey, redisResult, result, _e, ttl;
43
+ var cacheType, _d, redisKey, redisResult, result, blockNumber, _e, ttl;
43
44
  return __generator(this, function (_f) {
44
45
  switch (_f.label) {
45
46
  case 0:
@@ -53,7 +54,7 @@ var CacheProvider = /** @class */ (function (_super) {
53
54
  _f.label = 3;
54
55
  case 3:
55
56
  cacheType = _d;
56
- if (!(cacheType !== CacheType.NONE)) return [3 /*break*/, 12];
57
+ if (!(cacheType !== CacheType.NONE)) return [3 /*break*/, 14];
57
58
  redisKey = this.buildRedisKey(method, params);
58
59
  return [4 /*yield*/, ((_a = this.redisClient) === null || _a === void 0 ? void 0 : _a.get(redisKey))];
59
60
  case 4:
@@ -65,34 +66,40 @@ var CacheProvider = /** @class */ (function (_super) {
65
66
  return [4 /*yield*/, _super.prototype.send.call(this, method, params)];
66
67
  case 5:
67
68
  result = _f.sent();
69
+ if (!(cacheType === CacheType.DECIDE_TTL_POST_SEND)) return [3 /*break*/, 7];
70
+ blockNumber = this.getBlockNumberFromRpcResponse(method, result);
71
+ return [4 /*yield*/, this.cacheTypeForBlock(blockNumber)];
72
+ case 6:
73
+ cacheType = _f.sent();
74
+ _f.label = 7;
75
+ case 7:
68
76
  _e = cacheType;
69
77
  switch (_e) {
70
- case CacheType.WITH_TTL: return [3 /*break*/, 6];
71
- case CacheType.NO_TTL: return [3 /*break*/, 8];
78
+ case CacheType.WITH_TTL: return [3 /*break*/, 8];
79
+ case CacheType.NO_TTL: return [3 /*break*/, 10];
72
80
  }
73
- return [3 /*break*/, 10];
74
- case 6:
81
+ return [3 /*break*/, 12];
82
+ case 8:
75
83
  ttl = this.baseTTL + Math.ceil(random(-ttl_modifier, ttl_modifier, true) * this.baseTTL);
76
84
  return [4 /*yield*/, ((_b = this.redisClient) === null || _b === void 0 ? void 0 : _b.set(redisKey, JSON.stringify(result), ttl))];
77
- case 7:
78
- _f.sent();
79
- return [3 /*break*/, 11];
80
- case 8: return [4 /*yield*/, ((_c = this.redisClient) === null || _c === void 0 ? void 0 : _c.set(redisKey, JSON.stringify(result), Number.POSITIVE_INFINITY))];
81
85
  case 9:
82
86
  _f.sent();
83
- return [3 /*break*/, 11];
84
- case 10: throw new Error("Unexpected Cache type: ".concat(cacheType));
85
- case 11:
87
+ return [3 /*break*/, 13];
88
+ case 10: return [4 /*yield*/, ((_c = this.redisClient) === null || _c === void 0 ? void 0 : _c.set(redisKey, JSON.stringify(result), Number.POSITIVE_INFINITY))];
89
+ case 11:
90
+ _f.sent();
91
+ return [3 /*break*/, 13];
92
+ case 12: throw new Error("Unexpected Cache type: ".concat(cacheType));
93
+ case 13:
86
94
  // Return the cached result.
87
95
  return [2 /*return*/, result];
88
- case 12: return [4 /*yield*/, _super.prototype.send.call(this, method, params)];
89
- case 13: return [2 /*return*/, _f.sent()];
96
+ case 14: return [4 /*yield*/, _super.prototype.send.call(this, method, params)];
97
+ case 15: return [2 /*return*/, _f.sent()];
90
98
  }
91
99
  });
92
100
  });
93
101
  };
94
102
  CacheProvider.prototype.buildRedisKey = function (method, params) {
95
- // Only handles eth_getLogs and eth_call right now.
96
103
  switch (method) {
97
104
  case "eth_getBlockByNumber":
98
105
  return this.getBlockByNumberPrefix + JSON.stringify(params);
@@ -100,6 +107,8 @@ var CacheProvider = /** @class */ (function (_super) {
100
107
  return this.getLogsCachePrefix + JSON.stringify(params);
101
108
  case "eth_call":
102
109
  return this.callCachePrefix + JSON.stringify(params);
110
+ case "eth_getTransactionReceipt":
111
+ return this.getTransactionReceiptPrefix + JSON.stringify(params);
103
112
  default:
104
113
  throw new Error("CacheProvider::buildRedisKey: invalid JSON-RPC method ".concat(method));
105
114
  }
@@ -134,10 +143,24 @@ var CacheProvider = /** @class */ (function (_super) {
134
143
  // If the block is old enough to cache, cache the call.
135
144
  return this.cacheTypeForBlock(blockNumber);
136
145
  }
146
+ else if ("eth_getTransactionReceipt" === method) {
147
+ // The only param to this request is "hash" so we can't determine how old the data we want is until after
148
+ // we receive the RPC result. Therefore we'll defer the TTL decision.
149
+ return Promise.resolve(CacheType.DECIDE_TTL_POST_SEND);
150
+ }
137
151
  else {
138
152
  return Promise.resolve(CacheType.NONE);
139
153
  }
140
154
  };
155
+ CacheProvider.prototype.getBlockNumberFromRpcResponse = function (method, result) {
156
+ if (method === "eth_getTransactionReceipt") {
157
+ var receipt = result;
158
+ return Number(receipt.blockNumber);
159
+ }
160
+ else {
161
+ throw new Error("CacheProvider::getBlockNumberFromRpcResponse: unsupported JSON-RPC method ".concat(method));
162
+ }
163
+ };
141
164
  CacheProvider.prototype.cacheTypeForBlock = function (blockNumber) {
142
165
  return __awaiter(this, void 0, void 0, function () {
143
166
  var currentBlockNumber, headDistance;
@@ -1 +1 @@
1
- {"version":3,"file":"cachedProvider.js","sourceRoot":"","sources":["../../../src/providers/cachedProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cachedProvider.js","sourceRoot":"","sources":["../../../src/providers/cachedProvider.ts"],"names":[],"mappings":"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"}
@@ -51,5 +51,6 @@ export declare function compareRpcResults(method: string, rpcResultA: unknown, r
51
51
  export declare enum CacheType {
52
52
  NONE = 0,
53
53
  WITH_TTL = 1,
54
- NO_TTL = 2
54
+ NO_TTL = 2,
55
+ DECIDE_TTL_POST_SEND = 3
55
56
  }
@@ -130,5 +130,6 @@ export var CacheType;
130
130
  CacheType[CacheType["NONE"] = 0] = "NONE";
131
131
  CacheType[CacheType["WITH_TTL"] = 1] = "WITH_TTL";
132
132
  CacheType[CacheType["NO_TTL"] = 2] = "NO_TTL";
133
+ CacheType[CacheType["DECIDE_TTL_POST_SEND"] = 3] = "DECIDE_TTL_POST_SEND";
133
134
  })(CacheType || (CacheType = {}));
134
135
  //# sourceMappingURL=utils.js.map
@@ -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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"}
@@ -8,11 +8,13 @@ export declare class CacheProvider extends RateLimitedProvider {
8
8
  readonly getBlockByNumberPrefix: string;
9
9
  readonly getLogsCachePrefix: string;
10
10
  readonly callCachePrefix: string;
11
+ readonly getTransactionReceiptPrefix: string;
11
12
  readonly baseTTL: number;
12
13
  constructor(providerCacheNamespace: string, redisClient?: CachingMechanismInterface | undefined, standardTtlBlockDistance: number, noTtlBlockDistance: number, providerCacheTtl: number, ...jsonRpcConstructorParams: ConstructorParameters<typeof RateLimitedProvider>);
13
14
  send(method: string, params: Array<unknown>): Promise<unknown>;
14
15
  private buildRedisKey;
15
16
  private cacheType;
17
+ private getBlockNumberFromRpcResponse;
16
18
  private cacheTypeForBlock;
17
19
  }
18
20
  //# sourceMappingURL=cachedProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cachedProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/cachedProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,qBAAa,aAAc,SAAQ,mBAAmB;IAQlD,QAAQ,CAAC,WAAW,CAAC;IAErB,QAAQ,CAAC,wBAAwB;IAEjC,QAAQ,CAAC,kBAAkB;IAC3B,QAAQ,CAAC,gBAAgB;IAZ3B,SAAgB,sBAAsB,EAAE,MAAM,CAAC;IAC/C,SAAgB,kBAAkB,EAAE,MAAM,CAAC;IAC3C,SAAgB,eAAe,EAAE,MAAM,CAAC;IACxC,SAAgB,OAAO,EAAE,MAAM,CAAC;gBAG9B,sBAAsB,EAAE,MAAM,EACrB,WAAW,CAAC,uCAA2B,EAEvC,wBAAwB,QAA2B,EAEnD,kBAAkB,QAA2B,EAC7C,gBAAgB,QAAqB,EAC9C,GAAG,wBAAwB,EAAE,qBAAqB,CAAC,OAAO,mBAAmB,CAAC;IAmBjE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAwC7E,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,SAAS;YAuCH,iBAAiB;CAsBhC"}
1
+ {"version":3,"file":"cachedProvider.d.ts","sourceRoot":"","sources":["../../../src/providers/cachedProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,qBAAa,aAAc,SAAQ,mBAAmB;IASlD,QAAQ,CAAC,WAAW,CAAC;IAErB,QAAQ,CAAC,wBAAwB;IAEjC,QAAQ,CAAC,kBAAkB;IAC3B,QAAQ,CAAC,gBAAgB;IAb3B,SAAgB,sBAAsB,EAAE,MAAM,CAAC;IAC/C,SAAgB,kBAAkB,EAAE,MAAM,CAAC;IAC3C,SAAgB,eAAe,EAAE,MAAM,CAAC;IACxC,SAAgB,2BAA2B,EAAE,MAAM,CAAC;IACpD,SAAgB,OAAO,EAAE,MAAM,CAAC;gBAG9B,sBAAsB,EAAE,MAAM,EACrB,WAAW,CAAC,uCAA2B,EAEvC,wBAAwB,QAA2B,EAEnD,kBAAkB,QAA2B,EAC7C,gBAAgB,QAAqB,EAC9C,GAAG,wBAAwB,EAAE,qBAAqB,CAAC,OAAO,mBAAmB,CAAC;IAoBjE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IA6C7E,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,SAAS;IA2CjB,OAAO,CAAC,6BAA6B;YASvB,iBAAiB;CAsBhC"}
@@ -51,6 +51,7 @@ export declare function compareRpcResults(method: string, rpcResultA: unknown, r
51
51
  export declare enum CacheType {
52
52
  NONE = 0,
53
53
  WITH_TTL = 1,
54
- NO_TTL = 2
54
+ NO_TTL = 2,
55
+ DECIDE_TTL_POST_SEND = 3
55
56
  }
56
57
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/providers/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAepD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,IAAI,WAAW,CAE7E;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CACpB,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,YAAsB,GAChC,MAAM,CAIR;AAmBD,wBAAgB,kCAAkC,CAChD,WAAW,EAAE,MAAM,EAAE,EACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAOT;AAED,wBAAgB,kCAAkC,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAOnH;AAyBD;;GAEG;AACH,MAAM,WAAW,aAAa;IAE5B,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAInC,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,qBAAqB,EAAE,YAAY,EAAE,MAAM,UAElG;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;EAG7F;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAkBnG;AAED,oBAAY,SAAS;IACnB,IAAI,IAAA;IACJ,QAAQ,IAAA;IACR,MAAM,IAAA;CACP"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/providers/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGnC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAepD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,IAAI,WAAW,CAE7E;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CACpB,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,EACd,SAAS,GAAE,YAAsB,GAChC,MAAM,CAIR;AAmBD,wBAAgB,kCAAkC,CAChD,WAAW,EAAE,MAAM,EAAE,EACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAOT;AAED,wBAAgB,kCAAkC,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAOnH;AAyBD;;GAEG;AACH,MAAM,WAAW,aAAa;IAE5B,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IAInC,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CAChC;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,SAAS,CAAC,qBAAqB,EAAE,YAAY,EAAE,MAAM,UAElG;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;EAG7F;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAkBnG;AAED,oBAAY,SAAS;IACnB,IAAI,IAAA;IACJ,QAAQ,IAAA;IACR,MAAM,IAAA;IACN,oBAAoB,IAAA;CACrB"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@across-protocol/sdk",
3
3
  "author": "UMA Team",
4
- "version": "4.1.16",
4
+ "version": "4.1.17",
5
5
  "license": "AGPL-3.0",
6
6
  "homepage": "https://docs.across.to/reference/sdk",
7
7
  "files": [
@@ -8,6 +8,7 @@ export class CacheProvider extends RateLimitedProvider {
8
8
  public readonly getBlockByNumberPrefix: string;
9
9
  public readonly getLogsCachePrefix: string;
10
10
  public readonly callCachePrefix: string;
11
+ public readonly getTransactionReceiptPrefix: string;
11
12
  public readonly baseTTL: number;
12
13
 
13
14
  constructor(
@@ -29,6 +30,7 @@ export class CacheProvider extends RateLimitedProvider {
29
30
  this.getBlockByNumberPrefix = `${cachePrefix}:getBlockByNumber,`;
30
31
  this.getLogsCachePrefix = `${cachePrefix}:eth_getLogs,`;
31
32
  this.callCachePrefix = `${cachePrefix}:eth_call,`;
33
+ this.getTransactionReceiptPrefix = `${cachePrefix}:eth_getTransactionReceipt,`;
32
34
 
33
35
  const _ttlVar = providerCacheTtl;
34
36
  const _ttl = Number(_ttlVar);
@@ -38,7 +40,7 @@ export class CacheProvider extends RateLimitedProvider {
38
40
  this.baseTTL = _ttl;
39
41
  }
40
42
  override async send(method: string, params: Array<unknown>): Promise<unknown> {
41
- const cacheType = this.redisClient ? await this.cacheType(method, params) : CacheType.NONE;
43
+ let cacheType = this.redisClient ? await this.cacheType(method, params) : CacheType.NONE;
42
44
 
43
45
  if (cacheType !== CacheType.NONE) {
44
46
  const redisKey = this.buildRedisKey(method, params);
@@ -54,6 +56,11 @@ export class CacheProvider extends RateLimitedProvider {
54
56
  // Cache does not have the result. Query it directly and cache.
55
57
  const result = await super.send(method, params);
56
58
 
59
+ if (cacheType === CacheType.DECIDE_TTL_POST_SEND) {
60
+ const blockNumber = this.getBlockNumberFromRpcResponse(method, result);
61
+ cacheType = await this.cacheTypeForBlock(blockNumber);
62
+ }
63
+
57
64
  // Note: use swtich to ensure all enum cases are handled.
58
65
  switch (cacheType) {
59
66
  case CacheType.WITH_TTL:
@@ -78,7 +85,6 @@ export class CacheProvider extends RateLimitedProvider {
78
85
  }
79
86
 
80
87
  private buildRedisKey(method: string, params: Array<unknown>) {
81
- // Only handles eth_getLogs and eth_call right now.
82
88
  switch (method) {
83
89
  case "eth_getBlockByNumber":
84
90
  return this.getBlockByNumberPrefix + JSON.stringify(params);
@@ -86,6 +92,8 @@ export class CacheProvider extends RateLimitedProvider {
86
92
  return this.getLogsCachePrefix + JSON.stringify(params);
87
93
  case "eth_call":
88
94
  return this.callCachePrefix + JSON.stringify(params);
95
+ case "eth_getTransactionReceipt":
96
+ return this.getTransactionReceiptPrefix + JSON.stringify(params);
89
97
  default:
90
98
  throw new Error(`CacheProvider::buildRedisKey: invalid JSON-RPC method ${method}`);
91
99
  }
@@ -125,11 +133,24 @@ export class CacheProvider extends RateLimitedProvider {
125
133
 
126
134
  // If the block is old enough to cache, cache the call.
127
135
  return this.cacheTypeForBlock(blockNumber);
136
+ } else if ("eth_getTransactionReceipt" === method) {
137
+ // The only param to this request is "hash" so we can't determine how old the data we want is until after
138
+ // we receive the RPC result. Therefore we'll defer the TTL decision.
139
+ return Promise.resolve(CacheType.DECIDE_TTL_POST_SEND);
128
140
  } else {
129
141
  return Promise.resolve(CacheType.NONE);
130
142
  }
131
143
  }
132
144
 
145
+ private getBlockNumberFromRpcResponse(method: string, result: unknown): number {
146
+ if (method === "eth_getTransactionReceipt") {
147
+ const receipt = result as { blockNumber: number | string };
148
+ return Number(receipt.blockNumber);
149
+ } else {
150
+ throw new Error(`CacheProvider::getBlockNumberFromRpcResponse: unsupported JSON-RPC method ${method}`);
151
+ }
152
+ }
153
+
133
154
  private async cacheTypeForBlock(blockNumber: number): Promise<CacheType> {
134
155
  // Note: this method is an internal method provided by the BaseProvider. It allows the caller to specify a maxAge of
135
156
  // the block that is allowed. This means if a block has been retrieved within the last n seconds, no provider
@@ -169,4 +169,5 @@ export enum CacheType {
169
169
  NONE, // Do not cache
170
170
  WITH_TTL, // Cache with TTL
171
171
  NO_TTL, // Cache with infinite TTL
172
+ DECIDE_TTL_POST_SEND, // Decide which TTL to cache with after we receive the RPC response
172
173
  }