@across-protocol/sdk 4.3.12 → 4.3.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/cjs/arch/svm/BlockUtils.d.ts +1 -0
  2. package/dist/cjs/arch/svm/BlockUtils.js +69 -52
  3. package/dist/cjs/arch/svm/BlockUtils.js.map +1 -1
  4. package/dist/cjs/arch/svm/SpokeUtils.d.ts +21 -10
  5. package/dist/cjs/arch/svm/SpokeUtils.js +303 -49
  6. package/dist/cjs/arch/svm/SpokeUtils.js.map +1 -1
  7. package/dist/cjs/arch/svm/eventsClient.js +1 -1
  8. package/dist/cjs/arch/svm/eventsClient.js.map +1 -1
  9. package/dist/cjs/arch/svm/types.d.ts +7 -0
  10. package/dist/cjs/arch/svm/utils.d.ts +8 -3
  11. package/dist/cjs/arch/svm/utils.js +82 -5
  12. package/dist/cjs/arch/svm/utils.js.map +1 -1
  13. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts +1 -1
  14. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js +5 -2
  15. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
  16. package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.d.ts +18 -18
  17. package/dist/cjs/clients/HubPoolClient.d.ts +1 -0
  18. package/dist/cjs/clients/HubPoolClient.js +11 -0
  19. package/dist/cjs/clients/HubPoolClient.js.map +1 -1
  20. package/dist/esm/arch/svm/BlockUtils.d.ts +7 -0
  21. package/dist/esm/arch/svm/BlockUtils.js +76 -54
  22. package/dist/esm/arch/svm/BlockUtils.js.map +1 -1
  23. package/dist/esm/arch/svm/SpokeUtils.d.ts +51 -10
  24. package/dist/esm/arch/svm/SpokeUtils.js +296 -10
  25. package/dist/esm/arch/svm/SpokeUtils.js.map +1 -1
  26. package/dist/esm/arch/svm/eventsClient.js +1 -1
  27. package/dist/esm/arch/svm/eventsClient.js.map +1 -1
  28. package/dist/esm/arch/svm/types.d.ts +7 -0
  29. package/dist/esm/arch/svm/utils.d.ts +35 -3
  30. package/dist/esm/arch/svm/utils.js +104 -4
  31. package/dist/esm/arch/svm/utils.js.map +1 -1
  32. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts +1 -1
  33. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js +5 -2
  34. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
  35. package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.d.ts +18 -18
  36. package/dist/esm/clients/HubPoolClient.d.ts +1 -0
  37. package/dist/esm/clients/HubPoolClient.js +19 -0
  38. package/dist/esm/clients/HubPoolClient.js.map +1 -1
  39. package/dist/types/arch/svm/BlockUtils.d.ts +7 -0
  40. package/dist/types/arch/svm/BlockUtils.d.ts.map +1 -1
  41. package/dist/types/arch/svm/SpokeUtils.d.ts +51 -10
  42. package/dist/types/arch/svm/SpokeUtils.d.ts.map +1 -1
  43. package/dist/types/arch/svm/types.d.ts +7 -0
  44. package/dist/types/arch/svm/types.d.ts.map +1 -1
  45. package/dist/types/arch/svm/utils.d.ts +35 -3
  46. package/dist/types/arch/svm/utils.d.ts.map +1 -1
  47. package/dist/types/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts +1 -1
  48. package/dist/types/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts.map +1 -1
  49. package/dist/types/clients/BundleDataClient/utils/SuperstructUtils.d.ts +18 -18
  50. package/dist/types/clients/HubPoolClient.d.ts +1 -0
  51. package/dist/types/clients/HubPoolClient.d.ts.map +1 -1
  52. package/package.json +1 -1
  53. package/src/arch/svm/BlockUtils.ts +33 -16
  54. package/src/arch/svm/SpokeUtils.ts +277 -12
  55. package/src/arch/svm/eventsClient.ts +1 -1
  56. package/src/arch/svm/types.ts +8 -0
  57. package/src/arch/svm/utils.ts +100 -9
  58. package/src/clients/BundleDataClient/utils/PoolRebalanceUtils.ts +5 -2
  59. package/src/clients/HubPoolClient.ts +23 -0
@@ -8,6 +8,7 @@ export declare class SVMBlockFinder extends BlockFinder<SVMBlock> {
8
8
  private readonly blocks;
9
9
  constructor(provider: SVMProvider, blocks?: SVMBlock[]);
10
10
  getBlockForTimestamp(timestamp: number | string, hints?: BlockFinderHints): Promise<SVMBlock>;
11
+ private getBlockTime;
11
12
  private getLatestBlock;
12
13
  private getBlock;
13
14
  private findBlock;
@@ -9,6 +9,7 @@ var BlockFinder_1 = require("../../utils/BlockFinder");
9
9
  var TypeGuards_1 = require("../../utils/TypeGuards");
10
10
  var TimeUtils_1 = require("../../utils/TimeUtils");
11
11
  var constants_1 = require("../../constants");
12
+ var SpokeUtils_1 = require("./SpokeUtils");
12
13
  var now = (0, TimeUtils_1.getCurrentTime)();
13
14
  var averageBlockTimes = (_a = {},
14
15
  _a[constants_1.CHAIN_IDs.SOLANA] = { average: 0.4, timestamp: now, blockRange: 1 },
@@ -19,19 +20,9 @@ function averageBlockTime() {
19
20
  exports.averageBlockTime = averageBlockTime;
20
21
  function estimateBlocksElapsed(seconds, cushionPercentage, _provider) {
21
22
  if (cushionPercentage === void 0) { cushionPercentage = 0.0; }
22
- return tslib_1.__awaiter(this, void 0, void 0, function () {
23
- var cushionMultiplier, average;
24
- return tslib_1.__generator(this, function (_a) {
25
- switch (_a.label) {
26
- case 0:
27
- cushionMultiplier = cushionPercentage + 1.0;
28
- return [4, averageBlockTime()];
29
- case 1:
30
- average = (_a.sent()).average;
31
- return [2, Math.floor((seconds * cushionMultiplier) / average)];
32
- }
33
- });
34
- });
23
+ var cushionMultiplier = cushionPercentage + 1.0;
24
+ var average = averageBlockTime().average;
25
+ return Math.floor((seconds * cushionMultiplier) / average);
35
26
  }
36
27
  var SVMBlockFinder = (function (_super) {
37
28
  tslib_1.__extends(SVMBlockFinder, _super);
@@ -45,69 +36,94 @@ var SVMBlockFinder = (function (_super) {
45
36
  SVMBlockFinder.prototype.getBlockForTimestamp = function (timestamp, hints) {
46
37
  if (hints === void 0) { hints = {}; }
47
38
  return tslib_1.__awaiter(this, void 0, void 0, function () {
48
- var block, initialBlock, cushion, incrementDistance, _a, _b, multiplier, distance, blockNumber, block, index;
39
+ var block, initialBlock, cushion, incrementDistance, multiplier, distance, blockNumber, block, index;
49
40
  var _this = this;
50
- return tslib_1.__generator(this, function (_c) {
51
- switch (_c.label) {
41
+ return tslib_1.__generator(this, function (_a) {
42
+ switch (_a.label) {
52
43
  case 0:
53
44
  timestamp = Number(timestamp);
54
45
  (0, assert_1.default)(timestamp !== undefined && timestamp !== null, "timestamp must be provided");
55
46
  if (!(this.blocks.length === 0 || this.blocks[this.blocks.length - 1].timestamp < timestamp)) return [3, 2];
56
47
  return [4, this.getLatestBlock()];
57
48
  case 1:
58
- block = _c.sent();
49
+ block = _a.sent();
59
50
  if (timestamp >= block.timestamp)
60
51
  return [2, block];
61
- _c.label = 2;
52
+ _a.label = 2;
62
53
  case 2: return [4, Promise.all(Object.values(hints)
63
54
  .filter(TypeGuards_1.isDefined)
64
55
  .map(function (blockNumber) { return _this.getBlock(blockNumber); }))];
65
56
  case 3:
66
- _c.sent();
67
- if (!(this.blocks[0].timestamp > timestamp)) return [3, 8];
57
+ _a.sent();
58
+ if (!(this.blocks[0].timestamp > timestamp)) return [3, 7];
68
59
  initialBlock = this.blocks[0];
69
60
  cushion = 1;
70
- _b = (_a = Math).max;
71
- return [4, estimateBlocksElapsed(initialBlock.timestamp - timestamp, cushion, this.provider)];
72
- case 4:
73
- incrementDistance = _b.apply(_a, [_c.sent(), 1]);
61
+ incrementDistance = Math.max(estimateBlocksElapsed(initialBlock.timestamp - timestamp, cushion, this.provider), 1);
74
62
  multiplier = 1;
75
- _c.label = 5;
76
- case 5:
63
+ _a.label = 4;
64
+ case 4:
77
65
  distance = multiplier * incrementDistance;
78
66
  blockNumber = Math.max(0, initialBlock.number - distance);
79
67
  return [4, this.getBlock(blockNumber)];
80
- case 6:
81
- block = _c.sent();
68
+ case 5:
69
+ block = _a.sent();
82
70
  if (block.timestamp <= timestamp)
83
- return [3, 8];
71
+ return [3, 7];
84
72
  (0, assert_1.default)(blockNumber > 0, "timestamp is before block 0");
85
- _c.label = 7;
86
- case 7:
73
+ _a.label = 6;
74
+ case 6:
87
75
  multiplier++;
88
- return [3, 5];
89
- case 8:
76
+ return [3, 4];
77
+ case 7:
90
78
  index = (0, lodash_1.sortedIndexBy)(this.blocks, { timestamp: timestamp }, "timestamp");
91
79
  return [2, this.findBlock(this.blocks[index - 1], this.blocks[index], timestamp)];
92
80
  }
93
81
  });
94
82
  });
95
83
  };
96
- SVMBlockFinder.prototype.getLatestBlock = function () {
97
- var _a;
84
+ SVMBlockFinder.prototype.getBlockTime = function (_slot) {
98
85
  return tslib_1.__awaiter(this, void 0, void 0, function () {
99
- var latestSlot, estimatedSlotTime, block, index;
86
+ var timestamp, slot, _a;
100
87
  return tslib_1.__generator(this, function (_b) {
101
88
  switch (_b.label) {
102
- case 0: return [4, this.provider.getSlot().send()];
103
- case 1:
104
- latestSlot = _b.sent();
105
- return [4, this.provider.getBlockTime(latestSlot).send()];
89
+ case 0:
90
+ if (!(_slot !== null && _slot !== void 0)) return [3, 1];
91
+ _a = _slot;
92
+ return [3, 3];
93
+ case 1: return [4, this.provider.getSlot({ commitment: "finalized" }).send()];
106
94
  case 2:
107
- estimatedSlotTime = _b.sent();
95
+ _a = (_b.sent());
96
+ _b.label = 3;
97
+ case 3:
98
+ slot = _a;
99
+ _b.label = 4;
100
+ case 4: return [4, (0, SpokeUtils_1.getTimestampForSlot)(this.provider, slot)];
101
+ case 5:
102
+ timestamp = _b.sent();
103
+ _b.label = 6;
104
+ case 6:
105
+ if (!(0, TypeGuards_1.isDefined)(timestamp) && --slot) return [3, 4];
106
+ _b.label = 7;
107
+ case 7:
108
+ (0, assert_1.default)((0, TypeGuards_1.isDefined)(timestamp), "Unable to resolve block time for SVM slot ".concat(_slot !== null && _slot !== void 0 ? _slot : "latest"));
109
+ (0, assert_1.default)(BigInt(Number(timestamp) === timestamp), "Unexpected SVM block timestamp: ".concat(timestamp));
110
+ return [2, { slot: slot, timestamp: Number(timestamp) }];
111
+ }
112
+ });
113
+ });
114
+ };
115
+ SVMBlockFinder.prototype.getLatestBlock = function () {
116
+ var _a;
117
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
118
+ var _b, slot, timestamp, block, index;
119
+ return tslib_1.__generator(this, function (_c) {
120
+ switch (_c.label) {
121
+ case 0: return [4, this.getBlockTime()];
122
+ case 1:
123
+ _b = _c.sent(), slot = _b.slot, timestamp = _b.timestamp;
108
124
  block = {
109
- timestamp: Number(estimatedSlotTime),
110
- number: Number(latestSlot),
125
+ timestamp: timestamp,
126
+ number: Number(slot),
111
127
  };
112
128
  index = (0, lodash_1.sortedIndexBy)(this.blocks, block, "number");
113
129
  if (((_a = this.blocks[index]) === null || _a === void 0 ? void 0 : _a.number) !== block.number)
@@ -120,22 +136,23 @@ var SVMBlockFinder = (function (_super) {
120
136
  SVMBlockFinder.prototype.getBlock = function (number) {
121
137
  var _a, _b;
122
138
  return tslib_1.__awaiter(this, void 0, void 0, function () {
123
- var index, estimatedSlotTime, block;
124
- return tslib_1.__generator(this, function (_c) {
125
- switch (_c.label) {
139
+ var index, _c, _slot, timestamp, slot, block;
140
+ return tslib_1.__generator(this, function (_d) {
141
+ switch (_d.label) {
126
142
  case 0:
127
143
  index = (0, lodash_1.sortedIndexBy)(this.blocks, { number: number }, "number");
128
144
  if (((_a = this.blocks[index]) === null || _a === void 0 ? void 0 : _a.number) === number)
129
145
  return [2, this.blocks[index]];
130
- return [4, this.provider.getBlockTime(BigInt(number)).send()];
146
+ return [4, this.getBlockTime(BigInt(number))];
131
147
  case 1:
132
- estimatedSlotTime = _c.sent();
148
+ _c = _d.sent(), _slot = _c.slot, timestamp = _c.timestamp;
149
+ slot = Number(_slot);
133
150
  block = {
134
- timestamp: Number(estimatedSlotTime),
135
- number: number,
151
+ timestamp: timestamp,
152
+ number: slot,
136
153
  };
137
- index = (0, lodash_1.sortedIndexBy)(this.blocks, { number: number }, "number");
138
- if (((_b = this.blocks[index]) === null || _b === void 0 ? void 0 : _b.number) === number)
154
+ index = (0, lodash_1.sortedIndexBy)(this.blocks, { number: slot }, "number");
155
+ if (((_b = this.blocks[index]) === null || _b === void 0 ? void 0 : _b.number) === slot)
139
156
  return [2, this.blocks[index]];
140
157
  this.blocks.splice(index, 0, block);
141
158
  return [2, block];
@@ -1 +1 @@
1
- {"version":3,"file":"BlockUtils.js","sourceRoot":"","sources":["../../../../src/arch/svm/BlockUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BlockUtils.js","sourceRoot":"","sources":["../../../../src/arch/svm/BlockUtils.ts"],"names":[],"mappings":";;;;;AAAA,0DAA4B;AAC5B,iCAA8C;AAC9C,uDAAgH;AAChH,qDAAmD;AACnD,mDAAuD;AACvD,6CAA4C;AAE5C,2CAAmD;AAInD,IAAM,GAAG,GAAG,IAAA,0BAAc,GAAE,CAAC;AAC7B,IAAM,iBAAiB;IACrB,GAAC,qBAAS,CAAC,MAAM,IAAG,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE;OACpE,CAAC;AAOF,SAAgB,gBAAgB;IAE9B,OAAO,iBAAiB,CAAC,qBAAS,CAAC,MAAM,CAAC,CAAC;AAC7C,CAAC;AAHD,4CAGC;AAED,SAAS,qBAAqB,CAAC,OAAe,EAAE,iBAAuB,EAAE,SAAsB;IAA/C,kCAAA,EAAA,uBAAuB;IACrE,IAAM,iBAAiB,GAAG,iBAAiB,GAAG,GAAG,CAAC;IAC1C,IAAA,OAAO,GAAK,gBAAgB,EAAE,QAAvB,CAAwB;IACvC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,GAAG,iBAAiB,CAAC,GAAG,OAAO,CAAC,CAAC;AAC7D,CAAC;AAED;IAAoC,0CAAqB;IACvD,wBACmB,QAAqB,EACrB,MAAuB;QAAvB,uBAAA,EAAA,WAAuB;QAF1C,YAIE,iBAAO,SACR;QAJkB,cAAQ,GAAR,QAAQ,CAAa;QACrB,YAAM,GAAN,MAAM,CAAiB;;IAG1C,CAAC;IAOY,6CAAoB,GAAjC,UAAkC,SAA0B,EAAE,KAA4B;QAA5B,sBAAA,EAAA,UAA4B;;;;;;;wBACxF,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;wBAC9B,IAAA,gBAAM,EAAC,SAAS,KAAK,SAAS,IAAI,SAAS,KAAK,IAAI,EAAE,4BAA4B,CAAC,CAAC;6BAEhF,CAAA,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,SAAS,GAAG,SAAS,CAAA,EAArF,cAAqF;wBACzE,WAAM,IAAI,CAAC,cAAc,EAAE,EAAA;;wBAAnC,KAAK,GAAG,SAA2B;wBACzC,IAAI,SAAS,IAAI,KAAK,CAAC,SAAS;4BAAE,WAAO,KAAK,EAAC;;4BAKjD,WAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;6BACjB,MAAM,CAAC,sBAAS,CAAC;6BACjB,GAAG,CAAC,UAAC,WAAW,IAAK,OAAA,KAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAA1B,CAA0B,CAAC,CACpD,EAAA;;wBAJD,SAIC,CAAC;6BAGE,CAAA,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,SAAS,CAAA,EAApC,cAAoC;wBAChC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;wBAK9B,OAAO,GAAG,CAAC,CAAC;wBACZ,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAEhC,qBAAqB,CAAC,YAAY,CAAC,SAAS,GAAG,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,EACjF,CAAC,CACF,CAAC;wBAGO,UAAU,GAAG,CAAC;;;wBACf,QAAQ,GAAG,UAAU,GAAG,iBAAiB,CAAC;wBAC1C,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,GAAG,QAAQ,CAAC,CAAC;wBAClD,WAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAA;;wBAAxC,KAAK,GAAG,SAAgC;wBAC9C,IAAI,KAAK,CAAC,SAAS,IAAI,SAAS;4BAAE,cAAM;wBACxC,IAAA,gBAAM,EAAC,WAAW,GAAG,CAAC,EAAE,6BAA6B,CAAC,CAAC;;;wBAL9B,UAAU,EAAE,CAAA;;;wBAUnC,KAAK,GAAG,IAAA,sBAAa,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,SAAS,WAAA,EAAW,EAAE,WAAW,CAAC,CAAC;wBAC9E,WAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,SAAS,CAAC,EAAC;;;;KAC9E;IAQa,qCAAY,GAA1B,UAA2B,KAAc;;;;;;8BAE5B,KAAK,aAAL,KAAK;wBAAL,KAAA,KAAK,CAAA;;4BAAK,WAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE,EAAA;;wBAAhE,KAAA,CAAC,SAA+D,CAAC,CAAA;;;wBAAjF,IAAI,KAA6E;;4BAGvE,WAAM,IAAA,gCAAmB,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAA;;wBAA1D,SAAS,GAAG,SAA8C,CAAC;;;4BACpD,CAAC,IAAA,sBAAS,EAAC,SAAS,CAAC,IAAI,EAAE,IAAI;;;wBACxC,IAAA,gBAAM,EAAC,IAAA,sBAAS,EAAC,SAAS,CAAC,EAAE,oDAA6C,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,QAAQ,CAAE,CAAC,CAAC;wBAC/F,IAAA,gBAAM,EAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,SAAS,CAAC,EAAE,0CAAmC,SAAS,CAAE,CAAC,CAAC;wBAEhG,WAAO,EAAE,IAAI,MAAA,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,EAAC;;;;KAC/C;IAGa,uCAAc,GAA5B;;;;;;4BAC8B,WAAM,IAAI,CAAC,YAAY,EAAE,EAAA;;wBAA/C,KAAsB,SAAyB,EAA7C,IAAI,UAAA,EAAE,SAAS,eAAA;wBAGjB,KAAK,GAAa;4BACtB,SAAS,WAAA;4BACT,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;yBACrB,CAAC;wBACI,KAAK,GAAG,IAAA,sBAAa,EAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;wBAC1D,IAAI,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAAE,MAAM,MAAK,KAAK,CAAC,MAAM;4BAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;wBACrF,WAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC;;;;KAC3B;IAGa,iCAAQ,GAAtB,UAAuB,MAAc;;;;;;;wBAC/B,KAAK,GAAG,IAAA,sBAAa,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,QAAA,EAAW,EAAE,QAAQ,CAAC,CAAC;wBACtE,IAAI,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAAE,MAAM,MAAK,MAAM;4BAAE,WAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC;wBAGlC,WAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAA;;wBAApE,KAA6B,SAAuC,EAA5D,KAAK,UAAA,EAAE,SAAS,eAAA;wBACxB,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;wBAErB,KAAK,GAAa;4BACtB,SAAS,WAAA;4BACT,MAAM,EAAE,IAAI;yBACb,CAAC;wBAGF,KAAK,GAAG,IAAA,sBAAa,EAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,IAAI,EAAW,EAAE,QAAQ,CAAC,CAAC;wBAGxE,IAAI,CAAA,MAAA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0CAAE,MAAM,MAAK,IAAI;4BAAE,WAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC;wBACnE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;wBACpC,WAAO,KAAK,EAAC;;;;KACd;IAKa,kCAAS,GAAvB,UAAwB,UAAoB,EAAE,QAAkB,EAAE,SAAiB;;;;;;wBAC3E,KAAyB,CAAC,UAAU,EAAE,QAAQ,CAAC,EAA9C,UAAU,QAAA,EAAE,QAAQ,QAAA,CAA2B;wBAGtD,IAAI,QAAQ,CAAC,SAAS,KAAK,SAAS;4BAAE,WAAO,QAAQ,EAAC;wBAItD,IAAI,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,GAAG,CAAC;4BAAE,WAAO,UAAU,EAAC;wBAEjE,IAAA,gBAAM,EAAC,QAAQ,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM,EAAE,kCAAkC,CAAC,CAAC;wBAClF,IAAA,gBAAM,EACJ,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,SAAS,GAAG,UAAU,CAAC,SAAS,EAClE,+CAA+C,CAChD,CAAC;wBAGI,mBAAmB,GAAG,QAAQ,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;wBAChE,kBAAkB,GAAG,QAAQ,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;wBACzD,eAAe,GAAG,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,mBAAmB,CAAC;wBAC3E,cAAc,GAAG,UAAU,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,kBAAkB,CAAC,CAAC;wBAG3E,WAAM,IAAI,CAAC,QAAQ,CAAC,IAAA,cAAK,EAAC,cAAc,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAA;;wBAAjG,QAAQ,GAAG,SAAsF;wBAGvG,IAAI,QAAQ,CAAC,SAAS,GAAG,SAAS,EAAE;4BAClC,WAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAC;yBACtD;6BAAM;4BACL,WAAO,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAC;yBACxD;;;;;KACF;IACH,qBAAC;AAAD,CAAC,AAtJD,CAAoC,yBAAW,GAsJ9C;AAtJY,wCAAc"}
@@ -1,10 +1,10 @@
1
- import { SvmSpokeClient } from "@across-protocol/contracts";
2
- import { Address, ReadonlyUint8Array, type TransactionSigner } from "@solana/kit";
1
+ import { MessageTransmitterClient, SvmSpokeClient } from "@across-protocol/contracts";
2
+ import { Address, IAccountMeta, KeyPairSigner, ReadonlyUint8Array, type TransactionSigner } from "@solana/kit";
3
3
  import { Logger } from "winston";
4
4
  import { DepositWithBlock, FillStatus, FillWithBlock, RelayData } from "../../interfaces";
5
- import { BigNumber, EvmAddress, SvmAddress, Address as SdkAddress } from "../../utils";
5
+ import { BigNumber, EvmAddress, Address as SdkAddress, SvmAddress } from "../../utils";
6
6
  import { SvmCpiEventsClient } from "./eventsClient";
7
- import { SVMProvider } from "./types";
7
+ import { AttestedCCTPMessage, SVMProvider } from "./types";
8
8
  export declare const SLOT_DURATION_MS = 400;
9
9
  type ProtoFill = Omit<RelayData, "recipient" | "outputToken"> & {
10
10
  destinationChainId: number;
@@ -25,19 +25,19 @@ export declare function getFillRelayTx(spokePoolAddr: SvmAddress, solanaClient:
25
25
  recipient: SvmAddress;
26
26
  outputToken: SvmAddress;
27
27
  }, signer: TransactionSigner, repaymentChainId: number, repaymentAddress: SdkAddress): Promise<import("@solana/kit").TransactionMessageWithBlockhashLifetime & import("@solana/kit").ITransactionMessageWithFeePayerSigner<string, TransactionSigner<string>> & Omit<Readonly<{
28
- instructions: readonly import("@solana/kit").IInstruction<string, readonly (import("@solana/kit").IAccountLookupMeta<string, string> | import("@solana/kit").IAccountMeta<string>)[]>[];
28
+ instructions: readonly import("@solana/kit").IInstruction<string, readonly (import("@solana/kit").IAccountLookupMeta<string, string> | IAccountMeta<string>)[]>[];
29
29
  version: 0;
30
30
  }>, "feePayer">>;
31
31
  export declare const createFillInstruction: (signer: TransactionSigner, solanaClient: SVMProvider, fillInput: SvmSpokeClient.FillRelayInput, tokenDecimals: number, createRecipientAtaIfNeeded?: boolean) => Promise<import("@solana/kit").TransactionMessageWithBlockhashLifetime & import("@solana/kit").ITransactionMessageWithFeePayerSigner<string, TransactionSigner<string>> & Omit<Readonly<{
32
- instructions: readonly import("@solana/kit").IInstruction<string, readonly (import("@solana/kit").IAccountLookupMeta<string, string> | import("@solana/kit").IAccountMeta<string>)[]>[];
32
+ instructions: readonly import("@solana/kit").IInstruction<string, readonly (import("@solana/kit").IAccountLookupMeta<string, string> | IAccountMeta<string>)[]>[];
33
33
  version: 0;
34
34
  }>, "feePayer">>;
35
35
  export declare const createDepositInstruction: (signer: TransactionSigner, solanaClient: SVMProvider, depositInput: SvmSpokeClient.DepositInput, tokenDecimals: number, createVaultAtaIfNeeded?: boolean) => Promise<import("@solana/kit").TransactionMessageWithBlockhashLifetime & import("@solana/kit").ITransactionMessageWithFeePayerSigner<string, TransactionSigner<string>> & Omit<Readonly<{
36
- instructions: readonly import("@solana/kit").IInstruction<string, readonly (import("@solana/kit").IAccountLookupMeta<string, string> | import("@solana/kit").IAccountMeta<string>)[]>[];
36
+ instructions: readonly import("@solana/kit").IInstruction<string, readonly (import("@solana/kit").IAccountLookupMeta<string, string> | IAccountMeta<string>)[]>[];
37
37
  version: 0;
38
38
  }>, "feePayer">>;
39
39
  export declare const createRequestSlowFillInstruction: (signer: TransactionSigner, solanaClient: SVMProvider, requestSlowFillInput: SvmSpokeClient.RequestSlowFillInput) => Promise<import("@solana/kit").TransactionMessageWithBlockhashLifetime & import("@solana/kit").ITransactionMessageWithFeePayerSigner<string, TransactionSigner<string>> & Omit<Readonly<{
40
- instructions: readonly import("@solana/kit").IInstruction<string, readonly (import("@solana/kit").IAccountLookupMeta<string, string> | import("@solana/kit").IAccountMeta<string>)[]>[];
40
+ instructions: readonly import("@solana/kit").IInstruction<string, readonly (import("@solana/kit").IAccountLookupMeta<string, string> | IAccountMeta<string>)[]>[];
41
41
  version: 0;
42
42
  }>, "feePayer">>;
43
43
  export declare function getSlowFillRequestTx(spokePoolAddr: SvmAddress, solanaClient: SVMProvider, relayData: Omit<RelayData, "recipient" | "outputToken"> & {
@@ -45,11 +45,15 @@ export declare function getSlowFillRequestTx(spokePoolAddr: SvmAddress, solanaCl
45
45
  recipient: SvmAddress;
46
46
  outputToken: SvmAddress;
47
47
  }, signer: TransactionSigner): Promise<import("@solana/kit").TransactionMessageWithBlockhashLifetime & import("@solana/kit").ITransactionMessageWithFeePayerSigner<string, TransactionSigner<string>> & Omit<Readonly<{
48
- instructions: readonly import("@solana/kit").IInstruction<string, readonly (import("@solana/kit").IAccountLookupMeta<string, string> | import("@solana/kit").IAccountMeta<string>)[]>[];
48
+ instructions: readonly import("@solana/kit").IInstruction<string, readonly (import("@solana/kit").IAccountLookupMeta<string, string> | IAccountMeta<string>)[]>[];
49
49
  version: 0;
50
50
  }>, "feePayer">>;
51
51
  export declare const createCloseFillPdaInstruction: (signer: TransactionSigner, solanaClient: SVMProvider, fillStatusPda: Address) => Promise<import("@solana/kit").TransactionMessageWithBlockhashLifetime & import("@solana/kit").ITransactionMessageWithFeePayerSigner<string, TransactionSigner<string>> & Omit<Readonly<{
52
- instructions: readonly import("@solana/kit").IInstruction<string, readonly (import("@solana/kit").IAccountLookupMeta<string, string> | import("@solana/kit").IAccountMeta<string>)[]>[];
52
+ instructions: readonly import("@solana/kit").IInstruction<string, readonly (import("@solana/kit").IAccountLookupMeta<string, string> | IAccountMeta<string>)[]>[];
53
+ version: 0;
54
+ }>, "feePayer">>;
55
+ export declare const createReceiveMessageInstruction: (signer: TransactionSigner, solanaClient: SVMProvider, input: MessageTransmitterClient.ReceiveMessageInput, remainingAccounts: IAccountMeta<string>[]) => Promise<import("@solana/kit").TransactionMessageWithBlockhashLifetime & import("@solana/kit").ITransactionMessageWithFeePayerSigner<string, TransactionSigner<string>> & Omit<Readonly<{
56
+ instructions: readonly import("@solana/kit").IInstruction<string, readonly (import("@solana/kit").IAccountLookupMeta<string, string> | IAccountMeta<string>)[]>[];
53
57
  version: 0;
54
58
  }>, "feePayer">>;
55
59
  export declare function getAssociatedTokenAddress(owner: SvmAddress, mint: SvmAddress, tokenProgramId?: Address<string>): Promise<Address<string>>;
@@ -82,4 +86,11 @@ export declare function getDepositNowDelegatePda(depositData: {
82
86
  message: Uint8Array;
83
87
  }, programId: Address<string>): Promise<Address<string>>;
84
88
  export declare function getFillRelayDelegatePda(relayHash: Uint8Array, repaymentChainId: bigint, repaymentAddress: Address<string>, programId: Address<string>): Promise<Address<string>>;
89
+ export declare const hasCCTPV1MessageBeenProcessed: (solanaClient: SVMProvider, signer: KeyPairSigner, nonce: number, sourceDomain: number) => Promise<boolean>;
90
+ export declare function getAccountMetasForTokenlessMessage(): Promise<IAccountMeta<string>[]>;
91
+ export declare function getCCTPV1ReceiveMessageTx(solanaClient: SVMProvider, signer: KeyPairSigner, message: AttestedCCTPMessage, hubChainId: number): Promise<import("@solana/kit").TransactionMessageWithBlockhashLifetime & import("@solana/kit").ITransactionMessageWithFeePayerSigner<string, TransactionSigner<string>> & Omit<Readonly<{
92
+ instructions: readonly import("@solana/kit").IInstruction<string, readonly (import("@solana/kit").IAccountLookupMeta<string, string> | IAccountMeta<string>)[]>[];
93
+ version: 0;
94
+ }>, "feePayer">>;
95
+ export declare function finalizeCCTPV1Messages(solanaClient: SVMProvider, attestedMessages: AttestedCCTPMessage[], signer: KeyPairSigner, simulate?: boolean, hubChainId?: number): Promise<string[]>;
85
96
  export {};