@wormhole-foundation/sdk-connect 0.5.0-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 (427) hide show
  1. package/dist/cjs/circle-api.d.ts +16 -0
  2. package/dist/cjs/circle-api.d.ts.map +1 -0
  3. package/dist/cjs/circle-api.js +47 -0
  4. package/dist/cjs/circle-api.js.map +1 -0
  5. package/dist/cjs/common.d.ts +4 -0
  6. package/dist/cjs/common.d.ts.map +1 -0
  7. package/dist/cjs/common.js +40 -0
  8. package/dist/cjs/common.js.map +1 -0
  9. package/dist/cjs/config.d.ts +34 -0
  10. package/dist/cjs/config.d.ts.map +1 -0
  11. package/dist/cjs/config.js +52 -0
  12. package/dist/cjs/config.js.map +1 -0
  13. package/dist/cjs/index.d.ts +15 -0
  14. package/dist/cjs/index.d.ts.map +1 -0
  15. package/dist/cjs/index.js +45 -0
  16. package/dist/cjs/index.js.map +1 -0
  17. package/dist/cjs/protocols/cctp/cctpTransfer.d.ts +41 -0
  18. package/dist/cjs/protocols/cctp/cctpTransfer.d.ts.map +1 -0
  19. package/dist/cjs/protocols/cctp/cctpTransfer.js +459 -0
  20. package/dist/cjs/protocols/cctp/cctpTransfer.js.map +1 -0
  21. package/dist/cjs/protocols/cctp/index.d.ts +2 -0
  22. package/dist/cjs/protocols/cctp/index.d.ts.map +1 -0
  23. package/dist/cjs/protocols/cctp/index.js +18 -0
  24. package/dist/cjs/protocols/cctp/index.js.map +1 -0
  25. package/dist/cjs/protocols/cctpTransfer.d.ts +41 -0
  26. package/dist/cjs/protocols/cctpTransfer.d.ts.map +1 -0
  27. package/dist/cjs/protocols/cctpTransfer.js +459 -0
  28. package/dist/cjs/protocols/cctpTransfer.js.map +1 -0
  29. package/dist/cjs/protocols/gateway/gatewayTransfer.d.ts +38 -0
  30. package/dist/cjs/protocols/gateway/gatewayTransfer.d.ts.map +1 -0
  31. package/dist/cjs/protocols/gateway/gatewayTransfer.js +360 -0
  32. package/dist/cjs/protocols/gateway/gatewayTransfer.js.map +1 -0
  33. package/dist/cjs/protocols/gateway/index.d.ts +2 -0
  34. package/dist/cjs/protocols/gateway/index.d.ts.map +1 -0
  35. package/dist/cjs/protocols/gateway/index.js +18 -0
  36. package/dist/cjs/protocols/gateway/index.js.map +1 -0
  37. package/dist/cjs/protocols/gatewayTransfer.d.ts +40 -0
  38. package/dist/cjs/protocols/gatewayTransfer.d.ts.map +1 -0
  39. package/dist/cjs/protocols/gatewayTransfer.js +406 -0
  40. package/dist/cjs/protocols/gatewayTransfer.js.map +1 -0
  41. package/dist/cjs/protocols/index.d.ts +5 -0
  42. package/dist/cjs/protocols/index.d.ts.map +1 -0
  43. package/dist/cjs/protocols/index.js +21 -0
  44. package/dist/cjs/protocols/index.js.map +1 -0
  45. package/dist/cjs/protocols/tokenBridge/automatic.d.ts +16 -0
  46. package/dist/cjs/protocols/tokenBridge/automatic.d.ts.map +1 -0
  47. package/dist/cjs/protocols/tokenBridge/automatic.js +77 -0
  48. package/dist/cjs/protocols/tokenBridge/automatic.js.map +1 -0
  49. package/dist/cjs/protocols/tokenBridge/index.d.ts +5 -0
  50. package/dist/cjs/protocols/tokenBridge/index.d.ts.map +1 -0
  51. package/dist/cjs/protocols/tokenBridge/index.js +21 -0
  52. package/dist/cjs/protocols/tokenBridge/index.js.map +1 -0
  53. package/dist/cjs/protocols/tokenBridge/manual.d.ts +16 -0
  54. package/dist/cjs/protocols/tokenBridge/manual.d.ts.map +1 -0
  55. package/dist/cjs/protocols/tokenBridge/manual.js +77 -0
  56. package/dist/cjs/protocols/tokenBridge/manual.js.map +1 -0
  57. package/dist/cjs/protocols/tokenBridge/tokenTransfer.d.ts +20 -0
  58. package/dist/cjs/protocols/tokenBridge/tokenTransfer.d.ts.map +1 -0
  59. package/dist/cjs/protocols/tokenBridge/tokenTransfer.js +24 -0
  60. package/dist/cjs/protocols/tokenBridge/tokenTransfer.js.map +1 -0
  61. package/dist/cjs/protocols/tokenBridge/utils.d.ts +25 -0
  62. package/dist/cjs/protocols/tokenBridge/utils.d.ts.map +1 -0
  63. package/dist/cjs/protocols/tokenBridge/utils.js +331 -0
  64. package/dist/cjs/protocols/tokenBridge/utils.js.map +1 -0
  65. package/dist/cjs/protocols/tokenTransfer.d.ts +40 -0
  66. package/dist/cjs/protocols/tokenTransfer.d.ts.map +1 -0
  67. package/dist/cjs/protocols/tokenTransfer.js +472 -0
  68. package/dist/cjs/protocols/tokenTransfer.js.map +1 -0
  69. package/dist/cjs/protocols/tokenbridge/automatic.d.ts +16 -0
  70. package/dist/cjs/protocols/tokenbridge/automatic.d.ts.map +1 -0
  71. package/dist/cjs/protocols/tokenbridge/automatic.js +76 -0
  72. package/dist/cjs/protocols/tokenbridge/automatic.js.map +1 -0
  73. package/dist/cjs/protocols/tokenbridge/index.d.ts +2 -0
  74. package/dist/cjs/protocols/tokenbridge/index.d.ts.map +1 -0
  75. package/dist/cjs/protocols/tokenbridge/index.js +18 -0
  76. package/dist/cjs/protocols/tokenbridge/index.js.map +1 -0
  77. package/dist/cjs/protocols/tokenbridge/manual.d.ts +16 -0
  78. package/dist/cjs/protocols/tokenbridge/manual.d.ts.map +1 -0
  79. package/dist/cjs/protocols/tokenbridge/manual.js +76 -0
  80. package/dist/cjs/protocols/tokenbridge/manual.js.map +1 -0
  81. package/dist/cjs/protocols/tokenbridge/tokenTransfer.d.ts +37 -0
  82. package/dist/cjs/protocols/tokenbridge/tokenTransfer.d.ts.map +1 -0
  83. package/dist/cjs/protocols/tokenbridge/tokenTransfer.js +345 -0
  84. package/dist/cjs/protocols/tokenbridge/tokenTransfer.js.map +1 -0
  85. package/dist/cjs/protocols/wormholeTransfer.d.ts +20 -0
  86. package/dist/cjs/protocols/wormholeTransfer.d.ts.map +1 -0
  87. package/dist/cjs/protocols/wormholeTransfer.js +3 -0
  88. package/dist/cjs/protocols/wormholeTransfer.js.map +1 -0
  89. package/dist/cjs/quote.d.ts +17 -0
  90. package/dist/cjs/quote.d.ts.map +1 -0
  91. package/dist/cjs/quote.js +3 -0
  92. package/dist/cjs/quote.js.map +1 -0
  93. package/dist/cjs/receipt.d.ts +51 -0
  94. package/dist/cjs/receipt.d.ts.map +1 -0
  95. package/dist/cjs/receipt.js +31 -0
  96. package/dist/cjs/receipt.js.map +1 -0
  97. package/dist/cjs/routes/automaticTokenBridgeRoute.d.ts +28 -0
  98. package/dist/cjs/routes/automaticTokenBridgeRoute.d.ts.map +1 -0
  99. package/dist/cjs/routes/automaticTokenBridgeRoute.js +82 -0
  100. package/dist/cjs/routes/automaticTokenBridgeRoute.js.map +1 -0
  101. package/dist/cjs/routes/cctp/automatic.d.ts +46 -0
  102. package/dist/cjs/routes/cctp/automatic.d.ts.map +1 -0
  103. package/dist/cjs/routes/cctp/automatic.js +135 -0
  104. package/dist/cjs/routes/cctp/automatic.js.map +1 -0
  105. package/dist/cjs/routes/cctp/index.d.ts +3 -0
  106. package/dist/cjs/routes/cctp/index.d.ts.map +1 -0
  107. package/dist/cjs/routes/cctp/index.js +19 -0
  108. package/dist/cjs/routes/cctp/index.js.map +1 -0
  109. package/dist/cjs/routes/cctp/manual.d.ts +43 -0
  110. package/dist/cjs/routes/cctp/manual.d.ts.map +1 -0
  111. package/dist/cjs/routes/cctp/manual.js +113 -0
  112. package/dist/cjs/routes/cctp/manual.js.map +1 -0
  113. package/dist/cjs/routes/common.d.ts +13 -0
  114. package/dist/cjs/routes/common.d.ts.map +1 -0
  115. package/dist/cjs/routes/common.js +45 -0
  116. package/dist/cjs/routes/common.js.map +1 -0
  117. package/dist/cjs/routes/index.d.ts +9 -0
  118. package/dist/cjs/routes/index.d.ts.map +1 -0
  119. package/dist/cjs/routes/index.js +25 -0
  120. package/dist/cjs/routes/index.js.map +1 -0
  121. package/dist/cjs/routes/mock/automatic.d.ts +25 -0
  122. package/dist/cjs/routes/mock/automatic.d.ts.map +1 -0
  123. package/dist/cjs/routes/mock/automatic.js +88 -0
  124. package/dist/cjs/routes/mock/automatic.js.map +1 -0
  125. package/dist/cjs/routes/mock/index.d.ts +3 -0
  126. package/dist/cjs/routes/mock/index.d.ts.map +1 -0
  127. package/dist/cjs/routes/mock/index.js +19 -0
  128. package/dist/cjs/routes/mock/index.js.map +1 -0
  129. package/dist/cjs/routes/mock/manual.d.ts +24 -0
  130. package/dist/cjs/routes/mock/manual.d.ts.map +1 -0
  131. package/dist/cjs/routes/mock/manual.js +87 -0
  132. package/dist/cjs/routes/mock/manual.js.map +1 -0
  133. package/dist/cjs/routes/portico/automatic.d.ts +68 -0
  134. package/dist/cjs/routes/portico/automatic.d.ts.map +1 -0
  135. package/dist/cjs/routes/portico/automatic.js +208 -0
  136. package/dist/cjs/routes/portico/automatic.js.map +1 -0
  137. package/dist/cjs/routes/portico/index.d.ts +2 -0
  138. package/dist/cjs/routes/portico/index.d.ts.map +1 -0
  139. package/dist/cjs/routes/portico/index.js +18 -0
  140. package/dist/cjs/routes/portico/index.js.map +1 -0
  141. package/dist/cjs/routes/portico/manual.d.ts +61 -0
  142. package/dist/cjs/routes/portico/manual.d.ts.map +1 -0
  143. package/dist/cjs/routes/portico/manual.js +141 -0
  144. package/dist/cjs/routes/portico/manual.js.map +1 -0
  145. package/dist/cjs/routes/portico/porticoRoute.d.ts +56 -0
  146. package/dist/cjs/routes/portico/porticoRoute.d.ts.map +1 -0
  147. package/dist/cjs/routes/portico/porticoRoute.js +160 -0
  148. package/dist/cjs/routes/portico/porticoRoute.js.map +1 -0
  149. package/dist/cjs/routes/portico/protocol/abis.d.ts +4 -0
  150. package/dist/cjs/routes/portico/protocol/abis.d.ts.map +1 -0
  151. package/dist/cjs/routes/portico/protocol/abis.js +12 -0
  152. package/dist/cjs/routes/portico/protocol/abis.js.map +1 -0
  153. package/dist/cjs/routes/portico/protocol/consts.d.ts +18 -0
  154. package/dist/cjs/routes/portico/protocol/consts.d.ts.map +1 -0
  155. package/dist/cjs/routes/portico/protocol/consts.js +48 -0
  156. package/dist/cjs/routes/portico/protocol/consts.js.map +1 -0
  157. package/dist/cjs/routes/portico/protocol/porticoBridge.d.ts +17 -0
  158. package/dist/cjs/routes/portico/protocol/porticoBridge.d.ts.map +1 -0
  159. package/dist/cjs/routes/portico/protocol/porticoBridge.js +119 -0
  160. package/dist/cjs/routes/portico/protocol/porticoBridge.js.map +1 -0
  161. package/dist/cjs/routes/portico/protocol/types.d.ts +88 -0
  162. package/dist/cjs/routes/portico/protocol/types.d.ts.map +1 -0
  163. package/dist/cjs/routes/portico/protocol/types.js +3 -0
  164. package/dist/cjs/routes/portico/protocol/types.js.map +1 -0
  165. package/dist/cjs/routes/portico/protocol/utils.d.ts +18 -0
  166. package/dist/cjs/routes/portico/protocol/utils.d.ts.map +1 -0
  167. package/dist/cjs/routes/portico/protocol/utils.js +167 -0
  168. package/dist/cjs/routes/portico/protocol/utils.js.map +1 -0
  169. package/dist/cjs/routes/portico/utils.d.ts +1 -0
  170. package/dist/cjs/routes/portico/utils.d.ts.map +1 -0
  171. package/dist/cjs/routes/portico/utils.js +2 -0
  172. package/dist/cjs/routes/portico/utils.js.map +1 -0
  173. package/dist/cjs/routes/request.d.ts +25 -0
  174. package/dist/cjs/routes/request.d.ts.map +1 -0
  175. package/dist/cjs/routes/request.js +65 -0
  176. package/dist/cjs/routes/request.js.map +1 -0
  177. package/dist/cjs/routes/resolver.d.ts +15 -0
  178. package/dist/cjs/routes/resolver.d.ts.map +1 -0
  179. package/dist/cjs/routes/resolver.js +87 -0
  180. package/dist/cjs/routes/resolver.js.map +1 -0
  181. package/dist/cjs/routes/route.d.ts +46 -0
  182. package/dist/cjs/routes/route.d.ts.map +1 -0
  183. package/dist/cjs/routes/route.js +34 -0
  184. package/dist/cjs/routes/route.js.map +1 -0
  185. package/dist/cjs/routes/token.d.ts +12 -0
  186. package/dist/cjs/routes/token.d.ts.map +1 -0
  187. package/dist/cjs/routes/token.js +37 -0
  188. package/dist/cjs/routes/token.js.map +1 -0
  189. package/dist/cjs/routes/tokenBridge/automatic.d.ts +46 -0
  190. package/dist/cjs/routes/tokenBridge/automatic.d.ts.map +1 -0
  191. package/dist/cjs/routes/tokenBridge/automatic.js +145 -0
  192. package/dist/cjs/routes/tokenBridge/automatic.js.map +1 -0
  193. package/dist/cjs/routes/tokenBridge/index.d.ts +3 -0
  194. package/dist/cjs/routes/tokenBridge/index.d.ts.map +1 -0
  195. package/dist/cjs/routes/tokenBridge/index.js +19 -0
  196. package/dist/cjs/routes/tokenBridge/index.js.map +1 -0
  197. package/dist/cjs/routes/tokenBridge/manual.d.ts +42 -0
  198. package/dist/cjs/routes/tokenBridge/manual.d.ts.map +1 -0
  199. package/dist/cjs/routes/tokenBridge/manual.js +87 -0
  200. package/dist/cjs/routes/tokenBridge/manual.js.map +1 -0
  201. package/dist/cjs/routes/tokenBridgeRoute.d.ts +25 -0
  202. package/dist/cjs/routes/tokenBridgeRoute.d.ts.map +1 -0
  203. package/dist/cjs/routes/tokenBridgeRoute.js +78 -0
  204. package/dist/cjs/routes/tokenBridgeRoute.js.map +1 -0
  205. package/dist/cjs/routes/types.d.ts +44 -0
  206. package/dist/cjs/routes/types.d.ts.map +1 -0
  207. package/dist/cjs/routes/types.js +3 -0
  208. package/dist/cjs/routes/types.js.map +1 -0
  209. package/dist/cjs/tasks.d.ts +7 -0
  210. package/dist/cjs/tasks.d.ts.map +1 -0
  211. package/dist/cjs/tasks.js +65 -0
  212. package/dist/cjs/tasks.js.map +1 -0
  213. package/dist/cjs/types.d.ts +73 -0
  214. package/dist/cjs/types.d.ts.map +1 -0
  215. package/dist/cjs/types.js +35 -0
  216. package/dist/cjs/types.js.map +1 -0
  217. package/dist/cjs/whscan-api.d.ts +172 -0
  218. package/dist/cjs/whscan-api.d.ts.map +1 -0
  219. package/dist/cjs/whscan-api.js +243 -0
  220. package/dist/cjs/whscan-api.js.map +1 -0
  221. package/dist/cjs/wormhole.d.ts +198 -0
  222. package/dist/cjs/wormhole.d.ts.map +1 -0
  223. package/dist/cjs/wormhole.js +324 -0
  224. package/dist/cjs/wormhole.js.map +1 -0
  225. package/dist/cjs/wormholeTransfer.d.ts +78 -0
  226. package/dist/cjs/wormholeTransfer.d.ts.map +1 -0
  227. package/dist/cjs/wormholeTransfer.js +27 -0
  228. package/dist/cjs/wormholeTransfer.js.map +1 -0
  229. package/dist/esm/circle-api.d.ts +16 -0
  230. package/dist/esm/circle-api.d.ts.map +1 -0
  231. package/dist/esm/circle-api.js +39 -0
  232. package/dist/esm/circle-api.js.map +1 -0
  233. package/dist/esm/common.d.ts +4 -0
  234. package/dist/esm/common.d.ts.map +1 -0
  235. package/dist/esm/common.js +36 -0
  236. package/dist/esm/common.js.map +1 -0
  237. package/dist/esm/config.d.ts +34 -0
  238. package/dist/esm/config.d.ts.map +1 -0
  239. package/dist/esm/config.js +47 -0
  240. package/dist/esm/config.js.map +1 -0
  241. package/dist/esm/index.d.ts +15 -0
  242. package/dist/esm/index.d.ts.map +1 -0
  243. package/dist/esm/index.js +16 -0
  244. package/dist/esm/index.js.map +1 -0
  245. package/dist/esm/protocols/cctp/cctpTransfer.d.ts +41 -0
  246. package/dist/esm/protocols/cctp/cctpTransfer.d.ts.map +1 -0
  247. package/dist/esm/protocols/cctp/cctpTransfer.js +455 -0
  248. package/dist/esm/protocols/cctp/cctpTransfer.js.map +1 -0
  249. package/dist/esm/protocols/cctp/index.d.ts +2 -0
  250. package/dist/esm/protocols/cctp/index.d.ts.map +1 -0
  251. package/dist/esm/protocols/cctp/index.js +2 -0
  252. package/dist/esm/protocols/cctp/index.js.map +1 -0
  253. package/dist/esm/protocols/cctpTransfer.d.ts +41 -0
  254. package/dist/esm/protocols/cctpTransfer.d.ts.map +1 -0
  255. package/dist/esm/protocols/cctpTransfer.js +455 -0
  256. package/dist/esm/protocols/cctpTransfer.js.map +1 -0
  257. package/dist/esm/protocols/gateway/gatewayTransfer.d.ts +38 -0
  258. package/dist/esm/protocols/gateway/gatewayTransfer.d.ts.map +1 -0
  259. package/dist/esm/protocols/gateway/gatewayTransfer.js +356 -0
  260. package/dist/esm/protocols/gateway/gatewayTransfer.js.map +1 -0
  261. package/dist/esm/protocols/gateway/index.d.ts +2 -0
  262. package/dist/esm/protocols/gateway/index.d.ts.map +1 -0
  263. package/dist/esm/protocols/gateway/index.js +2 -0
  264. package/dist/esm/protocols/gateway/index.js.map +1 -0
  265. package/dist/esm/protocols/gatewayTransfer.d.ts +40 -0
  266. package/dist/esm/protocols/gatewayTransfer.d.ts.map +1 -0
  267. package/dist/esm/protocols/gatewayTransfer.js +402 -0
  268. package/dist/esm/protocols/gatewayTransfer.js.map +1 -0
  269. package/dist/esm/protocols/index.d.ts +5 -0
  270. package/dist/esm/protocols/index.d.ts.map +1 -0
  271. package/dist/esm/protocols/index.js +5 -0
  272. package/dist/esm/protocols/index.js.map +1 -0
  273. package/dist/esm/protocols/tokenBridge/automatic.d.ts +16 -0
  274. package/dist/esm/protocols/tokenBridge/automatic.d.ts.map +1 -0
  275. package/dist/esm/protocols/tokenBridge/automatic.js +73 -0
  276. package/dist/esm/protocols/tokenBridge/automatic.js.map +1 -0
  277. package/dist/esm/protocols/tokenBridge/index.d.ts +5 -0
  278. package/dist/esm/protocols/tokenBridge/index.d.ts.map +1 -0
  279. package/dist/esm/protocols/tokenBridge/index.js +5 -0
  280. package/dist/esm/protocols/tokenBridge/index.js.map +1 -0
  281. package/dist/esm/protocols/tokenBridge/manual.d.ts +16 -0
  282. package/dist/esm/protocols/tokenBridge/manual.d.ts.map +1 -0
  283. package/dist/esm/protocols/tokenBridge/manual.js +73 -0
  284. package/dist/esm/protocols/tokenBridge/manual.js.map +1 -0
  285. package/dist/esm/protocols/tokenBridge/tokenTransfer.d.ts +20 -0
  286. package/dist/esm/protocols/tokenBridge/tokenTransfer.d.ts.map +1 -0
  287. package/dist/esm/protocols/tokenBridge/tokenTransfer.js +20 -0
  288. package/dist/esm/protocols/tokenBridge/tokenTransfer.js.map +1 -0
  289. package/dist/esm/protocols/tokenBridge/utils.d.ts +25 -0
  290. package/dist/esm/protocols/tokenBridge/utils.d.ts.map +1 -0
  291. package/dist/esm/protocols/tokenBridge/utils.js +323 -0
  292. package/dist/esm/protocols/tokenBridge/utils.js.map +1 -0
  293. package/dist/esm/protocols/tokenTransfer.d.ts +40 -0
  294. package/dist/esm/protocols/tokenTransfer.d.ts.map +1 -0
  295. package/dist/esm/protocols/tokenTransfer.js +468 -0
  296. package/dist/esm/protocols/tokenTransfer.js.map +1 -0
  297. package/dist/esm/protocols/tokenbridge/automatic.d.ts +16 -0
  298. package/dist/esm/protocols/tokenbridge/automatic.d.ts.map +1 -0
  299. package/dist/esm/protocols/tokenbridge/automatic.js +72 -0
  300. package/dist/esm/protocols/tokenbridge/automatic.js.map +1 -0
  301. package/dist/esm/protocols/tokenbridge/index.d.ts +2 -0
  302. package/dist/esm/protocols/tokenbridge/index.d.ts.map +1 -0
  303. package/dist/esm/protocols/tokenbridge/index.js +2 -0
  304. package/dist/esm/protocols/tokenbridge/index.js.map +1 -0
  305. package/dist/esm/protocols/tokenbridge/manual.d.ts +16 -0
  306. package/dist/esm/protocols/tokenbridge/manual.d.ts.map +1 -0
  307. package/dist/esm/protocols/tokenbridge/manual.js +72 -0
  308. package/dist/esm/protocols/tokenbridge/manual.js.map +1 -0
  309. package/dist/esm/protocols/tokenbridge/tokenTransfer.d.ts +37 -0
  310. package/dist/esm/protocols/tokenbridge/tokenTransfer.d.ts.map +1 -0
  311. package/dist/esm/protocols/tokenbridge/tokenTransfer.js +337 -0
  312. package/dist/esm/protocols/tokenbridge/tokenTransfer.js.map +1 -0
  313. package/dist/esm/protocols/wormholeTransfer.d.ts +20 -0
  314. package/dist/esm/protocols/wormholeTransfer.d.ts.map +1 -0
  315. package/dist/esm/protocols/wormholeTransfer.js +2 -0
  316. package/dist/esm/protocols/wormholeTransfer.js.map +1 -0
  317. package/dist/esm/routes/automaticTokenBridgeRoute.d.ts +28 -0
  318. package/dist/esm/routes/automaticTokenBridgeRoute.d.ts.map +1 -0
  319. package/dist/esm/routes/automaticTokenBridgeRoute.js +78 -0
  320. package/dist/esm/routes/automaticTokenBridgeRoute.js.map +1 -0
  321. package/dist/esm/routes/cctp/automatic.d.ts +46 -0
  322. package/dist/esm/routes/cctp/automatic.d.ts.map +1 -0
  323. package/dist/esm/routes/cctp/automatic.js +131 -0
  324. package/dist/esm/routes/cctp/automatic.js.map +1 -0
  325. package/dist/esm/routes/cctp/index.d.ts +3 -0
  326. package/dist/esm/routes/cctp/index.d.ts.map +1 -0
  327. package/dist/esm/routes/cctp/index.js +3 -0
  328. package/dist/esm/routes/cctp/index.js.map +1 -0
  329. package/dist/esm/routes/cctp/manual.d.ts +43 -0
  330. package/dist/esm/routes/cctp/manual.d.ts.map +1 -0
  331. package/dist/esm/routes/cctp/manual.js +109 -0
  332. package/dist/esm/routes/cctp/manual.js.map +1 -0
  333. package/dist/esm/routes/common.d.ts +13 -0
  334. package/dist/esm/routes/common.d.ts.map +1 -0
  335. package/dist/esm/routes/common.js +41 -0
  336. package/dist/esm/routes/common.js.map +1 -0
  337. package/dist/esm/routes/index.d.ts +9 -0
  338. package/dist/esm/routes/index.d.ts.map +1 -0
  339. package/dist/esm/routes/index.js +9 -0
  340. package/dist/esm/routes/index.js.map +1 -0
  341. package/dist/esm/routes/mock/automatic.d.ts +25 -0
  342. package/dist/esm/routes/mock/automatic.d.ts.map +1 -0
  343. package/dist/esm/routes/mock/automatic.js +84 -0
  344. package/dist/esm/routes/mock/automatic.js.map +1 -0
  345. package/dist/esm/routes/mock/index.d.ts +3 -0
  346. package/dist/esm/routes/mock/index.d.ts.map +1 -0
  347. package/dist/esm/routes/mock/index.js +3 -0
  348. package/dist/esm/routes/mock/index.js.map +1 -0
  349. package/dist/esm/routes/mock/manual.d.ts +24 -0
  350. package/dist/esm/routes/mock/manual.d.ts.map +1 -0
  351. package/dist/esm/routes/mock/manual.js +83 -0
  352. package/dist/esm/routes/mock/manual.js.map +1 -0
  353. package/dist/esm/routes/portico/automatic.d.ts +68 -0
  354. package/dist/esm/routes/portico/automatic.d.ts.map +1 -0
  355. package/dist/esm/routes/portico/automatic.js +204 -0
  356. package/dist/esm/routes/portico/automatic.js.map +1 -0
  357. package/dist/esm/routes/portico/index.d.ts +2 -0
  358. package/dist/esm/routes/portico/index.d.ts.map +1 -0
  359. package/dist/esm/routes/portico/index.js +2 -0
  360. package/dist/esm/routes/portico/index.js.map +1 -0
  361. package/dist/esm/routes/portico/manual.d.ts +61 -0
  362. package/dist/esm/routes/portico/manual.d.ts.map +1 -0
  363. package/dist/esm/routes/portico/manual.js +137 -0
  364. package/dist/esm/routes/portico/manual.js.map +1 -0
  365. package/dist/esm/routes/portico/utils.d.ts +1 -0
  366. package/dist/esm/routes/portico/utils.d.ts.map +1 -0
  367. package/dist/esm/routes/portico/utils.js +2 -0
  368. package/dist/esm/routes/portico/utils.js.map +1 -0
  369. package/dist/esm/routes/request.d.ts +25 -0
  370. package/dist/esm/routes/request.d.ts.map +1 -0
  371. package/dist/esm/routes/request.js +61 -0
  372. package/dist/esm/routes/request.js.map +1 -0
  373. package/dist/esm/routes/resolver.d.ts +15 -0
  374. package/dist/esm/routes/resolver.d.ts.map +1 -0
  375. package/dist/esm/routes/resolver.js +83 -0
  376. package/dist/esm/routes/resolver.js.map +1 -0
  377. package/dist/esm/routes/route.d.ts +46 -0
  378. package/dist/esm/routes/route.d.ts.map +1 -0
  379. package/dist/esm/routes/route.js +26 -0
  380. package/dist/esm/routes/route.js.map +1 -0
  381. package/dist/esm/routes/token.d.ts +12 -0
  382. package/dist/esm/routes/token.d.ts.map +1 -0
  383. package/dist/esm/routes/token.js +31 -0
  384. package/dist/esm/routes/token.js.map +1 -0
  385. package/dist/esm/routes/tokenBridge/automatic.d.ts +46 -0
  386. package/dist/esm/routes/tokenBridge/automatic.d.ts.map +1 -0
  387. package/dist/esm/routes/tokenBridge/automatic.js +141 -0
  388. package/dist/esm/routes/tokenBridge/automatic.js.map +1 -0
  389. package/dist/esm/routes/tokenBridge/index.d.ts +3 -0
  390. package/dist/esm/routes/tokenBridge/index.d.ts.map +1 -0
  391. package/dist/esm/routes/tokenBridge/index.js +3 -0
  392. package/dist/esm/routes/tokenBridge/index.js.map +1 -0
  393. package/dist/esm/routes/tokenBridge/manual.d.ts +42 -0
  394. package/dist/esm/routes/tokenBridge/manual.d.ts.map +1 -0
  395. package/dist/esm/routes/tokenBridge/manual.js +83 -0
  396. package/dist/esm/routes/tokenBridge/manual.js.map +1 -0
  397. package/dist/esm/routes/tokenBridgeRoute.d.ts +25 -0
  398. package/dist/esm/routes/tokenBridgeRoute.d.ts.map +1 -0
  399. package/dist/esm/routes/tokenBridgeRoute.js +74 -0
  400. package/dist/esm/routes/tokenBridgeRoute.js.map +1 -0
  401. package/dist/esm/routes/types.d.ts +44 -0
  402. package/dist/esm/routes/types.d.ts.map +1 -0
  403. package/dist/esm/routes/types.js +2 -0
  404. package/dist/esm/routes/types.js.map +1 -0
  405. package/dist/esm/tasks.d.ts +7 -0
  406. package/dist/esm/tasks.d.ts.map +1 -0
  407. package/dist/esm/tasks.js +59 -0
  408. package/dist/esm/tasks.js.map +1 -0
  409. package/dist/esm/types.d.ts +73 -0
  410. package/dist/esm/types.d.ts.map +1 -0
  411. package/dist/esm/types.js +27 -0
  412. package/dist/esm/types.js.map +1 -0
  413. package/dist/esm/whscan-api.d.ts +172 -0
  414. package/dist/esm/whscan-api.d.ts.map +1 -0
  415. package/dist/esm/whscan-api.js +222 -0
  416. package/dist/esm/whscan-api.js.map +1 -0
  417. package/dist/esm/wormhole.d.ts +198 -0
  418. package/dist/esm/wormhole.d.ts.map +1 -0
  419. package/dist/esm/wormhole.js +320 -0
  420. package/dist/esm/wormhole.js.map +1 -0
  421. package/dist/esm/wormholeTransfer.d.ts +78 -0
  422. package/dist/esm/wormholeTransfer.d.ts.map +1 -0
  423. package/dist/esm/wormholeTransfer.js +21 -0
  424. package/dist/esm/wormholeTransfer.js.map +1 -0
  425. package/dist/tsconfig.cjs.tsbuildinfo +1 -0
  426. package/dist/tsconfig.esm.tsbuildinfo +1 -0
  427. package/package.json +51 -0
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ManualTokenTransfer = void 0;
4
+ const sdk_definitions_1 = require("@wormhole-foundation/sdk-definitions");
5
+ const common_1 = require("../../common");
6
+ const types_1 = require("../../types");
7
+ const tokenTransfer_1 = require("./tokenTransfer");
8
+ const utils_1 = require("./utils");
9
+ class ManualTokenTransfer extends tokenTransfer_1.TokenTransfer {
10
+ getTransferState() {
11
+ return this.receipt.state;
12
+ }
13
+ async initiateTransfer(signer) {
14
+ if (!(0, types_1.isCreated)(this.receipt))
15
+ throw (0, types_1.ErrInvalidStateTransition)("Expected transfer details to be created");
16
+ const originTxs = await ManualTokenTransfer.transfer(this.fromChain, this.transfer, signer);
17
+ const state = types_1.TransferState.SourceInitiated;
18
+ this.receipt = { ...this.receipt, state, originTxs };
19
+ return originTxs.map(({ txid }) => txid);
20
+ }
21
+ async fetchAttestation(timeout) {
22
+ if (!(0, types_1.hasSourceInitiated)(this.receipt))
23
+ throw (0, types_1.ErrInvalidStateTransition)("Expected source to be initiated");
24
+ // We already have it, just return it
25
+ if ((0, types_1.hasAttested)(this.receipt))
26
+ return [this.receipt.attestation.id];
27
+ // We dont have the message id yet, grab it
28
+ if (!(0, types_1.hasSourceFinalized)(this.receipt)) {
29
+ const { originTxs } = this.receipt;
30
+ const txid = originTxs[originTxs.length - 1];
31
+ const msgId = await utils_1.TokenTransferUtils.getTransferMessage(this.fromChain, txid.txid, timeout);
32
+ this.receipt = {
33
+ ...this.receipt,
34
+ state: types_1.TransferState.SourceFinalized,
35
+ attestation: { id: msgId },
36
+ };
37
+ }
38
+ // No signed attestation yet, try to grab it
39
+ if (!(0, types_1.hasAttested)(this.receipt)) {
40
+ const vaa = await utils_1.TokenTransferUtils.getTransferVaa(this.wh, this.receipt.attestation.id, timeout);
41
+ this.receipt = {
42
+ ...this.receipt,
43
+ state: types_1.TransferState.Attested,
44
+ attestation: { id: this.receipt.attestation.id, attestation: vaa },
45
+ };
46
+ }
47
+ return [this.receipt.attestation.id];
48
+ }
49
+ // finish the WormholeTransfer by submitting transactions to the destination chain
50
+ // returns a transaction hash
51
+ async completeTransfer(signer) {
52
+ if (!(0, types_1.isAttested)(this.receipt))
53
+ throw (0, types_1.ErrInvalidStateTransition)("Expected transfer to be attested");
54
+ const { attestation: { attestation: vaa }, } = this.receipt;
55
+ const destinationTxs = await ManualTokenTransfer.redeem(this.toChain, vaa, signer);
56
+ this.receipt = {
57
+ ...this.receipt,
58
+ state: types_1.TransferState.DestinationInitiated,
59
+ destinationTxs,
60
+ };
61
+ return this.receipt.destinationTxs.map(({ txid }) => txid);
62
+ }
63
+ static async transfer(chainCtx, transfer, signer) {
64
+ const senderAddress = (0, sdk_definitions_1.toNative)(signer.chain(), signer.address());
65
+ const tb = await chainCtx.getTokenBridge();
66
+ const xfer = tb.transfer(senderAddress, transfer.to, transfer.token.address, transfer.amount, transfer.payload);
67
+ return (0, common_1.signSendWait)(chainCtx, xfer, signer);
68
+ }
69
+ static async redeem(toChain, vaa, signer) {
70
+ const signerAddress = (0, sdk_definitions_1.toNative)(signer.chain(), signer.address());
71
+ const tb = await toChain.getTokenBridge();
72
+ const xfer = tb.redeem(signerAddress, vaa);
73
+ return (0, common_1.signSendWait)(toChain, xfer, signer);
74
+ }
75
+ }
76
+ exports.ManualTokenTransfer = ManualTokenTransfer;
77
+ //# sourceMappingURL=manual.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manual.js","sourceRoot":"","sources":["../../../../src/protocols/tokenBridge/manual.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { Chain, Network, Platform } from "@wormhole-foundation/sdk-base";
2
+ import { AttestationId, AutomaticTokenBridge, ChainContext, ProtocolName, Signer, TokenBridge, TokenTransferDetails, TxHash } from "@wormhole-foundation/sdk-definitions";
3
+ import { AttestationReceipt, TransferReceipt } from "../../types";
4
+ import { Wormhole } from "../../wormhole";
5
+ export type TokenTransferProtocol = "TokenBridge" | "AutomaticTokenBridge";
6
+ export type TokenTransferVAA = TokenBridge.TransferVAA | AutomaticTokenBridge.VAA;
7
+ export type TokenTransferAttestationReceipt = AttestationReceipt<TokenTransferProtocol>;
8
+ export type TokenTransferReceipt<SC extends Chain = Chain, DC extends Chain = Chain> = TransferReceipt<TokenTransferAttestationReceipt, SC, DC>;
9
+ export declare abstract class TokenTransfer<N extends Network = Network, PN extends ProtocolName = ProtocolName> {
10
+ wh: Wormhole<N>;
11
+ fromChain: ChainContext<N, Platform, Chain>;
12
+ toChain: ChainContext<N, Platform, Chain>;
13
+ transfer: TokenTransferDetails;
14
+ receipt: TransferReceipt<AttestationReceipt<PN>>;
15
+ constructor(wh: Wormhole<N>, transfer: TokenTransferDetails, fromChain?: ChainContext<N, Platform, Chain>, toChain?: ChainContext<N, Platform, Chain>);
16
+ abstract initiateTransfer(signer: Signer): Promise<TxHash[]>;
17
+ abstract fetchAttestation(timeout?: number): Promise<AttestationId[]>;
18
+ abstract completeTransfer(signer: Signer): Promise<TxHash[]>;
19
+ }
20
+ //# sourceMappingURL=tokenTransfer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenTransfer.d.ts","sourceRoot":"","sources":["../../../../src/protocols/tokenBridge/tokenTransfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,MAAM,EACN,WAAW,EACX,oBAAoB,EACpB,MAAM,EACP,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAiB,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAAG,sBAAsB,CAAC;AAC3E,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,WAAW,GAAG,oBAAoB,CAAC,GAAG,CAAC;AAElF,MAAM,MAAM,+BAA+B,GAAG,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;AACxF,MAAM,MAAM,oBAAoB,CAC9B,EAAE,SAAS,KAAK,GAAG,KAAK,EACxB,EAAE,SAAS,KAAK,GAAG,KAAK,IACtB,eAAe,CAAC,+BAA+B,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAE7D,8BAAsB,aAAa,CACjC,CAAC,SAAS,OAAO,GAAG,OAAO,EAC3B,EAAE,SAAS,YAAY,GAAG,YAAY;IAEtC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChB,SAAS,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC5C,OAAO,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAE1C,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,OAAO,EAAE,eAAe,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC;gBAG/C,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,EACf,QAAQ,EAAE,oBAAoB,EAC9B,SAAS,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAC5C,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC;IAe5C,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAC5D,QAAQ,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IACrE,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAC7D"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TokenTransfer = void 0;
4
+ const types_1 = require("../../types");
5
+ class TokenTransfer {
6
+ wh;
7
+ fromChain;
8
+ toChain;
9
+ transfer;
10
+ receipt;
11
+ constructor(wh, transfer, fromChain, toChain) {
12
+ this.wh = wh;
13
+ this.transfer = transfer;
14
+ this.fromChain = fromChain ?? wh.getChain(transfer.from.chain);
15
+ this.toChain = toChain ?? wh.getChain(transfer.to.chain);
16
+ this.receipt = {
17
+ from: transfer.from.chain,
18
+ to: transfer.to.chain,
19
+ state: types_1.TransferState.Created,
20
+ };
21
+ }
22
+ }
23
+ exports.TokenTransfer = TokenTransfer;
24
+ //# sourceMappingURL=tokenTransfer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenTransfer.js","sourceRoot":"","sources":["../../../../src/protocols/tokenBridge/tokenTransfer.ts"],"names":[],"mappings":";;;AAWA,uCAAiF;AAYjF,MAAsB,aAAa;IAIjC,EAAE,CAAc;IAChB,SAAS,CAAmC;IAC5C,OAAO,CAAmC;IAE1C,QAAQ,CAAuB;IAC/B,OAAO,CAA0C;IAEjD,YACE,EAAe,EACf,QAA8B,EAC9B,SAA4C,EAC5C,OAA0C;QAE1C,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAEzB,IAAI,CAAC,SAAS,GAAG,SAAS,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAEzD,IAAI,CAAC,OAAO,GAAG;YACb,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;YACzB,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,KAAK;YACrB,KAAK,EAAE,qBAAa,CAAC,OAAO;SAC7B,CAAC;IACJ,CAAC;CAKF;AAjCD,sCAiCC"}
@@ -0,0 +1,25 @@
1
+ import { Chain, ChainToPlatform, Network, Platform } from "@wormhole-foundation/sdk-base";
2
+ import { ChainContext, TokenId, TokenTransferDetails, TransactionId, TxHash, WormholeMessageId } from "@wormhole-foundation/sdk-definitions";
3
+ import { AttestationReceipt, TransferQuote, TransferReceipt } from "../../types";
4
+ import { Wormhole } from "../../wormhole";
5
+ import { TokenTransfer, TokenTransferProtocol, TokenTransferReceipt, TokenTransferVAA } from "./tokenTransfer";
6
+ export declare const truncate: (amt: bigint, decimals: bigint) => bigint;
7
+ export declare const scale: (amt: bigint, decimals: bigint) => bigint;
8
+ export declare const _dedust: (decimals: bigint) => (amt: bigint) => bigint;
9
+ export declare const _mintable: (srcDecimals: bigint, dstDecimals: bigint) => (amt: bigint) => bigint;
10
+ export declare class TokenTransferUtils {
11
+ static from<N extends Network>(wh: Wormhole<N>, from: TokenTransferDetails, timeout?: number, fromChain?: ChainContext<N, Platform, Chain>, toChain?: ChainContext<N, Platform, Chain>): Promise<TokenTransfer<N>>;
12
+ static from<N extends Network>(wh: Wormhole<N>, from: WormholeMessageId, timeout?: number, fromChain?: ChainContext<N, Platform, Chain>, toChain?: ChainContext<N, Platform, Chain>): Promise<TokenTransfer<N>>;
13
+ static from<N extends Network>(wh: Wormhole<N>, from: TransactionId, timeout?: number, fromChain?: ChainContext<N, Platform, Chain>, toChain?: ChainContext<N, Platform, Chain>): Promise<TokenTransfer<N>>;
14
+ private static fromIdentifier;
15
+ private static fromTransaction;
16
+ static getTransferMessage<N extends Network>(chain: ChainContext<N, Platform, Chain>, txid: TxHash, timeout?: number): Promise<WormholeMessageId>;
17
+ static getTransferVaa<N extends Network>(wh: Wormhole<N>, key: WormholeMessageId | TxHash, timeout?: number): Promise<TokenTransferVAA>;
18
+ static lookupDestinationToken<N extends Network, SC extends Chain, DC extends Chain>(srcChain: ChainContext<N, ChainToPlatform<SC>, SC>, dstChain: ChainContext<N, ChainToPlatform<DC>, DC>, token: TokenId<SC>): Promise<TokenId<DC>>;
19
+ static validateTransferDetails<N extends Network>(wh: Wormhole<N>, transfer: TokenTransferDetails, fromChain?: ChainContext<N, Platform, Chain>, toChain?: ChainContext<N, Platform, Chain>): void;
20
+ static quoteTransfer<N extends Network>(srcChain: ChainContext<N, Platform, Chain>, dstChain: ChainContext<N, Platform, Chain>, transfer: TokenTransferDetails): Promise<TransferQuote>;
21
+ static isTransferComplete<N extends Network>(toChain: ChainContext<N, Platform, Chain>, receipt: TransferReceipt<AttestationReceipt<TokenTransferProtocol>>): Promise<boolean>;
22
+ static track<N extends Network, SC extends Chain, DC extends Chain>(wh: Wormhole<N>, receipt: TokenTransferReceipt<SC, DC>, timeout?: number, fromChain?: ChainContext<N, ChainToPlatform<SC>, SC>, toChain?: ChainContext<N, ChainToPlatform<DC>, DC>): AsyncGenerator<TokenTransferReceipt<SC, DC>>;
23
+ static destinationOverrides<N extends Network>(srcChain: ChainContext<N, Platform, Chain>, dstChain: ChainContext<N, Platform, Chain>, transfer: TokenTransferDetails): Promise<TokenTransferDetails>;
24
+ }
25
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/protocols/tokenBridge/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,331 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TokenTransferUtils = exports._mintable = exports._dedust = exports.scale = exports.truncate = void 0;
4
+ const sdk_base_1 = require("@wormhole-foundation/sdk-base");
5
+ const sdk_definitions_1 = require("@wormhole-foundation/sdk-definitions");
6
+ const config_1 = require("../../config");
7
+ const types_1 = require("../../types");
8
+ const wormhole_1 = require("../../wormhole");
9
+ const automatic_1 = require("./automatic");
10
+ const manual_1 = require("./manual");
11
+ // truncate the amount for over-the-wire max representation
12
+ const truncate = (amt, decimals) => decimals > 8 ? amt / 10n ** (decimals - 8n) : amt;
13
+ exports.truncate = truncate;
14
+ // scale by number of decimals, pair with truncate
15
+ const scale = (amt, decimals) => decimals > 8 ? amt * 10n ** (decimals - 8n) : amt;
16
+ exports.scale = scale;
17
+ // dedust for source using the number of decimals on the source chain
18
+ // but scale back to original decimals
19
+ const _dedust = (decimals) => (amt) => (0, exports.scale)((0, exports.truncate)(amt, decimals), decimals);
20
+ exports._dedust = _dedust;
21
+ // truncate and rescale to fit destination token
22
+ const _mintable = (srcDecimals, dstDecimals) => (amt) => (0, exports.scale)((0, exports.truncate)(amt, srcDecimals), dstDecimals);
23
+ exports._mintable = _mintable;
24
+ class TokenTransferUtils {
25
+ static async from(wh, from, timeout = 6000, fromChain, toChain) {
26
+ if ((0, sdk_definitions_1.isTokenTransferDetails)(from)) {
27
+ fromChain = fromChain ?? wh.getChain(from.from.chain);
28
+ toChain = toChain ?? wh.getChain(from.to.chain);
29
+ // throws if invalid
30
+ this.validateTransferDetails(wh, from, fromChain, toChain);
31
+ // Apply hackery
32
+ from = {
33
+ ...from,
34
+ ...(await this.destinationOverrides(fromChain, toChain, from)),
35
+ };
36
+ if (from.automatic) {
37
+ return new automatic_1.AutomaticTokenTransfer(wh, from, fromChain, toChain);
38
+ }
39
+ else {
40
+ return new manual_1.ManualTokenTransfer(wh, from, fromChain, toChain);
41
+ }
42
+ }
43
+ let tt;
44
+ if ((0, sdk_definitions_1.isWormholeMessageId)(from)) {
45
+ tt = await this.fromIdentifier(wh, from, timeout);
46
+ }
47
+ else if ((0, sdk_definitions_1.isTransactionIdentifier)(from)) {
48
+ tt = await this.fromTransaction(wh, from, timeout, fromChain);
49
+ }
50
+ else {
51
+ throw new Error("Invalid `from` parameter for TokenTransfer");
52
+ }
53
+ tt.fromChain = fromChain ?? wh.getChain(tt.transfer.from.chain);
54
+ tt.toChain = toChain ?? wh.getChain(tt.transfer.to.chain);
55
+ await tt.fetchAttestation(timeout);
56
+ return tt;
57
+ }
58
+ // init from the seq id
59
+ static async fromIdentifier(wh, id, timeout) {
60
+ const vaa = await this.getTransferVaa(wh, id, timeout);
61
+ const automatic = vaa.protocolName === "AutomaticTokenBridge";
62
+ // TODO: the `from.address` here is a lie, but we don't
63
+ // immediately have enough info to get the _correct_ one
64
+ let from = { chain: vaa.emitterChain, address: vaa.emitterAddress };
65
+ let { token, to } = vaa.payload;
66
+ const rescale = (amt, decimals) => decimals > 8 ? amt * 10n ** (decimals - 8n) : amt;
67
+ const amount = rescale(token.amount, await wh.getDecimals(token.chain, token.address));
68
+ let nativeGasAmount = 0n;
69
+ if (automatic) {
70
+ nativeGasAmount = vaa.payload.payload.toNativeTokenAmount;
71
+ from = { chain: vaa.emitterChain, address: vaa.payload.from };
72
+ to = { chain: vaa.payload.to.chain, address: vaa.payload.payload.targetRecipient };
73
+ }
74
+ const details = {
75
+ token,
76
+ amount,
77
+ from,
78
+ to,
79
+ automatic,
80
+ nativeGas: nativeGasAmount,
81
+ };
82
+ let tt;
83
+ if (automatic) {
84
+ tt = new automatic_1.AutomaticTokenTransfer(wh, details);
85
+ }
86
+ else {
87
+ tt = new manual_1.ManualTokenTransfer(wh, details);
88
+ }
89
+ tt.receipt = {
90
+ ...tt.receipt,
91
+ state: types_1.TransferState.Attested,
92
+ attestation: { id: id, attestation: vaa },
93
+ };
94
+ return tt;
95
+ }
96
+ static async fromTransaction(wh, from, timeout, fromChain) {
97
+ fromChain = fromChain ?? wh.getChain(from.chain);
98
+ const msg = await this.getTransferMessage(fromChain, from.txid, timeout);
99
+ return await this.fromIdentifier(wh, msg, timeout);
100
+ }
101
+ static async getTransferMessage(chain, txid, timeout) {
102
+ const whm = await wormhole_1.Wormhole.parseMessageFromTx(chain, txid, timeout);
103
+ if (whm.length !== 1)
104
+ throw new Error("Expected a single Wormhole Message, got: " + whm.length);
105
+ return whm[0];
106
+ }
107
+ static async getTransferVaa(wh, key, timeout) {
108
+ const vaa = typeof key === "string"
109
+ ? await wh.getVaaByTxHash(key, sdk_definitions_1.TokenBridge.getTransferDiscriminator(), timeout)
110
+ : await wh.getVaa(key, sdk_definitions_1.TokenBridge.getTransferDiscriminator(), timeout);
111
+ if (!vaa)
112
+ throw new Error(`No VAA available after retries exhausted`);
113
+ // Check if its automatic and re-de-serialize
114
+ if (vaa.payloadName === "TransferWithPayload") {
115
+ const { chain, address } = vaa.payload.to;
116
+ const { tokenBridgeRelayer } = wh.config.chains[chain].contracts;
117
+ const relayerAddress = tokenBridgeRelayer ? (0, sdk_definitions_1.toUniversal)(chain, tokenBridgeRelayer) : null;
118
+ // If the target address is the relayer address, expect its an automatic token bridge vaa
119
+ if (!!relayerAddress && address.equals(relayerAddress)) {
120
+ return (0, sdk_definitions_1.deserialize)("AutomaticTokenBridge:TransferWithRelay", (0, sdk_definitions_1.serialize)(vaa));
121
+ }
122
+ }
123
+ return vaa;
124
+ }
125
+ // Lookup the token id for the destination chain given the source chain
126
+ // and token id
127
+ static async lookupDestinationToken(srcChain, dstChain, token) {
128
+ // that will be minted when the transfer is redeemed
129
+ let lookup;
130
+ if ((0, sdk_definitions_1.isNative)(token.address)) {
131
+ // if native, get the wrapped asset id
132
+ lookup = await srcChain.getNativeWrappedTokenId();
133
+ }
134
+ else {
135
+ try {
136
+ const tb = await srcChain.getTokenBridge();
137
+ // otherwise, check to see if it is a wrapped token locally
138
+ lookup = await tb.getOriginalAsset(token.address);
139
+ }
140
+ catch (e) {
141
+ // not a from-chain native wormhole-wrapped one
142
+ lookup = token;
143
+ }
144
+ }
145
+ // if the token id is actually native to the destination, return it
146
+ if (lookup.chain === dstChain.chain) {
147
+ return lookup;
148
+ }
149
+ // otherwise, figure out what the token address representing the wormhole-wrapped token we're transferring
150
+ const dstTb = await dstChain.getTokenBridge();
151
+ const dstAddress = await dstTb.getWrappedAsset(lookup);
152
+ return { chain: dstChain.chain, address: dstAddress };
153
+ }
154
+ static validateTransferDetails(wh, transfer, fromChain, toChain) {
155
+ if (transfer.amount === 0n)
156
+ throw new Error("Amount cannot be 0");
157
+ if (transfer.from.chain === transfer.to.chain)
158
+ throw new Error("Cannot transfer to the same chain");
159
+ fromChain = fromChain ?? wh.getChain(transfer.from.chain);
160
+ toChain = toChain ?? wh.getChain(transfer.to.chain);
161
+ if (transfer.automatic) {
162
+ if (transfer.payload)
163
+ throw new Error("Payload with automatic delivery is not supported");
164
+ if (!fromChain.supportsAutomaticTokenBridge())
165
+ throw new Error(`Automatic Token Bridge not supported on ${transfer.from.chain}`);
166
+ if (!toChain.supportsAutomaticTokenBridge())
167
+ throw new Error(`Automatic Token Bridge not supported on ${transfer.to.chain}`);
168
+ const nativeGas = transfer.nativeGas ?? 0n;
169
+ if (nativeGas > transfer.amount)
170
+ throw new Error(`Native gas amount > amount (${nativeGas} > ${transfer.amount})`);
171
+ }
172
+ else {
173
+ if (transfer.nativeGas)
174
+ throw new Error("Gas Dropoff is only supported for automatic transfers");
175
+ if (!fromChain.supportsTokenBridge())
176
+ throw new Error(`Token Bridge not supported on ${transfer.from.chain}`);
177
+ if (!toChain.supportsTokenBridge())
178
+ throw new Error(`Token Bridge not supported on ${transfer.to.chain}`);
179
+ }
180
+ }
181
+ static async quoteTransfer(srcChain, dstChain, transfer) {
182
+ const dstToken = await this.lookupDestinationToken(srcChain, dstChain, transfer.token);
183
+ const srcToken = (0, sdk_definitions_1.isNative)(transfer.token.address)
184
+ ? await srcChain.getNativeWrappedTokenId()
185
+ : transfer.token;
186
+ const dstDecimals = await dstChain.getDecimals(dstToken.address);
187
+ const srcDecimals = await srcChain.getDecimals(srcToken.address);
188
+ const dedust = (0, exports._dedust)(srcDecimals);
189
+ const mintable = (0, exports._mintable)(srcDecimals, dstDecimals);
190
+ // dedust for transfer over the bridge which truncates to 8 decimals
191
+ let srcAmount = dedust(transfer.amount);
192
+ let dstAmount = mintable(transfer.amount);
193
+ if (!transfer.automatic) {
194
+ return {
195
+ sourceToken: { token: srcToken, amount: srcAmount },
196
+ destinationToken: { token: dstToken, amount: dstAmount },
197
+ };
198
+ }
199
+ // Otherwise automatic
200
+ // If a native gas dropoff is requested, remove that from the amount they'll get
201
+ const _nativeGas = transfer.nativeGas ? mintable(transfer.nativeGas) : 0n;
202
+ dstAmount -= _nativeGas;
203
+ // The fee is also removed from the amount transferred
204
+ // quoted on the source chain
205
+ const stb = await srcChain.getAutomaticTokenBridge();
206
+ const fee = await stb.getRelayerFee(transfer.from.address, transfer.to, srcToken.address);
207
+ dstAmount -= mintable(fee);
208
+ // The expected destination gas can be pulled from the destination token bridge
209
+ let destinationNativeGas = 0n;
210
+ if (transfer.nativeGas) {
211
+ const dtb = await dstChain.getAutomaticTokenBridge();
212
+ destinationNativeGas = await dtb.nativeTokenAmount(dstToken.address, _nativeGas);
213
+ }
214
+ return {
215
+ sourceToken: {
216
+ token: srcToken,
217
+ amount: srcAmount,
218
+ },
219
+ destinationToken: { token: dstToken, amount: dstAmount },
220
+ relayFee: { token: srcToken, amount: fee },
221
+ destinationNativeGas,
222
+ };
223
+ }
224
+ static async isTransferComplete(toChain, receipt) {
225
+ if (!(0, types_1.isAttested)(receipt))
226
+ return false;
227
+ const vaa = (0, sdk_definitions_1.deserialize)("TokenBridge:TransferWithPayload", (0, sdk_definitions_1.serialize)(receipt.attestation.attestation));
228
+ const tb = await toChain.getTokenBridge();
229
+ return tb.isTransferCompleted(vaa);
230
+ }
231
+ // AsyncGenerator fn that produces status updates through an async generator
232
+ // eventually producing a receipt
233
+ // can be called repeatedly so the receipt is updated as it moves through the
234
+ // steps of the transfer
235
+ static async *track(wh, receipt, timeout = config_1.DEFAULT_TASK_TIMEOUT, fromChain, toChain) {
236
+ const start = Date.now();
237
+ const leftover = (start, max) => Math.max(max - (Date.now() - start), 0);
238
+ fromChain = fromChain ?? wh.getChain(receipt.from);
239
+ toChain = toChain ?? wh.getChain(receipt.to);
240
+ // Check the source chain for initiation transaction
241
+ // and capture the message id
242
+ if ((0, types_1.isSourceInitiated)(receipt)) {
243
+ if (receipt.originTxs.length === 0)
244
+ throw "Origin transactions required to fetch message id";
245
+ const { txid } = receipt.originTxs[receipt.originTxs.length - 1];
246
+ const msg = await this.getTransferMessage(fromChain, txid, leftover(start, timeout));
247
+ receipt = {
248
+ ...receipt,
249
+ state: types_1.TransferState.SourceFinalized,
250
+ attestation: { id: msg },
251
+ };
252
+ yield receipt;
253
+ }
254
+ // If the source is finalized, we need to fetch the signed attestation
255
+ // so that we may deliver it to the destination chain
256
+ // or at least track the transfer through its progress
257
+ if ((0, types_1.isSourceFinalized)(receipt)) {
258
+ if (!receipt.attestation.id)
259
+ throw "Attestation id required to fetch attestation";
260
+ const { id } = receipt.attestation;
261
+ const attestation = await this.getTransferVaa(wh, id, leftover(start, timeout));
262
+ receipt = {
263
+ ...receipt,
264
+ attestation: { id, attestation },
265
+ state: types_1.TransferState.Attested,
266
+ };
267
+ yield receipt;
268
+ }
269
+ // First try to grab the tx status from the API
270
+ // Note: this requires a subsequent async step on the backend
271
+ // to have the dest txid populated, so it may be delayed by some time
272
+ if ((0, types_1.isAttested)(receipt) || (0, types_1.isSourceFinalized)(receipt)) {
273
+ if (!receipt.attestation.id)
274
+ throw "Attestation id required to fetch redeem tx";
275
+ const { id } = receipt.attestation;
276
+ const txStatus = await wh.getTransactionStatus(id, leftover(start, timeout));
277
+ if (txStatus && txStatus.globalTx?.destinationTx?.txHash) {
278
+ const { chainId, txHash } = txStatus.globalTx.destinationTx;
279
+ receipt = {
280
+ ...receipt,
281
+ destinationTxs: [{ chain: (0, sdk_base_1.toChain)(chainId), txid: txHash }],
282
+ state: types_1.TransferState.DestinationFinalized,
283
+ };
284
+ }
285
+ yield receipt;
286
+ }
287
+ // Fall back to asking the destination chain if this VAA has been redeemed
288
+ // Note: We do not get any destinationTxs with this method
289
+ if ((0, types_1.isAttested)(receipt)) {
290
+ if (!receipt.attestation.attestation)
291
+ throw (0, types_1.ErrInvalidStateTransition)("Signed Attestation required to check for redeem");
292
+ let isComplete = await this.isTransferComplete(toChain, receipt);
293
+ if (isComplete) {
294
+ receipt = {
295
+ ...receipt,
296
+ state: types_1.TransferState.DestinationFinalized,
297
+ };
298
+ }
299
+ yield receipt;
300
+ }
301
+ yield receipt;
302
+ }
303
+ static async destinationOverrides(srcChain, dstChain, transfer) {
304
+ const _transfer = { ...transfer };
305
+ // Bit of (temporary) hackery until solana contracts support being
306
+ // sent a VAA with the primary address
307
+ // Note: Do _not_ override if automatic or if the destination token is native
308
+ // gas token
309
+ if (transfer.to.chain === "Solana" && !_transfer.automatic) {
310
+ const destinationToken = await this.lookupDestinationToken(srcChain, dstChain, _transfer.token);
311
+ // TODO: If the token is native, no need to overwrite the destination address check for native
312
+ //if (!destinationToken.address.equals((await dstChain.getNativeWrappedTokenId()).address))
313
+ _transfer.to = await dstChain.getTokenAccount(_transfer.to.address, destinationToken.address);
314
+ }
315
+ if (_transfer.to.chain === "Sei") {
316
+ if (_transfer.to.chain === "Sei" && _transfer.payload)
317
+ throw new Error("Arbitrary payloads unsupported for Sei");
318
+ // For sei, we reserve the payload for a token transfer through the sei bridge.
319
+ _transfer.payload = sdk_base_1.encoding.bytes.encode(JSON.stringify({
320
+ basic_recipient: {
321
+ recipient: sdk_base_1.encoding.b64.encode(_transfer.to.address.toString()),
322
+ },
323
+ }));
324
+ _transfer.to = wormhole_1.Wormhole.chainAddress(_transfer.to.chain, dstChain.config.contracts.translator);
325
+ }
326
+ return _transfer;
327
+ }
328
+ }
329
+ exports.TokenTransferUtils = TokenTransferUtils;
330
+ TokenTransferUtils;
331
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/protocols/tokenBridge/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { Chain, Network } from "@wormhole-foundation/sdk-base";
2
+ import { AttestationId, AutomaticTokenBridge, ChainContext, Signer, TokenBridge, TokenId, TokenTransferDetails, TransactionId, TxHash, WormholeMessageId } from "@wormhole-foundation/sdk-definitions";
3
+ import { AttestationReceipt, TransferQuote, TransferReceipt, TransferState } from "../types";
4
+ import { Wormhole } from "../wormhole";
5
+ import { WormholeTransfer } from "./wormholeTransfer";
6
+ export type TokenTransferProtocol = "TokenBridge" | "AutomaticTokenBridge";
7
+ export type TokenTransferVAA = TokenBridge.TransferVAA | AutomaticTokenBridge.VAA;
8
+ export type TokenTransferAttestationReceipt = AttestationReceipt<TokenTransferProtocol>;
9
+ export type TokenTransferReceipt<SC extends Chain = Chain, DC extends Chain = Chain> = TransferReceipt<TokenTransferAttestationReceipt, SC, DC>;
10
+ export declare class TokenTransfer<N extends Network = Network> implements WormholeTransfer<TokenTransferProtocol> {
11
+ private readonly wh;
12
+ fromChain: ChainContext<N, Chain>;
13
+ toChain: ChainContext<N, Chain>;
14
+ private _state;
15
+ transfer: TokenTransferDetails;
16
+ txids: TransactionId[];
17
+ attestations?: AttestationReceipt<TokenTransferProtocol>[];
18
+ private constructor();
19
+ getTransferState(): TransferState;
20
+ static from<N extends Network>(wh: Wormhole<N>, from: TokenTransferDetails, timeout?: number, fromChain?: ChainContext<N, Chain>, toChain?: ChainContext<N, Chain>): Promise<TokenTransfer<N>>;
21
+ static from<N extends Network>(wh: Wormhole<N>, from: WormholeMessageId, timeout?: number, fromChain?: ChainContext<N, Chain>, toChain?: ChainContext<N, Chain>): Promise<TokenTransfer<N>>;
22
+ static from<N extends Network>(wh: Wormhole<N>, from: TransactionId, timeout?: number, fromChain?: ChainContext<N, Chain>, toChain?: ChainContext<N, Chain>): Promise<TokenTransfer<N>>;
23
+ private static fromIdentifier;
24
+ private static fromTransaction;
25
+ initiateTransfer(signer: Signer): Promise<TxHash[]>;
26
+ fetchAttestation(timeout?: number): Promise<AttestationId[]>;
27
+ completeTransfer(signer: Signer): Promise<TxHash[]>;
28
+ static transfer<N extends Network>(fromChain: ChainContext<N, Chain>, transfer: TokenTransferDetails, signer: Signer<N, Chain>): Promise<TransactionId[]>;
29
+ static redeem<N extends Network>(toChain: ChainContext<N, Chain>, vaa: TokenTransferVAA, signer: Signer<N, Chain>): Promise<TransactionId[]>;
30
+ static isTransferComplete<N extends Network, C extends Chain>(toChain: ChainContext<N, C>, vaa: TokenTransferVAA): Promise<boolean>;
31
+ static getTransferMessage<N extends Network, C extends Chain>(chain: ChainContext<N, C>, txid: TxHash, timeout?: number): Promise<WormholeMessageId>;
32
+ static getTransferVaa<N extends Network>(wh: Wormhole<N>, key: WormholeMessageId | TxHash, timeout?: number): Promise<TokenTransferVAA>;
33
+ static lookupDestinationToken<N extends Network, SC extends Chain, DC extends Chain>(srcChain: ChainContext<N, SC>, dstChain: ChainContext<N, DC>, token: TokenId<SC>): Promise<TokenId<DC>>;
34
+ static validateTransferDetails<N extends Network>(wh: Wormhole<N>, transfer: TokenTransferDetails, fromChain?: ChainContext<N, Chain>, toChain?: ChainContext<N, Chain>): void;
35
+ static quoteTransfer<N extends Network>(wh: Wormhole<N>, srcChain: ChainContext<N, Chain>, dstChain: ChainContext<N, Chain>, transfer: TokenTransferDetails): Promise<TransferQuote>;
36
+ static destinationOverrides<N extends Network>(srcChain: ChainContext<N, Chain>, dstChain: ChainContext<N, Chain>, transfer: TokenTransferDetails): Promise<TokenTransferDetails>;
37
+ static getReceipt<N extends Network>(xfer: TokenTransfer<N>): TokenTransferReceipt;
38
+ static track<N extends Network, SC extends Chain, DC extends Chain>(wh: Wormhole<N>, receipt: TokenTransferReceipt<SC, DC>, timeout?: number, fromChain?: ChainContext<N, SC>, toChain?: ChainContext<N, DC>): AsyncGenerator<TokenTransferReceipt<SC, DC>>;
39
+ }
40
+ //# sourceMappingURL=tokenTransfer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenTransfer.d.ts","sourceRoot":"","sources":["../../../src/protocols/tokenTransfer.ts"],"names":[],"mappings":"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"}