@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,73 @@
1
+ import { toNative, } from "@wormhole-foundation/sdk-definitions";
2
+ import { signSendWait } from "../../common";
3
+ import { ErrInvalidStateTransition, TransferState, hasAttested, hasSourceFinalized, hasSourceInitiated, isAttested, isCreated, } from "../../types";
4
+ import { TokenTransfer } from "./tokenTransfer";
5
+ import { TokenTransferUtils } from "./utils";
6
+ export class ManualTokenTransfer extends TokenTransfer {
7
+ getTransferState() {
8
+ return this.receipt.state;
9
+ }
10
+ async initiateTransfer(signer) {
11
+ if (!isCreated(this.receipt))
12
+ throw ErrInvalidStateTransition("Expected transfer details to be created");
13
+ const originTxs = await ManualTokenTransfer.transfer(this.fromChain, this.transfer, signer);
14
+ const state = TransferState.SourceInitiated;
15
+ this.receipt = { ...this.receipt, state, originTxs };
16
+ return originTxs.map(({ txid }) => txid);
17
+ }
18
+ async fetchAttestation(timeout) {
19
+ if (!hasSourceInitiated(this.receipt))
20
+ throw ErrInvalidStateTransition("Expected source to be initiated");
21
+ // We already have it, just return it
22
+ if (hasAttested(this.receipt))
23
+ return [this.receipt.attestation.id];
24
+ // We dont have the message id yet, grab it
25
+ if (!hasSourceFinalized(this.receipt)) {
26
+ const { originTxs } = this.receipt;
27
+ const txid = originTxs[originTxs.length - 1];
28
+ const msgId = await TokenTransferUtils.getTransferMessage(this.fromChain, txid.txid, timeout);
29
+ this.receipt = {
30
+ ...this.receipt,
31
+ state: TransferState.SourceFinalized,
32
+ attestation: { id: msgId },
33
+ };
34
+ }
35
+ // No signed attestation yet, try to grab it
36
+ if (!hasAttested(this.receipt)) {
37
+ const vaa = await TokenTransferUtils.getTransferVaa(this.wh, this.receipt.attestation.id, timeout);
38
+ this.receipt = {
39
+ ...this.receipt,
40
+ state: TransferState.Attested,
41
+ attestation: { id: this.receipt.attestation.id, attestation: vaa },
42
+ };
43
+ }
44
+ return [this.receipt.attestation.id];
45
+ }
46
+ // finish the WormholeTransfer by submitting transactions to the destination chain
47
+ // returns a transaction hash
48
+ async completeTransfer(signer) {
49
+ if (!isAttested(this.receipt))
50
+ throw ErrInvalidStateTransition("Expected transfer to be attested");
51
+ const { attestation: { attestation: vaa }, } = this.receipt;
52
+ const destinationTxs = await ManualTokenTransfer.redeem(this.toChain, vaa, signer);
53
+ this.receipt = {
54
+ ...this.receipt,
55
+ state: TransferState.DestinationInitiated,
56
+ destinationTxs,
57
+ };
58
+ return this.receipt.destinationTxs.map(({ txid }) => txid);
59
+ }
60
+ static async transfer(chainCtx, transfer, signer) {
61
+ const senderAddress = toNative(signer.chain(), signer.address());
62
+ const tb = await chainCtx.getTokenBridge();
63
+ const xfer = tb.transfer(senderAddress, transfer.to, transfer.token.address, transfer.amount, transfer.payload);
64
+ return signSendWait(chainCtx, xfer, signer);
65
+ }
66
+ static async redeem(toChain, vaa, signer) {
67
+ const signerAddress = toNative(signer.chain(), signer.address());
68
+ const tb = await toChain.getTokenBridge();
69
+ const xfer = tb.redeem(signerAddress, vaa);
70
+ return signSendWait(toChain, xfer, signer);
71
+ }
72
+ }
73
+ //# sourceMappingURL=manual.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manual.js","sourceRoot":"","sources":["../../../../src/protocols/tokenBridge/manual.ts"],"names":[],"mappings":"AACA,OAAO,EAQL,QAAQ,GACT,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EACL,yBAAyB,EAEzB,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,UAAU,EACV,SAAS,GACV,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAG7C,MAAM,OAAO,mBACX,SAAQ,aAAoB;IAG5B,gBAAgB;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,MAAc;QACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC;YAC1B,MAAM,yBAAyB,CAAC,yCAAyC,CAAC,CAAC;QAE7E,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC5F,MAAM,KAAK,GAAG,aAAa,CAAC,eAAe,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,EAA2C,CAAC;QAE9F,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAgB;QACrC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC;YACnC,MAAM,yBAAyB,CAAC,iCAAiC,CAAC,CAAC;QAErE,qCAAqC;QACrC,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAEpE,2CAA2C;QAC3C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YACrC,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;YACnC,MAAM,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;YAC9C,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC9F,IAAI,CAAC,OAAO,GAAG;gBACb,GAAG,IAAI,CAAC,OAAO;gBACf,KAAK,EAAE,aAAa,CAAC,eAAe;gBACpC,WAAW,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE;aAC3B,CAAC;SACH;QAED,4CAA4C;QAC5C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC9B,MAAM,GAAG,GAAG,MAAM,kBAAkB,CAAC,cAAc,CACjD,IAAI,CAAC,EAAE,EACP,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAC3B,OAAO,CACR,CAAC;YACF,IAAI,CAAC,OAAO,GAAG;gBACb,GAAG,IAAI,CAAC,OAAO;gBACf,KAAK,EAAE,aAAa,CAAC,QAAQ;gBAC7B,WAAW,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE;aACnE,CAAC;SACH;QAED,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,kFAAkF;IAClF,6BAA6B;IAC7B,KAAK,CAAC,gBAAgB,CAAC,MAAc;QACnC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;YAC3B,MAAM,yBAAyB,CAAC,kCAAkC,CAAC,CAAC;QAEtE,MAAM,EACJ,WAAW,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,GAClC,GAAG,IAAI,CAAC,OAAO,CAAC;QAEjB,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAAC,MAAM,CACrD,IAAI,CAAC,OAAO,EACZ,GAA8B,EAC9B,MAAM,CACP,CAAC;QAEF,IAAI,CAAC,OAAO,GAAG;YACb,GAAG,IAAI,CAAC,OAAO;YACf,KAAK,EAAE,aAAa,CAAC,oBAAoB;YACzC,cAAc;SACf,CAAC;QAEF,OAAO,IAAI,CAAC,OAAO,CAAC,cAAe,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,QAAQ,CACnB,QAA0C,EAC1C,QAA8B,EAC9B,MAAwB;QAExB,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,EAAE,CAAC,QAAQ,CACtB,aAAa,EACb,QAAQ,CAAC,EAAE,EACX,QAAQ,CAAC,KAAK,CAAC,OAAO,EACtB,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,OAAO,CACjB,CAAC;QACF,OAAO,YAAY,CAA2B,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CACjB,OAAyC,EACzC,GAA4B,EAC5B,MAAwB;QAExB,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QACjE,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC;QAC1C,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;QAC3C,OAAO,YAAY,CAAW,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC;CACF"}
@@ -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,20 @@
1
+ import { TransferState } from "../../types";
2
+ export class TokenTransfer {
3
+ wh;
4
+ fromChain;
5
+ toChain;
6
+ transfer;
7
+ receipt;
8
+ constructor(wh, transfer, fromChain, toChain) {
9
+ this.wh = wh;
10
+ this.transfer = transfer;
11
+ this.fromChain = fromChain ?? wh.getChain(transfer.from.chain);
12
+ this.toChain = toChain ?? wh.getChain(transfer.to.chain);
13
+ this.receipt = {
14
+ from: transfer.from.chain,
15
+ to: transfer.to.chain,
16
+ state: TransferState.Created,
17
+ };
18
+ }
19
+ }
20
+ //# sourceMappingURL=tokenTransfer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenTransfer.js","sourceRoot":"","sources":["../../../../src/protocols/tokenBridge/tokenTransfer.ts"],"names":[],"mappings":"AAWA,OAAO,EAAuC,aAAa,EAAE,MAAM,aAAa,CAAC;AAYjF,MAAM,OAAgB,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,aAAa,CAAC,OAAO;SAC7B,CAAC;IACJ,CAAC;CAKF"}
@@ -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,323 @@
1
+ import { encoding, toChain as toChainName, } from "@wormhole-foundation/sdk-base";
2
+ import { TokenBridge, deserialize, isNative, isTokenTransferDetails, isTransactionIdentifier, isWormholeMessageId, serialize, toUniversal, } from "@wormhole-foundation/sdk-definitions";
3
+ import { DEFAULT_TASK_TIMEOUT } from "../../config";
4
+ import { ErrInvalidStateTransition, TransferState, isAttested, isSourceFinalized, isSourceInitiated, } from "../../types";
5
+ import { Wormhole } from "../../wormhole";
6
+ import { AutomaticTokenTransfer } from "./automatic";
7
+ import { ManualTokenTransfer } from "./manual";
8
+ // truncate the amount for over-the-wire max representation
9
+ export const truncate = (amt, decimals) => decimals > 8 ? amt / 10n ** (decimals - 8n) : amt;
10
+ // scale by number of decimals, pair with truncate
11
+ export const scale = (amt, decimals) => decimals > 8 ? amt * 10n ** (decimals - 8n) : amt;
12
+ // dedust for source using the number of decimals on the source chain
13
+ // but scale back to original decimals
14
+ export const _dedust = (decimals) => (amt) => scale(truncate(amt, decimals), decimals);
15
+ // truncate and rescale to fit destination token
16
+ export const _mintable = (srcDecimals, dstDecimals) => (amt) => scale(truncate(amt, srcDecimals), dstDecimals);
17
+ export class TokenTransferUtils {
18
+ static async from(wh, from, timeout = 6000, fromChain, toChain) {
19
+ if (isTokenTransferDetails(from)) {
20
+ fromChain = fromChain ?? wh.getChain(from.from.chain);
21
+ toChain = toChain ?? wh.getChain(from.to.chain);
22
+ // throws if invalid
23
+ this.validateTransferDetails(wh, from, fromChain, toChain);
24
+ // Apply hackery
25
+ from = {
26
+ ...from,
27
+ ...(await this.destinationOverrides(fromChain, toChain, from)),
28
+ };
29
+ if (from.automatic) {
30
+ return new AutomaticTokenTransfer(wh, from, fromChain, toChain);
31
+ }
32
+ else {
33
+ return new ManualTokenTransfer(wh, from, fromChain, toChain);
34
+ }
35
+ }
36
+ let tt;
37
+ if (isWormholeMessageId(from)) {
38
+ tt = await this.fromIdentifier(wh, from, timeout);
39
+ }
40
+ else if (isTransactionIdentifier(from)) {
41
+ tt = await this.fromTransaction(wh, from, timeout, fromChain);
42
+ }
43
+ else {
44
+ throw new Error("Invalid `from` parameter for TokenTransfer");
45
+ }
46
+ tt.fromChain = fromChain ?? wh.getChain(tt.transfer.from.chain);
47
+ tt.toChain = toChain ?? wh.getChain(tt.transfer.to.chain);
48
+ await tt.fetchAttestation(timeout);
49
+ return tt;
50
+ }
51
+ // init from the seq id
52
+ static async fromIdentifier(wh, id, timeout) {
53
+ const vaa = await this.getTransferVaa(wh, id, timeout);
54
+ const automatic = vaa.protocolName === "AutomaticTokenBridge";
55
+ // TODO: the `from.address` here is a lie, but we don't
56
+ // immediately have enough info to get the _correct_ one
57
+ let from = { chain: vaa.emitterChain, address: vaa.emitterAddress };
58
+ let { token, to } = vaa.payload;
59
+ const rescale = (amt, decimals) => decimals > 8 ? amt * 10n ** (decimals - 8n) : amt;
60
+ const amount = rescale(token.amount, await wh.getDecimals(token.chain, token.address));
61
+ let nativeGasAmount = 0n;
62
+ if (automatic) {
63
+ nativeGasAmount = vaa.payload.payload.toNativeTokenAmount;
64
+ from = { chain: vaa.emitterChain, address: vaa.payload.from };
65
+ to = { chain: vaa.payload.to.chain, address: vaa.payload.payload.targetRecipient };
66
+ }
67
+ const details = {
68
+ token,
69
+ amount,
70
+ from,
71
+ to,
72
+ automatic,
73
+ nativeGas: nativeGasAmount,
74
+ };
75
+ let tt;
76
+ if (automatic) {
77
+ tt = new AutomaticTokenTransfer(wh, details);
78
+ }
79
+ else {
80
+ tt = new ManualTokenTransfer(wh, details);
81
+ }
82
+ tt.receipt = {
83
+ ...tt.receipt,
84
+ state: TransferState.Attested,
85
+ attestation: { id: id, attestation: vaa },
86
+ };
87
+ return tt;
88
+ }
89
+ static async fromTransaction(wh, from, timeout, fromChain) {
90
+ fromChain = fromChain ?? wh.getChain(from.chain);
91
+ const msg = await this.getTransferMessage(fromChain, from.txid, timeout);
92
+ return await this.fromIdentifier(wh, msg, timeout);
93
+ }
94
+ static async getTransferMessage(chain, txid, timeout) {
95
+ const whm = await Wormhole.parseMessageFromTx(chain, txid, timeout);
96
+ if (whm.length !== 1)
97
+ throw new Error("Expected a single Wormhole Message, got: " + whm.length);
98
+ return whm[0];
99
+ }
100
+ static async getTransferVaa(wh, key, timeout) {
101
+ const vaa = typeof key === "string"
102
+ ? await wh.getVaaByTxHash(key, TokenBridge.getTransferDiscriminator(), timeout)
103
+ : await wh.getVaa(key, TokenBridge.getTransferDiscriminator(), timeout);
104
+ if (!vaa)
105
+ throw new Error(`No VAA available after retries exhausted`);
106
+ // Check if its automatic and re-de-serialize
107
+ if (vaa.payloadName === "TransferWithPayload") {
108
+ const { chain, address } = vaa.payload.to;
109
+ const { tokenBridgeRelayer } = wh.config.chains[chain].contracts;
110
+ const relayerAddress = tokenBridgeRelayer ? toUniversal(chain, tokenBridgeRelayer) : null;
111
+ // If the target address is the relayer address, expect its an automatic token bridge vaa
112
+ if (!!relayerAddress && address.equals(relayerAddress)) {
113
+ return deserialize("AutomaticTokenBridge:TransferWithRelay", serialize(vaa));
114
+ }
115
+ }
116
+ return vaa;
117
+ }
118
+ // Lookup the token id for the destination chain given the source chain
119
+ // and token id
120
+ static async lookupDestinationToken(srcChain, dstChain, token) {
121
+ // that will be minted when the transfer is redeemed
122
+ let lookup;
123
+ if (isNative(token.address)) {
124
+ // if native, get the wrapped asset id
125
+ lookup = await srcChain.getNativeWrappedTokenId();
126
+ }
127
+ else {
128
+ try {
129
+ const tb = await srcChain.getTokenBridge();
130
+ // otherwise, check to see if it is a wrapped token locally
131
+ lookup = await tb.getOriginalAsset(token.address);
132
+ }
133
+ catch (e) {
134
+ // not a from-chain native wormhole-wrapped one
135
+ lookup = token;
136
+ }
137
+ }
138
+ // if the token id is actually native to the destination, return it
139
+ if (lookup.chain === dstChain.chain) {
140
+ return lookup;
141
+ }
142
+ // otherwise, figure out what the token address representing the wormhole-wrapped token we're transferring
143
+ const dstTb = await dstChain.getTokenBridge();
144
+ const dstAddress = await dstTb.getWrappedAsset(lookup);
145
+ return { chain: dstChain.chain, address: dstAddress };
146
+ }
147
+ static validateTransferDetails(wh, transfer, fromChain, toChain) {
148
+ if (transfer.amount === 0n)
149
+ throw new Error("Amount cannot be 0");
150
+ if (transfer.from.chain === transfer.to.chain)
151
+ throw new Error("Cannot transfer to the same chain");
152
+ fromChain = fromChain ?? wh.getChain(transfer.from.chain);
153
+ toChain = toChain ?? wh.getChain(transfer.to.chain);
154
+ if (transfer.automatic) {
155
+ if (transfer.payload)
156
+ throw new Error("Payload with automatic delivery is not supported");
157
+ if (!fromChain.supportsAutomaticTokenBridge())
158
+ throw new Error(`Automatic Token Bridge not supported on ${transfer.from.chain}`);
159
+ if (!toChain.supportsAutomaticTokenBridge())
160
+ throw new Error(`Automatic Token Bridge not supported on ${transfer.to.chain}`);
161
+ const nativeGas = transfer.nativeGas ?? 0n;
162
+ if (nativeGas > transfer.amount)
163
+ throw new Error(`Native gas amount > amount (${nativeGas} > ${transfer.amount})`);
164
+ }
165
+ else {
166
+ if (transfer.nativeGas)
167
+ throw new Error("Gas Dropoff is only supported for automatic transfers");
168
+ if (!fromChain.supportsTokenBridge())
169
+ throw new Error(`Token Bridge not supported on ${transfer.from.chain}`);
170
+ if (!toChain.supportsTokenBridge())
171
+ throw new Error(`Token Bridge not supported on ${transfer.to.chain}`);
172
+ }
173
+ }
174
+ static async quoteTransfer(srcChain, dstChain, transfer) {
175
+ const dstToken = await this.lookupDestinationToken(srcChain, dstChain, transfer.token);
176
+ const srcToken = isNative(transfer.token.address)
177
+ ? await srcChain.getNativeWrappedTokenId()
178
+ : transfer.token;
179
+ const dstDecimals = await dstChain.getDecimals(dstToken.address);
180
+ const srcDecimals = await srcChain.getDecimals(srcToken.address);
181
+ const dedust = _dedust(srcDecimals);
182
+ const mintable = _mintable(srcDecimals, dstDecimals);
183
+ // dedust for transfer over the bridge which truncates to 8 decimals
184
+ let srcAmount = dedust(transfer.amount);
185
+ let dstAmount = mintable(transfer.amount);
186
+ if (!transfer.automatic) {
187
+ return {
188
+ sourceToken: { token: srcToken, amount: srcAmount },
189
+ destinationToken: { token: dstToken, amount: dstAmount },
190
+ };
191
+ }
192
+ // Otherwise automatic
193
+ // If a native gas dropoff is requested, remove that from the amount they'll get
194
+ const _nativeGas = transfer.nativeGas ? mintable(transfer.nativeGas) : 0n;
195
+ dstAmount -= _nativeGas;
196
+ // The fee is also removed from the amount transferred
197
+ // quoted on the source chain
198
+ const stb = await srcChain.getAutomaticTokenBridge();
199
+ const fee = await stb.getRelayerFee(transfer.from.address, transfer.to, srcToken.address);
200
+ dstAmount -= mintable(fee);
201
+ // The expected destination gas can be pulled from the destination token bridge
202
+ let destinationNativeGas = 0n;
203
+ if (transfer.nativeGas) {
204
+ const dtb = await dstChain.getAutomaticTokenBridge();
205
+ destinationNativeGas = await dtb.nativeTokenAmount(dstToken.address, _nativeGas);
206
+ }
207
+ return {
208
+ sourceToken: {
209
+ token: srcToken,
210
+ amount: srcAmount,
211
+ },
212
+ destinationToken: { token: dstToken, amount: dstAmount },
213
+ relayFee: { token: srcToken, amount: fee },
214
+ destinationNativeGas,
215
+ };
216
+ }
217
+ static async isTransferComplete(toChain, receipt) {
218
+ if (!isAttested(receipt))
219
+ return false;
220
+ const vaa = deserialize("TokenBridge:TransferWithPayload", serialize(receipt.attestation.attestation));
221
+ const tb = await toChain.getTokenBridge();
222
+ return tb.isTransferCompleted(vaa);
223
+ }
224
+ // AsyncGenerator fn that produces status updates through an async generator
225
+ // eventually producing a receipt
226
+ // can be called repeatedly so the receipt is updated as it moves through the
227
+ // steps of the transfer
228
+ static async *track(wh, receipt, timeout = DEFAULT_TASK_TIMEOUT, fromChain, toChain) {
229
+ const start = Date.now();
230
+ const leftover = (start, max) => Math.max(max - (Date.now() - start), 0);
231
+ fromChain = fromChain ?? wh.getChain(receipt.from);
232
+ toChain = toChain ?? wh.getChain(receipt.to);
233
+ // Check the source chain for initiation transaction
234
+ // and capture the message id
235
+ if (isSourceInitiated(receipt)) {
236
+ if (receipt.originTxs.length === 0)
237
+ throw "Origin transactions required to fetch message id";
238
+ const { txid } = receipt.originTxs[receipt.originTxs.length - 1];
239
+ const msg = await this.getTransferMessage(fromChain, txid, leftover(start, timeout));
240
+ receipt = {
241
+ ...receipt,
242
+ state: TransferState.SourceFinalized,
243
+ attestation: { id: msg },
244
+ };
245
+ yield receipt;
246
+ }
247
+ // If the source is finalized, we need to fetch the signed attestation
248
+ // so that we may deliver it to the destination chain
249
+ // or at least track the transfer through its progress
250
+ if (isSourceFinalized(receipt)) {
251
+ if (!receipt.attestation.id)
252
+ throw "Attestation id required to fetch attestation";
253
+ const { id } = receipt.attestation;
254
+ const attestation = await this.getTransferVaa(wh, id, leftover(start, timeout));
255
+ receipt = {
256
+ ...receipt,
257
+ attestation: { id, attestation },
258
+ state: TransferState.Attested,
259
+ };
260
+ yield receipt;
261
+ }
262
+ // First try to grab the tx status from the API
263
+ // Note: this requires a subsequent async step on the backend
264
+ // to have the dest txid populated, so it may be delayed by some time
265
+ if (isAttested(receipt) || isSourceFinalized(receipt)) {
266
+ if (!receipt.attestation.id)
267
+ throw "Attestation id required to fetch redeem tx";
268
+ const { id } = receipt.attestation;
269
+ const txStatus = await wh.getTransactionStatus(id, leftover(start, timeout));
270
+ if (txStatus && txStatus.globalTx?.destinationTx?.txHash) {
271
+ const { chainId, txHash } = txStatus.globalTx.destinationTx;
272
+ receipt = {
273
+ ...receipt,
274
+ destinationTxs: [{ chain: toChainName(chainId), txid: txHash }],
275
+ state: TransferState.DestinationFinalized,
276
+ };
277
+ }
278
+ yield receipt;
279
+ }
280
+ // Fall back to asking the destination chain if this VAA has been redeemed
281
+ // Note: We do not get any destinationTxs with this method
282
+ if (isAttested(receipt)) {
283
+ if (!receipt.attestation.attestation)
284
+ throw ErrInvalidStateTransition("Signed Attestation required to check for redeem");
285
+ let isComplete = await this.isTransferComplete(toChain, receipt);
286
+ if (isComplete) {
287
+ receipt = {
288
+ ...receipt,
289
+ state: TransferState.DestinationFinalized,
290
+ };
291
+ }
292
+ yield receipt;
293
+ }
294
+ yield receipt;
295
+ }
296
+ static async destinationOverrides(srcChain, dstChain, transfer) {
297
+ const _transfer = { ...transfer };
298
+ // Bit of (temporary) hackery until solana contracts support being
299
+ // sent a VAA with the primary address
300
+ // Note: Do _not_ override if automatic or if the destination token is native
301
+ // gas token
302
+ if (transfer.to.chain === "Solana" && !_transfer.automatic) {
303
+ const destinationToken = await this.lookupDestinationToken(srcChain, dstChain, _transfer.token);
304
+ // TODO: If the token is native, no need to overwrite the destination address check for native
305
+ //if (!destinationToken.address.equals((await dstChain.getNativeWrappedTokenId()).address))
306
+ _transfer.to = await dstChain.getTokenAccount(_transfer.to.address, destinationToken.address);
307
+ }
308
+ if (_transfer.to.chain === "Sei") {
309
+ if (_transfer.to.chain === "Sei" && _transfer.payload)
310
+ throw new Error("Arbitrary payloads unsupported for Sei");
311
+ // For sei, we reserve the payload for a token transfer through the sei bridge.
312
+ _transfer.payload = encoding.bytes.encode(JSON.stringify({
313
+ basic_recipient: {
314
+ recipient: encoding.b64.encode(_transfer.to.address.toString()),
315
+ },
316
+ }));
317
+ _transfer.to = Wormhole.chainAddress(_transfer.to.chain, dstChain.config.contracts.translator);
318
+ }
319
+ return _transfer;
320
+ }
321
+ }
322
+ TokenTransferUtils;
323
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/protocols/tokenBridge/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,QAAQ,EACR,OAAO,IAAI,WAAW,GACvB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,WAAW,EAMX,WAAW,EACX,QAAQ,EACR,sBAAsB,EACtB,uBAAuB,EACvB,mBAAmB,EACnB,SAAS,EACT,WAAW,GACZ,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAIL,yBAAyB,EAKzB,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAS/C,2DAA2D;AAC3D,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAW,EAAE,QAAgB,EAAE,EAAE,CACxD,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACpD,kDAAkD;AAClD,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,GAAW,EAAE,QAAgB,EAAE,EAAE,CACrD,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAEpD,qEAAqE;AACrE,sCAAsC;AACtC,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,QAAgB,EAAE,EAAE,CAAC,CAAC,GAAW,EAAE,EAAE,CAC3D,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAC;AAE3C,gDAAgD;AAChD,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,WAAmB,EAAE,WAAmB,EAAE,EAAE,CAAC,CAAC,GAAW,EAAE,EAAE,CACrF,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,EAAE,WAAW,CAAC,CAAC;AACjD,MAAM,OAAO,kBAAkB;IAwB7B,MAAM,CAAC,KAAK,CAAC,IAAI,CACf,EAAe,EACf,IAA8D,EAC9D,UAAkB,IAAI,EACtB,SAA4C,EAC5C,OAA0C;QAE1C,IAAI,sBAAsB,CAAC,IAAI,CAAC,EAAE;YAChC,SAAS,GAAG,SAAS,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtD,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAEhD,oBAAoB;YACpB,IAAI,CAAC,uBAAuB,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAE3D,gBAAgB;YAChB,IAAI,GAAG;gBACL,GAAG,IAAI;gBACP,GAAG,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;aAC/D,CAAC;YAEF,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,OAAO,IAAI,sBAAsB,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;aACjE;iBAAM;gBACL,OAAO,IAAI,mBAAmB,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;aAC9D;SACF;QAED,IAAI,EAAoB,CAAC;QACzB,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE;YAC7B,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;SACnD;aAAM,IAAI,uBAAuB,CAAC,IAAI,CAAC,EAAE;YACxC,EAAE,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;SAC/D;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;SAC/D;QAED,EAAE,CAAC,SAAS,GAAG,SAAS,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChE,EAAE,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAE1D,MAAM,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACnC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,uBAAuB;IACf,MAAM,CAAC,KAAK,CAAC,cAAc,CACjC,EAAe,EACf,EAAqB,EACrB,OAAgB;QAEhB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,GAAG,CAAC,YAAY,KAAK,sBAAsB,CAAC;QAE9D,uDAAuD;QACvD,wDAAwD;QACxD,IAAI,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,YAAY,EAAE,OAAO,EAAE,GAAG,CAAC,cAAc,EAAE,CAAC;QACpE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;QAEhC,MAAM,OAAO,GAAG,CAAC,GAAW,EAAE,QAAgB,EAAE,EAAE,CAChD,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;QACpD,MAAM,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAEvF,IAAI,eAAe,GAAW,EAAE,CAAC;QACjC,IAAI,SAAS,EAAE;YACb,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC;YAC1D,IAAI,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,YAAY,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC9D,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;SACpF;QAED,MAAM,OAAO,GAAyB;YACpC,KAAK;YACL,MAAM;YACN,IAAI;YACJ,EAAE;YACF,SAAS;YACT,SAAS,EAAE,eAAe;SAC3B,CAAC;QAEF,IAAI,EAAoB,CAAC;QACzB,IAAI,SAAS,EAAE;YACb,EAAE,GAAG,IAAI,sBAAsB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;SAC9C;aAAM;YACL,EAAE,GAAG,IAAI,mBAAmB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;SAC3C;QAED,EAAE,CAAC,OAAO,GAAG;YACX,GAAI,EAAE,CAAC,OAA0C;YACjD,KAAK,EAAE,aAAa,CAAC,QAAQ;YAC7B,WAAW,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE;SAC1C,CAAC;QAEF,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,eAAe,CAClC,EAAe,EACf,IAAmB,EACnB,OAAe,EACf,SAA4C;QAE5C,SAAS,GAAG,SAAS,IAAI,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACzE,OAAO,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACrD,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAC7B,KAAuC,EACvC,IAAY,EACZ,OAAgB;QAEhB,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACpE,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,2CAA2C,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;QAChG,OAAO,GAAG,CAAC,CAAC,CAAE,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,cAAc,CACzB,EAAe,EACf,GAA+B,EAC/B,OAAgB;QAEhB,MAAM,GAAG,GACP,OAAO,GAAG,KAAK,QAAQ;YACrB,CAAC,CAAC,MAAM,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,WAAW,CAAC,wBAAwB,EAAE,EAAE,OAAO,CAAC;YAC/E,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,wBAAwB,EAAE,EAAE,OAAO,CAAC,CAAC;QAE5E,IAAI,CAAC,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAEtE,6CAA6C;QAC7C,IAAI,GAAG,CAAC,WAAW,KAAK,qBAAqB,EAAE;YAC7C,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1C,MAAM,EAAE,kBAAkB,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAE,CAAC,SAAS,CAAC;YAClE,MAAM,cAAc,GAAG,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1F,yFAAyF;YACzF,IAAI,CAAC,CAAC,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE;gBACtD,OAAO,WAAW,CAAC,wCAAwC,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;aAC9E;SACF;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,uEAAuE;IACvE,eAAe;IACf,MAAM,CAAC,KAAK,CAAC,sBAAsB,CACjC,QAAkD,EAClD,QAAkD,EAClD,KAAkB;QAElB,oDAAoD;QACpD,IAAI,MAAe,CAAC;QACpB,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE;YAC3B,sCAAsC;YACtC,MAAM,GAAG,MAAM,QAAQ,CAAC,uBAAuB,EAAE,CAAC;SACnD;aAAM;YACL,IAAI;gBACF,MAAM,EAAE,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;gBAC3C,2DAA2D;gBAC3D,MAAM,GAAG,MAAM,EAAE,CAAC,gBAAgB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;aACnD;YAAC,OAAO,CAAC,EAAE;gBACV,+CAA+C;gBAC/C,MAAM,GAAG,KAAK,CAAC;aAChB;SACF;QAED,mEAAmE;QACnE,IAAI,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,KAAK,EAAE;YACnC,OAAO,MAAqB,CAAC;SAC9B;QAED,0GAA0G;QAC1G,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,cAAc,EAAE,CAAC;QAC9C,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QACvD,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;IACxD,CAAC;IAED,MAAM,CAAC,uBAAuB,CAC5B,EAAe,EACf,QAA8B,EAC9B,SAA4C,EAC5C,OAA0C;QAE1C,IAAI,QAAQ,CAAC,MAAM,KAAK,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QAElE,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAK,QAAQ,CAAC,EAAE,CAAC,KAAK;YAC3C,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QAEvD,SAAS,GAAG,SAAS,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC1D,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QAEpD,IAAI,QAAQ,CAAC,SAAS,EAAE;YACtB,IAAI,QAAQ,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;YAE1F,IAAI,CAAC,SAAS,CAAC,4BAA4B,EAAE;gBAC3C,MAAM,IAAI,KAAK,CAAC,2CAA2C,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAEpF,IAAI,CAAC,OAAO,CAAC,4BAA4B,EAAE;gBACzC,MAAM,IAAI,KAAK,CAAC,2CAA2C,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;YAElF,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS,IAAI,EAAE,CAAC;YAC3C,IAAI,SAAS,GAAG,QAAQ,CAAC,MAAM;gBAC7B,MAAM,IAAI,KAAK,CAAC,gCAAgC,SAAS,MAAM,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;SACtF;aAAM;YACL,IAAI,QAAQ,CAAC,SAAS;gBACpB,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;YAE3E,IAAI,CAAC,SAAS,CAAC,mBAAmB,EAAE;gBAClC,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;YAE1E,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE;gBAChC,MAAM,IAAI,KAAK,CAAC,iCAAiC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;SACzE;IACH,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,aAAa,CACxB,QAA0C,EAC1C,QAA0C,EAC1C,QAA8B;QAE9B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;QACvF,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC;YAC/C,CAAC,CAAC,MAAM,QAAQ,CAAC,uBAAuB,EAAE;YAC1C,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAEnB,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEjE,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;QACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QAErD,oEAAoE;QACpE,IAAI,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,SAAS,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAE1C,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YACvB,OAAO;gBACL,WAAW,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE;gBACnD,gBAAgB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE;aACzD,CAAC;SACH;QAED,sBAAsB;QAEtB,gFAAgF;QAChF,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1E,SAAS,IAAI,UAAU,CAAC;QAExB,sDAAsD;QACtD,6BAA6B;QAC7B,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,uBAAuB,EAAE,CAAC;QACrD,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC1F,SAAS,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC;QAE3B,+EAA+E;QAC/E,IAAI,oBAAoB,GAAG,EAAE,CAAC;QAC9B,IAAI,QAAQ,CAAC,SAAS,EAAE;YACtB,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,uBAAuB,EAAE,CAAC;YACrD,oBAAoB,GAAG,MAAM,GAAG,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;SAClF;QAED,OAAO;YACL,WAAW,EAAE;gBACX,KAAK,EAAE,QAAQ;gBACf,MAAM,EAAE,SAAS;aAClB;YACD,gBAAgB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE;YACxD,QAAQ,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE;YAC1C,oBAAoB;SACrB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAC7B,OAAyC,EACzC,OAAmE;QAEnE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QAEvC,MAAM,GAAG,GAAG,WAAW,CACrB,iCAAiC,EACjC,SAAS,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW,CAAC,CAC3C,CAAC;QACF,MAAM,EAAE,GAAG,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC;QAC1C,OAAO,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,4EAA4E;IAC5E,iCAAiC;IACjC,6EAA6E;IAC7E,wBAAwB;IACxB,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CACjB,EAAe,EACf,OAAqC,EACrC,UAAkB,oBAAoB,EACtC,SAAoD,EACpD,OAAkD;QAElD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,CAAC,KAAa,EAAE,GAAW,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;QAEzF,SAAS,GAAG,SAAS,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAE7C,oDAAoD;QACpD,6BAA6B;QAC7B,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE;YAC9B,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM,kDAAkD,CAAC;YAC7F,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC;YAClE,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;YACrF,OAAO,GAAG;gBACR,GAAG,OAAO;gBACV,KAAK,EAAE,aAAa,CAAC,eAAe;gBACpC,WAAW,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE;aACiD,CAAC;YAC5E,MAAM,OAAO,CAAC;SACf;QAED,sEAAsE;QACtE,qDAAqD;QACrD,sDAAsD;QACtD,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE;YAC9B,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gBAAE,MAAM,8CAA8C,CAAC;YAClF,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;YACnC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;YAChF,OAAO,GAAG;gBACR,GAAG,OAAO;gBACV,WAAW,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE;gBAChC,KAAK,EAAE,aAAa,CAAC,QAAQ;aACqC,CAAC;YACrE,MAAM,OAAO,CAAC;SACf;QAED,+CAA+C;QAC/C,6DAA6D;QAC7D,qEAAqE;QACrE,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE;YACrD,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;gBAAE,MAAM,4CAA4C,CAAC;YAChF,MAAM,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,WAAW,CAAC;YACnC,MAAM,QAAQ,GAAG,MAAM,EAAE,CAAC,oBAAoB,CAAC,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;YAC7E,IAAI,QAAQ,IAAI,QAAQ,CAAC,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE;gBACxD,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC;gBAC5D,OAAO,GAAG;oBACR,GAAG,OAAO;oBACV,cAAc,EAAE,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;oBACrE,KAAK,EAAE,aAAa,CAAC,oBAAoB;iBAC0B,CAAC;aACvE;YACD,MAAM,OAAO,CAAC;SACf;QAED,0EAA0E;QAC1E,0DAA0D;QAC1D,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE;YACvB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,WAAW;gBAClC,MAAM,yBAAyB,CAAC,iDAAiD,CAAC,CAAC;YAErF,IAAI,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAEjE,IAAI,UAAU,EAAE;gBACd,OAAO,GAAG;oBACR,GAAG,OAAO;oBACV,KAAK,EAAE,aAAa,CAAC,oBAAoB;iBAC0B,CAAC;aACvE;YAED,MAAM,OAAO,CAAC;SACf;QAED,MAAM,OAAO,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAC/B,QAA0C,EAC1C,QAA0C,EAC1C,QAA8B;QAE9B,MAAM,SAAS,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAElC,kEAAkE;QAClE,sCAAsC;QACtC,6EAA6E;QAC7E,YAAY;QACZ,IAAI,QAAQ,CAAC,EAAE,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE;YAC1D,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CACxD,QAAQ,EACR,QAAQ,EACR,SAAS,CAAC,KAAK,CAChB,CAAC;YACF,8FAA8F;YAC9F,2FAA2F;YAC3F,SAAS,CAAC,EAAE,GAAG,MAAM,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC;SAC/F;QAED,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,EAAE;YAChC,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,IAAI,SAAS,CAAC,OAAO;gBACnD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;YAE5D,+EAA+E;YAC/E,SAAS,CAAC,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CACvC,IAAI,CAAC,SAAS,CAAC;gBACb,eAAe,EAAE;oBACf,SAAS,EAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;iBAChE;aACF,CAAC,CACH,CAAC;YACF,SAAS,CAAC,EAAE,GAAG,QAAQ,CAAC,YAAY,CAClC,SAAS,CAAC,EAAE,CAAC,KAAK,EAClB,QAAQ,CAAC,MAAM,CAAC,SAAU,CAAC,UAAW,CACvC,CAAC;SACH;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAED,kBAAoE,CAAC"}
@@ -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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"}