@across-protocol/sdk 4.1.44 → 4.1.45-beta.1

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 (109) hide show
  1. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js +23 -14
  2. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  3. package/dist/cjs/clients/BundleDataClient/utils/DataworkerUtils.js +10 -1
  4. package/dist/cjs/clients/BundleDataClient/utils/DataworkerUtils.js.map +1 -1
  5. package/dist/cjs/clients/BundleDataClient/utils/FillUtils.d.ts +7 -7
  6. package/dist/cjs/clients/BundleDataClient/utils/FillUtils.js +47 -36
  7. package/dist/cjs/clients/BundleDataClient/utils/FillUtils.js.map +1 -1
  8. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts +1 -1
  9. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js +2 -2
  10. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
  11. package/dist/cjs/clients/HubPoolClient.d.ts +3 -2
  12. package/dist/cjs/clients/HubPoolClient.js +27 -15
  13. package/dist/cjs/clients/HubPoolClient.js.map +1 -1
  14. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.d.ts +1 -0
  15. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js +19 -5
  16. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
  17. package/dist/cjs/clients/mocks/MockHubPoolClient.d.ts +2 -0
  18. package/dist/cjs/clients/mocks/MockHubPoolClient.js +18 -0
  19. package/dist/cjs/clients/mocks/MockHubPoolClient.js.map +1 -1
  20. package/dist/cjs/svm/eventsClient.js +5 -12
  21. package/dist/cjs/svm/eventsClient.js.map +1 -1
  22. package/dist/cjs/svm/index.d.ts +2 -0
  23. package/dist/cjs/svm/index.js +3 -0
  24. package/dist/cjs/svm/index.js.map +1 -1
  25. package/dist/cjs/svm/utils/events.d.ts +6 -1
  26. package/dist/cjs/svm/utils/events.js +13 -4
  27. package/dist/cjs/svm/utils/events.js.map +1 -1
  28. package/dist/cjs/svm/utils/index.d.ts +1 -0
  29. package/dist/cjs/svm/utils/index.js +5 -0
  30. package/dist/cjs/svm/utils/index.js.map +1 -0
  31. package/dist/cjs/utils/DepositUtils.d.ts +1 -0
  32. package/dist/cjs/utils/DepositUtils.js +5 -1
  33. package/dist/cjs/utils/DepositUtils.js.map +1 -1
  34. package/dist/cjs/utils/common.d.ts +2 -0
  35. package/dist/cjs/utils/common.js +3 -1
  36. package/dist/cjs/utils/common.js.map +1 -1
  37. package/dist/esm/clients/BundleDataClient/BundleDataClient.js +24 -15
  38. package/dist/esm/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  39. package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.js +16 -1
  40. package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.js.map +1 -1
  41. package/dist/esm/clients/BundleDataClient/utils/FillUtils.d.ts +28 -7
  42. package/dist/esm/clients/BundleDataClient/utils/FillUtils.js +83 -50
  43. package/dist/esm/clients/BundleDataClient/utils/FillUtils.js.map +1 -1
  44. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts +1 -1
  45. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js +2 -2
  46. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
  47. package/dist/esm/clients/HubPoolClient.d.ts +3 -16
  48. package/dist/esm/clients/HubPoolClient.js +31 -33
  49. package/dist/esm/clients/HubPoolClient.js.map +1 -1
  50. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.d.ts +1 -0
  51. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js +28 -14
  52. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
  53. package/dist/esm/clients/mocks/MockHubPoolClient.d.ts +2 -0
  54. package/dist/esm/clients/mocks/MockHubPoolClient.js +18 -0
  55. package/dist/esm/clients/mocks/MockHubPoolClient.js.map +1 -1
  56. package/dist/esm/svm/eventsClient.js +6 -13
  57. package/dist/esm/svm/eventsClient.js.map +1 -1
  58. package/dist/esm/svm/index.d.ts +2 -0
  59. package/dist/esm/svm/index.js +3 -0
  60. package/dist/esm/svm/index.js.map +1 -1
  61. package/dist/esm/svm/utils/events.d.ts +9 -1
  62. package/dist/esm/svm/utils/events.js +15 -3
  63. package/dist/esm/svm/utils/events.js.map +1 -1
  64. package/dist/esm/svm/utils/index.d.ts +1 -0
  65. package/dist/esm/svm/utils/index.js +2 -0
  66. package/dist/esm/svm/utils/index.js.map +1 -0
  67. package/dist/esm/utils/DepositUtils.d.ts +1 -0
  68. package/dist/esm/utils/DepositUtils.js +5 -1
  69. package/dist/esm/utils/DepositUtils.js.map +1 -1
  70. package/dist/esm/utils/common.d.ts +2 -0
  71. package/dist/esm/utils/common.js +2 -0
  72. package/dist/esm/utils/common.js.map +1 -1
  73. package/dist/types/clients/BundleDataClient/BundleDataClient.d.ts.map +1 -1
  74. package/dist/types/clients/BundleDataClient/utils/DataworkerUtils.d.ts.map +1 -1
  75. package/dist/types/clients/BundleDataClient/utils/FillUtils.d.ts +28 -7
  76. package/dist/types/clients/BundleDataClient/utils/FillUtils.d.ts.map +1 -1
  77. package/dist/types/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts +1 -1
  78. package/dist/types/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts.map +1 -1
  79. package/dist/types/clients/HubPoolClient.d.ts +3 -16
  80. package/dist/types/clients/HubPoolClient.d.ts.map +1 -1
  81. package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts +1 -0
  82. package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts.map +1 -1
  83. package/dist/types/clients/mocks/MockHubPoolClient.d.ts +2 -0
  84. package/dist/types/clients/mocks/MockHubPoolClient.d.ts.map +1 -1
  85. package/dist/types/svm/eventsClient.d.ts.map +1 -1
  86. package/dist/types/svm/index.d.ts +2 -0
  87. package/dist/types/svm/index.d.ts.map +1 -1
  88. package/dist/types/svm/utils/events.d.ts +9 -1
  89. package/dist/types/svm/utils/events.d.ts.map +1 -1
  90. package/dist/types/svm/utils/index.d.ts +2 -0
  91. package/dist/types/svm/utils/index.d.ts.map +1 -0
  92. package/dist/types/utils/DepositUtils.d.ts +1 -0
  93. package/dist/types/utils/DepositUtils.d.ts.map +1 -1
  94. package/dist/types/utils/common.d.ts +2 -0
  95. package/dist/types/utils/common.d.ts.map +1 -1
  96. package/package.json +1 -1
  97. package/src/clients/BundleDataClient/BundleDataClient.ts +38 -21
  98. package/src/clients/BundleDataClient/utils/DataworkerUtils.ts +36 -1
  99. package/src/clients/BundleDataClient/utils/FillUtils.ts +133 -71
  100. package/src/clients/BundleDataClient/utils/PoolRebalanceUtils.ts +3 -2
  101. package/src/clients/HubPoolClient.ts +41 -38
  102. package/src/clients/SpokePoolClient/SpokePoolClient.ts +54 -16
  103. package/src/clients/mocks/MockHubPoolClient.ts +16 -0
  104. package/src/svm/eventsClient.ts +6 -12
  105. package/src/svm/index.ts +2 -0
  106. package/src/svm/utils/events.ts +16 -4
  107. package/src/svm/utils/index.ts +1 -0
  108. package/src/utils/DepositUtils.ts +6 -1
  109. package/src/utils/common.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"file":"SpokePoolClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/SpokePoolClient/SpokePoolClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SpokePoolClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/SpokePoolClient/SpokePoolClient.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,8 @@ export declare class MockHubPoolClient extends HubPoolClient {
24
24
  getL1Tokens(): L1Token[];
25
25
  getTokenInfoForDeposit(): L1Token;
26
26
  setTokenMapping(l1Token: string, chainId: number, l2Token: string): void;
27
+ l2TokenEnabledForL1TokenAtBlock(l1Token: string, destinationChainId: number, hubBlockNumber: number): boolean;
28
+ l2TokenHasPoolRebalanceRoute(l2Token: string, chainId: number, hubPoolBlock: number): boolean;
27
29
  deleteTokenMapping(l1Token: string, chainId: number): void;
28
30
  getL1TokenForL2TokenAtBlock(l2Token: string, chainId: number, blockNumber: number): string;
29
31
  getL2TokenForL1TokenAtBlock(l1Token: string, chainId: number, blockNumber: number): string;
@@ -1 +1 @@
1
- {"version":3,"file":"MockHubPoolClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/mocks/MockHubPoolClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MockHubPoolClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/mocks/MockHubPoolClient.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"eventsClient.d.ts","sourceRoot":"","sources":["../../../src/svm/eventsClient.ts"],"names":[],"mappings":"AAGA,OAAO,IAAI,EAAE,EAGX,0BAA0B,EAE1B,YAAY,EAEb,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAa9D,KAAK,6BAA6B,GAAG,UAAU,CAAC,0BAA0B,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAI1G,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,GAAG,CAAyD;IACpE,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,sBAAsB,CAAU;IAExC;;OAEG;IACH,OAAO;IAUP;;OAEG;WACiB,MAAM,CACxB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC,GAC1D,OAAO,CAAC,oBAAoB,CAAC;IAYhC;;;;;;;;OAQG;IACU,WAAW,CAAC,CAAC,SAAS,SAAS,EAC1C,SAAS,EAAE,SAAS,EACpB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,GAAE,6BAAwE,GAChF,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAK9B;;;;;;;OAOG;YACW,cAAc;IAoD5B;;;;;;OAMG;YACW,uBAAuB;IASrC;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;CAwC3B"}
1
+ {"version":3,"file":"eventsClient.d.ts","sourceRoot":"","sources":["../../../src/svm/eventsClient.ts"],"names":[],"mappings":"AAEA,OAAO,IAAI,EAAE,EAGX,0BAA0B,EAE1B,YAAY,EAEb,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAa9D,KAAK,6BAA6B,GAAG,UAAU,CAAC,0BAA0B,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAI1G,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,GAAG,CAAyD;IACpE,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,sBAAsB,CAAU;IAExC;;OAEG;IACH,OAAO;IAUP;;OAEG;WACiB,MAAM,CACxB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC,GAC1D,OAAO,CAAC,oBAAoB,CAAC;IAYhC;;;;;;;;OAQG;IACU,WAAW,CAAC,CAAC,SAAS,SAAS,EAC1C,SAAS,EAAE,SAAS,EACpB,QAAQ,CAAC,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,GAAE,6BAAwE,GAChF,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAK9B;;;;;;;OAOG;YACW,cAAc;IAoD5B;;;;;;OAMG;YACW,uBAAuB;IASrC;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;CAkC3B"}
@@ -1,2 +1,4 @@
1
1
  export * from "./eventsClient";
2
+ export * from "./types";
3
+ export * as utils from "./utils";
2
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/svm/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/svm/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC"}
@@ -1,8 +1,16 @@
1
- import { EventName } from "../types";
1
+ import { Idl } from "@coral-xyz/anchor";
2
+ import { EventName, EventData } from "../types";
2
3
  /**
3
4
  * Parses event data from a transaction.
4
5
  */
5
6
  export declare function parseEventData(eventData: any): any;
7
+ /**
8
+ * Decodes a raw event according to a supplied IDL.
9
+ */
10
+ export declare function decodeEvent(idl: Idl, rawEvent: string): {
11
+ data: EventData;
12
+ name: EventName;
13
+ };
6
14
  /**
7
15
  * Gets the event name from a raw name.
8
16
  */
@@ -1 +1 @@
1
- {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/svm/utils/events.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAiB,MAAM,UAAU,CAAC;AAEpD;;GAEG;AAEH,wBAAgB,cAAc,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG,CAsBlD;AASD;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAGvD"}
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../../src/svm/utils/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,SAAS,EAAE,SAAS,EAAiB,MAAM,UAAU,CAAC;AAE/D;;GAEG;AAEH,wBAAgB,cAAc,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG,CAsBlD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAO5F;AASD;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,CAGvD"}
@@ -0,0 +1,2 @@
1
+ export * from "./events";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/svm/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
@@ -56,6 +56,7 @@ export declare function validateFillForDeposit(relayData: Omit<RelayData, "messa
56
56
  * @returns True if deposit's input amount is 0 and message is empty.
57
57
  */
58
58
  export declare function isZeroValueDeposit(deposit: Pick<Deposit, "inputAmount" | "message">): boolean;
59
+ export declare function invalidOutputToken(deposit: Pick<DepositWithBlock, "outputToken">): boolean;
59
60
  export declare function isZeroValueFillOrSlowFillRequest(e: Pick<Fill | SlowFillRequest, "inputAmount" | "messageHash">): boolean;
60
61
  /**
61
62
  * Determines if a message is empty or not.
@@ -1 +1 @@
1
- {"version":3,"file":"DepositUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/DepositUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,yBAAyB,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAavH,oBAAY,WAAW;IACrB,gBAAgB,IAAI;IACpB,iBAAiB,IAAA;IACjB,YAAY,IAAA;IACZ,mBAAmB,IAAA;CACpB;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,GAC1C;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD;;;;;;;;;;;GAWG;AAEH,wBAAsB,6BAA6B,CACjD,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,IAAI,GAAG,eAAe,EAC5B,KAAK,CAAC,EAAE,yBAAyB,GAChC,OAAO,CAAC,mBAAmB,CAAC,CAkF9B;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,GACrF,MAAM,CAkBR;AAoBD,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,EAC3F,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,gBAAgB,GAAG,eAAe,GAAG,aAAa,CAAC,GAC1E;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAkBpD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,CAAC,GAAG,OAAO,CAE7F;AAED,wBAAgB,gCAAgC,CAC9C,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,eAAe,EAAE,aAAa,GAAG,aAAa,CAAC,GAC7D,OAAO,CAET;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,SAAgB,GAAG,OAAO,CAE/D;AAED,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEzD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAI9D"}
1
+ {"version":3,"file":"DepositUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/DepositUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,yBAAyB,EAAE,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAavH,oBAAY,WAAW;IACrB,gBAAgB,IAAI;IACpB,iBAAiB,IAAA;IACjB,YAAY,IAAA;IACZ,mBAAmB,IAAA;CACpB;AAED,MAAM,MAAM,mBAAmB,GAC3B;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,gBAAgB,CAAA;CAAE,GAC1C;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD;;;;;;;;;;;GAWG;AAEH,wBAAsB,6BAA6B,CACjD,eAAe,EAAE,eAAe,EAChC,IAAI,EAAE,IAAI,GAAG,eAAe,EAC5B,KAAK,CAAC,EAAE,yBAAyB,GAChC,OAAO,CAAC,mBAAmB,CAAC,CAkF9B;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,GACrF,MAAM,CAkBR;AAoBD,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,kBAAkB,EAAE,MAAM,CAAA;CAAE,EAC3F,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,gBAAgB,GAAG,eAAe,GAAG,aAAa,CAAC,GAC1E;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAkBpD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,CAAC,GAAG,OAAO,CAE7F;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,GAAG,OAAO,CAG1F;AAED,wBAAgB,gCAAgC,CAC9C,CAAC,EAAE,IAAI,CAAC,IAAI,GAAG,eAAe,EAAE,aAAa,GAAG,aAAa,CAAC,GAC7D,OAAO,CAET;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,SAAgB,GAAG,OAAO,CAE/D;AAED,wBAAgB,mCAAmC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEzD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAI9D"}
@@ -1,10 +1,12 @@
1
1
  import Decimal from "decimal.js";
2
+ import bs58 from "bs58";
2
3
  import { ethers } from "ethers";
3
4
  import { BigNumber, BigNumberish, BN } from "./BigNumberUtils";
4
5
  export type Decimalish = string | number | Decimal;
5
6
  export declare const AddressZero = "0x0000000000000000000000000000000000000000";
6
7
  export declare const MAX_BIG_INT: ethers.BigNumber;
7
8
  export declare const keccak256: typeof ethers.utils.keccak256;
9
+ export { bs58 };
8
10
  /**
9
11
  * toBNWei.
10
12
  *
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/utils/common.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAiC,MAAM,kBAAkB,CAAC;AAG9F,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AACnD,eAAO,MAAM,WAAW,+CAA+B,CAAC;AACxD,eAAO,MAAM,WAAW,kBAAqD,CAAC;AAE9E,eAAO,MAAQ,SAAS,+BAAiB,CAAC;AAE1C;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,QAAS,YAAY,aAAa,MAAM,KAAG,EAA0C,CAAC;AAE1G;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,QAAS,YAAY,aAAa,MAAM,KAAG,MAA+C,CAAC;AAE/G;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,EAAE,CAIxD;AACD;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,EAAE,CAIxD;AAED,eAAO,MAAM,oBAAoB,kBAAe,CAAC;AAEjD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,YAAY,EACxB,KAAK,GAAE,MAAM,GAAG,MAAU,EAC1B,UAAU,SAAK,EACf,cAAc,SAAK,GAClB,MAAM,CAIR;AAED;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,QAAS,YAAY,YAAY,YAAY,KAAG,SAEnE,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,YAAY,EACtB,KAAK,GAAE,MAAM,GAAG,MAAU,EAC1B,QAAQ,SAAK,GACZ,MAAM,CAGR;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,GAAG,EAAE,CAE9E;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,8BAA8B,gBAC5B,UAAU,aACZ,UAAU,kBACL,UAAU,kBACV,UAAU,KACzB,MAGF,CAAC;AACF;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B,gBAC1B,UAAU,aACZ,UAAU,kBACL,UAAU,kBACV,UAAU,KACzB,MAaF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,gBACL,UAAU,aACZ,UAAU,kBACL,UAAU,kBACV,UAAU,KACzB,MAEF,CAAC;AACF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,QAAS,MAAM,OAAO,MAAM,QAAQ,MAAM,eAYvE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,oBAEpC;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAQ1F;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,aAAa,EAAE,SAAS,CAAC;IACzB,YAAY,EAAE,SAAS,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,gBAAgB,CAAC,EAAE,SAAS,CAAC;CAC9B,CAAC;AAEF,wBAAgB,aAAa,WAE5B"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../src/utils/common.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,YAAY,CAAC;AACjC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,EAAiC,MAAM,kBAAkB,CAAC;AAG9F,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AACnD,eAAO,MAAM,WAAW,+CAA+B,CAAC;AACxD,eAAO,MAAM,WAAW,kBAAqD,CAAC;AAE9E,eAAO,MAAQ,SAAS,+BAAiB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,CAAC;AAEhB;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,QAAS,YAAY,aAAa,MAAM,KAAG,EAA0C,CAAC;AAE1G;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,QAAS,YAAY,aAAa,MAAM,KAAG,MAA+C,CAAC;AAE/G;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,EAAE,CAIxD;AACD;;;;;;GAMG;AACH,wBAAgB,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,EAAE,CAIxD;AAED,eAAO,MAAM,oBAAoB,kBAAe,CAAC;AAEjD;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,UAAU,EAAE,YAAY,EACxB,KAAK,GAAE,MAAM,GAAG,MAAU,EAC1B,UAAU,SAAK,EACf,cAAc,SAAK,GAClB,MAAM,CAIR;AAED;;;;;;GAMG;AACH,eAAO,MAAM,OAAO,QAAS,YAAY,YAAY,YAAY,KAAG,SAEnE,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,YAAY,EACtB,KAAK,GAAE,MAAM,GAAG,MAAU,EAC1B,QAAQ,SAAK,GACZ,MAAM,CAGR;AAED;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,GAAG,EAAE,CAE9E;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,8BAA8B,gBAC5B,UAAU,aACZ,UAAU,kBACL,UAAU,kBACV,UAAU,KACzB,MAGF,CAAC;AACF;;;;;;;;GAQG;AACH,eAAO,MAAM,4BAA4B,gBAC1B,UAAU,aACZ,UAAU,kBACL,UAAU,kBACV,UAAU,KACzB,MAaF,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,OAAO,gBACL,UAAU,aACZ,UAAU,kBACL,UAAU,kBACV,UAAU,KACzB,MAEF,CAAC;AACF;;;;;;;GAOG;AACH,eAAO,MAAM,iBAAiB,QAAS,MAAM,OAAO,MAAM,QAAQ,MAAM,eAYvE,CAAC;AAEF;;;GAGG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,oBAEpC;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAQ1F;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,aAAa,EAAE,SAAS,CAAC;IACzB,YAAY,EAAE,SAAS,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,gBAAgB,CAAC,EAAE,SAAS,CAAC;CAC9B,CAAC;AAEF,wBAAgB,aAAa,WAE5B"}
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.44",
4
+ "version": "4.1.45-beta.1",
5
5
  "license": "AGPL-3.0",
6
6
  "homepage": "https://docs.across.to/reference/sdk",
7
7
  "files": [
@@ -42,6 +42,7 @@ import {
42
42
  chainIsEvm,
43
43
  isValidEvmAddress,
44
44
  duplicateEvent,
45
+ invalidOutputToken,
45
46
  } from "../../utils";
46
47
  import winston from "winston";
47
48
  import {
@@ -358,6 +359,7 @@ export class BundleDataClient {
358
359
  // @dev This helper function should probably be moved to the InventoryClient
359
360
  async getApproximateRefundsForBlockRange(chainIds: number[], blockRanges: number[][]): Promise<CombinedRefunds> {
360
361
  const refundsForChain: CombinedRefunds = {};
362
+ const bundleEndBlockForMainnet = blockRanges[0][1];
361
363
  for (const chainId of chainIds) {
362
364
  if (this.spokePoolClients[chainId] === undefined) {
363
365
  continue;
@@ -372,7 +374,8 @@ export class BundleDataClient {
372
374
  if (
373
375
  fill.blockNumber < blockRanges[chainIndex][0] ||
374
376
  fill.blockNumber > blockRanges[chainIndex][1] ||
375
- isZeroValueFillOrSlowFillRequest(fill)
377
+ isZeroValueFillOrSlowFillRequest(fill) ||
378
+ invalidOutputToken(fill)
376
379
  ) {
377
380
  return false;
378
381
  }
@@ -399,17 +402,19 @@ export class BundleDataClient {
399
402
  _fill,
400
403
  spokeClient.spokePool.provider,
401
404
  matchingDeposit,
402
- this.clients.hubPoolClient
405
+ this.clients.hubPoolClient,
406
+ bundleEndBlockForMainnet
403
407
  );
404
408
  if (!isDefined(fill)) {
405
409
  return;
406
410
  }
407
411
  const { chainToSendRefundTo, repaymentToken } = getRefundInformationFromFill(
408
- fill,
412
+ {
413
+ ...fill,
414
+ fromLiteChain: matchingDeposit.fromLiteChain,
415
+ },
409
416
  this.clients.hubPoolClient,
410
- blockRanges,
411
- this.chainIdListForBundleEvaluationBlockNumbers,
412
- matchingDeposit.fromLiteChain
417
+ bundleEndBlockForMainnet
413
418
  );
414
419
  // Assume that lp fees are 0 for the sake of speed. In the future we could batch compute
415
420
  // these or make hardcoded assumptions based on the origin-repayment chain direction. This might result
@@ -672,6 +677,7 @@ export class BundleDataClient {
672
677
  }
673
678
 
674
679
  const chainIds = this.clients.configStoreClient.getChainIdIndicesForBlock(blockRangesForChains[0][0]);
680
+ const bundleEndBlockForMainnet = blockRangesForChains[0][1];
675
681
 
676
682
  if (blockRangesForChains.length > chainIds.length) {
677
683
  throw new Error(
@@ -708,7 +714,7 @@ export class BundleDataClient {
708
714
  deposit.originChainId,
709
715
  deposit.outputToken,
710
716
  deposit.destinationChainId,
711
- deposit.quoteBlockNumber
717
+ bundleEndBlockForMainnet
712
718
  ) &&
713
719
  // Cannot slow fill from or to a lite chain.
714
720
  !deposit.fromLiteChain &&
@@ -885,7 +891,10 @@ export class BundleDataClient {
885
891
  // tokens to the filler. We can't remove non-empty message deposit here in case there is a slow fill
886
892
  // request for the deposit, we'd want to see the fill took place.
887
893
  .filter(
888
- (fill) => fill.blockNumber <= destinationChainBlockRange[1] && !isZeroValueFillOrSlowFillRequest(fill)
894
+ (fill) =>
895
+ fill.blockNumber <= destinationChainBlockRange[1] &&
896
+ !isZeroValueFillOrSlowFillRequest(fill) &&
897
+ !invalidOutputToken(fill)
889
898
  ),
890
899
  async (fill) => {
891
900
  fillCounter++;
@@ -904,7 +913,8 @@ export class BundleDataClient {
904
913
  fill,
905
914
  destinationClient.spokePool.provider,
906
915
  deposits[0],
907
- this.clients.hubPoolClient
916
+ this.clients.hubPoolClient,
917
+ bundleEndBlockForMainnet
908
918
  );
909
919
  if (!isDefined(fillToRefund)) {
910
920
  bundleUnrepayableFillsV3.push(fill);
@@ -1008,7 +1018,8 @@ export class BundleDataClient {
1008
1018
  fill,
1009
1019
  destinationClient.spokePool.provider,
1010
1020
  matchedDeposit,
1011
- this.clients.hubPoolClient
1021
+ this.clients.hubPoolClient,
1022
+ bundleEndBlockForMainnet
1012
1023
  );
1013
1024
  if (!isDefined(fillToRefund)) {
1014
1025
  bundleUnrepayableFillsV3.push(fill);
@@ -1054,7 +1065,9 @@ export class BundleDataClient {
1054
1065
  .getSlowFillRequestsForOriginChain(originChainId)
1055
1066
  .filter(
1056
1067
  (request) =>
1057
- request.blockNumber <= destinationChainBlockRange[1] && !isZeroValueFillOrSlowFillRequest(request)
1068
+ request.blockNumber <= destinationChainBlockRange[1] &&
1069
+ !isZeroValueFillOrSlowFillRequest(request) &&
1070
+ !invalidOutputToken(request)
1058
1071
  ),
1059
1072
  async (slowFillRequest: SlowFillRequestWithBlock) => {
1060
1073
  const relayDataHash = getRelayEventKey(slowFillRequest);
@@ -1186,7 +1199,8 @@ export class BundleDataClient {
1186
1199
  fill,
1187
1200
  destinationClient.spokePool.provider,
1188
1201
  deposits[0],
1189
- this.clients.hubPoolClient
1202
+ this.clients.hubPoolClient,
1203
+ bundleEndBlockForMainnet
1190
1204
  );
1191
1205
  if (!isDefined(fillToRefund)) {
1192
1206
  bundleUnrepayableFillsV3.push(fill);
@@ -1242,7 +1256,8 @@ export class BundleDataClient {
1242
1256
  prefill,
1243
1257
  destinationClient.spokePool.provider,
1244
1258
  deposit,
1245
- this.clients.hubPoolClient
1259
+ this.clients.hubPoolClient,
1260
+ bundleEndBlockForMainnet
1246
1261
  );
1247
1262
  if (!isDefined(verifiedFill)) {
1248
1263
  bundleUnrepayableFillsV3.push(prefill);
@@ -1376,11 +1391,12 @@ export class BundleDataClient {
1376
1391
  const matchedDeposit = deposits[0];
1377
1392
  assert(isDefined(matchedDeposit), "Deposit should exist in relay hash dictionary.");
1378
1393
  const { chainToSendRefundTo: paymentChainId } = getRefundInformationFromFill(
1379
- fill,
1394
+ {
1395
+ ...fill,
1396
+ fromLiteChain: matchedDeposit.fromLiteChain,
1397
+ },
1380
1398
  this.clients.hubPoolClient,
1381
- blockRangesForChains,
1382
- chainIds,
1383
- matchedDeposit.fromLiteChain
1399
+ bundleEndBlockForMainnet
1384
1400
  );
1385
1401
  return {
1386
1402
  ...fill,
@@ -1422,11 +1438,12 @@ export class BundleDataClient {
1422
1438
  const associatedDeposit = deposits[0];
1423
1439
  assert(isDefined(associatedDeposit), "Deposit should exist in relay hash dictionary.");
1424
1440
  const { chainToSendRefundTo, repaymentToken } = getRefundInformationFromFill(
1425
- fill,
1441
+ {
1442
+ ...fill,
1443
+ fromLiteChain: associatedDeposit.fromLiteChain,
1444
+ },
1426
1445
  this.clients.hubPoolClient,
1427
- blockRangesForChains,
1428
- chainIds,
1429
- associatedDeposit.fromLiteChain
1446
+ bundleEndBlockForMainnet
1430
1447
  );
1431
1448
  updateBundleFillsV3(bundleFillsV3, fill, realizedLpFeePct, chainToSendRefundTo, repaymentToken, fill.relayer);
1432
1449
  });
@@ -146,6 +146,13 @@ export function _buildPoolRebalanceRoot(
146
146
  const repaymentChainId = Number(_repaymentChainId);
147
147
  Object.entries(fillsForChain).forEach(
148
148
  ([l2TokenAddress, { realizedLpFees: totalRealizedLpFee, totalRefundAmount }]) => {
149
+ // If the repayment token and repayment chain ID do not map to a PoolRebalanceRoute graph, then
150
+ // there are no relevant L1 running balances.
151
+ if (
152
+ !clients.hubPoolClient.l2TokenHasPoolRebalanceRoute(l2TokenAddress, repaymentChainId, mainnetBundleEndBlock)
153
+ ) {
154
+ return;
155
+ }
149
156
  const l1TokenCounterpart = clients.hubPoolClient.getL1TokenForL2TokenAtBlock(
150
157
  l2TokenAddress,
151
158
  repaymentChainId,
@@ -215,7 +222,24 @@ export function _buildPoolRebalanceRoot(
215
222
  Object.entries(bundleV3Deposits).forEach(([, depositsForChain]) => {
216
223
  Object.entries(depositsForChain).forEach(([, deposits]) => {
217
224
  deposits.forEach((deposit) => {
218
- updateRunningBalanceForDeposit(runningBalances, clients.hubPoolClient, deposit, deposit.inputAmount.mul(-1));
225
+ // If the repayment token and repayment chain ID do not map to a PoolRebalanceRoute graph, then
226
+ // there are no relevant L1 running balances.
227
+ if (
228
+ !clients.hubPoolClient.l2TokenHasPoolRebalanceRoute(
229
+ deposit.inputToken,
230
+ deposit.originChainId,
231
+ mainnetBundleEndBlock
232
+ )
233
+ ) {
234
+ return;
235
+ }
236
+ updateRunningBalanceForDeposit(
237
+ runningBalances,
238
+ clients.hubPoolClient,
239
+ deposit,
240
+ deposit.inputAmount.mul(-1),
241
+ mainnetBundleEndBlock
242
+ );
219
243
  });
220
244
  });
221
245
  });
@@ -229,6 +253,17 @@ export function _buildPoolRebalanceRoot(
229
253
  const originChainId = Number(_originChainId);
230
254
  Object.entries(depositsForChain).forEach(([inputToken, deposits]) => {
231
255
  deposits.forEach((deposit) => {
256
+ // If the repayment token and repayment chain ID do not map to a PoolRebalanceRoute graph, then
257
+ // there are no relevant L1 running balances.
258
+ if (
259
+ !clients.hubPoolClient.l2TokenHasPoolRebalanceRoute(
260
+ deposit.inputToken,
261
+ deposit.originChainId,
262
+ mainnetBundleEndBlock
263
+ )
264
+ ) {
265
+ return;
266
+ }
232
267
  const l1TokenCounterpart = clients.hubPoolClient.getL1TokenForL2TokenAtBlock(
233
268
  inputToken,
234
269
  originChainId,
@@ -1,124 +1,120 @@
1
1
  import _ from "lodash";
2
+ import assert from "assert";
2
3
  import { providers } from "ethers";
3
- import { Deposit, DepositWithBlock, Fill, FillWithBlock } from "../../../interfaces";
4
- import { getBlockRangeForChain, isSlowFill, isValidEvmAddress, isDefined, chainIsEvm } from "../../../utils";
4
+ import { DepositWithBlock, Fill, FillWithBlock } from "../../../interfaces";
5
+ import { isSlowFill, isValidEvmAddress, isDefined, chainIsEvm } from "../../../utils";
5
6
  import { HubPoolClient } from "../../HubPoolClient";
6
7
 
8
+ /**
9
+ * @notice FillRepaymentInformation is a fill with additional properties required to determine where it can
10
+ * be repaid.
11
+ */
12
+ type FillRepaymentInformation = Fill & { fromLiteChain: boolean };
13
+
14
+ /**
15
+ * @notice Return repayment chain and repayment token for a fill, but does not verify if the returned
16
+ * repayment information is valid for the desired repayment address.
17
+ * @dev The passed in fill should be verified first via verifyFillRepayment().
18
+ * @param fill The fill to get the repayment information for.
19
+ * @return The chain to send the refund to and the token to use for the refund.
20
+ */
7
21
  export function getRefundInformationFromFill(
8
- fill: Fill,
22
+ relayData: FillRepaymentInformation,
9
23
  hubPoolClient: HubPoolClient,
10
- blockRangesForChains: number[][],
11
- chainIdListForBundleEvaluationBlockNumbers: number[],
12
- fromLiteChain: boolean
24
+ bundleEndBlockForMainnet: number
13
25
  ): {
14
26
  chainToSendRefundTo: number;
15
27
  repaymentToken: string;
16
28
  } {
17
- // Handle slow relay where repaymentChainId = 0. Slow relays always pay recipient on destination chain.
18
- // So, save the slow fill under the destination chain, and save the fast fill under its repayment chain.
19
- let chainToSendRefundTo = isSlowFill(fill) ? fill.destinationChainId : fill.repaymentChainId;
20
- // If the fill is for a deposit originating from the lite chain, the repayment chain is the origin chain
21
- // regardless of whether it is a slow or fast fill (we ignore slow fills but this is for posterity).
22
- // @note fill.repaymentChainId should already be set to originChainId but reset it to be safe.
23
- if (fromLiteChain) {
24
- chainToSendRefundTo = fill.originChainId;
29
+ const chainToSendRefundTo = _getRepaymentChainId(relayData, hubPoolClient, bundleEndBlockForMainnet);
30
+ if (chainToSendRefundTo === relayData.originChainId) {
31
+ return {
32
+ chainToSendRefundTo,
33
+ repaymentToken: relayData.inputToken,
34
+ };
25
35
  }
26
36
 
27
- // Save fill data and associate with repayment chain and L2 token refund should be denominated in.
28
- const endBlockForMainnet = getBlockRangeForChain(
29
- blockRangesForChains,
30
- hubPoolClient.chainId,
31
- chainIdListForBundleEvaluationBlockNumbers
32
- )[1];
33
-
37
+ // Now figure out the equivalent L2 token for the repayment token. If the inputToken doesn't have a
38
+ // PoolRebalanceRoute, then the repayment chain would have been the originChainId after the getRepaymentChainId()
39
+ // call and we would have returned already, so the following call should always succeed.
34
40
  const l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(
35
- fill.inputToken,
36
- fill.originChainId,
37
- endBlockForMainnet
41
+ relayData.inputToken,
42
+ relayData.originChainId,
43
+ bundleEndBlockForMainnet
38
44
  );
39
45
 
40
46
  const repaymentToken = hubPoolClient.getL2TokenForL1TokenAtBlock(
41
47
  l1TokenCounterpart,
42
48
  chainToSendRefundTo,
43
- endBlockForMainnet
49
+ bundleEndBlockForMainnet
44
50
  );
45
51
  return {
46
52
  chainToSendRefundTo,
47
53
  repaymentToken,
48
54
  };
49
55
  }
50
-
51
- export function getRepaymentChainId(fill: Fill, matchedDeposit: Deposit): number {
52
- // Lite chain deposits force repayment on origin chain.
53
- return matchedDeposit.fromLiteChain ? matchedDeposit.originChainId : fill.repaymentChainId;
54
- }
55
-
56
- export function forceDestinationRepayment(
57
- repaymentChainId: number,
58
- matchedDeposit: Deposit & { quoteBlockNumber: number },
59
- hubPoolClient: HubPoolClient
60
- ): boolean {
61
- if (!matchedDeposit.fromLiteChain) {
62
- try {
63
- const l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(
64
- matchedDeposit.inputToken,
65
- matchedDeposit.originChainId,
66
- matchedDeposit.quoteBlockNumber
67
- );
68
- hubPoolClient.getL2TokenForL1TokenAtBlock(l1TokenCounterpart, repaymentChainId, matchedDeposit.quoteBlockNumber);
69
- // Repayment token could be found, this is a valid repayment chain.
70
- return false;
71
- } catch {
72
- // Repayment token doesn't exist on repayment chain via PoolRebalanceRoutes, impossible to repay filler there.
73
- return true;
74
- }
75
- } else {
76
- return false;
77
- }
78
- }
79
-
80
- // Verify that a fill sent to an EVM chain has a 20 byte address. If the fill does not, then attempt
81
- // to repay the `msg.sender` of the relay transaction. Otherwise, return undefined.
56
+ /**
57
+ * @notice Verifies that the fill can be repaid. If the repayment address is not
58
+ * valid for the requested repayment chain, then this function will attempt to change the fill's repayment chain
59
+ * to the destination chain and its repayment address to the msg.sender and if this is possible,
60
+ * return the fill. Otherwise, return undefined.
61
+ * @param _fill Fill with a requested repayment chain and address
62
+ * @return Fill with the applied repayment chain (depends on the validity of the requested repayment address)
63
+ * and applied repayment address, or undefined if the applied repayment address is not valid for the
64
+ * applied repayment chain.
65
+ */
82
66
  export async function verifyFillRepayment(
83
67
  _fill: FillWithBlock,
84
68
  destinationChainProvider: providers.Provider,
85
69
  matchedDeposit: DepositWithBlock,
86
- hubPoolClient: HubPoolClient
70
+ hubPoolClient: HubPoolClient,
71
+ bundleEndBlockForMainnet: number
87
72
  ): Promise<FillWithBlock | undefined> {
88
- const fill = _.cloneDeep(_fill);
73
+ const fill = {
74
+ ..._.cloneDeep(_fill),
75
+ fromLiteChain: matchedDeposit.fromLiteChain,
76
+ };
89
77
 
90
78
  // Slow fills don't result in repayments so they're always valid.
91
79
  if (isSlowFill(fill)) {
92
80
  return fill;
93
81
  }
94
82
 
95
- let repaymentChainId = getRepaymentChainId(fill, matchedDeposit);
96
-
97
- // If repayment chain doesn't have a Pool Rebalance Route for the input token, then change the repayment
98
- // chain to the destination chain.
99
- if (forceDestinationRepayment(repaymentChainId, matchedDeposit, hubPoolClient)) {
100
- repaymentChainId = fill.destinationChainId;
101
- }
83
+ let repaymentChainId = _getRepaymentChainId(fill, hubPoolClient, bundleEndBlockForMainnet);
102
84
 
103
- if (!isValidEvmAddress(fill.relayer)) {
85
+ // Repayments will always go to the fill.relayer address so check if its a valid EVM address. If its not, attempt
86
+ // to change it to the msg.sender of the FilledRelay.
87
+ if (_repaymentAddressNeedsToBeOverwritten(fill)) {
104
88
  // TODO: Handle case where fill was sent on non-EVM chain, in which case the following call would fail
105
89
  // or return something unexpected. We'd want to return undefined here.
90
+
91
+ // @todo: If chainIsEvm:
106
92
  const fillTransaction = await destinationChainProvider.getTransaction(fill.transactionHash);
107
93
  const destinationRelayer = fillTransaction?.from;
108
94
  // Repayment chain is still an EVM chain, but the msg.sender is a bytes32 address, so the fill is invalid.
109
95
  if (!isDefined(destinationRelayer) || !isValidEvmAddress(destinationRelayer)) {
110
96
  return undefined;
111
97
  }
112
- if (!matchedDeposit.fromLiteChain) {
98
+ // If we can switch the repayment chain to the destination chain, then do so. We should only switch if the
99
+ // destination chain has a valid repayment token that is equivalent to the deposited input token. This would
100
+ // also be the same mapping as the repayment token on the repayment chain.
101
+ if (
102
+ !matchedDeposit.fromLiteChain &&
103
+ hubPoolClient.areTokensEquivalent(fill.inputToken, fill.originChainId, fill.outputToken, fill.destinationChainId)
104
+ ) {
113
105
  repaymentChainId = fill.destinationChainId;
114
- } else {
115
- // We can't switch repayment chain for a lite chain deposit so just check whether the repayment chain,
116
- // which should be the origin chain, is an EVM chain.
106
+ }
107
+ // If we can't switch the chain, then we need to verify that the msg.sender is a valid address on the repayment chain.
108
+ // Because we already checked that the `destinationRelayer` was a valid EVM address above, we only need to check
109
+ // that the repayment chain is an EVM chain.
110
+ else {
117
111
  if (!chainIsEvm(repaymentChainId)) {
118
112
  return undefined;
119
113
  }
120
114
  }
121
115
  fill.relayer = destinationRelayer;
116
+
117
+ // @todo: If chainIsSvm:
122
118
  }
123
119
 
124
120
  // Repayment address is now valid and repayment chain is either origin chain for lite chain or the destination
@@ -126,3 +122,69 @@ export async function verifyFillRepayment(
126
122
  fill.repaymentChainId = repaymentChainId;
127
123
  return fill;
128
124
  }
125
+
126
+ function _getRepaymentChainId(
127
+ relayData: FillRepaymentInformation,
128
+ hubPoolClient: HubPoolClient,
129
+ bundleEndBlockForMainnet: number
130
+ ): number {
131
+ if (relayData.fromLiteChain) {
132
+ assert(!isSlowFill(relayData), "getRepaymentChainId: fromLiteChain and slow fill are mutually exclusive");
133
+ return relayData.originChainId;
134
+ }
135
+
136
+ // Handle slow relay where FilledRelay.repaymentChainId = 0, as hardcoded in the SpokePool contract.
137
+ // Slow relays always pay recipient on destination chain.
138
+ if (isSlowFill(relayData)) {
139
+ return relayData.destinationChainId;
140
+ }
141
+
142
+ // Repayment chain is valid if the input token and repayment chain are mapped to the same PoolRebalanceRoute.
143
+ const repaymentTokenIsValid = _repaymentChainTokenIsValid(relayData, hubPoolClient, bundleEndBlockForMainnet);
144
+ if (repaymentTokenIsValid) {
145
+ return relayData.repaymentChainId;
146
+ }
147
+
148
+ // If repayment chain is not valid, default to origin chain since we always know the input token can be refunded.
149
+ return relayData.originChainId;
150
+ }
151
+
152
+ function _repaymentChainTokenIsValid(
153
+ relayData: FillRepaymentInformation,
154
+ hubPoolClient: HubPoolClient,
155
+ bundleEndBlockForMainnet: number
156
+ ): boolean {
157
+ if (
158
+ !hubPoolClient.l2TokenHasPoolRebalanceRoute(relayData.inputToken, relayData.originChainId, bundleEndBlockForMainnet)
159
+ ) {
160
+ return false;
161
+ }
162
+ const l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(
163
+ relayData.inputToken,
164
+ relayData.originChainId,
165
+ bundleEndBlockForMainnet
166
+ );
167
+ if (
168
+ !hubPoolClient.l2TokenEnabledForL1TokenAtBlock(
169
+ l1TokenCounterpart,
170
+ relayData.repaymentChainId,
171
+ bundleEndBlockForMainnet
172
+ )
173
+ ) {
174
+ return false;
175
+ }
176
+ return true;
177
+ }
178
+
179
+ function _repaymentAddressNeedsToBeOverwritten(fill: Fill): boolean {
180
+ // Slow fills don't result in repayments so they're always valid.
181
+ if (isSlowFill(fill)) {
182
+ return false;
183
+ }
184
+
185
+ // @todo add Solana logic here:
186
+ // - i.e. If chainIsSvm && !isValidSvmAddress(fill.relayer) then return false
187
+ // If chainIsEvm && !isValidEvmAddress(fill.relayer) then return false
188
+ // If chainIsEvm && isValidEvmAddress(fill.relayer) then return true
189
+ return !isValidEvmAddress(fill.relayer);
190
+ }