@across-protocol/sdk 4.1.45 → 4.1.46-beta.0

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 (92) hide show
  1. package/dist/cjs/clients/BundleDataClient/BundleDataClient.d.ts +2 -0
  2. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js +41 -23
  3. package/dist/cjs/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  4. package/dist/cjs/clients/BundleDataClient/utils/DataworkerUtils.js +1 -10
  5. package/dist/cjs/clients/BundleDataClient/utils/DataworkerUtils.js.map +1 -1
  6. package/dist/cjs/clients/BundleDataClient/utils/FillUtils.d.ts +7 -7
  7. package/dist/cjs/clients/BundleDataClient/utils/FillUtils.js +36 -47
  8. package/dist/cjs/clients/BundleDataClient/utils/FillUtils.js.map +1 -1
  9. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts +1 -1
  10. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js +2 -2
  11. package/dist/cjs/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
  12. package/dist/cjs/clients/HubPoolClient.d.ts +2 -6
  13. package/dist/cjs/clients/HubPoolClient.js +15 -37
  14. package/dist/cjs/clients/HubPoolClient.js.map +1 -1
  15. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.d.ts +0 -1
  16. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js +5 -19
  17. package/dist/cjs/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
  18. package/dist/cjs/clients/mocks/MockHubPoolClient.d.ts +1 -3
  19. package/dist/cjs/clients/mocks/MockHubPoolClient.js +1 -19
  20. package/dist/cjs/clients/mocks/MockHubPoolClient.js.map +1 -1
  21. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.d.ts +0 -1
  22. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js +0 -5
  23. package/dist/cjs/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  24. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.d.ts +0 -1
  25. package/dist/cjs/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
  26. package/dist/cjs/utils/DepositUtils.d.ts +0 -1
  27. package/dist/cjs/utils/DepositUtils.js +1 -5
  28. package/dist/cjs/utils/DepositUtils.js.map +1 -1
  29. package/dist/cjs/utils/TokenUtils.js +2 -0
  30. package/dist/cjs/utils/TokenUtils.js.map +1 -1
  31. package/dist/esm/clients/BundleDataClient/BundleDataClient.d.ts +2 -0
  32. package/dist/esm/clients/BundleDataClient/BundleDataClient.js +45 -24
  33. package/dist/esm/clients/BundleDataClient/BundleDataClient.js.map +1 -1
  34. package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.js +1 -16
  35. package/dist/esm/clients/BundleDataClient/utils/DataworkerUtils.js.map +1 -1
  36. package/dist/esm/clients/BundleDataClient/utils/FillUtils.d.ts +7 -28
  37. package/dist/esm/clients/BundleDataClient/utils/FillUtils.js +50 -83
  38. package/dist/esm/clients/BundleDataClient/utils/FillUtils.js.map +1 -1
  39. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts +1 -1
  40. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js +2 -2
  41. package/dist/esm/clients/BundleDataClient/utils/PoolRebalanceUtils.js.map +1 -1
  42. package/dist/esm/clients/HubPoolClient.d.ts +16 -13
  43. package/dist/esm/clients/HubPoolClient.js +34 -49
  44. package/dist/esm/clients/HubPoolClient.js.map +1 -1
  45. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.d.ts +0 -1
  46. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js +14 -28
  47. package/dist/esm/clients/SpokePoolClient/SpokePoolClient.js.map +1 -1
  48. package/dist/esm/clients/mocks/MockHubPoolClient.d.ts +1 -3
  49. package/dist/esm/clients/mocks/MockHubPoolClient.js +1 -19
  50. package/dist/esm/clients/mocks/MockHubPoolClient.js.map +1 -1
  51. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.d.ts +0 -6
  52. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js +0 -10
  53. package/dist/esm/relayFeeCalculator/chain-queries/baseQuery.js.map +1 -1
  54. package/dist/esm/relayFeeCalculator/relayFeeCalculator.d.ts +0 -1
  55. package/dist/esm/relayFeeCalculator/relayFeeCalculator.js.map +1 -1
  56. package/dist/esm/utils/DepositUtils.d.ts +0 -1
  57. package/dist/esm/utils/DepositUtils.js +1 -5
  58. package/dist/esm/utils/DepositUtils.js.map +1 -1
  59. package/dist/esm/utils/TokenUtils.js +2 -0
  60. package/dist/esm/utils/TokenUtils.js.map +1 -1
  61. package/dist/types/clients/BundleDataClient/BundleDataClient.d.ts +2 -0
  62. package/dist/types/clients/BundleDataClient/BundleDataClient.d.ts.map +1 -1
  63. package/dist/types/clients/BundleDataClient/utils/DataworkerUtils.d.ts.map +1 -1
  64. package/dist/types/clients/BundleDataClient/utils/FillUtils.d.ts +7 -28
  65. package/dist/types/clients/BundleDataClient/utils/FillUtils.d.ts.map +1 -1
  66. package/dist/types/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts +1 -1
  67. package/dist/types/clients/BundleDataClient/utils/PoolRebalanceUtils.d.ts.map +1 -1
  68. package/dist/types/clients/HubPoolClient.d.ts +16 -13
  69. package/dist/types/clients/HubPoolClient.d.ts.map +1 -1
  70. package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts +0 -1
  71. package/dist/types/clients/SpokePoolClient/SpokePoolClient.d.ts.map +1 -1
  72. package/dist/types/clients/mocks/MockHubPoolClient.d.ts +1 -3
  73. package/dist/types/clients/mocks/MockHubPoolClient.d.ts.map +1 -1
  74. package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts +0 -6
  75. package/dist/types/relayFeeCalculator/chain-queries/baseQuery.d.ts.map +1 -1
  76. package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts +0 -1
  77. package/dist/types/relayFeeCalculator/relayFeeCalculator.d.ts.map +1 -1
  78. package/dist/types/utils/DepositUtils.d.ts +0 -1
  79. package/dist/types/utils/DepositUtils.d.ts.map +1 -1
  80. package/dist/types/utils/TokenUtils.d.ts.map +1 -1
  81. package/package.json +1 -1
  82. package/src/clients/BundleDataClient/BundleDataClient.ts +58 -38
  83. package/src/clients/BundleDataClient/utils/DataworkerUtils.ts +1 -36
  84. package/src/clients/BundleDataClient/utils/FillUtils.ts +71 -133
  85. package/src/clients/BundleDataClient/utils/PoolRebalanceUtils.ts +2 -3
  86. package/src/clients/HubPoolClient.ts +38 -64
  87. package/src/clients/SpokePoolClient/SpokePoolClient.ts +16 -54
  88. package/src/clients/mocks/MockHubPoolClient.ts +2 -18
  89. package/src/relayFeeCalculator/chain-queries/baseQuery.ts +0 -10
  90. package/src/relayFeeCalculator/relayFeeCalculator.ts +0 -1
  91. package/src/utils/DepositUtils.ts +1 -6
  92. package/src/utils/TokenUtils.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"file":"DataworkerUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/DataworkerUtils.ts"],"names":[],"mappings":"AAAA,0EAA0E;;AAa1E,OAAO,EACL,MAAM,EAEN,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAE5B,oBAAoB,EACpB,8BAA8B,GAC/B,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAE/D,wBAAwB;AACxB,MAAM,UAAU,oBAAoB,CAClC,aAA4B,EAC5B,yBAAoD;IAEpD,IAAM,eAAe,GAIjB,EAAE,CAAC;IACP,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,UAAC,EAAiC;;YAAhC,gBAAgB,QAAA,EAAE,aAAa,QAAA;QACrE,MAAA,eAAe,CAAC,gBAAgB,qCAAhC,eAAe,CAAC,gBAAgB,IAAM,EAAE,EAAC;QACzC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,UAAC,EAA6B;gBAA5B,cAAc,QAAA,EAAI,OAAO,gBAAA;YAC/D,yEAAyE;YACzE,IAAI,OAAO,KAAK,SAAS,EAAE;gBACzB,OAAO;aACR;YACD,sGAAsG;YACtG,IAAM,kBAAkB,gBAAQ,OAAO,CAAE,CAAC;YAC1C,IAAI,eAAe,CAAC,gBAAgB,CAAC,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE;gBACnE,eAAe,CAAC,gBAAgB,CAAC,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;aACxE;iBAAM;gBACL,wFAAwF;gBACxF,uBAAuB;gBACvB,eAAe,CAAC,gBAAgB,CAAC,CAAC,cAAc,CAAC,yBAC5C,eAAe,CAAC,gBAAgB,CAAC,CAAC,cAAc,CAAC,GACjD,kBAAkB,CACtB,CAAC;aACH;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC,UAAC,EAAiC;;YAAhC,aAAa,QAAA,EAAE,gBAAgB,QAAA;QACjF,MAAA,eAAe,CAAC,aAAa,qCAA7B,eAAe,CAAC,aAAa,IAAM,EAAE,EAAC;QACtC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,UAAC,EAA0B;gBAAzB,cAAc,QAAA,EAAE,QAAQ,QAAA;YACjE,QAAQ,CAAC,OAAO,CAAC,UAAC,OAAO;;gBACvB,IAAI,eAAe,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,KAAK,SAAS,EAAE;oBAChE,eAAe,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,aAAK,GAAC,OAAO,CAAC,SAAS,IAAG,OAAO,CAAC,WAAW,KAAE,CAAC;iBAC/F;qBAAM;oBACL,IAAM,oBAAoB,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBAC/F,eAAe,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CACzF,oBAAoB,aAApB,oBAAoB,cAApB,oBAAoB,GAAI,MAAM,CAC/B,CAAC;iBACH;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,gBAAkC,EAClC,aAA4B,EAC5B,iBAAkC,EAClC,yBAAoD,EACpD,qBAA4C;IAE5C,OAAO;QACL,gBAAgB,EAAE,uBAAuB,CAAC,gBAAgB,CAAC;QAC3D,aAAa,EAAE,uBAAuB,CAAC,aAAa,EAAE,OAAO,CAAC;QAC9D,iBAAiB,EAAE,uBAAuB,CAAC,iBAAiB,CAAC;QAC7D,yBAAyB,EAAE,uBAAuB,CAAC,yBAAyB,CAAC;QAC7E,qBAAqB,EAAE,uBAAuB,CAAC,qBAAqB,CAAC;KACtE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,0CAAoD,EACpD,wBAAuD;IAEvD,8EAA8E;IAC9E,+GAA+G;IAC/G,gHAAgH;IAChH,iHAAiH;IACjH,0GAA0G;IAC1G,2GAA2G;IAC3G,4BAA4B;IAC5B,8GAA8G;IAC9G,uGAAuG;IACvG,iHAAiH;IACjH,+GAA+G;IAC/G,sCAAsC;IACtC,OAAO,0CAA0C,CAAC,GAAG,CAAC,UAAC,OAAe,YAAK,OAAA,MAAA,wBAAwB,CAAC,OAAO,CAAC,mCAAI,CAAC,CAAA,EAAA,CAAC,CAAC;AACrH,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,kBAA0B,EAC1B,qBAA6B,EAC7B,gBAAkC,EAClC,aAA4B,EAC5B,iBAAkC,EAClC,qBAA4C,EAC5C,yBAAoD,EACpD,OAAqF,EACrF,uBAAgC;IAEhC,8GAA8G;IAC9G,kHAAkH;IAClH,gFAAgF;IAChF,kHAAkH;IAClH,oCAAoC;IAEpC,mHAAmH;IACnH,6CAA6C;IAC7C,IAAM,eAAe,GAAoB,EAAE,CAAC;IAC5C,IAAM,cAAc,GAAoB,EAAE,CAAC;IAE3C;;OAEG;IAEH,wGAAwG;IACxG,8GAA8G;IAC9G,kDAAkD;IAClD,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,UAAC,EAAkC;YAAjC,iBAAiB,QAAA,EAAE,aAAa,QAAA;QACtE,IAAM,gBAAgB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QACnD,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,OAAO,CACnC,UAAC,EAA2E;gBAA1E,cAAc,QAAA,EAAE,UAAyD,EAAvC,kBAAkB,oBAAA,EAAE,iBAAiB,uBAAA;YACvE,+FAA+F;YAC/F,6CAA6C;YAC7C,IACE,CAAC,OAAO,CAAC,aAAa,CAAC,4BAA4B,CAAC,cAAc,EAAE,gBAAgB,EAAE,qBAAqB,CAAC,EAC5G;gBACA,OAAO;aACR;YACD,IAAM,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,2BAA2B,CAC1E,cAAc,EACd,gBAAgB,EAChB,qBAAqB,CACtB,CAAC;YAEF,oBAAoB,CAAC,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;YAC/F,oBAAoB,CAAC,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,kBAAkB,CAAC,CAAC;QACjG,CAAC,CACF,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH;;OAEG;IAEH,+FAA+F;IAC/F,kHAAkH;IAClH,8DAA8D;IAC9D,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,UAAC,EAAuC;YAAtC,mBAAmB,QAAA,EAAE,gBAAgB,QAAA;QAC/E,IAAM,kBAAkB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACvD,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,UAAC,EAAuB;gBAAtB,WAAW,QAAA,EAAE,QAAQ,QAAA;YAC9D,QAAQ,CAAC,OAAO,CAAC,UAAC,OAAO;gBACvB,IAAM,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,2BAA2B,CAC1E,WAAW,EACX,kBAAkB,EAClB,qBAAqB,CACtB,CAAC;gBACF,IAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;gBAClF,oBAAoB,CAAC,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC9G,4GAA4G;gBAC5G,wDAAwD;YAC1D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH;;OAEG;IAEH,0FAA0F;IAC1F,sGAAsG;IACtG,kDAAkD;IAClD,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,OAAO,CAAC,UAAC,EAAiD;YAAhD,mBAAmB,QAAA,EAAE,0BAA0B,QAAA;QAC7F,IAAM,kBAAkB,GAAG,MAAM,CAAC,mBAAmB,CAAC,CAAC;QACvD,MAAM,CAAC,OAAO,CAAC,0BAA0B,CAAC,CAAC,OAAO,CAAC,UAAC,EAAiC;gBAAhC,WAAW,QAAA,EAAE,kBAAkB,QAAA;YAClF,kBAAkB,CAAC,OAAO,CAAC,UAAC,OAAO;gBACjC,IAAM,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,2BAA2B,CAC1E,WAAW,EACX,kBAAkB,EAClB,qBAAqB,CACtB,CAAC;gBACF,IAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;gBAClF,oBAAoB,CAAC,eAAe,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;gBAC9G,yGAAyG;gBACzG,4FAA4F;YAC9F,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH;;OAEG;IAEH,sGAAsG;IACtG,4CAA4C;IAC5C,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,UAAC,EAAoB;YAAjB,gBAAgB,QAAA;QAC3D,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,UAAC,EAAY;gBAAT,QAAQ,QAAA;YACnD,QAAQ,CAAC,OAAO,CAAC,UAAC,OAAO;gBACvB,+FAA+F;gBAC/F,6CAA6C;gBAC7C,IACE,CAAC,OAAO,CAAC,aAAa,CAAC,4BAA4B,CACjD,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,aAAa,EACrB,qBAAqB,CACtB,EACD;oBACA,OAAO;iBACR;gBACD,8BAA8B,CAC5B,eAAe,EACf,OAAO,CAAC,aAAa,EACrB,OAAO,EACP,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAC3B,qBAAqB,CACtB,CAAC;YACJ,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH;;OAEG;IAEH,iGAAiG;IACjG,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC,UAAC,EAAkC;YAAjC,cAAc,QAAA,EAAE,gBAAgB,QAAA;QAClF,IAAM,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;QAC7C,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,UAAC,EAAsB;gBAArB,UAAU,QAAA,EAAE,QAAQ,QAAA;YAC7D,QAAQ,CAAC,OAAO,CAAC,UAAC,OAAO;gBACvB,+FAA+F;gBAC/F,6CAA6C;gBAC7C,IACE,CAAC,OAAO,CAAC,aAAa,CAAC,4BAA4B,CACjD,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,aAAa,EACrB,qBAAqB,CACtB,EACD;oBACA,OAAO;iBACR;gBACD,IAAM,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,2BAA2B,CAC1E,UAAU,EACV,aAAa,EACb,qBAAqB,CACtB,CAAC;gBACF,oBAAoB,CAAC,eAAe,EAAE,aAAa,EAAE,kBAAkB,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YAChG,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,mGAAmG;IACnG,wBAAwB;IACxB,qBAAqB,CAAC,kBAAkB,EAAE,eAAe,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAElF,IAAM,MAAM,GAAwB,4BAA4B,CAC9D,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,OAAO,CAAC,iBAAiB,EACzB,uBAAuB,CACxB,CAAC;IAEF,OAAO;QACL,eAAe,iBAAA;QACf,cAAc,gBAAA;QACd,MAAM,QAAA;QACN,IAAI,EAAE,0BAA0B,CAAC,MAAM,CAAC;KACzC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"DataworkerUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/DataworkerUtils.ts"],"names":[],"mappings":"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"}
@@ -1,33 +1,12 @@
1
1
  import { providers } from "ethers";
2
- import { DepositWithBlock, Fill, FillWithBlock } from "../../../interfaces";
2
+ import { Deposit, DepositWithBlock, Fill, FillWithBlock } from "../../../interfaces";
3
3
  import { HubPoolClient } from "../../HubPoolClient";
4
- /**
5
- * @notice FillRepaymentInformation is a fill with additional properties required to determine where it can
6
- * be repaid.
7
- */
8
- type FillRepaymentInformation = Fill & {
9
- fromLiteChain: boolean;
10
- };
11
- /**
12
- * @notice Return repayment chain and repayment token for a fill, but does not verify if the returned
13
- * repayment information is valid for the desired repayment address.
14
- * @dev The passed in fill should be verified first via verifyFillRepayment().
15
- * @param fill The fill to get the repayment information for.
16
- * @return The chain to send the refund to and the token to use for the refund.
17
- */
18
- export declare function getRefundInformationFromFill(relayData: FillRepaymentInformation, hubPoolClient: HubPoolClient, bundleEndBlockForMainnet: number): {
4
+ export declare function getRefundInformationFromFill(fill: Fill, hubPoolClient: HubPoolClient, blockRangesForChains: number[][], chainIdListForBundleEvaluationBlockNumbers: number[], fromLiteChain: boolean): {
19
5
  chainToSendRefundTo: number;
20
6
  repaymentToken: string;
21
7
  };
22
- /**
23
- * @notice Verifies that the fill can be repaid. If the repayment address is not
24
- * valid for the requested repayment chain, then this function will attempt to change the fill's repayment chain
25
- * to the destination chain and its repayment address to the msg.sender and if this is possible,
26
- * return the fill. Otherwise, return undefined.
27
- * @param _fill Fill with a requested repayment chain and address
28
- * @return Fill with the applied repayment chain (depends on the validity of the requested repayment address)
29
- * and applied repayment address, or undefined if the applied repayment address is not valid for the
30
- * applied repayment chain.
31
- */
32
- export declare function verifyFillRepayment(_fill: FillWithBlock, destinationChainProvider: providers.Provider, matchedDeposit: DepositWithBlock, hubPoolClient: HubPoolClient, bundleEndBlockForMainnet: number): Promise<FillWithBlock | undefined>;
33
- export {};
8
+ export declare function getRepaymentChainId(fill: Fill, matchedDeposit: Deposit): number;
9
+ export declare function forceDestinationRepayment(repaymentChainId: number, matchedDeposit: Deposit & {
10
+ quoteBlockNumber: number;
11
+ }, hubPoolClient: HubPoolClient): boolean;
12
+ export declare function verifyFillRepayment(_fill: FillWithBlock, destinationChainProvider: providers.Provider, matchedDeposit: DepositWithBlock, hubPoolClient: HubPoolClient): Promise<FillWithBlock | undefined>;
@@ -1,55 +1,66 @@
1
- import { __assign, __awaiter, __generator } from "tslib";
1
+ import { __awaiter, __generator } from "tslib";
2
2
  import _ from "lodash";
3
- import assert from "assert";
4
- import { isSlowFill, isValidEvmAddress, isDefined, chainIsEvm } from "../../../utils";
5
- /**
6
- * @notice Return repayment chain and repayment token for a fill, but does not verify if the returned
7
- * repayment information is valid for the desired repayment address.
8
- * @dev The passed in fill should be verified first via verifyFillRepayment().
9
- * @param fill The fill to get the repayment information for.
10
- * @return The chain to send the refund to and the token to use for the refund.
11
- */
12
- export function getRefundInformationFromFill(relayData, hubPoolClient, bundleEndBlockForMainnet) {
13
- var chainToSendRefundTo = _getRepaymentChainId(relayData, hubPoolClient, bundleEndBlockForMainnet);
14
- if (chainToSendRefundTo === relayData.originChainId) {
15
- return {
16
- chainToSendRefundTo: chainToSendRefundTo,
17
- repaymentToken: relayData.inputToken,
18
- };
3
+ import { getBlockRangeForChain, isSlowFill, isValidEvmAddress, isDefined, chainIsEvm } from "../../../utils";
4
+ export function getRefundInformationFromFill(fill, hubPoolClient, blockRangesForChains, chainIdListForBundleEvaluationBlockNumbers, fromLiteChain) {
5
+ // Handle slow relay where repaymentChainId = 0. Slow relays always pay recipient on destination chain.
6
+ // So, save the slow fill under the destination chain, and save the fast fill under its repayment chain.
7
+ var chainToSendRefundTo = isSlowFill(fill) ? fill.destinationChainId : fill.repaymentChainId;
8
+ // If the fill is for a deposit originating from the lite chain, the repayment chain is the origin chain
9
+ // regardless of whether it is a slow or fast fill (we ignore slow fills but this is for posterity).
10
+ // @note fill.repaymentChainId should already be set to originChainId but reset it to be safe.
11
+ if (fromLiteChain) {
12
+ chainToSendRefundTo = fill.originChainId;
19
13
  }
20
- // Now figure out the equivalent L2 token for the repayment token. If the inputToken doesn't have a
21
- // PoolRebalanceRoute, then the repayment chain would have been the originChainId after the getRepaymentChainId()
22
- // call and we would have returned already, so the following call should always succeed.
23
- var l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(relayData.inputToken, relayData.originChainId, bundleEndBlockForMainnet);
24
- var repaymentToken = hubPoolClient.getL2TokenForL1TokenAtBlock(l1TokenCounterpart, chainToSendRefundTo, bundleEndBlockForMainnet);
14
+ // Save fill data and associate with repayment chain and L2 token refund should be denominated in.
15
+ var endBlockForMainnet = getBlockRangeForChain(blockRangesForChains, hubPoolClient.chainId, chainIdListForBundleEvaluationBlockNumbers)[1];
16
+ var l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(fill.inputToken, fill.originChainId, endBlockForMainnet);
17
+ var repaymentToken = hubPoolClient.getL2TokenForL1TokenAtBlock(l1TokenCounterpart, chainToSendRefundTo, endBlockForMainnet);
25
18
  return {
26
19
  chainToSendRefundTo: chainToSendRefundTo,
27
20
  repaymentToken: repaymentToken,
28
21
  };
29
22
  }
30
- /**
31
- * @notice Verifies that the fill can be repaid. If the repayment address is not
32
- * valid for the requested repayment chain, then this function will attempt to change the fill's repayment chain
33
- * to the destination chain and its repayment address to the msg.sender and if this is possible,
34
- * return the fill. Otherwise, return undefined.
35
- * @param _fill Fill with a requested repayment chain and address
36
- * @return Fill with the applied repayment chain (depends on the validity of the requested repayment address)
37
- * and applied repayment address, or undefined if the applied repayment address is not valid for the
38
- * applied repayment chain.
39
- */
40
- export function verifyFillRepayment(_fill, destinationChainProvider, matchedDeposit, hubPoolClient, bundleEndBlockForMainnet) {
23
+ export function getRepaymentChainId(fill, matchedDeposit) {
24
+ // Lite chain deposits force repayment on origin chain.
25
+ return matchedDeposit.fromLiteChain ? matchedDeposit.originChainId : fill.repaymentChainId;
26
+ }
27
+ export function forceDestinationRepayment(repaymentChainId, matchedDeposit, hubPoolClient) {
28
+ if (!matchedDeposit.fromLiteChain) {
29
+ try {
30
+ var l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(matchedDeposit.inputToken, matchedDeposit.originChainId, matchedDeposit.quoteBlockNumber);
31
+ hubPoolClient.getL2TokenForL1TokenAtBlock(l1TokenCounterpart, repaymentChainId, matchedDeposit.quoteBlockNumber);
32
+ // Repayment token could be found, this is a valid repayment chain.
33
+ return false;
34
+ }
35
+ catch (_a) {
36
+ // Repayment token doesn't exist on repayment chain via PoolRebalanceRoutes, impossible to repay filler there.
37
+ return true;
38
+ }
39
+ }
40
+ else {
41
+ return false;
42
+ }
43
+ }
44
+ // Verify that a fill sent to an EVM chain has a 20 byte address. If the fill does not, then attempt
45
+ // to repay the `msg.sender` of the relay transaction. Otherwise, return undefined.
46
+ export function verifyFillRepayment(_fill, destinationChainProvider, matchedDeposit, hubPoolClient) {
41
47
  return __awaiter(this, void 0, void 0, function () {
42
48
  var fill, repaymentChainId, fillTransaction, destinationRelayer;
43
49
  return __generator(this, function (_a) {
44
50
  switch (_a.label) {
45
51
  case 0:
46
- fill = __assign(__assign({}, _.cloneDeep(_fill)), { fromLiteChain: matchedDeposit.fromLiteChain });
52
+ fill = _.cloneDeep(_fill);
47
53
  // Slow fills don't result in repayments so they're always valid.
48
54
  if (isSlowFill(fill)) {
49
55
  return [2 /*return*/, fill];
50
56
  }
51
- repaymentChainId = _getRepaymentChainId(fill, hubPoolClient, bundleEndBlockForMainnet);
52
- if (!_repaymentAddressNeedsToBeOverwritten(fill)) return [3 /*break*/, 2];
57
+ repaymentChainId = getRepaymentChainId(fill, matchedDeposit);
58
+ // If repayment chain doesn't have a Pool Rebalance Route for the input token, then change the repayment
59
+ // chain to the destination chain.
60
+ if (forceDestinationRepayment(repaymentChainId, matchedDeposit, hubPoolClient)) {
61
+ repaymentChainId = fill.destinationChainId;
62
+ }
63
+ if (!!isValidEvmAddress(fill.relayer)) return [3 /*break*/, 2];
53
64
  return [4 /*yield*/, destinationChainProvider.getTransaction(fill.transactionHash)];
54
65
  case 1:
55
66
  fillTransaction = _a.sent();
@@ -58,17 +69,12 @@ export function verifyFillRepayment(_fill, destinationChainProvider, matchedDepo
58
69
  if (!isDefined(destinationRelayer) || !isValidEvmAddress(destinationRelayer)) {
59
70
  return [2 /*return*/, undefined];
60
71
  }
61
- // If we can switch the repayment chain to the destination chain, then do so. We should only switch if the
62
- // destination chain has a valid repayment token that is equivalent to the deposited input token. This would
63
- // also be the same mapping as the repayment token on the repayment chain.
64
- if (!matchedDeposit.fromLiteChain &&
65
- hubPoolClient.areTokensEquivalent(fill.inputToken, fill.originChainId, fill.outputToken, fill.destinationChainId)) {
72
+ if (!matchedDeposit.fromLiteChain) {
66
73
  repaymentChainId = fill.destinationChainId;
67
74
  }
68
- // If we can't switch the chain, then we need to verify that the msg.sender is a valid address on the repayment chain.
69
- // Because we already checked that the `destinationRelayer` was a valid EVM address above, we only need to check
70
- // that the repayment chain is an EVM chain.
71
75
  else {
76
+ // We can't switch repayment chain for a lite chain deposit so just check whether the repayment chain,
77
+ // which should be the origin chain, is an EVM chain.
72
78
  if (!chainIsEvm(repaymentChainId)) {
73
79
  return [2 /*return*/, undefined];
74
80
  }
@@ -84,43 +90,4 @@ export function verifyFillRepayment(_fill, destinationChainProvider, matchedDepo
84
90
  });
85
91
  });
86
92
  }
87
- function _getRepaymentChainId(relayData, hubPoolClient, bundleEndBlockForMainnet) {
88
- if (relayData.fromLiteChain) {
89
- assert(!isSlowFill(relayData), "getRepaymentChainId: fromLiteChain and slow fill are mutually exclusive");
90
- return relayData.originChainId;
91
- }
92
- // Handle slow relay where FilledRelay.repaymentChainId = 0, as hardcoded in the SpokePool contract.
93
- // Slow relays always pay recipient on destination chain.
94
- if (isSlowFill(relayData)) {
95
- return relayData.destinationChainId;
96
- }
97
- // Repayment chain is valid if the input token and repayment chain are mapped to the same PoolRebalanceRoute.
98
- var repaymentTokenIsValid = _repaymentChainTokenIsValid(relayData, hubPoolClient, bundleEndBlockForMainnet);
99
- if (repaymentTokenIsValid) {
100
- return relayData.repaymentChainId;
101
- }
102
- // If repayment chain is not valid, default to origin chain since we always know the input token can be refunded.
103
- return relayData.originChainId;
104
- }
105
- function _repaymentChainTokenIsValid(relayData, hubPoolClient, bundleEndBlockForMainnet) {
106
- if (!hubPoolClient.l2TokenHasPoolRebalanceRoute(relayData.inputToken, relayData.originChainId, bundleEndBlockForMainnet)) {
107
- return false;
108
- }
109
- var l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(relayData.inputToken, relayData.originChainId, bundleEndBlockForMainnet);
110
- if (!hubPoolClient.l2TokenEnabledForL1TokenAtBlock(l1TokenCounterpart, relayData.repaymentChainId, bundleEndBlockForMainnet)) {
111
- return false;
112
- }
113
- return true;
114
- }
115
- function _repaymentAddressNeedsToBeOverwritten(fill) {
116
- // Slow fills don't result in repayments so they're always valid.
117
- if (isSlowFill(fill)) {
118
- return false;
119
- }
120
- // @todo add Solana logic here:
121
- // - i.e. If chainIsSvm && !isValidSvmAddress(fill.relayer) then return false
122
- // If chainIsEvm && !isValidEvmAddress(fill.relayer) then return false
123
- // If chainIsEvm && isValidEvmAddress(fill.relayer) then return true
124
- return !isValidEvmAddress(fill.relayer);
125
- }
126
93
  //# sourceMappingURL=FillUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FillUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/FillUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FillUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/FillUtils.ts"],"names":[],"mappings":"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"}
@@ -20,5 +20,5 @@ export declare function getNetSendAmountForL1Token(spokePoolTargetBalance: Spoke
20
20
  export declare function getRunningBalanceForL1Token(spokePoolTargetBalance: SpokePoolTargetBalance, runningBalance: BigNumber): BigNumber;
21
21
  export declare function updateRunningBalance(runningBalances: RunningBalances, l2ChainId: number, l1Token: string, updateAmount: BigNumber): void;
22
22
  export declare function addLastRunningBalance(latestMainnetBlock: number, runningBalances: RunningBalances, hubPoolClient: HubPoolClient): void;
23
- export declare function updateRunningBalanceForDeposit(runningBalances: RunningBalances, hubPoolClient: HubPoolClient, deposit: V3DepositWithBlock, updateAmount: BigNumber, mainnetBundleEndBlock: number): void;
23
+ export declare function updateRunningBalanceForDeposit(runningBalances: RunningBalances, hubPoolClient: HubPoolClient, deposit: V3DepositWithBlock, updateAmount: BigNumber): void;
24
24
  export declare function constructPoolRebalanceLeaves(latestMainnetBlock: number, runningBalances: RunningBalances, realizedLpFees: RunningBalances, configStoreClient: AcrossConfigStoreClient, maxL1TokenCount?: number): PoolRebalanceLeaf[];
@@ -98,8 +98,8 @@ export function addLastRunningBalance(latestMainnetBlock, runningBalances, hubPo
98
98
  });
99
99
  });
100
100
  }
101
- export function updateRunningBalanceForDeposit(runningBalances, hubPoolClient, deposit, updateAmount, mainnetBundleEndBlock) {
102
- var l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(deposit.inputToken, deposit.originChainId, mainnetBundleEndBlock);
101
+ export function updateRunningBalanceForDeposit(runningBalances, hubPoolClient, deposit, updateAmount) {
102
+ var l1TokenCounterpart = hubPoolClient.getL1TokenForL2TokenAtBlock(deposit.inputToken, deposit.originChainId, deposit.quoteBlockNumber);
103
103
  updateRunningBalance(runningBalances, deposit.originChainId, l1TokenCounterpart, updateAmount);
104
104
  }
105
105
  export function constructPoolRebalanceLeaves(latestMainnetBlock, runningBalances, realizedLpFees, configStoreClient, maxL1TokenCount) {
@@ -1 +1 @@
1
- {"version":3,"file":"PoolRebalanceUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/PoolRebalanceUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PoolRebalanceUtils.js","sourceRoot":"","sources":["../../../../../src/clients/BundleDataClient/utils/PoolRebalanceUtils.ts"],"names":[],"mappings":"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"}
@@ -72,10 +72,23 @@ export declare class HubPoolClient extends BaseAbstractClient {
72
72
  getSpokePoolActivationBlock(chain: number, spokePool: string): number | undefined;
73
73
  getL2TokenForL1TokenAtBlock(l1Token: string, destinationChainId: number, latestHubBlock?: number): string;
74
74
  getL1TokenForL2TokenAtBlock(l2Token: string, destinationChainId: number, latestHubBlock?: number): string;
75
- protected getL1TokenForDeposit(deposit: Pick<DepositWithBlock, "originChainId" | "inputToken" | "quoteBlockNumber">): string;
75
+ /**
76
+ * Returns the L1 token that should be used for an L2 Bridge event. This function is
77
+ * designed to be used by the caller to associate the L2 token with its mapped L1 token
78
+ * at the HubPool equivalent block number of the L2 event.
79
+ * @param deposit Deposit event
80
+ * @param returns string L1 token counterpart for Deposit
81
+ */
82
+ getL1TokenForDeposit(deposit: Pick<DepositWithBlock, "originChainId" | "inputToken" | "quoteBlockNumber">): string;
83
+ /**
84
+ * Returns the L2 token that should be used as a counterpart to a deposit event. For example, the caller
85
+ * might want to know what the refund token will be on l2ChainId for the deposit event.
86
+ * @param l2ChainId Chain where caller wants to get L2 token counterpart for
87
+ * @param event Deposit event
88
+ * @returns string L2 token counterpart on l2ChainId
89
+ */
90
+ getL2TokenForDeposit(deposit: Pick<DepositWithBlock, "originChainId" | "destinationChainId" | "inputToken" | "quoteBlockNumber">, l2ChainId?: number): string;
76
91
  l2TokenEnabledForL1Token(l1Token: string, destinationChainId: number): boolean;
77
- l2TokenEnabledForL1TokenAtBlock(l1Token: string, destinationChainId: number, hubBlockNumber: number): boolean;
78
- l2TokenHasPoolRebalanceRoute(l2Token: string, l2ChainId: number, hubPoolBlock?: number): boolean;
79
92
  /**
80
93
  * @dev If tokenAddress + chain do not exist in TOKEN_SYMBOLS_MAP then this will throw.
81
94
  * @param tokenAddress Token address on `chain`
@@ -83,14 +96,6 @@ export declare class HubPoolClient extends BaseAbstractClient {
83
96
  * @returns Token info for the given token address on the L2 chain including symbol and decimal.
84
97
  */
85
98
  getTokenInfoForAddress(tokenAddress: string, chain: number): L1Token;
86
- /**
87
- * @dev If tokenAddress + chain do not exist in TOKEN_SYMBOLS_MAP then this will throw.
88
- * @dev if the token matched in TOKEN_SYMBOLS_MAP does not have an L1 token address then this will throw.
89
- * @param tokenAddress Token address on `chain`
90
- * @param chain Chain where the `tokenAddress` exists in TOKEN_SYMBOLS_MAP.
91
- * @returns Token info for the given token address on the Hub chain including symbol and decimal and L1 address.
92
- */
93
- getL1TokenInfoForAddress(tokenAddress: string, chain: number): L1Token;
94
99
  /**
95
100
  * Resolve a given timestamp to a block number on the HubPool chain.
96
101
  * @param timestamp A single timestamp to be resolved to a block number on the HubPool chain.
@@ -124,8 +129,6 @@ export declare class HubPoolClient extends BaseAbstractClient {
124
129
  getTokenInfoForL1Token(l1Token: string): L1Token | undefined;
125
130
  getLpTokenInfoForL1Token(l1Token: string): LpToken | undefined;
126
131
  getL1TokenInfoForL2Token(l2Token: string, chainId: number): L1Token | undefined;
127
- getTokenInfoForDeposit(deposit: Pick<Deposit, "inputToken" | "originChainId">): L1Token | undefined;
128
- getTokenInfo(chainId: number | string, tokenAddress: string): L1Token | undefined;
129
132
  areTokensEquivalent(tokenA: string, chainIdA: number, tokenB: string, chainIdB: number, hubPoolBlock?: number): boolean;
130
133
  getSpokeActivationBlockForChain(chainId: number): number;
131
134
  isRootBundleValid(rootBundle: ProposedRootBundle, latestMainnetBlock: number): boolean;
@@ -3,7 +3,7 @@ import assert from "assert";
3
3
  import _ from "lodash";
4
4
  import { DEFAULT_CACHING_SAFE_LAG, DEFAULT_CACHING_TTL, ZERO_ADDRESS } from "../constants";
5
5
  import * as lpFeeCalculator from "../lpFeeCalculator";
6
- import { BigNumber, BlockFinder, bnZero, dedupArray, assign, fetchTokenInfo, getCachedBlockForTimestamp, getCurrentTime, getNetworkName, isDefined, mapAsync, paginatedEventQuery, shouldCache, sortEventsDescending, spreadEventWithBlockNumber, toBN, getTokenInfo, getUsdcSymbol, getL1TokenInfo, compareAddressesSimple, } from "../utils";
6
+ import { BigNumber, BlockFinder, bnZero, dedupArray, assign, fetchTokenInfo, getCachedBlockForTimestamp, getCurrentTime, getNetworkName, isDefined, mapAsync, paginatedEventQuery, shouldCache, sortEventsDescending, spreadEventWithBlockNumber, toBN, getTokenInfo, getUsdcSymbol, compareAddressesSimple, } from "../utils";
7
7
  import { BaseAbstractClient, isUpdateFailureReason, UpdateFailureReason } from "./BaseAbstractClient";
8
8
  var HubPoolClient = /** @class */ (function (_super) {
9
9
  __extends(HubPoolClient, _super);
@@ -128,35 +128,36 @@ var HubPoolClient = /** @class */ (function (_super) {
128
128
  // Find the last mapping published before the target block.
129
129
  return sortEventsDescending(l2Tokens)[0].l1Token;
130
130
  };
131
+ /**
132
+ * Returns the L1 token that should be used for an L2 Bridge event. This function is
133
+ * designed to be used by the caller to associate the L2 token with its mapped L1 token
134
+ * at the HubPool equivalent block number of the L2 event.
135
+ * @param deposit Deposit event
136
+ * @param returns string L1 token counterpart for Deposit
137
+ */
131
138
  HubPoolClient.prototype.getL1TokenForDeposit = function (deposit) {
132
139
  // L1-->L2 token mappings are set via PoolRebalanceRoutes which occur on mainnet,
133
140
  // so we use the latest token mapping. This way if a very old deposit is filled, the relayer can use the
134
141
  // latest L2 token mapping to find the L1 token counterpart.
135
142
  return this.getL1TokenForL2TokenAtBlock(deposit.inputToken, deposit.originChainId, deposit.quoteBlockNumber);
136
143
  };
144
+ /**
145
+ * Returns the L2 token that should be used as a counterpart to a deposit event. For example, the caller
146
+ * might want to know what the refund token will be on l2ChainId for the deposit event.
147
+ * @param l2ChainId Chain where caller wants to get L2 token counterpart for
148
+ * @param event Deposit event
149
+ * @returns string L2 token counterpart on l2ChainId
150
+ */
151
+ HubPoolClient.prototype.getL2TokenForDeposit = function (deposit, l2ChainId) {
152
+ if (l2ChainId === void 0) { l2ChainId = deposit.destinationChainId; }
153
+ var l1Token = this.getL1TokenForDeposit(deposit);
154
+ // Use the latest hub block number to find the L2 token counterpart.
155
+ return this.getL2TokenForL1TokenAtBlock(l1Token, l2ChainId, deposit.quoteBlockNumber);
156
+ };
137
157
  HubPoolClient.prototype.l2TokenEnabledForL1Token = function (l1Token, destinationChainId) {
138
158
  var _a, _b;
139
159
  return ((_b = (_a = this.l1TokensToDestinationTokens) === null || _a === void 0 ? void 0 : _a[l1Token]) === null || _b === void 0 ? void 0 : _b[destinationChainId]) != undefined;
140
160
  };
141
- HubPoolClient.prototype.l2TokenEnabledForL1TokenAtBlock = function (l1Token, destinationChainId, hubBlockNumber) {
142
- var _a, _b, _c;
143
- // Find the last mapping published before the target block.
144
- var l2Token = sortEventsDescending((_c = (_b = (_a = this.l1TokensToDestinationTokensWithBlock) === null || _a === void 0 ? void 0 : _a[l1Token]) === null || _b === void 0 ? void 0 : _b[destinationChainId]) !== null && _c !== void 0 ? _c : []).find(function (mapping) { return mapping.blockNumber <= hubBlockNumber; });
145
- return l2Token !== undefined;
146
- };
147
- HubPoolClient.prototype.l2TokenHasPoolRebalanceRoute = function (l2Token, l2ChainId, hubPoolBlock) {
148
- if (hubPoolBlock === void 0) { hubPoolBlock = this.latestBlockSearched; }
149
- return Object.values(this.l1TokensToDestinationTokensWithBlock).some(function (destinationTokenMapping) {
150
- return Object.entries(destinationTokenMapping).some(function (_a) {
151
- var _l2ChainId = _a[0], setPoolRebalanceRouteEvents = _a[1];
152
- return setPoolRebalanceRouteEvents.some(function (e) {
153
- return (e.blockNumber <= hubPoolBlock &&
154
- compareAddressesSimple(e.l2Token, l2Token) &&
155
- Number(_l2ChainId) === l2ChainId);
156
- });
157
- });
158
- });
159
- };
160
161
  /**
161
162
  * @dev If tokenAddress + chain do not exist in TOKEN_SYMBOLS_MAP then this will throw.
162
163
  * @param tokenAddress Token address on `chain`
@@ -173,16 +174,6 @@ var HubPoolClient = /** @class */ (function (_super) {
173
174
  }
174
175
  return tokenInfo;
175
176
  };
176
- /**
177
- * @dev If tokenAddress + chain do not exist in TOKEN_SYMBOLS_MAP then this will throw.
178
- * @dev if the token matched in TOKEN_SYMBOLS_MAP does not have an L1 token address then this will throw.
179
- * @param tokenAddress Token address on `chain`
180
- * @param chain Chain where the `tokenAddress` exists in TOKEN_SYMBOLS_MAP.
181
- * @returns Token info for the given token address on the Hub chain including symbol and decimal and L1 address.
182
- */
183
- HubPoolClient.prototype.getL1TokenInfoForAddress = function (tokenAddress, chain) {
184
- return getL1TokenInfo(tokenAddress, chain);
185
- };
186
177
  /**
187
178
  * Resolve a given timestamp to a block number on the HubPool chain.
188
179
  * @param timestamp A single timestamp to be resolved to a block number on the HubPool chain.
@@ -447,29 +438,23 @@ var HubPoolClient = /** @class */ (function (_super) {
447
438
  var l1TokenCounterpart = this.getL1TokenForL2TokenAtBlock(l2Token, chainId, this.latestBlockSearched);
448
439
  return this.getTokenInfoForL1Token(l1TokenCounterpart);
449
440
  };
450
- HubPoolClient.prototype.getTokenInfoForDeposit = function (deposit) {
451
- return this.getTokenInfoForL1Token(this.getL1TokenForL2TokenAtBlock(deposit.inputToken, deposit.originChainId, this.latestBlockSearched));
452
- };
453
- HubPoolClient.prototype.getTokenInfo = function (chainId, tokenAddress) {
454
- var deposit = { originChainId: parseInt(chainId.toString()), inputToken: tokenAddress };
455
- return this.getTokenInfoForDeposit(deposit);
456
- };
457
441
  HubPoolClient.prototype.areTokensEquivalent = function (tokenA, chainIdA, tokenB, chainIdB, hubPoolBlock) {
458
442
  if (hubPoolBlock === void 0) { hubPoolBlock = this.latestBlockSearched; }
459
- if (!this.l2TokenHasPoolRebalanceRoute(tokenA, chainIdA, hubPoolBlock) ||
460
- !this.l2TokenHasPoolRebalanceRoute(tokenB, chainIdB, hubPoolBlock)) {
461
- return false;
443
+ try {
444
+ // Resolve both SpokePool tokens back to their respective HubPool tokens and verify that they match.
445
+ var l1TokenA = this.getL1TokenForL2TokenAtBlock(tokenA, chainIdA, hubPoolBlock);
446
+ var l1TokenB = this.getL1TokenForL2TokenAtBlock(tokenB, chainIdB, hubPoolBlock);
447
+ if (l1TokenA !== l1TokenB) {
448
+ return false;
449
+ }
450
+ // Resolve both HubPool tokens back to a current SpokePool token and verify that they match.
451
+ var _tokenA = this.getL2TokenForL1TokenAtBlock(l1TokenA, chainIdA, hubPoolBlock);
452
+ var _tokenB = this.getL2TokenForL1TokenAtBlock(l1TokenB, chainIdB, hubPoolBlock);
453
+ return tokenA === _tokenA && tokenB === _tokenB;
462
454
  }
463
- // Resolve both SpokePool tokens back to their respective HubPool tokens and verify that they match.
464
- var l1TokenA = this.getL1TokenForL2TokenAtBlock(tokenA, chainIdA, hubPoolBlock);
465
- var l1TokenB = this.getL1TokenForL2TokenAtBlock(tokenB, chainIdB, hubPoolBlock);
466
- if (l1TokenA !== l1TokenB) {
467
- return false;
455
+ catch (_a) {
456
+ return false; // One or both input tokens were not recognised.
468
457
  }
469
- // Resolve both HubPool tokens back to a current SpokePool token and verify that they match.
470
- var _tokenA = this.getL2TokenForL1TokenAtBlock(l1TokenA, chainIdA, hubPoolBlock);
471
- var _tokenB = this.getL2TokenForL1TokenAtBlock(l1TokenB, chainIdB, hubPoolBlock);
472
- return tokenA === _tokenA && tokenB === _tokenB;
473
458
  };
474
459
  HubPoolClient.prototype.getSpokeActivationBlockForChain = function (chainId) {
475
460
  var _a;