@layerzerolabs/lz-solana-sdk-v2 3.0.53 → 3.0.56

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 (604) hide show
  1. package/CHANGELOG.md +41 -0
  2. package/dist/index.cjs +2764 -4309
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.d.mts +14 -115
  5. package/dist/index.d.ts +14 -115
  6. package/dist/index.mjs +2764 -4307
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/umi.cjs +14486 -0
  9. package/dist/umi.cjs.map +1 -0
  10. package/dist/umi.d.mts +8807 -0
  11. package/dist/umi.d.ts +8807 -0
  12. package/dist/umi.mjs +14401 -0
  13. package/dist/umi.mjs.map +1 -0
  14. package/package.json +26 -10
  15. package/src/deployment.test.ts +1 -1
  16. package/src/deployment.ts +2 -2
  17. package/src/dvn.ts +248 -449
  18. package/src/endpoint.ts +793 -964
  19. package/src/executor.ts +286 -413
  20. package/src/generated/kinobi/blocked_messagelib/errors/blockedMessagelib.ts +42 -0
  21. package/src/generated/kinobi/blocked_messagelib/errors/index.ts +9 -0
  22. package/src/generated/kinobi/blocked_messagelib/index.ts +12 -0
  23. package/src/generated/kinobi/blocked_messagelib/instructions/index.ts +9 -0
  24. package/src/generated/kinobi/blocked_messagelib/instructions/version.ts +80 -0
  25. package/src/generated/kinobi/blocked_messagelib/programs/blockedMessagelib.ts +55 -0
  26. package/src/generated/kinobi/blocked_messagelib/programs/index.ts +9 -0
  27. package/src/generated/kinobi/blocked_messagelib/shared/index.ts +117 -0
  28. package/src/generated/kinobi/dvn/accounts/dvnConfig.ts +199 -0
  29. package/src/generated/kinobi/dvn/accounts/executeHash.ts +148 -0
  30. package/src/generated/kinobi/dvn/accounts/index.ts +11 -0
  31. package/src/generated/kinobi/dvn/accounts/receiveConfig.ts +154 -0
  32. package/src/generated/kinobi/dvn/errors/dvn.ts +263 -0
  33. package/src/generated/kinobi/dvn/errors/index.ts +9 -0
  34. package/src/generated/kinobi/dvn/events/adminConfigSetEvent.ts +23 -0
  35. package/src/generated/kinobi/dvn/events/feeWithdrawnEvent.ts +35 -0
  36. package/src/generated/kinobi/dvn/events/index.ts +3 -0
  37. package/src/generated/kinobi/dvn/events/multisigConfigSetEvent.ts +28 -0
  38. package/src/generated/kinobi/dvn/index.ts +14 -0
  39. package/src/generated/kinobi/dvn/instructions/closeExecute.ts +126 -0
  40. package/src/generated/kinobi/dvn/instructions/index.ts +15 -0
  41. package/src/generated/kinobi/dvn/instructions/initDvn.ts +155 -0
  42. package/src/generated/kinobi/dvn/instructions/invoke.ts +161 -0
  43. package/src/generated/kinobi/dvn/instructions/quoteDvn.ts +150 -0
  44. package/src/generated/kinobi/dvn/instructions/setConfig.ts +138 -0
  45. package/src/generated/kinobi/dvn/instructions/verifiable.ts +139 -0
  46. package/src/generated/kinobi/dvn/instructions/withdrawFee.ts +139 -0
  47. package/src/generated/kinobi/dvn/programs/dvn.ts +48 -0
  48. package/src/generated/kinobi/dvn/programs/index.ts +9 -0
  49. package/src/generated/kinobi/dvn/shared/index.ts +117 -0
  50. package/src/generated/kinobi/dvn/types/acl.ts +29 -0
  51. package/src/generated/kinobi/dvn/types/adminConfig.ts +116 -0
  52. package/src/generated/kinobi/dvn/types/dstConfig.ts +43 -0
  53. package/src/generated/kinobi/dvn/types/executeTransactionDigest.ts +55 -0
  54. package/src/generated/kinobi/dvn/types/index.ts +18 -0
  55. package/src/generated/kinobi/dvn/types/lzOption.ts +29 -0
  56. package/src/generated/kinobi/dvn/types/multisig.ts +29 -0
  57. package/src/generated/kinobi/dvn/types/multisigConfig.ts +130 -0
  58. package/src/generated/kinobi/dvn/types/transactionAccount.ts +37 -0
  59. package/src/generated/kinobi/dvn/types/ulnConfig.ts +49 -0
  60. package/src/generated/kinobi/dvn/types/verificationState.ts +28 -0
  61. package/src/generated/kinobi/endpoint/accounts/composeMessageState.ts +166 -0
  62. package/src/generated/kinobi/endpoint/accounts/endpointSettings.ts +171 -0
  63. package/src/generated/kinobi/endpoint/accounts/index.ts +17 -0
  64. package/src/generated/kinobi/endpoint/accounts/messageLibInfo.ts +170 -0
  65. package/src/generated/kinobi/endpoint/accounts/nonce.ts +151 -0
  66. package/src/generated/kinobi/endpoint/accounts/oAppRegistry.ts +151 -0
  67. package/src/generated/kinobi/endpoint/accounts/payloadHash.ts +144 -0
  68. package/src/generated/kinobi/endpoint/accounts/pendingInboundNonce.ts +163 -0
  69. package/src/generated/kinobi/endpoint/accounts/receiveLibraryConfig.ts +175 -0
  70. package/src/generated/kinobi/endpoint/accounts/sendLibraryConfig.ts +167 -0
  71. package/src/generated/kinobi/endpoint/errors/endpoint.ts +276 -0
  72. package/src/generated/kinobi/endpoint/errors/index.ts +9 -0
  73. package/src/generated/kinobi/endpoint/events/adminTransferredEvent.ts +27 -0
  74. package/src/generated/kinobi/endpoint/events/composeDeliveredEvent.ts +40 -0
  75. package/src/generated/kinobi/endpoint/events/composeSentEvent.ts +43 -0
  76. package/src/generated/kinobi/endpoint/events/defaultReceiveLibrarySetEvent.ts +35 -0
  77. package/src/generated/kinobi/endpoint/events/defaultReceiveLibraryTimeoutSetEvent.ts +46 -0
  78. package/src/generated/kinobi/endpoint/events/defaultSendLibrarySetEvent.ts +32 -0
  79. package/src/generated/kinobi/endpoint/events/delegateSetEvent.ts +27 -0
  80. package/src/generated/kinobi/endpoint/events/inboundNonceSkippedEvent.ts +46 -0
  81. package/src/generated/kinobi/endpoint/events/index.ts +22 -0
  82. package/src/generated/kinobi/endpoint/events/libraryRegisteredEvent.ts +34 -0
  83. package/src/generated/kinobi/endpoint/events/lzComposeAlertEvent.ts +65 -0
  84. package/src/generated/kinobi/endpoint/events/lzReceiveAlertEvent.ts +67 -0
  85. package/src/generated/kinobi/endpoint/events/lzTokenSetEvent.ts +28 -0
  86. package/src/generated/kinobi/endpoint/events/oAppRegisteredEvent.ts +31 -0
  87. package/src/generated/kinobi/endpoint/events/packetBurntEvent.ts +49 -0
  88. package/src/generated/kinobi/endpoint/events/packetDeliveredEvent.ts +46 -0
  89. package/src/generated/kinobi/endpoint/events/packetNilifiedEvent.ts +49 -0
  90. package/src/generated/kinobi/endpoint/events/packetSentEvent.ts +38 -0
  91. package/src/generated/kinobi/endpoint/events/packetVerifiedEvent.ts +49 -0
  92. package/src/generated/kinobi/endpoint/events/receiveLibrarySetEvent.ts +37 -0
  93. package/src/generated/kinobi/endpoint/events/receiveLibraryTimeoutSetEvent.ts +50 -0
  94. package/src/generated/kinobi/endpoint/events/rentWithdrawnEvent.ts +35 -0
  95. package/src/generated/kinobi/endpoint/events/sendLibrarySetEvent.ts +37 -0
  96. package/src/generated/kinobi/endpoint/index.ts +14 -0
  97. package/src/generated/kinobi/endpoint/instructions/burn.ts +166 -0
  98. package/src/generated/kinobi/endpoint/instructions/clear.ts +169 -0
  99. package/src/generated/kinobi/endpoint/instructions/clearCompose.ts +142 -0
  100. package/src/generated/kinobi/endpoint/instructions/index.ts +40 -0
  101. package/src/generated/kinobi/endpoint/instructions/initConfig.ts +145 -0
  102. package/src/generated/kinobi/endpoint/instructions/initDefaultReceiveLibrary.ts +172 -0
  103. package/src/generated/kinobi/endpoint/instructions/initDefaultSendLibrary.ts +171 -0
  104. package/src/generated/kinobi/endpoint/instructions/initEndpoint.ts +142 -0
  105. package/src/generated/kinobi/endpoint/instructions/initNonce.ts +158 -0
  106. package/src/generated/kinobi/endpoint/instructions/initReceiveLibrary.ts +154 -0
  107. package/src/generated/kinobi/endpoint/instructions/initSendLibrary.ts +152 -0
  108. package/src/generated/kinobi/endpoint/instructions/initVerify.ts +159 -0
  109. package/src/generated/kinobi/endpoint/instructions/lzComposeAlert.ts +159 -0
  110. package/src/generated/kinobi/endpoint/instructions/lzReceiveAlert.ts +161 -0
  111. package/src/generated/kinobi/endpoint/instructions/nilify.ts +165 -0
  112. package/src/generated/kinobi/endpoint/instructions/quote.ts +160 -0
  113. package/src/generated/kinobi/endpoint/instructions/registerLibrary.ts +167 -0
  114. package/src/generated/kinobi/endpoint/instructions/registerOapp.ts +154 -0
  115. package/src/generated/kinobi/endpoint/instructions/send.ts +178 -0
  116. package/src/generated/kinobi/endpoint/instructions/sendCompose.ts +166 -0
  117. package/src/generated/kinobi/endpoint/instructions/setConfig.ts +154 -0
  118. package/src/generated/kinobi/endpoint/instructions/setDefaultReceiveLibrary.ts +160 -0
  119. package/src/generated/kinobi/endpoint/instructions/setDefaultReceiveLibraryTimeout.ts +163 -0
  120. package/src/generated/kinobi/endpoint/instructions/setDefaultSendLibrary.ts +156 -0
  121. package/src/generated/kinobi/endpoint/instructions/setDelegate.ts +130 -0
  122. package/src/generated/kinobi/endpoint/instructions/setLzToken.ts +138 -0
  123. package/src/generated/kinobi/endpoint/instructions/setReceiveLibrary.ts +163 -0
  124. package/src/generated/kinobi/endpoint/instructions/setReceiveLibraryTimeout.ts +164 -0
  125. package/src/generated/kinobi/endpoint/instructions/setSendLibrary.ts +158 -0
  126. package/src/generated/kinobi/endpoint/instructions/skip.ts +173 -0
  127. package/src/generated/kinobi/endpoint/instructions/transferAdmin.ts +137 -0
  128. package/src/generated/kinobi/endpoint/instructions/verify.ts +171 -0
  129. package/src/generated/kinobi/endpoint/instructions/withdrawRent.ts +139 -0
  130. package/src/generated/kinobi/endpoint/programs/endpoint.ts +52 -0
  131. package/src/generated/kinobi/endpoint/programs/index.ts +9 -0
  132. package/src/generated/kinobi/endpoint/shared/index.ts +117 -0
  133. package/src/generated/kinobi/endpoint/types/index.ts +12 -0
  134. package/src/generated/kinobi/endpoint/types/messageLibType.ts +26 -0
  135. package/src/generated/kinobi/endpoint/types/messagingFee.ts +29 -0
  136. package/src/generated/kinobi/endpoint/types/messagingReceipt.ts +41 -0
  137. package/src/generated/kinobi/endpoint/types/receiveLibraryTimeout.ts +35 -0
  138. package/src/generated/kinobi/executor/accounts/executorConfig.ts +208 -0
  139. package/src/generated/kinobi/executor/accounts/index.ts +10 -0
  140. package/src/generated/kinobi/executor/accounts/nonce.ts +151 -0
  141. package/src/generated/kinobi/executor/errors/executor.ts +279 -0
  142. package/src/generated/kinobi/executor/errors/index.ts +9 -0
  143. package/src/generated/kinobi/executor/events/index.ts +1 -0
  144. package/src/generated/kinobi/executor/events/nativeDropAppliedEvent.ts +62 -0
  145. package/src/generated/kinobi/executor/index.ts +14 -0
  146. package/src/generated/kinobi/executor/instructions/adminSetConfig.ts +130 -0
  147. package/src/generated/kinobi/executor/instructions/compose.ts +155 -0
  148. package/src/generated/kinobi/executor/instructions/executable.ts +134 -0
  149. package/src/generated/kinobi/executor/instructions/execute.ts +159 -0
  150. package/src/generated/kinobi/executor/instructions/index.ts +16 -0
  151. package/src/generated/kinobi/executor/instructions/initExecutor.ts +154 -0
  152. package/src/generated/kinobi/executor/instructions/nativeDrop.ts +174 -0
  153. package/src/generated/kinobi/executor/instructions/ownerSetConfig.ts +130 -0
  154. package/src/generated/kinobi/executor/instructions/quoteExecutor.ts +147 -0
  155. package/src/generated/kinobi/executor/programs/executor.ts +52 -0
  156. package/src/generated/kinobi/executor/programs/index.ts +9 -0
  157. package/src/generated/kinobi/executor/shared/index.ts +117 -0
  158. package/src/generated/kinobi/executor/types/acl.ts +29 -0
  159. package/src/generated/kinobi/executor/types/adminSetConfigParams.ts +92 -0
  160. package/src/generated/kinobi/executor/types/dstConfig.ts +49 -0
  161. package/src/generated/kinobi/executor/types/executionState.ts +27 -0
  162. package/src/generated/kinobi/executor/types/index.ts +17 -0
  163. package/src/generated/kinobi/executor/types/lzComposeParams.ts +45 -0
  164. package/src/generated/kinobi/executor/types/lzOption.ts +29 -0
  165. package/src/generated/kinobi/executor/types/lzReceiveParams.ts +50 -0
  166. package/src/generated/kinobi/executor/types/nativeDropRequest.ts +35 -0
  167. package/src/generated/kinobi/executor/types/ownerSetConfigParams.ts +129 -0
  168. package/src/generated/kinobi/pricefeed/accounts/index.ts +9 -0
  169. package/src/generated/kinobi/pricefeed/accounts/priceFeed.ts +175 -0
  170. package/src/generated/kinobi/pricefeed/errors/index.ts +9 -0
  171. package/src/generated/kinobi/pricefeed/errors/pricefeed.ts +94 -0
  172. package/src/generated/kinobi/pricefeed/index.ts +14 -0
  173. package/src/generated/kinobi/pricefeed/instructions/getFee.ts +120 -0
  174. package/src/generated/kinobi/pricefeed/instructions/index.ts +14 -0
  175. package/src/generated/kinobi/pricefeed/instructions/initPriceFeed.ts +148 -0
  176. package/src/generated/kinobi/pricefeed/instructions/setPrice.ts +134 -0
  177. package/src/generated/kinobi/pricefeed/instructions/setPriceFeed.ts +131 -0
  178. package/src/generated/kinobi/pricefeed/instructions/setSolPrice.ts +126 -0
  179. package/src/generated/kinobi/pricefeed/instructions/transferAdmin.ts +125 -0
  180. package/src/generated/kinobi/pricefeed/programs/index.ts +9 -0
  181. package/src/generated/kinobi/pricefeed/programs/pricefeed.ts +55 -0
  182. package/src/generated/kinobi/pricefeed/shared/index.ts +117 -0
  183. package/src/generated/kinobi/pricefeed/types/index.ts +11 -0
  184. package/src/generated/kinobi/pricefeed/types/modelType.ts +74 -0
  185. package/src/generated/kinobi/pricefeed/types/price.ts +47 -0
  186. package/src/generated/kinobi/pricefeed/types/priceParams.ts +47 -0
  187. package/src/generated/kinobi/simple_messagelib/accounts/index.ts +11 -0
  188. package/src/generated/kinobi/simple_messagelib/accounts/messageLib.ts +180 -0
  189. package/src/generated/kinobi/simple_messagelib/accounts/receiveConfigStore.ts +162 -0
  190. package/src/generated/kinobi/simple_messagelib/accounts/sendConfigStore.ts +154 -0
  191. package/src/generated/kinobi/simple_messagelib/errors/index.ts +9 -0
  192. package/src/generated/kinobi/simple_messagelib/errors/simpleMessagelib.ts +146 -0
  193. package/src/generated/kinobi/simple_messagelib/index.ts +14 -0
  194. package/src/generated/kinobi/simple_messagelib/instructions/index.ts +23 -0
  195. package/src/generated/kinobi/simple_messagelib/instructions/initConfig.ts +160 -0
  196. package/src/generated/kinobi/simple_messagelib/instructions/initDefaultConfig.ts +164 -0
  197. package/src/generated/kinobi/simple_messagelib/instructions/initMessageLib.ts +161 -0
  198. package/src/generated/kinobi/simple_messagelib/instructions/quote.ts +128 -0
  199. package/src/generated/kinobi/simple_messagelib/instructions/revertCall.ts +84 -0
  200. package/src/generated/kinobi/simple_messagelib/instructions/send.ts +155 -0
  201. package/src/generated/kinobi/simple_messagelib/instructions/sendWithLzToken.ts +202 -0
  202. package/src/generated/kinobi/simple_messagelib/instructions/setConfig.ts +145 -0
  203. package/src/generated/kinobi/simple_messagelib/instructions/setDefaultConfig.ts +164 -0
  204. package/src/generated/kinobi/simple_messagelib/instructions/setFee.ts +122 -0
  205. package/src/generated/kinobi/simple_messagelib/instructions/setWlCaller.ts +121 -0
  206. package/src/generated/kinobi/simple_messagelib/instructions/transferAdmin.ts +125 -0
  207. package/src/generated/kinobi/simple_messagelib/instructions/validatePacket.ts +129 -0
  208. package/src/generated/kinobi/simple_messagelib/instructions/version.ts +80 -0
  209. package/src/generated/kinobi/simple_messagelib/instructions/withdrawFees.ts +127 -0
  210. package/src/generated/kinobi/simple_messagelib/programs/index.ts +9 -0
  211. package/src/generated/kinobi/simple_messagelib/programs/simpleMessagelib.ts +55 -0
  212. package/src/generated/kinobi/simple_messagelib/shared/index.ts +117 -0
  213. package/src/generated/kinobi/simple_messagelib/types/index.ts +11 -0
  214. package/src/generated/kinobi/simple_messagelib/types/messagingFee.ts +29 -0
  215. package/src/generated/kinobi/simple_messagelib/types/packet.ts +52 -0
  216. package/src/generated/kinobi/simple_messagelib/types/version.ts +33 -0
  217. package/src/generated/kinobi/uln/accounts/confirmations.ts +160 -0
  218. package/src/generated/kinobi/uln/accounts/index.ts +12 -0
  219. package/src/generated/kinobi/uln/accounts/receiveConfig.ts +154 -0
  220. package/src/generated/kinobi/uln/accounts/sendConfig.ts +156 -0
  221. package/src/generated/kinobi/uln/accounts/ulnSettings.ts +169 -0
  222. package/src/generated/kinobi/uln/errors/index.ts +9 -0
  223. package/src/generated/kinobi/uln/errors/uln.ts +474 -0
  224. package/src/generated/kinobi/uln/events/adminTransferredEvent.ts +27 -0
  225. package/src/generated/kinobi/uln/events/configSetEvent.ts +38 -0
  226. package/src/generated/kinobi/uln/events/defaultConfigSetEvent.ts +52 -0
  227. package/src/generated/kinobi/uln/events/feesPaidEvent.ts +49 -0
  228. package/src/generated/kinobi/uln/events/index.ts +7 -0
  229. package/src/generated/kinobi/uln/events/payloadVerifiedEvent.ts +47 -0
  230. package/src/generated/kinobi/uln/events/rentWithdrawnEvent.ts +35 -0
  231. package/src/generated/kinobi/uln/events/treasurySetEvent.ts +29 -0
  232. package/src/generated/kinobi/uln/index.ts +14 -0
  233. package/src/generated/kinobi/uln/instructions/closeVerify.ts +127 -0
  234. package/src/generated/kinobi/uln/instructions/commitVerification.ts +134 -0
  235. package/src/generated/kinobi/uln/instructions/index.ts +24 -0
  236. package/src/generated/kinobi/uln/instructions/initConfig.ts +156 -0
  237. package/src/generated/kinobi/uln/instructions/initDefaultConfig.ts +179 -0
  238. package/src/generated/kinobi/uln/instructions/initUln.ts +143 -0
  239. package/src/generated/kinobi/uln/instructions/initVerify.ts +149 -0
  240. package/src/generated/kinobi/uln/instructions/quote.ts +136 -0
  241. package/src/generated/kinobi/uln/instructions/send.ts +181 -0
  242. package/src/generated/kinobi/uln/instructions/sendWithLzToken.ts +226 -0
  243. package/src/generated/kinobi/uln/instructions/setConfig.ts +165 -0
  244. package/src/generated/kinobi/uln/instructions/setDefaultConfig.ts +167 -0
  245. package/src/generated/kinobi/uln/instructions/setTreasury.ts +135 -0
  246. package/src/generated/kinobi/uln/instructions/transferAdmin.ts +133 -0
  247. package/src/generated/kinobi/uln/instructions/verify.ts +140 -0
  248. package/src/generated/kinobi/uln/instructions/version.ts +80 -0
  249. package/src/generated/kinobi/uln/instructions/withdrawRent.ts +135 -0
  250. package/src/generated/kinobi/uln/programs/index.ts +9 -0
  251. package/src/generated/kinobi/uln/programs/uln.ts +48 -0
  252. package/src/generated/kinobi/uln/shared/index.ts +117 -0
  253. package/src/generated/kinobi/uln/types/config.ts +88 -0
  254. package/src/generated/kinobi/uln/types/executorConfig.ts +32 -0
  255. package/src/generated/kinobi/uln/types/index.ts +18 -0
  256. package/src/generated/kinobi/uln/types/lzTokenTreasury.ts +32 -0
  257. package/src/generated/kinobi/uln/types/messagingFee.ts +29 -0
  258. package/src/generated/kinobi/uln/types/packet.ts +52 -0
  259. package/src/generated/kinobi/uln/types/treasury.ts +47 -0
  260. package/src/generated/kinobi/uln/types/treasuryFee.ts +42 -0
  261. package/src/generated/kinobi/uln/types/ulnConfig.ts +49 -0
  262. package/src/generated/kinobi/uln/types/version.ts +33 -0
  263. package/src/generated/kinobi/uln/types/workerFee.ts +29 -0
  264. package/src/generated/kinobi/worker_interface/errors/index.ts +9 -0
  265. package/src/generated/kinobi/worker_interface/errors/workerInterface.ts +68 -0
  266. package/src/generated/kinobi/worker_interface/index.ts +13 -0
  267. package/src/generated/kinobi/worker_interface/instructions/index.ts +10 -0
  268. package/src/generated/kinobi/worker_interface/instructions/quoteDvn.ts +150 -0
  269. package/src/generated/kinobi/worker_interface/instructions/quoteExecutor.ts +147 -0
  270. package/src/generated/kinobi/worker_interface/programs/index.ts +9 -0
  271. package/src/generated/kinobi/worker_interface/programs/workerInterface.ts +55 -0
  272. package/src/generated/kinobi/worker_interface/shared/index.ts +117 -0
  273. package/src/generated/kinobi/worker_interface/types/index.ts +9 -0
  274. package/src/generated/kinobi/worker_interface/types/lzOption.ts +29 -0
  275. package/src/index.ts +31 -47
  276. package/src/next_nonce.ts +107 -0
  277. package/src/pda.ts +328 -0
  278. package/src/pricefeed.ts +115 -168
  279. package/src/receive.ts +285 -0
  280. package/src/send-helper.ts +269 -188
  281. package/src/simple-message-lib.ts +254 -146
  282. package/src/{base-oapp.ts → solita/base-oapp.ts} +2 -3
  283. package/src/solita/config.ts +32 -0
  284. package/src/solita/deployment.ts +128 -0
  285. package/src/solita/dvn.ts +606 -0
  286. package/src/solita/endpoint.ts +1517 -0
  287. package/src/solita/executor.ts +577 -0
  288. package/src/solita/index.ts +100 -0
  289. package/src/solita/pricefeed.ts +208 -0
  290. package/src/{recevie.ts → solita/recevie.ts} +2 -3
  291. package/src/solita/send-helper.ts +503 -0
  292. package/src/solita/simple-message-lib.ts +302 -0
  293. package/src/solita/types.ts +222 -0
  294. package/src/solita/uln.ts +1045 -0
  295. package/src/solita/utility.ts +589 -0
  296. package/src/types.ts +59 -65
  297. package/src/uln.ts +495 -466
  298. package/src/utility.ts +226 -180
  299. /package/src/generated/{blocked_messagelib → solita/blocked_messagelib}/index.ts +0 -0
  300. /package/src/generated/{blocked_messagelib → solita/blocked_messagelib}/instructions/index.ts +0 -0
  301. /package/src/generated/{blocked_messagelib → solita/blocked_messagelib}/instructions/version.ts +0 -0
  302. /package/src/generated/{dvn → solita/dvn}/accounts/DvnConfig.ts +0 -0
  303. /package/src/generated/{dvn → solita/dvn}/accounts/ExecuteHash.ts +0 -0
  304. /package/src/generated/{dvn → solita/dvn}/accounts/ReceiveConfig.ts +0 -0
  305. /package/src/generated/{dvn → solita/dvn}/accounts/index.ts +0 -0
  306. /package/src/generated/{dvn → solita/dvn}/errors/index.ts +0 -0
  307. /package/src/generated/{dvn → solita/dvn}/events/AdminConfigSetEvent.ts +0 -0
  308. /package/src/generated/{dvn → solita/dvn}/events/FeeWithdrawnEvent.ts +0 -0
  309. /package/src/generated/{dvn → solita/dvn}/events/MultisigConfigSetEvent.ts +0 -0
  310. /package/src/generated/{dvn → solita/dvn}/events/index.ts +0 -0
  311. /package/src/generated/{dvn → solita/dvn}/index.ts +0 -0
  312. /package/src/generated/{dvn → solita/dvn}/instructions/closeExecute.ts +0 -0
  313. /package/src/generated/{dvn → solita/dvn}/instructions/index.ts +0 -0
  314. /package/src/generated/{dvn → solita/dvn}/instructions/initDvn.ts +0 -0
  315. /package/src/generated/{dvn → solita/dvn}/instructions/invoke.ts +0 -0
  316. /package/src/generated/{dvn → solita/dvn}/instructions/quoteDvn.ts +0 -0
  317. /package/src/generated/{dvn → solita/dvn}/instructions/setConfig.ts +0 -0
  318. /package/src/generated/{dvn → solita/dvn}/instructions/verifiable.ts +0 -0
  319. /package/src/generated/{dvn → solita/dvn}/instructions/withdrawFee.ts +0 -0
  320. /package/src/generated/{dvn → solita/dvn}/types/Acl.ts +0 -0
  321. /package/src/generated/{dvn → solita/dvn}/types/AdminConfig.ts +0 -0
  322. /package/src/generated/{dvn → solita/dvn}/types/CloseExecuteParams.ts +0 -0
  323. /package/src/generated/{dvn → solita/dvn}/types/DstConfig.ts +0 -0
  324. /package/src/generated/{dvn → solita/dvn}/types/ExecuteTransactionDigest.ts +0 -0
  325. /package/src/generated/{dvn → solita/dvn}/types/InitDvnParams.ts +0 -0
  326. /package/src/generated/{dvn → solita/dvn}/types/InvokeParams.ts +0 -0
  327. /package/src/generated/{dvn → solita/dvn}/types/LzOption.ts +0 -0
  328. /package/src/generated/{dvn → solita/dvn}/types/Multisig.ts +0 -0
  329. /package/src/generated/{dvn → solita/dvn}/types/MultisigConfig.ts +0 -0
  330. /package/src/generated/{dvn → solita/dvn}/types/QuoteDvnParams.ts +0 -0
  331. /package/src/generated/{dvn → solita/dvn}/types/SetConfigParams.ts +0 -0
  332. /package/src/generated/{dvn → solita/dvn}/types/TransactionAccount.ts +0 -0
  333. /package/src/generated/{dvn → solita/dvn}/types/UlnConfig.ts +0 -0
  334. /package/src/generated/{dvn → solita/dvn}/types/VerifiableParams.ts +0 -0
  335. /package/src/generated/{dvn → solita/dvn}/types/VerificationState.ts +0 -0
  336. /package/src/generated/{dvn → solita/dvn}/types/WithdrawFeeParams.ts +0 -0
  337. /package/src/generated/{dvn → solita/dvn}/types/index.ts +0 -0
  338. /package/src/generated/{endpoint → solita/endpoint}/accounts/ComposeMessageState.ts +0 -0
  339. /package/src/generated/{endpoint → solita/endpoint}/accounts/EndpointSettings.ts +0 -0
  340. /package/src/generated/{endpoint → solita/endpoint}/accounts/MessageLibInfo.ts +0 -0
  341. /package/src/generated/{endpoint → solita/endpoint}/accounts/Nonce.ts +0 -0
  342. /package/src/generated/{endpoint → solita/endpoint}/accounts/OAppRegistry.ts +0 -0
  343. /package/src/generated/{endpoint → solita/endpoint}/accounts/PayloadHash.ts +0 -0
  344. /package/src/generated/{endpoint → solita/endpoint}/accounts/PendingInboundNonce.ts +0 -0
  345. /package/src/generated/{endpoint → solita/endpoint}/accounts/ReceiveLibraryConfig.ts +0 -0
  346. /package/src/generated/{endpoint → solita/endpoint}/accounts/SendLibraryConfig.ts +0 -0
  347. /package/src/generated/{endpoint → solita/endpoint}/accounts/index.ts +0 -0
  348. /package/src/generated/{endpoint → solita/endpoint}/errors/index.ts +0 -0
  349. /package/src/generated/{endpoint → solita/endpoint}/events/AdminTransferredEvent.ts +0 -0
  350. /package/src/generated/{endpoint → solita/endpoint}/events/ComposeDeliveredEvent.ts +0 -0
  351. /package/src/generated/{endpoint → solita/endpoint}/events/ComposeSentEvent.ts +0 -0
  352. /package/src/generated/{endpoint → solita/endpoint}/events/DefaultReceiveLibrarySetEvent.ts +0 -0
  353. /package/src/generated/{endpoint → solita/endpoint}/events/DefaultReceiveLibraryTimeoutSetEvent.ts +0 -0
  354. /package/src/generated/{endpoint → solita/endpoint}/events/DefaultSendLibrarySetEvent.ts +0 -0
  355. /package/src/generated/{endpoint → solita/endpoint}/events/DelegateSetEvent.ts +0 -0
  356. /package/src/generated/{endpoint → solita/endpoint}/events/InboundNonceSkippedEvent.ts +0 -0
  357. /package/src/generated/{endpoint → solita/endpoint}/events/LibraryRegisteredEvent.ts +0 -0
  358. /package/src/generated/{endpoint → solita/endpoint}/events/LzComposeAlertEvent.ts +0 -0
  359. /package/src/generated/{endpoint → solita/endpoint}/events/LzReceiveAlertEvent.ts +0 -0
  360. /package/src/generated/{endpoint → solita/endpoint}/events/LzTokenSetEvent.ts +0 -0
  361. /package/src/generated/{endpoint → solita/endpoint}/events/OAppRegisteredEvent.ts +0 -0
  362. /package/src/generated/{endpoint → solita/endpoint}/events/PacketBurntEvent.ts +0 -0
  363. /package/src/generated/{endpoint → solita/endpoint}/events/PacketDeliveredEvent.ts +0 -0
  364. /package/src/generated/{endpoint → solita/endpoint}/events/PacketNilifiedEvent.ts +0 -0
  365. /package/src/generated/{endpoint → solita/endpoint}/events/PacketSentEvent.ts +0 -0
  366. /package/src/generated/{endpoint → solita/endpoint}/events/PacketVerifiedEvent.ts +0 -0
  367. /package/src/generated/{endpoint → solita/endpoint}/events/ReceiveLibrarySetEvent.ts +0 -0
  368. /package/src/generated/{endpoint → solita/endpoint}/events/ReceiveLibraryTimeoutSetEvent.ts +0 -0
  369. /package/src/generated/{endpoint → solita/endpoint}/events/RentWithdrawnEvent.ts +0 -0
  370. /package/src/generated/{endpoint → solita/endpoint}/events/SendLibrarySetEvent.ts +0 -0
  371. /package/src/generated/{endpoint → solita/endpoint}/events/index.ts +0 -0
  372. /package/src/generated/{endpoint → solita/endpoint}/index.ts +0 -0
  373. /package/src/generated/{endpoint → solita/endpoint}/instructions/burn.ts +0 -0
  374. /package/src/generated/{endpoint → solita/endpoint}/instructions/clear.ts +0 -0
  375. /package/src/generated/{endpoint → solita/endpoint}/instructions/clearCompose.ts +0 -0
  376. /package/src/generated/{endpoint → solita/endpoint}/instructions/index.ts +0 -0
  377. /package/src/generated/{endpoint → solita/endpoint}/instructions/initConfig.ts +0 -0
  378. /package/src/generated/{endpoint → solita/endpoint}/instructions/initDefaultReceiveLibrary.ts +0 -0
  379. /package/src/generated/{endpoint → solita/endpoint}/instructions/initDefaultSendLibrary.ts +0 -0
  380. /package/src/generated/{endpoint → solita/endpoint}/instructions/initEndpoint.ts +0 -0
  381. /package/src/generated/{endpoint → solita/endpoint}/instructions/initNonce.ts +0 -0
  382. /package/src/generated/{endpoint → solita/endpoint}/instructions/initReceiveLibrary.ts +0 -0
  383. /package/src/generated/{endpoint → solita/endpoint}/instructions/initSendLibrary.ts +0 -0
  384. /package/src/generated/{endpoint → solita/endpoint}/instructions/initVerify.ts +0 -0
  385. /package/src/generated/{endpoint → solita/endpoint}/instructions/lzComposeAlert.ts +0 -0
  386. /package/src/generated/{endpoint → solita/endpoint}/instructions/lzReceiveAlert.ts +0 -0
  387. /package/src/generated/{endpoint → solita/endpoint}/instructions/nilify.ts +0 -0
  388. /package/src/generated/{endpoint → solita/endpoint}/instructions/quote.ts +0 -0
  389. /package/src/generated/{endpoint → solita/endpoint}/instructions/registerLibrary.ts +0 -0
  390. /package/src/generated/{endpoint → solita/endpoint}/instructions/registerOapp.ts +0 -0
  391. /package/src/generated/{endpoint → solita/endpoint}/instructions/send.ts +0 -0
  392. /package/src/generated/{endpoint → solita/endpoint}/instructions/sendCompose.ts +0 -0
  393. /package/src/generated/{endpoint → solita/endpoint}/instructions/setConfig.ts +0 -0
  394. /package/src/generated/{endpoint → solita/endpoint}/instructions/setDefaultReceiveLibrary.ts +0 -0
  395. /package/src/generated/{endpoint → solita/endpoint}/instructions/setDefaultReceiveLibraryTimeout.ts +0 -0
  396. /package/src/generated/{endpoint → solita/endpoint}/instructions/setDefaultSendLibrary.ts +0 -0
  397. /package/src/generated/{endpoint → solita/endpoint}/instructions/setDelegate.ts +0 -0
  398. /package/src/generated/{endpoint → solita/endpoint}/instructions/setLzToken.ts +0 -0
  399. /package/src/generated/{endpoint → solita/endpoint}/instructions/setReceiveLibrary.ts +0 -0
  400. /package/src/generated/{endpoint → solita/endpoint}/instructions/setReceiveLibraryTimeout.ts +0 -0
  401. /package/src/generated/{endpoint → solita/endpoint}/instructions/setSendLibrary.ts +0 -0
  402. /package/src/generated/{endpoint → solita/endpoint}/instructions/skip.ts +0 -0
  403. /package/src/generated/{endpoint → solita/endpoint}/instructions/transferAdmin.ts +0 -0
  404. /package/src/generated/{endpoint → solita/endpoint}/instructions/verify.ts +0 -0
  405. /package/src/generated/{endpoint → solita/endpoint}/instructions/withdrawRent.ts +0 -0
  406. /package/src/generated/{endpoint → solita/endpoint}/types/BurnParams.ts +0 -0
  407. /package/src/generated/{endpoint → solita/endpoint}/types/ClearComposeParams.ts +0 -0
  408. /package/src/generated/{endpoint → solita/endpoint}/types/ClearParams.ts +0 -0
  409. /package/src/generated/{endpoint → solita/endpoint}/types/InitConfigParams.ts +0 -0
  410. /package/src/generated/{endpoint → solita/endpoint}/types/InitDefaultReceiveLibraryParams.ts +0 -0
  411. /package/src/generated/{endpoint → solita/endpoint}/types/InitDefaultSendLibraryParams.ts +0 -0
  412. /package/src/generated/{endpoint → solita/endpoint}/types/InitEndpointParams.ts +0 -0
  413. /package/src/generated/{endpoint → solita/endpoint}/types/InitNonceParams.ts +0 -0
  414. /package/src/generated/{endpoint → solita/endpoint}/types/InitReceiveLibraryParams.ts +0 -0
  415. /package/src/generated/{endpoint → solita/endpoint}/types/InitSendLibraryParams.ts +0 -0
  416. /package/src/generated/{endpoint → solita/endpoint}/types/InitVerifyParams.ts +0 -0
  417. /package/src/generated/{endpoint → solita/endpoint}/types/LzComposeAlertParams.ts +0 -0
  418. /package/src/generated/{endpoint → solita/endpoint}/types/LzReceiveAlertParams.ts +0 -0
  419. /package/src/generated/{endpoint → solita/endpoint}/types/MessageLibType.ts +0 -0
  420. /package/src/generated/{endpoint → solita/endpoint}/types/MessagingFee.ts +0 -0
  421. /package/src/generated/{endpoint → solita/endpoint}/types/MessagingReceipt.ts +0 -0
  422. /package/src/generated/{endpoint → solita/endpoint}/types/NilifyParams.ts +0 -0
  423. /package/src/generated/{endpoint → solita/endpoint}/types/QuoteParams.ts +0 -0
  424. /package/src/generated/{endpoint → solita/endpoint}/types/ReceiveLibraryTimeout.ts +0 -0
  425. /package/src/generated/{endpoint → solita/endpoint}/types/RegisterLibraryParams.ts +0 -0
  426. /package/src/generated/{endpoint → solita/endpoint}/types/RegisterOAppParams.ts +0 -0
  427. /package/src/generated/{endpoint → solita/endpoint}/types/SendComposeParams.ts +0 -0
  428. /package/src/generated/{endpoint → solita/endpoint}/types/SendParams.ts +0 -0
  429. /package/src/generated/{endpoint → solita/endpoint}/types/SetConfigParams.ts +0 -0
  430. /package/src/generated/{endpoint → solita/endpoint}/types/SetDefaultReceiveLibraryParams.ts +0 -0
  431. /package/src/generated/{endpoint → solita/endpoint}/types/SetDefaultReceiveLibraryTimeoutParams.ts +0 -0
  432. /package/src/generated/{endpoint → solita/endpoint}/types/SetDefaultSendLibraryParams.ts +0 -0
  433. /package/src/generated/{endpoint → solita/endpoint}/types/SetDelegateParams.ts +0 -0
  434. /package/src/generated/{endpoint → solita/endpoint}/types/SetLzTokenParams.ts +0 -0
  435. /package/src/generated/{endpoint → solita/endpoint}/types/SetReceiveLibraryParams.ts +0 -0
  436. /package/src/generated/{endpoint → solita/endpoint}/types/SetReceiveLibraryTimeoutParams.ts +0 -0
  437. /package/src/generated/{endpoint → solita/endpoint}/types/SetSendLibraryParams.ts +0 -0
  438. /package/src/generated/{endpoint → solita/endpoint}/types/SkipParams.ts +0 -0
  439. /package/src/generated/{endpoint → solita/endpoint}/types/TransferAdminParams.ts +0 -0
  440. /package/src/generated/{endpoint → solita/endpoint}/types/VerifyParams.ts +0 -0
  441. /package/src/generated/{endpoint → solita/endpoint}/types/WithdrawRentParams.ts +0 -0
  442. /package/src/generated/{endpoint → solita/endpoint}/types/index.ts +0 -0
  443. /package/src/generated/{executor → solita/executor}/accounts/ExecutorConfig.ts +0 -0
  444. /package/src/generated/{executor → solita/executor}/accounts/Nonce.ts +0 -0
  445. /package/src/generated/{executor → solita/executor}/accounts/index.ts +0 -0
  446. /package/src/generated/{executor → solita/executor}/errors/index.ts +0 -0
  447. /package/src/generated/{executor → solita/executor}/events/NativeDropAppliedEvent.ts +0 -0
  448. /package/src/generated/{executor → solita/executor}/events/index.ts +0 -0
  449. /package/src/generated/{executor → solita/executor}/index.ts +0 -0
  450. /package/src/generated/{executor → solita/executor}/instructions/adminSetConfig.ts +0 -0
  451. /package/src/generated/{executor → solita/executor}/instructions/compose.ts +0 -0
  452. /package/src/generated/{executor → solita/executor}/instructions/executable.ts +0 -0
  453. /package/src/generated/{executor → solita/executor}/instructions/execute.ts +0 -0
  454. /package/src/generated/{executor → solita/executor}/instructions/index.ts +0 -0
  455. /package/src/generated/{executor → solita/executor}/instructions/initExecutor.ts +0 -0
  456. /package/src/generated/{executor → solita/executor}/instructions/nativeDrop.ts +0 -0
  457. /package/src/generated/{executor → solita/executor}/instructions/ownerSetConfig.ts +0 -0
  458. /package/src/generated/{executor → solita/executor}/instructions/quoteExecutor.ts +0 -0
  459. /package/src/generated/{executor → solita/executor}/types/Acl.ts +0 -0
  460. /package/src/generated/{executor → solita/executor}/types/AdminSetConfigParams.ts +0 -0
  461. /package/src/generated/{executor → solita/executor}/types/ComposeParams.ts +0 -0
  462. /package/src/generated/{executor → solita/executor}/types/DstConfig.ts +0 -0
  463. /package/src/generated/{executor → solita/executor}/types/ExecutableParams.ts +0 -0
  464. /package/src/generated/{executor → solita/executor}/types/ExecuteParams.ts +0 -0
  465. /package/src/generated/{executor → solita/executor}/types/ExecutionState.ts +0 -0
  466. /package/src/generated/{executor → solita/executor}/types/InitExecutorParams.ts +0 -0
  467. /package/src/generated/{executor → solita/executor}/types/LzComposeParams.ts +0 -0
  468. /package/src/generated/{executor → solita/executor}/types/LzOption.ts +0 -0
  469. /package/src/generated/{executor → solita/executor}/types/LzReceiveParams.ts +0 -0
  470. /package/src/generated/{executor → solita/executor}/types/NativeDropParams.ts +0 -0
  471. /package/src/generated/{executor → solita/executor}/types/NativeDropRequest.ts +0 -0
  472. /package/src/generated/{executor → solita/executor}/types/OwnerSetConfigParams.ts +0 -0
  473. /package/src/generated/{executor → solita/executor}/types/QuoteExecutorParams.ts +0 -0
  474. /package/src/generated/{executor → solita/executor}/types/index.ts +0 -0
  475. /package/src/generated/{pricefeed → solita/pricefeed}/accounts/PriceFeed.ts +0 -0
  476. /package/src/generated/{pricefeed → solita/pricefeed}/accounts/index.ts +0 -0
  477. /package/src/generated/{pricefeed → solita/pricefeed}/errors/index.ts +0 -0
  478. /package/src/generated/{pricefeed → solita/pricefeed}/index.ts +0 -0
  479. /package/src/generated/{pricefeed → solita/pricefeed}/instructions/getFee.ts +0 -0
  480. /package/src/generated/{pricefeed → solita/pricefeed}/instructions/index.ts +0 -0
  481. /package/src/generated/{pricefeed → solita/pricefeed}/instructions/initPriceFeed.ts +0 -0
  482. /package/src/generated/{pricefeed → solita/pricefeed}/instructions/setPrice.ts +0 -0
  483. /package/src/generated/{pricefeed → solita/pricefeed}/instructions/setPriceFeed.ts +0 -0
  484. /package/src/generated/{pricefeed → solita/pricefeed}/instructions/setSolPrice.ts +0 -0
  485. /package/src/generated/{pricefeed → solita/pricefeed}/instructions/transferAdmin.ts +0 -0
  486. /package/src/generated/{pricefeed → solita/pricefeed}/types/GetFeeParams.ts +0 -0
  487. /package/src/generated/{pricefeed → solita/pricefeed}/types/InitPriceFeedParams.ts +0 -0
  488. /package/src/generated/{pricefeed → solita/pricefeed}/types/ModelType.ts +0 -0
  489. /package/src/generated/{pricefeed → solita/pricefeed}/types/Price.ts +0 -0
  490. /package/src/generated/{pricefeed → solita/pricefeed}/types/PriceParams.ts +0 -0
  491. /package/src/generated/{pricefeed → solita/pricefeed}/types/SetPriceFeedParams.ts +0 -0
  492. /package/src/generated/{pricefeed → solita/pricefeed}/types/SetPriceParams.ts +0 -0
  493. /package/src/generated/{pricefeed → solita/pricefeed}/types/SetSolPriceParams.ts +0 -0
  494. /package/src/generated/{pricefeed → solita/pricefeed}/types/TransferAdminParams.ts +0 -0
  495. /package/src/generated/{pricefeed → solita/pricefeed}/types/index.ts +0 -0
  496. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/accounts/MessageLib.ts +0 -0
  497. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/accounts/ReceiveConfigStore.ts +0 -0
  498. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/accounts/SendConfigStore.ts +0 -0
  499. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/accounts/index.ts +0 -0
  500. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/errors/index.ts +0 -0
  501. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/index.ts +0 -0
  502. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/instructions/index.ts +0 -0
  503. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/instructions/initConfig.ts +0 -0
  504. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/instructions/initDefaultConfig.ts +0 -0
  505. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/instructions/initMessageLib.ts +0 -0
  506. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/instructions/quote.ts +0 -0
  507. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/instructions/revertCall.ts +0 -0
  508. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/instructions/send.ts +0 -0
  509. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/instructions/sendWithLzToken.ts +0 -0
  510. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/instructions/setConfig.ts +0 -0
  511. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/instructions/setDefaultConfig.ts +0 -0
  512. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/instructions/setFee.ts +0 -0
  513. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/instructions/setWlCaller.ts +0 -0
  514. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/instructions/transferAdmin.ts +0 -0
  515. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/instructions/validatePacket.ts +0 -0
  516. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/instructions/version.ts +0 -0
  517. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/instructions/withdrawFees.ts +0 -0
  518. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/types/InitConfigParams.ts +0 -0
  519. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/types/InitDefaultConfigParams.ts +0 -0
  520. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/types/InitMessageLibParams.ts +0 -0
  521. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/types/MessagingFee.ts +0 -0
  522. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/types/Packet.ts +0 -0
  523. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/types/QuoteParams.ts +0 -0
  524. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/types/SendParams.ts +0 -0
  525. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/types/SendWithLzTokenParams.ts +0 -0
  526. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/types/SetConfigParams.ts +0 -0
  527. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/types/SetDefaultConfigParams.ts +0 -0
  528. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/types/SetFeeParams.ts +0 -0
  529. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/types/SetWlCallerParams.ts +0 -0
  530. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/types/TransferAdminParams.ts +0 -0
  531. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/types/ValidatePacketParams.ts +0 -0
  532. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/types/Version.ts +0 -0
  533. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/types/WithdrawFeesParams.ts +0 -0
  534. /package/src/generated/{simple_messagelib → solita/simple_messagelib}/types/index.ts +0 -0
  535. /package/src/generated/{uln → solita/uln}/accounts/Confirmations.ts +0 -0
  536. /package/src/generated/{uln → solita/uln}/accounts/ReceiveConfig.ts +0 -0
  537. /package/src/generated/{uln → solita/uln}/accounts/SendConfig.ts +0 -0
  538. /package/src/generated/{uln → solita/uln}/accounts/UlnSettings.ts +0 -0
  539. /package/src/generated/{uln → solita/uln}/accounts/index.ts +0 -0
  540. /package/src/generated/{uln → solita/uln}/errors/index.ts +0 -0
  541. /package/src/generated/{uln → solita/uln}/events/AdminTransferredEvent.ts +0 -0
  542. /package/src/generated/{uln → solita/uln}/events/ConfigSetEvent.ts +0 -0
  543. /package/src/generated/{uln → solita/uln}/events/DefaultConfigSetEvent.ts +0 -0
  544. /package/src/generated/{uln → solita/uln}/events/FeesPaidEvent.ts +0 -0
  545. /package/src/generated/{uln → solita/uln}/events/LzTokenSetEvent.ts +0 -0
  546. /package/src/generated/{uln → solita/uln}/events/PayloadVerifiedEvent.ts +0 -0
  547. /package/src/generated/{uln → solita/uln}/events/RentWithdrawnEvent.ts +0 -0
  548. /package/src/generated/{uln → solita/uln}/events/TreasuryFeeCapSetEvent.ts +0 -0
  549. /package/src/generated/{uln → solita/uln}/events/TreasurySetEvent.ts +0 -0
  550. /package/src/generated/{uln → solita/uln}/events/index.ts +0 -0
  551. /package/src/generated/{uln → solita/uln}/index.ts +0 -0
  552. /package/src/generated/{uln → solita/uln}/instructions/closeVerify.ts +0 -0
  553. /package/src/generated/{uln → solita/uln}/instructions/commitVerification.ts +0 -0
  554. /package/src/generated/{uln → solita/uln}/instructions/index.ts +0 -0
  555. /package/src/generated/{uln → solita/uln}/instructions/initConfig.ts +0 -0
  556. /package/src/generated/{uln → solita/uln}/instructions/initDefaultConfig.ts +0 -0
  557. /package/src/generated/{uln → solita/uln}/instructions/initUln.ts +0 -0
  558. /package/src/generated/{uln → solita/uln}/instructions/initVerify.ts +0 -0
  559. /package/src/generated/{uln → solita/uln}/instructions/quote.ts +0 -0
  560. /package/src/generated/{uln → solita/uln}/instructions/send.ts +0 -0
  561. /package/src/generated/{uln → solita/uln}/instructions/sendWithLzToken.ts +0 -0
  562. /package/src/generated/{uln → solita/uln}/instructions/setConfig.ts +0 -0
  563. /package/src/generated/{uln → solita/uln}/instructions/setDefaultConfig.ts +0 -0
  564. /package/src/generated/{uln → solita/uln}/instructions/setTreasury.ts +0 -0
  565. /package/src/generated/{uln → solita/uln}/instructions/transferAdmin.ts +0 -0
  566. /package/src/generated/{uln → solita/uln}/instructions/verify.ts +0 -0
  567. /package/src/generated/{uln → solita/uln}/instructions/version.ts +0 -0
  568. /package/src/generated/{uln → solita/uln}/instructions/withdrawRent.ts +0 -0
  569. /package/src/generated/{uln → solita/uln}/types/CloseVerifyParams.ts +0 -0
  570. /package/src/generated/{uln → solita/uln}/types/CommitVerificationParams.ts +0 -0
  571. /package/src/generated/{uln → solita/uln}/types/Config.ts +0 -0
  572. /package/src/generated/{uln → solita/uln}/types/ExecutorConfig.ts +0 -0
  573. /package/src/generated/{uln → solita/uln}/types/InitConfigParams.ts +0 -0
  574. /package/src/generated/{uln → solita/uln}/types/InitDefaultConfigParams.ts +0 -0
  575. /package/src/generated/{uln → solita/uln}/types/InitUlnParams.ts +0 -0
  576. /package/src/generated/{uln → solita/uln}/types/InitVerifyParams.ts +0 -0
  577. /package/src/generated/{uln → solita/uln}/types/LzTokenTreasury.ts +0 -0
  578. /package/src/generated/{uln → solita/uln}/types/MessagingFee.ts +0 -0
  579. /package/src/generated/{uln → solita/uln}/types/Packet.ts +0 -0
  580. /package/src/generated/{uln → solita/uln}/types/QuoteParams.ts +0 -0
  581. /package/src/generated/{uln → solita/uln}/types/SendParams.ts +0 -0
  582. /package/src/generated/{uln → solita/uln}/types/SendWithLzTokenParams.ts +0 -0
  583. /package/src/generated/{uln → solita/uln}/types/SetConfigParams.ts +0 -0
  584. /package/src/generated/{uln → solita/uln}/types/SetDefaultConfigParams.ts +0 -0
  585. /package/src/generated/{uln → solita/uln}/types/SetTreasuryParams.ts +0 -0
  586. /package/src/generated/{uln → solita/uln}/types/TransferAdminParams.ts +0 -0
  587. /package/src/generated/{uln → solita/uln}/types/Treasury.ts +0 -0
  588. /package/src/generated/{uln → solita/uln}/types/TreasuryFee.ts +0 -0
  589. /package/src/generated/{uln → solita/uln}/types/UlnConfig.ts +0 -0
  590. /package/src/generated/{uln → solita/uln}/types/VerifyParams.ts +0 -0
  591. /package/src/generated/{uln → solita/uln}/types/Version.ts +0 -0
  592. /package/src/generated/{uln → solita/uln}/types/WithdrawRentParams.ts +0 -0
  593. /package/src/generated/{uln → solita/uln}/types/WorkerFee.ts +0 -0
  594. /package/src/generated/{uln → solita/uln}/types/index.ts +0 -0
  595. /package/src/generated/{worker_interface → solita/worker_interface}/errors/index.ts +0 -0
  596. /package/src/generated/{worker_interface → solita/worker_interface}/index.ts +0 -0
  597. /package/src/generated/{worker_interface → solita/worker_interface}/instructions/index.ts +0 -0
  598. /package/src/generated/{worker_interface → solita/worker_interface}/instructions/quoteDvn.ts +0 -0
  599. /package/src/generated/{worker_interface → solita/worker_interface}/instructions/quoteExecutor.ts +0 -0
  600. /package/src/generated/{worker_interface → solita/worker_interface}/types/LzOption.ts +0 -0
  601. /package/src/generated/{worker_interface → solita/worker_interface}/types/QuoteDvnParams.ts +0 -0
  602. /package/src/generated/{worker_interface → solita/worker_interface}/types/QuoteExecutorParams.ts +0 -0
  603. /package/src/generated/{worker_interface → solita/worker_interface}/types/index.ts +0 -0
  604. /package/src/{pda-deriver.ts → solita/pda-deriver.ts} +0 -0
package/src/uln.ts CHANGED
@@ -1,12 +1,25 @@
1
1
  import {
2
2
  AccountMeta,
3
+ Cluster,
4
+ ClusterFilter,
3
5
  Commitment,
4
- Connection,
5
- GetAccountInfoConfig,
6
+ Option,
7
+ Program,
8
+ ProgramError,
9
+ ProgramRepositoryInterface,
6
10
  PublicKey,
7
- TransactionInstruction,
8
- } from '@solana/web3.js'
9
- import BN from 'bn.js'
11
+ RpcInterface,
12
+ Signer,
13
+ WrappedInstruction,
14
+ createNoopSigner,
15
+ createNullRpc,
16
+ defaultPublicKey,
17
+ isSome,
18
+ publicKey,
19
+ } from '@metaplex-foundation/umi'
20
+ import { createDefaultProgramRepository } from '@metaplex-foundation/umi-program-repository'
21
+ import { fromWeb3JsPublicKey } from '@metaplex-foundation/umi-web3js-adapters'
22
+ import { TOKEN_PROGRAM_ID } from '@solana/spl-token'
10
23
  import invariant from 'tiny-invariant'
11
24
 
12
25
  import { arrayify } from '@layerzerolabs/lz-utilities'
@@ -14,15 +27,17 @@ import { PacketV1Codec } from '@layerzerolabs/lz-v2-utilities'
14
27
 
15
28
  import { EndpointProgram, MessageLibInterface, SetConfigType, SolanaPacketPath } from '.'
16
29
  import { DVN, accounts as DvnAccounts } from './dvn'
30
+ import { ENDPOINT_PROGRAM_ID } from './endpoint'
17
31
  import { Executor, accounts as ExecutorAccounts } from './executor'
18
- import * as accounts from './generated/uln/accounts'
19
- import * as errors from './generated/uln/errors'
20
- import * as events from './generated/uln/events'
21
- import * as instructions from './generated/uln/instructions'
22
- import * as types from './generated/uln/types'
23
- import { EndpointPDADeriver, EventPDADeriver, UlnPDADeriver } from './pda-deriver'
24
-
25
- export * from './generated/uln'
32
+ import { ULN_PROGRAM_ID } from './generated/kinobi/uln'
33
+ import * as accounts from './generated/kinobi/uln/accounts'
34
+ import * as errors from './generated/kinobi/uln/errors'
35
+ import * as events from './generated/kinobi/uln/events'
36
+ import * as instructions from './generated/kinobi/uln/instructions'
37
+ import * as types from './generated/kinobi/uln/types'
38
+ import { EndpointPDA, EventPDA, UlnPDA } from './pda'
39
+
40
+ export { ULN_PROGRAM_ID } from './generated/kinobi/uln'
26
41
  export { accounts, instructions, types, events, errors }
27
42
 
28
43
  /**
@@ -120,53 +135,63 @@ export interface OptionalOracles {
120
135
  * @see {@link MessageLibInterface}
121
136
  */
122
137
  export class Uln implements MessageLibInterface {
123
- deriver: UlnPDADeriver
124
- eventAuthorityPDA: PublicKey
138
+ public readonly pda: UlnPDA
139
+ public readonly programRepo: ProgramRepositoryInterface
140
+ public readonly eventAuthority: PublicKey
125
141
 
126
142
  /**
127
143
  * Creates an instance of the Uln class.
128
144
  *
129
- * @param {PublicKey} program - The program public key.
145
+ * @param {PublicKey} programId - The program public key.
130
146
  */
131
- constructor(public program: PublicKey) {
132
- this.deriver = new UlnPDADeriver(program)
133
- const [eventAuthorityPDA] = new EventPDADeriver(program).eventAuthority()
134
- this.eventAuthorityPDA = eventAuthorityPDA
147
+ constructor(
148
+ public programId: PublicKey = ULN_PROGRAM_ID,
149
+ rpc?: RpcInterface
150
+ ) {
151
+ this.pda = new UlnPDA(programId)
152
+ if (rpc === undefined) {
153
+ rpc = createNullRpc()
154
+ rpc.getCluster = (): Cluster => 'custom'
155
+ }
156
+ this.programRepo = createDefaultProgramRepository({ rpc }, [
157
+ {
158
+ name: 'uln',
159
+ publicKey: programId,
160
+ getErrorFromCode(code: number, cause?: Error): ProgramError | null {
161
+ return errors.getUlnErrorFromCode(code, this, cause)
162
+ },
163
+ getErrorFromName(name: string, cause?: Error): ProgramError | null {
164
+ return errors.getUlnErrorFromName(name, this, cause)
165
+ },
166
+ isOnCluster(): boolean {
167
+ return true
168
+ },
169
+ } satisfies Program,
170
+ ])
171
+
172
+ this.eventAuthority = new EventPDA(programId).eventAuthority()[0]
135
173
  }
136
174
 
137
- /**
138
- * Initializes the ULN.
139
- *
140
- * @param {PublicKey} endpointProgram - The endpoint program public key.
141
- * @param {PublicKey} payer - The payer public key.
142
- * @param {PublicKey} admin - The admin public key.
143
- * @param {number} eid - The endpoint ID.
144
- * @returns {TransactionInstruction} The transaction instruction.
145
- */
146
- initUln(endpointProgram: PublicKey, payer: PublicKey, admin: PublicKey, eid: number): TransactionInstruction {
147
- const [setting] = this.deriver.setting()
148
- const [msgLib] = this.deriver.messageLib()
149
- const [endpointAuth] = new EndpointPDADeriver(endpointProgram).messageLibraryInfo(msgLib)
150
- // const info = await connection.getAccountInfo(setting, commitmentOrConfig)
151
- // if (info) {
152
- // throw new Error('uln already initialized')
153
- // }
175
+ getProgram(clusterFilter: ClusterFilter = 'custom'): Program {
176
+ return this.programRepo.get('uln', clusterFilter)
177
+ }
154
178
 
155
- return instructions.createInitUlnInstruction(
179
+ initUln(payer: Signer, param: { admin: PublicKey; eid: number; endpointProgram?: PublicKey }): WrappedInstruction {
180
+ const { admin, eid, endpointProgram } = param
181
+ const [msgLib] = this.pda.messageLib()
182
+ const [endpointAuth] = new EndpointPDA(endpointProgram ?? ENDPOINT_PROGRAM_ID).messageLibraryInfo(msgLib)
183
+ return instructions.initUln(
184
+ { programs: this.programRepo, payer },
156
185
  {
157
186
  payer,
158
- uln: setting,
159
- } satisfies instructions.InitUlnInstructionAccounts,
160
- {
161
- params: {
162
- eid,
163
- admin,
164
- endpoint: endpointAuth,
165
- endpointProgram: endpointProgram,
166
- } satisfies types.InitUlnParams,
167
- } satisfies instructions.InitUlnInstructionArgs,
168
- this.program
169
- )
187
+ uln: this.pda.setting(),
188
+ // param
189
+ eid,
190
+ admin,
191
+ endpoint: endpointAuth,
192
+ endpointProgram: endpointProgram ?? ENDPOINT_PROGRAM_ID,
193
+ }
194
+ ).items[0]
170
195
  }
171
196
 
172
197
  /**
@@ -183,60 +208,60 @@ export class Uln implements MessageLibInterface {
183
208
  * @returns {Promise<TransactionInstruction>} A promise that resolves to the transaction instruction.
184
209
  */
185
210
  async initOrUpdateDefaultConfig(
186
- connection: Connection,
187
- admin: PublicKey,
188
- eid: number,
189
- sendUlnConfig: types.UlnConfig,
190
- receiveUlnConfig: types.UlnConfig,
191
- executorConfig: types.ExecutorConfig,
192
- commitmentOrConfig?: Commitment | GetAccountInfoConfig
193
- ): Promise<TransactionInstruction> {
194
- const [setting] = this.deriver.setting()
195
- const [sendConfigPDA] = this.deriver.defaultSendConfig(eid)
196
- const [receiveConfigPDA] = this.deriver.defaultReceiveConfig(eid)
197
- const configInfo = await connection.getAccountInfo(sendConfigPDA, commitmentOrConfig)
198
- if (configInfo) {
211
+ rpc: RpcInterface,
212
+ admin: Signer,
213
+ param: {
214
+ remote: number
215
+ sendUlnConfig: Option<types.UlnConfig>
216
+ receiveUlnConfig: Option<types.UlnConfig>
217
+ executorConfig: Option<types.ExecutorConfig>
218
+ }
219
+ ): Promise<WrappedInstruction> {
220
+ const { remote, sendUlnConfig, receiveUlnConfig, executorConfig } = param
221
+ const [setting] = this.pda.setting()
222
+ const [sendConfig] = this.pda.defaultSendConfig(remote)
223
+ const [receiveConfigPDA] = this.pda.defaultReceiveConfig(remote)
224
+ const sendConfigExists = await rpc.accountExists(sendConfig, { commitment: 'confirmed' })
225
+ if (sendConfigExists) {
199
226
  // update default config
200
- return instructions.createSetDefaultConfigInstruction(
227
+ return instructions.setDefaultConfig(
228
+ { programs: this.programRepo },
201
229
  {
202
230
  admin,
203
231
  uln: setting,
204
- sendConfig: sendConfigPDA,
232
+ sendConfig: sendConfig,
205
233
  receiveConfig: receiveConfigPDA,
206
- eventAuthority: this.eventAuthorityPDA,
207
- program: this.program,
208
- } satisfies instructions.SetDefaultConfigInstructionAccounts,
209
- {
210
- params: {
211
- eid,
212
- sendUlnConfig,
213
- receiveUlnConfig,
214
- executorConfig,
215
- } satisfies types.SetDefaultConfigParams,
216
- } satisfies instructions.SetDefaultConfigInstructionArgs,
217
- this.program
218
- )
234
+ eventAuthority: this.eventAuthority,
235
+ program: this.programId,
236
+ // param
237
+ eid: remote,
238
+ sendUlnConfig,
239
+ receiveUlnConfig,
240
+ executorConfig,
241
+ }
242
+ ).items[0]
219
243
  } else {
244
+ invariant(isSome(sendUlnConfig), 'sendUlnConfig is required')
245
+ invariant(isSome(receiveUlnConfig), 'receiveUlnConfig is required')
246
+ invariant(isSome(executorConfig), 'executorConfig is required')
247
+
220
248
  // init default config
221
- return instructions.createInitDefaultConfigInstruction(
249
+ return instructions.initDefaultConfig(
250
+ { programs: this.programRepo },
222
251
  {
223
252
  admin,
224
253
  uln: setting,
225
- sendConfig: sendConfigPDA,
254
+ sendConfig: sendConfig,
226
255
  receiveConfig: receiveConfigPDA,
227
- eventAuthority: this.eventAuthorityPDA,
228
- program: this.program,
229
- } satisfies instructions.InitDefaultConfigInstructionAccounts,
230
- {
231
- params: {
232
- eid,
233
- sendUlnConfig,
234
- receiveUlnConfig,
235
- executorConfig,
236
- } satisfies types.InitDefaultConfigParams,
237
- } satisfies instructions.InitDefaultConfigInstructionArgs,
238
- this.program
239
- )
256
+ eventAuthority: this.eventAuthority,
257
+ program: this.programId,
258
+ // param
259
+ eid: remote,
260
+ sendUlnConfig: sendUlnConfig.value,
261
+ receiveUlnConfig: receiveUlnConfig.value,
262
+ executorConfig: executorConfig.value,
263
+ }
264
+ ).items[0]
240
265
  }
241
266
  }
242
267
 
@@ -255,103 +280,83 @@ export class Uln implements MessageLibInterface {
255
280
  * @param {number} treasury.lzToken.fee - The LZ token fee.
256
281
  * @returns {Promise<TransactionInstruction>} A promise that resolves to the transaction instruction.
257
282
  */
258
- async setTreasury(
259
- admin: PublicKey,
283
+ setTreasury(
284
+ admin: Signer,
260
285
  treasury: {
261
286
  admin: PublicKey
262
287
  nativeReceiver: PublicKey
263
288
  nativeFeeBps: number
264
289
  lzToken: { receiver: PublicKey; fee: number } | null
265
290
  } | null
266
- ): Promise<TransactionInstruction> {
267
- const [setting] = this.deriver.setting()
268
- const ix = instructions.createSetTreasuryInstruction(
291
+ ): WrappedInstruction {
292
+ return instructions.setTreasury(
293
+ { programs: this.programRepo },
269
294
  {
270
295
  signer: admin,
271
- uln: setting,
272
- eventAuthority: this.eventAuthorityPDA,
273
- program: this.program,
274
- } satisfies instructions.SetTreasuryInstructionAccounts,
275
- {
276
- params: {
277
- treasury,
278
- } satisfies types.SetTreasuryParams,
279
- } satisfies instructions.SetTreasuryInstructionArgs,
280
- this.program
281
- )
282
- return Promise.resolve(ix)
296
+ uln: this.pda.setting(),
297
+ eventAuthority: this.eventAuthority,
298
+ program: this.programId,
299
+ // param
300
+ treasury,
301
+ }
302
+ ).items[0]
283
303
  }
284
304
 
285
- /**
286
- * Transfers the admin role to a new admin.
287
- *
288
- * @param {Connection} connection - The connection to the Solana cluster.
289
- * @param {PublicKey} admin - The current admin public key.
290
- * @param {PublicKey} newAdmin - The new admin public key.
291
- * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment level or account info configuration.
292
- * @returns {Promise<TransactionInstruction>} A promise that resolves to the transaction instruction.
293
- * @throws {Error} If the ULN is not initialized.
294
- */
295
- async transferAdmin(
296
- connection: Connection,
297
- admin: PublicKey,
298
- newAdmin: PublicKey,
299
- commitmentOrConfig?: Commitment | GetAccountInfoConfig
300
- ): Promise<TransactionInstruction> {
301
- const [setting] = this.deriver.setting()
302
- const info = await connection.getAccountInfo(setting, commitmentOrConfig)
303
- if (!info) {
304
- throw new Error('uln not initialized')
305
- }
306
- return instructions.createTransferAdminInstruction(
305
+ transferAdmin(admin: Signer, newAdmin: PublicKey): WrappedInstruction {
306
+ return instructions.transferAdmin(
307
+ { programs: this.programRepo },
307
308
  {
308
309
  admin,
309
- uln: setting,
310
- eventAuthority: this.eventAuthorityPDA,
311
- program: this.program,
312
- } satisfies instructions.TransferAdminInstructionAccounts,
313
- {
314
- params: {
315
- admin: newAdmin,
316
- } satisfies types.TransferAdminParams,
317
- } satisfies instructions.TransferAdminInstructionArgs,
318
- this.program
319
- )
310
+ uln: this.pda.setting(),
311
+ eventAuthority: this.eventAuthority,
312
+ program: this.programId,
313
+ },
314
+ { admin: newAdmin }
315
+ ).items[0]
320
316
  }
321
317
 
322
318
  /**
323
319
  * Gets the account metadata for the CPI (Cross-Program Invocation) of the quote instruction.
324
320
  *
325
- * @param {Connection} connection - The connection to the Solana cluster.
321
+ * @param {RpcInterface} rpc - The connection to the Solana cluster.
326
322
  * @param {PublicKey} _payer - The payer public key.
327
- * @param {PacketPath} path - The packet path.
323
+ * @param {SolanaPacketPath} path - The packet path.
328
324
  * @param {Commitment} [commitment] - The commitment level.
329
325
  * @returns {Promise<AccountMeta[]>} A promise that resolves to an array of account metadata.
330
326
  */
331
327
  async getQuoteIXAccountMetaForCPI(
332
- connection: Connection,
328
+ rpc: RpcInterface,
333
329
  _payer: PublicKey,
334
330
  path: SolanaPacketPath,
335
- commitment?: Commitment
331
+ commitment: Commitment = 'confirmed'
336
332
  ): Promise<AccountMeta[]> {
337
- const { sender: sender_, dstEid } = path
338
- const sender = new PublicKey(arrayify(sender_))
339
- const [defaultSendConfig] = this.deriver.defaultSendConfig(dstEid)
340
- const [sendConfig] = this.deriver.sendConfig(dstEid, sender)
341
- const [setting] = this.deriver.setting()
342
-
343
- const remainingAccounts = await this.getSendIxRemainingAccounts(connection, sender, dstEid, false, commitment)
344
- const accounts = instructions.createQuoteInstructionAccounts(
333
+ const { sender, dstEid } = path
334
+ // const sender = publicKey(arrayify(sender_))
335
+ const txBuilder = instructions.quote(
336
+ { programs: this.programRepo },
345
337
  {
346
- endpoint: PublicKey.default, // useless
347
- uln: setting,
348
- sendConfig,
349
- defaultSendConfig: defaultSendConfig,
350
- anchorRemainingAccounts: remainingAccounts,
351
- } satisfies instructions.QuoteInstructionAccounts,
352
- this.program
338
+ endpoint: createNoopSigner(defaultPublicKey()),
339
+ uln: this.pda.setting(),
340
+ sendConfig: this.pda.sendConfig(dstEid, sender),
341
+ defaultSendConfig: this.pda.defaultSendConfig(dstEid),
342
+
343
+ packet: {
344
+ nonce: 0,
345
+ srcEid: 0,
346
+ sender: defaultPublicKey(),
347
+ dstEid: 0,
348
+ receiver: new Uint8Array(32),
349
+ guid: new Uint8Array(32),
350
+ message: new Uint8Array(4),
351
+ },
352
+ options: new Uint8Array(4),
353
+ payInLzToken: false,
354
+ }
353
355
  )
354
- return accounts.slice(1)
356
+ return txBuilder
357
+ .addRemainingAccounts(await this.getSendIxRemainingAccounts(rpc, sender, dstEid, false, commitment))
358
+ .getInstructions()[0]
359
+ .keys.slice(1)
355
360
  }
356
361
 
357
362
  /**
@@ -364,47 +369,132 @@ export class Uln implements MessageLibInterface {
364
369
  * @returns {Promise<AccountMeta[]>} A promise that resolves to an array of account metadata.
365
370
  */
366
371
  async getSendIXAccountMetaForCPI(
367
- connection: Connection,
372
+ rpc: RpcInterface,
368
373
  payer: PublicKey,
369
374
  path: SolanaPacketPath,
370
375
  commitment: Commitment = 'confirmed'
371
376
  ): Promise<AccountMeta[]> {
372
- const { sender: sender_, dstEid } = path
373
- const sender = new PublicKey(arrayify(sender_))
374
- const [sendConfig] = this.deriver.sendConfig(dstEid, sender)
375
- const [defaultSendConfig] = this.deriver.defaultSendConfig(dstEid)
376
-
377
- const [setting] = this.deriver.setting()
378
- const ulnState = await this.getSetting(connection, commitment)
379
- const treasury = ulnState?.treasury?.nativeReceiver
380
- const remainingAccounts = await this.getSendIxRemainingAccounts(connection, sender, dstEid, true, commitment)
381
- const accounts = instructions.createSendInstructionAccounts(
377
+ const { sender, dstEid } = path
378
+
379
+ const ulnState = await this.getSetting(rpc, commitment)
380
+ let treasury: PublicKey | undefined
381
+ if (ulnState !== null && isSome(ulnState.treasury)) {
382
+ treasury = ulnState.treasury.value.nativeReceiver
383
+ }
384
+
385
+ let txBuilder = instructions.send(
386
+ { payer: createNoopSigner(payer), programs: this.programRepo },
382
387
  {
383
- endpoint: PublicKey.default, // useless
384
- uln: setting,
385
- sendConfig,
386
- defaultSendConfig,
387
- payer,
388
+ endpoint: createNoopSigner(defaultPublicKey()),
389
+ payer: createNoopSigner(payer),
390
+ uln: this.pda.setting(),
391
+ sendConfig: this.pda.sendConfig(dstEid, sender),
392
+ defaultSendConfig: this.pda.defaultSendConfig(dstEid),
388
393
  treasury,
389
- eventAuthority: this.eventAuthorityPDA,
390
- program: this.program,
391
- anchorRemainingAccounts: remainingAccounts,
392
- } satisfies instructions.SendInstructionAccounts,
393
- this.program
394
+ eventAuthority: this.eventAuthority,
395
+ program: this.programId,
396
+
397
+ // param
398
+ packet: {
399
+ nonce: 0,
400
+ srcEid: 0,
401
+ sender: defaultPublicKey(),
402
+ dstEid: 0,
403
+ receiver: new Uint8Array(32),
404
+ guid: new Uint8Array(32),
405
+ message: new Uint8Array(4),
406
+ },
407
+ options: new Uint8Array(4),
408
+ nativeFee: 0,
409
+ }
394
410
  )
395
- accounts.forEach((key) => {
396
- if (!payer.equals(key.pubkey)) {
411
+ txBuilder = txBuilder.addRemainingAccounts(
412
+ await this.getSendIxRemainingAccounts(rpc, sender, dstEid, true, commitment)
413
+ )
414
+ const accounts = txBuilder.getInstructions()[0].keys.map((key) => {
415
+ if (payer !== key.pubkey) {
397
416
  key.isSigner = false
398
417
  }
418
+ if (treasury !== undefined && key.pubkey === treasury) {
419
+ key.isWritable = true
420
+ }
421
+ return key
399
422
  })
400
-
401
- if (treasury) {
402
- const treasuryIndex = accounts.findIndex((k) => k.pubkey.toBase58() == treasury.toBase58())
403
- accounts[treasuryIndex].isWritable = true // treasury account
404
- }
405
423
  return accounts.slice(1)
406
424
  }
407
425
 
426
+ /***
427
+ * Get the account meta of the send instruction for CPI(Cross-Program Invocation ) with lzToken
428
+ */
429
+ async getSendWithLzTokenIXAccountMetaForCPI(
430
+ rpc: RpcInterface,
431
+ accounts: {
432
+ payer: PublicKey
433
+ tokenMint: PublicKey
434
+ tokenSource: PublicKey
435
+ },
436
+ path: SolanaPacketPath,
437
+ programs: {
438
+ tokenProgram?: PublicKey
439
+ associatedTokenProgram?: PublicKey
440
+ },
441
+ commitment: Commitment = 'confirmed'
442
+ ): Promise<AccountMeta[]> {
443
+ const { payer, tokenMint, tokenSource } = accounts
444
+ const { sender, dstEid } = path
445
+
446
+ const ulnState = await this.getSetting(rpc, commitment)
447
+ invariant(ulnState !== null, 'ULN not initialized')
448
+ invariant(isSome(ulnState.treasury), 'treasury not set')
449
+ invariant(isSome(ulnState.treasury.value.lzToken), 'lzToken treasury not set')
450
+ const lzTokenTreasury = ulnState.treasury.value.lzToken.value.receiver
451
+
452
+ let txBuilder = instructions.sendWithLzToken(
453
+ { payer: createNoopSigner(payer), programs: this.programRepo },
454
+ {
455
+ endpoint: createNoopSigner(defaultPublicKey()),
456
+ payer: createNoopSigner(payer),
457
+ uln: this.pda.setting(),
458
+ sendConfig: this.pda.sendConfig(dstEid, sender),
459
+ defaultSendConfig: this.pda.defaultSendConfig(dstEid),
460
+ lzTokenTreasury,
461
+ eventAuthority: this.eventAuthority,
462
+ program: this.programId,
463
+ lzTokenSource: tokenSource,
464
+ lzTokenMint: tokenMint,
465
+ tokenProgram: programs.tokenProgram ?? fromWeb3JsPublicKey(TOKEN_PROGRAM_ID),
466
+ },
467
+ {
468
+ packet: {
469
+ nonce: 0,
470
+ srcEid: 0,
471
+ sender: defaultPublicKey(),
472
+ dstEid: 0,
473
+ receiver: new Uint8Array(32),
474
+ guid: new Uint8Array(32),
475
+ message: new Uint8Array(4),
476
+ },
477
+ options: new Uint8Array(4),
478
+ nativeFee: 0,
479
+ lzTokenFee: 0,
480
+ lzTokenMint: tokenMint,
481
+ }
482
+ )
483
+ txBuilder = txBuilder.addRemainingAccounts(
484
+ await this.getSendIxRemainingAccounts(rpc, sender, dstEid, true, commitment)
485
+ )
486
+ const keys = txBuilder.getInstructions()[0].keys.map((key) => {
487
+ if (payer !== key.pubkey) {
488
+ key.isSigner = false
489
+ }
490
+ if (key.pubkey === lzTokenTreasury) {
491
+ key.isWritable = true
492
+ }
493
+ return key
494
+ })
495
+ return keys.slice(1)
496
+ }
497
+
408
498
  // 3 RPC requests
409
499
  /**
410
500
  * Gets the remaining accounts for the send instruction.
@@ -417,37 +507,37 @@ export class Uln implements MessageLibInterface {
417
507
  * @returns {Promise<AccountMeta[]>} A promise that resolves to an array of account metadata.
418
508
  */
419
509
  async getSendIxRemainingAccounts(
420
- connection: Connection,
510
+ rpc: RpcInterface,
421
511
  sender: PublicKey,
422
512
  dstEid: number,
423
513
  payment: boolean,
424
- commitment: Commitment | GetAccountInfoConfig = 'confirmed'
514
+ commitment: Commitment = 'confirmed'
425
515
  ): Promise<AccountMeta[]> {
426
- const { executor, dvns } = await this.getWorkers(connection, sender, dstEid, commitment)
516
+ const { executor, dvns } = await this.getWorkers(rpc, sender, dstEid)
427
517
 
428
518
  const priceFeeds = new Array<PublicKey>()
429
519
  ;[executor.config, ...dvns.map((dvn) => dvn.config)].forEach((config) => {
430
- if (!priceFeeds.find((p) => p.equals(config.priceFeed))) {
520
+ if (!priceFeeds.find((p) => p === config.priceFeed)) {
431
521
  priceFeeds.push(config.priceFeed)
432
522
  }
433
523
  })
434
- const priceFeedInfos = await connection.getMultipleAccountsInfo(priceFeeds, commitment)
524
+ const priceFeedInfos = await rpc.getAccounts(priceFeeds, { commitment })
435
525
  const priceFeedDict = priceFeedInfos.reduce((acc, info, i) => {
436
- invariant(info, `priceFeed:${priceFeeds[i].toBase58()} not initialized`)
437
- acc.set(priceFeeds[i].toBase58(), info.owner)
526
+ invariant(info.exists, `priceFeed:${priceFeeds[i]} not initialized`)
527
+ acc.set(priceFeeds[i], info.owner)
438
528
  return acc
439
- }, new Map<string, PublicKey>())
529
+ }, new Map<PublicKey, PublicKey>())
440
530
  const executorAccounts = new Executor(executor.owner).getQuoteIXAccountMetaForCPI(
441
531
  executor.config.priceFeed,
442
532
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
443
- priceFeedDict.get(executor.config.priceFeed.toBase58())!,
533
+ priceFeedDict.get(executor.config.priceFeed)!,
444
534
  payment
445
535
  )
446
536
  const dvnAccounts = dvns.map((p, i) => {
447
537
  return new DVN(p.owner).getQuoteIXAccountMetaForCPI(
448
538
  p.config.priceFeed,
449
539
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
450
- priceFeedDict.get(p.config.priceFeed.toBase58())!,
540
+ priceFeedDict.get(p.config.priceFeed)!,
451
541
  payment
452
542
  )
453
543
  })
@@ -465,63 +555,61 @@ export class Uln implements MessageLibInterface {
465
555
  * @returns {Promise<{ executor: { config: ExecutorAccounts.ExecutorConfig; owner: PublicKey }; dvns: { config: DvnAccounts.DvnConfig; owner: PublicKey }[] }>} A promise that resolves to an object containing the executor and DVN configurations.
466
556
  */
467
557
  async getWorkers(
468
- connection: Connection,
558
+ rpc: RpcInterface,
469
559
  sender: PublicKey,
470
560
  eid: number,
471
- commitment: Commitment | GetAccountInfoConfig = 'confirmed'
561
+ commitment: Commitment = 'confirmed'
472
562
  ): Promise<{
473
563
  executor: { config: ExecutorAccounts.ExecutorConfig; owner: PublicKey }
474
564
  dvns: { config: DvnAccounts.DvnConfig; owner: PublicKey }[]
475
565
  }> {
476
- const [defaultSendConfig] = this.deriver.defaultSendConfig(eid)
477
- const [sendConfig] = this.deriver.sendConfig(eid, sender)
478
- const [defaultSendConfigBuf, sendConfigBuf] = await connection.getMultipleAccountsInfo(
479
- [defaultSendConfig, sendConfig],
480
- commitment
481
- )
482
- invariant(defaultSendConfigBuf, 'defaultSendConfig not initialized')
566
+ const [defaultSendConfig] = this.pda.defaultSendConfig(eid)
567
+ const [sendConfig] = this.pda.sendConfig(eid, sender)
568
+ const [defaultSendConfigBuf, sendConfigBuf] = await rpc.getAccounts([defaultSendConfig, sendConfig], {
569
+ commitment,
570
+ })
571
+ invariant(defaultSendConfigBuf.exists, 'defaultSendConfig not initialized')
483
572
 
484
- const [defaultSendConfigState] = accounts.SendConfig.fromAccountInfo(defaultSendConfigBuf)
573
+ const defaultSendConfigState = accounts.deserializeSendConfig(defaultSendConfigBuf)
485
574
  let {
486
575
  executor,
487
576
  uln: { requiredDvns, optionalDvns },
488
577
  } = defaultSendConfigState
489
- const sendConfigState = sendConfigBuf ? accounts.SendConfig.fromAccountInfo(sendConfigBuf)[0] : null
578
+ const sendConfigState = sendConfigBuf.exists ? accounts.deserializeSendConfig(sendConfigBuf) : null
490
579
 
491
580
  // if the executor is set in the send config, use it
492
- if (sendConfigState?.executor && !sendConfigState.executor.executor.equals(PublicKey.default)) {
581
+ if (sendConfigState?.executor && sendConfigState.executor.executor !== defaultPublicKey()) {
493
582
  ;({ executor } = sendConfigState)
494
583
  }
495
584
 
496
585
  // if the requiredDvns is set in the send config, use it
497
586
  if (sendConfigState && sendConfigState.uln.requiredDvns.length > 0) {
498
587
  requiredDvns = sendConfigState.uln.requiredDvns.filter((p) => {
499
- return !p.equals(PublicKey.default)
588
+ return p !== defaultPublicKey()
500
589
  })
501
590
  }
502
591
 
503
592
  // if the optionalDvns is set in the send config, use it
504
593
  if (sendConfigState && sendConfigState.uln.optionalDvns.length > 0) {
505
594
  optionalDvns = sendConfigState.uln.optionalDvns.filter((p) => {
506
- return !p.equals(PublicKey.default)
595
+ return p !== defaultPublicKey()
507
596
  })
508
597
  }
509
598
  const dvns = requiredDvns.concat(optionalDvns)
510
- const [executorBuf, ...dvnBuf] = await connection.getMultipleAccountsInfo(
511
- [executor.executor, ...dvns],
512
- commitment
513
- )
514
- invariant(executorBuf, `executor:${executor.executor.toBase58()} not initialized`)
599
+ const [executorBuf, ...dvnBuf] = await rpc.getAccounts([executor.executor, ...dvns], {
600
+ commitment,
601
+ })
602
+ invariant(executorBuf.exists, `executor:${executor.executor} not initialized`)
515
603
 
516
604
  return {
517
605
  executor: {
518
- config: ExecutorAccounts.ExecutorConfig.fromAccountInfo(executorBuf)[0],
606
+ config: ExecutorAccounts.deserializeExecutorConfig(executorBuf),
519
607
  owner: executorBuf.owner,
520
608
  },
521
609
  dvns: dvnBuf.map((dvn, i) => {
522
- invariant(dvn, `dvn:${dvns[i].toBase58()} not initialized`)
610
+ invariant(dvn.exists, `dvn:${dvns[i]} not initialized`)
523
611
  return {
524
- config: DvnAccounts.DvnConfig.fromAccountInfo(dvn)[0],
612
+ config: DvnAccounts.deserializeDvnConfig(dvn),
525
613
  owner: dvn.owner,
526
614
  }
527
615
  }),
@@ -531,109 +619,74 @@ export class Uln implements MessageLibInterface {
531
619
  /**
532
620
  * Initializes the verification process.
533
621
  *
534
- * @param {Connection} connection - The connection to the Solana cluster.
535
- * @param {PublicKey} payer - The payer public key.
536
- * @param {PublicKey} dvn - The DVN public key.
537
- * @param {Uint8Array} packetBytes - The packet bytes.
538
- * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment level or account info configuration.
539
- * @returns {Promise<TransactionInstruction | null>} A promise that resolves to the transaction instruction or null if not needed.
540
622
  */
541
- async initVerify(
542
- connection: Connection,
543
- payer: PublicKey,
544
- dvn: PublicKey,
545
- packetBytes: Uint8Array,
546
- commitmentOrConfig?: Commitment | GetAccountInfoConfig
547
- ): Promise<TransactionInstruction | null> {
623
+ initVerify(payer: Signer, param: { dvn: PublicKey; packetBytes: Uint8Array }): WrappedInstruction {
624
+ const { dvn, packetBytes } = param
548
625
  const packet = PacketV1Codec.fromBytes(packetBytes)
549
626
  const headerHash = packet.headerHash()
550
627
  const headerHashBytes = Uint8Array.from(Buffer.from(headerHash.slice(2), 'hex'))
551
628
  const payloadHash = packet.payloadHash()
552
629
  const payloadHashBytes = Uint8Array.from(Buffer.from(payloadHash.slice(2), 'hex'))
553
- const [confirmationsPDA] = this.deriver.confirmations(headerHashBytes, payloadHashBytes, dvn)
554
- const confirmationsInfo = await connection.getAccountInfo(confirmationsPDA, commitmentOrConfig)
555
- if (confirmationsInfo) {
556
- // throw new Error('init verify already executed')
557
- return null
558
- }
559
- return instructions.createInitVerifyInstruction(
630
+ // const confirmationsInfo = await rpc.getAccount(confirmationsPDA, { commitment })
631
+ // if (confirmationsInfo.exists) {
632
+ // // throw new Error('init verify already executed')
633
+ // return null
634
+ // }
635
+ return instructions.initVerify(
636
+ { programs: this.programRepo, payer },
560
637
  {
561
638
  payer,
562
- confirmations: confirmationsPDA,
563
- } satisfies instructions.InitVerifyInstructionAccounts,
564
- {
565
- params: {
566
- packetHeader: Array.from(Uint8Array.from(Buffer.from(packet.header().slice(2), 'hex'))),
567
- payloadHash: Array.from(payloadHashBytes),
568
- dvn,
569
- } satisfies types.InitVerifyParams,
570
- } satisfies instructions.InitVerifyInstructionArgs,
571
- this.program
572
- )
639
+ confirmations: this.pda.confirmations(headerHashBytes, payloadHashBytes, dvn),
640
+ // param
641
+ packetHeader: Array.from(Uint8Array.from(Buffer.from(packet.header().slice(2), 'hex'))),
642
+ payloadHash: payloadHashBytes,
643
+ dvn,
644
+ }
645
+ ).items[0]
573
646
  }
574
647
 
575
- /**
576
- * Verifies the packet.
577
- *
578
- * @param {PublicKey} dvn - The DVN public key.
579
- * @param {Uint8Array} packetBytes - The packet bytes.
580
- * @param {number | string} confirmations - The number of confirmations.
581
- * @returns {TransactionInstruction} The transaction instruction.
582
- */
583
- verify(dvn: PublicKey, packetBytes: Uint8Array, confirmations: number | string): TransactionInstruction {
648
+ verify(dvn: Signer, param: { packetBytes: Uint8Array; confirmations: number | bigint }): WrappedInstruction {
649
+ const { packetBytes, confirmations } = param
584
650
  const packet = PacketV1Codec.fromBytes(packetBytes)
585
651
  const headerHash = packet.headerHash()
586
652
  const headerHashBytes = Uint8Array.from(Buffer.from(headerHash.slice(2), 'hex'))
587
653
  const payloadHash = packet.payloadHash()
588
654
  const payloadHashBytes = Uint8Array.from(Buffer.from(payloadHash.slice(2), 'hex'))
589
- const [confirmationsPDA] = this.deriver.confirmations(headerHashBytes, payloadHashBytes, dvn)
590
- return instructions.createVerifyInstruction(
655
+ return instructions.verify(
656
+ { programs: this.programRepo },
591
657
  {
592
658
  dvn,
593
- confirmations: confirmationsPDA,
594
- eventAuthority: this.eventAuthorityPDA,
595
- program: this.program,
596
- } satisfies instructions.VerifyInstructionAccounts,
659
+ confirmations: this.pda.confirmations(headerHashBytes, payloadHashBytes, dvn.publicKey),
660
+ eventAuthority: this.eventAuthority,
661
+ program: this.programId,
662
+ },
597
663
  {
598
- params: {
599
- packetHeader: Array.from(Uint8Array.from(Buffer.from(packet.header().slice(2), 'hex'))),
600
- payloadHash: Array.from(payloadHashBytes),
601
- confirmations: typeof confirmations === 'string' ? new BN(confirmations) : confirmations,
602
- } satisfies types.VerifyParams,
603
- } satisfies instructions.VerifyInstructionArgs,
604
- this.program
605
- )
664
+ packetHeader: Array.from(Uint8Array.from(Buffer.from(packet.header().slice(2), 'hex'))),
665
+ payloadHash: payloadHashBytes,
666
+ confirmations: confirmations,
667
+ }
668
+ ).items[0]
606
669
  }
607
670
 
608
- /**
609
- * Closes the verification process.
610
- *
611
- * @param {PublicKey} dvn - The DVN public key.
612
- * @param {PublicKey} receiver - The receiver public key.
613
- * @param {Uint8Array} packetBytes - The packet bytes.
614
- * @returns {TransactionInstruction} The transaction instruction.
615
- */
616
- closeVerify(dvn: PublicKey, receiver: PublicKey, packetBytes: Uint8Array): TransactionInstruction {
671
+ closeVerify(dvn: Signer, param: { receiver: PublicKey; packetBytes: Uint8Array }): WrappedInstruction {
672
+ const { receiver, packetBytes } = param
617
673
  const packet = PacketV1Codec.fromBytes(packetBytes)
618
674
  const headerHash = packet.headerHash()
619
675
  const headerHashBytes = Uint8Array.from(Buffer.from(headerHash.slice(2), 'hex'))
620
676
  const payloadHash = packet.payloadHash()
621
677
  const payloadHashBytes = Uint8Array.from(Buffer.from(payloadHash.slice(2), 'hex'))
622
- const [confirmationsPDA] = this.deriver.confirmations(headerHashBytes, payloadHashBytes, dvn)
623
- return instructions.createCloseVerifyInstruction(
678
+ return instructions.closeVerify(
679
+ { programs: this.programRepo },
624
680
  {
625
681
  dvn,
626
682
  receiver,
627
- confirmations: confirmationsPDA,
628
- } satisfies instructions.CloseVerifyInstructionAccounts,
629
- {
630
- params: {
631
- packetHeaderHash: Array.from(headerHashBytes),
632
- payloadHash: Array.from(payloadHashBytes),
633
- } satisfies types.CloseVerifyParams,
634
- } satisfies instructions.CloseVerifyInstructionArgs,
635
- this.program
636
- )
683
+ confirmations: this.pda.confirmations(headerHashBytes, payloadHashBytes, dvn.publicKey),
684
+
685
+ // param
686
+ packetHeaderHash: headerHashBytes,
687
+ payloadHash: payloadHashBytes,
688
+ }
689
+ ).items[0]
637
690
  }
638
691
 
639
692
  /**
@@ -647,29 +700,23 @@ export class Uln implements MessageLibInterface {
647
700
  * @returns {Promise<boolean>} A promise that resolves to true if the DVN is verified, false otherwise.
648
701
  */
649
702
  async isDvnVerified(
650
- connection: Connection,
703
+ rpc: RpcInterface,
651
704
  endpointProgram: PublicKey,
652
705
  dvn: PublicKey,
653
706
  packetBytes: Uint8Array,
654
- commitmentOrConfig: Commitment | GetAccountInfoConfig = 'confirmed'
707
+ commitment: Commitment = 'confirmed'
655
708
  ): Promise<boolean> {
656
709
  const packet = PacketV1Codec.fromBytes(packetBytes)
657
710
  const headerHash = packet.headerHash()
658
711
  const headerHashBytes = Uint8Array.from(Buffer.from(headerHash.slice(2), 'hex'))
659
712
  const payloadHash = packet.payloadHash()
660
713
  const payloadHashBytes = Uint8Array.from(Buffer.from(payloadHash.slice(2), 'hex'))
661
- const [confirmationsPDA] = this.deriver.confirmations(headerHashBytes, payloadHashBytes, dvn)
714
+ const [confirmationsPDA] = this.pda.confirmations(headerHashBytes, payloadHashBytes, dvn)
662
715
  const endpoint = new EndpointProgram.Endpoint(endpointProgram)
663
- const receiver = new PublicKey(arrayify(packet.receiver()))
716
+ const receiver = publicKey(arrayify(packet.receiver()))
664
717
  const sender = arrayify(packet.sender())
665
- const nonce = await endpoint.getNonce(connection, receiver, packet.srcEid(), sender, commitmentOrConfig)
666
- const pendingNonce = await endpoint.getPendingInboundNonce(
667
- connection,
668
- receiver,
669
- packet.srcEid(),
670
- sender,
671
- commitmentOrConfig
672
- )
718
+ const nonce = await endpoint.getNonce(rpc, receiver, packet.srcEid(), sender, commitment)
719
+ const pendingNonce = await endpoint.getPendingInboundNonce(rpc, receiver, packet.srcEid(), sender, commitment)
673
720
  if (!nonce || !pendingNonce) {
674
721
  return false
675
722
  }
@@ -682,24 +729,15 @@ export class Uln implements MessageLibInterface {
682
729
  if (pendingNonce.nonces.find((n) => n.toString() === packet.nonce()) !== undefined) {
683
730
  return true
684
731
  }
685
- try {
686
- // before commitVerification, should call initVerify and verify
687
- const confirmation = await accounts.Confirmations.fromAccountAddress(
688
- connection,
689
- confirmationsPDA,
690
- commitmentOrConfig
691
- )
692
- if (confirmation.value === null) {
693
- // initial value is null
694
- // not verified
695
- return false
696
- } else {
697
- // TODO check confirmation value
698
- return true
699
- }
700
- } catch (e: unknown) {
701
- // don't invoke initVerify
732
+
733
+ // before commitVerification, should call initVerify and verify
734
+ const confirmation = await accounts.safeFetchConfirmations({ rpc }, confirmationsPDA, { commitment })
735
+ if (confirmation?.value == null) {
736
+ // initial value is null not verified
702
737
  return false
738
+ } else {
739
+ // TODO check confirmation value
740
+ return true
703
741
  }
704
742
  }
705
743
 
@@ -712,28 +750,26 @@ export class Uln implements MessageLibInterface {
712
750
  * @returns {Promise<TransactionInstruction>} A promise that resolves to the transaction instruction.
713
751
  */
714
752
  async commitVerification(
715
- connection: Connection,
716
- endpointProgram: PublicKey,
717
- packetBytes: Uint8Array
718
- ): Promise<TransactionInstruction> {
753
+ rpc: RpcInterface,
754
+ packetBytes: Uint8Array,
755
+ endpointProgram: PublicKey = ENDPOINT_PROGRAM_ID
756
+ ): Promise<WrappedInstruction> {
719
757
  const packet = PacketV1Codec.fromBytes(packetBytes)
720
758
  const payloadHash = packet.payloadHash()
721
759
  const srcEid = packet.srcEid()
722
- const receiver = new PublicKey(arrayify(packet.receiver()))
760
+ const receiver = publicKey(arrayify(packet.receiver()))
723
761
  const payloadHashBytes = Uint8Array.from(Buffer.from(payloadHash.slice(2), 'hex'))
724
- const [defaultReceiveConfig] = this.deriver.defaultReceiveConfig(srcEid)
725
- const [receiveConfig] = this.deriver.receiveConfig(srcEid, receiver)
726
- const [setting] = this.deriver.setting()
727
- const [msgLib] = this.deriver.messageLib()
728
- const receiveConfigState = await this.getFinalReceiveConfigState(connection, receiver, srcEid)
762
+
763
+ const [msgLib] = this.pda.messageLib()
764
+ const receiveConfigState = await this.getFinalReceiveConfigState(rpc, receiver, srcEid)
729
765
 
730
766
  const headerHash = packet.headerHash()
731
767
  const headerHashBytes = Uint8Array.from(Buffer.from(headerHash.slice(2), 'hex'))
732
768
 
733
- const confirmations: AccountMeta[] = receiveConfigState.uln.requiredDvns
734
- .concat(receiveConfigState.uln.optionalDvns)
769
+ const confirmations: AccountMeta[] = receiveConfigState.requiredDvns
770
+ .concat(receiveConfigState.optionalDvns)
735
771
  .map((p) => {
736
- const [confirmationsPDA] = this.deriver.confirmations(headerHashBytes, payloadHashBytes, p)
772
+ const [confirmationsPDA] = this.pda.confirmations(headerHashBytes, payloadHashBytes, p)
737
773
  return {
738
774
  pubkey: confirmationsPDA,
739
775
  isSigner: false,
@@ -743,21 +779,19 @@ export class Uln implements MessageLibInterface {
743
779
  const endpoint = new EndpointProgram.Endpoint(endpointProgram)
744
780
  const verifyAccounts = endpoint.getVerifyIXAccountMetaForCPI(packet, msgLib)
745
781
 
746
- return instructions.createCommitVerificationInstruction(
782
+ const txBuilder = instructions.commitVerification(
783
+ { programs: this.programRepo },
747
784
  {
748
- uln: setting,
749
- defaultReceiveConfig,
750
- receiveConfig,
751
- anchorRemainingAccounts: confirmations.concat(verifyAccounts),
752
- } satisfies instructions.CommitVerificationInstructionAccounts,
753
- {
754
- params: {
755
- packetHeader: Array.from(arrayify(packet.header())),
756
- payloadHash: Array.from(payloadHashBytes),
757
- } satisfies types.CommitVerificationParams,
758
- } satisfies instructions.CommitVerificationInstructionArgs,
759
- this.program
785
+ uln: this.pda.setting(),
786
+ defaultReceiveConfig: this.pda.defaultReceiveConfig(srcEid),
787
+ receiveConfig: this.pda.receiveConfig(srcEid, receiver),
788
+
789
+ // param
790
+ packetHeader: Array.from(arrayify(packet.header())),
791
+ payloadHash: payloadHashBytes,
792
+ }
760
793
  )
794
+ return txBuilder.addRemainingAccounts(confirmations.concat(verifyAccounts)).items[0]
761
795
  }
762
796
 
763
797
  /**
@@ -769,24 +803,25 @@ export class Uln implements MessageLibInterface {
769
803
  * @returns {AccountMeta[]} An array of account metadata.
770
804
  */
771
805
  getInitConfigIXAccountMetaForCPI(payer: PublicKey, oappID: PublicKey, eid: number): AccountMeta[] {
772
- const [sendConfig] = this.deriver.sendConfig(eid, oappID)
773
- const [receiveConfig] = this.deriver.receiveConfig(eid, oappID)
774
- const [setting] = this.deriver.setting()
775
-
776
- const accounts = instructions.createInitConfigInstructionAccounts(
806
+ const txBuilder = instructions.initConfig(
807
+ { payer: createNoopSigner(payer), programs: this.programRepo },
777
808
  {
778
- endpoint: PublicKey.default, // useless
779
- payer,
780
- uln: setting,
781
- sendConfig,
782
- receiveConfig,
783
- } satisfies instructions.InitConfigInstructionAccounts,
784
- this.program
809
+ endpoint: createNoopSigner(defaultPublicKey()),
810
+ payer: createNoopSigner(payer),
811
+ uln: this.pda.setting(),
812
+ sendConfig: this.pda.sendConfig(eid, oappID),
813
+ receiveConfig: this.pda.receiveConfig(eid, oappID),
814
+
815
+ // params
816
+ oapp: defaultPublicKey(),
817
+ eid: 0,
818
+ }
785
819
  )
786
- accounts.forEach((key) => {
787
- if (!payer.equals(key.pubkey)) {
820
+ const accounts = txBuilder.getInstructions()[0].keys.map((key) => {
821
+ if (payer !== key.pubkey) {
788
822
  key.isSigner = false
789
823
  }
824
+ return key
790
825
  })
791
826
  return accounts.slice(1)
792
827
  }
@@ -805,13 +840,11 @@ export class Uln implements MessageLibInterface {
805
840
  ): Uint8Array {
806
841
  switch (configType) {
807
842
  case SetConfigType.EXECUTOR: {
808
- const [data] = types.executorConfigBeet.serialize(configData as types.ExecutorConfig)
809
- return Uint8Array.from(data)
843
+ return types.getExecutorConfigSerializer().serialize(configData as types.ExecutorConfig)
810
844
  }
811
845
  case SetConfigType.SEND_ULN:
812
846
  case SetConfigType.RECEIVE_ULN: {
813
- const [data] = types.ulnConfigBeet.serialize(configData as types.UlnConfig)
814
- return Uint8Array.from(data)
847
+ return types.getUlnConfigSerializer().serialize(configData as types.UlnConfig)
815
848
  }
816
849
  default:
817
850
  throw new Error(`invalid config type: ${configType as number}`)
@@ -826,54 +859,45 @@ export class Uln implements MessageLibInterface {
826
859
  * @param {number} eid - The endpoint ID.
827
860
  * @returns {Promise<AccountMeta[]>} A promise that resolves to an array of account metadata.
828
861
  */
829
- async getSetConfigIXAccountMetaForCPI(
830
- endpointProgram: PublicKey,
831
- oappID: PublicKey,
832
- eid: number
833
- ): Promise<AccountMeta[]> {
834
- const [sendConfig] = this.deriver.sendConfig(eid, oappID)
835
- const [receiveConfig] = this.deriver.receiveConfig(eid, oappID)
836
- const [defaultSendConfig] = this.deriver.defaultSendConfig(eid)
837
- const [defaultReceiveConfig] = this.deriver.defaultReceiveConfig(eid)
838
- const [setting] = this.deriver.setting()
839
- const [msgLib] = this.deriver.messageLib()
840
- const [msgLibInfo] = new EndpointPDADeriver(endpointProgram).messageLibraryInfo(msgLib)
841
-
842
- const accounts = instructions.createSetConfigInstructionAccounts(
862
+ getSetConfigIXAccountMetaForCPI(
863
+ oapp: PublicKey,
864
+ eid: number,
865
+ endpointProgram: PublicKey = ENDPOINT_PROGRAM_ID
866
+ ): AccountMeta[] {
867
+ const [msgLib] = this.pda.messageLib()
868
+ const [msgLibInfo] = new EndpointPDA(endpointProgram).messageLibraryInfo(msgLib)
869
+
870
+ const txBuilder = instructions.setConfig(
871
+ { programs: this.programRepo },
843
872
  {
844
- endpoint: msgLibInfo,
845
- uln: setting,
846
- sendConfig,
847
- defaultSendConfig,
848
- defaultReceiveConfig,
849
- receiveConfig,
850
- eventAuthority: this.eventAuthorityPDA,
851
- program: this.program,
852
- } satisfies instructions.SetConfigInstructionAccounts,
853
- this.program
873
+ endpoint: createNoopSigner(msgLibInfo),
874
+ uln: this.pda.setting(),
875
+ sendConfig: this.pda.sendConfig(eid, oapp),
876
+ defaultSendConfig: this.pda.defaultSendConfig(eid),
877
+ defaultReceiveConfig: this.pda.defaultReceiveConfig(eid),
878
+ receiveConfig: this.pda.receiveConfig(eid, oapp),
879
+ eventAuthority: this.eventAuthority,
880
+ program: this.programId,
881
+ // param
882
+ oapp: defaultPublicKey(),
883
+ eid: 0,
884
+ configType: 0,
885
+ config: new Uint8Array(32),
886
+ }
854
887
  )
855
- return Promise.resolve(accounts.slice(1))
888
+ return txBuilder.getInstructions()[0].keys.slice(1)
856
889
  }
857
890
 
858
- //
859
- // all of below functions are retrieving accounts state
860
891
  /**
861
892
  * Gets the ULN settings.
862
893
  *
863
- * @param {Connection} connection - The connection to the Solana cluster.
864
- * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment level or account info configuration.
894
+ * @param {RpcInterface} rpc - The connection to the Solana cluster.
895
+ * @param {Commitment} [commitment] - The commitment level or account info configuration.
865
896
  * @returns {Promise<accounts.UlnSettings | null>} A promise that resolves to the ULN settings or null if not found.
866
897
  */
867
- async getSetting(
868
- connection: Connection,
869
- commitmentOrConfig?: Commitment | GetAccountInfoConfig
870
- ): Promise<accounts.UlnSettings | null> {
871
- const [setting] = this.deriver.setting()
872
- try {
873
- return await accounts.UlnSettings.fromAccountAddress(connection, setting, commitmentOrConfig)
874
- } catch (e) {
875
- return null
876
- }
898
+ async getSetting(rpc: RpcInterface, commitment: Commitment = 'confirmed'): Promise<accounts.UlnSettings | null> {
899
+ const [setting] = this.pda.setting()
900
+ return accounts.safeFetchUlnSettings({ rpc }, setting, { commitment })
877
901
  }
878
902
 
879
903
  /**
@@ -885,16 +909,12 @@ export class Uln implements MessageLibInterface {
885
909
  * @returns {Promise<accounts.SendConfig | null>} A promise that resolves to the default send configuration state or null if not found.
886
910
  */
887
911
  async getDefaultSendConfigState(
888
- connection: Connection,
912
+ rpc: RpcInterface,
889
913
  eid: number,
890
- commitmentOrConfig?: Commitment | GetAccountInfoConfig
914
+ commitment: Commitment = 'confirmed'
891
915
  ): Promise<accounts.SendConfig | null> {
892
- const [config] = this.deriver.defaultSendConfig(eid)
893
- try {
894
- return await accounts.SendConfig.fromAccountAddress(connection, config, commitmentOrConfig)
895
- } catch (e) {
896
- return null
897
- }
916
+ const [config] = this.pda.defaultSendConfig(eid)
917
+ return accounts.safeFetchSendConfig({ rpc }, config, { commitment })
898
918
  }
899
919
 
900
920
  /**
@@ -907,17 +927,13 @@ export class Uln implements MessageLibInterface {
907
927
  * @returns {Promise<accounts.SendConfig | null>} A promise that resolves to the send configuration state or null if not found.
908
928
  */
909
929
  async getSendConfigState(
910
- connection: Connection,
930
+ rpc: RpcInterface,
911
931
  sender: PublicKey,
912
932
  eid: number,
913
- commitmentOrConfig?: Commitment | GetAccountInfoConfig
933
+ commitment: Commitment = 'confirmed'
914
934
  ): Promise<accounts.SendConfig | null> {
915
- const [config] = this.deriver.sendConfig(eid, sender)
916
- try {
917
- return await accounts.SendConfig.fromAccountAddress(connection, config, commitmentOrConfig)
918
- } catch (e) {
919
- return null
920
- }
935
+ const [config] = this.pda.sendConfig(eid, sender)
936
+ return accounts.safeFetchSendConfig({ rpc }, config, { commitment })
921
937
  }
922
938
 
923
939
  /**
@@ -929,16 +945,12 @@ export class Uln implements MessageLibInterface {
929
945
  * @returns {Promise<accounts.ReceiveConfig | null>} A promise that resolves to the default receive configuration state or null if not found.
930
946
  */
931
947
  async getDefaultReceiveConfigState(
932
- connection: Connection,
948
+ rpc: RpcInterface,
933
949
  eid: number,
934
- commitmentOrConfig?: Commitment | GetAccountInfoConfig
950
+ commitment: Commitment = 'confirmed'
935
951
  ): Promise<accounts.ReceiveConfig | null> {
936
- const [config] = this.deriver.defaultReceiveConfig(eid)
937
- try {
938
- return await accounts.ReceiveConfig.fromAccountAddress(connection, config, commitmentOrConfig)
939
- } catch (e) {
940
- return null
941
- }
952
+ const [config] = this.pda.defaultReceiveConfig(eid)
953
+ return accounts.safeFetchReceiveConfig({ rpc }, config, { commitment })
942
954
  }
943
955
 
944
956
  /**
@@ -951,17 +963,13 @@ export class Uln implements MessageLibInterface {
951
963
  * @returns {Promise<accounts.ReceiveConfig | null>} A promise that resolves to the receive configuration state or null if not found.
952
964
  */
953
965
  async getReceiveConfigState(
954
- connection: Connection,
966
+ rpc: RpcInterface,
955
967
  receiver: PublicKey,
956
968
  eid: number,
957
- commitmentOrConfig?: Commitment | GetAccountInfoConfig
969
+ commitment: Commitment = 'confirmed'
958
970
  ): Promise<accounts.ReceiveConfig | null> {
959
- const [config] = this.deriver.receiveConfig(eid, receiver)
960
- try {
961
- return await accounts.ReceiveConfig.fromAccountAddress(connection, config, commitmentOrConfig)
962
- } catch (e) {
963
- return null
964
- }
971
+ const [config] = this.pda.receiveConfig(eid, receiver)
972
+ return accounts.safeFetchReceiveConfig({ rpc }, config, { commitment })
965
973
  }
966
974
 
967
975
  /**
@@ -975,16 +983,54 @@ export class Uln implements MessageLibInterface {
975
983
  * @throws {Error} If no DVN is found.
976
984
  */
977
985
  async getFinalReceiveConfigState(
978
- connection: Connection,
986
+ rpc: RpcInterface,
979
987
  receiver: PublicKey,
980
988
  eid: number,
981
- commitmentOrConfig: Commitment | GetAccountInfoConfig = 'confirmed'
982
- ): Promise<accounts.ReceiveConfig> {
983
- const NIL_CONFIRMATIONS = '18446744073709551615' // max u64
989
+ commitment: Commitment = 'confirmed'
990
+ ): Promise<types.UlnConfig> {
991
+ const [defaultConfig] = this.pda.defaultReceiveConfig(eid)
992
+ const [customConfig] = this.pda.receiveConfig(eid, receiver)
993
+
994
+ const [defaultConfigInfo, customConfigInfo] = await rpc.getAccounts([defaultConfig, customConfig], {
995
+ commitment,
996
+ })
997
+ if (!defaultConfigInfo.exists) {
998
+ throw new Error(`please init default receive config first. ${defaultConfig}`)
999
+ }
1000
+ const defaultConfigState = accounts.deserializeReceiveConfig(defaultConfigInfo)
1001
+ const customConfigState = customConfigInfo.exists ? accounts.deserializeReceiveConfig(customConfigInfo) : null
1002
+ return this.getConfigState(defaultConfigState, customConfigState)
1003
+ }
1004
+
1005
+ async getFinalSendConfigState(
1006
+ rpc: RpcInterface,
1007
+ sender: PublicKey,
1008
+ eid: number,
1009
+ commitment: Commitment = 'confirmed'
1010
+ ): Promise<types.UlnConfig> {
1011
+ const [defaultConfig] = this.pda.defaultSendConfig(eid)
1012
+ const [customConfig] = this.pda.sendConfig(eid, sender)
1013
+
1014
+ const [defaultConfigInfo, customConfigInfo] = await rpc.getAccounts([defaultConfig, customConfig], {
1015
+ commitment,
1016
+ })
1017
+ if (!defaultConfigInfo.exists) {
1018
+ throw new Error(`please init default send config first. ${defaultConfig}`)
1019
+ }
1020
+ const defaultConfigState = accounts.deserializeSendConfig(defaultConfigInfo)
1021
+ const customConfigState = customConfigInfo.exists ? accounts.deserializeSendConfig(customConfigInfo) : null
1022
+ return this.getConfigState(defaultConfigState, customConfigState)
1023
+ }
1024
+
1025
+ private getConfigState(
1026
+ defaultConfigState: accounts.ReceiveConfig | accounts.SendConfig,
1027
+ customConfigState: accounts.ReceiveConfig | accounts.SendConfig | null
1028
+ ): types.UlnConfig {
1029
+ const NIL_CONFIRMATIONS = '18446744073709551615' // max uint64
984
1030
  const NIL_DVN_COUNT = '255'
985
1031
 
986
1032
  const rtn_config: types.UlnConfig = {
987
- confirmations: 0,
1033
+ confirmations: 0n,
988
1034
  requiredDvnCount: 0,
989
1035
  optionalDvnCount: 0,
990
1036
  optionalDvnThreshold: 0,
@@ -992,20 +1038,7 @@ export class Uln implements MessageLibInterface {
992
1038
  optionalDvns: [],
993
1039
  }
994
1040
 
995
- const [defaultConfig] = this.deriver.defaultReceiveConfig(eid)
996
- const [customConfig] = this.deriver.receiveConfig(eid, receiver)
997
-
998
- const [defaultConfigInfo, customConfigInfo] = await connection.getMultipleAccountsInfo(
999
- [defaultConfig, customConfig],
1000
- commitmentOrConfig
1001
- )
1002
- if (defaultConfigInfo == null) {
1003
- throw new Error(`please init default receive config first. ${defaultConfig.toBase58()}`)
1004
- }
1005
- const defaultConfigState = accounts.ReceiveConfig.fromAccountInfo(defaultConfigInfo)[0]
1006
- const customConfigState = customConfigInfo ? accounts.ReceiveConfig.fromAccountInfo(customConfigInfo)[0] : null
1007
-
1008
- if (customConfigState == null || customConfigState.uln.confirmations == 0) {
1041
+ if (customConfigState == null || customConfigState.uln.confirmations === 0n) {
1009
1042
  rtn_config.confirmations = defaultConfigState.uln.confirmations
1010
1043
  } else if (customConfigState.uln.confirmations.toString() !== NIL_CONFIRMATIONS) {
1011
1044
  rtn_config.confirmations = customConfigState.uln.confirmations
@@ -1036,10 +1069,6 @@ export class Uln implements MessageLibInterface {
1036
1069
  if (rtn_config.requiredDvnCount === 0 && rtn_config.optionalDvnCount === 0) {
1037
1070
  throw new Error('no dvn')
1038
1071
  }
1039
-
1040
- return accounts.ReceiveConfig.fromArgs({
1041
- bump: defaultConfigState.bump,
1042
- uln: rtn_config,
1043
- })
1072
+ return rtn_config
1044
1073
  }
1045
1074
  }