@layerzerolabs/lz-solana-sdk-v2 3.0.47 → 3.0.48

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 (323) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/package.json +11 -10
  3. package/src/base-oapp.ts +159 -0
  4. package/src/config.ts +32 -0
  5. package/src/deployment.test.ts +11 -0
  6. package/src/deployment.ts +128 -0
  7. package/src/dvn.ts +606 -0
  8. package/src/endpoint.ts +1518 -0
  9. package/src/executor.ts +577 -0
  10. package/src/generated/blocked_messagelib/index.ts +18 -0
  11. package/src/generated/blocked_messagelib/instructions/index.ts +1 -0
  12. package/src/generated/blocked_messagelib/instructions/version.ts +59 -0
  13. package/src/generated/dvn/accounts/DvnConfig.ts +217 -0
  14. package/src/generated/dvn/accounts/ExecuteHash.ts +179 -0
  15. package/src/generated/dvn/accounts/ReceiveConfig.ts +169 -0
  16. package/src/generated/dvn/accounts/index.ts +9 -0
  17. package/src/generated/dvn/errors/index.ts +396 -0
  18. package/src/generated/dvn/events/AdminConfigSetEvent.ts +22 -0
  19. package/src/generated/dvn/events/FeeWithdrawnEvent.ts +26 -0
  20. package/src/generated/dvn/events/MultisigConfigSetEvent.ts +22 -0
  21. package/src/generated/dvn/events/index.ts +3 -0
  22. package/src/generated/dvn/index.ts +21 -0
  23. package/src/generated/dvn/instructions/closeExecute.ts +148 -0
  24. package/src/generated/dvn/instructions/index.ts +7 -0
  25. package/src/generated/dvn/instructions/initDvn.ts +144 -0
  26. package/src/generated/dvn/instructions/invoke.ts +178 -0
  27. package/src/generated/dvn/instructions/quoteDvn.ts +145 -0
  28. package/src/generated/dvn/instructions/setConfig.ts +157 -0
  29. package/src/generated/dvn/instructions/verifiable.ts +160 -0
  30. package/src/generated/dvn/instructions/withdrawFee.ts +172 -0
  31. package/src/generated/dvn/types/Acl.ts +26 -0
  32. package/src/generated/dvn/types/AdminConfig.ts +100 -0
  33. package/src/generated/dvn/types/CloseExecuteParams.ts +21 -0
  34. package/src/generated/dvn/types/DstConfig.ts +28 -0
  35. package/src/generated/dvn/types/ExecuteTransactionDigest.ts +37 -0
  36. package/src/generated/dvn/types/InitDvnParams.ts +34 -0
  37. package/src/generated/dvn/types/InvokeParams.ts +28 -0
  38. package/src/generated/dvn/types/LzOption.ts +24 -0
  39. package/src/generated/dvn/types/Multisig.ts +24 -0
  40. package/src/generated/dvn/types/MultisigConfig.ts +124 -0
  41. package/src/generated/dvn/types/QuoteDvnParams.ts +38 -0
  42. package/src/generated/dvn/types/SetConfigParams.ts +22 -0
  43. package/src/generated/dvn/types/TransactionAccount.ts +29 -0
  44. package/src/generated/dvn/types/UlnConfig.ts +34 -0
  45. package/src/generated/dvn/types/VerifiableParams.ts +24 -0
  46. package/src/generated/dvn/types/VerificationState.ts +27 -0
  47. package/src/generated/dvn/types/WithdrawFeeParams.ts +20 -0
  48. package/src/generated/dvn/types/index.ts +17 -0
  49. package/src/generated/endpoint/accounts/ComposeMessageState.ts +170 -0
  50. package/src/generated/endpoint/accounts/EndpointSettings.ts +184 -0
  51. package/src/generated/endpoint/accounts/MessageLibInfo.ts +178 -0
  52. package/src/generated/endpoint/accounts/Nonce.ts +193 -0
  53. package/src/generated/endpoint/accounts/OAppRegistry.ts +169 -0
  54. package/src/generated/endpoint/accounts/PayloadHash.ts +169 -0
  55. package/src/generated/endpoint/accounts/PendingInboundNonce.ts +172 -0
  56. package/src/generated/endpoint/accounts/ReceiveLibraryConfig.ts +183 -0
  57. package/src/generated/endpoint/accounts/SendLibraryConfig.ts +171 -0
  58. package/src/generated/endpoint/accounts/index.ts +31 -0
  59. package/src/generated/endpoint/errors/index.ts +428 -0
  60. package/src/generated/endpoint/events/AdminTransferredEvent.ts +23 -0
  61. package/src/generated/endpoint/events/ComposeDeliveredEvent.ts +31 -0
  62. package/src/generated/endpoint/events/ComposeSentEvent.ts +33 -0
  63. package/src/generated/endpoint/events/DefaultReceiveLibrarySetEvent.ts +27 -0
  64. package/src/generated/endpoint/events/DefaultReceiveLibraryTimeoutSetEvent.ts +29 -0
  65. package/src/generated/endpoint/events/DefaultSendLibrarySetEvent.ts +27 -0
  66. package/src/generated/endpoint/events/DelegateSetEvent.ts +22 -0
  67. package/src/generated/endpoint/events/InboundNonceSkippedEvent.ts +31 -0
  68. package/src/generated/endpoint/events/LibraryRegisteredEvent.ts +27 -0
  69. package/src/generated/endpoint/events/LzComposeAlertEvent.ts +43 -0
  70. package/src/generated/endpoint/events/LzReceiveAlertEvent.ts +45 -0
  71. package/src/generated/endpoint/events/LzTokenSetEvent.ts +23 -0
  72. package/src/generated/endpoint/events/OAppRegisteredEvent.ts +27 -0
  73. package/src/generated/endpoint/events/PacketBurntEvent.ts +32 -0
  74. package/src/generated/endpoint/events/PacketDeliveredEvent.ts +31 -0
  75. package/src/generated/endpoint/events/PacketNilifiedEvent.ts +33 -0
  76. package/src/generated/endpoint/events/PacketSentEvent.ts +29 -0
  77. package/src/generated/endpoint/events/PacketVerifiedEvent.ts +33 -0
  78. package/src/generated/endpoint/events/ReceiveLibrarySetEvent.ts +29 -0
  79. package/src/generated/endpoint/events/ReceiveLibraryTimeoutSetEvent.ts +33 -0
  80. package/src/generated/endpoint/events/RentWithdrawnEvent.ts +27 -0
  81. package/src/generated/endpoint/events/SendLibrarySetEvent.ts +29 -0
  82. package/src/generated/endpoint/events/index.ts +22 -0
  83. package/src/generated/endpoint/index.ts +21 -0
  84. package/src/generated/endpoint/instructions/burn.ts +191 -0
  85. package/src/generated/endpoint/instructions/clear.ts +193 -0
  86. package/src/generated/endpoint/instructions/clearCompose.ts +160 -0
  87. package/src/generated/endpoint/instructions/index.ts +32 -0
  88. package/src/generated/endpoint/instructions/initConfig.ts +172 -0
  89. package/src/generated/endpoint/instructions/initDefaultReceiveLibrary.ts +195 -0
  90. package/src/generated/endpoint/instructions/initDefaultSendLibrary.ts +195 -0
  91. package/src/generated/endpoint/instructions/initEndpoint.ts +147 -0
  92. package/src/generated/endpoint/instructions/initNonce.ts +168 -0
  93. package/src/generated/endpoint/instructions/initReceiveLibrary.ts +159 -0
  94. package/src/generated/endpoint/instructions/initSendLibrary.ts +159 -0
  95. package/src/generated/endpoint/instructions/initVerify.ts +159 -0
  96. package/src/generated/endpoint/instructions/lzComposeAlert.ts +148 -0
  97. package/src/generated/endpoint/instructions/lzReceiveAlert.ts +148 -0
  98. package/src/generated/endpoint/instructions/nilify.ts +193 -0
  99. package/src/generated/endpoint/instructions/quote.ts +181 -0
  100. package/src/generated/endpoint/instructions/registerLibrary.ts +183 -0
  101. package/src/generated/endpoint/instructions/registerOapp.ts +183 -0
  102. package/src/generated/endpoint/instructions/send.ts +215 -0
  103. package/src/generated/endpoint/instructions/sendCompose.ts +183 -0
  104. package/src/generated/endpoint/instructions/setConfig.ts +169 -0
  105. package/src/generated/endpoint/instructions/setDefaultReceiveLibrary.ts +184 -0
  106. package/src/generated/endpoint/instructions/setDefaultReceiveLibraryTimeout.ts +185 -0
  107. package/src/generated/endpoint/instructions/setDefaultSendLibrary.ts +184 -0
  108. package/src/generated/endpoint/instructions/setDelegate.ts +160 -0
  109. package/src/generated/endpoint/instructions/setLzToken.ts +160 -0
  110. package/src/generated/endpoint/instructions/setReceiveLibrary.ts +190 -0
  111. package/src/generated/endpoint/instructions/setReceiveLibraryTimeout.ts +184 -0
  112. package/src/generated/endpoint/instructions/setSendLibrary.ts +190 -0
  113. package/src/generated/endpoint/instructions/skip.ts +203 -0
  114. package/src/generated/endpoint/instructions/transferAdmin.ts +160 -0
  115. package/src/generated/endpoint/instructions/verify.ts +205 -0
  116. package/src/generated/endpoint/instructions/withdrawRent.ts +172 -0
  117. package/src/generated/endpoint/types/BurnParams.ts +32 -0
  118. package/src/generated/endpoint/types/ClearComposeParams.ts +31 -0
  119. package/src/generated/endpoint/types/ClearParams.ts +34 -0
  120. package/src/generated/endpoint/types/InitConfigParams.ts +26 -0
  121. package/src/generated/endpoint/types/InitDefaultReceiveLibraryParams.ts +27 -0
  122. package/src/generated/endpoint/types/InitDefaultSendLibraryParams.ts +27 -0
  123. package/src/generated/endpoint/types/InitEndpointParams.ts +27 -0
  124. package/src/generated/endpoint/types/InitNonceParams.ts +28 -0
  125. package/src/generated/endpoint/types/InitReceiveLibraryParams.ts +27 -0
  126. package/src/generated/endpoint/types/InitSendLibraryParams.ts +27 -0
  127. package/src/generated/endpoint/types/InitVerifyParams.ts +30 -0
  128. package/src/generated/endpoint/types/LzComposeAlertParams.ts +41 -0
  129. package/src/generated/endpoint/types/LzReceiveAlertParams.ts +43 -0
  130. package/src/generated/endpoint/types/MessageLibType.ts +25 -0
  131. package/src/generated/endpoint/types/MessagingFee.ts +24 -0
  132. package/src/generated/endpoint/types/MessagingReceipt.ts +27 -0
  133. package/src/generated/endpoint/types/NilifyParams.ts +32 -0
  134. package/src/generated/endpoint/types/QuoteParams.ts +34 -0
  135. package/src/generated/endpoint/types/ReceiveLibraryTimeout.ts +27 -0
  136. package/src/generated/endpoint/types/RegisterLibraryParams.ts +28 -0
  137. package/src/generated/endpoint/types/RegisterOAppParams.ts +23 -0
  138. package/src/generated/endpoint/types/SendComposeParams.ts +31 -0
  139. package/src/generated/endpoint/types/SendParams.ts +32 -0
  140. package/src/generated/endpoint/types/SetConfigParams.ts +31 -0
  141. package/src/generated/endpoint/types/SetDefaultReceiveLibraryParams.ts +29 -0
  142. package/src/generated/endpoint/types/SetDefaultReceiveLibraryTimeoutParams.ts +29 -0
  143. package/src/generated/endpoint/types/SetDefaultSendLibraryParams.ts +27 -0
  144. package/src/generated/endpoint/types/SetDelegateParams.ts +22 -0
  145. package/src/generated/endpoint/types/SetLzTokenParams.ts +23 -0
  146. package/src/generated/endpoint/types/SetReceiveLibraryParams.ts +31 -0
  147. package/src/generated/endpoint/types/SetReceiveLibraryTimeoutParams.ts +31 -0
  148. package/src/generated/endpoint/types/SetSendLibraryParams.ts +29 -0
  149. package/src/generated/endpoint/types/SkipParams.ts +30 -0
  150. package/src/generated/endpoint/types/TransferAdminParams.ts +23 -0
  151. package/src/generated/endpoint/types/VerifyParams.ts +32 -0
  152. package/src/generated/endpoint/types/WithdrawRentParams.ts +21 -0
  153. package/src/generated/endpoint/types/index.ts +36 -0
  154. package/src/generated/executor/accounts/ExecutorConfig.ts +216 -0
  155. package/src/generated/executor/accounts/Nonce.ts +193 -0
  156. package/src/generated/executor/accounts/index.ts +7 -0
  157. package/src/generated/executor/errors/index.ts +434 -0
  158. package/src/generated/executor/events/NativeDropAppliedEvent.ts +38 -0
  159. package/src/generated/executor/events/index.ts +1 -0
  160. package/src/generated/executor/index.ts +21 -0
  161. package/src/generated/executor/instructions/adminSetConfig.ts +136 -0
  162. package/src/generated/executor/instructions/compose.ts +181 -0
  163. package/src/generated/executor/instructions/executable.ts +136 -0
  164. package/src/generated/executor/instructions/execute.ts +181 -0
  165. package/src/generated/executor/instructions/index.ts +8 -0
  166. package/src/generated/executor/instructions/initExecutor.ts +147 -0
  167. package/src/generated/executor/instructions/nativeDrop.ts +171 -0
  168. package/src/generated/executor/instructions/ownerSetConfig.ts +136 -0
  169. package/src/generated/executor/instructions/quoteExecutor.ts +148 -0
  170. package/src/generated/executor/types/Acl.ts +26 -0
  171. package/src/generated/executor/types/AdminSetConfigParams.ts +83 -0
  172. package/src/generated/executor/types/ComposeParams.ts +27 -0
  173. package/src/generated/executor/types/DstConfig.ts +32 -0
  174. package/src/generated/executor/types/ExecutableParams.ts +30 -0
  175. package/src/generated/executor/types/ExecuteParams.ts +31 -0
  176. package/src/generated/executor/types/ExecutionState.ts +26 -0
  177. package/src/generated/executor/types/InitExecutorParams.ts +33 -0
  178. package/src/generated/executor/types/LzComposeParams.ts +35 -0
  179. package/src/generated/executor/types/LzOption.ts +24 -0
  180. package/src/generated/executor/types/LzReceiveParams.ts +33 -0
  181. package/src/generated/executor/types/NativeDropParams.ts +36 -0
  182. package/src/generated/executor/types/NativeDropRequest.ts +26 -0
  183. package/src/generated/executor/types/OwnerSetConfigParams.ts +123 -0
  184. package/src/generated/executor/types/QuoteExecutorParams.ts +34 -0
  185. package/src/generated/executor/types/index.ts +15 -0
  186. package/src/generated/pricefeed/accounts/PriceFeed.ts +220 -0
  187. package/src/generated/pricefeed/accounts/index.ts +5 -0
  188. package/src/generated/pricefeed/errors/index.ts +115 -0
  189. package/src/generated/pricefeed/index.ts +21 -0
  190. package/src/generated/pricefeed/instructions/getFee.ts +121 -0
  191. package/src/generated/pricefeed/instructions/index.ts +6 -0
  192. package/src/generated/pricefeed/instructions/initPriceFeed.ts +147 -0
  193. package/src/generated/pricefeed/instructions/setPrice.ts +133 -0
  194. package/src/generated/pricefeed/instructions/setPriceFeed.ts +136 -0
  195. package/src/generated/pricefeed/instructions/setSolPrice.ts +136 -0
  196. package/src/generated/pricefeed/instructions/transferAdmin.ts +136 -0
  197. package/src/generated/pricefeed/types/GetFeeParams.ts +26 -0
  198. package/src/generated/pricefeed/types/InitPriceFeedParams.ts +27 -0
  199. package/src/generated/pricefeed/types/ModelType.ts +66 -0
  200. package/src/generated/pricefeed/types/Price.ts +31 -0
  201. package/src/generated/pricefeed/types/PriceParams.ts +29 -0
  202. package/src/generated/pricefeed/types/SetPriceFeedParams.ts +29 -0
  203. package/src/generated/pricefeed/types/SetPriceParams.ts +26 -0
  204. package/src/generated/pricefeed/types/SetSolPriceParams.ts +21 -0
  205. package/src/generated/pricefeed/types/TransferAdminParams.ts +23 -0
  206. package/src/generated/pricefeed/types/index.ts +9 -0
  207. package/src/generated/simple_messagelib/accounts/MessageLib.ts +222 -0
  208. package/src/generated/simple_messagelib/accounts/ReceiveConfigStore.ts +168 -0
  209. package/src/generated/simple_messagelib/accounts/SendConfigStore.ts +170 -0
  210. package/src/generated/simple_messagelib/accounts/index.ts +13 -0
  211. package/src/generated/simple_messagelib/errors/index.ts +207 -0
  212. package/src/generated/simple_messagelib/index.ts +21 -0
  213. package/src/generated/simple_messagelib/instructions/index.ts +15 -0
  214. package/src/generated/simple_messagelib/instructions/initConfig.ts +183 -0
  215. package/src/generated/simple_messagelib/instructions/initDefaultConfig.ts +171 -0
  216. package/src/generated/simple_messagelib/instructions/initMessageLib.ts +147 -0
  217. package/src/generated/simple_messagelib/instructions/quote.ts +133 -0
  218. package/src/generated/simple_messagelib/instructions/revertCall.ts +59 -0
  219. package/src/generated/simple_messagelib/instructions/send.ts +154 -0
  220. package/src/generated/simple_messagelib/instructions/sendWithLzToken.ts +207 -0
  221. package/src/generated/simple_messagelib/instructions/setConfig.ts +157 -0
  222. package/src/generated/simple_messagelib/instructions/setDefaultConfig.ts +171 -0
  223. package/src/generated/simple_messagelib/instructions/setFee.ts +133 -0
  224. package/src/generated/simple_messagelib/instructions/setWlCaller.ts +136 -0
  225. package/src/generated/simple_messagelib/instructions/transferAdmin.ts +136 -0
  226. package/src/generated/simple_messagelib/instructions/validatePacket.ts +136 -0
  227. package/src/generated/simple_messagelib/instructions/version.ts +59 -0
  228. package/src/generated/simple_messagelib/instructions/withdrawFees.ts +148 -0
  229. package/src/generated/simple_messagelib/types/InitConfigParams.ts +26 -0
  230. package/src/generated/simple_messagelib/types/InitDefaultConfigParams.ts +27 -0
  231. package/src/generated/simple_messagelib/types/InitMessageLibParams.ts +35 -0
  232. package/src/generated/simple_messagelib/types/MessagingFee.ts +24 -0
  233. package/src/generated/simple_messagelib/types/Packet.ts +36 -0
  234. package/src/generated/simple_messagelib/types/QuoteParams.ts +27 -0
  235. package/src/generated/simple_messagelib/types/SendParams.ts +27 -0
  236. package/src/generated/simple_messagelib/types/SendWithLzTokenParams.ts +34 -0
  237. package/src/generated/simple_messagelib/types/SetConfigParams.ts +31 -0
  238. package/src/generated/simple_messagelib/types/SetDefaultConfigParams.ts +27 -0
  239. package/src/generated/simple_messagelib/types/SetFeeParams.ts +24 -0
  240. package/src/generated/simple_messagelib/types/SetWlCallerParams.ts +22 -0
  241. package/src/generated/simple_messagelib/types/TransferAdminParams.ts +23 -0
  242. package/src/generated/simple_messagelib/types/ValidatePacketParams.ts +21 -0
  243. package/src/generated/simple_messagelib/types/Version.ts +26 -0
  244. package/src/generated/simple_messagelib/types/WithdrawFeesParams.ts +21 -0
  245. package/src/generated/simple_messagelib/types/index.ts +16 -0
  246. package/src/generated/uln/accounts/Confirmations.ts +171 -0
  247. package/src/generated/uln/accounts/ReceiveConfig.ts +169 -0
  248. package/src/generated/uln/accounts/SendConfig.ts +177 -0
  249. package/src/generated/uln/accounts/UlnSettings.ts +195 -0
  250. package/src/generated/uln/accounts/index.ts +16 -0
  251. package/src/generated/uln/errors/index.ts +761 -0
  252. package/src/generated/uln/events/AdminTransferredEvent.ts +23 -0
  253. package/src/generated/uln/events/ConfigSetEvent.ts +30 -0
  254. package/src/generated/uln/events/DefaultConfigSetEvent.ts +31 -0
  255. package/src/generated/uln/events/FeesPaidEvent.ts +28 -0
  256. package/src/generated/uln/events/LzTokenSetEvent.ts +23 -0
  257. package/src/generated/uln/events/PayloadVerifiedEvent.ts +31 -0
  258. package/src/generated/uln/events/RentWithdrawnEvent.ts +27 -0
  259. package/src/generated/uln/events/TreasuryFeeCapSetEvent.ts +21 -0
  260. package/src/generated/uln/events/TreasurySetEvent.ts +22 -0
  261. package/src/generated/uln/events/index.ts +7 -0
  262. package/src/generated/uln/index.ts +21 -0
  263. package/src/generated/uln/instructions/closeVerify.ts +148 -0
  264. package/src/generated/uln/instructions/commitVerification.ts +148 -0
  265. package/src/generated/uln/instructions/index.ts +16 -0
  266. package/src/generated/uln/instructions/initConfig.ts +183 -0
  267. package/src/generated/uln/instructions/initDefaultConfig.ts +195 -0
  268. package/src/generated/uln/instructions/initUln.ts +144 -0
  269. package/src/generated/uln/instructions/initVerify.ts +147 -0
  270. package/src/generated/uln/instructions/quote.ts +157 -0
  271. package/src/generated/uln/instructions/send.ts +220 -0
  272. package/src/generated/uln/instructions/sendWithLzToken.ts +255 -0
  273. package/src/generated/uln/instructions/setConfig.ts +205 -0
  274. package/src/generated/uln/instructions/setDefaultConfig.ts +184 -0
  275. package/src/generated/uln/instructions/setTreasury.ts +160 -0
  276. package/src/generated/uln/instructions/transferAdmin.ts +160 -0
  277. package/src/generated/uln/instructions/verify.ts +157 -0
  278. package/src/generated/uln/instructions/version.ts +59 -0
  279. package/src/generated/uln/instructions/withdrawRent.ts +172 -0
  280. package/src/generated/uln/types/CloseVerifyParams.ts +24 -0
  281. package/src/generated/uln/types/CommitVerificationParams.ts +25 -0
  282. package/src/generated/uln/types/Config.ts +75 -0
  283. package/src/generated/uln/types/ExecutorConfig.ts +26 -0
  284. package/src/generated/uln/types/InitConfigParams.ts +26 -0
  285. package/src/generated/uln/types/InitDefaultConfigParams.ts +31 -0
  286. package/src/generated/uln/types/InitUlnParams.ts +30 -0
  287. package/src/generated/uln/types/InitVerifyParams.ts +28 -0
  288. package/src/generated/uln/types/LzTokenTreasury.ts +26 -0
  289. package/src/generated/uln/types/MessagingFee.ts +24 -0
  290. package/src/generated/uln/types/Packet.ts +36 -0
  291. package/src/generated/uln/types/QuoteParams.ts +27 -0
  292. package/src/generated/uln/types/SendParams.ts +27 -0
  293. package/src/generated/uln/types/SendWithLzTokenParams.ts +34 -0
  294. package/src/generated/uln/types/SetConfigParams.ts +31 -0
  295. package/src/generated/uln/types/SetDefaultConfigParams.ts +31 -0
  296. package/src/generated/uln/types/SetTreasuryParams.ts +22 -0
  297. package/src/generated/uln/types/TransferAdminParams.ts +23 -0
  298. package/src/generated/uln/types/Treasury.ts +31 -0
  299. package/src/generated/uln/types/TreasuryFee.ts +28 -0
  300. package/src/generated/uln/types/UlnConfig.ts +34 -0
  301. package/src/generated/uln/types/VerifyParams.ts +26 -0
  302. package/src/generated/uln/types/Version.ts +26 -0
  303. package/src/generated/uln/types/WithdrawRentParams.ts +21 -0
  304. package/src/generated/uln/types/WorkerFee.ts +26 -0
  305. package/src/generated/uln/types/index.ts +25 -0
  306. package/src/generated/worker_interface/errors/index.ts +75 -0
  307. package/src/generated/worker_interface/index.ts +20 -0
  308. package/src/generated/worker_interface/instructions/index.ts +2 -0
  309. package/src/generated/worker_interface/instructions/quoteDvn.ts +145 -0
  310. package/src/generated/worker_interface/instructions/quoteExecutor.ts +148 -0
  311. package/src/generated/worker_interface/types/LzOption.ts +24 -0
  312. package/src/generated/worker_interface/types/QuoteDvnParams.ts +38 -0
  313. package/src/generated/worker_interface/types/QuoteExecutorParams.ts +34 -0
  314. package/src/generated/worker_interface/types/index.ts +3 -0
  315. package/src/index.ts +120 -0
  316. package/src/pda-deriver.ts +658 -0
  317. package/src/pricefeed.ts +208 -0
  318. package/src/recevie.ts +269 -0
  319. package/src/send-helper.ts +504 -0
  320. package/src/simple-message-lib.ts +303 -0
  321. package/src/types.ts +222 -0
  322. package/src/uln.ts +1045 -0
  323. package/src/utility.ts +592 -0
@@ -0,0 +1,208 @@
1
+ import { bignum } from '@metaplex-foundation/beet'
2
+ import { Commitment, Connection, GetAccountInfoConfig, PublicKey, TransactionInstruction } from '@solana/web3.js'
3
+
4
+ import * as accounts from './generated/pricefeed/accounts'
5
+ import * as instructions from './generated/pricefeed/instructions'
6
+ import * as types from './generated/pricefeed/types'
7
+ import { PriceFeedPDADeriver } from './pda-deriver'
8
+
9
+ export { accounts, instructions, types }
10
+ export { PROGRAM_ID } from './generated/pricefeed'
11
+
12
+ /**
13
+ * Class representing the PriceFeed.
14
+ */
15
+ export class PriceFeed {
16
+ deriver: PriceFeedPDADeriver
17
+
18
+ /**
19
+ * Creates an instance of the PriceFeed class.
20
+ *
21
+ * @param {PublicKey} program - The public key of the program.
22
+ */
23
+ constructor(public readonly program: PublicKey) {
24
+ this.deriver = new PriceFeedPDADeriver(this.program)
25
+ }
26
+
27
+ /**
28
+ * Initializes the price feed.
29
+ *
30
+ * @param {Connection} connection - The Solana connection object.
31
+ * @param {PublicKey} payer - The public key of the payer.
32
+ * @param {PublicKey} admin - The public key of the admin.
33
+ * @param {PublicKey[]} updaters - The list of public keys of the updaters.
34
+ * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - Optional commitment or configuration.
35
+ *
36
+ * @returns {Promise<TransactionInstruction>} The transaction instruction.
37
+ */
38
+ async initPriceFeed(
39
+ connection: Connection,
40
+ payer: PublicKey,
41
+ admin: PublicKey,
42
+ updaters: PublicKey[],
43
+ commitmentOrConfig?: Commitment | GetAccountInfoConfig
44
+ ): Promise<TransactionInstruction> {
45
+ const [priceFeed] = this.deriver.priceFeed()
46
+ const info = await connection.getAccountInfo(priceFeed, commitmentOrConfig)
47
+ if (info) {
48
+ throw new Error('Pricefeed already initialized')
49
+ }
50
+ return instructions.createInitPriceFeedInstruction(
51
+ {
52
+ payer,
53
+ priceFeed,
54
+ } satisfies instructions.InitPriceFeedInstructionAccounts,
55
+ {
56
+ params: {
57
+ admin,
58
+ updaters,
59
+ } satisfies types.InitPriceFeedParams,
60
+ } satisfies instructions.InitPriceFeedInstructionArgs,
61
+ this.program
62
+ )
63
+ }
64
+
65
+ /**
66
+ * Sets the price feed.
67
+ *
68
+ * @param {PublicKey} admin - The public key of the admin.
69
+ * @param {PublicKey[]} updaters - The list of public keys of the updaters.
70
+ * @param {bignum} priceRatioDenominator - The price ratio denominator.
71
+ * @param {number} arbitrumCompressionPercent - The Arbitrum compression percentage.
72
+ *
73
+ * @returns {TransactionInstruction} The transaction instruction.
74
+ */
75
+ setPriceFeed(
76
+ admin: PublicKey,
77
+ updaters: PublicKey[],
78
+ priceRatioDenominator: bignum,
79
+ arbitrumCompressionPercent: number
80
+ ): TransactionInstruction {
81
+ const [priceFeed] = this.deriver.priceFeed()
82
+ return instructions.createSetPriceFeedInstruction(
83
+ {
84
+ admin,
85
+ priceFeed,
86
+ } satisfies instructions.SetPriceFeedInstructionAccounts,
87
+ {
88
+ params: {
89
+ updaters,
90
+ priceRatioDenominator,
91
+ arbitrumCompressionPercent,
92
+ } satisfies types.SetPriceFeedParams,
93
+ } satisfies instructions.SetPriceFeedInstructionArgs,
94
+ this.program
95
+ )
96
+ }
97
+
98
+ /**
99
+ * Sets the price.
100
+ *
101
+ * @param {PublicKey} updater - The public key of the updater.
102
+ * @param {number} dstEid - The destination EID.
103
+ * @param {bignum} priceRatio - The price ratio.
104
+ * @param {bignum} gasPriceInUnit - The gas price in unit.
105
+ * @param {number} gasPerByte - The gas per byte.
106
+ * @param {types.ModelType | null} modelType - The model type.
107
+ *
108
+ * @returns {TransactionInstruction} The transaction instruction.
109
+ */
110
+ setPrice(
111
+ updater: PublicKey,
112
+ dstEid: number,
113
+ priceRatio: bignum,
114
+ gasPriceInUnit: bignum,
115
+ gasPerByte: number,
116
+ modelType: types.ModelType | null
117
+ ): TransactionInstruction {
118
+ const EID_MODULUS = 30000
119
+ dstEid = dstEid % EID_MODULUS
120
+ const [priceFeed] = this.deriver.priceFeed()
121
+ return instructions.createSetPriceInstruction(
122
+ {
123
+ updater,
124
+ priceFeed,
125
+ } satisfies instructions.SetPriceInstructionAccounts,
126
+ {
127
+ params: {
128
+ dstEid,
129
+ params: {
130
+ priceRatio,
131
+ gasPriceInUnit,
132
+ gasPerByte,
133
+ modelType,
134
+ },
135
+ } satisfies types.SetPriceParams,
136
+ } satisfies instructions.SetPriceInstructionArgs,
137
+ this.program
138
+ )
139
+ }
140
+
141
+ /**
142
+ * Sets the SOL price.
143
+ *
144
+ * @param {PublicKey} updater - The public key of the updater.
145
+ * @param {bignum | null} nativeTokenPriceUsd - The native token price in USD.
146
+ *
147
+ * @returns {TransactionInstruction} The transaction instruction.
148
+ */
149
+ setSolPrice(updater: PublicKey, nativeTokenPriceUsd: bignum | null): TransactionInstruction {
150
+ const [priceFeed] = this.deriver.priceFeed()
151
+ return instructions.createSetSolPriceInstruction(
152
+ {
153
+ priceFeed,
154
+ updater,
155
+ } satisfies instructions.SetSolPriceInstructionAccounts,
156
+ {
157
+ params: {
158
+ nativeTokenPriceUsd,
159
+ } satisfies types.SetSolPriceParams,
160
+ } satisfies instructions.SetSolPriceInstructionArgs,
161
+ this.program
162
+ )
163
+ }
164
+
165
+ /**
166
+ * Transfers the admin role.
167
+ *
168
+ * @param {PublicKey} admin - The public key of the current admin.
169
+ * @param {PublicKey} newAdmin - The public key of the new admin.
170
+ *
171
+ * @returns {TransactionInstruction} The transaction instruction.
172
+ */
173
+ transferAdmin(admin: PublicKey, newAdmin: PublicKey): TransactionInstruction {
174
+ const [priceFeed] = this.deriver.priceFeed()
175
+ return instructions.createTransferAdminInstruction(
176
+ {
177
+ admin,
178
+ priceFeed,
179
+ } satisfies instructions.TransferAdminInstructionAccounts,
180
+ {
181
+ params: {
182
+ admin: newAdmin,
183
+ } satisfies types.TransferAdminParams,
184
+ } satisfies instructions.TransferAdminInstructionArgs,
185
+ this.program
186
+ )
187
+ }
188
+
189
+ /**
190
+ * Retrieves the price feed account.
191
+ *
192
+ * @param {Connection} connection - The Solana connection object.
193
+ * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - Optional commitment or configuration.
194
+ *
195
+ * @returns {Promise<accounts.PriceFeed | null>} The price feed account or null if not found.
196
+ */
197
+ async getPriceFeed(
198
+ connection: Connection,
199
+ commitmentOrConfig?: Commitment | GetAccountInfoConfig
200
+ ): Promise<accounts.PriceFeed | null> {
201
+ const [priceFeed] = this.deriver.priceFeed()
202
+ try {
203
+ return await accounts.PriceFeed.fromAccountAddress(connection, priceFeed, commitmentOrConfig)
204
+ } catch (e) {
205
+ return null
206
+ }
207
+ }
208
+ }
package/src/recevie.ts ADDED
@@ -0,0 +1,269 @@
1
+ import { array } from '@metaplex-foundation/beet'
2
+ import {
3
+ AccountInfo,
4
+ AccountMeta,
5
+ Commitment,
6
+ Connection,
7
+ GetAccountInfoConfig,
8
+ PublicKey,
9
+ TransactionInstruction,
10
+ } from '@solana/web3.js'
11
+
12
+ import { arrayify } from '@layerzerolabs/lz-utilities'
13
+ import { Packet, addressToBytes32 } from '@layerzerolabs/lz-v2-utilities'
14
+
15
+ import { ComposeSentEvent } from './generated/endpoint/events'
16
+ import {
17
+ AddressType,
18
+ LzComposeParams,
19
+ LzComposeParamsBeet,
20
+ LzReceiveAccountBeet,
21
+ LzReceiveParams,
22
+ LzReceiveParamsBeet,
23
+ } from './types'
24
+ import { instructionDiscriminator, simulateTransaction } from './utility'
25
+
26
+ import { deriveLzComposeTypesAccountsPDA, deriveLzReceiveTypesAccountsPDA } from '.'
27
+
28
+ /**
29
+ * Receives a LayerZero message.
30
+ *
31
+ * @param {Connection} connection - The Solana connection object.
32
+ * @param {PublicKey} payer - The public key of the payer.
33
+ * @param {Packet} packet - The packet containing the message.
34
+ * @param {Uint8Array} [callerParams] - Optional caller parameters.
35
+ * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - Optional commitment or configuration.
36
+ *
37
+ * @returns {Promise<TransactionInstruction>} The transaction instruction.
38
+ */
39
+ export async function lzReceive(
40
+ connection: Connection,
41
+ payer: PublicKey,
42
+ packet: Pick<Packet, 'message' | 'sender' | 'srcEid' | 'guid' | 'receiver' | 'nonce'>,
43
+ callerParams: Uint8Array = Uint8Array.from([0, 0]),
44
+ commitmentOrConfig: Commitment | GetAccountInfoConfig = 'confirmed'
45
+ ): Promise<TransactionInstruction> {
46
+ const { message: message_, sender: sender, srcEid, guid, receiver: receiver_ } = packet
47
+ const receiver = new PublicKey(addressToBytes32(receiver_))
48
+ const message = arrayify(message_)
49
+ const params: LzReceiveParams = {
50
+ srcEid: srcEid,
51
+ sender: Array.from(arrayify(sender)),
52
+ guid: Array.from(arrayify(guid)),
53
+ message,
54
+ callerParams,
55
+ nonce: parseInt(packet.nonce),
56
+ }
57
+ const receiverInfo = await connection.getParsedAccountInfo(receiver, commitmentOrConfig)
58
+ const receiverProgram = new PublicKey((receiverInfo.value as AccountInfo<Buffer>).owner)
59
+ const accounts = await getLzReceiveAccounts(
60
+ connection,
61
+ payer,
62
+ receiver,
63
+ receiverProgram,
64
+ params,
65
+ commitmentOrConfig
66
+ )
67
+
68
+ const MSG_TYPE_OFFSET = 0
69
+ // const msgType: string = message[MSG_TYPE_OFFSET].toString()
70
+ // if (msgType !== MessageType.COMPOSED_TYPE.toString() && msgType !== MessageType.VANILLA.toString()) {
71
+ // throw new Error(`Invalid message type ${msgType}`)
72
+ // }
73
+
74
+ const [data] = LzReceiveParamsBeet.serialize(params)
75
+ return new TransactionInstruction({
76
+ programId: receiverProgram,
77
+ keys: accounts,
78
+ data: Buffer.concat([instructionDiscriminator('lz_receive'), data]),
79
+ })
80
+ }
81
+
82
+ /**
83
+ * Composes a LayerZero message.
84
+ *
85
+ * @param {Connection} connection - The Solana connection object.
86
+ * @param {PublicKey} payer - The public key of the payer.
87
+ * @param {ComposeSentEvent} event - The event containing the message details.
88
+ * @param {Uint8Array} [extraData] - Optional extra data.
89
+ * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - Optional commitment or configuration.
90
+ *
91
+ * @returns {Promise<TransactionInstruction>} The transaction instruction.
92
+ */
93
+ export async function lzCompose(
94
+ connection: Connection,
95
+ payer: PublicKey,
96
+ event: ComposeSentEvent,
97
+ extraData: Uint8Array = Uint8Array.from([0, 0]),
98
+ commitmentOrConfig?: Commitment | GetAccountInfoConfig
99
+ ): Promise<TransactionInstruction> {
100
+ const { to, from, guid, index, message } = event
101
+ const params: LzComposeParams = {
102
+ from,
103
+ to,
104
+ guid,
105
+ index,
106
+ message,
107
+ extraData,
108
+ }
109
+ const accountInfo = await connection.getAccountInfo(to, commitmentOrConfig)
110
+ if (!accountInfo) {
111
+ throw new Error(`Account not found: ${to.toBase58()}`)
112
+ }
113
+ const programId = accountInfo.owner
114
+ const accounts = await getLzComposeAccountMeta(connection, payer, to, programId, params, commitmentOrConfig)
115
+
116
+ const [data] = LzComposeParamsBeet.serialize(params)
117
+ return new TransactionInstruction({
118
+ programId,
119
+ keys: accounts,
120
+ data: Buffer.concat([instructionDiscriminator('lz_compose'), data]),
121
+ })
122
+ }
123
+
124
+ /// LzReceiveTypes instruction provides a list of accounts that are used in the LzReceive
125
+ /// instruction. The list of accounts required by this LzReceiveTypes instruction can be found
126
+ /// from the specific PDA account that is generated by the LZ_RECEIVE_TYPES_SEED.
127
+ /**
128
+ * Retrieves the accounts required for the LzReceive instruction.
129
+ *
130
+ * @param {Connection} connection - The Solana connection object.
131
+ * @param {PublicKey} payer - The public key of the payer.
132
+ * @param {PublicKey} receiver - The public key of the receiver.
133
+ * @param {PublicKey} receiverProgram - The public key of the receiver program.
134
+ * @param {LzReceiveParams} params - The parameters for the LzReceive instruction.
135
+ * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - Optional commitment or configuration.
136
+ *
137
+ * @returns {Promise<AccountMeta[]>} The list of account metadata.
138
+ */
139
+ export async function getLzReceiveAccounts(
140
+ connection: Connection,
141
+ payer: PublicKey,
142
+ receiver: PublicKey,
143
+ receiverProgram: PublicKey,
144
+ params: LzReceiveParams,
145
+ commitmentOrConfig: Commitment | GetAccountInfoConfig = 'confirmed'
146
+ ): Promise<AccountMeta[]> {
147
+ const lzReceiveTypesAccounts = await (async (): Promise<AccountMeta[]> => {
148
+ const [lzReceiveTypesAccountsPDA] = deriveLzReceiveTypesAccountsPDA(receiverProgram, receiver)
149
+ // Get the lzReceiveTypesAccounts. Deserialize the AccountInfo.data to get the lzReceiveTypesAccounts.
150
+ const info = await connection.getAccountInfo(lzReceiveTypesAccountsPDA, commitmentOrConfig)
151
+ const accounts = []
152
+ if (info) {
153
+ const buffer = Buffer.from(info.data)
154
+ const len = buffer.length - 8
155
+ if (len % 32 !== 0) {
156
+ throw new Error(
157
+ `Invalid length of AccountInfo.data. The length must be a multiple of 32 plus 8.(n*32+8). Current length is ${buffer.length}`
158
+ )
159
+ }
160
+ for (let i = 8; i < len; i += 32) {
161
+ const address = AddressType.read(buffer, i)
162
+ accounts.push({
163
+ pubkey: new PublicKey(address),
164
+ isSigner: false,
165
+ isWritable: false,
166
+ })
167
+ }
168
+ }
169
+ return accounts
170
+ })()
171
+
172
+ const [data] = LzReceiveParamsBeet.serialize(params)
173
+ const lzReceiveTypesIx = new TransactionInstruction({
174
+ programId: receiverProgram,
175
+ keys: lzReceiveTypesAccounts,
176
+ data: Buffer.concat([instructionDiscriminator('lz_receive_types'), data]),
177
+ })
178
+
179
+ const response = await simulateTransaction(connection, [lzReceiveTypesIx], receiverProgram, payer)
180
+ const keys: AccountMeta[] = retrieveAccountFromSimulatedResp(response, payer)
181
+ return keys
182
+ }
183
+
184
+ /**
185
+ * Retrieves the accounts required for the LzCompose instruction.
186
+ *
187
+ * @param {Connection} connection - The Solana connection object.
188
+ * @param {PublicKey} payer - The public key of the payer.
189
+ * @param {PublicKey} to - The public key of the recipient.
190
+ * @param {PublicKey} composerProgram - The public key of the composer program.
191
+ * @param {LzComposeParams} params - The parameters for the LzCompose instruction.
192
+ * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - Optional commitment or configuration.
193
+ *
194
+ * @returns {Promise<AccountMeta[]>} The list of account metadata.
195
+ */
196
+ export async function getLzComposeAccountMeta(
197
+ connection: Connection,
198
+ payer: PublicKey,
199
+ to: PublicKey,
200
+ composerProgram: PublicKey,
201
+ params: LzComposeParams,
202
+ commitmentOrConfig: Commitment | GetAccountInfoConfig = 'confirmed'
203
+ ): Promise<AccountMeta[]> {
204
+ const lzComposeTypesAccounts = await (async (): Promise<AccountMeta[]> => {
205
+ const [lzComposeTypesAccountsPDA] = deriveLzComposeTypesAccountsPDA(composerProgram, to)
206
+ // Get the lzReceiveTypesAccounts. Deserialize the AccountInfo.data to get the lzComposeTypesAccounts.
207
+ const info = await connection.getAccountInfo(lzComposeTypesAccountsPDA, commitmentOrConfig)
208
+ const accounts = []
209
+ if (info) {
210
+ const buffer = Buffer.from(info.data)
211
+ const len = buffer.length - 8
212
+ if (len % 32 !== 0) {
213
+ throw new Error(
214
+ `Invalid length of AccountInfo.data. The length must be a multiple of 32 plus 8.(n*32+8). Current length is ${buffer.length}`
215
+ )
216
+ }
217
+ for (let i = 8; i < len; i += 32) {
218
+ const address = AddressType.read(buffer, i)
219
+ accounts.push({
220
+ pubkey: new PublicKey(address),
221
+ isSigner: false,
222
+ isWritable: false,
223
+ })
224
+ }
225
+ }
226
+ return accounts
227
+ })()
228
+
229
+ const [data] = LzComposeParamsBeet.serialize(params)
230
+ const lzComposeTypesIx = new TransactionInstruction({
231
+ programId: composerProgram,
232
+ keys: lzComposeTypesAccounts,
233
+ data: Buffer.concat([instructionDiscriminator('lz_compose_types'), data]),
234
+ })
235
+
236
+ const response = await simulateTransaction(connection, [lzComposeTypesIx], composerProgram, payer)
237
+ const keys: AccountMeta[] = retrieveAccountFromSimulatedResp(response, payer)
238
+ return keys
239
+ }
240
+
241
+ /**
242
+ * Retrieves account metadata from a simulated transaction response.
243
+ *
244
+ * @param {Buffer} resp - The response buffer.
245
+ * @param {PublicKey} [payer] - Optional public key of the payer.
246
+ *
247
+ * @returns {AccountMeta[]} The list of account metadata.
248
+ */
249
+ function retrieveAccountFromSimulatedResp(resp: Buffer, payer?: PublicKey): AccountMeta[] {
250
+ const result = array(LzReceiveAccountBeet)
251
+ const fixedBeet = result.toFixedFromData(resp, 0)
252
+ const results = fixedBeet.read(resp, 0)
253
+ return results.map((r) => {
254
+ if (r.pubkey.toBase58() == PublicKey.default.toBase58() && r.isSigner) {
255
+ if (!payer) throw new Error('payer is required')
256
+ return {
257
+ pubkey: payer,
258
+ isSigner: true,
259
+ isWritable: r.isWritable,
260
+ } satisfies AccountMeta
261
+ } else {
262
+ return {
263
+ pubkey: r.pubkey,
264
+ isSigner: r.isSigner,
265
+ isWritable: r.isWritable,
266
+ } satisfies AccountMeta
267
+ }
268
+ })
269
+ }