@across-protocol/sdk 4.3.136 → 4.3.137-alpha.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 (282) hide show
  1. package/dist/cjs/src/arch/evm/UpgradeUtils.d.ts +2 -0
  2. package/dist/cjs/src/arch/evm/UpgradeUtils.js +33 -0
  3. package/dist/cjs/src/arch/evm/UpgradeUtils.js.map +1 -0
  4. package/dist/cjs/src/arch/evm/index.d.ts +1 -0
  5. package/dist/cjs/src/arch/evm/index.js +1 -0
  6. package/dist/cjs/src/arch/evm/index.js.map +1 -1
  7. package/dist/cjs/src/arch/index.d.ts +1 -0
  8. package/dist/cjs/src/arch/index.js +2 -1
  9. package/dist/cjs/src/arch/index.js.map +1 -1
  10. package/dist/cjs/src/arch/tvm/BlockUtils.d.ts +1 -0
  11. package/dist/cjs/src/arch/tvm/BlockUtils.js +7 -0
  12. package/dist/cjs/src/arch/tvm/BlockUtils.js.map +1 -0
  13. package/dist/cjs/src/arch/tvm/MessageUtils.d.ts +1 -0
  14. package/dist/cjs/src/arch/tvm/MessageUtils.js +5 -0
  15. package/dist/cjs/src/arch/tvm/MessageUtils.js.map +1 -0
  16. package/dist/cjs/src/arch/tvm/ResourceUtils.d.ts +14 -0
  17. package/dist/cjs/src/arch/tvm/ResourceUtils.js +69 -0
  18. package/dist/cjs/src/arch/tvm/ResourceUtils.js.map +1 -0
  19. package/dist/cjs/src/arch/tvm/SpokeUtils.d.ts +12 -0
  20. package/dist/cjs/src/arch/tvm/SpokeUtils.js +207 -0
  21. package/dist/cjs/src/arch/tvm/SpokeUtils.js.map +1 -0
  22. package/dist/cjs/src/arch/tvm/TransactionUtils.d.ts +7 -0
  23. package/dist/cjs/src/arch/tvm/TransactionUtils.js +43 -0
  24. package/dist/cjs/src/arch/tvm/TransactionUtils.js.map +1 -0
  25. package/dist/cjs/src/arch/tvm/index.d.ts +6 -0
  26. package/dist/cjs/src/arch/tvm/index.js +10 -0
  27. package/dist/cjs/src/arch/tvm/index.js.map +1 -0
  28. package/dist/cjs/src/arch/tvm/types.d.ts +2 -0
  29. package/dist/cjs/src/arch/tvm/types.js +3 -0
  30. package/dist/cjs/src/arch/tvm/types.js.map +1 -0
  31. package/dist/cjs/src/arch/tvm/utils/address.d.ts +3 -0
  32. package/dist/cjs/src/arch/tvm/utils/address.js +17 -0
  33. package/dist/cjs/src/arch/tvm/utils/address.js.map +1 -0
  34. package/dist/cjs/src/arch/tvm/utils/index.d.ts +2 -0
  35. package/dist/cjs/src/arch/tvm/utils/index.js +6 -0
  36. package/dist/cjs/src/arch/tvm/utils/index.js.map +1 -0
  37. package/dist/cjs/src/arch/tvm/utils/wait.d.ts +1 -0
  38. package/dist/cjs/src/arch/tvm/utils/wait.js +5 -0
  39. package/dist/cjs/src/arch/tvm/utils/wait.js.map +1 -0
  40. package/dist/cjs/src/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +9 -2
  41. package/dist/cjs/src/clients/SpokePoolClient/EVMSpokePoolClient.js +33 -12
  42. package/dist/cjs/src/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
  43. package/dist/cjs/src/clients/SpokePoolClient/TVMSpokePoolClient.d.ts +11 -0
  44. package/dist/cjs/src/clients/SpokePoolClient/TVMSpokePoolClient.js +47 -0
  45. package/dist/cjs/src/clients/SpokePoolClient/TVMSpokePoolClient.js.map +1 -0
  46. package/dist/cjs/src/clients/SpokePoolClient/index.d.ts +3 -0
  47. package/dist/cjs/src/clients/SpokePoolClient/index.js +7 -1
  48. package/dist/cjs/src/clients/SpokePoolClient/index.js.map +1 -1
  49. package/dist/cjs/src/clients/SpokePoolClient/types.d.ts +1 -0
  50. package/dist/cjs/src/clients/SpokePoolClient/types.js +2 -1
  51. package/dist/cjs/src/clients/SpokePoolClient/types.js.map +1 -1
  52. package/dist/cjs/src/gasPriceOracle/adapters/tron.d.ts +4 -0
  53. package/dist/cjs/src/gasPriceOracle/adapters/tron.js +58 -0
  54. package/dist/cjs/src/gasPriceOracle/adapters/tron.js.map +1 -0
  55. package/dist/cjs/src/gasPriceOracle/index.d.ts +1 -1
  56. package/dist/cjs/src/gasPriceOracle/oracle.d.ts +3 -1
  57. package/dist/cjs/src/gasPriceOracle/oracle.js +15 -10
  58. package/dist/cjs/src/gasPriceOracle/oracle.js.map +1 -1
  59. package/dist/cjs/src/gasPriceOracle/types.d.ts +6 -1
  60. package/dist/cjs/src/gasPriceOracle/types.js +5 -0
  61. package/dist/cjs/src/gasPriceOracle/types.js.map +1 -1
  62. package/dist/cjs/src/relayFeeCalculator/chain-queries/factory.d.ts +81 -152
  63. package/dist/cjs/src/relayFeeCalculator/chain-queries/factory.js +5 -0
  64. package/dist/cjs/src/relayFeeCalculator/chain-queries/factory.js.map +1 -1
  65. package/dist/cjs/src/relayFeeCalculator/chain-queries/index.d.ts +1 -0
  66. package/dist/cjs/src/relayFeeCalculator/chain-queries/index.js +1 -0
  67. package/dist/cjs/src/relayFeeCalculator/chain-queries/index.js.map +1 -1
  68. package/dist/cjs/src/relayFeeCalculator/chain-queries/tvmQuery.d.ts +16 -0
  69. package/dist/cjs/src/relayFeeCalculator/chain-queries/tvmQuery.js +52 -0
  70. package/dist/cjs/src/relayFeeCalculator/chain-queries/tvmQuery.js.map +1 -0
  71. package/dist/cjs/src/relayFeeCalculator/relayFeeCalculator.d.ts +77 -150
  72. package/dist/cjs/src/utils/Multicall.js +1 -0
  73. package/dist/cjs/src/utils/Multicall.js.map +1 -1
  74. package/dist/cjs/src/utils/NetworkUtils.d.ts +1 -0
  75. package/dist/cjs/src/utils/NetworkUtils.js +9 -3
  76. package/dist/cjs/src/utils/NetworkUtils.js.map +1 -1
  77. package/dist/cjs/src/utils/TokenUtils.d.ts +154 -300
  78. package/dist/cjs/src/utils/TypeGuards.d.ts +3 -1
  79. package/dist/cjs/src/utils/TypeGuards.js +5 -0
  80. package/dist/cjs/src/utils/TypeGuards.js.map +1 -1
  81. package/dist/cjs/src/utils/abi/typechain/SP1AutoVerifier.d.ts +42 -0
  82. package/dist/cjs/src/utils/abi/typechain/SP1AutoVerifier.js +3 -0
  83. package/dist/cjs/src/utils/abi/typechain/SP1AutoVerifier.js.map +1 -0
  84. package/dist/cjs/src/utils/abi/typechain/factories/SP1AutoVerifier__factory.d.ts +26 -0
  85. package/dist/cjs/src/utils/abi/typechain/factories/SP1AutoVerifier__factory.js +43 -0
  86. package/dist/cjs/src/utils/abi/typechain/factories/SP1AutoVerifier__factory.js.map +1 -0
  87. package/dist/cjs/src/utils/abi/typechain/factories/index.d.ts +1 -0
  88. package/dist/cjs/src/utils/abi/typechain/factories/index.js +4 -2
  89. package/dist/cjs/src/utils/abi/typechain/factories/index.js.map +1 -1
  90. package/dist/cjs/src/utils/abi/typechain/index.d.ts +2 -0
  91. package/dist/cjs/src/utils/abi/typechain/index.js +4 -2
  92. package/dist/cjs/src/utils/abi/typechain/index.js.map +1 -1
  93. package/dist/esm/src/arch/evm/UpgradeUtils.d.ts +9 -0
  94. package/dist/esm/src/arch/evm/UpgradeUtils.js +37 -0
  95. package/dist/esm/src/arch/evm/UpgradeUtils.js.map +1 -0
  96. package/dist/esm/src/arch/evm/index.d.ts +1 -0
  97. package/dist/esm/src/arch/evm/index.js +1 -0
  98. package/dist/esm/src/arch/evm/index.js.map +1 -1
  99. package/dist/esm/src/arch/index.d.ts +1 -0
  100. package/dist/esm/src/arch/index.js +2 -0
  101. package/dist/esm/src/arch/index.js.map +1 -1
  102. package/dist/esm/src/arch/tvm/BlockUtils.d.ts +1 -0
  103. package/dist/esm/src/arch/tvm/BlockUtils.js +2 -0
  104. package/dist/esm/src/arch/tvm/BlockUtils.js.map +1 -0
  105. package/dist/esm/src/arch/tvm/MessageUtils.d.ts +1 -0
  106. package/dist/esm/src/arch/tvm/MessageUtils.js +2 -0
  107. package/dist/esm/src/arch/tvm/MessageUtils.js.map +1 -0
  108. package/dist/esm/src/arch/tvm/ResourceUtils.d.ts +32 -0
  109. package/dist/esm/src/arch/tvm/ResourceUtils.js +88 -0
  110. package/dist/esm/src/arch/tvm/ResourceUtils.js.map +1 -0
  111. package/dist/esm/src/arch/tvm/SpokeUtils.d.ts +48 -0
  112. package/dist/esm/src/arch/tvm/SpokeUtils.js +237 -0
  113. package/dist/esm/src/arch/tvm/SpokeUtils.js.map +1 -0
  114. package/dist/esm/src/arch/tvm/TransactionUtils.d.ts +20 -0
  115. package/dist/esm/src/arch/tvm/TransactionUtils.js +55 -0
  116. package/dist/esm/src/arch/tvm/TransactionUtils.js.map +1 -0
  117. package/dist/esm/src/arch/tvm/index.d.ts +6 -0
  118. package/dist/esm/src/arch/tvm/index.js +7 -0
  119. package/dist/esm/src/arch/tvm/index.js.map +1 -0
  120. package/dist/esm/src/arch/tvm/types.d.ts +2 -0
  121. package/dist/esm/src/arch/tvm/types.js +2 -0
  122. package/dist/esm/src/arch/tvm/types.js.map +1 -0
  123. package/dist/esm/src/arch/tvm/utils/address.d.ts +18 -0
  124. package/dist/esm/src/arch/tvm/utils/address.js +31 -0
  125. package/dist/esm/src/arch/tvm/utils/address.js.map +1 -0
  126. package/dist/esm/src/arch/tvm/utils/index.d.ts +2 -0
  127. package/dist/esm/src/arch/tvm/utils/index.js +3 -0
  128. package/dist/esm/src/arch/tvm/utils/index.js.map +1 -0
  129. package/dist/esm/src/arch/tvm/utils/wait.d.ts +1 -0
  130. package/dist/esm/src/arch/tvm/utils/wait.js +2 -0
  131. package/dist/esm/src/arch/tvm/utils/wait.js.map +1 -0
  132. package/dist/esm/src/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +20 -2
  133. package/dist/esm/src/clients/SpokePoolClient/EVMSpokePoolClient.js +44 -12
  134. package/dist/esm/src/clients/SpokePoolClient/EVMSpokePoolClient.js.map +1 -1
  135. package/dist/esm/src/clients/SpokePoolClient/TVMSpokePoolClient.d.ts +32 -0
  136. package/dist/esm/src/clients/SpokePoolClient/TVMSpokePoolClient.js +66 -0
  137. package/dist/esm/src/clients/SpokePoolClient/TVMSpokePoolClient.js.map +1 -0
  138. package/dist/esm/src/clients/SpokePoolClient/index.d.ts +8 -0
  139. package/dist/esm/src/clients/SpokePoolClient/index.js +10 -1
  140. package/dist/esm/src/clients/SpokePoolClient/index.js.map +1 -1
  141. package/dist/esm/src/clients/SpokePoolClient/types.d.ts +1 -0
  142. package/dist/esm/src/clients/SpokePoolClient/types.js +1 -0
  143. package/dist/esm/src/clients/SpokePoolClient/types.js.map +1 -1
  144. package/dist/esm/src/gasPriceOracle/adapters/tron.d.ts +10 -0
  145. package/dist/esm/src/gasPriceOracle/adapters/tron.js +68 -0
  146. package/dist/esm/src/gasPriceOracle/adapters/tron.js.map +1 -0
  147. package/dist/esm/src/gasPriceOracle/index.d.ts +1 -1
  148. package/dist/esm/src/gasPriceOracle/oracle.d.ts +3 -1
  149. package/dist/esm/src/gasPriceOracle/oracle.js +17 -11
  150. package/dist/esm/src/gasPriceOracle/oracle.js.map +1 -1
  151. package/dist/esm/src/gasPriceOracle/types.d.ts +6 -1
  152. package/dist/esm/src/gasPriceOracle/types.js +4 -0
  153. package/dist/esm/src/gasPriceOracle/types.js.map +1 -1
  154. package/dist/esm/src/relayFeeCalculator/chain-queries/factory.d.ts +81 -152
  155. package/dist/esm/src/relayFeeCalculator/chain-queries/factory.js +6 -1
  156. package/dist/esm/src/relayFeeCalculator/chain-queries/factory.js.map +1 -1
  157. package/dist/esm/src/relayFeeCalculator/chain-queries/index.d.ts +1 -0
  158. package/dist/esm/src/relayFeeCalculator/chain-queries/index.js +1 -0
  159. package/dist/esm/src/relayFeeCalculator/chain-queries/index.js.map +1 -1
  160. package/dist/esm/src/relayFeeCalculator/chain-queries/tvmQuery.d.ts +32 -0
  161. package/dist/esm/src/relayFeeCalculator/chain-queries/tvmQuery.js +65 -0
  162. package/dist/esm/src/relayFeeCalculator/chain-queries/tvmQuery.js.map +1 -0
  163. package/dist/esm/src/relayFeeCalculator/relayFeeCalculator.d.ts +77 -150
  164. package/dist/esm/src/utils/Multicall.js +1 -0
  165. package/dist/esm/src/utils/Multicall.js.map +1 -1
  166. package/dist/esm/src/utils/NetworkUtils.d.ts +6 -0
  167. package/dist/esm/src/utils/NetworkUtils.js +13 -3
  168. package/dist/esm/src/utils/NetworkUtils.js.map +1 -1
  169. package/dist/esm/src/utils/TokenUtils.d.ts +154 -300
  170. package/dist/esm/src/utils/TypeGuards.d.ts +3 -1
  171. package/dist/esm/src/utils/TypeGuards.js +4 -0
  172. package/dist/esm/src/utils/TypeGuards.js.map +1 -1
  173. package/dist/esm/src/utils/abi/typechain/SP1AutoVerifier.d.ts +42 -0
  174. package/dist/esm/src/utils/abi/typechain/SP1AutoVerifier.js +2 -0
  175. package/dist/esm/src/utils/abi/typechain/SP1AutoVerifier.js.map +1 -0
  176. package/dist/esm/src/utils/abi/typechain/factories/SP1AutoVerifier__factory.d.ts +26 -0
  177. package/dist/esm/src/utils/abi/typechain/factories/SP1AutoVerifier__factory.js +43 -0
  178. package/dist/esm/src/utils/abi/typechain/factories/SP1AutoVerifier__factory.js.map +1 -0
  179. package/dist/esm/src/utils/abi/typechain/factories/index.d.ts +1 -0
  180. package/dist/esm/src/utils/abi/typechain/factories/index.js +1 -0
  181. package/dist/esm/src/utils/abi/typechain/factories/index.js.map +1 -1
  182. package/dist/esm/src/utils/abi/typechain/index.d.ts +2 -0
  183. package/dist/esm/src/utils/abi/typechain/index.js +1 -0
  184. package/dist/esm/src/utils/abi/typechain/index.js.map +1 -1
  185. package/dist/types/src/arch/evm/UpgradeUtils.d.ts +10 -0
  186. package/dist/types/src/arch/evm/UpgradeUtils.d.ts.map +1 -0
  187. package/dist/types/src/arch/evm/index.d.ts +1 -0
  188. package/dist/types/src/arch/evm/index.d.ts.map +1 -1
  189. package/dist/types/src/arch/index.d.ts +1 -0
  190. package/dist/types/src/arch/index.d.ts.map +1 -1
  191. package/dist/types/src/arch/tvm/BlockUtils.d.ts +2 -0
  192. package/dist/types/src/arch/tvm/BlockUtils.d.ts.map +1 -0
  193. package/dist/types/src/arch/tvm/MessageUtils.d.ts +2 -0
  194. package/dist/types/src/arch/tvm/MessageUtils.d.ts.map +1 -0
  195. package/dist/types/src/arch/tvm/ResourceUtils.d.ts +33 -0
  196. package/dist/types/src/arch/tvm/ResourceUtils.d.ts.map +1 -0
  197. package/dist/types/src/arch/tvm/SpokeUtils.d.ts +49 -0
  198. package/dist/types/src/arch/tvm/SpokeUtils.d.ts.map +1 -0
  199. package/dist/types/src/arch/tvm/TransactionUtils.d.ts +21 -0
  200. package/dist/types/src/arch/tvm/TransactionUtils.d.ts.map +1 -0
  201. package/dist/types/src/arch/tvm/index.d.ts +7 -0
  202. package/dist/types/src/arch/tvm/index.d.ts.map +1 -0
  203. package/dist/types/src/arch/tvm/types.d.ts +3 -0
  204. package/dist/types/src/arch/tvm/types.d.ts.map +1 -0
  205. package/dist/types/src/arch/tvm/utils/address.d.ts +19 -0
  206. package/dist/types/src/arch/tvm/utils/address.d.ts.map +1 -0
  207. package/dist/types/src/arch/tvm/utils/index.d.ts +3 -0
  208. package/dist/types/src/arch/tvm/utils/index.d.ts.map +1 -0
  209. package/dist/types/src/arch/tvm/utils/wait.d.ts +2 -0
  210. package/dist/types/src/arch/tvm/utils/wait.d.ts.map +1 -0
  211. package/dist/types/src/clients/SpokePoolClient/EVMSpokePoolClient.d.ts +20 -2
  212. package/dist/types/src/clients/SpokePoolClient/EVMSpokePoolClient.d.ts.map +1 -1
  213. package/dist/types/src/clients/SpokePoolClient/TVMSpokePoolClient.d.ts +33 -0
  214. package/dist/types/src/clients/SpokePoolClient/TVMSpokePoolClient.d.ts.map +1 -0
  215. package/dist/types/src/clients/SpokePoolClient/index.d.ts +8 -0
  216. package/dist/types/src/clients/SpokePoolClient/index.d.ts.map +1 -1
  217. package/dist/types/src/clients/SpokePoolClient/types.d.ts +1 -0
  218. package/dist/types/src/clients/SpokePoolClient/types.d.ts.map +1 -1
  219. package/dist/types/src/gasPriceOracle/adapters/tron.d.ts +11 -0
  220. package/dist/types/src/gasPriceOracle/adapters/tron.d.ts.map +1 -0
  221. package/dist/types/src/gasPriceOracle/index.d.ts +1 -1
  222. package/dist/types/src/gasPriceOracle/index.d.ts.map +1 -1
  223. package/dist/types/src/gasPriceOracle/oracle.d.ts +3 -1
  224. package/dist/types/src/gasPriceOracle/oracle.d.ts.map +1 -1
  225. package/dist/types/src/gasPriceOracle/types.d.ts +6 -1
  226. package/dist/types/src/gasPriceOracle/types.d.ts.map +1 -1
  227. package/dist/types/src/relayFeeCalculator/chain-queries/factory.d.ts +81 -152
  228. package/dist/types/src/relayFeeCalculator/chain-queries/factory.d.ts.map +1 -1
  229. package/dist/types/src/relayFeeCalculator/chain-queries/index.d.ts +1 -0
  230. package/dist/types/src/relayFeeCalculator/chain-queries/index.d.ts.map +1 -1
  231. package/dist/types/src/relayFeeCalculator/chain-queries/tvmQuery.d.ts +33 -0
  232. package/dist/types/src/relayFeeCalculator/chain-queries/tvmQuery.d.ts.map +1 -0
  233. package/dist/types/src/relayFeeCalculator/relayFeeCalculator.d.ts +77 -150
  234. package/dist/types/src/relayFeeCalculator/relayFeeCalculator.d.ts.map +1 -1
  235. package/dist/types/src/utils/Multicall.d.ts.map +1 -1
  236. package/dist/types/src/utils/NetworkUtils.d.ts +6 -0
  237. package/dist/types/src/utils/NetworkUtils.d.ts.map +1 -1
  238. package/dist/types/src/utils/TokenUtils.d.ts +154 -300
  239. package/dist/types/src/utils/TokenUtils.d.ts.map +1 -1
  240. package/dist/types/src/utils/TypeGuards.d.ts +3 -1
  241. package/dist/types/src/utils/TypeGuards.d.ts.map +1 -1
  242. package/dist/types/src/utils/abi/typechain/SP1AutoVerifier.d.ts +43 -0
  243. package/dist/types/src/utils/abi/typechain/SP1AutoVerifier.d.ts.map +1 -0
  244. package/dist/types/src/utils/abi/typechain/factories/SP1AutoVerifier__factory.d.ts +27 -0
  245. package/dist/types/src/utils/abi/typechain/factories/SP1AutoVerifier__factory.d.ts.map +1 -0
  246. package/dist/types/src/utils/abi/typechain/factories/index.d.ts +1 -0
  247. package/dist/types/src/utils/abi/typechain/factories/index.d.ts.map +1 -1
  248. package/dist/types/src/utils/abi/typechain/index.d.ts +2 -0
  249. package/dist/types/src/utils/abi/typechain/index.d.ts.map +1 -1
  250. package/package.json +4 -3
  251. package/src/arch/evm/UpgradeUtils.ts +18 -0
  252. package/src/arch/evm/index.ts +1 -0
  253. package/src/arch/index.ts +1 -0
  254. package/src/arch/tvm/BlockUtils.ts +1 -0
  255. package/src/arch/tvm/MessageUtils.ts +1 -0
  256. package/src/arch/tvm/ResourceUtils.ts +92 -0
  257. package/src/arch/tvm/SpokeUtils.ts +225 -0
  258. package/src/arch/tvm/TransactionUtils.ts +62 -0
  259. package/src/arch/tvm/index.ts +6 -0
  260. package/src/arch/tvm/types.ts +2 -0
  261. package/src/arch/tvm/utils/address.ts +33 -0
  262. package/src/arch/tvm/utils/index.ts +2 -0
  263. package/src/arch/tvm/utils/wait.ts +1 -0
  264. package/src/clients/SpokePoolClient/EVMSpokePoolClient.ts +44 -18
  265. package/src/clients/SpokePoolClient/TVMSpokePoolClient.ts +65 -0
  266. package/src/clients/SpokePoolClient/index.ts +12 -1
  267. package/src/clients/SpokePoolClient/types.ts +1 -0
  268. package/src/gasPriceOracle/adapters/tron.ts +50 -0
  269. package/src/gasPriceOracle/index.ts +1 -1
  270. package/src/gasPriceOracle/oracle.ts +23 -3
  271. package/src/gasPriceOracle/types.ts +11 -1
  272. package/src/relayFeeCalculator/chain-queries/factory.ts +18 -3
  273. package/src/relayFeeCalculator/chain-queries/index.ts +1 -0
  274. package/src/relayFeeCalculator/chain-queries/tvmQuery.ts +88 -0
  275. package/src/utils/Multicall.ts +1 -0
  276. package/src/utils/NetworkUtils.ts +13 -3
  277. package/src/utils/TypeGuards.ts +6 -1
  278. package/src/utils/abi/contracts/SP1AutoVerifier.json +25 -0
  279. package/src/utils/abi/typechain/SP1AutoVerifier.ts +112 -0
  280. package/src/utils/abi/typechain/factories/SP1AutoVerifier__factory.ts +49 -0
  281. package/src/utils/abi/typechain/factories/index.ts +1 -0
  282. package/src/utils/abi/typechain/index.ts +2 -0
@@ -2,7 +2,7 @@ import { type Chain, type Transport, PublicClient, FeeValuesEIP1559 } from "viem
2
2
  import { BigNumber, bnZero, isDefined } from "../utils";
3
3
 
4
4
  export type InternalGasPriceEstimate = FeeValuesEIP1559;
5
- export type GasPriceEstimate = EvmGasPriceEstimate | SvmGasPriceEstimate;
5
+ export type GasPriceEstimate = EvmGasPriceEstimate | SvmGasPriceEstimate | TvmGasPriceEstimate;
6
6
 
7
7
  export type EvmGasPriceEstimate = {
8
8
  maxFeePerGas: BigNumber;
@@ -14,6 +14,11 @@ export type SvmGasPriceEstimate = {
14
14
  microLamportsPerComputeUnit: BigNumber;
15
15
  };
16
16
 
17
+ export type TvmGasPriceEstimate = {
18
+ energyPrice: BigNumber;
19
+ bandwidthPrice: BigNumber;
20
+ };
21
+
17
22
  export interface GasPriceFeed {
18
23
  (provider: PublicClient<Transport, Chain>, chainId: number): Promise<InternalGasPriceEstimate>;
19
24
  }
@@ -35,3 +40,8 @@ export function isSVMGasPrice(gasPrice: GasPriceEstimate): gasPrice is SvmGasPri
35
40
  const { baseFee, microLamportsPerComputeUnit } = gasPrice as SvmGasPriceEstimate;
36
41
  return isDefined(baseFee) && isDefined(microLamportsPerComputeUnit);
37
42
  }
43
+
44
+ export function isTVMGasPrice(gasPrice: GasPriceEstimate): gasPrice is TvmGasPriceEstimate {
45
+ const { energyPrice, bandwidthPrice } = gasPrice as TvmGasPriceEstimate;
46
+ return isDefined(energyPrice) && isDefined(bandwidthPrice);
47
+ }
@@ -3,13 +3,15 @@ import { CHAIN_IDs, TOKEN_SYMBOLS_MAP } from "@across-protocol/constants";
3
3
  import { getDeployedAddress } from "@across-protocol/contracts";
4
4
  import { asL2Provider } from "@eth-optimism/sdk";
5
5
  import { providers } from "ethers";
6
+ import { TronWeb } from "tronweb";
6
7
  import { CUSTOM_GAS_TOKENS } from "../../constants";
7
- import { chainIsEvm, chainIsOPStack, isDefined, chainIsSvm, SvmAddress } from "../../utils";
8
+ import { chainIsEvm, chainIsOPStack, isDefined, chainIsSvm, chainIsTvm, SvmAddress } from "../../utils";
8
9
  import { QueryBase } from "./baseQuery";
9
10
  import { SVMProvider as svmProvider } from "../../arch/svm";
10
11
  import { DEFAULT_LOGGER, getDefaultRelayer, Logger } from "../relayFeeCalculator";
11
12
  import { CustomGasTokenQueries } from "./customGasToken";
12
13
  import { SvmQuery } from "./svmQuery";
14
+ import { TvmQuery } from "./tvmQuery";
13
15
 
14
16
  /**
15
17
  * Some chains have a fixed gas price that is applied to the gas estimates. We should override
@@ -22,14 +24,14 @@ const fixedGasPrice = {
22
24
  export class QueryBase__factory {
23
25
  static create(
24
26
  chainId: number,
25
- provider: providers.Provider | svmProvider,
27
+ provider: providers.Provider | svmProvider | TronWeb,
26
28
  symbolMapping = TOKEN_SYMBOLS_MAP,
27
29
  spokePoolAddress = getDeployedAddress("SpokePool", chainId),
28
30
  relayerAddress = getDefaultRelayer(chainId),
29
31
  coingeckoProApiKey?: string,
30
32
  logger: Logger = DEFAULT_LOGGER,
31
33
  coingeckoBaseCurrency = "eth"
32
- ): QueryBase | SvmQuery {
34
+ ): QueryBase | SvmQuery | TvmQuery {
33
35
  assert(isDefined(spokePoolAddress));
34
36
 
35
37
  const customGasTokenSymbol = CUSTOM_GAS_TOKENS[chainId];
@@ -62,6 +64,19 @@ export class QueryBase__factory {
62
64
  coingeckoBaseCurrency
63
65
  );
64
66
  }
67
+ if (chainIsTvm(chainId)) {
68
+ assert(relayerAddress.isEVM());
69
+ return new TvmQuery(
70
+ provider as TronWeb,
71
+ symbolMapping,
72
+ spokePoolAddress,
73
+ relayerAddress,
74
+ logger,
75
+ coingeckoProApiKey,
76
+ fixedGasPrice[chainId],
77
+ coingeckoBaseCurrency
78
+ );
79
+ }
65
80
 
66
81
  // For OPStack chains, we need to wrap the provider in an L2Provider
67
82
  provider = chainIsOPStack(chainId)
@@ -2,3 +2,4 @@ export * from "./baseQuery";
2
2
  export * from "./factory";
3
3
  export * from "./customGasToken";
4
4
  export * from "./svmQuery";
5
+ export * from "./tvmQuery";
@@ -0,0 +1,88 @@
1
+ import assert from "assert";
2
+ import { PopulatedTransaction, providers, VoidSigner } from "ethers";
3
+ import { TronWeb } from "tronweb";
4
+ import { getGasPriceEstimate, GasPriceEstimateOptions } from "../../gasPriceOracle";
5
+ import { TvmGasPriceEstimate } from "../../gasPriceOracle/types";
6
+ import { RelayData } from "../../interfaces";
7
+ import { Address, BigNumber, BigNumberish, bnZero, EvmAddress, TransactionCostEstimate } from "../../utils";
8
+ import { arch } from "../..";
9
+ import { Logger } from "../relayFeeCalculator";
10
+ import { QueryBase, SymbolMappingType } from "./baseQuery";
11
+
12
+ /**
13
+ * A TVM-specific query implementation for TRON.
14
+ *
15
+ * TRON's JSON-RPC is EVM-compatible for reads and gas estimation, so this
16
+ * class extends QueryBase and overrides only the gas price oracle dispatch
17
+ * to use TronWeb (energy/bandwidth pricing) instead of the EVM oracle.
18
+ *
19
+ * The ethers provider is derived from the TronWeb instance's fullNode URL.
20
+ */
21
+ export class TvmQuery extends QueryBase {
22
+ readonly tronWeb: TronWeb;
23
+
24
+ constructor(
25
+ tronWeb: TronWeb,
26
+ symbolMapping: SymbolMappingType,
27
+ spokePoolAddress: string,
28
+ simulatedRelayerAddress: EvmAddress,
29
+ logger: Logger,
30
+ coingeckoProApiKey?: string,
31
+ fixedGasPrice?: BigNumberish,
32
+ coingeckoBaseCurrency: string = "eth"
33
+ ) {
34
+ const provider = new providers.StaticJsonRpcProvider(tronWeb.fullNode.host);
35
+ super(
36
+ provider,
37
+ symbolMapping,
38
+ spokePoolAddress,
39
+ simulatedRelayerAddress,
40
+ logger,
41
+ coingeckoProApiKey,
42
+ fixedGasPrice,
43
+ coingeckoBaseCurrency
44
+ );
45
+ this.tronWeb = tronWeb;
46
+ }
47
+
48
+ /**
49
+ * Estimate the gas cost of a transaction using TVM energy pricing.
50
+ *
51
+ * Gas units (energy) are estimated via the ethers provider (TRON's JSON-RPC
52
+ * returns energy units for eth_estimateGas). The energy price is queried
53
+ * from TronWeb's gas price oracle.
54
+ */
55
+ override async estimateGas(
56
+ unsignedTx: PopulatedTransaction,
57
+ senderAddress: Address,
58
+ provider: providers.Provider,
59
+ options: Partial<
60
+ GasPriceEstimateOptions & {
61
+ gasPrice: BigNumberish;
62
+ gasUnits: BigNumberish;
63
+ }
64
+ > = {}
65
+ ): Promise<TransactionCostEstimate> {
66
+ const { gasPrice: _gasPrice, gasUnits } = options;
67
+
68
+ const voidSigner = new VoidSigner(senderAddress.toEvmAddress(), provider);
69
+
70
+ const [nativeGasCost, gasPriceEstimate] = await Promise.all([
71
+ gasUnits ? Promise.resolve(BigNumber.from(gasUnits)) : voidSigner.estimateGas(unsignedTx),
72
+ _gasPrice
73
+ ? Promise.resolve({ energyPrice: BigNumber.from(_gasPrice.toString()), bandwidthPrice: bnZero })
74
+ : getGasPriceEstimate(this.tronWeb),
75
+ ]);
76
+
77
+ assert(nativeGasCost.gt(bnZero), "Gas cost should not be 0");
78
+
79
+ const gasPrice = (gasPriceEstimate as TvmGasPriceEstimate).energyPrice;
80
+ const tokenGasCost = nativeGasCost.mul(gasPrice);
81
+
82
+ return { nativeGasCost, tokenGasCost, gasPrice };
83
+ }
84
+
85
+ override getAuxiliaryNativeTokenCost(deposit: RelayData): BigNumber {
86
+ return arch.tvm.getAuxiliaryNativeTokenCost(deposit);
87
+ }
88
+ }
@@ -21,6 +21,7 @@ const MULTICALL_DEPLOYER = "0x05f32B3cC3888453ff71B01135B34FF8e41263F2";
21
21
 
22
22
  const NON_DETERMINISTIC_MULTICALL_ADDRESSES = {
23
23
  [CHAIN_IDs.LENS]: "0x6b6dEa4D80e3077D076733A04c48F63c3BA49320",
24
+ [CHAIN_IDs.TRON]: "0x32a4f47a74a6810bd0bf861cabab99656a75de9e", // @todo: Base58?
24
25
  [CHAIN_IDs.ZK_SYNC]: "0xF9cda624FBC7e059355ce98a31693d299FACd963",
25
26
  [CHAIN_IDs.LENS_SEPOLIA]: "0x8A44EDE8a6843a997bC0Cc4659e4dB1Da8f91116",
26
27
  };
@@ -134,6 +134,15 @@ export function chainIsSvm(chainId: number): boolean {
134
134
  return PUBLIC_NETWORKS[chainId]?.family === ChainFamily.SVM;
135
135
  }
136
136
 
137
+ /**
138
+ * Determines whether a chain ID runs on a TVM-like execution layer (e.g. TRON).
139
+ * @param chainId Chain ID to evaluate.
140
+ * @returns True if chain corresponding to chainId has a TVM-like execution layer.
141
+ */
142
+ export function chainIsTvm(chainId: number): boolean {
143
+ return PUBLIC_NETWORKS[chainId]?.family === ChainFamily.TVM;
144
+ }
145
+
137
146
  /**
138
147
  * Determines whether a chain ID has a native gas token.
139
148
  * @param chainId Chain ID to evaluate.
@@ -166,13 +175,14 @@ export function chainIsOFTEnabled(chainId: number): boolean {
166
175
  // This is backwards vs. CCTP logic because Across support for OFTs is limited vs. OFT deployments.
167
176
  const oftEnabled = [
168
177
  CHAIN_IDs.ARBITRUM,
169
- CHAIN_IDs.POLYGON,
170
178
  CHAIN_IDs.HYPEREVM,
179
+ CHAIN_IDs.INK,
180
+ CHAIN_IDs.MEGAETH,
171
181
  CHAIN_IDs.MONAD,
172
182
  CHAIN_IDs.PLASMA,
173
- CHAIN_IDs.MEGAETH,
183
+ CHAIN_IDs.POLYGON,
184
+ CHAIN_IDs.TRON, // tbd!!!
174
185
  CHAIN_IDs.UNICHAIN,
175
- CHAIN_IDs.INK,
176
186
  ];
177
187
  return oftEnabled.includes(chainId) && PRODUCTION_NETWORKS[chainId]?.oftEid !== OFT_NO_EID;
178
188
  }
@@ -1,6 +1,7 @@
1
1
  import { SVMProvider } from "../arch/svm/types";
2
2
  import { EvmProvider } from "../arch/evm/types";
3
3
  import { providers } from "ethers";
4
+ import { TronWeb } from "tronweb";
4
5
 
5
6
  export function isPromiseFulfilled<T>(
6
7
  promiseSettledResult: PromiseSettledResult<T>
@@ -18,6 +19,10 @@ export function isDefined<T>(input: T | null | undefined): input is T {
18
19
  return input !== null && input !== undefined;
19
20
  }
20
21
 
21
- export function isEvmProvider(provider: EvmProvider | SVMProvider): provider is EvmProvider {
22
+ export function isTvmProvider(provider: EvmProvider | SVMProvider | TronWeb): provider is TronWeb {
23
+ return typeof (provider as TronWeb)?.trx?.getEnergyPrices === "function";
24
+ }
25
+
26
+ export function isEvmProvider(provider: EvmProvider | SVMProvider | TronWeb): provider is EvmProvider {
22
27
  return provider instanceof providers.Provider;
23
28
  }
@@ -0,0 +1,25 @@
1
+ [
2
+ {
3
+ "type": "function",
4
+ "name": "verifyProof",
5
+ "inputs": [
6
+ {
7
+ "name": "",
8
+ "type": "bytes32",
9
+ "internalType": "bytes32"
10
+ },
11
+ {
12
+ "name": "",
13
+ "type": "bytes",
14
+ "internalType": "bytes"
15
+ },
16
+ {
17
+ "name": "",
18
+ "type": "bytes",
19
+ "internalType": "bytes"
20
+ }
21
+ ],
22
+ "outputs": [],
23
+ "stateMutability": "pure"
24
+ }
25
+ ]
@@ -0,0 +1,112 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+ import type {
5
+ BaseContract,
6
+ BigNumber,
7
+ BytesLike,
8
+ CallOverrides,
9
+ PopulatedTransaction,
10
+ Signer,
11
+ utils,
12
+ } from "ethers";
13
+ import type { FunctionFragment, Result } from "@ethersproject/abi";
14
+ import type { Listener, Provider } from "@ethersproject/providers";
15
+ import type {
16
+ TypedEventFilter,
17
+ TypedEvent,
18
+ TypedListener,
19
+ OnEvent,
20
+ } from "./common";
21
+
22
+ export interface SP1AutoVerifierInterface extends utils.Interface {
23
+ functions: {
24
+ "verifyProof(bytes32,bytes,bytes)": FunctionFragment;
25
+ };
26
+
27
+ getFunction(nameOrSignatureOrTopic: "verifyProof"): FunctionFragment;
28
+
29
+ encodeFunctionData(
30
+ functionFragment: "verifyProof",
31
+ values: [BytesLike, BytesLike, BytesLike]
32
+ ): string;
33
+
34
+ decodeFunctionResult(
35
+ functionFragment: "verifyProof",
36
+ data: BytesLike
37
+ ): Result;
38
+
39
+ events: {};
40
+ }
41
+
42
+ export interface SP1AutoVerifier extends BaseContract {
43
+ connect(signerOrProvider: Signer | Provider | string): this;
44
+ attach(addressOrName: string): this;
45
+ deployed(): Promise<this>;
46
+
47
+ interface: SP1AutoVerifierInterface;
48
+
49
+ queryFilter<TEvent extends TypedEvent>(
50
+ event: TypedEventFilter<TEvent>,
51
+ fromBlockOrBlockhash?: string | number | undefined,
52
+ toBlock?: string | number | undefined
53
+ ): Promise<Array<TEvent>>;
54
+
55
+ listeners<TEvent extends TypedEvent>(
56
+ eventFilter?: TypedEventFilter<TEvent>
57
+ ): Array<TypedListener<TEvent>>;
58
+ listeners(eventName?: string): Array<Listener>;
59
+ removeAllListeners<TEvent extends TypedEvent>(
60
+ eventFilter: TypedEventFilter<TEvent>
61
+ ): this;
62
+ removeAllListeners(eventName?: string): this;
63
+ off: OnEvent<this>;
64
+ on: OnEvent<this>;
65
+ once: OnEvent<this>;
66
+ removeListener: OnEvent<this>;
67
+
68
+ functions: {
69
+ verifyProof(
70
+ arg0: BytesLike,
71
+ arg1: BytesLike,
72
+ arg2: BytesLike,
73
+ overrides?: CallOverrides
74
+ ): Promise<[void]>;
75
+ };
76
+
77
+ verifyProof(
78
+ arg0: BytesLike,
79
+ arg1: BytesLike,
80
+ arg2: BytesLike,
81
+ overrides?: CallOverrides
82
+ ): Promise<void>;
83
+
84
+ callStatic: {
85
+ verifyProof(
86
+ arg0: BytesLike,
87
+ arg1: BytesLike,
88
+ arg2: BytesLike,
89
+ overrides?: CallOverrides
90
+ ): Promise<void>;
91
+ };
92
+
93
+ filters: {};
94
+
95
+ estimateGas: {
96
+ verifyProof(
97
+ arg0: BytesLike,
98
+ arg1: BytesLike,
99
+ arg2: BytesLike,
100
+ overrides?: CallOverrides
101
+ ): Promise<BigNumber>;
102
+ };
103
+
104
+ populateTransaction: {
105
+ verifyProof(
106
+ arg0: BytesLike,
107
+ arg1: BytesLike,
108
+ arg2: BytesLike,
109
+ overrides?: CallOverrides
110
+ ): Promise<PopulatedTransaction>;
111
+ };
112
+ }
@@ -0,0 +1,49 @@
1
+ /* Autogenerated file. Do not edit manually. */
2
+ /* tslint:disable */
3
+ /* eslint-disable */
4
+
5
+ import { Contract, Signer, utils } from "ethers";
6
+ import type { Provider } from "@ethersproject/providers";
7
+ import type {
8
+ SP1AutoVerifier,
9
+ SP1AutoVerifierInterface,
10
+ } from "../SP1AutoVerifier";
11
+
12
+ const _abi = [
13
+ {
14
+ type: "function",
15
+ name: "verifyProof",
16
+ inputs: [
17
+ {
18
+ name: "",
19
+ type: "bytes32",
20
+ internalType: "bytes32",
21
+ },
22
+ {
23
+ name: "",
24
+ type: "bytes",
25
+ internalType: "bytes",
26
+ },
27
+ {
28
+ name: "",
29
+ type: "bytes",
30
+ internalType: "bytes",
31
+ },
32
+ ],
33
+ outputs: [],
34
+ stateMutability: "pure",
35
+ },
36
+ ] as const;
37
+
38
+ export class SP1AutoVerifier__factory {
39
+ static readonly abi = _abi;
40
+ static createInterface(): SP1AutoVerifierInterface {
41
+ return new utils.Interface(_abi) as SP1AutoVerifierInterface;
42
+ }
43
+ static connect(
44
+ address: string,
45
+ signerOrProvider: Signer | Provider
46
+ ): SP1AutoVerifier {
47
+ return new Contract(address, _abi, signerOrProvider) as SP1AutoVerifier;
48
+ }
49
+ }
@@ -254,6 +254,7 @@ export { ProxyAdmin__factory } from "./ProxyAdmin__factory";
254
254
  export { ReentrancyGuard__factory } from "./ReentrancyGuard__factory";
255
255
  export { ReentrancyGuardUpgradeable__factory } from "./ReentrancyGuardUpgradeable__factory";
256
256
  export { Router_Adapter__factory } from "./Router_Adapter__factory";
257
+ export { SP1AutoVerifier__factory } from "./SP1AutoVerifier__factory";
257
258
  export { SP1Helios__factory } from "./SP1Helios__factory";
258
259
  export { SafeCast__factory } from "./SafeCast__factory";
259
260
  export { SafeERC20__factory } from "./SafeERC20__factory";
@@ -254,6 +254,7 @@ export type { ProxyAdmin } from "./ProxyAdmin";
254
254
  export type { ReentrancyGuard } from "./ReentrancyGuard";
255
255
  export type { ReentrancyGuardUpgradeable } from "./ReentrancyGuardUpgradeable";
256
256
  export type { Router_Adapter } from "./Router_Adapter";
257
+ export type { SP1AutoVerifier } from "./SP1AutoVerifier";
257
258
  export type { SP1Helios } from "./SP1Helios";
258
259
  export type { SafeCast } from "./SafeCast";
259
260
  export type { SafeERC20 } from "./SafeERC20";
@@ -572,6 +573,7 @@ export { ShortStrings__factory } from "./factories/ShortStrings__factory";
572
573
  export { SimpleContract__factory } from "./factories/SimpleContract__factory";
573
574
  export { SkinnyOptimisticOracleInterface__factory } from "./factories/SkinnyOptimisticOracleInterface__factory";
574
575
  export { Solana_Adapter__factory } from "./factories/Solana_Adapter__factory";
576
+ export { SP1AutoVerifier__factory } from "./factories/SP1AutoVerifier__factory";
575
577
  export { SP1Helios__factory } from "./factories/SP1Helios__factory";
576
578
  export { SpokePool__factory } from "./factories/SpokePool__factory";
577
579
  export { SpokePoolEIP7702Test__factory } from "./factories/SpokePoolEIP7702Test__factory";