@across-protocol/sdk 3.4.18 → 3.4.20

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 (52) hide show
  1. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js +7 -6
  2. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  3. package/dist/cjs/clients/BundleDataClient/utils/SuperstructUtils.d.ts +2 -2
  4. package/dist/cjs/clients/mocks/MockSpokePoolClient.d.ts +2 -1
  5. package/dist/cjs/clients/mocks/MockSpokePoolClient.js +11 -0
  6. package/dist/cjs/clients/mocks/MockSpokePoolClient.js.map +1 -1
  7. package/dist/cjs/utils/AddressUtils.d.ts +1 -0
  8. package/dist/cjs/utils/AddressUtils.js +6 -1
  9. package/dist/cjs/utils/AddressUtils.js.map +1 -1
  10. package/dist/cjs/utils/EventUtils.js +21 -0
  11. package/dist/cjs/utils/EventUtils.js.map +1 -1
  12. package/dist/cjs/utils/SpokeUtils.d.ts +1 -0
  13. package/dist/cjs/utils/SpokeUtils.js +15 -8
  14. package/dist/cjs/utils/SpokeUtils.js.map +1 -1
  15. package/dist/cjs/utils/common.d.ts +1 -0
  16. package/dist/cjs/utils/common.js +2 -1
  17. package/dist/cjs/utils/common.js.map +1 -1
  18. package/dist/esm/clients/BundleDataClient/BundleDataClient.js +7 -6
  19. package/dist/esm/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  20. package/dist/esm/clients/BundleDataClient/utils/SuperstructUtils.d.ts +2 -2
  21. package/dist/esm/clients/mocks/MockSpokePoolClient.d.ts +2 -1
  22. package/dist/esm/clients/mocks/MockSpokePoolClient.js +11 -0
  23. package/dist/esm/clients/mocks/MockSpokePoolClient.js.map +1 -1
  24. package/dist/esm/utils/AddressUtils.d.ts +1 -0
  25. package/dist/esm/utils/AddressUtils.js +9 -0
  26. package/dist/esm/utils/AddressUtils.js.map +1 -1
  27. package/dist/esm/utils/EventUtils.js +29 -1
  28. package/dist/esm/utils/EventUtils.js.map +1 -1
  29. package/dist/esm/utils/SpokeUtils.d.ts +1 -0
  30. package/dist/esm/utils/SpokeUtils.js +14 -8
  31. package/dist/esm/utils/SpokeUtils.js.map +1 -1
  32. package/dist/esm/utils/common.d.ts +1 -0
  33. package/dist/esm/utils/common.js +1 -0
  34. package/dist/esm/utils/common.js.map +1 -1
  35. package/dist/types/clients/BundleDataClient/BundleDataClient.d.ts.map +1 -1
  36. package/dist/types/clients/BundleDataClient/utils/SuperstructUtils.d.ts +2 -2
  37. package/dist/types/clients/mocks/MockSpokePoolClient.d.ts +2 -1
  38. package/dist/types/clients/mocks/MockSpokePoolClient.d.ts.map +1 -1
  39. package/dist/types/utils/AddressUtils.d.ts +1 -0
  40. package/dist/types/utils/AddressUtils.d.ts.map +1 -1
  41. package/dist/types/utils/EventUtils.d.ts.map +1 -1
  42. package/dist/types/utils/SpokeUtils.d.ts +1 -0
  43. package/dist/types/utils/SpokeUtils.d.ts.map +1 -1
  44. package/dist/types/utils/common.d.ts +1 -0
  45. package/dist/types/utils/common.d.ts.map +1 -1
  46. package/package.json +1 -1
  47. package/src/clients/BundleDataClient/BundleDataClient.ts +4 -1
  48. package/src/clients/mocks/MockSpokePoolClient.ts +14 -0
  49. package/src/utils/AddressUtils.ts +10 -0
  50. package/src/utils/EventUtils.ts +29 -1
  51. package/src/utils/SpokeUtils.ts +21 -7
  52. package/src/utils/common.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"file":"MockSpokePoolClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/mocks/MockSpokePoolClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EACL,GAAG,EACH,gBAAgB,EAEhB,+BAA+B,EAC/B,wBAAwB,EAExB,aAAa,EACb,YAAY,EACZ,OAAO,EACR,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAgD,SAAS,EAAwB,MAAM,aAAa,CAAC;AAC5G,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAmB,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAIrE,qBAAa,mBAAoB,SAAQ,eAAe;IAC/C,YAAY,EAAE,YAAY,CAAC;IAClC,OAAO,CAAC,gCAAgC,CAA8B;IAE/D,gBAAgB,EAAE,SAAS,EAAE,CAAM;IACnC,gBAAgB,YAAU;gBAG/B,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EACvB,IAAI,GAAE;QAAE,aAAa,EAAE,aAAa,GAAG,IAAI,CAAA;KAA4B;IAOzE,oBAAoB,CAAC,WAAW,CAAC,EAAE,uBAAuB,GAAG,IAAI;IAIjE,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIjE,6BAA6B,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM;IAIhE,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAI/C,aAAa,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,IAAI;IAc7C,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAI1D,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAqC1D,SAAgB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAErD;IAEF,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,GAAG;IA8CzC,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,GAAG;IAkDrC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG;IAavC,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,GAAG;IAmBzD,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,GAAG;IAiB/C,wBAAwB,CAAC,MAAM,EAAE,+BAA+B,GAAG,GAAG;IA2BtE,cAAc,CACZ,WAAW,EAAE,MAAM,EACnB,kBAAkB,EAAE,MAAM,EAC1B,OAAO,EAAE,OAAO,EAChB,SAAS,GAAE,cAAmB,GAC7B,GAAG;CAcP"}
1
+ {"version":3,"file":"MockSpokePoolClient.d.ts","sourceRoot":"","sources":["../../../../src/clients/mocks/MockSpokePoolClient.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EACL,GAAG,EACH,gBAAgB,EAEhB,+BAA+B,EAC/B,wBAAwB,EAExB,aAAa,EACb,YAAY,EACZ,OAAO,EACP,aAAa,EACd,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAgD,SAAS,EAAwB,MAAM,aAAa,CAAC;AAC5G,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,cAAc,EAAmB,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAIrE,qBAAa,mBAAoB,SAAQ,eAAe;IAC/C,YAAY,EAAE,YAAY,CAAC;IAClC,OAAO,CAAC,gCAAgC,CAA8B;IAE/D,gBAAgB,EAAE,SAAS,EAAE,CAAM;IACnC,gBAAgB,YAAU;gBAG/B,MAAM,EAAE,OAAO,CAAC,MAAM,EACtB,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EACvB,IAAI,GAAE;QAAE,aAAa,EAAE,aAAa,GAAG,IAAI,CAAA;KAA4B;IAOzE,oBAAoB,CAAC,WAAW,CAAC,EAAE,uBAAuB,GAAG,IAAI;IAIjE,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIjE,6BAA6B,CAAC,OAAO,EAAE,gBAAgB,GAAG,MAAM;IAIhE,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAI/C,aAAa,CAAC,WAAW,EAAE,SAAS,EAAE,GAAG,IAAI;IAc7C,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAI1D,OAAO,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAqC1D,SAAgB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAErD;IAEF,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,GAAG;IA8CzC,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,GAAG;IAkDrC,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,GAAG;IAavC,gBAAgB,CAAC,aAAa,EAAE,aAAa,GAAG,GAAG;IAanD,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,GAAG;IAmBzD,sBAAsB,CAAC,IAAI,EAAE,YAAY,GAAG,GAAG;IAiB/C,wBAAwB,CAAC,MAAM,EAAE,+BAA+B,GAAG,GAAG;IA2BtE,cAAc,CACZ,WAAW,EAAE,MAAM,EACnB,kBAAkB,EAAE,MAAM,EAC1B,OAAO,EAAE,OAAO,EAChB,SAAS,GAAE,cAAmB,GAC7B,GAAG;CAcP"}
@@ -8,5 +8,6 @@ import { providers } from "ethers";
8
8
  export declare function isContractDeployedToAddress(address: string, provider: providers.Provider): Promise<boolean>;
9
9
  export declare function compareAddresses(addressA: string, addressB: string): 1 | -1 | 0;
10
10
  export declare function compareAddressesSimple(addressA?: string, addressB?: string): boolean;
11
+ export declare function toAddress(hexString: string): string;
11
12
  export declare function isValidEvmAddress(address: string): boolean;
12
13
  //# sourceMappingURL=AddressUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AddressUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/AddressUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAS,MAAM,QAAQ,CAAC;AAG1C;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CASjH;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAY/E;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAKpF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAc1D"}
1
+ {"version":3,"file":"AddressUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/AddressUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAS,MAAM,QAAQ,CAAC;AAG1C;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CASjH;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAY/E;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAKpF;AAMD,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAInD;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAc1D"}
@@ -1 +1 @@
1
- {"version":3,"file":"EventUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/EventUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAQnD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CA2D1F;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,UAAU,UAAW,KAAK,KAAG,GAA0E,CAAC;AAErH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,WAAW,EACnB,YAAY,EAAE,iBAAiB,EAC/B,UAAU,SAAI,GACb,OAAO,CAAC,GAAG,EAAE,CAAC,CAgChB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,SAAS,EACT,OAAO,EACP,gBAAgB,GACjB,EAAE,iBAAiB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAuCxC;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,GAAG,GAAG,aAAa,CAQpE;AAGD,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAE7E;AAID,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAUpF;AAGD,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAE9E;AAID,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAUrF;AAGD,wBAAgB,YAAY,CAAC,CAAC,SAAS,aAAa,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAQ3E;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAEtE"}
1
+ {"version":3,"file":"EventUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/EventUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AACtD,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAwBnD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,CAuE1F;AAED,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,UAAU,UAAW,KAAK,KAAG,GAA0E,CAAC;AAErH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,WAAW,EACnB,YAAY,EAAE,iBAAiB,EAC/B,UAAU,SAAI,GACb,OAAO,CAAC,GAAG,EAAE,CAAC,CAgChB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,SAAS,EACT,OAAO,EACP,gBAAgB,GACjB,EAAE,iBAAiB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAuCxC;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,GAAG,GAAG,aAAa,CAQpE;AAGD,wBAAgB,mBAAmB,CAAC,CAAC,SAAS,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAE7E;AAID,wBAAgB,0BAA0B,CAAC,CAAC,SAAS,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAUpF;AAGD,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAE9E;AAID,wBAAgB,2BAA2B,CAAC,CAAC,SAAS,aAAa,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAUrF;AAGD,wBAAgB,YAAY,CAAC,CAAC,SAAS,aAAa,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,OAAO,CAQ3E;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,MAAM,EAAE,CAEtE"}
@@ -64,5 +64,6 @@ export declare function fillStatusArray(spokePool: Contract, relayData: RelayDat
64
64
  */
65
65
  export declare function findFillBlock(spokePool: Contract, relayData: RelayData, lowBlockNumber: number, highBlockNumber?: number): Promise<number | undefined>;
66
66
  export declare function isZeroAddress(address: string): boolean;
67
+ export declare function getMessageHash(message: string): string;
67
68
  export {};
68
69
  //# sourceMappingURL=SpokeUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SpokeUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/SpokeUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,QAAQ,EAAE,oBAAoB,EAAE,SAAS,EAAwB,MAAM,QAAQ,CAAC;AAEpG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAuB,MAAM,kBAAkB,CAAC;AAIlE,KAAK,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;AAEnC;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,gBAAgB,SAA6B,GAC5C,OAAO,CAAC,oBAAoB,CAAC,CA+B/B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,yBAAyB,CAC7C,eAAe,EAAE,SAAS,EAC1B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC;IACT,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd,CAAC,CAwHD;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAQlG;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,GAAG,MAAM,CAuBzF;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,eAAe,GAAG,MAAM,CAEjF;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAQ/D;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,QAAQ,EACnB,SAAS,EAAE,SAAS,EACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,EAC5B,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,UAAU,CAAC,CAcrB;AAED,wBAAsB,eAAe,CACnC,SAAS,EAAE,QAAQ,EACnB,SAAS,EAAE,SAAS,EAAE,EACtB,QAAQ,GAAE,QAAmB,GAC5B,OAAO,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC,EAAE,CAAC,CA8BrC;AAED;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,QAAQ,EACnB,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,MAAM,EACtB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiD7B;AAGD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD"}
1
+ {"version":3,"file":"SpokeUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/SpokeUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,QAAQ,EAAE,oBAAoB,EAAE,SAAS,EAAwB,MAAM,QAAQ,CAAC;AAEpG,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,OAAO,EAAE,SAAS,EAAuB,MAAM,kBAAkB,CAAC;AAMlE,KAAK,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;AAEnC;;;;;GAKG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,QAAQ,EACnB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,MAAM,EACf,gBAAgB,SAA6B,GAC5C,OAAO,CAAC,oBAAoB,CAAC,CA+B/B;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,yBAAyB,CAC7C,eAAe,EAAE,SAAS,EAC1B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,eAAe,GACzB,OAAO,CAAC;IACT,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;CACd,CAAC,CAwHD;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAQlG;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,GAAG,MAAM,CA+BzF;AAED,wBAAgB,qBAAqB,CAAC,CAAC,EAAE,OAAO,GAAG,IAAI,GAAG,eAAe,GAAG,MAAM,CAEjF;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAQ/D;AAED;;;;;;GAMG;AACH,wBAAsB,eAAe,CACnC,SAAS,EAAE,QAAQ,EACnB,SAAS,EAAE,SAAS,EACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,QAAQ,EAC5B,kBAAkB,CAAC,EAAE,MAAM,GAC1B,OAAO,CAAC,UAAU,CAAC,CAcrB;AAED,wBAAsB,eAAe,CACnC,SAAS,EAAE,QAAQ,EACnB,SAAS,EAAE,SAAS,EAAE,EACtB,QAAQ,GAAE,QAAmB,GAC5B,OAAO,CAAC,CAAC,UAAU,GAAG,SAAS,CAAC,EAAE,CAAC,CA8BrC;AAED;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,SAAS,EAAE,QAAQ,EACnB,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,MAAM,EACtB,eAAe,CAAC,EAAE,MAAM,GACvB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiD7B;AAGD,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtD"}
@@ -4,6 +4,7 @@ import { BigNumber, BigNumberish, BN } from "./BigNumberUtils";
4
4
  export type Decimalish = string | number | Decimal;
5
5
  export declare const AddressZero = "0x0000000000000000000000000000000000000000";
6
6
  export declare const MAX_BIG_INT: ethers.BigNumber;
7
+ export declare const keccak256: typeof ethers.utils.keccak256;
7
8
  /**
8
9
  * toBNWei.
9
10
  *
@@ -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;;;;;;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,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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@across-protocol/sdk",
3
3
  "author": "UMA Team",
4
- "version": "3.4.18",
4
+ "version": "3.4.20",
5
5
  "license": "AGPL-3.0",
6
6
  "homepage": "https://docs.across.to/reference/sdk",
7
7
  "files": [
@@ -139,6 +139,9 @@ function updateBundleExcessSlowFills(
139
139
  }
140
140
 
141
141
  function updateBundleSlowFills(dict: BundleSlowFills, deposit: V3DepositWithBlock & { lpFeePct: BigNumber }): void {
142
+ if (chainIsEvm(deposit.destinationChainId) && !isValidEvmAddress(deposit.recipient)) {
143
+ return;
144
+ }
142
145
  const { destinationChainId, outputToken } = deposit;
143
146
  if (!dict?.[destinationChainId]?.[outputToken]) {
144
147
  assign(dict, [destinationChainId, outputToken], []);
@@ -410,7 +413,7 @@ export class BundleDataClient {
410
413
  async getLatestPoolRebalanceRoot(): Promise<{ root: PoolRebalanceRoot; blockRanges: number[][] }> {
411
414
  const { bundleData, blockRanges } = await this.getLatestProposedBundleData();
412
415
  const hubPoolClient = this.clients.hubPoolClient;
413
- const root = await _buildPoolRebalanceRoot(
416
+ const root = _buildPoolRebalanceRoot(
414
417
  hubPoolClient.latestBlockSearched,
415
418
  blockRanges[0][1],
416
419
  bundleData.bundleDepositsV3,
@@ -13,6 +13,7 @@ import {
13
13
  FillWithBlock,
14
14
  SlowFillLeaf,
15
15
  SpeedUp,
16
+ TokensBridged,
16
17
  } from "../../interfaces";
17
18
  import { toBN, toBNWei, getCurrentTime, randomAddress, BigNumber, bnZero, bnOne, bnMax } from "../../utils";
18
19
  import { SpokePoolClient, SpokePoolUpdate } from "../SpokePoolClient";
@@ -225,6 +226,19 @@ export class MockSpokePoolClient extends SpokePoolClient {
225
226
  });
226
227
  }
227
228
 
229
+ setTokensBridged(tokensBridged: TokensBridged): Log {
230
+ const event = "TokensBridged";
231
+ const topics = [tokensBridged.chainId, tokensBridged.leafId, tokensBridged.l2TokenAddress];
232
+ const args = { ...tokensBridged };
233
+
234
+ return this.eventManager.generateEvent({
235
+ event,
236
+ address: this.spokePool.address,
237
+ topics: topics.map((topic) => topic.toString()),
238
+ args,
239
+ });
240
+ }
241
+
228
242
  requestV3SlowFill(request: SlowFillRequestWithBlock): Log {
229
243
  const event = "RequestedV3SlowFill";
230
244
 
@@ -39,6 +39,16 @@ export function compareAddressesSimple(addressA?: string, addressB?: string): bo
39
39
  return addressA.toLowerCase() === addressB.toLowerCase();
40
40
  }
41
41
 
42
+ // Converts an input (assumed to be) bytes32 string into a bytes20 string.
43
+ // If the input is not a bytes32 but is less than type(uint160).max, then this function
44
+ // will still succeed.
45
+ // Throws an error if the string as an unsigned integer is greater than type(uint160).max.
46
+ export function toAddress(hexString: string): string {
47
+ // rawAddress is the address which is not properly checksummed.
48
+ const rawAddress = utils.hexZeroPad(utils.hexStripZeros(hexString), 20);
49
+ return utils.getAddress(rawAddress);
50
+ }
51
+
42
52
  export function isValidEvmAddress(address: string): boolean {
43
53
  if (utils.isAddress(address)) {
44
54
  return true;
@@ -3,11 +3,27 @@ import { Result } from "@ethersproject/abi";
3
3
  import { Contract, Event, EventFilter } from "ethers";
4
4
  import { Log, SortableEvent } from "../interfaces";
5
5
  import { delay } from "./common";
6
- import { isDefined, toBN, BigNumberish } from "./";
6
+ import { isDefined, toBN, BigNumberish, toAddress } from "./";
7
7
 
8
8
  const maxRetries = 3;
9
9
  const retrySleepTime = 10;
10
10
 
11
+ // Event fields which changed from an `address` to `bytes32` after the SVM contract upgrade.
12
+ const knownExtendedAddressFields = [
13
+ // TokensBridged
14
+ "l2TokenAddress",
15
+ // FundsDeposited/FilledRelay/RequestedSlowFill
16
+ "inputToken",
17
+ "outputToken",
18
+ "depositor",
19
+ "recipient",
20
+ "exclusiveRelayer",
21
+ // FilledRelay
22
+ "relayer",
23
+ // RequestedSpeedUpDeposit
24
+ "updatedRecipient",
25
+ ];
26
+
11
27
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
28
  export function spreadEvent(args: Result | Record<string, unknown>): { [key: string]: any } {
13
29
  const keys = Object.keys(args).filter((key: string) => isNaN(+key)); // Extract non-numeric keys.
@@ -67,6 +83,18 @@ export function spreadEvent(args: Result | Record<string, unknown>): { [key: str
67
83
  returnedObject.depositId = toBN(returnedObject.depositId as BigNumberish);
68
84
  }
69
85
 
86
+ // Truncate all fields which may be bytes32 into a bytes20 string.
87
+ for (const field of knownExtendedAddressFields) {
88
+ if (isDefined(returnedObject[field])) {
89
+ let address = String(returnedObject[field]);
90
+ try {
91
+ address = toAddress(address);
92
+ // eslint-disable-next-line no-empty
93
+ } catch (_) {}
94
+ returnedObject[field] = address;
95
+ }
96
+ }
97
+
70
98
  return returnedObject;
71
99
  }
72
100
 
@@ -5,6 +5,8 @@ import { Deposit, Fill, FillStatus, RelayData, SlowFillRequest } from "../interf
5
5
  import { SpokePoolClient } from "../clients";
6
6
  import { chunk } from "./ArrayUtils";
7
7
  import { BigNumber, toBN, bnOne, bnZero } from "./BigNumberUtils";
8
+ import { keccak256 } from "./common";
9
+ import { isMessageEmpty } from "./DepositUtils";
8
10
  import { isDefined } from "./TypeGuards";
9
11
  import { getNetworkName } from "./NetworkUtils";
10
12
 
@@ -222,26 +224,34 @@ export async function getDepositIdAtBlock(contract: Contract, blockTag: number):
222
224
  * @returns The corresponding RelayData hash.
223
225
  */
224
226
  export function getRelayDataHash(relayData: RelayData, destinationChainId: number): string {
227
+ const _relayData = {
228
+ ...relayData,
229
+ depositor: ethersUtils.hexZeroPad(relayData.depositor, 32),
230
+ recipient: ethersUtils.hexZeroPad(relayData.recipient, 32),
231
+ inputToken: ethersUtils.hexZeroPad(relayData.inputToken, 32),
232
+ outputToken: ethersUtils.hexZeroPad(relayData.outputToken, 32),
233
+ exclusiveRelayer: ethersUtils.hexZeroPad(relayData.exclusiveRelayer, 32),
234
+ };
225
235
  return ethersUtils.keccak256(
226
236
  ethersUtils.defaultAbiCoder.encode(
227
237
  [
228
238
  "tuple(" +
229
- "address depositor," +
230
- "address recipient," +
231
- "address exclusiveRelayer," +
232
- "address inputToken," +
233
- "address outputToken," +
239
+ "bytes32 depositor," +
240
+ "bytes32 recipient," +
241
+ "bytes32 exclusiveRelayer," +
242
+ "bytes32 inputToken," +
243
+ "bytes32 outputToken," +
234
244
  "uint256 inputAmount," +
235
245
  "uint256 outputAmount," +
236
246
  "uint256 originChainId," +
237
- "uint32 depositId," +
247
+ "uint256 depositId," +
238
248
  "uint32 fillDeadline," +
239
249
  "uint32 exclusivityDeadline," +
240
250
  "bytes message" +
241
251
  ")",
242
252
  "uint256 destinationChainId",
243
253
  ],
244
- [relayData, destinationChainId]
254
+ [_relayData, destinationChainId]
245
255
  )
246
256
  );
247
257
  }
@@ -393,3 +403,7 @@ export async function findFillBlock(
393
403
  export function isZeroAddress(address: string): boolean {
394
404
  return address === ZERO_ADDRESS || address === ZERO_BYTES;
395
405
  }
406
+
407
+ export function getMessageHash(message: string): string {
408
+ return isMessageEmpty(message) ? ZERO_BYTES : keccak256(message);
409
+ }
@@ -7,6 +7,8 @@ export type Decimalish = string | number | Decimal;
7
7
  export const AddressZero = ethers.constants.AddressZero;
8
8
  export const MAX_BIG_INT = BigNumber.from(Number.MAX_SAFE_INTEGER.toString());
9
9
 
10
+ export const { keccak256 } = ethers.utils;
11
+
10
12
  /**
11
13
  * toBNWei.
12
14
  *