@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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/pda.ts","../src/endpoint.ts","../src/generated/kinobi/endpoint/accounts/index.ts","../src/generated/kinobi/endpoint/accounts/composeMessageState.ts","../src/generated/kinobi/endpoint/accounts/endpointSettings.ts","../src/generated/kinobi/endpoint/types/index.ts","../src/generated/kinobi/endpoint/types/messageLibType.ts","../src/generated/kinobi/endpoint/types/messagingFee.ts","../src/generated/kinobi/endpoint/types/messagingReceipt.ts","../src/generated/kinobi/endpoint/types/receiveLibraryTimeout.ts","../src/generated/kinobi/endpoint/accounts/messageLibInfo.ts","../src/generated/kinobi/endpoint/accounts/nonce.ts","../src/generated/kinobi/endpoint/accounts/oAppRegistry.ts","../src/generated/kinobi/endpoint/accounts/payloadHash.ts","../src/generated/kinobi/endpoint/accounts/pendingInboundNonce.ts","../src/generated/kinobi/endpoint/accounts/receiveLibraryConfig.ts","../src/generated/kinobi/endpoint/accounts/sendLibraryConfig.ts","../src/generated/kinobi/endpoint/errors/index.ts","../src/generated/kinobi/endpoint/errors/endpoint.ts","../src/generated/kinobi/endpoint/instructions/index.ts","../src/generated/kinobi/endpoint/shared/index.ts","../src/generated/kinobi/endpoint/instructions/burn.ts","../src/generated/kinobi/endpoint/instructions/clear.ts","../src/generated/kinobi/endpoint/instructions/clearCompose.ts","../src/generated/kinobi/endpoint/instructions/initConfig.ts","../src/generated/kinobi/endpoint/instructions/initDefaultReceiveLibrary.ts","../src/generated/kinobi/endpoint/instructions/initDefaultSendLibrary.ts","../src/generated/kinobi/endpoint/instructions/initEndpoint.ts","../src/generated/kinobi/endpoint/instructions/initNonce.ts","../src/generated/kinobi/endpoint/instructions/initReceiveLibrary.ts","../src/generated/kinobi/endpoint/instructions/initSendLibrary.ts","../src/generated/kinobi/endpoint/instructions/initVerify.ts","../src/generated/kinobi/endpoint/instructions/lzComposeAlert.ts","../src/generated/kinobi/endpoint/instructions/lzReceiveAlert.ts","../src/generated/kinobi/endpoint/instructions/nilify.ts","../src/generated/kinobi/endpoint/instructions/quote.ts","../src/generated/kinobi/endpoint/instructions/registerLibrary.ts","../src/generated/kinobi/endpoint/instructions/registerOapp.ts","../src/generated/kinobi/endpoint/instructions/send.ts","../src/generated/kinobi/endpoint/instructions/sendCompose.ts","../src/generated/kinobi/endpoint/instructions/setConfig.ts","../src/generated/kinobi/endpoint/instructions/setDefaultReceiveLibrary.ts","../src/generated/kinobi/endpoint/instructions/setDefaultReceiveLibraryTimeout.ts","../src/generated/kinobi/endpoint/instructions/setDefaultSendLibrary.ts","../src/generated/kinobi/endpoint/instructions/setDelegate.ts","../src/generated/kinobi/endpoint/instructions/setLzToken.ts","../src/generated/kinobi/endpoint/instructions/setReceiveLibrary.ts","../src/generated/kinobi/endpoint/instructions/setReceiveLibraryTimeout.ts","../src/generated/kinobi/endpoint/instructions/setSendLibrary.ts","../src/generated/kinobi/endpoint/instructions/skip.ts","../src/generated/kinobi/endpoint/instructions/transferAdmin.ts","../src/generated/kinobi/endpoint/instructions/verify.ts","../src/generated/kinobi/endpoint/instructions/withdrawRent.ts","../src/generated/kinobi/endpoint/programs/endpoint.ts","../src/generated/kinobi/endpoint/events/index.ts","../src/generated/kinobi/endpoint/events/adminTransferredEvent.ts","../src/generated/kinobi/endpoint/events/composeDeliveredEvent.ts","../src/generated/kinobi/endpoint/events/composeSentEvent.ts","../src/generated/kinobi/endpoint/events/defaultReceiveLibrarySetEvent.ts","../src/generated/kinobi/endpoint/events/defaultReceiveLibraryTimeoutSetEvent.ts","../src/generated/kinobi/endpoint/events/defaultSendLibrarySetEvent.ts","../src/generated/kinobi/endpoint/events/delegateSetEvent.ts","../src/generated/kinobi/endpoint/events/inboundNonceSkippedEvent.ts","../src/generated/kinobi/endpoint/events/libraryRegisteredEvent.ts","../src/generated/kinobi/endpoint/events/lzComposeAlertEvent.ts","../src/generated/kinobi/endpoint/events/lzReceiveAlertEvent.ts","../src/generated/kinobi/endpoint/events/lzTokenSetEvent.ts","../src/generated/kinobi/endpoint/events/oAppRegisteredEvent.ts","../src/generated/kinobi/endpoint/events/packetBurntEvent.ts","../src/generated/kinobi/endpoint/events/packetDeliveredEvent.ts","../src/generated/kinobi/endpoint/events/packetNilifiedEvent.ts","../src/generated/kinobi/endpoint/events/packetSentEvent.ts","../src/generated/kinobi/endpoint/events/packetVerifiedEvent.ts","../src/generated/kinobi/endpoint/events/receiveLibrarySetEvent.ts","../src/generated/kinobi/endpoint/events/receiveLibraryTimeoutSetEvent.ts","../src/generated/kinobi/endpoint/events/rentWithdrawnEvent.ts","../src/generated/kinobi/endpoint/events/sendLibrarySetEvent.ts","../src/generated/kinobi/simple_messagelib/accounts/index.ts","../src/generated/kinobi/simple_messagelib/accounts/messageLib.ts","../src/generated/kinobi/simple_messagelib/accounts/receiveConfigStore.ts","../src/generated/kinobi/simple_messagelib/accounts/sendConfigStore.ts","../src/generated/kinobi/simple_messagelib/errors/index.ts","../src/generated/kinobi/simple_messagelib/errors/simpleMessagelib.ts","../src/generated/kinobi/simple_messagelib/instructions/index.ts","../src/generated/kinobi/simple_messagelib/shared/index.ts","../src/generated/kinobi/simple_messagelib/instructions/initConfig.ts","../src/generated/kinobi/simple_messagelib/instructions/initDefaultConfig.ts","../src/generated/kinobi/simple_messagelib/instructions/initMessageLib.ts","../src/generated/kinobi/simple_messagelib/types/index.ts","../src/generated/kinobi/simple_messagelib/types/messagingFee.ts","../src/generated/kinobi/simple_messagelib/types/packet.ts","../src/generated/kinobi/simple_messagelib/types/version.ts","../src/generated/kinobi/simple_messagelib/instructions/quote.ts","../src/generated/kinobi/simple_messagelib/instructions/revertCall.ts","../src/generated/kinobi/simple_messagelib/instructions/send.ts","../src/generated/kinobi/simple_messagelib/instructions/sendWithLzToken.ts","../src/generated/kinobi/simple_messagelib/instructions/setConfig.ts","../src/generated/kinobi/simple_messagelib/instructions/setDefaultConfig.ts","../src/generated/kinobi/simple_messagelib/instructions/setFee.ts","../src/generated/kinobi/simple_messagelib/instructions/setWlCaller.ts","../src/generated/kinobi/simple_messagelib/instructions/transferAdmin.ts","../src/generated/kinobi/simple_messagelib/instructions/validatePacket.ts","../src/generated/kinobi/simple_messagelib/instructions/version.ts","../src/generated/kinobi/simple_messagelib/instructions/withdrawFees.ts","../src/generated/kinobi/simple_messagelib/programs/simpleMessagelib.ts","../src/simple-message-lib.ts","../src/uln.ts","../src/dvn.ts","../src/generated/kinobi/dvn/accounts/index.ts","../src/generated/kinobi/dvn/types/index.ts","../src/generated/kinobi/dvn/types/acl.ts","../src/generated/kinobi/dvn/types/adminConfig.ts","../src/generated/kinobi/dvn/types/dstConfig.ts","../src/generated/kinobi/dvn/types/executeTransactionDigest.ts","../src/generated/kinobi/dvn/types/lzOption.ts","../src/generated/kinobi/dvn/types/multisig.ts","../src/generated/kinobi/dvn/types/multisigConfig.ts","../src/generated/kinobi/dvn/types/transactionAccount.ts","../src/generated/kinobi/dvn/types/ulnConfig.ts","../src/generated/kinobi/dvn/types/verificationState.ts","../src/generated/kinobi/dvn/accounts/dvnConfig.ts","../src/generated/kinobi/dvn/accounts/executeHash.ts","../src/generated/kinobi/dvn/accounts/receiveConfig.ts","../src/generated/kinobi/dvn/errors/index.ts","../src/generated/kinobi/dvn/errors/dvn.ts","../src/generated/kinobi/dvn/events/index.ts","../src/generated/kinobi/dvn/events/adminConfigSetEvent.ts","../src/generated/kinobi/dvn/events/feeWithdrawnEvent.ts","../src/generated/kinobi/dvn/events/multisigConfigSetEvent.ts","../src/generated/kinobi/dvn/instructions/index.ts","../src/generated/kinobi/dvn/shared/index.ts","../src/generated/kinobi/dvn/instructions/closeExecute.ts","../src/generated/kinobi/dvn/instructions/initDvn.ts","../src/generated/kinobi/dvn/instructions/invoke.ts","../src/generated/kinobi/dvn/instructions/quoteDvn.ts","../src/generated/kinobi/dvn/instructions/setConfig.ts","../src/generated/kinobi/dvn/instructions/verifiable.ts","../src/generated/kinobi/dvn/instructions/withdrawFee.ts","../src/generated/kinobi/dvn/index.ts","../src/generated/kinobi/dvn/programs/dvn.ts","../src/executor.ts","../src/generated/kinobi/executor/accounts/index.ts","../src/generated/kinobi/executor/types/index.ts","../src/generated/kinobi/executor/types/acl.ts","../src/generated/kinobi/executor/types/adminSetConfigParams.ts","../src/generated/kinobi/executor/types/dstConfig.ts","../src/generated/kinobi/executor/types/executionState.ts","../src/generated/kinobi/executor/types/lzComposeParams.ts","../src/generated/kinobi/executor/types/lzOption.ts","../src/generated/kinobi/executor/types/lzReceiveParams.ts","../src/generated/kinobi/executor/types/nativeDropRequest.ts","../src/generated/kinobi/executor/types/ownerSetConfigParams.ts","../src/generated/kinobi/executor/accounts/executorConfig.ts","../src/generated/kinobi/executor/accounts/nonce.ts","../src/generated/kinobi/executor/errors/index.ts","../src/generated/kinobi/executor/errors/executor.ts","../src/generated/kinobi/executor/events/index.ts","../src/generated/kinobi/executor/events/nativeDropAppliedEvent.ts","../src/generated/kinobi/executor/instructions/index.ts","../src/generated/kinobi/executor/shared/index.ts","../src/generated/kinobi/executor/instructions/adminSetConfig.ts","../src/generated/kinobi/executor/instructions/compose.ts","../src/generated/kinobi/executor/instructions/executable.ts","../src/generated/kinobi/executor/instructions/execute.ts","../src/generated/kinobi/executor/instructions/initExecutor.ts","../src/generated/kinobi/executor/instructions/nativeDrop.ts","../src/generated/kinobi/executor/instructions/ownerSetConfig.ts","../src/generated/kinobi/executor/instructions/quoteExecutor.ts","../src/generated/kinobi/executor/programs/executor.ts","../src/types.ts","../src/generated/kinobi/uln/events/index.ts","../src/generated/kinobi/uln/events/adminTransferredEvent.ts","../src/generated/kinobi/uln/types/index.ts","../src/generated/kinobi/uln/types/config.ts","../src/generated/kinobi/uln/types/executorConfig.ts","../src/generated/kinobi/uln/types/lzTokenTreasury.ts","../src/generated/kinobi/uln/types/messagingFee.ts","../src/generated/kinobi/uln/types/packet.ts","../src/generated/kinobi/uln/types/treasury.ts","../src/generated/kinobi/uln/types/treasuryFee.ts","../src/generated/kinobi/uln/types/ulnConfig.ts","../src/generated/kinobi/uln/types/version.ts","../src/generated/kinobi/uln/types/workerFee.ts","../src/generated/kinobi/uln/events/configSetEvent.ts","../src/generated/kinobi/uln/events/defaultConfigSetEvent.ts","../src/generated/kinobi/uln/events/feesPaidEvent.ts","../src/generated/kinobi/uln/events/payloadVerifiedEvent.ts","../src/generated/kinobi/uln/events/rentWithdrawnEvent.ts","../src/generated/kinobi/uln/events/treasurySetEvent.ts","../src/utility.ts","../src/receive.ts","../src/generated/kinobi/uln/accounts/index.ts","../src/generated/kinobi/uln/accounts/confirmations.ts","../src/generated/kinobi/uln/accounts/receiveConfig.ts","../src/generated/kinobi/uln/accounts/sendConfig.ts","../src/generated/kinobi/uln/accounts/ulnSettings.ts","../src/generated/kinobi/uln/errors/index.ts","../src/generated/kinobi/uln/errors/uln.ts","../src/generated/kinobi/uln/instructions/index.ts","../src/generated/kinobi/uln/shared/index.ts","../src/generated/kinobi/uln/instructions/closeVerify.ts","../src/generated/kinobi/uln/instructions/commitVerification.ts","../src/generated/kinobi/uln/instructions/initConfig.ts","../src/generated/kinobi/uln/instructions/initDefaultConfig.ts","../src/generated/kinobi/uln/instructions/initUln.ts","../src/generated/kinobi/uln/instructions/initVerify.ts","../src/generated/kinobi/uln/instructions/quote.ts","../src/generated/kinobi/uln/instructions/send.ts","../src/generated/kinobi/uln/instructions/sendWithLzToken.ts","../src/generated/kinobi/uln/instructions/setConfig.ts","../src/generated/kinobi/uln/instructions/setDefaultConfig.ts","../src/generated/kinobi/uln/instructions/setTreasury.ts","../src/generated/kinobi/uln/instructions/transferAdmin.ts","../src/generated/kinobi/uln/instructions/verify.ts","../src/generated/kinobi/uln/instructions/version.ts","../src/generated/kinobi/uln/instructions/withdrawRent.ts","../src/generated/kinobi/uln/programs/uln.ts","../src/pricefeed.ts","../src/generated/kinobi/pricefeed/accounts/index.ts","../src/generated/kinobi/pricefeed/types/index.ts","../src/generated/kinobi/pricefeed/types/modelType.ts","../src/generated/kinobi/pricefeed/types/price.ts","../src/generated/kinobi/pricefeed/types/priceParams.ts","../src/generated/kinobi/pricefeed/accounts/priceFeed.ts","../src/generated/kinobi/pricefeed/errors/index.ts","../src/generated/kinobi/pricefeed/errors/pricefeed.ts","../src/generated/kinobi/pricefeed/instructions/index.ts","../src/generated/kinobi/pricefeed/shared/index.ts","../src/generated/kinobi/pricefeed/instructions/getFee.ts","../src/generated/kinobi/pricefeed/instructions/initPriceFeed.ts","../src/generated/kinobi/pricefeed/instructions/setPrice.ts","../src/generated/kinobi/pricefeed/instructions/setPriceFeed.ts","../src/generated/kinobi/pricefeed/instructions/setSolPrice.ts","../src/generated/kinobi/pricefeed/instructions/transferAdmin.ts","../src/generated/kinobi/pricefeed/programs/pricefeed.ts","../src/config.ts","../src/deployment.ts","../src/generated/kinobi/blocked_messagelib/index.ts","../src/generated/kinobi/blocked_messagelib/errors/blockedMessagelib.ts","../src/generated/kinobi/blocked_messagelib/shared/index.ts","../src/generated/kinobi/blocked_messagelib/instructions/version.ts","../src/generated/kinobi/blocked_messagelib/programs/blockedMessagelib.ts","../src/send-helper.ts","../src/index.ts"],"names":["publicKey","toPublicKey","mapSerializer","struct","bytes","u32","u8","publicKeySerializer","deserializeAccount","assertAccountExists","gpaBuilder","MessageLibType","u64","option","transactionBuilder","u16","bool","accounts_exports","errors_exports","InvalidAmountError","LzTokenUnavailableError","codeToErrorMap","nameToErrorMap","ProgramError","instructions_exports","getInitConfigInstructionDataSerializer","getQuoteInstructionDataSerializer","getSendInstructionDataSerializer","getSetConfigInstructionDataSerializer","getTransferAdminInstructionDataSerializer","initConfig","quote","send","setConfig","transferAdmin","getAccountMetasAndSigners","isSigner","types_exports","getMessagingFeeSerializer","defaultPublicKey","config","version","createNullRpc","createDefaultProgramRepository","PacketV1Codec","createNoopSigner","toWeb3JsPublicKey","events_exports","dvn_exports","array","dataEnum","tuple","VerificationState","scalarEnum","i64","isPda","keccak_256","adminConfig","addressToBytes32","deserializeNonce","fetchAllNonce","fetchNonce","getNonceAccountDataSerializer","getNonceGpaBuilder","getNonceSize","safeFetchAllNonce","safeFetchNonce","getAclSerializer","getDstConfigSerializer","getLzOptionSerializer","u128","ExecutionState","EidNotSupportedError","MsgLibNotAllowedError","NotAdminError","PausedError","TooManyAdminsError","TooManyOptionTypesError","MessageType","getLzReceiveParamsSerializer","getLzComposeParamsSerializer","ExecutorOptionType","getAdminTransferredEventSerializer","getRentWithdrawnEventSerializer","getPacketSerializer","getUlnConfigSerializer","getVersionSerializer","arrayify","invariant","toWeb3JsInstruction","deserializeReceiveConfig","fetchAllReceiveConfig","fetchReceiveConfig","getReceiveConfigAccountDataSerializer","getReceiveConfigGpaBuilder","safeFetchAllReceiveConfig","safeFetchReceiveConfig","InsufficientFeeError","InvalidConfigTypeError","InvalidLzTokenMintError","UnauthorizedError","getInitDefaultConfigInstructionDataSerializer","getInitVerifyInstructionDataSerializer","getSendWithLzTokenInstructionDataSerializer","getSetDefaultConfigInstructionDataSerializer","getVerifyInstructionDataSerializer","getVersionInstructionDataSerializer","getWithdrawRentInstructionDataSerializer","initDefaultConfig","initVerify","sendWithLzToken","setDefaultConfig","verify","withdrawRent","isSome","fromWeb3JsPublicKey","TOKEN_PROGRAM_ID","InvalidSizeError","expectPda","expectPublicKey","expectSome","web32","executor","SetConfigType"],"mappings":"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","file":"umi.mjs","sourcesContent":["import { Pda, PublicKey, defaultPublicKey, publicKeyBytes } from '@metaplex-foundation/umi'\nimport { Endian, u16, u32, u64 } from '@metaplex-foundation/umi/serializers'\nimport { createWeb3JsEddsa } from '@metaplex-foundation/umi-eddsa-web3js'\n\nexport const PEER_SEED = 'Peer'\n\nexport const MINT_SEED = 'Mint'\n\nexport const ENFORCED_OPTIONS_SEED = 'EnforcedOptions'\n\nexport const EDDSA = createWeb3JsEddsa()\n\n/**\n * derive address for endpoint program\n */\nexport class EndpointPDA {\n static ENDPOINT_SEED = 'Endpoint'\n static SEND_LIBRARY_CONFIG_SEED = 'SendLibraryConfig'\n static RECEIVE_LIBRARY_CONFIG_SEED = 'ReceiveLibraryConfig'\n static NONCE_SEED = 'Nonce'\n static PENDING_NONCE_SEED = 'PendingNonce'\n static OAPP_SEED = 'OApp'\n static PAYLOAD_HASH_SEED = 'PayloadHash'\n static COMPOSED_MESSAGE_HASH_SEED = 'ComposedMessageHash'\n\n program: PublicKey\n\n constructor(program: PublicKey) {\n this.program = program\n }\n\n setting(): Pda {\n return EDDSA.findPda(this.program, [Buffer.from(EndpointPDA.ENDPOINT_SEED, 'utf8')])\n }\n\n defaultSendLibraryConfig(dstEndpointId: number): Pda {\n return EDDSA.findPda(this.program, [\n Buffer.from(EndpointPDA.SEND_LIBRARY_CONFIG_SEED, 'utf8'),\n u32({ endian: Endian.Big }).serialize(dstEndpointId),\n // new BN(dstEndpointId).toArrayLike(Buffer, 'be', 4),\n ])\n }\n\n sendLibraryConfig(sender: PublicKey, dstEndpointId: number): Pda {\n return EDDSA.findPda(this.program, [\n Buffer.from(EndpointPDA.SEND_LIBRARY_CONFIG_SEED, 'utf8'),\n publicKeyBytes(sender),\n u32({ endian: Endian.Big }).serialize(dstEndpointId),\n // new BN(dstEndpointId).toArrayLike(Buffer, 'be', 4),\n ])\n }\n\n /**\n * @param messageLibrary PDA(derive by message lib program)\n */\n messageLibraryInfo(messageLibrary: PublicKey): Pda {\n return EDDSA.findPda(this.program, [\n Buffer.from(MessageLibPDA.MESSAGE_LIB_SEED, 'utf8'),\n publicKeyBytes(messageLibrary),\n ])\n }\n\n defaultReceiveLibraryConfig(srcEndpointId: number): Pda {\n return EDDSA.findPda(this.program, [\n Buffer.from(EndpointPDA.RECEIVE_LIBRARY_CONFIG_SEED, 'utf8'),\n u32({ endian: Endian.Big }).serialize(srcEndpointId),\n // new BN(srcEndpointId).toArrayLike(Buffer, 'be', 4),\n ])\n }\n\n receiveLibraryConfig(receiver: PublicKey, srcEndpointId: number): Pda {\n return EDDSA.findPda(this.program, [\n Buffer.from(EndpointPDA.RECEIVE_LIBRARY_CONFIG_SEED, 'utf8'),\n publicKeyBytes(receiver),\n u32({ endian: Endian.Big }).serialize(srcEndpointId),\n // new BN(srcEndpointId).toArrayLike(Buffer, 'be', 4),\n ])\n }\n\n receiveLibraryTimeout(_dstEndpointId: number): [PublicKey, number] {\n // todo: @zzz find the address of receive library timeout config\n // if it is default config, then get the address of default timeout config\n // otherwise, get the address of the custom one\n return [this.program, 0]\n }\n\n defaultMessageLib(): Pda {\n // return this.messageLibraryInfo(PublicKey.default)\n return this.messageLibraryInfo(defaultPublicKey())\n }\n\n blockMessageLib(blockMsgLib: PublicKey): Pda {\n return EDDSA.findPda(this.program, [\n Buffer.from(MessageLibPDA.MESSAGE_LIB_SEED, 'utf8'),\n publicKeyBytes(blockMsgLib),\n ])\n }\n\n /**\n * @param oapp\n * @param remoteChainId\n * @param remoteOapp\n */\n nonce(oapp: PublicKey, remoteChainId: number, remoteOapp: Uint8Array): Pda {\n return EDDSA.findPda(this.program, [\n Buffer.from(EndpointPDA.NONCE_SEED, 'utf8'),\n publicKeyBytes(oapp),\n u32({ endian: Endian.Big }).serialize(remoteChainId),\n // new BN(remoteChainId).toArrayLike(Buffer, 'be', 4),\n remoteOapp,\n ])\n }\n\n pendingNonce(oapp: PublicKey, remoteChainId: number, remoteOapp: Uint8Array): Pda {\n return EDDSA.findPda(this.program, [\n Buffer.from(EndpointPDA.PENDING_NONCE_SEED, 'utf8'),\n publicKeyBytes(oapp),\n u32({ endian: Endian.Big }).serialize(remoteChainId),\n remoteOapp,\n ])\n }\n\n oappRegistry(oapp: PublicKey): Pda {\n return EDDSA.findPda(this.program, [Buffer.from(EndpointPDA.OAPP_SEED, 'utf8'), publicKeyBytes(oapp)])\n }\n\n /***\n * @param receiver\n * @param srcEid\n * @param sender\n * @param nonce\n * @param payloadHash\n * @srcChainId u32 to big endian Uint8Array\n * @sender [u8; 32] sender Address\n * @nonce u64 to big endian Uint8Array\n * @payloadHash [u8; 32]\n */\n payloadHash(receiver: PublicKey, srcEid: number, sender: Uint8Array, nonce: number | bigint): Pda {\n return EDDSA.findPda(this.program, [\n Buffer.from(EndpointPDA.PAYLOAD_HASH_SEED, 'utf8'),\n publicKeyBytes(receiver),\n u32({ endian: Endian.Big }).serialize(srcEid),\n sender,\n u64({ endian: Endian.Big }).serialize(nonce),\n ])\n }\n\n composedMessage(from: PublicKey, guid: Uint8Array, index: number, to: PublicKey, messageHash: Uint8Array): Pda {\n return EDDSA.findPda(\n this.program,\n [\n Buffer.from(EndpointPDA.COMPOSED_MESSAGE_HASH_SEED, 'utf8'),\n publicKeyBytes(from),\n publicKeyBytes(to),\n guid,\n u16({ endian: Endian.Big }).serialize(index),\n messageHash,\n ]\n // this.program\n )\n }\n}\n\n/***\n * derive address by message lib program\n */\nexport class MessageLibPDA {\n static SEND_CONFIG_SEED = 'SendConfig'\n static RECEIVE_CONFIG_SEED = 'ReceiveConfig'\n static MESSAGE_LIB_SEED = 'MessageLib'\n\n program: PublicKey\n\n constructor(program: PublicKey) {\n this.program = program\n }\n\n messageLib(): Pda {\n return EDDSA.findPda(this.program, [Buffer.from(MessageLibPDA.MESSAGE_LIB_SEED, 'utf8')])\n }\n\n sendConfig(eid: number, oapp: PublicKey): Pda {\n return EDDSA.findPda(this.program, [\n Buffer.from(MessageLibPDA.SEND_CONFIG_SEED, 'utf8'),\n u32({ endian: Endian.Big }).serialize(eid),\n publicKeyBytes(oapp),\n // oapp.toBuffer(),\n ])\n }\n\n receiveConfig(eid: number, oapp: PublicKey): Pda {\n return EDDSA.findPda(this.program, [\n Buffer.from(MessageLibPDA.RECEIVE_CONFIG_SEED, 'utf8'),\n u32({ endian: Endian.Big }).serialize(eid),\n publicKeyBytes(oapp),\n ])\n }\n}\n\nexport class UlnPDA extends MessageLibPDA {\n static ULN_SEED = MessageLibPDA.MESSAGE_LIB_SEED\n static ULN_CONFIG_SEED = 'UlnConfig'\n static OPTIONS_SEED = 'Options'\n static CONFIRMATIONS_SEED = 'Confirmations'\n static WORKER_SEED = 'Worker'\n\n setting(): Pda {\n return EDDSA.findPda(this.program, [Buffer.from(UlnPDA.ULN_SEED, 'utf8')])\n }\n\n config(eid: number): Pda {\n return EDDSA.findPda(this.program, [\n Buffer.from(UlnPDA.ULN_CONFIG_SEED, 'utf8'),\n u32({ endian: Endian.Big }).serialize(eid),\n ])\n }\n\n defaultSendConfig(eid: number): Pda {\n return EDDSA.findPda(this.program, [\n Buffer.from(MessageLibPDA.SEND_CONFIG_SEED, 'utf8'),\n u32({ endian: Endian.Big }).serialize(eid),\n ])\n }\n\n defaultReceiveConfig(eid: number): Pda {\n return EDDSA.findPda(this.program, [\n Buffer.from(MessageLibPDA.RECEIVE_CONFIG_SEED, 'utf8'),\n u32({ endian: Endian.Big }).serialize(eid),\n ])\n }\n\n options(eit: number): Pda {\n return EDDSA.findPda(this.program, [\n Buffer.from(UlnPDA.OPTIONS_SEED, 'utf8'),\n u32({ endian: Endian.Big }).serialize(eit),\n ])\n }\n\n workerConfig(worker: PublicKey): Pda {\n return EDDSA.findPda(this.program, [Buffer.from(UlnPDA.WORKER_SEED, 'utf8'), publicKeyBytes(worker)])\n }\n\n confirmations(headerHash: Uint8Array, payloadHash: Uint8Array, dvn: PublicKey): Pda {\n return EDDSA.findPda(this.program, [\n Buffer.from(UlnPDA.CONFIRMATIONS_SEED, 'utf8'),\n headerHash,\n payloadHash,\n publicKeyBytes(dvn),\n ])\n }\n}\n\n/**\n * derive address by base oapp program\n */\nexport class OmniAppPDA {\n static REMOTE_SEED = 'Remote'\n static LZ_RECEIVE_TYPES_SEED = 'LzReceiveTypes'\n static LZ_COMPOSE_TYPES_SEED = 'LzComposeTypes'\n\n constructor(public readonly programId: PublicKey) {}\n\n oapp(): Pda {\n throw new Error('Method not implemented.')\n }\n\n lzReceiveTypesAccounts(receiver?: PublicKey): Pda {\n return EDDSA.findPda(this.programId, [\n Buffer.from(OmniAppPDA.LZ_RECEIVE_TYPES_SEED, 'utf8'),\n publicKeyBytes(receiver ?? this.oapp()[0]),\n ])\n }\n\n lzComposeTypesAccounts(to?: PublicKey): Pda {\n return EDDSA.findPda(this.programId, [\n Buffer.from(OmniAppPDA.LZ_COMPOSE_TYPES_SEED, 'utf8'),\n publicKeyBytes(to ?? this.oapp()[0]),\n ])\n }\n}\n\nexport class DvnPDA {\n static DVN_CONFIG_SEED = 'DvnConfig'\n\n constructor(public program: PublicKey) {}\n\n authority(): Pda {\n return EDDSA.findPda(this.program, [Buffer.from('dvn', 'utf8')])\n }\n\n config(): Pda {\n return EDDSA.findPda(this.program, [Buffer.from(DvnPDA.DVN_CONFIG_SEED, 'utf8')])\n }\n\n executeHash(digestHash: Buffer): Pda {\n return EDDSA.findPda(this.program, [Buffer.from('ExecuteHash', 'utf8'), digestHash])\n }\n}\n\nexport class EventPDA {\n static EVENT_SEED = '__event_authority'\n\n constructor(public program: PublicKey) {}\n\n eventAuthority(): Pda {\n return EDDSA.findPda(this.program, [Buffer.from(EventPDA.EVENT_SEED, 'utf8')])\n }\n}\n\nexport class ExecutorPDA {\n static EXECUTOR_CONFIG_SEED = 'ExecutorConfig'\n\n constructor(public program: PublicKey) {}\n\n config(): Pda {\n return EDDSA.findPda(this.program, [Buffer.from(ExecutorPDA.EXECUTOR_CONFIG_SEED, 'utf8')])\n }\n}\n\nexport class PriceFeedPDA {\n static PRICE_FEED_SEED = 'PriceFeed'\n\n constructor(public program: PublicKey) {}\n\n priceFeed(): Pda {\n return EDDSA.findPda(this.program, [Buffer.from(PriceFeedPDA.PRICE_FEED_SEED, 'utf8')])\n }\n}\n","import {\n AccountMeta,\n Cluster,\n ClusterFilter,\n Commitment,\n Program,\n ProgramError,\n ProgramRepositoryInterface,\n PublicKey,\n RpcInterface,\n Signer,\n TransactionBuilder,\n WrappedInstruction,\n createNoopSigner,\n createNullRpc,\n defaultPublicKey,\n isSome,\n publicKey,\n some,\n} from '@metaplex-foundation/umi'\nimport { createDefaultProgramRepository } from '@metaplex-foundation/umi-program-repository'\nimport { toWeb3JsPublicKey } from '@metaplex-foundation/umi-web3js-adapters'\nimport { TransactionInstruction } from '@solana/web3.js'\n\nimport { keccak_256 } from '@layerzerolabs/lz-foundation'\nimport { arrayify } from '@layerzerolabs/lz-utilities'\nimport { PacketV1Codec, addressToBytes32 } from '@layerzerolabs/lz-v2-utilities'\n\nimport {\n MessageLibInterface,\n SetConfigType,\n SimpleMessageLibProgram,\n SolanaPacketPath,\n UlnProgram,\n simulateWeb3JsTransaction,\n} from '.'\nimport { ENDPOINT_PROGRAM_ID } from './generated/kinobi/endpoint'\nimport * as accounts from './generated/kinobi/endpoint/accounts'\nimport * as errors from './generated/kinobi/endpoint/errors'\nimport * as events from './generated/kinobi/endpoint/events'\nimport * as instructions from './generated/kinobi/endpoint/instructions'\nimport * as types from './generated/kinobi/endpoint/types'\nimport { SIMPLE_MESSAGELIB_PROGRAM_ID, Version } from './generated/kinobi/simple_messagelib'\nimport { EndpointPDA, EventPDA, MessageLibPDA } from './pda'\n\nexport { accounts, instructions, types, events, errors }\nexport { ENDPOINT_PROGRAM_ID } from './generated/kinobi/endpoint'\n\n// https://github.com/coral-xyz/anchor/blob/c7ccbb8f620aed3ffecf8ab2f9c9007946f0f5cc/lang/src/event.rs#L2\nexport const EventEmitDiscriminator = 'e445a52e51cb9a1d' // Sha256(anchor:event)[..8] then evert\n\nexport const DefaultMessageLib = defaultPublicKey() // [0u8; 32]\n\n/**\n * Class representing an Endpoint.\n */\nexport class Endpoint {\n public readonly pda: EndpointPDA\n public readonly eventAuthority: PublicKey\n public readonly programRepo: ProgramRepositoryInterface\n\n constructor(\n public programId: PublicKey = ENDPOINT_PROGRAM_ID,\n rpc?: RpcInterface\n ) {\n this.pda = new EndpointPDA(programId)\n if (rpc === undefined) {\n rpc = createNullRpc()\n rpc.getCluster = (): Cluster => 'custom'\n }\n this.programRepo = createDefaultProgramRepository({ rpc: rpc }, [\n {\n name: 'endpoint',\n publicKey: programId,\n getErrorFromCode(code: number, cause?: Error): ProgramError | null {\n return errors.getEndpointErrorFromCode(code, this, cause)\n },\n getErrorFromName(name: string, cause?: Error): ProgramError | null {\n return errors.getEndpointErrorFromName(name, this, cause)\n },\n isOnCluster(): boolean {\n return true\n },\n } satisfies Program,\n ])\n this.eventAuthority = new EventPDA(programId).eventAuthority()[0]\n }\n\n getProgram(clusterFilter: ClusterFilter = 'custom'): Program {\n return this.programRepo.get('endpoint', clusterFilter)\n }\n\n /**\n * Initializes the endpoint settings, including eid and admin, and registers the blocked message library.\n *\n * @param {number} endpointId - The endpoint ID.\n * @param {PublicKey} payer - The payer public key.\n * @param {PublicKey} admin - The admin public key.\n * @returns {TransactionInstruction} The transaction instruction.\n */\n initEndpoint(payer: Signer, params: { eid: number; admin: PublicKey }): WrappedInstruction {\n const txBuilder = instructions.initEndpoint(\n {\n programs: this.programRepo,\n payer,\n },\n {\n payer,\n endpoint: this.pda.setting(),\n eid: params.eid,\n admin: params.admin,\n }\n )\n return txBuilder.items[0]\n }\n\n /**\n * Registers a library.\n * call this function after endpoint initialized. Only admin can call this function.\n *\n * @param {PublicKey} admin - The admin public key.\n * @param {PublicKey} messageLibProgram - The message library program public key.\n * @param {types.MessageLibType} [libType=types.MessageLibType.SendAndReceive] - The library type.\n * @returns {TransactionInstruction} The transaction instruction.\n */\n registerLibrary(\n admin: Signer,\n params: { messageLibProgram: PublicKey; libType?: types.MessageLibType }\n ): WrappedInstruction {\n const [msgLib] = new MessageLibPDA(params.messageLibProgram).messageLib()\n return instructions.registerLibrary(\n {\n programs: this.programRepo,\n },\n {\n admin,\n endpoint: this.pda.setting(),\n messageLibInfo: this.pda.messageLibraryInfo(msgLib),\n eventAuthority: this.eventAuthority,\n program: this.programId,\n libProgram: params.messageLibProgram,\n libType: params.libType ?? types.MessageLibType.SendAndReceive,\n }\n ).items[0]\n }\n\n /**\n * Sets the default send library for a given remote endpoint.\n * This function configures the default message library for sending messages to a specified remote endpoint.\n * It requires administrative privileges to execute.\n *\n * @param {RpcInterface} rpc - The connection to the Solana cluster.\n * @param {Signer} admin - The admin public key.\n * @param {PublicKey} messageLibProgram - The message library program public key.\n * @param {number} dstEid - The destination endpoint ID.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment level or account info configuration.\n * @returns {Promise<TransactionInstruction | null>} A promise that resolves to the transaction instruction or null if not needed.\n * This method initializes or updates the default send library configuration for a specified remote endpoint.\n * If the configuration does not exist, it initializes it. Otherwise, it updates the existing configuration.\n */\n async setDefaultSendLibrary(\n rpc: RpcInterface,\n admin: Signer,\n params: { messageLibProgram: PublicKey; remote: number }\n ): Promise<WrappedInstruction> {\n const [msgLib] = new MessageLibPDA(params.messageLibProgram).messageLib()\n const [defaultSendLibConfig] = this.pda.defaultSendLibraryConfig(params.remote)\n const [setting] = this.pda.setting()\n const [msgLibInfo] = this.pda.messageLibraryInfo(msgLib)\n\n const defaultSendLibConfigInfo = await rpc.getAccount(defaultSendLibConfig, {\n commitment: 'confirmed',\n })\n let txBuilder: TransactionBuilder\n if (!defaultSendLibConfigInfo.exists) {\n txBuilder = instructions.initDefaultSendLibrary(\n { programs: this.programRepo },\n {\n admin,\n endpoint: setting,\n defaultSendLibraryConfig: defaultSendLibConfig,\n messageLibInfo: msgLibInfo,\n program: this.programId,\n eventAuthority: this.eventAuthority,\n // params\n eid: params.remote,\n newLib: msgLib,\n }\n )\n } else {\n // need to check if the new lib is the same as the current one\n // if (defaultSendLibConfigInfo.messageLib === msgLib) {\n // return null\n // }\n txBuilder = instructions.setDefaultSendLibrary(\n {\n programs: this.programRepo,\n },\n {\n admin,\n endpoint: setting,\n defaultSendLibraryConfig: defaultSendLibConfig,\n messageLibInfo: msgLibInfo,\n program: this.programId,\n eventAuthority: this.eventAuthority,\n // params\n eid: params.remote,\n newLib: msgLib,\n }\n )\n }\n return txBuilder.items[0]\n }\n\n /**\n * Sets the default receive library for a given endpoint.\n * This function configures the default message library for receiving messages at a specified endpoint.\n * It requires administrative privileges to execute.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} admin - The admin public key.\n * @param {PublicKey} messageLibProgram - The message library program public key.\n * @param {number} srcEid - The source endpoint ID.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment level or account info configuration.\n * @returns {Promise<TransactionInstruction | null>} A promise that resolves to the transaction instruction or null if not needed.\n * This method initializes or updates the default receive library configuration for a specified remote endpoint.\n * If the configuration does not exist, it initializes it. Otherwise, it updates the existing configuration.\n */\n async setDefaultReceiveLibrary(\n rpc: RpcInterface,\n admin: Signer,\n params: { messageLibProgram: PublicKey; remote: number; gracePeriod?: bigint | number }\n ): Promise<WrappedInstruction> {\n const [msgLib] = new MessageLibPDA(params.messageLibProgram).messageLib()\n const [defaultReceiveLibConfig] = this.pda.defaultReceiveLibraryConfig(params.remote)\n const [setting] = this.pda.setting()\n const [defaultMsgLibInfo] = this.pda.messageLibraryInfo(msgLib)\n const defaultReceiveLibConfigInfo = await rpc.getAccount(defaultReceiveLibConfig, { commitment: 'confirmed' })\n let txBuilder: TransactionBuilder\n if (!defaultReceiveLibConfigInfo.exists) {\n txBuilder = instructions.initDefaultReceiveLibrary(\n { programs: this.programRepo },\n {\n admin,\n endpoint: setting,\n defaultReceiveLibraryConfig: defaultReceiveLibConfig,\n messageLibInfo: defaultMsgLibInfo,\n program: this.programId,\n eventAuthority: this.eventAuthority,\n // param\n eid: params.remote,\n newLib: msgLib,\n }\n )\n } else {\n // need to check if the new lib is the same as the current one\n // if (defaultReceiveLibConfigInfo.messageLib === msgLib) {\n // return null\n // }\n txBuilder = instructions.setDefaultReceiveLibrary(\n { programs: this.programRepo },\n {\n admin,\n endpoint: setting,\n defaultReceiveLibraryConfig: defaultReceiveLibConfig,\n messageLibInfo: defaultMsgLibInfo,\n program: this.programId,\n eventAuthority: this.eventAuthority,\n\n // param\n eid: params.remote,\n newLib: msgLib,\n gracePeriod: params.gracePeriod ?? 0,\n }\n )\n }\n return txBuilder.items[0]\n }\n\n /**\n * Sets the default receive library timeout for a given message library program and remote endpoint.\n *\n * @param admin - The signer who has administrative privileges to set the timeout.\n * @param param - An object containing the following properties:\n * @param param.msgLibProgram - The public key of the message library program.\n * @param param.remote - The remote endpoint identifier.\n * @param param.expiry - The expiry time for the timeout, can be a bigint or number.\n * @returns A WrappedInstruction object representing the instruction to set the default receive library timeout.\n */\n setDefaultReceiveLibraryTimeout(\n admin: Signer,\n params: { msgLibProgram: PublicKey; remote: number; expiry: bigint | number }\n ): WrappedInstruction {\n const [msgLib] = new MessageLibPDA(params.msgLibProgram).messageLib()\n return instructions.setDefaultReceiveLibraryTimeout(\n { programs: this.programRepo },\n {\n admin,\n endpoint: this.pda.setting(),\n program: this.programId,\n eventAuthority: this.eventAuthority,\n defaultReceiveLibraryConfig: this.pda.defaultReceiveLibraryConfig(params.remote),\n messageLibInfo: this.pda.messageLibraryInfo(msgLib),\n // param\n eid: params.remote,\n lib: msgLib,\n expiry: params.expiry,\n }\n ).items[0]\n }\n\n setLzToken(admin: Signer, lzToken: PublicKey | null): WrappedInstruction {\n return instructions.setLzToken(\n { programs: this.programRepo },\n {\n admin: admin,\n endpoint: this.pda.setting(),\n eventAuthority: this.eventAuthority,\n program: this.programId,\n lzToken: lzToken == null ? null : some(lzToken),\n }\n ).items[0]\n }\n\n withdrawRent(admin: Signer, params: { amount: bigint; receiver: PublicKey }): WrappedInstruction {\n const { amount, receiver } = params\n return instructions.withdrawRent(\n { programs: this.programRepo },\n {\n admin: admin,\n endpoint: this.pda.setting(),\n eventAuthority: this.eventAuthority,\n program: this.programId,\n // param\n amount,\n receiver,\n }\n ).items[0]\n }\n\n /**\n * Initializes the OApp configuration.\n *\n * @param accounts - The accounts object.\n * @param accounts.delegate - The delegate public key.\n * @param accounts.payer - The payer public key.\n * @param params - The parameters object.\n * @param params.msgLibSDK - The message library SDK.\n * @param params.oapp - The OApp ID public key.\n * @param params.remote - The endpoint ID.\n * @returns A WrappedInstruction object representing the instruction to initialize the OApp configuration.\n */\n initOAppConfig(\n accounts: { delegate: Signer; payer: PublicKey },\n params: {\n msgLibSDK: MessageLibInterface\n oapp: PublicKey // this is the PDA of the oapp\n remote: number\n }\n ): WrappedInstruction {\n const [msgLib] = new MessageLibPDA(params.msgLibSDK.programId).messageLib()\n // if (!(await uln.getOappConfig(connection, oappID, eid, commitmentOrConfig))) {\n // init oapp config\n const txBuilder = instructions.initConfig(\n { programs: this.programRepo },\n {\n delegate: accounts.delegate,\n oappRegistry: this.pda.oappRegistry(params.oapp),\n messageLib: msgLib,\n messageLibInfo: this.pda.messageLibraryInfo(msgLib),\n messageLibProgram: params.msgLibSDK.programId,\n // param\n eid: params.remote,\n oapp: params.oapp,\n }\n )\n return txBuilder.addRemainingAccounts(\n params.msgLibSDK.getInitConfigIXAccountMetaForCPI(accounts.payer, params.oapp, params.remote)\n ).items[0]\n }\n\n /**\n * Initializes the OApp nonce.\n *\n * @param {PublicKey} delegate - The delegate public key.\n * @param {number} dstEid - The destination endpoint ID.\n * @param {PublicKey} oappIDPDA - The OApp ID PDA.\n * @param {Uint8Array} remoteOappAddr - The remote OApp address.\n * @returns {TransactionInstruction} The transaction instruction.\n */\n initOAppNonce(\n delegate: Signer, // the delegate of the oapp\n params: {\n localOApp: PublicKey\n remote: number\n remoteOApp: Uint8Array\n }\n ): WrappedInstruction {\n const txBuilder = instructions.initNonce(\n { programs: this.programRepo },\n {\n nonce: this.pda.nonce(params.localOApp, params.remote, params.remoteOApp),\n pendingInboundNonce: this.pda.pendingNonce(params.localOApp, params.remote, params.remoteOApp),\n oappRegistry: this.pda.oappRegistry(params.localOApp),\n delegate: delegate,\n // param\n localOapp: params.localOApp,\n remoteOapp: params.remoteOApp,\n remoteEid: params.remote,\n }\n )\n return txBuilder.items[0]\n }\n\n initOAppSendLibrary(delegate: Signer, params: { sender: PublicKey; remote: number }): WrappedInstruction {\n return instructions.initSendLibrary(\n { programs: this.programRepo },\n {\n delegate: delegate,\n oappRegistry: this.pda.oappRegistry(params.sender),\n sendLibraryConfig: this.pda.sendLibraryConfig(params.sender, params.remote),\n // param\n sender: params.sender,\n eid: params.remote,\n }\n ).items[0]\n }\n\n setOAppSendLibrary(\n delegate: Signer,\n params: { sender: PublicKey; remote: number; msgLibProgram: PublicKey }\n ): WrappedInstruction {\n const { sender, remote, msgLibProgram } = params\n const [newSendLib] = new MessageLibPDA(msgLibProgram).messageLib()\n return instructions.setSendLibrary(\n { programs: this.programRepo },\n {\n signer: delegate,\n sendLibraryConfig: this.pda.sendLibraryConfig(sender, remote),\n messageLibInfo:\n msgLibProgram === DefaultMessageLib ? undefined : this.pda.messageLibraryInfo(newSendLib),\n oappRegistry: this.pda.oappRegistry(sender),\n program: this.programId,\n eventAuthority: this.eventAuthority,\n //param\n sender: sender,\n eid: remote,\n newLib: msgLibProgram === DefaultMessageLib ? DefaultMessageLib : newSendLib,\n }\n ).items[0]\n }\n\n initOAppReceiveLibrary(delegate: Signer, params: { receiver: PublicKey; remote: number }): WrappedInstruction {\n const { receiver, remote } = params\n return instructions.initReceiveLibrary(\n { programs: this.programRepo },\n {\n delegate: delegate,\n oappRegistry: this.pda.oappRegistry(receiver),\n receiveLibraryConfig: this.pda.receiveLibraryConfig(receiver, remote),\n // param\n receiver: receiver,\n eid: remote,\n }\n ).items[0]\n }\n\n setOAppReceiveLibrary(\n delegate: Signer,\n params: { receiver: PublicKey; remote: number; msgLibProgram: PublicKey; gracePeriod?: bigint | number }\n ): WrappedInstruction {\n const { receiver, remote, msgLibProgram, gracePeriod } = params\n const [newReceiveLib] = new MessageLibPDA(msgLibProgram).messageLib()\n return instructions.setReceiveLibrary(\n { programs: this.programRepo },\n {\n signer: delegate,\n receiveLibraryConfig: this.pda.receiveLibraryConfig(receiver, remote),\n messageLibInfo:\n msgLibProgram === DefaultMessageLib ? undefined : this.pda.messageLibraryInfo(newReceiveLib),\n oappRegistry: this.pda.oappRegistry(receiver),\n program: this.programId,\n eventAuthority: this.eventAuthority,\n // param\n receiver: receiver,\n eid: remote,\n newLib: msgLibProgram === DefaultMessageLib ? DefaultMessageLib : newReceiveLib,\n gracePeriod: gracePeriod ?? 0,\n }\n ).items[0]\n }\n\n setOAppReceiveLibraryTimeout(\n delegate: Signer,\n params: { receiver: PublicKey; msgLibProgram: PublicKey; remote: number; expiry: bigint | number }\n ): WrappedInstruction {\n const { receiver, remote, msgLibProgram, expiry } = params\n const [receiveLib] = new MessageLibPDA(msgLibProgram).messageLib()\n return instructions.setReceiveLibraryTimeout(\n { programs: this.programRepo },\n {\n signer: delegate,\n oappRegistry: this.pda.oappRegistry(receiver),\n receiveLibraryConfig: this.pda.receiveLibraryConfig(receiver, remote),\n messageLibInfo: this.pda.messageLibraryInfo(receiveLib),\n eventAuthority: this.eventAuthority,\n program: this.programId,\n // param\n receiver: receiver,\n eid: remote,\n lib: receiveLib,\n expiry,\n }\n ).items[0]\n }\n\n async setOAppConfig(\n rpc: RpcInterface,\n delegate: Signer,\n params: {\n oapp: PublicKey // this is the PDA of the oapp\n eid: number\n config: {\n configType: SetConfigType\n value: UlnProgram.types.ExecutorConfig | UlnProgram.types.UlnConfig\n }\n msgLibProgram: PublicKey\n msgLibVersion?: Version\n },\n commitment: Commitment = 'confirmed'\n ): Promise<WrappedInstruction> {\n const { oapp, eid, config, msgLibProgram } = params\n const [msgLib] = new MessageLibPDA(msgLibProgram).messageLib()\n\n const msgLibVersion =\n params.msgLibVersion ??\n (await this.getMessageLibVersion(rpc, delegate.publicKey, msgLibProgram, commitment))\n let msgLibClient: MessageLibInterface\n if (msgLibVersion.major === 0n && msgLibVersion.minor == 0 && msgLibVersion.endpointVersion == 2) {\n msgLibClient = new SimpleMessageLibProgram.SimpleMessageLib(msgLibProgram)\n } else if (msgLibVersion.major === 3n && msgLibVersion.minor == 0 && msgLibVersion.endpointVersion == 2) {\n msgLibClient = new UlnProgram.Uln(msgLibProgram)\n } else {\n throw new Error(\n `unsupported message lib version ${msgLibVersion.major.toString()}.${msgLibVersion.minor.toString()}`\n )\n }\n\n const txBuilder = instructions.setConfig(\n { programs: this.programRepo },\n {\n signer: delegate,\n messageLibInfo: this.pda.messageLibraryInfo(msgLib),\n messageLib: msgLib,\n messageLibProgram: msgLibProgram,\n oappRegistry: this.pda.oappRegistry(oapp),\n // param\n eid,\n configType: config.configType,\n config:\n msgLibProgram === SIMPLE_MESSAGELIB_PROGRAM_ID\n ? new Uint8Array(10).fill(0)\n : UlnProgram.Uln.constructSetConfigData(config.configType, config.value),\n oapp: oapp,\n }\n )\n return txBuilder.addRemainingAccounts(msgLibClient.getSetConfigIXAccountMetaForCPI(oapp, eid)).items[0]\n }\n\n oAppNilify(delegate: Signer, args: instructions.NilifyInstructionArgs): WrappedInstruction {\n const { receiver, srcEid, sender, nonce } = args\n return instructions.nilify(\n { programs: this.programRepo },\n {\n signer: delegate,\n eventAuthority: this.eventAuthority,\n program: this.programId,\n oappRegistry: this.pda.oappRegistry(receiver),\n nonce: this.pda.nonce(receiver, srcEid, sender),\n pendingInboundNonce: this.pda.pendingNonce(receiver, srcEid, sender),\n payloadHash: this.pda.payloadHash(receiver, srcEid, sender, nonce),\n },\n args\n ).items[0]\n }\n\n oAppBurnNonce(delegate: Signer, args: instructions.BurnInstructionArgs): WrappedInstruction {\n const { receiver, srcEid, sender, nonce } = args\n return instructions.burn(\n { programs: this.programRepo },\n {\n signer: delegate,\n eventAuthority: this.eventAuthority,\n program: this.programId,\n oappRegistry: this.pda.oappRegistry(receiver),\n nonce: this.pda.nonce(receiver, srcEid, sender),\n payloadHash: this.pda.payloadHash(receiver, srcEid, sender, nonce),\n endpoint: this.pda.setting(),\n },\n args\n ).items[0]\n }\n\n /// send a simulated transaction to the endpoint to get the fee for sending a message\n /**\n *\n * Gets the account metadata for the CPI (Cross-Program Invocation) of the quote instruction.\n *\n * caculate the fee for sending a message with ULN:\n * 1. executorFee: feeForGas + feeForOptionType\n * * feeForGas: ((gas + gasForCalldata) * gasPriceInUnit * priceRatio / priceRatioDenominator) * multiplier_bps / 10000\n * * feeForOptionType: nativeDrop/lzReceive/lzCompose\n * 2. oracleFee: feeForGas\n * * feeForGas: same above\n *\n * The priceRatioDenominator is 10^20\n * totalFee = executorFee + oracleFee * numOracles(requiredOracles + optionalOracles)\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} payer - The payer public key.\n * @param {PacketPath} path - The packet path.\n * @param {MessageLibInterface} msgLibProgram - The message library program.\n * @returns {Promise<AccountMeta[]>} A promise that resolves to an array of account metadata.\n * @throws {Error} If the default send library is not initialized or the message library is blocked.\n */\n async getQuoteIXAccountMetaForCPI(\n rpc: RpcInterface,\n payer: PublicKey,\n params: {\n path: SolanaPacketPath\n msgLibProgram: MessageLibInterface\n },\n commitment: Commitment = 'confirmed'\n ): Promise<AccountMeta[]> {\n const { path, msgLibProgram } = params\n const { sender, dstEid, receiver } = path\n const sendLibInfo = await this.getSendLibrary(rpc, sender, dstEid, commitment)\n if (!sendLibInfo.programId) {\n throw new Error('default send library not initialized or blocked message lib')\n }\n const { msgLib, programId: owner } = sendLibInfo\n const txBuilder = instructions.quote(\n { programs: this.programRepo },\n {\n sendLibraryConfig: this.pda.sendLibraryConfig(sender, dstEid),\n sendLibraryProgram: owner,\n defaultSendLibraryConfig: this.pda.defaultSendLibraryConfig(dstEid),\n endpoint: this.pda.setting(),\n nonce: this.pda.nonce(sender, dstEid, receiver),\n sendLibraryInfo: this.pda.messageLibraryInfo(msgLib),\n\n // param\n sender: defaultPublicKey(),\n dstEid: 0,\n receiver: new Uint8Array(32),\n message: new Uint8Array(32),\n options: new Uint8Array(32),\n payInLzToken: false,\n }\n )\n const remainingAccounts = await msgLibProgram.getQuoteIXAccountMetaForCPI(rpc, payer, path)\n return [\n { pubkey: this.programId, isSigner: false, isWritable: false },\n ...txBuilder.addRemainingAccounts(remainingAccounts).getInstructions()[0].keys,\n ]\n }\n\n /**\n * Gets the account metadata for the CPI (Cross-Program Invocation) of the send instruction.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} payer - The payer public key.\n * @param {PacketPath} path - The packet path.\n * @param {MessageLibInterface} msgLibProgram - The message library program.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment level or account info configuration.\n * @returns {Promise<AccountMeta[]>} A promise that resolves to an array of account metadata.\n * @throws {Error} If the default send library is not initialized or the message library is blocked.\n */\n async getSendIXAccountMetaForCPI(\n rpc: RpcInterface,\n payerOrAccounts: PublicKey | { payer: PublicKey; tokenMint: PublicKey; tokenSource: PublicKey },\n params: {\n path: SolanaPacketPath\n msgLibProgram: MessageLibInterface\n tokenProgram?: PublicKey\n associatedTokenProgram?: PublicKey\n },\n commitment: Commitment = 'confirmed'\n ): Promise<AccountMeta[]> {\n const { path, msgLibProgram } = params\n const { sender, dstEid, receiver } = path\n const info = await this.getSendLibrary(rpc, sender, dstEid, commitment)\n if (!info.programId) {\n throw new Error('default send library not initialized or blocked message lib')\n }\n const sendLibrary = info.msgLib\n const txBuilder = instructions.send(\n { programs: this.programRepo },\n {\n sender: createNoopSigner(sender),\n /// this account should be derived from message lib\n sendLibraryProgram: info.programId,\n sendLibraryConfig: this.pda.sendLibraryConfig(sender, dstEid),\n defaultSendLibraryConfig: this.pda.defaultSendLibraryConfig(dstEid),\n sendLibraryInfo: this.pda.messageLibraryInfo(sendLibrary),\n endpoint: this.pda.setting(),\n program: this.programId,\n nonce: this.pda.nonce(sender, dstEid, receiver),\n eventAuthority: this.eventAuthority,\n\n // param\n dstEid: 0,\n receiver: new Uint8Array(32),\n message: new Uint8Array(32),\n options: new Uint8Array(32),\n nativeFee: 0,\n lzTokenFee: 0,\n }\n )\n let remainingAccounts\n if (typeof payerOrAccounts === 'object') {\n remainingAccounts = await msgLibProgram.getSendWithLzTokenIXAccountMetaForCPI(\n rpc,\n payerOrAccounts,\n path,\n {\n tokenProgram: params.tokenProgram,\n associatedTokenProgram: params.associatedTokenProgram,\n },\n commitment\n )\n } else {\n remainingAccounts = await msgLibProgram.getSendIXAccountMetaForCPI(rpc, payerOrAccounts, path)\n }\n\n return [\n { pubkey: this.programId, isSigner: false, isWritable: false },\n ...txBuilder\n .addRemainingAccounts(remainingAccounts)\n .getInstructions()[0]\n .keys.map((key) => {\n key.isSigner = false\n return key\n }),\n ]\n }\n\n /**\n * Skips a message.\n *\n * @param {PublicKey} payer - The payer public key.\n * @param {PublicKey} sender - The sender public key.\n * @param {PublicKey} receiver - The receiver public key.\n * @param {number} srcEid - The source endpoint ID.\n * @param {string} nonce - The nonce.\n * @returns {Promise<TransactionInstruction | null>} A promise that resolves to the transaction instruction or null if not needed.\n */\n skip(payer: Signer, params: instructions.SkipInstructionDataArgs): WrappedInstruction {\n const { sender, receiver, srcEid, nonce } = params\n // get the delegate from endpoint\n return instructions.skip(\n { programs: this.programRepo },\n {\n signer: payer,\n oappRegistry: this.pda.oappRegistry(receiver),\n nonce: this.pda.nonce(receiver, srcEid, sender),\n pendingInboundNonce: this.pda.pendingNonce(receiver, srcEid, sender),\n payloadHash: this.pda.payloadHash(receiver, srcEid, sender, nonce),\n endpoint: this.pda.setting()[0],\n eventAuthority: this.eventAuthority,\n program: this.programId,\n },\n params\n ).items[0]\n }\n\n /**\n * Initializes the verification process.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} payer - The payer public key.\n * @param {PublicKey} sender - The sender public key.\n * @param {PublicKey} receiver - The receiver public key.\n * @param {number} srcEid - The source endpoint ID.\n * @param {string} nonce - The nonce.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment level or account info configuration.\n * @returns {Promise<TransactionInstruction | null>} A promise that resolves to the transaction instruction or null if not needed.\n */\n initVerify(payer: Signer, params: instructions.InitVerifyInstructionArgs): WrappedInstruction {\n const { sender, receiver, srcEid, nonce } = params\n\n return instructions.initVerify(\n { programs: this.programRepo, payer },\n {\n payer,\n nonce: this.pda.nonce(receiver, srcEid, sender),\n payloadHash: this.pda.payloadHash(receiver, srcEid, sender, parseInt(nonce.toString())),\n },\n params\n ).items[0]\n }\n\n /**\n * Gets the account metadata for the CPI (Cross-Program Invocation) of the verify instruction.\n *\n * @param {PacketV1Codec} packet - The packet.\n * @param {PublicKey} receiveLibrary - The receive library public key.\n * @returns {AccountMeta[]} An array of account metadata.\n */\n getVerifyIXAccountMetaForCPI(packet: PacketV1Codec, receiveLibrary: PublicKey): AccountMeta[] {\n const receiver = publicKey(Buffer.from(packet.receiver().slice(2), 'hex'))\n const srcEid = packet.srcEid()\n const sender = addressToBytes32(packet.sender())\n\n const txBuilder = instructions.verify(\n { programs: this.programRepo },\n {\n receiveLibrary: createNoopSigner(receiveLibrary),\n receiveLibraryConfig: this.pda.receiveLibraryConfig(receiver, srcEid),\n defaultReceiveLibraryConfig: this.pda.defaultReceiveLibraryConfig(srcEid),\n nonce: this.pda.nonce(receiver, srcEid, sender),\n pendingInboundNonce: this.pda.pendingNonce(receiver, srcEid, sender),\n payloadHash: this.pda.payloadHash(receiver, srcEid, sender, parseInt(packet.nonce())),\n program: this.programId,\n eventAuthority: this.eventAuthority,\n },\n {\n srcEid: 0,\n sender: new Uint8Array(32),\n receiver: defaultPublicKey(),\n nonce: 0,\n payloadHash: new Uint8Array(32),\n }\n )\n const program: AccountMeta = {\n pubkey: this.programId,\n isSigner: false,\n isWritable: false,\n }\n return [program, ...txBuilder.getInstructions()[0].keys.map((key) => ({ ...key, isSigner: false }))]\n }\n\n /**\n * Gets the account metadata for the CPI (Cross-Program Invocation) of the register OApp instruction.\n *\n * @param {PublicKey} payer - The payer public key.\n * @param {PublicKey} oapp - The OApp public key.\n * @returns {AccountMeta[]} An array of account metadata.\n */\n getRegisterOappIxAccountMetaForCPI(payer: PublicKey, oapp: PublicKey): AccountMeta[] {\n const txBuilder = instructions.registerOapp(\n { programs: this.programRepo, payer: createNoopSigner(payer) },\n {\n payer: createNoopSigner(payer),\n oapp: createNoopSigner(oapp),\n oappRegistry: this.pda.oappRegistry(oapp),\n eventAuthority: this.eventAuthority,\n program: this.programId,\n // param\n delegate: payer,\n }\n )\n return [\n {\n pubkey: this.programId,\n isSigner: false,\n isWritable: false,\n },\n ...txBuilder.getInstructions()[0].keys.map((key) => ({ ...key, isSigner: false })),\n ]\n }\n\n getSetDelegateIxAccountMetaForCPI(oapp: PublicKey): AccountMeta[] {\n const txBuilder = instructions.setDelegate(\n { programs: this.programRepo },\n {\n oapp: createNoopSigner(oapp),\n oappRegistry: this.pda.oappRegistry(oapp),\n eventAuthority: this.eventAuthority,\n program: this.programId,\n // param\n delegate: defaultPublicKey(),\n }\n )\n return [\n {\n pubkey: this.programId,\n isSigner: false,\n isWritable: false,\n },\n ...txBuilder.getInstructions()[0].keys.map((key) => ({ ...key, isSigner: false })),\n ]\n }\n\n /**\n * Gets the account metadata for the CPI (Cross-Program Invocation) of the skip instruction.\n *\n * @param {PublicKey} receiver - The receiver public key.\n * @param {Uint8Array} sender - The sender address.\n * @param {number} srcEid - The source endpoint ID.\n * @param {number} nonce - The nonce.\n * @returns {AccountMeta[]} An array of account metadata.\n */\n getSkipIxAccountMetaForCPI(\n receiver: PublicKey,\n sender: Uint8Array,\n srcEid: number,\n nonce: number | bigint\n ): AccountMeta[] {\n const txBuilder = instructions.skip(\n { programs: this.programRepo },\n {\n signer: createNoopSigner(receiver),\n oappRegistry: this.pda.oappRegistry(receiver),\n nonce: this.pda.nonce(receiver, srcEid, sender),\n pendingInboundNonce: this.pda.pendingNonce(receiver, srcEid, sender),\n payloadHash: this.pda.payloadHash(receiver, srcEid, sender, nonce),\n endpoint: this.pda.setting(),\n program: this.programId,\n eventAuthority: this.eventAuthority,\n },\n {\n receiver: defaultPublicKey(),\n srcEid: 0,\n sender: new Uint8Array(32),\n nonce: 0,\n }\n )\n return [\n {\n pubkey: this.programId,\n isSigner: false,\n isWritable: false,\n },\n ...txBuilder.getInstructions()[0].keys.map((key) => ({ ...key, isSigner: false })),\n ]\n }\n\n /**\n * Checks if the given message library program is the default send library.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} messageLibProgram - The message library program public key.\n * @param {number} dstEid - The destination endpoint ID.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment level or account info configuration.\n * @returns {Promise<boolean>} A promise that resolves to true if the message library program is the default send library, false otherwise.\n */\n async isDefaultSendLibrary(\n rpc: RpcInterface,\n messageLibProgram: PublicKey,\n dstEid: number,\n commitment: Commitment = 'confirmed'\n ): Promise<boolean> {\n const [msgLib] = new MessageLibPDA(messageLibProgram).messageLib()\n const info = await this.getDefaultSendLibrary(rpc, dstEid, commitment)\n if (info) {\n return info.msgLib === msgLib\n }\n return false\n }\n\n /**\n * Checks if the given message library program is the default receive library.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} messageLibProgram - The message library program public key.\n * @param {number} srcEid - The source endpoint ID.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment level or account info configuration.\n * @returns {Promise<boolean>} A promise that resolves to true if the message library program is the default receive library, false otherwise.\n */\n async isDefaultReceiveLibrary(\n rpc: RpcInterface,\n messageLibProgram: PublicKey,\n srcEid: number,\n commitment: Commitment = 'confirmed'\n ): Promise<boolean> {\n const [msgLib] = new MessageLibPDA(messageLibProgram).messageLib()\n const info = await this.getDefaultReceiveLibrary(rpc, srcEid, commitment)\n if (info) {\n return info.msgLib === msgLib\n }\n return false\n }\n\n // all of below functions are retrieving accounts state\n /**\n * Gets the endpoint settings.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment level or account info configuration.\n * @returns {Promise<EndpointSettings | null>} A promise that resolves to the endpoint settings or null if not found.\n */\n async getSetting(\n rpc: RpcInterface,\n commitment: Commitment = 'confirmed'\n ): Promise<accounts.EndpointSettings | null> {\n const [setting] = this.pda.setting()\n return accounts.safeFetchEndpointSettings({ rpc }, setting, { commitment })\n }\n\n /**\n * Gets the message library information.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} messageLibProgram - The message library program public key, It is a PDA of the message library program\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment level or account info configuration.\n * @returns {Promise<MessageLibInfo | null>} A promise that resolves to the message library information or null if not found.\n */\n async getMessageLibInfo(\n rpc: RpcInterface,\n messageLibProgram: PublicKey,\n commitment: Commitment = 'confirmed'\n ): Promise<accounts.MessageLibInfo | null> {\n const [msgLib] = new MessageLibPDA(messageLibProgram).messageLib()\n const [messageLibInfo] = this.pda.messageLibraryInfo(msgLib)\n return accounts.safeFetchMessageLibInfo({ rpc }, messageLibInfo, { commitment })\n }\n\n /**\n * Gets the default receive library.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {number} srcEid - The source endpoint ID.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment level or account info configuration.\n * @returns {Promise<{ msgLib: PublicKey; owner?: PublicKey } | null>} A promise that resolves to the default receive library or null if not found.\n */\n async getDefaultReceiveLibrary(\n rpc: RpcInterface,\n srcEid: number,\n commitment: Commitment = 'confirmed'\n ): Promise<{ msgLib: PublicKey; owner?: PublicKey } | null> {\n const [defaultReceiveLibConfig] = this.pda.defaultReceiveLibraryConfig(srcEid)\n\n const defaultInfo = await accounts.safeFetchReceiveLibraryConfig({ rpc }, defaultReceiveLibConfig, {\n commitment,\n })\n if (defaultInfo == null) {\n return null\n }\n const messageLibInfo = await rpc.getAccount(defaultInfo.messageLib, { commitment })\n // notice: BlockedMessageLib is not initialized its PDA, so it will be null if defaultInfo.messageLib is BlockedMessageLib\n if (!messageLibInfo.exists) {\n return {\n msgLib: defaultInfo.messageLib,\n }\n }\n return {\n owner: messageLibInfo.owner,\n msgLib: defaultInfo.messageLib,\n }\n }\n\n /**\n * Gets the default send library.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {number} dstEid - The destination endpoint ID.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment level or account info configuration.\n * @returns {Promise<{ msgLib: PublicKey; owner?: PublicKey } | null>} A promise that resolves to the default send library or null if not found.\n */\n async getDefaultSendLibrary(\n rpc: RpcInterface,\n dstEid: number,\n commitment: Commitment = 'confirmed'\n ): Promise<{ msgLib: PublicKey; owner?: PublicKey } | null> {\n const [defaultSendLibConfig] = this.pda.defaultSendLibraryConfig(dstEid)\n\n const defaultInfo = await accounts.safeFetchSendLibraryConfig({ rpc }, defaultSendLibConfig, { commitment })\n if (defaultInfo == null) {\n return null\n }\n const messageLibInfo = await rpc.getAccount(defaultInfo.messageLib, { commitment })\n // notice: BlockedMessageLib is not initialized its PDA, so it will be null if defaultInfo.messageLib is BlockedMessageLib\n if (!messageLibInfo.exists) {\n return {\n msgLib: defaultInfo.messageLib,\n }\n }\n return {\n owner: messageLibInfo.owner,\n msgLib: defaultInfo.messageLib,\n }\n }\n\n /**\n * Gets the configured send library for the app.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} oappPda - The OApp PDA.\n * @param {number} dstEid - The destination endpoint ID.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig='confirmed'] - The commitment level or account info configuration.\n * @returns {Promise<{ msgLib: PublicKey; programId?: PublicKey; isDefault: boolean } | null>} A promise that resolves to the configured send library or null if not found.\n */\n async getSendLibrary(\n rpc: RpcInterface,\n oappPda: PublicKey,\n dstEid: number,\n commitment: Commitment = 'confirmed'\n ): Promise<{ msgLib: PublicKey; programId?: PublicKey; isDefault: boolean }> {\n const [sendLibConfig] = this.pda.sendLibraryConfig(oappPda, dstEid)\n const [defaultSendLibConfig] = this.pda.defaultSendLibraryConfig(dstEid)\n const [defaultSendLibConfigBuf, sendLibConfigBuf] = await rpc.getAccounts(\n [defaultSendLibConfig, sendLibConfig],\n { commitment }\n )\n if (!defaultSendLibConfigBuf.exists || !sendLibConfigBuf.exists) {\n throw new Error(\n `Unable to find defaultSendLibraryConfig/sendLibraryConfig account at ${defaultSendLibConfig}/${sendLibConfig}`\n )\n }\n const sendLibConfigInfo = accounts.deserializeSendLibraryConfig(sendLibConfigBuf)\n const defaultSendLibConfigInfo = accounts.deserializeSendLibraryConfig(defaultSendLibConfigBuf)\n const msgLib =\n sendLibConfigInfo.messageLib.toString() === DefaultMessageLib.toString()\n ? defaultSendLibConfigInfo.messageLib\n : sendLibConfigInfo.messageLib\n const isDefault = sendLibConfigInfo.messageLib.toString() === DefaultMessageLib.toString()\n const msgLibInfo = await rpc.getAccount(msgLib, { commitment })\n\n // notice: BlockedMessageLib is not initialized its PDA, so programId will be null if msgLib is BlockedMessageLib\n if (!msgLibInfo.exists) {\n return {\n programId: undefined,\n msgLib,\n isDefault,\n }\n } else {\n return {\n programId: msgLibInfo.owner,\n msgLib,\n isDefault,\n }\n }\n }\n\n /**\n * Gets the configured receive library for the app.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} oappPda - The OApp PDA.\n * @param {number} srcEid - The source endpoint ID.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment level or account info configuration.\n * @returns {Promise<{ msgLib: PublicKey; programId?: PublicKey; isDefault: boolean; timeout: { msgLib: PublicKey; expiry: bigint } | null } | null>} A promise that resolves to the configured receive library or null if not found.\n */\n async getReceiveLibrary(\n rpc: RpcInterface,\n oappPda: PublicKey,\n srcEid: number,\n commitment: Commitment = 'confirmed'\n ): Promise<{\n msgLib: PublicKey // message library pda, it might be null if the message lib is blocked\n programId?: PublicKey\n isDefault: boolean\n timeout?: { msgLib: PublicKey; expiry: bigint }\n }> {\n const [receiveLibConfig] = this.pda.receiveLibraryConfig(oappPda, srcEid)\n const [defaultReceiveLibConfig] = this.pda.defaultReceiveLibraryConfig(srcEid)\n const [defaultReceiveLibConfigBuf, receiveLibConfigBuf] = await rpc.getAccounts(\n [defaultReceiveLibConfig, receiveLibConfig],\n { commitment }\n )\n if (!defaultReceiveLibConfigBuf.exists || !receiveLibConfigBuf.exists) {\n throw new Error(\n `Unable to find defaultReceiveLibraryConfig/receiveLibraryConfig account at ${defaultReceiveLibConfig}/${receiveLibConfig}`\n )\n }\n const receiveLibConfigInfo = accounts.deserializeReceiveLibraryConfig(receiveLibConfigBuf)\n const defaultReceiveLibConfigInfo = accounts.deserializeReceiveLibraryConfig(defaultReceiveLibConfigBuf)\n const finalReceiveLibConfigInfo =\n receiveLibConfigInfo.messageLib.toString() === DefaultMessageLib.toString()\n ? defaultReceiveLibConfigInfo\n : receiveLibConfigInfo\n const msgLib = finalReceiveLibConfigInfo.messageLib\n const isDefault = receiveLibConfigInfo.messageLib.toString() === DefaultMessageLib.toString()\n const msgLibInfo = await rpc.getAccount(msgLib, { commitment })\n\n const receiveTimeout = isSome(finalReceiveLibConfigInfo.timeout)\n ? {\n msgLib: finalReceiveLibConfigInfo.timeout.value.messageLib,\n expiry: finalReceiveLibConfigInfo.timeout.value.expiry,\n }\n : undefined\n // notice: BlockedMessageLib is not initialized its PDA, so programId will be undefined if msgLib is BlockedMessageLib\n if (!msgLibInfo.exists) {\n return {\n programId: undefined,\n msgLib,\n isDefault,\n timeout: receiveTimeout,\n }\n }\n\n return {\n programId: msgLibInfo.owner,\n msgLib,\n isDefault,\n timeout: receiveTimeout,\n }\n }\n\n // rename to a more generic name\n /**\n * Gets the inbound payload hash.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} receiver - The receiver public key.\n * @param {number} srcEid - The source endpoint ID.\n * @param {Uint8Array} sender - The sender address.\n * @param {number} nonce - The nonce.\n * @param {Uint8Array} _payloadHash - The payload hash.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment level or account info configuration.\n * @returns {Promise<PayloadHash | null>} A promise that resolves to the payload hash or null if not found.\n */\n async getInboundPayloadHash(\n rpc: RpcInterface,\n receiver: PublicKey,\n srcEid: number,\n sender: Uint8Array,\n nonce: number,\n _payloadHash: Uint8Array,\n commitment: Commitment = 'confirmed'\n ): Promise<accounts.PayloadHash | null> {\n const [payloadHashPDA] = this.pda.payloadHash(receiver, srcEid, sender, nonce)\n return accounts.safeFetchPayloadHash({ rpc }, payloadHashPDA, { commitment })\n }\n\n /**\n * Gets the composed message state.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} from - The sender public key.\n * @param {types.SendComposeParams} params - The send compose parameters.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment level or account info configuration.\n * @returns {Promise<ComposeMessageState | null>} A promise that resolves to the composed message state or null if not found.\n */\n async getComposedMessageState(\n rpc: RpcInterface,\n from: PublicKey,\n params: instructions.SendComposeInstructionArgs,\n commitment: Commitment = 'confirmed'\n ): Promise<accounts.ComposeMessageState | null> {\n const message = arrayify(keccak_256(params.message))\n const [composedMessagePDA] = this.pda.composedMessage(from, params.guid, params.index, params.to, message)\n return accounts.safeFetchComposeMessageState({ rpc }, composedMessagePDA, { commitment })\n }\n\n /**\n * Gets the nonce.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} oappIDPDA - The OApp ID PDA.\n * @param {number} remoteEid - The remote endpoint ID.\n * @param {Uint8Array} remoteOappAddr - The remote OApp address.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment level or account info configuration.\n * @returns {Promise<accounts.Nonce | null>} A promise that resolves to the nonce or null if not found.\n */\n async getNonce(\n rpc: RpcInterface,\n oappIDPDA: PublicKey,\n remoteEid: number,\n remoteOappAddr: Uint8Array,\n commitment: Commitment = 'confirmed'\n ): Promise<accounts.Nonce | null> {\n const [nonce] = this.pda.nonce(oappIDPDA, remoteEid, remoteOappAddr)\n return accounts.safeFetchNonce({ rpc }, nonce, { commitment })\n }\n\n /**\n * Gets the pending inbound nonce.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} oappIDPDA - The OApp ID PDA.\n * @param {number} remoteEid - The remote endpoint ID.\n * @param {Uint8Array} remoteOappAddr - The remote OApp address.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment level or account info configuration.\n * @returns {Promise<accounts.PendingInboundNonce | null>} A promise that resolves to the pending inbound nonce or null if not found.\n */\n async getPendingInboundNonce(\n rpc: RpcInterface,\n oappIDPDA: PublicKey,\n remoteEid: number,\n remoteOappAddr: Uint8Array,\n commitment: Commitment = 'confirmed'\n ): Promise<accounts.PendingInboundNonce | null> {\n const [nonce] = this.pda.pendingNonce(oappIDPDA, remoteEid, remoteOappAddr)\n return accounts.safeFetchPendingInboundNonce({ rpc }, nonce, { commitment })\n }\n\n /**\n * Gets the message library version.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} payer - The payer public key.\n * @param {PublicKey} messageLibProgram - The message library program public key.\n * @param {Commitment} [commitment='confirmed'] - The commitment level.\n * @returns {Promise<Version | null>} A promise that resolves to the version or null if not found.\n */\n async getMessageLibVersion(\n rpc: RpcInterface,\n payer: PublicKey,\n messageLibProgram: PublicKey,\n commitment: Commitment = 'confirmed'\n ): Promise<Version> {\n const msgLibProgramInWeb3Js = toWeb3JsPublicKey(messageLibProgram)\n const version = await simulateWeb3JsTransaction(\n rpc.getEndpoint(),\n [\n new TransactionInstruction({\n keys: [{ pubkey: msgLibProgramInWeb3Js, isSigner: false, isWritable: false }],\n data: Buffer.from(\n SimpleMessageLibProgram.instructions.getVersionInstructionDataSerializer().serialize({})\n ),\n programId: msgLibProgramInWeb3Js,\n }),\n ],\n msgLibProgramInWeb3Js,\n toWeb3JsPublicKey(payer),\n SimpleMessageLibProgram.types.getVersionSerializer(),\n commitment\n )\n return version\n }\n\n /**\n * Transfers the admin role to a new admin.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} admin - The current admin public key.\n * @param {PublicKey} newAdmin - The new admin public key.\n * @param {Commitment} [commitment='confirmed'] - The commitment level.\n * @returns {Promise<TransactionInstruction | null>} A promise that resolves to the transaction instruction or null if not needed.\n */\n transferAdmin(admin: Signer, newAdmin: PublicKey): WrappedInstruction {\n return instructions.transferAdmin(\n { programs: this.programRepo },\n {\n admin,\n endpoint: this.pda.setting(),\n eventAuthority: this.eventAuthority,\n program: this.programId,\n },\n {\n admin: newAdmin,\n }\n ).items[0]\n }\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './composeMessageState';\nexport * from './endpointSettings';\nexport * from './messageLibInfo';\nexport * from './nonce';\nexport * from './oAppRegistry';\nexport * from './payloadHash';\nexport * from './pendingInboundNonce';\nexport * from './receiveLibraryConfig';\nexport * from './sendLibraryConfig';\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Account,\n Context,\n Pda,\n PublicKey,\n RpcAccount,\n RpcGetAccountOptions,\n RpcGetAccountsOptions,\n assertAccountExists,\n deserializeAccount,\n gpaBuilder,\n publicKey as toPublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bool,\n bytes,\n mapSerializer,\n struct,\n u8,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type ComposeMessageState = Account<ComposeMessageStateAccountData>;\n\nexport type ComposeMessageStateAccountData = {\n discriminator: Uint8Array;\n received: boolean;\n bump: number;\n};\n\nexport type ComposeMessageStateAccountDataArgs = {\n received: boolean;\n bump: number;\n};\n\nexport function getComposeMessageStateAccountDataSerializer(): Serializer<\n ComposeMessageStateAccountDataArgs,\n ComposeMessageStateAccountData\n> {\n return mapSerializer<\n ComposeMessageStateAccountDataArgs,\n any,\n ComposeMessageStateAccountData\n >(\n struct<ComposeMessageStateAccountData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['received', bool()],\n ['bump', u8()],\n ],\n { description: 'ComposeMessageStateAccountData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([55, 107, 79, 254, 243, 22, 172, 240]),\n })\n ) as Serializer<\n ComposeMessageStateAccountDataArgs,\n ComposeMessageStateAccountData\n >;\n}\n\nexport function deserializeComposeMessageState(\n rawAccount: RpcAccount\n): ComposeMessageState {\n return deserializeAccount(\n rawAccount,\n getComposeMessageStateAccountDataSerializer()\n );\n}\n\nexport async function fetchComposeMessageState(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<ComposeMessageState> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n assertAccountExists(maybeAccount, 'ComposeMessageState');\n return deserializeComposeMessageState(maybeAccount);\n}\n\nexport async function safeFetchComposeMessageState(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<ComposeMessageState | null> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n return maybeAccount.exists\n ? deserializeComposeMessageState(maybeAccount)\n : null;\n}\n\nexport async function fetchAllComposeMessageState(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<ComposeMessageState[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts.map((maybeAccount) => {\n assertAccountExists(maybeAccount, 'ComposeMessageState');\n return deserializeComposeMessageState(maybeAccount);\n });\n}\n\nexport async function safeFetchAllComposeMessageState(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<ComposeMessageState[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts\n .filter((maybeAccount) => maybeAccount.exists)\n .map((maybeAccount) =>\n deserializeComposeMessageState(maybeAccount as RpcAccount)\n );\n}\n\nexport function getComposeMessageStateGpaBuilder(\n context: Pick<Context, 'rpc' | 'programs'>\n) {\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n return gpaBuilder(context, programId)\n .registerFields<{\n discriminator: Uint8Array;\n received: boolean;\n bump: number;\n }>({\n discriminator: [0, bytes({ size: 8 })],\n received: [8, bool()],\n bump: [9, u8()],\n })\n .deserializeUsing<ComposeMessageState>((account) =>\n deserializeComposeMessageState(account)\n )\n .whereField(\n 'discriminator',\n new Uint8Array([55, 107, 79, 254, 243, 22, 172, 240])\n );\n}\n\nexport function getComposeMessageStateSize(): number {\n return 10;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Account,\n Context,\n Option,\n OptionOrNullable,\n Pda,\n PublicKey,\n RpcAccount,\n RpcGetAccountOptions,\n RpcGetAccountsOptions,\n assertAccountExists,\n deserializeAccount,\n gpaBuilder,\n publicKey as toPublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n option,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u8,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type EndpointSettings = Account<EndpointSettingsAccountData>;\n\nexport type EndpointSettingsAccountData = {\n discriminator: Uint8Array;\n eid: number;\n bump: number;\n admin: PublicKey;\n lzTokenMint: Option<PublicKey>;\n};\n\nexport type EndpointSettingsAccountDataArgs = {\n eid: number;\n bump: number;\n admin: PublicKey;\n lzTokenMint: OptionOrNullable<PublicKey>;\n};\n\nexport function getEndpointSettingsAccountDataSerializer(): Serializer<\n EndpointSettingsAccountDataArgs,\n EndpointSettingsAccountData\n> {\n return mapSerializer<\n EndpointSettingsAccountDataArgs,\n any,\n EndpointSettingsAccountData\n >(\n struct<EndpointSettingsAccountData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['eid', u32()],\n ['bump', u8()],\n ['admin', publicKeySerializer()],\n ['lzTokenMint', option(publicKeySerializer())],\n ],\n { description: 'EndpointSettingsAccountData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([221, 232, 73, 56, 10, 66, 72, 14]),\n })\n ) as Serializer<EndpointSettingsAccountDataArgs, EndpointSettingsAccountData>;\n}\n\nexport function deserializeEndpointSettings(\n rawAccount: RpcAccount\n): EndpointSettings {\n return deserializeAccount(\n rawAccount,\n getEndpointSettingsAccountDataSerializer()\n );\n}\n\nexport async function fetchEndpointSettings(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<EndpointSettings> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n assertAccountExists(maybeAccount, 'EndpointSettings');\n return deserializeEndpointSettings(maybeAccount);\n}\n\nexport async function safeFetchEndpointSettings(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<EndpointSettings | null> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n return maybeAccount.exists ? deserializeEndpointSettings(maybeAccount) : null;\n}\n\nexport async function fetchAllEndpointSettings(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<EndpointSettings[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts.map((maybeAccount) => {\n assertAccountExists(maybeAccount, 'EndpointSettings');\n return deserializeEndpointSettings(maybeAccount);\n });\n}\n\nexport async function safeFetchAllEndpointSettings(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<EndpointSettings[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts\n .filter((maybeAccount) => maybeAccount.exists)\n .map((maybeAccount) =>\n deserializeEndpointSettings(maybeAccount as RpcAccount)\n );\n}\n\nexport function getEndpointSettingsGpaBuilder(\n context: Pick<Context, 'rpc' | 'programs'>\n) {\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n return gpaBuilder(context, programId)\n .registerFields<{\n discriminator: Uint8Array;\n eid: number;\n bump: number;\n admin: PublicKey;\n lzTokenMint: OptionOrNullable<PublicKey>;\n }>({\n discriminator: [0, bytes({ size: 8 })],\n eid: [8, u32()],\n bump: [12, u8()],\n admin: [13, publicKeySerializer()],\n lzTokenMint: [45, option(publicKeySerializer())],\n })\n .deserializeUsing<EndpointSettings>((account) =>\n deserializeEndpointSettings(account)\n )\n .whereField(\n 'discriminator',\n new Uint8Array([221, 232, 73, 56, 10, 66, 72, 14])\n );\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './messageLibType';\nexport * from './messagingFee';\nexport * from './messagingReceipt';\nexport * from './receiveLibraryTimeout';","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Serializer, scalarEnum } from '@metaplex-foundation/umi/serializers';\n\nexport enum MessageLibType {\n Send,\n Receive,\n SendAndReceive,\n}\n\nexport type MessageLibTypeArgs = MessageLibType;\n\nexport function getMessageLibTypeSerializer(): Serializer<\n MessageLibTypeArgs,\n MessageLibType\n> {\n return scalarEnum<MessageLibType>(MessageLibType, {\n description: 'MessageLibType',\n }) as Serializer<MessageLibTypeArgs, MessageLibType>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Serializer, struct, u64 } from '@metaplex-foundation/umi/serializers';\n\nexport type MessagingFee = { nativeFee: bigint; lzTokenFee: bigint };\n\nexport type MessagingFeeArgs = {\n nativeFee: number | bigint;\n lzTokenFee: number | bigint;\n};\n\nexport function getMessagingFeeSerializer(): Serializer<\n MessagingFeeArgs,\n MessagingFee\n> {\n return struct<MessagingFee>(\n [\n ['nativeFee', u64()],\n ['lzTokenFee', u64()],\n ],\n { description: 'MessagingFee' }\n ) as Serializer<MessagingFeeArgs, MessagingFee>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Serializer,\n bytes,\n struct,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport { MessagingFee, MessagingFeeArgs, getMessagingFeeSerializer } from '.';\n\nexport type MessagingReceipt = {\n guid: Uint8Array;\n nonce: bigint;\n fee: MessagingFee;\n};\n\nexport type MessagingReceiptArgs = {\n guid: Uint8Array;\n nonce: number | bigint;\n fee: MessagingFeeArgs;\n};\n\nexport function getMessagingReceiptSerializer(): Serializer<\n MessagingReceiptArgs,\n MessagingReceipt\n> {\n return struct<MessagingReceipt>(\n [\n ['guid', bytes({ size: 32 })],\n ['nonce', u64()],\n ['fee', getMessagingFeeSerializer()],\n ],\n { description: 'MessagingReceipt' }\n ) as Serializer<MessagingReceiptArgs, MessagingReceipt>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n publicKey as publicKeySerializer,\n struct,\n u64,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type ReceiveLibraryTimeout = { messageLib: PublicKey; expiry: bigint };\n\nexport type ReceiveLibraryTimeoutArgs = {\n messageLib: PublicKey;\n expiry: number | bigint;\n};\n\nexport function getReceiveLibraryTimeoutSerializer(): Serializer<\n ReceiveLibraryTimeoutArgs,\n ReceiveLibraryTimeout\n> {\n return struct<ReceiveLibraryTimeout>(\n [\n ['messageLib', publicKeySerializer()],\n ['expiry', u64()],\n ],\n { description: 'ReceiveLibraryTimeout' }\n ) as Serializer<ReceiveLibraryTimeoutArgs, ReceiveLibraryTimeout>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Account,\n Context,\n Pda,\n PublicKey,\n RpcAccount,\n RpcGetAccountOptions,\n RpcGetAccountsOptions,\n assertAccountExists,\n deserializeAccount,\n gpaBuilder,\n publicKey as toPublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n u8,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n MessageLibType,\n MessageLibTypeArgs,\n getMessageLibTypeSerializer,\n} from '../types';\n\nexport type MessageLibInfo = Account<MessageLibInfoAccountData>;\n\nexport type MessageLibInfoAccountData = {\n discriminator: Uint8Array;\n messageLibType: MessageLibType;\n bump: number;\n messageLibBump: number;\n};\n\nexport type MessageLibInfoAccountDataArgs = {\n messageLibType: MessageLibTypeArgs;\n bump: number;\n messageLibBump: number;\n};\n\nexport function getMessageLibInfoAccountDataSerializer(): Serializer<\n MessageLibInfoAccountDataArgs,\n MessageLibInfoAccountData\n> {\n return mapSerializer<\n MessageLibInfoAccountDataArgs,\n any,\n MessageLibInfoAccountData\n >(\n struct<MessageLibInfoAccountData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['messageLibType', getMessageLibTypeSerializer()],\n ['bump', u8()],\n ['messageLibBump', u8()],\n ],\n { description: 'MessageLibInfoAccountData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([103, 102, 218, 28, 204, 135, 71, 14]),\n })\n ) as Serializer<MessageLibInfoAccountDataArgs, MessageLibInfoAccountData>;\n}\n\nexport function deserializeMessageLibInfo(\n rawAccount: RpcAccount\n): MessageLibInfo {\n return deserializeAccount(\n rawAccount,\n getMessageLibInfoAccountDataSerializer()\n );\n}\n\nexport async function fetchMessageLibInfo(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<MessageLibInfo> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n assertAccountExists(maybeAccount, 'MessageLibInfo');\n return deserializeMessageLibInfo(maybeAccount);\n}\n\nexport async function safeFetchMessageLibInfo(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<MessageLibInfo | null> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n return maybeAccount.exists ? deserializeMessageLibInfo(maybeAccount) : null;\n}\n\nexport async function fetchAllMessageLibInfo(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<MessageLibInfo[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts.map((maybeAccount) => {\n assertAccountExists(maybeAccount, 'MessageLibInfo');\n return deserializeMessageLibInfo(maybeAccount);\n });\n}\n\nexport async function safeFetchAllMessageLibInfo(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<MessageLibInfo[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts\n .filter((maybeAccount) => maybeAccount.exists)\n .map((maybeAccount) =>\n deserializeMessageLibInfo(maybeAccount as RpcAccount)\n );\n}\n\nexport function getMessageLibInfoGpaBuilder(\n context: Pick<Context, 'rpc' | 'programs'>\n) {\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n return gpaBuilder(context, programId)\n .registerFields<{\n discriminator: Uint8Array;\n messageLibType: MessageLibTypeArgs;\n bump: number;\n messageLibBump: number;\n }>({\n discriminator: [0, bytes({ size: 8 })],\n messageLibType: [8, getMessageLibTypeSerializer()],\n bump: [9, u8()],\n messageLibBump: [10, u8()],\n })\n .deserializeUsing<MessageLibInfo>((account) =>\n deserializeMessageLibInfo(account)\n )\n .whereField(\n 'discriminator',\n new Uint8Array([103, 102, 218, 28, 204, 135, 71, 14])\n );\n}\n\nexport function getMessageLibInfoSize(): number {\n return 11;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Account,\n Context,\n Pda,\n PublicKey,\n RpcAccount,\n RpcGetAccountOptions,\n RpcGetAccountsOptions,\n assertAccountExists,\n deserializeAccount,\n gpaBuilder,\n publicKey as toPublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n u64,\n u8,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type Nonce = Account<NonceAccountData>;\n\nexport type NonceAccountData = {\n discriminator: Uint8Array;\n bump: number;\n outboundNonce: bigint;\n inboundNonce: bigint;\n};\n\nexport type NonceAccountDataArgs = {\n bump: number;\n outboundNonce: number | bigint;\n inboundNonce: number | bigint;\n};\n\nexport function getNonceAccountDataSerializer(): Serializer<\n NonceAccountDataArgs,\n NonceAccountData\n> {\n return mapSerializer<NonceAccountDataArgs, any, NonceAccountData>(\n struct<NonceAccountData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['bump', u8()],\n ['outboundNonce', u64()],\n ['inboundNonce', u64()],\n ],\n { description: 'NonceAccountData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([143, 197, 147, 95, 106, 165, 50, 43]),\n })\n ) as Serializer<NonceAccountDataArgs, NonceAccountData>;\n}\n\nexport function deserializeNonce(rawAccount: RpcAccount): Nonce {\n return deserializeAccount(rawAccount, getNonceAccountDataSerializer());\n}\n\nexport async function fetchNonce(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<Nonce> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n assertAccountExists(maybeAccount, 'Nonce');\n return deserializeNonce(maybeAccount);\n}\n\nexport async function safeFetchNonce(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<Nonce | null> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n return maybeAccount.exists ? deserializeNonce(maybeAccount) : null;\n}\n\nexport async function fetchAllNonce(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<Nonce[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts.map((maybeAccount) => {\n assertAccountExists(maybeAccount, 'Nonce');\n return deserializeNonce(maybeAccount);\n });\n}\n\nexport async function safeFetchAllNonce(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<Nonce[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts\n .filter((maybeAccount) => maybeAccount.exists)\n .map((maybeAccount) => deserializeNonce(maybeAccount as RpcAccount));\n}\n\nexport function getNonceGpaBuilder(context: Pick<Context, 'rpc' | 'programs'>) {\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n return gpaBuilder(context, programId)\n .registerFields<{\n discriminator: Uint8Array;\n bump: number;\n outboundNonce: number | bigint;\n inboundNonce: number | bigint;\n }>({\n discriminator: [0, bytes({ size: 8 })],\n bump: [8, u8()],\n outboundNonce: [9, u64()],\n inboundNonce: [17, u64()],\n })\n .deserializeUsing<Nonce>((account) => deserializeNonce(account))\n .whereField(\n 'discriminator',\n new Uint8Array([143, 197, 147, 95, 106, 165, 50, 43])\n );\n}\n\nexport function getNonceSize(): number {\n return 25;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Account,\n Context,\n Pda,\n PublicKey,\n RpcAccount,\n RpcGetAccountOptions,\n RpcGetAccountsOptions,\n assertAccountExists,\n deserializeAccount,\n gpaBuilder,\n publicKey as toPublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u8,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type OAppRegistry = Account<OAppRegistryAccountData>;\n\nexport type OAppRegistryAccountData = {\n discriminator: Uint8Array;\n delegate: PublicKey;\n bump: number;\n};\n\nexport type OAppRegistryAccountDataArgs = { delegate: PublicKey; bump: number };\n\nexport function getOAppRegistryAccountDataSerializer(): Serializer<\n OAppRegistryAccountDataArgs,\n OAppRegistryAccountData\n> {\n return mapSerializer<\n OAppRegistryAccountDataArgs,\n any,\n OAppRegistryAccountData\n >(\n struct<OAppRegistryAccountData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['delegate', publicKeySerializer()],\n ['bump', u8()],\n ],\n { description: 'OAppRegistryAccountData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([6, 152, 199, 30, 217, 50, 69, 149]),\n })\n ) as Serializer<OAppRegistryAccountDataArgs, OAppRegistryAccountData>;\n}\n\nexport function deserializeOAppRegistry(rawAccount: RpcAccount): OAppRegistry {\n return deserializeAccount(rawAccount, getOAppRegistryAccountDataSerializer());\n}\n\nexport async function fetchOAppRegistry(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<OAppRegistry> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n assertAccountExists(maybeAccount, 'OAppRegistry');\n return deserializeOAppRegistry(maybeAccount);\n}\n\nexport async function safeFetchOAppRegistry(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<OAppRegistry | null> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n return maybeAccount.exists ? deserializeOAppRegistry(maybeAccount) : null;\n}\n\nexport async function fetchAllOAppRegistry(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<OAppRegistry[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts.map((maybeAccount) => {\n assertAccountExists(maybeAccount, 'OAppRegistry');\n return deserializeOAppRegistry(maybeAccount);\n });\n}\n\nexport async function safeFetchAllOAppRegistry(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<OAppRegistry[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts\n .filter((maybeAccount) => maybeAccount.exists)\n .map((maybeAccount) => deserializeOAppRegistry(maybeAccount as RpcAccount));\n}\n\nexport function getOAppRegistryGpaBuilder(\n context: Pick<Context, 'rpc' | 'programs'>\n) {\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n return gpaBuilder(context, programId)\n .registerFields<{\n discriminator: Uint8Array;\n delegate: PublicKey;\n bump: number;\n }>({\n discriminator: [0, bytes({ size: 8 })],\n delegate: [8, publicKeySerializer()],\n bump: [40, u8()],\n })\n .deserializeUsing<OAppRegistry>((account) =>\n deserializeOAppRegistry(account)\n )\n .whereField(\n 'discriminator',\n new Uint8Array([6, 152, 199, 30, 217, 50, 69, 149])\n );\n}\n\nexport function getOAppRegistrySize(): number {\n return 41;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Account,\n Context,\n Pda,\n PublicKey,\n RpcAccount,\n RpcGetAccountOptions,\n RpcGetAccountsOptions,\n assertAccountExists,\n deserializeAccount,\n gpaBuilder,\n publicKey as toPublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n u8,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type PayloadHash = Account<PayloadHashAccountData>;\n\nexport type PayloadHashAccountData = {\n discriminator: Uint8Array;\n hash: Uint8Array;\n bump: number;\n};\n\nexport type PayloadHashAccountDataArgs = { hash: Uint8Array; bump: number };\n\nexport function getPayloadHashAccountDataSerializer(): Serializer<\n PayloadHashAccountDataArgs,\n PayloadHashAccountData\n> {\n return mapSerializer<PayloadHashAccountDataArgs, any, PayloadHashAccountData>(\n struct<PayloadHashAccountData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['hash', bytes({ size: 32 })],\n ['bump', u8()],\n ],\n { description: 'PayloadHashAccountData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([96, 28, 106, 145, 103, 32, 186, 70]),\n })\n ) as Serializer<PayloadHashAccountDataArgs, PayloadHashAccountData>;\n}\n\nexport function deserializePayloadHash(rawAccount: RpcAccount): PayloadHash {\n return deserializeAccount(rawAccount, getPayloadHashAccountDataSerializer());\n}\n\nexport async function fetchPayloadHash(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<PayloadHash> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n assertAccountExists(maybeAccount, 'PayloadHash');\n return deserializePayloadHash(maybeAccount);\n}\n\nexport async function safeFetchPayloadHash(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<PayloadHash | null> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n return maybeAccount.exists ? deserializePayloadHash(maybeAccount) : null;\n}\n\nexport async function fetchAllPayloadHash(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<PayloadHash[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts.map((maybeAccount) => {\n assertAccountExists(maybeAccount, 'PayloadHash');\n return deserializePayloadHash(maybeAccount);\n });\n}\n\nexport async function safeFetchAllPayloadHash(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<PayloadHash[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts\n .filter((maybeAccount) => maybeAccount.exists)\n .map((maybeAccount) => deserializePayloadHash(maybeAccount as RpcAccount));\n}\n\nexport function getPayloadHashGpaBuilder(\n context: Pick<Context, 'rpc' | 'programs'>\n) {\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n return gpaBuilder(context, programId)\n .registerFields<{\n discriminator: Uint8Array;\n hash: Uint8Array;\n bump: number;\n }>({\n discriminator: [0, bytes({ size: 8 })],\n hash: [8, bytes({ size: 32 })],\n bump: [40, u8()],\n })\n .deserializeUsing<PayloadHash>((account) => deserializePayloadHash(account))\n .whereField(\n 'discriminator',\n new Uint8Array([96, 28, 106, 145, 103, 32, 186, 70])\n );\n}\n\nexport function getPayloadHashSize(): number {\n return 41;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Account,\n Context,\n Pda,\n PublicKey,\n RpcAccount,\n RpcGetAccountOptions,\n RpcGetAccountsOptions,\n assertAccountExists,\n deserializeAccount,\n gpaBuilder,\n publicKey as toPublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n array,\n bytes,\n mapSerializer,\n struct,\n u64,\n u8,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type PendingInboundNonce = Account<PendingInboundNonceAccountData>;\n\nexport type PendingInboundNonceAccountData = {\n discriminator: Uint8Array;\n nonces: Array<bigint>;\n bump: number;\n};\n\nexport type PendingInboundNonceAccountDataArgs = {\n nonces: Array<number | bigint>;\n bump: number;\n};\n\nexport function getPendingInboundNonceAccountDataSerializer(): Serializer<\n PendingInboundNonceAccountDataArgs,\n PendingInboundNonceAccountData\n> {\n return mapSerializer<\n PendingInboundNonceAccountDataArgs,\n any,\n PendingInboundNonceAccountData\n >(\n struct<PendingInboundNonceAccountData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['nonces', array(u64())],\n ['bump', u8()],\n ],\n { description: 'PendingInboundNonceAccountData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([170, 176, 95, 240, 120, 231, 241, 218]),\n })\n ) as Serializer<\n PendingInboundNonceAccountDataArgs,\n PendingInboundNonceAccountData\n >;\n}\n\nexport function deserializePendingInboundNonce(\n rawAccount: RpcAccount\n): PendingInboundNonce {\n return deserializeAccount(\n rawAccount,\n getPendingInboundNonceAccountDataSerializer()\n );\n}\n\nexport async function fetchPendingInboundNonce(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<PendingInboundNonce> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n assertAccountExists(maybeAccount, 'PendingInboundNonce');\n return deserializePendingInboundNonce(maybeAccount);\n}\n\nexport async function safeFetchPendingInboundNonce(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<PendingInboundNonce | null> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n return maybeAccount.exists\n ? deserializePendingInboundNonce(maybeAccount)\n : null;\n}\n\nexport async function fetchAllPendingInboundNonce(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<PendingInboundNonce[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts.map((maybeAccount) => {\n assertAccountExists(maybeAccount, 'PendingInboundNonce');\n return deserializePendingInboundNonce(maybeAccount);\n });\n}\n\nexport async function safeFetchAllPendingInboundNonce(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<PendingInboundNonce[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts\n .filter((maybeAccount) => maybeAccount.exists)\n .map((maybeAccount) =>\n deserializePendingInboundNonce(maybeAccount as RpcAccount)\n );\n}\n\nexport function getPendingInboundNonceGpaBuilder(\n context: Pick<Context, 'rpc' | 'programs'>\n) {\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n return gpaBuilder(context, programId)\n .registerFields<{\n discriminator: Uint8Array;\n nonces: Array<number | bigint>;\n bump: number;\n }>({\n discriminator: [0, bytes({ size: 8 })],\n nonces: [8, array(u64())],\n bump: [null, u8()],\n })\n .deserializeUsing<PendingInboundNonce>((account) =>\n deserializePendingInboundNonce(account)\n )\n .whereField(\n 'discriminator',\n new Uint8Array([170, 176, 95, 240, 120, 231, 241, 218])\n );\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Account,\n Context,\n Option,\n OptionOrNullable,\n Pda,\n PublicKey,\n RpcAccount,\n RpcGetAccountOptions,\n RpcGetAccountsOptions,\n assertAccountExists,\n deserializeAccount,\n gpaBuilder,\n publicKey as toPublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n option,\n publicKey as publicKeySerializer,\n struct,\n u8,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ReceiveLibraryTimeout,\n ReceiveLibraryTimeoutArgs,\n getReceiveLibraryTimeoutSerializer,\n} from '../types';\n\nexport type ReceiveLibraryConfig = Account<ReceiveLibraryConfigAccountData>;\n\nexport type ReceiveLibraryConfigAccountData = {\n discriminator: Uint8Array;\n messageLib: PublicKey;\n timeout: Option<ReceiveLibraryTimeout>;\n bump: number;\n};\n\nexport type ReceiveLibraryConfigAccountDataArgs = {\n messageLib: PublicKey;\n timeout: OptionOrNullable<ReceiveLibraryTimeoutArgs>;\n bump: number;\n};\n\nexport function getReceiveLibraryConfigAccountDataSerializer(): Serializer<\n ReceiveLibraryConfigAccountDataArgs,\n ReceiveLibraryConfigAccountData\n> {\n return mapSerializer<\n ReceiveLibraryConfigAccountDataArgs,\n any,\n ReceiveLibraryConfigAccountData\n >(\n struct<ReceiveLibraryConfigAccountData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['messageLib', publicKeySerializer()],\n ['timeout', option(getReceiveLibraryTimeoutSerializer())],\n ['bump', u8()],\n ],\n { description: 'ReceiveLibraryConfigAccountData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([142, 226, 251, 138, 1, 206, 91, 193]),\n })\n ) as Serializer<\n ReceiveLibraryConfigAccountDataArgs,\n ReceiveLibraryConfigAccountData\n >;\n}\n\nexport function deserializeReceiveLibraryConfig(\n rawAccount: RpcAccount\n): ReceiveLibraryConfig {\n return deserializeAccount(\n rawAccount,\n getReceiveLibraryConfigAccountDataSerializer()\n );\n}\n\nexport async function fetchReceiveLibraryConfig(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<ReceiveLibraryConfig> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n assertAccountExists(maybeAccount, 'ReceiveLibraryConfig');\n return deserializeReceiveLibraryConfig(maybeAccount);\n}\n\nexport async function safeFetchReceiveLibraryConfig(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<ReceiveLibraryConfig | null> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n return maybeAccount.exists\n ? deserializeReceiveLibraryConfig(maybeAccount)\n : null;\n}\n\nexport async function fetchAllReceiveLibraryConfig(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<ReceiveLibraryConfig[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts.map((maybeAccount) => {\n assertAccountExists(maybeAccount, 'ReceiveLibraryConfig');\n return deserializeReceiveLibraryConfig(maybeAccount);\n });\n}\n\nexport async function safeFetchAllReceiveLibraryConfig(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<ReceiveLibraryConfig[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts\n .filter((maybeAccount) => maybeAccount.exists)\n .map((maybeAccount) =>\n deserializeReceiveLibraryConfig(maybeAccount as RpcAccount)\n );\n}\n\nexport function getReceiveLibraryConfigGpaBuilder(\n context: Pick<Context, 'rpc' | 'programs'>\n) {\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n return gpaBuilder(context, programId)\n .registerFields<{\n discriminator: Uint8Array;\n messageLib: PublicKey;\n timeout: OptionOrNullable<ReceiveLibraryTimeoutArgs>;\n bump: number;\n }>({\n discriminator: [0, bytes({ size: 8 })],\n messageLib: [8, publicKeySerializer()],\n timeout: [40, option(getReceiveLibraryTimeoutSerializer())],\n bump: [null, u8()],\n })\n .deserializeUsing<ReceiveLibraryConfig>((account) =>\n deserializeReceiveLibraryConfig(account)\n )\n .whereField(\n 'discriminator',\n new Uint8Array([142, 226, 251, 138, 1, 206, 91, 193])\n );\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Account,\n Context,\n Pda,\n PublicKey,\n RpcAccount,\n RpcGetAccountOptions,\n RpcGetAccountsOptions,\n assertAccountExists,\n deserializeAccount,\n gpaBuilder,\n publicKey as toPublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u8,\n} from '@metaplex-foundation/umi/serializers';\n\n/** the reason for not using Option::None to indicate default is to respect the spec on evm */\nexport type SendLibraryConfig = Account<SendLibraryConfigAccountData>;\n\nexport type SendLibraryConfigAccountData = {\n discriminator: Uint8Array;\n messageLib: PublicKey;\n bump: number;\n};\n\nexport type SendLibraryConfigAccountDataArgs = {\n messageLib: PublicKey;\n bump: number;\n};\n\nexport function getSendLibraryConfigAccountDataSerializer(): Serializer<\n SendLibraryConfigAccountDataArgs,\n SendLibraryConfigAccountData\n> {\n return mapSerializer<\n SendLibraryConfigAccountDataArgs,\n any,\n SendLibraryConfigAccountData\n >(\n struct<SendLibraryConfigAccountData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['messageLib', publicKeySerializer()],\n ['bump', u8()],\n ],\n { description: 'SendLibraryConfigAccountData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([61, 238, 31, 72, 251, 117, 66, 176]),\n })\n ) as Serializer<\n SendLibraryConfigAccountDataArgs,\n SendLibraryConfigAccountData\n >;\n}\n\nexport function deserializeSendLibraryConfig(\n rawAccount: RpcAccount\n): SendLibraryConfig {\n return deserializeAccount(\n rawAccount,\n getSendLibraryConfigAccountDataSerializer()\n );\n}\n\nexport async function fetchSendLibraryConfig(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<SendLibraryConfig> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n assertAccountExists(maybeAccount, 'SendLibraryConfig');\n return deserializeSendLibraryConfig(maybeAccount);\n}\n\nexport async function safeFetchSendLibraryConfig(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<SendLibraryConfig | null> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n return maybeAccount.exists\n ? deserializeSendLibraryConfig(maybeAccount)\n : null;\n}\n\nexport async function fetchAllSendLibraryConfig(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<SendLibraryConfig[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts.map((maybeAccount) => {\n assertAccountExists(maybeAccount, 'SendLibraryConfig');\n return deserializeSendLibraryConfig(maybeAccount);\n });\n}\n\nexport async function safeFetchAllSendLibraryConfig(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<SendLibraryConfig[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts\n .filter((maybeAccount) => maybeAccount.exists)\n .map((maybeAccount) =>\n deserializeSendLibraryConfig(maybeAccount as RpcAccount)\n );\n}\n\nexport function getSendLibraryConfigGpaBuilder(\n context: Pick<Context, 'rpc' | 'programs'>\n) {\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n return gpaBuilder(context, programId)\n .registerFields<{\n discriminator: Uint8Array;\n messageLib: PublicKey;\n bump: number;\n }>({\n discriminator: [0, bytes({ size: 8 })],\n messageLib: [8, publicKeySerializer()],\n bump: [40, u8()],\n })\n .deserializeUsing<SendLibraryConfig>((account) =>\n deserializeSendLibraryConfig(account)\n )\n .whereField(\n 'discriminator',\n new Uint8Array([61, 238, 31, 72, 251, 117, 66, 176])\n );\n}\n\nexport function getSendLibraryConfigSize(): number {\n return 41;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './endpoint';\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Program, ProgramError } from '@metaplex-foundation/umi';\n\ntype ProgramErrorConstructor = new (\n program: Program,\n cause?: Error\n) => ProgramError;\nconst codeToErrorMap: Map<number, ProgramErrorConstructor> = new Map();\nconst nameToErrorMap: Map<string, ProgramErrorConstructor> = new Map();\n\n/** InvalidSendLibrary */\nexport class InvalidSendLibraryError extends ProgramError {\n override readonly name: string = 'InvalidSendLibrary';\n\n readonly code: number = 0x1770; // 6000\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1770, InvalidSendLibraryError);\nnameToErrorMap.set('InvalidSendLibrary', InvalidSendLibraryError);\n\n/** InvalidReceiveLibrary */\nexport class InvalidReceiveLibraryError extends ProgramError {\n override readonly name: string = 'InvalidReceiveLibrary';\n\n readonly code: number = 0x1771; // 6001\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1771, InvalidReceiveLibraryError);\nnameToErrorMap.set('InvalidReceiveLibrary', InvalidReceiveLibraryError);\n\n/** SameValue */\nexport class SameValueError extends ProgramError {\n override readonly name: string = 'SameValue';\n\n readonly code: number = 0x1772; // 6002\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1772, SameValueError);\nnameToErrorMap.set('SameValue', SameValueError);\n\n/** AccountNotFound */\nexport class AccountNotFoundError extends ProgramError {\n override readonly name: string = 'AccountNotFound';\n\n readonly code: number = 0x1773; // 6003\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1773, AccountNotFoundError);\nnameToErrorMap.set('AccountNotFound', AccountNotFoundError);\n\n/** OnlySendLib */\nexport class OnlySendLibError extends ProgramError {\n override readonly name: string = 'OnlySendLib';\n\n readonly code: number = 0x1774; // 6004\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1774, OnlySendLibError);\nnameToErrorMap.set('OnlySendLib', OnlySendLibError);\n\n/** OnlyReceiveLib */\nexport class OnlyReceiveLibError extends ProgramError {\n override readonly name: string = 'OnlyReceiveLib';\n\n readonly code: number = 0x1775; // 6005\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1775, OnlyReceiveLibError);\nnameToErrorMap.set('OnlyReceiveLib', OnlyReceiveLibError);\n\n/** InvalidExpiry */\nexport class InvalidExpiryError extends ProgramError {\n override readonly name: string = 'InvalidExpiry';\n\n readonly code: number = 0x1776; // 6006\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1776, InvalidExpiryError);\nnameToErrorMap.set('InvalidExpiry', InvalidExpiryError);\n\n/** OnlyNonDefaultLib */\nexport class OnlyNonDefaultLibError extends ProgramError {\n override readonly name: string = 'OnlyNonDefaultLib';\n\n readonly code: number = 0x1777; // 6007\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1777, OnlyNonDefaultLibError);\nnameToErrorMap.set('OnlyNonDefaultLib', OnlyNonDefaultLibError);\n\n/** InvalidAmount */\nexport class InvalidAmountError extends ProgramError {\n override readonly name: string = 'InvalidAmount';\n\n readonly code: number = 0x1778; // 6008\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1778, InvalidAmountError);\nnameToErrorMap.set('InvalidAmount', InvalidAmountError);\n\n/** InvalidNonce */\nexport class InvalidNonceError extends ProgramError {\n override readonly name: string = 'InvalidNonce';\n\n readonly code: number = 0x1779; // 6009\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1779, InvalidNonceError);\nnameToErrorMap.set('InvalidNonce', InvalidNonceError);\n\n/** Unauthorized */\nexport class UnauthorizedError extends ProgramError {\n override readonly name: string = 'Unauthorized';\n\n readonly code: number = 0x177a; // 6010\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x177a, UnauthorizedError);\nnameToErrorMap.set('Unauthorized', UnauthorizedError);\n\n/** PayloadHashNotFound */\nexport class PayloadHashNotFoundError extends ProgramError {\n override readonly name: string = 'PayloadHashNotFound';\n\n readonly code: number = 0x177b; // 6011\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x177b, PayloadHashNotFoundError);\nnameToErrorMap.set('PayloadHashNotFound', PayloadHashNotFoundError);\n\n/** ComposeNotFound */\nexport class ComposeNotFoundError extends ProgramError {\n override readonly name: string = 'ComposeNotFound';\n\n readonly code: number = 0x177c; // 6012\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x177c, ComposeNotFoundError);\nnameToErrorMap.set('ComposeNotFound', ComposeNotFoundError);\n\n/** InvalidPayloadHash */\nexport class InvalidPayloadHashError extends ProgramError {\n override readonly name: string = 'InvalidPayloadHash';\n\n readonly code: number = 0x177d; // 6013\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x177d, InvalidPayloadHashError);\nnameToErrorMap.set('InvalidPayloadHash', InvalidPayloadHashError);\n\n/** LzTokenUnavailable */\nexport class LzTokenUnavailableError extends ProgramError {\n override readonly name: string = 'LzTokenUnavailable';\n\n readonly code: number = 0x177e; // 6014\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x177e, LzTokenUnavailableError);\nnameToErrorMap.set('LzTokenUnavailable', LzTokenUnavailableError);\n\n/** ReadOnlyAccount */\nexport class ReadOnlyAccountError extends ProgramError {\n override readonly name: string = 'ReadOnlyAccount';\n\n readonly code: number = 0x177f; // 6015\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x177f, ReadOnlyAccountError);\nnameToErrorMap.set('ReadOnlyAccount', ReadOnlyAccountError);\n\n/** InvalidMessageLib */\nexport class InvalidMessageLibError extends ProgramError {\n override readonly name: string = 'InvalidMessageLib';\n\n readonly code: number = 0x1780; // 6016\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1780, InvalidMessageLibError);\nnameToErrorMap.set('InvalidMessageLib', InvalidMessageLibError);\n\n/** WritableAccountNotAllowed */\nexport class WritableAccountNotAllowedError extends ProgramError {\n override readonly name: string = 'WritableAccountNotAllowed';\n\n readonly code: number = 0x1781; // 6017\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1781, WritableAccountNotAllowedError);\nnameToErrorMap.set('WritableAccountNotAllowed', WritableAccountNotAllowedError);\n\n/**\n * Attempts to resolve a custom program error from the provided error code.\n * @category Errors\n */\nexport function getEndpointErrorFromCode(\n code: number,\n program: Program,\n cause?: Error\n): ProgramError | null {\n const constructor = codeToErrorMap.get(code);\n return constructor ? new constructor(program, cause) : null;\n}\n\n/**\n * Attempts to resolve a custom program error from the provided error name, i.e. 'Unauthorized'.\n * @category Errors\n */\nexport function getEndpointErrorFromName(\n name: string,\n program: Program,\n cause?: Error\n): ProgramError | null {\n const constructor = nameToErrorMap.get(name);\n return constructor ? new constructor(program, cause) : null;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './burn';\nexport * from './clear';\nexport * from './clearCompose';\nexport * from './initConfig';\nexport * from './initDefaultReceiveLibrary';\nexport * from './initDefaultSendLibrary';\nexport * from './initEndpoint';\nexport * from './initNonce';\nexport * from './initReceiveLibrary';\nexport * from './initSendLibrary';\nexport * from './initVerify';\nexport * from './lzComposeAlert';\nexport * from './lzReceiveAlert';\nexport * from './nilify';\nexport * from './quote';\nexport * from './registerLibrary';\nexport * from './registerOapp';\nexport * from './send';\nexport * from './sendCompose';\nexport * from './setConfig';\nexport * from './setDefaultReceiveLibrary';\nexport * from './setDefaultReceiveLibraryTimeout';\nexport * from './setDefaultSendLibrary';\nexport * from './setDelegate';\nexport * from './setLzToken';\nexport * from './setReceiveLibrary';\nexport * from './setReceiveLibraryTimeout';\nexport * from './setSendLibrary';\nexport * from './skip';\nexport * from './transferAdmin';\nexport * from './verify';\nexport * from './withdrawRent';\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n AccountMeta,\n isSigner,\n Pda,\n publicKey,\n PublicKey,\n Signer,\n isPda,\n} from '@metaplex-foundation/umi';\n\n/**\n * Transforms the given object such that the given keys are optional.\n * @internal\n */\nexport type PickPartial<T, K extends keyof T> = Omit<T, K> &\n Partial<Pick<T, K>>;\n\n/**\n * Asserts that the given value is not null or undefined.\n * @internal\n */\nexport function expectSome<T>(value: T | null | undefined): T {\n if (value == null) {\n throw new Error('Expected a value but received null or undefined.');\n }\n return value;\n}\n\n/**\n * Asserts that the given value is a PublicKey.\n * @internal\n */\nexport function expectPublicKey(\n value: PublicKey | Pda | Signer | null | undefined\n): PublicKey {\n if (!value) {\n throw new Error('Expected a PublicKey.');\n }\n return publicKey(value, false);\n}\n\n/**\n * Asserts that the given value is a PDA.\n * @internal\n */\nexport function expectPda(\n value: PublicKey | Pda | Signer | null | undefined\n): Pda {\n if (!value || !Array.isArray(value) || !isPda(value)) {\n throw new Error('Expected a PDA.');\n }\n return value;\n}\n\n/**\n * Defines an instruction account to resolve.\n * @internal\n */\nexport type ResolvedAccount<T = PublicKey | Pda | Signer | null> = {\n isWritable: boolean;\n value: T;\n};\n\n/**\n * Defines a set of instruction account to resolve.\n * @internal\n */\nexport type ResolvedAccounts = Record<string, ResolvedAccount>;\n\n/**\n * Defines a set of instruction account to resolve with their indices.\n * @internal\n */\nexport type ResolvedAccountsWithIndices = Record<\n string,\n ResolvedAccount & { index: number }\n>;\n\n/**\n * Get account metas and signers from resolved accounts.\n * @internal\n */\nexport function getAccountMetasAndSigners(\n accounts: ResolvedAccount[],\n optionalAccountStrategy: 'omitted' | 'programId',\n programId: PublicKey\n): [AccountMeta[], Signer[]] {\n const keys: AccountMeta[] = [];\n const signers: Signer[] = [];\n\n accounts.forEach((account) => {\n if (!account.value) {\n if (optionalAccountStrategy === 'omitted') return;\n keys.push({ pubkey: programId, isSigner: false, isWritable: false });\n return;\n }\n\n if (isSigner(account.value)) {\n signers.push(account.value);\n }\n keys.push({\n pubkey: publicKey(account.value, false),\n isSigner: isSigner(account.value),\n isWritable: account.isWritable,\n });\n });\n\n return [keys, signers];\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type BurnInstructionAccounts = {\n /** The PDA of the OApp or delegate */\n signer: Signer;\n oappRegistry: PublicKey | Pda;\n nonce: PublicKey | Pda;\n /** close the account and return the lamports to endpoint settings account */\n payloadHash: PublicKey | Pda;\n endpoint: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type BurnInstructionData = {\n discriminator: Uint8Array;\n receiver: PublicKey;\n srcEid: number;\n sender: Uint8Array;\n nonce: bigint;\n payloadHash: Uint8Array;\n};\n\nexport type BurnInstructionDataArgs = {\n receiver: PublicKey;\n srcEid: number;\n sender: Uint8Array;\n nonce: number | bigint;\n payloadHash: Uint8Array;\n};\n\nexport function getBurnInstructionDataSerializer(): Serializer<\n BurnInstructionDataArgs,\n BurnInstructionData\n> {\n return mapSerializer<BurnInstructionDataArgs, any, BurnInstructionData>(\n struct<BurnInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['receiver', publicKeySerializer()],\n ['srcEid', u32()],\n ['sender', bytes({ size: 32 })],\n ['nonce', u64()],\n ['payloadHash', bytes({ size: 32 })],\n ],\n { description: 'BurnInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([116, 110, 29, 56, 107, 219, 42, 93]),\n })\n ) as Serializer<BurnInstructionDataArgs, BurnInstructionData>;\n}\n\n// Args.\nexport type BurnInstructionArgs = BurnInstructionDataArgs;\n\n// Instruction.\nexport function burn(\n context: Pick<Context, 'programs'>,\n accounts: BurnInstructionAccounts,\n args: BurnInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n signer: {\n index: 0,\n isWritable: false as boolean,\n value: accounts.signer ?? null,\n },\n oappRegistry: {\n index: 1,\n isWritable: false as boolean,\n value: accounts.oappRegistry ?? null,\n },\n nonce: {\n index: 2,\n isWritable: false as boolean,\n value: accounts.nonce ?? null,\n },\n payloadHash: {\n index: 3,\n isWritable: true as boolean,\n value: accounts.payloadHash ?? null,\n },\n endpoint: {\n index: 4,\n isWritable: true as boolean,\n value: accounts.endpoint ?? null,\n },\n eventAuthority: {\n index: 5,\n isWritable: false as boolean,\n value: accounts.eventAuthority ?? null,\n },\n program: {\n index: 6,\n isWritable: false as boolean,\n value: accounts.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: BurnInstructionArgs = { ...args };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getBurnInstructionDataSerializer().serialize(\n resolvedArgs as BurnInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type ClearInstructionAccounts = {\n /** The PDA of the OApp or delegate */\n signer: Signer;\n oappRegistry: PublicKey | Pda;\n nonce: PublicKey | Pda;\n /** close the account and return the lamports to endpoint settings account */\n payloadHash: PublicKey | Pda;\n endpoint: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type ClearInstructionData = {\n discriminator: Uint8Array;\n receiver: PublicKey;\n srcEid: number;\n sender: Uint8Array;\n nonce: bigint;\n guid: Uint8Array;\n message: Uint8Array;\n};\n\nexport type ClearInstructionDataArgs = {\n receiver: PublicKey;\n srcEid: number;\n sender: Uint8Array;\n nonce: number | bigint;\n guid: Uint8Array;\n message: Uint8Array;\n};\n\nexport function getClearInstructionDataSerializer(): Serializer<\n ClearInstructionDataArgs,\n ClearInstructionData\n> {\n return mapSerializer<ClearInstructionDataArgs, any, ClearInstructionData>(\n struct<ClearInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['receiver', publicKeySerializer()],\n ['srcEid', u32()],\n ['sender', bytes({ size: 32 })],\n ['nonce', u64()],\n ['guid', bytes({ size: 32 })],\n ['message', bytes({ size: u32() })],\n ],\n { description: 'ClearInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([250, 39, 28, 213, 123, 163, 133, 5]),\n })\n ) as Serializer<ClearInstructionDataArgs, ClearInstructionData>;\n}\n\n// Args.\nexport type ClearInstructionArgs = ClearInstructionDataArgs;\n\n// Instruction.\nexport function clear(\n context: Pick<Context, 'programs'>,\n accounts: ClearInstructionAccounts,\n args: ClearInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n signer: {\n index: 0,\n isWritable: false as boolean,\n value: accounts.signer ?? null,\n },\n oappRegistry: {\n index: 1,\n isWritable: false as boolean,\n value: accounts.oappRegistry ?? null,\n },\n nonce: {\n index: 2,\n isWritable: false as boolean,\n value: accounts.nonce ?? null,\n },\n payloadHash: {\n index: 3,\n isWritable: true as boolean,\n value: accounts.payloadHash ?? null,\n },\n endpoint: {\n index: 4,\n isWritable: true as boolean,\n value: accounts.endpoint ?? null,\n },\n eventAuthority: {\n index: 5,\n isWritable: false as boolean,\n value: accounts.eventAuthority ?? null,\n },\n program: {\n index: 6,\n isWritable: false as boolean,\n value: accounts.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: ClearInstructionArgs = { ...args };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getClearInstructionDataSerializer().serialize(\n resolvedArgs as ClearInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u16,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type ClearComposeInstructionAccounts = {\n to: Signer;\n composeMessage: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type ClearComposeInstructionData = {\n discriminator: Uint8Array;\n from: PublicKey;\n guid: Uint8Array;\n index: number;\n message: Uint8Array;\n};\n\nexport type ClearComposeInstructionDataArgs = {\n from: PublicKey;\n guid: Uint8Array;\n index: number;\n message: Uint8Array;\n};\n\nexport function getClearComposeInstructionDataSerializer(): Serializer<\n ClearComposeInstructionDataArgs,\n ClearComposeInstructionData\n> {\n return mapSerializer<\n ClearComposeInstructionDataArgs,\n any,\n ClearComposeInstructionData\n >(\n struct<ClearComposeInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['from', publicKeySerializer()],\n ['guid', bytes({ size: 32 })],\n ['index', u16()],\n ['message', bytes({ size: u32() })],\n ],\n { description: 'ClearComposeInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([118, 1, 18, 142, 95, 175, 21, 125]),\n })\n ) as Serializer<ClearComposeInstructionDataArgs, ClearComposeInstructionData>;\n}\n\n// Args.\nexport type ClearComposeInstructionArgs = ClearComposeInstructionDataArgs;\n\n// Instruction.\nexport function clearCompose(\n context: Pick<Context, 'programs'>,\n input: ClearComposeInstructionAccounts & ClearComposeInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n to: { index: 0, isWritable: false as boolean, value: input.to ?? null },\n composeMessage: {\n index: 1,\n isWritable: true as boolean,\n value: input.composeMessage ?? null,\n },\n eventAuthority: {\n index: 2,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 3,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: ClearComposeInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getClearComposeInstructionDataSerializer().serialize(\n resolvedArgs as ClearComposeInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type InitConfigInstructionAccounts = {\n /** only the delegate can initialize the config accounts */\n delegate: Signer;\n oappRegistry: PublicKey | Pda;\n /** The PDA signer to the message lib when the endpoint calls the message lib program. */\n messageLibInfo: PublicKey | Pda;\n /** the pda of the message_lib_program */\n messageLib: PublicKey | Pda;\n messageLibProgram: PublicKey | Pda;\n};\n\n// Data.\nexport type InitConfigInstructionData = {\n discriminator: Uint8Array;\n oapp: PublicKey;\n eid: number;\n};\n\nexport type InitConfigInstructionDataArgs = { oapp: PublicKey; eid: number };\n\nexport function getInitConfigInstructionDataSerializer(): Serializer<\n InitConfigInstructionDataArgs,\n InitConfigInstructionData\n> {\n return mapSerializer<\n InitConfigInstructionDataArgs,\n any,\n InitConfigInstructionData\n >(\n struct<InitConfigInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['oapp', publicKeySerializer()],\n ['eid', u32()],\n ],\n { description: 'InitConfigInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([23, 235, 115, 232, 168, 96, 1, 231]),\n })\n ) as Serializer<InitConfigInstructionDataArgs, InitConfigInstructionData>;\n}\n\n// Args.\nexport type InitConfigInstructionArgs = InitConfigInstructionDataArgs;\n\n// Instruction.\nexport function initConfig(\n context: Pick<Context, 'programs'>,\n input: InitConfigInstructionAccounts & InitConfigInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n delegate: {\n index: 0,\n isWritable: false as boolean,\n value: input.delegate ?? null,\n },\n oappRegistry: {\n index: 1,\n isWritable: false as boolean,\n value: input.oappRegistry ?? null,\n },\n messageLibInfo: {\n index: 2,\n isWritable: false as boolean,\n value: input.messageLibInfo ?? null,\n },\n messageLib: {\n index: 3,\n isWritable: false as boolean,\n value: input.messageLib ?? null,\n },\n messageLibProgram: {\n index: 4,\n isWritable: false as boolean,\n value: input.messageLibProgram ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: InitConfigInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getInitConfigInstructionDataSerializer().serialize(\n resolvedArgs as InitConfigInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type InitDefaultReceiveLibraryInstructionAccounts = {\n admin: Signer;\n endpoint: PublicKey | Pda;\n defaultReceiveLibraryConfig: PublicKey | Pda;\n messageLibInfo: PublicKey | Pda;\n systemProgram?: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type InitDefaultReceiveLibraryInstructionData = {\n discriminator: Uint8Array;\n eid: number;\n newLib: PublicKey;\n};\n\nexport type InitDefaultReceiveLibraryInstructionDataArgs = {\n eid: number;\n newLib: PublicKey;\n};\n\nexport function getInitDefaultReceiveLibraryInstructionDataSerializer(): Serializer<\n InitDefaultReceiveLibraryInstructionDataArgs,\n InitDefaultReceiveLibraryInstructionData\n> {\n return mapSerializer<\n InitDefaultReceiveLibraryInstructionDataArgs,\n any,\n InitDefaultReceiveLibraryInstructionData\n >(\n struct<InitDefaultReceiveLibraryInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['eid', u32()],\n ['newLib', publicKeySerializer()],\n ],\n { description: 'InitDefaultReceiveLibraryInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([32, 202, 76, 22, 42, 249, 227, 109]),\n })\n ) as Serializer<\n InitDefaultReceiveLibraryInstructionDataArgs,\n InitDefaultReceiveLibraryInstructionData\n >;\n}\n\n// Args.\nexport type InitDefaultReceiveLibraryInstructionArgs =\n InitDefaultReceiveLibraryInstructionDataArgs;\n\n// Instruction.\nexport function initDefaultReceiveLibrary(\n context: Pick<Context, 'programs'>,\n input: InitDefaultReceiveLibraryInstructionAccounts &\n InitDefaultReceiveLibraryInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: true as boolean,\n value: input.admin ?? null,\n },\n endpoint: {\n index: 1,\n isWritable: false as boolean,\n value: input.endpoint ?? null,\n },\n defaultReceiveLibraryConfig: {\n index: 2,\n isWritable: true as boolean,\n value: input.defaultReceiveLibraryConfig ?? null,\n },\n messageLibInfo: {\n index: 3,\n isWritable: false as boolean,\n value: input.messageLibInfo ?? null,\n },\n systemProgram: {\n index: 4,\n isWritable: false as boolean,\n value: input.systemProgram ?? null,\n },\n eventAuthority: {\n index: 5,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 6,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: InitDefaultReceiveLibraryInstructionArgs = { ...input };\n\n // Default values.\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data =\n getInitDefaultReceiveLibraryInstructionDataSerializer().serialize(\n resolvedArgs as InitDefaultReceiveLibraryInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type InitDefaultSendLibraryInstructionAccounts = {\n admin: Signer;\n endpoint: PublicKey | Pda;\n defaultSendLibraryConfig: PublicKey | Pda;\n messageLibInfo: PublicKey | Pda;\n systemProgram?: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type InitDefaultSendLibraryInstructionData = {\n discriminator: Uint8Array;\n eid: number;\n newLib: PublicKey;\n};\n\nexport type InitDefaultSendLibraryInstructionDataArgs = {\n eid: number;\n newLib: PublicKey;\n};\n\nexport function getInitDefaultSendLibraryInstructionDataSerializer(): Serializer<\n InitDefaultSendLibraryInstructionDataArgs,\n InitDefaultSendLibraryInstructionData\n> {\n return mapSerializer<\n InitDefaultSendLibraryInstructionDataArgs,\n any,\n InitDefaultSendLibraryInstructionData\n >(\n struct<InitDefaultSendLibraryInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['eid', u32()],\n ['newLib', publicKeySerializer()],\n ],\n { description: 'InitDefaultSendLibraryInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([120, 187, 15, 31, 174, 97, 138, 58]),\n })\n ) as Serializer<\n InitDefaultSendLibraryInstructionDataArgs,\n InitDefaultSendLibraryInstructionData\n >;\n}\n\n// Args.\nexport type InitDefaultSendLibraryInstructionArgs =\n InitDefaultSendLibraryInstructionDataArgs;\n\n// Instruction.\nexport function initDefaultSendLibrary(\n context: Pick<Context, 'programs'>,\n input: InitDefaultSendLibraryInstructionAccounts &\n InitDefaultSendLibraryInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: true as boolean,\n value: input.admin ?? null,\n },\n endpoint: {\n index: 1,\n isWritable: false as boolean,\n value: input.endpoint ?? null,\n },\n defaultSendLibraryConfig: {\n index: 2,\n isWritable: true as boolean,\n value: input.defaultSendLibraryConfig ?? null,\n },\n messageLibInfo: {\n index: 3,\n isWritable: false as boolean,\n value: input.messageLibInfo ?? null,\n },\n systemProgram: {\n index: 4,\n isWritable: false as boolean,\n value: input.systemProgram ?? null,\n },\n eventAuthority: {\n index: 5,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 6,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: InitDefaultSendLibraryInstructionArgs = { ...input };\n\n // Default values.\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getInitDefaultSendLibraryInstructionDataSerializer().serialize(\n resolvedArgs as InitDefaultSendLibraryInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type InitEndpointInstructionAccounts = {\n payer?: Signer;\n endpoint: PublicKey | Pda;\n systemProgram?: PublicKey | Pda;\n};\n\n// Data.\nexport type InitEndpointInstructionData = {\n discriminator: Uint8Array;\n eid: number;\n admin: PublicKey;\n};\n\nexport type InitEndpointInstructionDataArgs = { eid: number; admin: PublicKey };\n\nexport function getInitEndpointInstructionDataSerializer(): Serializer<\n InitEndpointInstructionDataArgs,\n InitEndpointInstructionData\n> {\n return mapSerializer<\n InitEndpointInstructionDataArgs,\n any,\n InitEndpointInstructionData\n >(\n struct<InitEndpointInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['eid', u32()],\n ['admin', publicKeySerializer()],\n ],\n { description: 'InitEndpointInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([178, 30, 29, 207, 120, 225, 246, 134]),\n })\n ) as Serializer<InitEndpointInstructionDataArgs, InitEndpointInstructionData>;\n}\n\n// Args.\nexport type InitEndpointInstructionArgs = InitEndpointInstructionDataArgs;\n\n// Instruction.\nexport function initEndpoint(\n context: Pick<Context, 'payer' | 'programs'>,\n input: InitEndpointInstructionAccounts & InitEndpointInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n payer: {\n index: 0,\n isWritable: true as boolean,\n value: input.payer ?? null,\n },\n endpoint: {\n index: 1,\n isWritable: true as boolean,\n value: input.endpoint ?? null,\n },\n systemProgram: {\n index: 2,\n isWritable: false as boolean,\n value: input.systemProgram ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: InitEndpointInstructionArgs = { ...input };\n\n // Default values.\n if (!resolvedAccounts.payer.value) {\n resolvedAccounts.payer.value = context.payer;\n }\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getInitEndpointInstructionDataSerializer().serialize(\n resolvedArgs as InitEndpointInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type InitNonceInstructionAccounts = {\n /** only the delegate can initialize the nonce accounts */\n delegate: Signer;\n oappRegistry: PublicKey | Pda;\n nonce: PublicKey | Pda;\n pendingInboundNonce: PublicKey | Pda;\n systemProgram?: PublicKey | Pda;\n};\n\n// Data.\nexport type InitNonceInstructionData = {\n discriminator: Uint8Array;\n localOapp: PublicKey;\n remoteEid: number;\n remoteOapp: Uint8Array;\n};\n\nexport type InitNonceInstructionDataArgs = {\n localOapp: PublicKey;\n remoteEid: number;\n remoteOapp: Uint8Array;\n};\n\nexport function getInitNonceInstructionDataSerializer(): Serializer<\n InitNonceInstructionDataArgs,\n InitNonceInstructionData\n> {\n return mapSerializer<\n InitNonceInstructionDataArgs,\n any,\n InitNonceInstructionData\n >(\n struct<InitNonceInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['localOapp', publicKeySerializer()],\n ['remoteEid', u32()],\n ['remoteOapp', bytes({ size: 32 })],\n ],\n { description: 'InitNonceInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([204, 171, 16, 214, 182, 191, 27, 196]),\n })\n ) as Serializer<InitNonceInstructionDataArgs, InitNonceInstructionData>;\n}\n\n// Args.\nexport type InitNonceInstructionArgs = InitNonceInstructionDataArgs;\n\n// Instruction.\nexport function initNonce(\n context: Pick<Context, 'programs'>,\n input: InitNonceInstructionAccounts & InitNonceInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n delegate: {\n index: 0,\n isWritable: true as boolean,\n value: input.delegate ?? null,\n },\n oappRegistry: {\n index: 1,\n isWritable: false as boolean,\n value: input.oappRegistry ?? null,\n },\n nonce: {\n index: 2,\n isWritable: true as boolean,\n value: input.nonce ?? null,\n },\n pendingInboundNonce: {\n index: 3,\n isWritable: true as boolean,\n value: input.pendingInboundNonce ?? null,\n },\n systemProgram: {\n index: 4,\n isWritable: false as boolean,\n value: input.systemProgram ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: InitNonceInstructionArgs = { ...input };\n\n // Default values.\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getInitNonceInstructionDataSerializer().serialize(\n resolvedArgs as InitNonceInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type InitReceiveLibraryInstructionAccounts = {\n /** only the delegate can initialize the send_library_config */\n delegate: Signer;\n oappRegistry: PublicKey | Pda;\n receiveLibraryConfig: PublicKey | Pda;\n systemProgram?: PublicKey | Pda;\n};\n\n// Data.\nexport type InitReceiveLibraryInstructionData = {\n discriminator: Uint8Array;\n receiver: PublicKey;\n eid: number;\n};\n\nexport type InitReceiveLibraryInstructionDataArgs = {\n receiver: PublicKey;\n eid: number;\n};\n\nexport function getInitReceiveLibraryInstructionDataSerializer(): Serializer<\n InitReceiveLibraryInstructionDataArgs,\n InitReceiveLibraryInstructionData\n> {\n return mapSerializer<\n InitReceiveLibraryInstructionDataArgs,\n any,\n InitReceiveLibraryInstructionData\n >(\n struct<InitReceiveLibraryInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['receiver', publicKeySerializer()],\n ['eid', u32()],\n ],\n { description: 'InitReceiveLibraryInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([197, 114, 81, 100, 45, 233, 36, 230]),\n })\n ) as Serializer<\n InitReceiveLibraryInstructionDataArgs,\n InitReceiveLibraryInstructionData\n >;\n}\n\n// Args.\nexport type InitReceiveLibraryInstructionArgs =\n InitReceiveLibraryInstructionDataArgs;\n\n// Instruction.\nexport function initReceiveLibrary(\n context: Pick<Context, 'programs'>,\n input: InitReceiveLibraryInstructionAccounts &\n InitReceiveLibraryInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n delegate: {\n index: 0,\n isWritable: true as boolean,\n value: input.delegate ?? null,\n },\n oappRegistry: {\n index: 1,\n isWritable: false as boolean,\n value: input.oappRegistry ?? null,\n },\n receiveLibraryConfig: {\n index: 2,\n isWritable: true as boolean,\n value: input.receiveLibraryConfig ?? null,\n },\n systemProgram: {\n index: 3,\n isWritable: false as boolean,\n value: input.systemProgram ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: InitReceiveLibraryInstructionArgs = { ...input };\n\n // Default values.\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getInitReceiveLibraryInstructionDataSerializer().serialize(\n resolvedArgs as InitReceiveLibraryInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type InitSendLibraryInstructionAccounts = {\n /** only the delegate can initialize the send_library_config */\n delegate: Signer;\n oappRegistry: PublicKey | Pda;\n sendLibraryConfig: PublicKey | Pda;\n systemProgram?: PublicKey | Pda;\n};\n\n// Data.\nexport type InitSendLibraryInstructionData = {\n discriminator: Uint8Array;\n sender: PublicKey;\n eid: number;\n};\n\nexport type InitSendLibraryInstructionDataArgs = {\n sender: PublicKey;\n eid: number;\n};\n\nexport function getInitSendLibraryInstructionDataSerializer(): Serializer<\n InitSendLibraryInstructionDataArgs,\n InitSendLibraryInstructionData\n> {\n return mapSerializer<\n InitSendLibraryInstructionDataArgs,\n any,\n InitSendLibraryInstructionData\n >(\n struct<InitSendLibraryInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['sender', publicKeySerializer()],\n ['eid', u32()],\n ],\n { description: 'InitSendLibraryInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([156, 24, 235, 120, 73, 193, 144, 19]),\n })\n ) as Serializer<\n InitSendLibraryInstructionDataArgs,\n InitSendLibraryInstructionData\n >;\n}\n\n// Args.\nexport type InitSendLibraryInstructionArgs = InitSendLibraryInstructionDataArgs;\n\n// Instruction.\nexport function initSendLibrary(\n context: Pick<Context, 'programs'>,\n input: InitSendLibraryInstructionAccounts & InitSendLibraryInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n delegate: {\n index: 0,\n isWritable: true as boolean,\n value: input.delegate ?? null,\n },\n oappRegistry: {\n index: 1,\n isWritable: false as boolean,\n value: input.oappRegistry ?? null,\n },\n sendLibraryConfig: {\n index: 2,\n isWritable: true as boolean,\n value: input.sendLibraryConfig ?? null,\n },\n systemProgram: {\n index: 3,\n isWritable: false as boolean,\n value: input.systemProgram ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: InitSendLibraryInstructionArgs = { ...input };\n\n // Default values.\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getInitSendLibraryInstructionDataSerializer().serialize(\n resolvedArgs as InitSendLibraryInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type InitVerifyInstructionAccounts = {\n payer?: Signer;\n nonce: PublicKey | Pda;\n payloadHash: PublicKey | Pda;\n systemProgram?: PublicKey | Pda;\n};\n\n// Data.\nexport type InitVerifyInstructionData = {\n discriminator: Uint8Array;\n srcEid: number;\n sender: Uint8Array;\n receiver: PublicKey;\n nonce: bigint;\n};\n\nexport type InitVerifyInstructionDataArgs = {\n srcEid: number;\n sender: Uint8Array;\n receiver: PublicKey;\n nonce: number | bigint;\n};\n\nexport function getInitVerifyInstructionDataSerializer(): Serializer<\n InitVerifyInstructionDataArgs,\n InitVerifyInstructionData\n> {\n return mapSerializer<\n InitVerifyInstructionDataArgs,\n any,\n InitVerifyInstructionData\n >(\n struct<InitVerifyInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['srcEid', u32()],\n ['sender', bytes({ size: 32 })],\n ['receiver', publicKeySerializer()],\n ['nonce', u64()],\n ],\n { description: 'InitVerifyInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([76, 246, 244, 124, 115, 17, 235, 91]),\n })\n ) as Serializer<InitVerifyInstructionDataArgs, InitVerifyInstructionData>;\n}\n\n// Args.\nexport type InitVerifyInstructionArgs = InitVerifyInstructionDataArgs;\n\n// Instruction.\nexport function initVerify(\n context: Pick<Context, 'payer' | 'programs'>,\n accounts: InitVerifyInstructionAccounts,\n args: InitVerifyInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n payer: {\n index: 0,\n isWritable: true as boolean,\n value: accounts.payer ?? null,\n },\n nonce: {\n index: 1,\n isWritable: false as boolean,\n value: accounts.nonce ?? null,\n },\n payloadHash: {\n index: 2,\n isWritable: true as boolean,\n value: accounts.payloadHash ?? null,\n },\n systemProgram: {\n index: 3,\n isWritable: false as boolean,\n value: accounts.systemProgram ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: InitVerifyInstructionArgs = { ...args };\n\n // Default values.\n if (!resolvedAccounts.payer.value) {\n resolvedAccounts.payer.value = context.payer;\n }\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getInitVerifyInstructionDataSerializer().serialize(\n resolvedArgs as InitVerifyInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u16,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type LzComposeAlertInstructionAccounts = {\n executor: Signer;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type LzComposeAlertInstructionData = {\n discriminator: Uint8Array;\n from: PublicKey;\n to: PublicKey;\n guid: Uint8Array;\n index: number;\n computeUnits: bigint;\n value: bigint;\n message: Uint8Array;\n extraData: Uint8Array;\n reason: Uint8Array;\n};\n\nexport type LzComposeAlertInstructionDataArgs = {\n from: PublicKey;\n to: PublicKey;\n guid: Uint8Array;\n index: number;\n computeUnits: number | bigint;\n value: number | bigint;\n message: Uint8Array;\n extraData: Uint8Array;\n reason: Uint8Array;\n};\n\nexport function getLzComposeAlertInstructionDataSerializer(): Serializer<\n LzComposeAlertInstructionDataArgs,\n LzComposeAlertInstructionData\n> {\n return mapSerializer<\n LzComposeAlertInstructionDataArgs,\n any,\n LzComposeAlertInstructionData\n >(\n struct<LzComposeAlertInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['from', publicKeySerializer()],\n ['to', publicKeySerializer()],\n ['guid', bytes({ size: 32 })],\n ['index', u16()],\n ['computeUnits', u64()],\n ['value', u64()],\n ['message', bytes({ size: u32() })],\n ['extraData', bytes({ size: u32() })],\n ['reason', bytes({ size: u32() })],\n ],\n { description: 'LzComposeAlertInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([27, 91, 198, 77, 66, 92, 122, 167]),\n })\n ) as Serializer<\n LzComposeAlertInstructionDataArgs,\n LzComposeAlertInstructionData\n >;\n}\n\n// Args.\nexport type LzComposeAlertInstructionArgs = LzComposeAlertInstructionDataArgs;\n\n// Instruction.\nexport function lzComposeAlert(\n context: Pick<Context, 'programs'>,\n input: LzComposeAlertInstructionAccounts & LzComposeAlertInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n executor: {\n index: 0,\n isWritable: false as boolean,\n value: input.executor ?? null,\n },\n eventAuthority: {\n index: 1,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 2,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: LzComposeAlertInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getLzComposeAlertInstructionDataSerializer().serialize(\n resolvedArgs as LzComposeAlertInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type LzReceiveAlertInstructionAccounts = {\n executor: Signer;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type LzReceiveAlertInstructionData = {\n discriminator: Uint8Array;\n receiver: PublicKey;\n srcEid: number;\n sender: Uint8Array;\n nonce: bigint;\n guid: Uint8Array;\n computeUnits: bigint;\n value: bigint;\n message: Uint8Array;\n extraData: Uint8Array;\n reason: Uint8Array;\n};\n\nexport type LzReceiveAlertInstructionDataArgs = {\n receiver: PublicKey;\n srcEid: number;\n sender: Uint8Array;\n nonce: number | bigint;\n guid: Uint8Array;\n computeUnits: number | bigint;\n value: number | bigint;\n message: Uint8Array;\n extraData: Uint8Array;\n reason: Uint8Array;\n};\n\nexport function getLzReceiveAlertInstructionDataSerializer(): Serializer<\n LzReceiveAlertInstructionDataArgs,\n LzReceiveAlertInstructionData\n> {\n return mapSerializer<\n LzReceiveAlertInstructionDataArgs,\n any,\n LzReceiveAlertInstructionData\n >(\n struct<LzReceiveAlertInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['receiver', publicKeySerializer()],\n ['srcEid', u32()],\n ['sender', bytes({ size: 32 })],\n ['nonce', u64()],\n ['guid', bytes({ size: 32 })],\n ['computeUnits', u64()],\n ['value', u64()],\n ['message', bytes({ size: u32() })],\n ['extraData', bytes({ size: u32() })],\n ['reason', bytes({ size: u32() })],\n ],\n { description: 'LzReceiveAlertInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([131, 141, 48, 222, 15, 235, 141, 160]),\n })\n ) as Serializer<\n LzReceiveAlertInstructionDataArgs,\n LzReceiveAlertInstructionData\n >;\n}\n\n// Args.\nexport type LzReceiveAlertInstructionArgs = LzReceiveAlertInstructionDataArgs;\n\n// Instruction.\nexport function lzReceiveAlert(\n context: Pick<Context, 'programs'>,\n input: LzReceiveAlertInstructionAccounts & LzReceiveAlertInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n executor: {\n index: 0,\n isWritable: false as boolean,\n value: input.executor ?? null,\n },\n eventAuthority: {\n index: 1,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 2,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: LzReceiveAlertInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getLzReceiveAlertInstructionDataSerializer().serialize(\n resolvedArgs as LzReceiveAlertInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type NilifyInstructionAccounts = {\n /** The PDA of the OApp or delegate */\n signer: Signer;\n oappRegistry: PublicKey | Pda;\n nonce: PublicKey | Pda;\n pendingInboundNonce: PublicKey | Pda;\n payloadHash: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type NilifyInstructionData = {\n discriminator: Uint8Array;\n receiver: PublicKey;\n srcEid: number;\n sender: Uint8Array;\n nonce: bigint;\n payloadHash: Uint8Array;\n};\n\nexport type NilifyInstructionDataArgs = {\n receiver: PublicKey;\n srcEid: number;\n sender: Uint8Array;\n nonce: number | bigint;\n payloadHash: Uint8Array;\n};\n\nexport function getNilifyInstructionDataSerializer(): Serializer<\n NilifyInstructionDataArgs,\n NilifyInstructionData\n> {\n return mapSerializer<NilifyInstructionDataArgs, any, NilifyInstructionData>(\n struct<NilifyInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['receiver', publicKeySerializer()],\n ['srcEid', u32()],\n ['sender', bytes({ size: 32 })],\n ['nonce', u64()],\n ['payloadHash', bytes({ size: 32 })],\n ],\n { description: 'NilifyInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([143, 136, 129, 199, 36, 35, 160, 85]),\n })\n ) as Serializer<NilifyInstructionDataArgs, NilifyInstructionData>;\n}\n\n// Args.\nexport type NilifyInstructionArgs = NilifyInstructionDataArgs;\n\n// Instruction.\nexport function nilify(\n context: Pick<Context, 'programs'>,\n accounts: NilifyInstructionAccounts,\n args: NilifyInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n signer: {\n index: 0,\n isWritable: false as boolean,\n value: accounts.signer ?? null,\n },\n oappRegistry: {\n index: 1,\n isWritable: false as boolean,\n value: accounts.oappRegistry ?? null,\n },\n nonce: {\n index: 2,\n isWritable: true as boolean,\n value: accounts.nonce ?? null,\n },\n pendingInboundNonce: {\n index: 3,\n isWritable: true as boolean,\n value: accounts.pendingInboundNonce ?? null,\n },\n payloadHash: {\n index: 4,\n isWritable: true as boolean,\n value: accounts.payloadHash ?? null,\n },\n eventAuthority: {\n index: 5,\n isWritable: false as boolean,\n value: accounts.eventAuthority ?? null,\n },\n program: {\n index: 6,\n isWritable: false as boolean,\n value: accounts.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: NilifyInstructionArgs = { ...args };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getNilifyInstructionDataSerializer().serialize(\n resolvedArgs as NilifyInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bool,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type QuoteInstructionAccounts = {\n sendLibraryProgram: PublicKey | Pda;\n sendLibraryConfig: PublicKey | Pda;\n defaultSendLibraryConfig: PublicKey | Pda;\n /** The PDA signer to the send library when the endpoint calls the send library. */\n sendLibraryInfo: PublicKey | Pda;\n endpoint: PublicKey | Pda;\n nonce: PublicKey | Pda;\n};\n\n// Data.\nexport type QuoteInstructionData = {\n discriminator: Uint8Array;\n sender: PublicKey;\n dstEid: number;\n receiver: Uint8Array;\n message: Uint8Array;\n options: Uint8Array;\n payInLzToken: boolean;\n};\n\nexport type QuoteInstructionDataArgs = {\n sender: PublicKey;\n dstEid: number;\n receiver: Uint8Array;\n message: Uint8Array;\n options: Uint8Array;\n payInLzToken: boolean;\n};\n\nexport function getQuoteInstructionDataSerializer(): Serializer<\n QuoteInstructionDataArgs,\n QuoteInstructionData\n> {\n return mapSerializer<QuoteInstructionDataArgs, any, QuoteInstructionData>(\n struct<QuoteInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['sender', publicKeySerializer()],\n ['dstEid', u32()],\n ['receiver', bytes({ size: 32 })],\n ['message', bytes({ size: u32() })],\n ['options', bytes({ size: u32() })],\n ['payInLzToken', bool()],\n ],\n { description: 'QuoteInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([149, 42, 109, 247, 134, 146, 213, 123]),\n })\n ) as Serializer<QuoteInstructionDataArgs, QuoteInstructionData>;\n}\n\n// Args.\nexport type QuoteInstructionArgs = QuoteInstructionDataArgs;\n\n// Instruction.\nexport function quote(\n context: Pick<Context, 'programs'>,\n input: QuoteInstructionAccounts & QuoteInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n sendLibraryProgram: {\n index: 0,\n isWritable: false as boolean,\n value: input.sendLibraryProgram ?? null,\n },\n sendLibraryConfig: {\n index: 1,\n isWritable: false as boolean,\n value: input.sendLibraryConfig ?? null,\n },\n defaultSendLibraryConfig: {\n index: 2,\n isWritable: false as boolean,\n value: input.defaultSendLibraryConfig ?? null,\n },\n sendLibraryInfo: {\n index: 3,\n isWritable: false as boolean,\n value: input.sendLibraryInfo ?? null,\n },\n endpoint: {\n index: 4,\n isWritable: false as boolean,\n value: input.endpoint ?? null,\n },\n nonce: {\n index: 5,\n isWritable: false as boolean,\n value: input.nonce ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: QuoteInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getQuoteInstructionDataSerializer().serialize(\n resolvedArgs as QuoteInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\nimport {\n MessageLibType,\n MessageLibTypeArgs,\n getMessageLibTypeSerializer,\n} from '../types';\n\n// Accounts.\nexport type RegisterLibraryInstructionAccounts = {\n admin: Signer;\n endpoint: PublicKey | Pda;\n messageLibInfo: PublicKey | Pda;\n systemProgram?: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type RegisterLibraryInstructionData = {\n discriminator: Uint8Array;\n libProgram: PublicKey;\n libType: MessageLibType;\n};\n\nexport type RegisterLibraryInstructionDataArgs = {\n libProgram: PublicKey;\n libType: MessageLibTypeArgs;\n};\n\nexport function getRegisterLibraryInstructionDataSerializer(): Serializer<\n RegisterLibraryInstructionDataArgs,\n RegisterLibraryInstructionData\n> {\n return mapSerializer<\n RegisterLibraryInstructionDataArgs,\n any,\n RegisterLibraryInstructionData\n >(\n struct<RegisterLibraryInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['libProgram', publicKeySerializer()],\n ['libType', getMessageLibTypeSerializer()],\n ],\n { description: 'RegisterLibraryInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([23, 171, 28, 116, 111, 193, 238, 142]),\n })\n ) as Serializer<\n RegisterLibraryInstructionDataArgs,\n RegisterLibraryInstructionData\n >;\n}\n\n// Args.\nexport type RegisterLibraryInstructionArgs = RegisterLibraryInstructionDataArgs;\n\n// Instruction.\nexport function registerLibrary(\n context: Pick<Context, 'programs'>,\n input: RegisterLibraryInstructionAccounts & RegisterLibraryInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: true as boolean,\n value: input.admin ?? null,\n },\n endpoint: {\n index: 1,\n isWritable: false as boolean,\n value: input.endpoint ?? null,\n },\n messageLibInfo: {\n index: 2,\n isWritable: true as boolean,\n value: input.messageLibInfo ?? null,\n },\n systemProgram: {\n index: 3,\n isWritable: false as boolean,\n value: input.systemProgram ?? null,\n },\n eventAuthority: {\n index: 4,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 5,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: RegisterLibraryInstructionArgs = { ...input };\n\n // Default values.\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getRegisterLibraryInstructionDataSerializer().serialize(\n resolvedArgs as RegisterLibraryInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type RegisterOappInstructionAccounts = {\n payer?: Signer;\n /** The PDA of the OApp */\n oapp: Signer;\n oappRegistry: PublicKey | Pda;\n systemProgram?: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type RegisterOappInstructionData = {\n discriminator: Uint8Array;\n delegate: PublicKey;\n};\n\nexport type RegisterOappInstructionDataArgs = { delegate: PublicKey };\n\nexport function getRegisterOappInstructionDataSerializer(): Serializer<\n RegisterOappInstructionDataArgs,\n RegisterOappInstructionData\n> {\n return mapSerializer<\n RegisterOappInstructionDataArgs,\n any,\n RegisterOappInstructionData\n >(\n struct<RegisterOappInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['delegate', publicKeySerializer()],\n ],\n { description: 'RegisterOappInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([129, 89, 71, 68, 11, 82, 210, 125]),\n })\n ) as Serializer<RegisterOappInstructionDataArgs, RegisterOappInstructionData>;\n}\n\n// Args.\nexport type RegisterOappInstructionArgs = RegisterOappInstructionDataArgs;\n\n// Instruction.\nexport function registerOapp(\n context: Pick<Context, 'payer' | 'programs'>,\n input: RegisterOappInstructionAccounts & RegisterOappInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n payer: {\n index: 0,\n isWritable: true as boolean,\n value: input.payer ?? null,\n },\n oapp: { index: 1, isWritable: false as boolean, value: input.oapp ?? null },\n oappRegistry: {\n index: 2,\n isWritable: true as boolean,\n value: input.oappRegistry ?? null,\n },\n systemProgram: {\n index: 3,\n isWritable: false as boolean,\n value: input.systemProgram ?? null,\n },\n eventAuthority: {\n index: 4,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 5,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: RegisterOappInstructionArgs = { ...input };\n\n // Default values.\n if (!resolvedAccounts.payer.value) {\n resolvedAccounts.payer.value = context.payer;\n }\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getRegisterOappInstructionDataSerializer().serialize(\n resolvedArgs as RegisterOappInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type SendInstructionAccounts = {\n sender: Signer;\n sendLibraryProgram: PublicKey | Pda;\n sendLibraryConfig: PublicKey | Pda;\n defaultSendLibraryConfig: PublicKey | Pda;\n /** The PDA signer to the send library when the endpoint calls the send library. */\n sendLibraryInfo: PublicKey | Pda;\n endpoint: PublicKey | Pda;\n nonce: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type SendInstructionData = {\n discriminator: Uint8Array;\n dstEid: number;\n receiver: Uint8Array;\n message: Uint8Array;\n options: Uint8Array;\n nativeFee: bigint;\n lzTokenFee: bigint;\n};\n\nexport type SendInstructionDataArgs = {\n dstEid: number;\n receiver: Uint8Array;\n message: Uint8Array;\n options: Uint8Array;\n nativeFee: number | bigint;\n lzTokenFee: number | bigint;\n};\n\nexport function getSendInstructionDataSerializer(): Serializer<\n SendInstructionDataArgs,\n SendInstructionData\n> {\n return mapSerializer<SendInstructionDataArgs, any, SendInstructionData>(\n struct<SendInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['dstEid', u32()],\n ['receiver', bytes({ size: 32 })],\n ['message', bytes({ size: u32() })],\n ['options', bytes({ size: u32() })],\n ['nativeFee', u64()],\n ['lzTokenFee', u64()],\n ],\n { description: 'SendInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([102, 251, 20, 187, 65, 75, 12, 69]),\n })\n ) as Serializer<SendInstructionDataArgs, SendInstructionData>;\n}\n\n// Args.\nexport type SendInstructionArgs = SendInstructionDataArgs;\n\n// Instruction.\nexport function send(\n context: Pick<Context, 'programs'>,\n input: SendInstructionAccounts & SendInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n sender: {\n index: 0,\n isWritable: false as boolean,\n value: input.sender ?? null,\n },\n sendLibraryProgram: {\n index: 1,\n isWritable: false as boolean,\n value: input.sendLibraryProgram ?? null,\n },\n sendLibraryConfig: {\n index: 2,\n isWritable: false as boolean,\n value: input.sendLibraryConfig ?? null,\n },\n defaultSendLibraryConfig: {\n index: 3,\n isWritable: false as boolean,\n value: input.defaultSendLibraryConfig ?? null,\n },\n sendLibraryInfo: {\n index: 4,\n isWritable: false as boolean,\n value: input.sendLibraryInfo ?? null,\n },\n endpoint: {\n index: 5,\n isWritable: false as boolean,\n value: input.endpoint ?? null,\n },\n nonce: {\n index: 6,\n isWritable: true as boolean,\n value: input.nonce ?? null,\n },\n eventAuthority: {\n index: 7,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 8,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SendInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSendInstructionDataSerializer().serialize(\n resolvedArgs as SendInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u16,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type SendComposeInstructionAccounts = {\n from: Signer;\n payer?: Signer;\n composeMessage: PublicKey | Pda;\n systemProgram?: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type SendComposeInstructionData = {\n discriminator: Uint8Array;\n to: PublicKey;\n guid: Uint8Array;\n index: number;\n message: Uint8Array;\n};\n\nexport type SendComposeInstructionDataArgs = {\n to: PublicKey;\n guid: Uint8Array;\n index: number;\n message: Uint8Array;\n};\n\nexport function getSendComposeInstructionDataSerializer(): Serializer<\n SendComposeInstructionDataArgs,\n SendComposeInstructionData\n> {\n return mapSerializer<\n SendComposeInstructionDataArgs,\n any,\n SendComposeInstructionData\n >(\n struct<SendComposeInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['to', publicKeySerializer()],\n ['guid', bytes({ size: 32 })],\n ['index', u16()],\n ['message', bytes({ size: u32() })],\n ],\n { description: 'SendComposeInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([75, 38, 228, 168, 43, 39, 238, 229]),\n })\n ) as Serializer<SendComposeInstructionDataArgs, SendComposeInstructionData>;\n}\n\n// Args.\nexport type SendComposeInstructionArgs = SendComposeInstructionDataArgs;\n\n// Instruction.\nexport function sendCompose(\n context: Pick<Context, 'payer' | 'programs'>,\n input: SendComposeInstructionAccounts & SendComposeInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n from: { index: 0, isWritable: false as boolean, value: input.from ?? null },\n payer: {\n index: 1,\n isWritable: true as boolean,\n value: input.payer ?? null,\n },\n composeMessage: {\n index: 2,\n isWritable: true as boolean,\n value: input.composeMessage ?? null,\n },\n systemProgram: {\n index: 3,\n isWritable: false as boolean,\n value: input.systemProgram ?? null,\n },\n eventAuthority: {\n index: 4,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 5,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SendComposeInstructionArgs = { ...input };\n\n // Default values.\n if (!resolvedAccounts.payer.value) {\n resolvedAccounts.payer.value = context.payer;\n }\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSendComposeInstructionDataSerializer().serialize(\n resolvedArgs as SendComposeInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type SetConfigInstructionAccounts = {\n /** The PDA of the OApp or delegate */\n signer: Signer;\n oappRegistry: PublicKey | Pda;\n /** The PDA signer to the message lib when the endpoint calls the message lib program */\n messageLibInfo: PublicKey | Pda;\n /** the pda of the message_lib_program */\n messageLib: PublicKey | Pda;\n messageLibProgram: PublicKey | Pda;\n};\n\n// Data.\nexport type SetConfigInstructionData = {\n discriminator: Uint8Array;\n oapp: PublicKey;\n eid: number;\n configType: number;\n config: Uint8Array;\n};\n\nexport type SetConfigInstructionDataArgs = {\n oapp: PublicKey;\n eid: number;\n configType: number;\n config: Uint8Array;\n};\n\nexport function getSetConfigInstructionDataSerializer(): Serializer<\n SetConfigInstructionDataArgs,\n SetConfigInstructionData\n> {\n return mapSerializer<\n SetConfigInstructionDataArgs,\n any,\n SetConfigInstructionData\n >(\n struct<SetConfigInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['oapp', publicKeySerializer()],\n ['eid', u32()],\n ['configType', u32()],\n ['config', bytes({ size: u32() })],\n ],\n { description: 'SetConfigInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([108, 158, 154, 175, 212, 98, 52, 66]),\n })\n ) as Serializer<SetConfigInstructionDataArgs, SetConfigInstructionData>;\n}\n\n// Args.\nexport type SetConfigInstructionArgs = SetConfigInstructionDataArgs;\n\n// Instruction.\nexport function setConfig(\n context: Pick<Context, 'programs'>,\n input: SetConfigInstructionAccounts & SetConfigInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n signer: {\n index: 0,\n isWritable: false as boolean,\n value: input.signer ?? null,\n },\n oappRegistry: {\n index: 1,\n isWritable: false as boolean,\n value: input.oappRegistry ?? null,\n },\n messageLibInfo: {\n index: 2,\n isWritable: false as boolean,\n value: input.messageLibInfo ?? null,\n },\n messageLib: {\n index: 3,\n isWritable: false as boolean,\n value: input.messageLib ?? null,\n },\n messageLibProgram: {\n index: 4,\n isWritable: false as boolean,\n value: input.messageLibProgram ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SetConfigInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSetConfigInstructionDataSerializer().serialize(\n resolvedArgs as SetConfigInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type SetDefaultReceiveLibraryInstructionAccounts = {\n admin: Signer;\n endpoint: PublicKey | Pda;\n defaultReceiveLibraryConfig: PublicKey | Pda;\n messageLibInfo: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type SetDefaultReceiveLibraryInstructionData = {\n discriminator: Uint8Array;\n eid: number;\n newLib: PublicKey;\n gracePeriod: bigint;\n};\n\nexport type SetDefaultReceiveLibraryInstructionDataArgs = {\n eid: number;\n newLib: PublicKey;\n gracePeriod: number | bigint;\n};\n\nexport function getSetDefaultReceiveLibraryInstructionDataSerializer(): Serializer<\n SetDefaultReceiveLibraryInstructionDataArgs,\n SetDefaultReceiveLibraryInstructionData\n> {\n return mapSerializer<\n SetDefaultReceiveLibraryInstructionDataArgs,\n any,\n SetDefaultReceiveLibraryInstructionData\n >(\n struct<SetDefaultReceiveLibraryInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['eid', u32()],\n ['newLib', publicKeySerializer()],\n ['gracePeriod', u64()],\n ],\n { description: 'SetDefaultReceiveLibraryInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([14, 162, 167, 212, 13, 20, 151, 129]),\n })\n ) as Serializer<\n SetDefaultReceiveLibraryInstructionDataArgs,\n SetDefaultReceiveLibraryInstructionData\n >;\n}\n\n// Args.\nexport type SetDefaultReceiveLibraryInstructionArgs =\n SetDefaultReceiveLibraryInstructionDataArgs;\n\n// Instruction.\nexport function setDefaultReceiveLibrary(\n context: Pick<Context, 'programs'>,\n input: SetDefaultReceiveLibraryInstructionAccounts &\n SetDefaultReceiveLibraryInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: false as boolean,\n value: input.admin ?? null,\n },\n endpoint: {\n index: 1,\n isWritable: false as boolean,\n value: input.endpoint ?? null,\n },\n defaultReceiveLibraryConfig: {\n index: 2,\n isWritable: true as boolean,\n value: input.defaultReceiveLibraryConfig ?? null,\n },\n messageLibInfo: {\n index: 3,\n isWritable: false as boolean,\n value: input.messageLibInfo ?? null,\n },\n eventAuthority: {\n index: 4,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 5,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SetDefaultReceiveLibraryInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSetDefaultReceiveLibraryInstructionDataSerializer().serialize(\n resolvedArgs as SetDefaultReceiveLibraryInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type SetDefaultReceiveLibraryTimeoutInstructionAccounts = {\n admin: Signer;\n endpoint: PublicKey | Pda;\n defaultReceiveLibraryConfig: PublicKey | Pda;\n messageLibInfo: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type SetDefaultReceiveLibraryTimeoutInstructionData = {\n discriminator: Uint8Array;\n eid: number;\n lib: PublicKey;\n expiry: bigint;\n};\n\nexport type SetDefaultReceiveLibraryTimeoutInstructionDataArgs = {\n eid: number;\n lib: PublicKey;\n expiry: number | bigint;\n};\n\nexport function getSetDefaultReceiveLibraryTimeoutInstructionDataSerializer(): Serializer<\n SetDefaultReceiveLibraryTimeoutInstructionDataArgs,\n SetDefaultReceiveLibraryTimeoutInstructionData\n> {\n return mapSerializer<\n SetDefaultReceiveLibraryTimeoutInstructionDataArgs,\n any,\n SetDefaultReceiveLibraryTimeoutInstructionData\n >(\n struct<SetDefaultReceiveLibraryTimeoutInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['eid', u32()],\n ['lib', publicKeySerializer()],\n ['expiry', u64()],\n ],\n { description: 'SetDefaultReceiveLibraryTimeoutInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([118, 32, 94, 51, 25, 247, 16, 232]),\n })\n ) as Serializer<\n SetDefaultReceiveLibraryTimeoutInstructionDataArgs,\n SetDefaultReceiveLibraryTimeoutInstructionData\n >;\n}\n\n// Args.\nexport type SetDefaultReceiveLibraryTimeoutInstructionArgs =\n SetDefaultReceiveLibraryTimeoutInstructionDataArgs;\n\n// Instruction.\nexport function setDefaultReceiveLibraryTimeout(\n context: Pick<Context, 'programs'>,\n input: SetDefaultReceiveLibraryTimeoutInstructionAccounts &\n SetDefaultReceiveLibraryTimeoutInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: false as boolean,\n value: input.admin ?? null,\n },\n endpoint: {\n index: 1,\n isWritable: false as boolean,\n value: input.endpoint ?? null,\n },\n defaultReceiveLibraryConfig: {\n index: 2,\n isWritable: true as boolean,\n value: input.defaultReceiveLibraryConfig ?? null,\n },\n messageLibInfo: {\n index: 3,\n isWritable: false as boolean,\n value: input.messageLibInfo ?? null,\n },\n eventAuthority: {\n index: 4,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 5,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SetDefaultReceiveLibraryTimeoutInstructionArgs = {\n ...input,\n };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data =\n getSetDefaultReceiveLibraryTimeoutInstructionDataSerializer().serialize(\n resolvedArgs as SetDefaultReceiveLibraryTimeoutInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type SetDefaultSendLibraryInstructionAccounts = {\n admin: Signer;\n endpoint: PublicKey | Pda;\n defaultSendLibraryConfig: PublicKey | Pda;\n messageLibInfo: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type SetDefaultSendLibraryInstructionData = {\n discriminator: Uint8Array;\n eid: number;\n newLib: PublicKey;\n};\n\nexport type SetDefaultSendLibraryInstructionDataArgs = {\n eid: number;\n newLib: PublicKey;\n};\n\nexport function getSetDefaultSendLibraryInstructionDataSerializer(): Serializer<\n SetDefaultSendLibraryInstructionDataArgs,\n SetDefaultSendLibraryInstructionData\n> {\n return mapSerializer<\n SetDefaultSendLibraryInstructionDataArgs,\n any,\n SetDefaultSendLibraryInstructionData\n >(\n struct<SetDefaultSendLibraryInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['eid', u32()],\n ['newLib', publicKeySerializer()],\n ],\n { description: 'SetDefaultSendLibraryInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([220, 215, 110, 127, 237, 178, 215, 170]),\n })\n ) as Serializer<\n SetDefaultSendLibraryInstructionDataArgs,\n SetDefaultSendLibraryInstructionData\n >;\n}\n\n// Args.\nexport type SetDefaultSendLibraryInstructionArgs =\n SetDefaultSendLibraryInstructionDataArgs;\n\n// Instruction.\nexport function setDefaultSendLibrary(\n context: Pick<Context, 'programs'>,\n input: SetDefaultSendLibraryInstructionAccounts &\n SetDefaultSendLibraryInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: false as boolean,\n value: input.admin ?? null,\n },\n endpoint: {\n index: 1,\n isWritable: false as boolean,\n value: input.endpoint ?? null,\n },\n defaultSendLibraryConfig: {\n index: 2,\n isWritable: true as boolean,\n value: input.defaultSendLibraryConfig ?? null,\n },\n messageLibInfo: {\n index: 3,\n isWritable: false as boolean,\n value: input.messageLibInfo ?? null,\n },\n eventAuthority: {\n index: 4,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 5,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SetDefaultSendLibraryInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSetDefaultSendLibraryInstructionDataSerializer().serialize(\n resolvedArgs as SetDefaultSendLibraryInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type SetDelegateInstructionAccounts = {\n /** The PDA of the OApp */\n oapp: Signer;\n oappRegistry: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type SetDelegateInstructionData = {\n discriminator: Uint8Array;\n delegate: PublicKey;\n};\n\nexport type SetDelegateInstructionDataArgs = { delegate: PublicKey };\n\nexport function getSetDelegateInstructionDataSerializer(): Serializer<\n SetDelegateInstructionDataArgs,\n SetDelegateInstructionData\n> {\n return mapSerializer<\n SetDelegateInstructionDataArgs,\n any,\n SetDelegateInstructionData\n >(\n struct<SetDelegateInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['delegate', publicKeySerializer()],\n ],\n { description: 'SetDelegateInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([242, 30, 46, 76, 108, 235, 128, 181]),\n })\n ) as Serializer<SetDelegateInstructionDataArgs, SetDelegateInstructionData>;\n}\n\n// Args.\nexport type SetDelegateInstructionArgs = SetDelegateInstructionDataArgs;\n\n// Instruction.\nexport function setDelegate(\n context: Pick<Context, 'programs'>,\n input: SetDelegateInstructionAccounts & SetDelegateInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n oapp: { index: 0, isWritable: false as boolean, value: input.oapp ?? null },\n oappRegistry: {\n index: 1,\n isWritable: true as boolean,\n value: input.oappRegistry ?? null,\n },\n eventAuthority: {\n index: 2,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 3,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SetDelegateInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSetDelegateInstructionDataSerializer().serialize(\n resolvedArgs as SetDelegateInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Option,\n OptionOrNullable,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n option,\n publicKey as publicKeySerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type SetLzTokenInstructionAccounts = {\n admin: Signer;\n endpoint: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type SetLzTokenInstructionData = {\n discriminator: Uint8Array;\n lzToken: Option<PublicKey>;\n};\n\nexport type SetLzTokenInstructionDataArgs = {\n lzToken: OptionOrNullable<PublicKey>;\n};\n\nexport function getSetLzTokenInstructionDataSerializer(): Serializer<\n SetLzTokenInstructionDataArgs,\n SetLzTokenInstructionData\n> {\n return mapSerializer<\n SetLzTokenInstructionDataArgs,\n any,\n SetLzTokenInstructionData\n >(\n struct<SetLzTokenInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['lzToken', option(publicKeySerializer())],\n ],\n { description: 'SetLzTokenInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([22, 151, 112, 174, 213, 225, 223, 72]),\n })\n ) as Serializer<SetLzTokenInstructionDataArgs, SetLzTokenInstructionData>;\n}\n\n// Args.\nexport type SetLzTokenInstructionArgs = SetLzTokenInstructionDataArgs;\n\n// Instruction.\nexport function setLzToken(\n context: Pick<Context, 'programs'>,\n input: SetLzTokenInstructionAccounts & SetLzTokenInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: false as boolean,\n value: input.admin ?? null,\n },\n endpoint: {\n index: 1,\n isWritable: true as boolean,\n value: input.endpoint ?? null,\n },\n eventAuthority: {\n index: 2,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 3,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SetLzTokenInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSetLzTokenInstructionDataSerializer().serialize(\n resolvedArgs as SetLzTokenInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type SetReceiveLibraryInstructionAccounts = {\n /** The PDA of the OApp or delegate */\n signer: Signer;\n oappRegistry: PublicKey | Pda;\n receiveLibraryConfig: PublicKey | Pda;\n messageLibInfo?: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type SetReceiveLibraryInstructionData = {\n discriminator: Uint8Array;\n receiver: PublicKey;\n eid: number;\n newLib: PublicKey;\n gracePeriod: bigint;\n};\n\nexport type SetReceiveLibraryInstructionDataArgs = {\n receiver: PublicKey;\n eid: number;\n newLib: PublicKey;\n gracePeriod: number | bigint;\n};\n\nexport function getSetReceiveLibraryInstructionDataSerializer(): Serializer<\n SetReceiveLibraryInstructionDataArgs,\n SetReceiveLibraryInstructionData\n> {\n return mapSerializer<\n SetReceiveLibraryInstructionDataArgs,\n any,\n SetReceiveLibraryInstructionData\n >(\n struct<SetReceiveLibraryInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['receiver', publicKeySerializer()],\n ['eid', u32()],\n ['newLib', publicKeySerializer()],\n ['gracePeriod', u64()],\n ],\n { description: 'SetReceiveLibraryInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([223, 172, 180, 105, 165, 161, 147, 228]),\n })\n ) as Serializer<\n SetReceiveLibraryInstructionDataArgs,\n SetReceiveLibraryInstructionData\n >;\n}\n\n// Args.\nexport type SetReceiveLibraryInstructionArgs =\n SetReceiveLibraryInstructionDataArgs;\n\n// Instruction.\nexport function setReceiveLibrary(\n context: Pick<Context, 'programs'>,\n input: SetReceiveLibraryInstructionAccounts & SetReceiveLibraryInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n signer: {\n index: 0,\n isWritable: false as boolean,\n value: input.signer ?? null,\n },\n oappRegistry: {\n index: 1,\n isWritable: false as boolean,\n value: input.oappRegistry ?? null,\n },\n receiveLibraryConfig: {\n index: 2,\n isWritable: true as boolean,\n value: input.receiveLibraryConfig ?? null,\n },\n messageLibInfo: {\n index: 3,\n isWritable: false as boolean,\n value: input.messageLibInfo ?? null,\n },\n eventAuthority: {\n index: 4,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 5,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SetReceiveLibraryInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSetReceiveLibraryInstructionDataSerializer().serialize(\n resolvedArgs as SetReceiveLibraryInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type SetReceiveLibraryTimeoutInstructionAccounts = {\n /** The PDA of the OApp or delegate */\n signer: Signer;\n oappRegistry: PublicKey | Pda;\n receiveLibraryConfig: PublicKey | Pda;\n messageLibInfo: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type SetReceiveLibraryTimeoutInstructionData = {\n discriminator: Uint8Array;\n receiver: PublicKey;\n eid: number;\n lib: PublicKey;\n expiry: bigint;\n};\n\nexport type SetReceiveLibraryTimeoutInstructionDataArgs = {\n receiver: PublicKey;\n eid: number;\n lib: PublicKey;\n expiry: number | bigint;\n};\n\nexport function getSetReceiveLibraryTimeoutInstructionDataSerializer(): Serializer<\n SetReceiveLibraryTimeoutInstructionDataArgs,\n SetReceiveLibraryTimeoutInstructionData\n> {\n return mapSerializer<\n SetReceiveLibraryTimeoutInstructionDataArgs,\n any,\n SetReceiveLibraryTimeoutInstructionData\n >(\n struct<SetReceiveLibraryTimeoutInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['receiver', publicKeySerializer()],\n ['eid', u32()],\n ['lib', publicKeySerializer()],\n ['expiry', u64()],\n ],\n { description: 'SetReceiveLibraryTimeoutInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([33, 159, 29, 53, 218, 156, 41, 192]),\n })\n ) as Serializer<\n SetReceiveLibraryTimeoutInstructionDataArgs,\n SetReceiveLibraryTimeoutInstructionData\n >;\n}\n\n// Args.\nexport type SetReceiveLibraryTimeoutInstructionArgs =\n SetReceiveLibraryTimeoutInstructionDataArgs;\n\n// Instruction.\nexport function setReceiveLibraryTimeout(\n context: Pick<Context, 'programs'>,\n input: SetReceiveLibraryTimeoutInstructionAccounts &\n SetReceiveLibraryTimeoutInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n signer: {\n index: 0,\n isWritable: false as boolean,\n value: input.signer ?? null,\n },\n oappRegistry: {\n index: 1,\n isWritable: false as boolean,\n value: input.oappRegistry ?? null,\n },\n receiveLibraryConfig: {\n index: 2,\n isWritable: true as boolean,\n value: input.receiveLibraryConfig ?? null,\n },\n messageLibInfo: {\n index: 3,\n isWritable: false as boolean,\n value: input.messageLibInfo ?? null,\n },\n eventAuthority: {\n index: 4,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 5,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SetReceiveLibraryTimeoutInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSetReceiveLibraryTimeoutInstructionDataSerializer().serialize(\n resolvedArgs as SetReceiveLibraryTimeoutInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type SetSendLibraryInstructionAccounts = {\n /** The PDA of the OApp or delegate */\n signer: Signer;\n oappRegistry: PublicKey | Pda;\n sendLibraryConfig: PublicKey | Pda;\n messageLibInfo?: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type SetSendLibraryInstructionData = {\n discriminator: Uint8Array;\n sender: PublicKey;\n eid: number;\n newLib: PublicKey;\n};\n\nexport type SetSendLibraryInstructionDataArgs = {\n sender: PublicKey;\n eid: number;\n newLib: PublicKey;\n};\n\nexport function getSetSendLibraryInstructionDataSerializer(): Serializer<\n SetSendLibraryInstructionDataArgs,\n SetSendLibraryInstructionData\n> {\n return mapSerializer<\n SetSendLibraryInstructionDataArgs,\n any,\n SetSendLibraryInstructionData\n >(\n struct<SetSendLibraryInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['sender', publicKeySerializer()],\n ['eid', u32()],\n ['newLib', publicKeySerializer()],\n ],\n { description: 'SetSendLibraryInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([251, 118, 78, 158, 134, 149, 129, 5]),\n })\n ) as Serializer<\n SetSendLibraryInstructionDataArgs,\n SetSendLibraryInstructionData\n >;\n}\n\n// Args.\nexport type SetSendLibraryInstructionArgs = SetSendLibraryInstructionDataArgs;\n\n// Instruction.\nexport function setSendLibrary(\n context: Pick<Context, 'programs'>,\n input: SetSendLibraryInstructionAccounts & SetSendLibraryInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n signer: {\n index: 0,\n isWritable: false as boolean,\n value: input.signer ?? null,\n },\n oappRegistry: {\n index: 1,\n isWritable: false as boolean,\n value: input.oappRegistry ?? null,\n },\n sendLibraryConfig: {\n index: 2,\n isWritable: true as boolean,\n value: input.sendLibraryConfig ?? null,\n },\n messageLibInfo: {\n index: 3,\n isWritable: false as boolean,\n value: input.messageLibInfo ?? null,\n },\n eventAuthority: {\n index: 4,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 5,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SetSendLibraryInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSetSendLibraryInstructionDataSerializer().serialize(\n resolvedArgs as SetSendLibraryInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type SkipInstructionAccounts = {\n /** The PDA of the OApp or delegate */\n signer: Signer;\n oappRegistry: PublicKey | Pda;\n nonce: PublicKey | Pda;\n pendingInboundNonce: PublicKey | Pda;\n /**\n * the payload hash needs to be initialized before it can be skipped and closed, in order to prevent someone\n * from skipping a payload hash that has been initialized and can be re-verified and executed after skipping\n */\n\n payloadHash: PublicKey | Pda;\n endpoint: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type SkipInstructionData = {\n discriminator: Uint8Array;\n receiver: PublicKey;\n srcEid: number;\n sender: Uint8Array;\n nonce: bigint;\n};\n\nexport type SkipInstructionDataArgs = {\n receiver: PublicKey;\n srcEid: number;\n sender: Uint8Array;\n nonce: number | bigint;\n};\n\nexport function getSkipInstructionDataSerializer(): Serializer<\n SkipInstructionDataArgs,\n SkipInstructionData\n> {\n return mapSerializer<SkipInstructionDataArgs, any, SkipInstructionData>(\n struct<SkipInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['receiver', publicKeySerializer()],\n ['srcEid', u32()],\n ['sender', bytes({ size: 32 })],\n ['nonce', u64()],\n ],\n { description: 'SkipInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([154, 63, 181, 53, 19, 26, 117, 45]),\n })\n ) as Serializer<SkipInstructionDataArgs, SkipInstructionData>;\n}\n\n// Args.\nexport type SkipInstructionArgs = SkipInstructionDataArgs;\n\n// Instruction.\nexport function skip(\n context: Pick<Context, 'programs'>,\n accounts: SkipInstructionAccounts,\n args: SkipInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n signer: {\n index: 0,\n isWritable: false as boolean,\n value: accounts.signer ?? null,\n },\n oappRegistry: {\n index: 1,\n isWritable: false as boolean,\n value: accounts.oappRegistry ?? null,\n },\n nonce: {\n index: 2,\n isWritable: true as boolean,\n value: accounts.nonce ?? null,\n },\n pendingInboundNonce: {\n index: 3,\n isWritable: true as boolean,\n value: accounts.pendingInboundNonce ?? null,\n },\n payloadHash: {\n index: 4,\n isWritable: true as boolean,\n value: accounts.payloadHash ?? null,\n },\n endpoint: {\n index: 5,\n isWritable: true as boolean,\n value: accounts.endpoint ?? null,\n },\n eventAuthority: {\n index: 6,\n isWritable: false as boolean,\n value: accounts.eventAuthority ?? null,\n },\n program: {\n index: 7,\n isWritable: false as boolean,\n value: accounts.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SkipInstructionArgs = { ...args };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSkipInstructionDataSerializer().serialize(\n resolvedArgs as SkipInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type TransferAdminInstructionAccounts = {\n admin: Signer;\n endpoint: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type TransferAdminInstructionData = {\n discriminator: Uint8Array;\n admin: PublicKey;\n};\n\nexport type TransferAdminInstructionDataArgs = { admin: PublicKey };\n\nexport function getTransferAdminInstructionDataSerializer(): Serializer<\n TransferAdminInstructionDataArgs,\n TransferAdminInstructionData\n> {\n return mapSerializer<\n TransferAdminInstructionDataArgs,\n any,\n TransferAdminInstructionData\n >(\n struct<TransferAdminInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['admin', publicKeySerializer()],\n ],\n { description: 'TransferAdminInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([42, 242, 66, 106, 228, 10, 111, 156]),\n })\n ) as Serializer<\n TransferAdminInstructionDataArgs,\n TransferAdminInstructionData\n >;\n}\n\n// Args.\nexport type TransferAdminInstructionArgs = TransferAdminInstructionDataArgs;\n\n// Instruction.\nexport function transferAdmin(\n context: Pick<Context, 'programs'>,\n accounts: TransferAdminInstructionAccounts,\n args: TransferAdminInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: false as boolean,\n value: accounts.admin ?? null,\n },\n endpoint: {\n index: 1,\n isWritable: true as boolean,\n value: accounts.endpoint ?? null,\n },\n eventAuthority: {\n index: 2,\n isWritable: false as boolean,\n value: accounts.eventAuthority ?? null,\n },\n program: {\n index: 3,\n isWritable: false as boolean,\n value: accounts.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: TransferAdminInstructionArgs = { ...args };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getTransferAdminInstructionDataSerializer().serialize(\n resolvedArgs as TransferAdminInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type VerifyInstructionAccounts = {\n /** The PDA of the receive library. */\n receiveLibrary: Signer;\n receiveLibraryConfig: PublicKey | Pda;\n defaultReceiveLibraryConfig: PublicKey | Pda;\n nonce: PublicKey | Pda;\n pendingInboundNonce: PublicKey | Pda;\n payloadHash: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type VerifyInstructionData = {\n discriminator: Uint8Array;\n srcEid: number;\n sender: Uint8Array;\n receiver: PublicKey;\n nonce: bigint;\n payloadHash: Uint8Array;\n};\n\nexport type VerifyInstructionDataArgs = {\n srcEid: number;\n sender: Uint8Array;\n receiver: PublicKey;\n nonce: number | bigint;\n payloadHash: Uint8Array;\n};\n\nexport function getVerifyInstructionDataSerializer(): Serializer<\n VerifyInstructionDataArgs,\n VerifyInstructionData\n> {\n return mapSerializer<VerifyInstructionDataArgs, any, VerifyInstructionData>(\n struct<VerifyInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['srcEid', u32()],\n ['sender', bytes({ size: 32 })],\n ['receiver', publicKeySerializer()],\n ['nonce', u64()],\n ['payloadHash', bytes({ size: 32 })],\n ],\n { description: 'VerifyInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([133, 161, 141, 48, 120, 198, 88, 150]),\n })\n ) as Serializer<VerifyInstructionDataArgs, VerifyInstructionData>;\n}\n\n// Args.\nexport type VerifyInstructionArgs = VerifyInstructionDataArgs;\n\n// Instruction.\nexport function verify(\n context: Pick<Context, 'programs'>,\n accounts: VerifyInstructionAccounts,\n args: VerifyInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n receiveLibrary: {\n index: 0,\n isWritable: false as boolean,\n value: accounts.receiveLibrary ?? null,\n },\n receiveLibraryConfig: {\n index: 1,\n isWritable: false as boolean,\n value: accounts.receiveLibraryConfig ?? null,\n },\n defaultReceiveLibraryConfig: {\n index: 2,\n isWritable: false as boolean,\n value: accounts.defaultReceiveLibraryConfig ?? null,\n },\n nonce: {\n index: 3,\n isWritable: true as boolean,\n value: accounts.nonce ?? null,\n },\n pendingInboundNonce: {\n index: 4,\n isWritable: true as boolean,\n value: accounts.pendingInboundNonce ?? null,\n },\n payloadHash: {\n index: 5,\n isWritable: true as boolean,\n value: accounts.payloadHash ?? null,\n },\n eventAuthority: {\n index: 6,\n isWritable: false as boolean,\n value: accounts.eventAuthority ?? null,\n },\n program: {\n index: 7,\n isWritable: false as boolean,\n value: accounts.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: VerifyInstructionArgs = { ...args };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getVerifyInstructionDataSerializer().serialize(\n resolvedArgs as VerifyInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type WithdrawRentInstructionAccounts = {\n admin: Signer;\n endpoint: PublicKey | Pda;\n receiver: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type WithdrawRentInstructionData = {\n discriminator: Uint8Array;\n amount: bigint;\n};\n\nexport type WithdrawRentInstructionDataArgs = { amount: number | bigint };\n\nexport function getWithdrawRentInstructionDataSerializer(): Serializer<\n WithdrawRentInstructionDataArgs,\n WithdrawRentInstructionData\n> {\n return mapSerializer<\n WithdrawRentInstructionDataArgs,\n any,\n WithdrawRentInstructionData\n >(\n struct<WithdrawRentInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['amount', u64()],\n ],\n { description: 'WithdrawRentInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([226, 7, 41, 158, 173, 111, 192, 107]),\n })\n ) as Serializer<WithdrawRentInstructionDataArgs, WithdrawRentInstructionData>;\n}\n\n// Args.\nexport type WithdrawRentInstructionArgs = WithdrawRentInstructionDataArgs;\n\n// Instruction.\nexport function withdrawRent(\n context: Pick<Context, 'programs'>,\n input: WithdrawRentInstructionAccounts & WithdrawRentInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'endpoint',\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: false as boolean,\n value: input.admin ?? null,\n },\n endpoint: {\n index: 1,\n isWritable: true as boolean,\n value: input.endpoint ?? null,\n },\n receiver: {\n index: 2,\n isWritable: true as boolean,\n value: input.receiver ?? null,\n },\n eventAuthority: {\n index: 3,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 4,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: WithdrawRentInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getWithdrawRentInstructionDataSerializer().serialize(\n resolvedArgs as WithdrawRentInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n ClusterFilter,\n Context,\n Program,\n PublicKey,\n} from '@metaplex-foundation/umi';\nimport { getEndpointErrorFromCode, getEndpointErrorFromName } from '../errors';\n\nexport const ENDPOINT_PROGRAM_ID =\n '76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6' as PublicKey<'76y77prsiCMvXMjuoZ5VRrhG5qYBrUMYTE5WgHqgjEn6'>;\n\nexport function createEndpointProgram(): Program {\n return {\n name: 'endpoint',\n publicKey: ENDPOINT_PROGRAM_ID,\n getErrorFromCode(code: number, cause?: Error) {\n return getEndpointErrorFromCode(code, this, cause);\n },\n getErrorFromName(name: string, cause?: Error) {\n return getEndpointErrorFromName(name, this, cause);\n },\n isOnCluster() {\n return true;\n },\n };\n}\n\nexport function getEndpointProgram<T extends Program = Program>(\n context: Pick<Context, 'programs'>,\n clusterFilter?: ClusterFilter\n): T {\n return context.programs.get<T>('endpoint', clusterFilter);\n}\n\nexport function getEndpointProgramId(\n context: Pick<Context, 'programs'>,\n clusterFilter?: ClusterFilter\n): PublicKey {\n return context.programs.getPublicKey(\n 'endpoint',\n ENDPOINT_PROGRAM_ID,\n clusterFilter\n );\n}\n","export * from './adminTransferredEvent';\nexport * from './composeDeliveredEvent';\nexport * from './composeSentEvent';\nexport * from './defaultReceiveLibrarySetEvent';\nexport * from './defaultReceiveLibraryTimeoutSetEvent';\nexport * from './defaultSendLibrarySetEvent';\nexport * from './delegateSetEvent';\nexport * from './inboundNonceSkippedEvent';\nexport * from './libraryRegisteredEvent';\nexport * from './lzComposeAlertEvent';\nexport * from './lzReceiveAlertEvent';\nexport * from './lzTokenSetEvent';\nexport * from './oAppRegisteredEvent';\nexport * from './packetBurntEvent';\nexport * from './packetDeliveredEvent';\nexport * from './packetNilifiedEvent';\nexport * from './packetSentEvent';\nexport * from './packetVerifiedEvent';\nexport * from './receiveLibrarySetEvent';\nexport * from './receiveLibraryTimeoutSetEvent';\nexport * from './rentWithdrawnEvent';\nexport * from './sendLibrarySetEvent';","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n publicKey as publicKeySerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type AdminTransferredEvent = { newAdmin: PublicKey };\n\nexport type AdminTransferredEventArgs = AdminTransferredEvent;\n\nexport function getAdminTransferredEventSerializer(): Serializer<\n AdminTransferredEventArgs,\n AdminTransferredEvent\n> {\n return struct<AdminTransferredEvent>([['newAdmin', publicKeySerializer()]], {\n description: 'AdminTransferredEvent',\n }) as Serializer<AdminTransferredEventArgs, AdminTransferredEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n publicKey as publicKeySerializer,\n struct,\n u16,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type ComposeDeliveredEvent = {\n from: PublicKey;\n to: PublicKey;\n guid: Uint8Array;\n index: number;\n};\n\nexport type ComposeDeliveredEventArgs = ComposeDeliveredEvent;\n\nexport function getComposeDeliveredEventSerializer(): Serializer<\n ComposeDeliveredEventArgs,\n ComposeDeliveredEvent\n> {\n return struct<ComposeDeliveredEvent>(\n [\n ['from', publicKeySerializer()],\n ['to', publicKeySerializer()],\n ['guid', bytes({ size: 32 })],\n ['index', u16()],\n ],\n { description: 'ComposeDeliveredEvent' }\n ) as Serializer<ComposeDeliveredEventArgs, ComposeDeliveredEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n publicKey as publicKeySerializer,\n struct,\n u16,\n u32,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type ComposeSentEvent = {\n from: PublicKey;\n to: PublicKey;\n guid: Uint8Array;\n index: number;\n message: Uint8Array;\n};\n\nexport type ComposeSentEventArgs = ComposeSentEvent;\n\nexport function getComposeSentEventSerializer(): Serializer<\n ComposeSentEventArgs,\n ComposeSentEvent\n> {\n return struct<ComposeSentEvent>(\n [\n ['from', publicKeySerializer()],\n ['to', publicKeySerializer()],\n ['guid', bytes({ size: 32 })],\n ['index', u16()],\n ['message', bytes({ size: u32() })],\n ],\n { description: 'ComposeSentEvent' }\n ) as Serializer<ComposeSentEventArgs, ComposeSentEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type DefaultReceiveLibrarySetEvent = { eid: number; newLib: PublicKey };\n\nexport type DefaultReceiveLibrarySetEventArgs = DefaultReceiveLibrarySetEvent;\n\nexport function getDefaultReceiveLibrarySetEventSerializer(): Serializer<\n DefaultReceiveLibrarySetEventArgs,\n DefaultReceiveLibrarySetEvent\n> {\n return struct<DefaultReceiveLibrarySetEvent>(\n [\n ['eid', u32()],\n ['newLib', publicKeySerializer()],\n ],\n { description: 'DefaultReceiveLibrarySetEvent' }\n ) as Serializer<\n DefaultReceiveLibrarySetEventArgs,\n DefaultReceiveLibrarySetEvent\n >;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Option, OptionOrNullable } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n option,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ReceiveLibraryTimeout,\n ReceiveLibraryTimeoutArgs,\n getReceiveLibraryTimeoutSerializer,\n} from '../types';\n\nexport type DefaultReceiveLibraryTimeoutSetEvent = {\n eid: number;\n timeout: Option<ReceiveLibraryTimeout>;\n};\n\nexport type DefaultReceiveLibraryTimeoutSetEventArgs = {\n eid: number;\n timeout: OptionOrNullable<ReceiveLibraryTimeoutArgs>;\n};\n\nexport function getDefaultReceiveLibraryTimeoutSetEventSerializer(): Serializer<\n DefaultReceiveLibraryTimeoutSetEventArgs,\n DefaultReceiveLibraryTimeoutSetEvent\n> {\n return struct<DefaultReceiveLibraryTimeoutSetEvent>(\n [\n ['eid', u32()],\n ['timeout', option(getReceiveLibraryTimeoutSerializer())],\n ],\n { description: 'DefaultReceiveLibraryTimeoutSetEvent' }\n ) as Serializer<\n DefaultReceiveLibraryTimeoutSetEventArgs,\n DefaultReceiveLibraryTimeoutSetEvent\n >;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type DefaultSendLibrarySetEvent = { eid: number; newLib: PublicKey };\n\nexport type DefaultSendLibrarySetEventArgs = DefaultSendLibrarySetEvent;\n\nexport function getDefaultSendLibrarySetEventSerializer(): Serializer<\n DefaultSendLibrarySetEventArgs,\n DefaultSendLibrarySetEvent\n> {\n return struct<DefaultSendLibrarySetEvent>(\n [\n ['eid', u32()],\n ['newLib', publicKeySerializer()],\n ],\n { description: 'DefaultSendLibrarySetEvent' }\n ) as Serializer<DefaultSendLibrarySetEventArgs, DefaultSendLibrarySetEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n publicKey as publicKeySerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type DelegateSetEvent = { newDelegate: PublicKey };\n\nexport type DelegateSetEventArgs = DelegateSetEvent;\n\nexport function getDelegateSetEventSerializer(): Serializer<\n DelegateSetEventArgs,\n DelegateSetEvent\n> {\n return struct<DelegateSetEvent>([['newDelegate', publicKeySerializer()]], {\n description: 'DelegateSetEvent',\n }) as Serializer<DelegateSetEventArgs, DelegateSetEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type InboundNonceSkippedEvent = {\n srcEid: number;\n sender: Uint8Array;\n receiver: PublicKey;\n nonce: bigint;\n};\n\nexport type InboundNonceSkippedEventArgs = {\n srcEid: number;\n sender: Uint8Array;\n receiver: PublicKey;\n nonce: number | bigint;\n};\n\nexport function getInboundNonceSkippedEventSerializer(): Serializer<\n InboundNonceSkippedEventArgs,\n InboundNonceSkippedEvent\n> {\n return struct<InboundNonceSkippedEvent>(\n [\n ['srcEid', u32()],\n ['sender', bytes({ size: 32 })],\n ['receiver', publicKeySerializer()],\n ['nonce', u64()],\n ],\n { description: 'InboundNonceSkippedEvent' }\n ) as Serializer<InboundNonceSkippedEventArgs, InboundNonceSkippedEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n publicKey as publicKeySerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type LibraryRegisteredEvent = {\n newLib: PublicKey;\n newLibProgram: PublicKey;\n};\n\nexport type LibraryRegisteredEventArgs = LibraryRegisteredEvent;\n\nexport function getLibraryRegisteredEventSerializer(): Serializer<\n LibraryRegisteredEventArgs,\n LibraryRegisteredEvent\n> {\n return struct<LibraryRegisteredEvent>(\n [\n ['newLib', publicKeySerializer()],\n ['newLibProgram', publicKeySerializer()],\n ],\n { description: 'LibraryRegisteredEvent' }\n ) as Serializer<LibraryRegisteredEventArgs, LibraryRegisteredEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n publicKey as publicKeySerializer,\n struct,\n u16,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type LzComposeAlertEvent = {\n executor: PublicKey;\n from: PublicKey;\n to: PublicKey;\n guid: Uint8Array;\n index: number;\n computeUnits: bigint;\n value: bigint;\n message: Uint8Array;\n extraData: Uint8Array;\n reason: Uint8Array;\n};\n\nexport type LzComposeAlertEventArgs = {\n executor: PublicKey;\n from: PublicKey;\n to: PublicKey;\n guid: Uint8Array;\n index: number;\n computeUnits: number | bigint;\n value: number | bigint;\n message: Uint8Array;\n extraData: Uint8Array;\n reason: Uint8Array;\n};\n\nexport function getLzComposeAlertEventSerializer(): Serializer<\n LzComposeAlertEventArgs,\n LzComposeAlertEvent\n> {\n return struct<LzComposeAlertEvent>(\n [\n ['executor', publicKeySerializer()],\n ['from', publicKeySerializer()],\n ['to', publicKeySerializer()],\n ['guid', bytes({ size: 32 })],\n ['index', u16()],\n ['computeUnits', u64()],\n ['value', u64()],\n ['message', bytes({ size: u32() })],\n ['extraData', bytes({ size: u32() })],\n ['reason', bytes({ size: u32() })],\n ],\n { description: 'LzComposeAlertEvent' }\n ) as Serializer<LzComposeAlertEventArgs, LzComposeAlertEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type LzReceiveAlertEvent = {\n receiver: PublicKey;\n executor: PublicKey;\n srcEid: number;\n sender: Uint8Array;\n nonce: bigint;\n guid: Uint8Array;\n computeUnits: bigint;\n value: bigint;\n message: Uint8Array;\n extraData: Uint8Array;\n reason: Uint8Array;\n};\n\nexport type LzReceiveAlertEventArgs = {\n receiver: PublicKey;\n executor: PublicKey;\n srcEid: number;\n sender: Uint8Array;\n nonce: number | bigint;\n guid: Uint8Array;\n computeUnits: number | bigint;\n value: number | bigint;\n message: Uint8Array;\n extraData: Uint8Array;\n reason: Uint8Array;\n};\n\nexport function getLzReceiveAlertEventSerializer(): Serializer<\n LzReceiveAlertEventArgs,\n LzReceiveAlertEvent\n> {\n return struct<LzReceiveAlertEvent>(\n [\n ['receiver', publicKeySerializer()],\n ['executor', publicKeySerializer()],\n ['srcEid', u32()],\n ['sender', bytes({ size: 32 })],\n ['nonce', u64()],\n ['guid', bytes({ size: 32 })],\n ['computeUnits', u64()],\n ['value', u64()],\n ['message', bytes({ size: u32() })],\n ['extraData', bytes({ size: u32() })],\n ['reason', bytes({ size: u32() })],\n ],\n { description: 'LzReceiveAlertEvent' }\n ) as Serializer<LzReceiveAlertEventArgs, LzReceiveAlertEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Option, OptionOrNullable, PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n option,\n publicKey as publicKeySerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type LzTokenSetEvent = { token: Option<PublicKey> };\n\nexport type LzTokenSetEventArgs = { token: OptionOrNullable<PublicKey> };\n\nexport function getLzTokenSetEventSerializer(): Serializer<\n LzTokenSetEventArgs,\n LzTokenSetEvent\n> {\n return struct<LzTokenSetEvent>([['token', option(publicKeySerializer())]], {\n description: 'LzTokenSetEvent',\n }) as Serializer<LzTokenSetEventArgs, LzTokenSetEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n publicKey as publicKeySerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type OAppRegisteredEvent = { oapp: PublicKey; delegate: PublicKey };\n\nexport type OAppRegisteredEventArgs = OAppRegisteredEvent;\n\nexport function getOAppRegisteredEventSerializer(): Serializer<\n OAppRegisteredEventArgs,\n OAppRegisteredEvent\n> {\n return struct<OAppRegisteredEvent>(\n [\n ['oapp', publicKeySerializer()],\n ['delegate', publicKeySerializer()],\n ],\n { description: 'OAppRegisteredEvent' }\n ) as Serializer<OAppRegisteredEventArgs, OAppRegisteredEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type PacketBurntEvent = {\n srcEid: number;\n sender: Uint8Array;\n receiver: PublicKey;\n nonce: bigint;\n payloadHash: Uint8Array;\n};\n\nexport type PacketBurntEventArgs = {\n srcEid: number;\n sender: Uint8Array;\n receiver: PublicKey;\n nonce: number | bigint;\n payloadHash: Uint8Array;\n};\n\nexport function getPacketBurntEventSerializer(): Serializer<\n PacketBurntEventArgs,\n PacketBurntEvent\n> {\n return struct<PacketBurntEvent>(\n [\n ['srcEid', u32()],\n ['sender', bytes({ size: 32 })],\n ['receiver', publicKeySerializer()],\n ['nonce', u64()],\n ['payloadHash', bytes({ size: 32 })],\n ],\n { description: 'PacketBurntEvent' }\n ) as Serializer<PacketBurntEventArgs, PacketBurntEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type PacketDeliveredEvent = {\n srcEid: number;\n sender: Uint8Array;\n receiver: PublicKey;\n nonce: bigint;\n};\n\nexport type PacketDeliveredEventArgs = {\n srcEid: number;\n sender: Uint8Array;\n receiver: PublicKey;\n nonce: number | bigint;\n};\n\nexport function getPacketDeliveredEventSerializer(): Serializer<\n PacketDeliveredEventArgs,\n PacketDeliveredEvent\n> {\n return struct<PacketDeliveredEvent>(\n [\n ['srcEid', u32()],\n ['sender', bytes({ size: 32 })],\n ['receiver', publicKeySerializer()],\n ['nonce', u64()],\n ],\n { description: 'PacketDeliveredEvent' }\n ) as Serializer<PacketDeliveredEventArgs, PacketDeliveredEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type PacketNilifiedEvent = {\n srcEid: number;\n sender: Uint8Array;\n receiver: PublicKey;\n nonce: bigint;\n payloadHash: Uint8Array;\n};\n\nexport type PacketNilifiedEventArgs = {\n srcEid: number;\n sender: Uint8Array;\n receiver: PublicKey;\n nonce: number | bigint;\n payloadHash: Uint8Array;\n};\n\nexport function getPacketNilifiedEventSerializer(): Serializer<\n PacketNilifiedEventArgs,\n PacketNilifiedEvent\n> {\n return struct<PacketNilifiedEvent>(\n [\n ['srcEid', u32()],\n ['sender', bytes({ size: 32 })],\n ['receiver', publicKeySerializer()],\n ['nonce', u64()],\n ['payloadHash', bytes({ size: 32 })],\n ],\n { description: 'PacketNilifiedEvent' }\n ) as Serializer<PacketNilifiedEventArgs, PacketNilifiedEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type PacketSentEvent = {\n encodedPacket: Uint8Array;\n options: Uint8Array;\n sendLibrary: PublicKey;\n};\n\nexport type PacketSentEventArgs = PacketSentEvent;\n\nexport function getPacketSentEventSerializer(): Serializer<\n PacketSentEventArgs,\n PacketSentEvent\n> {\n return struct<PacketSentEvent>(\n [\n ['encodedPacket', bytes({ size: u32() })],\n ['options', bytes({ size: u32() })],\n ['sendLibrary', publicKeySerializer()],\n ],\n { description: 'PacketSentEvent' }\n ) as Serializer<PacketSentEventArgs, PacketSentEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type PacketVerifiedEvent = {\n srcEid: number;\n sender: Uint8Array;\n receiver: PublicKey;\n nonce: bigint;\n payloadHash: Uint8Array;\n};\n\nexport type PacketVerifiedEventArgs = {\n srcEid: number;\n sender: Uint8Array;\n receiver: PublicKey;\n nonce: number | bigint;\n payloadHash: Uint8Array;\n};\n\nexport function getPacketVerifiedEventSerializer(): Serializer<\n PacketVerifiedEventArgs,\n PacketVerifiedEvent\n> {\n return struct<PacketVerifiedEvent>(\n [\n ['srcEid', u32()],\n ['sender', bytes({ size: 32 })],\n ['receiver', publicKeySerializer()],\n ['nonce', u64()],\n ['payloadHash', bytes({ size: 32 })],\n ],\n { description: 'PacketVerifiedEvent' }\n ) as Serializer<PacketVerifiedEventArgs, PacketVerifiedEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type ReceiveLibrarySetEvent = {\n receiver: PublicKey;\n eid: number;\n newLib: PublicKey;\n};\n\nexport type ReceiveLibrarySetEventArgs = ReceiveLibrarySetEvent;\n\nexport function getReceiveLibrarySetEventSerializer(): Serializer<\n ReceiveLibrarySetEventArgs,\n ReceiveLibrarySetEvent\n> {\n return struct<ReceiveLibrarySetEvent>(\n [\n ['receiver', publicKeySerializer()],\n ['eid', u32()],\n ['newLib', publicKeySerializer()],\n ],\n { description: 'ReceiveLibrarySetEvent' }\n ) as Serializer<ReceiveLibrarySetEventArgs, ReceiveLibrarySetEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Option, OptionOrNullable, PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n option,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ReceiveLibraryTimeout,\n ReceiveLibraryTimeoutArgs,\n getReceiveLibraryTimeoutSerializer,\n} from '../types';\n\nexport type ReceiveLibraryTimeoutSetEvent = {\n receiver: PublicKey;\n eid: number;\n timeout: Option<ReceiveLibraryTimeout>;\n};\n\nexport type ReceiveLibraryTimeoutSetEventArgs = {\n receiver: PublicKey;\n eid: number;\n timeout: OptionOrNullable<ReceiveLibraryTimeoutArgs>;\n};\n\nexport function getReceiveLibraryTimeoutSetEventSerializer(): Serializer<\n ReceiveLibraryTimeoutSetEventArgs,\n ReceiveLibraryTimeoutSetEvent\n> {\n return struct<ReceiveLibraryTimeoutSetEvent>(\n [\n ['receiver', publicKeySerializer()],\n ['eid', u32()],\n ['timeout', option(getReceiveLibraryTimeoutSerializer())],\n ],\n { description: 'ReceiveLibraryTimeoutSetEvent' }\n ) as Serializer<\n ReceiveLibraryTimeoutSetEventArgs,\n ReceiveLibraryTimeoutSetEvent\n >;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n publicKey as publicKeySerializer,\n struct,\n u64,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type RentWithdrawnEvent = { receiver: PublicKey; amount: bigint };\n\nexport type RentWithdrawnEventArgs = {\n receiver: PublicKey;\n amount: number | bigint;\n};\n\nexport function getRentWithdrawnEventSerializer(): Serializer<\n RentWithdrawnEventArgs,\n RentWithdrawnEvent\n> {\n return struct<RentWithdrawnEvent>(\n [\n ['receiver', publicKeySerializer()],\n ['amount', u64()],\n ],\n { description: 'RentWithdrawnEvent' }\n ) as Serializer<RentWithdrawnEventArgs, RentWithdrawnEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type SendLibrarySetEvent = {\n sender: PublicKey;\n eid: number;\n newLib: PublicKey;\n};\n\nexport type SendLibrarySetEventArgs = SendLibrarySetEvent;\n\nexport function getSendLibrarySetEventSerializer(): Serializer<\n SendLibrarySetEventArgs,\n SendLibrarySetEvent\n> {\n return struct<SendLibrarySetEvent>(\n [\n ['sender', publicKeySerializer()],\n ['eid', u32()],\n ['newLib', publicKeySerializer()],\n ],\n { description: 'SendLibrarySetEvent' }\n ) as Serializer<SendLibrarySetEventArgs, SendLibrarySetEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './messageLib';\nexport * from './receiveConfigStore';\nexport * from './sendConfigStore';\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Account,\n Context,\n Pda,\n PublicKey,\n RpcAccount,\n RpcGetAccountOptions,\n RpcGetAccountsOptions,\n assertAccountExists,\n deserializeAccount,\n gpaBuilder,\n publicKey as toPublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n u8,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type MessageLib = Account<MessageLibAccountData>;\n\nexport type MessageLibAccountData = {\n discriminator: Uint8Array;\n eid: number;\n endpoint: PublicKey;\n endpointProgram: PublicKey;\n bump: number;\n admin: PublicKey;\n fee: bigint;\n lzTokenFee: bigint;\n wlCaller: PublicKey;\n};\n\nexport type MessageLibAccountDataArgs = {\n eid: number;\n endpoint: PublicKey;\n endpointProgram: PublicKey;\n bump: number;\n admin: PublicKey;\n fee: number | bigint;\n lzTokenFee: number | bigint;\n wlCaller: PublicKey;\n};\n\nexport function getMessageLibAccountDataSerializer(): Serializer<\n MessageLibAccountDataArgs,\n MessageLibAccountData\n> {\n return mapSerializer<MessageLibAccountDataArgs, any, MessageLibAccountData>(\n struct<MessageLibAccountData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['eid', u32()],\n ['endpoint', publicKeySerializer()],\n ['endpointProgram', publicKeySerializer()],\n ['bump', u8()],\n ['admin', publicKeySerializer()],\n ['fee', u64()],\n ['lzTokenFee', u64()],\n ['wlCaller', publicKeySerializer()],\n ],\n { description: 'MessageLibAccountData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([141, 191, 244, 48, 52, 174, 199, 209]),\n })\n ) as Serializer<MessageLibAccountDataArgs, MessageLibAccountData>;\n}\n\nexport function deserializeMessageLib(rawAccount: RpcAccount): MessageLib {\n return deserializeAccount(rawAccount, getMessageLibAccountDataSerializer());\n}\n\nexport async function fetchMessageLib(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<MessageLib> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n assertAccountExists(maybeAccount, 'MessageLib');\n return deserializeMessageLib(maybeAccount);\n}\n\nexport async function safeFetchMessageLib(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<MessageLib | null> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n return maybeAccount.exists ? deserializeMessageLib(maybeAccount) : null;\n}\n\nexport async function fetchAllMessageLib(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<MessageLib[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts.map((maybeAccount) => {\n assertAccountExists(maybeAccount, 'MessageLib');\n return deserializeMessageLib(maybeAccount);\n });\n}\n\nexport async function safeFetchAllMessageLib(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<MessageLib[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts\n .filter((maybeAccount) => maybeAccount.exists)\n .map((maybeAccount) => deserializeMessageLib(maybeAccount as RpcAccount));\n}\n\nexport function getMessageLibGpaBuilder(\n context: Pick<Context, 'rpc' | 'programs'>\n) {\n const programId = context.programs.getPublicKey(\n 'simpleMessagelib',\n '6GsmxMTHAAiFKfemuM4zBjumTjNSX5CAiw4xSSXM2Toy'\n );\n return gpaBuilder(context, programId)\n .registerFields<{\n discriminator: Uint8Array;\n eid: number;\n endpoint: PublicKey;\n endpointProgram: PublicKey;\n bump: number;\n admin: PublicKey;\n fee: number | bigint;\n lzTokenFee: number | bigint;\n wlCaller: PublicKey;\n }>({\n discriminator: [0, bytes({ size: 8 })],\n eid: [8, u32()],\n endpoint: [12, publicKeySerializer()],\n endpointProgram: [44, publicKeySerializer()],\n bump: [76, u8()],\n admin: [77, publicKeySerializer()],\n fee: [109, u64()],\n lzTokenFee: [117, u64()],\n wlCaller: [125, publicKeySerializer()],\n })\n .deserializeUsing<MessageLib>((account) => deserializeMessageLib(account))\n .whereField(\n 'discriminator',\n new Uint8Array([141, 191, 244, 48, 52, 174, 199, 209])\n );\n}\n\nexport function getMessageLibSize(): number {\n return 157;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Account,\n Context,\n Pda,\n PublicKey,\n RpcAccount,\n RpcGetAccountOptions,\n RpcGetAccountsOptions,\n assertAccountExists,\n deserializeAccount,\n gpaBuilder,\n publicKey as toPublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n u32,\n u8,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type ReceiveConfigStore = Account<ReceiveConfigStoreAccountData>;\n\nexport type ReceiveConfigStoreAccountData = {\n discriminator: Uint8Array;\n bump: number;\n data: Uint8Array;\n};\n\nexport type ReceiveConfigStoreAccountDataArgs = {\n bump: number;\n data: Uint8Array;\n};\n\nexport function getReceiveConfigStoreAccountDataSerializer(): Serializer<\n ReceiveConfigStoreAccountDataArgs,\n ReceiveConfigStoreAccountData\n> {\n return mapSerializer<\n ReceiveConfigStoreAccountDataArgs,\n any,\n ReceiveConfigStoreAccountData\n >(\n struct<ReceiveConfigStoreAccountData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['bump', u8()],\n ['data', bytes({ size: u32() })],\n ],\n { description: 'ReceiveConfigStoreAccountData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([70, 73, 30, 1, 248, 48, 93, 125]),\n })\n ) as Serializer<\n ReceiveConfigStoreAccountDataArgs,\n ReceiveConfigStoreAccountData\n >;\n}\n\nexport function deserializeReceiveConfigStore(\n rawAccount: RpcAccount\n): ReceiveConfigStore {\n return deserializeAccount(\n rawAccount,\n getReceiveConfigStoreAccountDataSerializer()\n );\n}\n\nexport async function fetchReceiveConfigStore(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<ReceiveConfigStore> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n assertAccountExists(maybeAccount, 'ReceiveConfigStore');\n return deserializeReceiveConfigStore(maybeAccount);\n}\n\nexport async function safeFetchReceiveConfigStore(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<ReceiveConfigStore | null> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n return maybeAccount.exists\n ? deserializeReceiveConfigStore(maybeAccount)\n : null;\n}\n\nexport async function fetchAllReceiveConfigStore(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<ReceiveConfigStore[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts.map((maybeAccount) => {\n assertAccountExists(maybeAccount, 'ReceiveConfigStore');\n return deserializeReceiveConfigStore(maybeAccount);\n });\n}\n\nexport async function safeFetchAllReceiveConfigStore(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<ReceiveConfigStore[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts\n .filter((maybeAccount) => maybeAccount.exists)\n .map((maybeAccount) =>\n deserializeReceiveConfigStore(maybeAccount as RpcAccount)\n );\n}\n\nexport function getReceiveConfigStoreGpaBuilder(\n context: Pick<Context, 'rpc' | 'programs'>\n) {\n const programId = context.programs.getPublicKey(\n 'simpleMessagelib',\n '6GsmxMTHAAiFKfemuM4zBjumTjNSX5CAiw4xSSXM2Toy'\n );\n return gpaBuilder(context, programId)\n .registerFields<{\n discriminator: Uint8Array;\n bump: number;\n data: Uint8Array;\n }>({\n discriminator: [0, bytes({ size: 8 })],\n bump: [8, u8()],\n data: [9, bytes({ size: u32() })],\n })\n .deserializeUsing<ReceiveConfigStore>((account) =>\n deserializeReceiveConfigStore(account)\n )\n .whereField(\n 'discriminator',\n new Uint8Array([70, 73, 30, 1, 248, 48, 93, 125])\n );\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Account,\n Context,\n Pda,\n PublicKey,\n RpcAccount,\n RpcGetAccountOptions,\n RpcGetAccountsOptions,\n assertAccountExists,\n deserializeAccount,\n gpaBuilder,\n publicKey as toPublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n u32,\n u8,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type SendConfigStore = Account<SendConfigStoreAccountData>;\n\nexport type SendConfigStoreAccountData = {\n discriminator: Uint8Array;\n bump: number;\n data: Uint8Array;\n};\n\nexport type SendConfigStoreAccountDataArgs = { bump: number; data: Uint8Array };\n\nexport function getSendConfigStoreAccountDataSerializer(): Serializer<\n SendConfigStoreAccountDataArgs,\n SendConfigStoreAccountData\n> {\n return mapSerializer<\n SendConfigStoreAccountDataArgs,\n any,\n SendConfigStoreAccountData\n >(\n struct<SendConfigStoreAccountData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['bump', u8()],\n ['data', bytes({ size: u32() })],\n ],\n { description: 'SendConfigStoreAccountData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([246, 55, 104, 200, 90, 164, 50, 196]),\n })\n ) as Serializer<SendConfigStoreAccountDataArgs, SendConfigStoreAccountData>;\n}\n\nexport function deserializeSendConfigStore(\n rawAccount: RpcAccount\n): SendConfigStore {\n return deserializeAccount(\n rawAccount,\n getSendConfigStoreAccountDataSerializer()\n );\n}\n\nexport async function fetchSendConfigStore(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<SendConfigStore> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n assertAccountExists(maybeAccount, 'SendConfigStore');\n return deserializeSendConfigStore(maybeAccount);\n}\n\nexport async function safeFetchSendConfigStore(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<SendConfigStore | null> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n return maybeAccount.exists ? deserializeSendConfigStore(maybeAccount) : null;\n}\n\nexport async function fetchAllSendConfigStore(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<SendConfigStore[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts.map((maybeAccount) => {\n assertAccountExists(maybeAccount, 'SendConfigStore');\n return deserializeSendConfigStore(maybeAccount);\n });\n}\n\nexport async function safeFetchAllSendConfigStore(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<SendConfigStore[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts\n .filter((maybeAccount) => maybeAccount.exists)\n .map((maybeAccount) =>\n deserializeSendConfigStore(maybeAccount as RpcAccount)\n );\n}\n\nexport function getSendConfigStoreGpaBuilder(\n context: Pick<Context, 'rpc' | 'programs'>\n) {\n const programId = context.programs.getPublicKey(\n 'simpleMessagelib',\n '6GsmxMTHAAiFKfemuM4zBjumTjNSX5CAiw4xSSXM2Toy'\n );\n return gpaBuilder(context, programId)\n .registerFields<{\n discriminator: Uint8Array;\n bump: number;\n data: Uint8Array;\n }>({\n discriminator: [0, bytes({ size: 8 })],\n bump: [8, u8()],\n data: [9, bytes({ size: u32() })],\n })\n .deserializeUsing<SendConfigStore>((account) =>\n deserializeSendConfigStore(account)\n )\n .whereField(\n 'discriminator',\n new Uint8Array([246, 55, 104, 200, 90, 164, 50, 196])\n );\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './simpleMessagelib';\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Program, ProgramError } from '@metaplex-foundation/umi';\n\ntype ProgramErrorConstructor = new (\n program: Program,\n cause?: Error\n) => ProgramError;\nconst codeToErrorMap: Map<number, ProgramErrorConstructor> = new Map();\nconst nameToErrorMap: Map<string, ProgramErrorConstructor> = new Map();\n\n/** OnlyWhitelistedCaller */\nexport class OnlyWhitelistedCallerError extends ProgramError {\n override readonly name: string = 'OnlyWhitelistedCaller';\n\n readonly code: number = 0x1770; // 6000\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1770, OnlyWhitelistedCallerError);\nnameToErrorMap.set('OnlyWhitelistedCaller', OnlyWhitelistedCallerError);\n\n/** InsufficientFee */\nexport class InsufficientFeeError extends ProgramError {\n override readonly name: string = 'InsufficientFee';\n\n readonly code: number = 0x1771; // 6001\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1771, InsufficientFeeError);\nnameToErrorMap.set('InsufficientFee', InsufficientFeeError);\n\n/** InvalidAmount */\nexport class InvalidAmountError extends ProgramError {\n override readonly name: string = 'InvalidAmount';\n\n readonly code: number = 0x1772; // 6002\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1772, InvalidAmountError);\nnameToErrorMap.set('InvalidAmount', InvalidAmountError);\n\n/** InvalidConfigType */\nexport class InvalidConfigTypeError extends ProgramError {\n override readonly name: string = 'InvalidConfigType';\n\n readonly code: number = 0x1773; // 6003\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1773, InvalidConfigTypeError);\nnameToErrorMap.set('InvalidConfigType', InvalidConfigTypeError);\n\n/** InvalidLzTokenMint */\nexport class InvalidLzTokenMintError extends ProgramError {\n override readonly name: string = 'InvalidLzTokenMint';\n\n readonly code: number = 0x1774; // 6004\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1774, InvalidLzTokenMintError);\nnameToErrorMap.set('InvalidLzTokenMint', InvalidLzTokenMintError);\n\n/** LzTokenUnavailable */\nexport class LzTokenUnavailableError extends ProgramError {\n override readonly name: string = 'LzTokenUnavailable';\n\n readonly code: number = 0x1775; // 6005\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1775, LzTokenUnavailableError);\nnameToErrorMap.set('LzTokenUnavailable', LzTokenUnavailableError);\n\n/** SendReentrancy */\nexport class SendReentrancyError extends ProgramError {\n override readonly name: string = 'SendReentrancy';\n\n readonly code: number = 0x1776; // 6006\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1776, SendReentrancyError);\nnameToErrorMap.set('SendReentrancy', SendReentrancyError);\n\n/** OnlyRevert */\nexport class OnlyRevertError extends ProgramError {\n override readonly name: string = 'OnlyRevert';\n\n readonly code: number = 0x1777; // 6007\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1777, OnlyRevertError);\nnameToErrorMap.set('OnlyRevert', OnlyRevertError);\n\n/**\n * Attempts to resolve a custom program error from the provided error code.\n * @category Errors\n */\nexport function getSimpleMessagelibErrorFromCode(\n code: number,\n program: Program,\n cause?: Error\n): ProgramError | null {\n const constructor = codeToErrorMap.get(code);\n return constructor ? new constructor(program, cause) : null;\n}\n\n/**\n * Attempts to resolve a custom program error from the provided error name, i.e. 'Unauthorized'.\n * @category Errors\n */\nexport function getSimpleMessagelibErrorFromName(\n name: string,\n program: Program,\n cause?: Error\n): ProgramError | null {\n const constructor = nameToErrorMap.get(name);\n return constructor ? new constructor(program, cause) : null;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './initConfig';\nexport * from './initDefaultConfig';\nexport * from './initMessageLib';\nexport * from './quote';\nexport * from './revertCall';\nexport * from './send';\nexport * from './sendWithLzToken';\nexport * from './setConfig';\nexport * from './setDefaultConfig';\nexport * from './setFee';\nexport * from './setWlCaller';\nexport * from './transferAdmin';\nexport * from './validatePacket';\nexport * from './version';\nexport * from './withdrawFees';\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n AccountMeta,\n isSigner,\n Pda,\n publicKey,\n PublicKey,\n Signer,\n isPda,\n} from '@metaplex-foundation/umi';\n\n/**\n * Transforms the given object such that the given keys are optional.\n * @internal\n */\nexport type PickPartial<T, K extends keyof T> = Omit<T, K> &\n Partial<Pick<T, K>>;\n\n/**\n * Asserts that the given value is not null or undefined.\n * @internal\n */\nexport function expectSome<T>(value: T | null | undefined): T {\n if (value == null) {\n throw new Error('Expected a value but received null or undefined.');\n }\n return value;\n}\n\n/**\n * Asserts that the given value is a PublicKey.\n * @internal\n */\nexport function expectPublicKey(\n value: PublicKey | Pda | Signer | null | undefined\n): PublicKey {\n if (!value) {\n throw new Error('Expected a PublicKey.');\n }\n return publicKey(value, false);\n}\n\n/**\n * Asserts that the given value is a PDA.\n * @internal\n */\nexport function expectPda(\n value: PublicKey | Pda | Signer | null | undefined\n): Pda {\n if (!value || !Array.isArray(value) || !isPda(value)) {\n throw new Error('Expected a PDA.');\n }\n return value;\n}\n\n/**\n * Defines an instruction account to resolve.\n * @internal\n */\nexport type ResolvedAccount<T = PublicKey | Pda | Signer | null> = {\n isWritable: boolean;\n value: T;\n};\n\n/**\n * Defines a set of instruction account to resolve.\n * @internal\n */\nexport type ResolvedAccounts = Record<string, ResolvedAccount>;\n\n/**\n * Defines a set of instruction account to resolve with their indices.\n * @internal\n */\nexport type ResolvedAccountsWithIndices = Record<\n string,\n ResolvedAccount & { index: number }\n>;\n\n/**\n * Get account metas and signers from resolved accounts.\n * @internal\n */\nexport function getAccountMetasAndSigners(\n accounts: ResolvedAccount[],\n optionalAccountStrategy: 'omitted' | 'programId',\n programId: PublicKey\n): [AccountMeta[], Signer[]] {\n const keys: AccountMeta[] = [];\n const signers: Signer[] = [];\n\n accounts.forEach((account) => {\n if (!account.value) {\n if (optionalAccountStrategy === 'omitted') return;\n keys.push({ pubkey: programId, isSigner: false, isWritable: false });\n return;\n }\n\n if (isSigner(account.value)) {\n signers.push(account.value);\n }\n keys.push({\n pubkey: publicKey(account.value, false),\n isSigner: isSigner(account.value),\n isWritable: account.isWritable,\n });\n });\n\n return [keys, signers];\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type InitConfigInstructionAccounts = {\n endpoint: Signer;\n payer?: Signer;\n messageLib: PublicKey | Pda;\n sendConfig: PublicKey | Pda;\n receiveConfig: PublicKey | Pda;\n systemProgram?: PublicKey | Pda;\n};\n\n// Data.\nexport type InitConfigInstructionData = {\n discriminator: Uint8Array;\n oapp: PublicKey;\n eid: number;\n};\n\nexport type InitConfigInstructionDataArgs = { oapp: PublicKey; eid: number };\n\nexport function getInitConfigInstructionDataSerializer(): Serializer<\n InitConfigInstructionDataArgs,\n InitConfigInstructionData\n> {\n return mapSerializer<\n InitConfigInstructionDataArgs,\n any,\n InitConfigInstructionData\n >(\n struct<InitConfigInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['oapp', publicKeySerializer()],\n ['eid', u32()],\n ],\n { description: 'InitConfigInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([23, 235, 115, 232, 168, 96, 1, 231]),\n })\n ) as Serializer<InitConfigInstructionDataArgs, InitConfigInstructionData>;\n}\n\n// Args.\nexport type InitConfigInstructionArgs = InitConfigInstructionDataArgs;\n\n// Instruction.\nexport function initConfig(\n context: Pick<Context, 'payer' | 'programs'>,\n input: InitConfigInstructionAccounts & InitConfigInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'simpleMessagelib',\n '6GsmxMTHAAiFKfemuM4zBjumTjNSX5CAiw4xSSXM2Toy'\n );\n\n // Accounts.\n const resolvedAccounts = {\n endpoint: {\n index: 0,\n isWritable: false as boolean,\n value: input.endpoint ?? null,\n },\n payer: {\n index: 1,\n isWritable: true as boolean,\n value: input.payer ?? null,\n },\n messageLib: {\n index: 2,\n isWritable: false as boolean,\n value: input.messageLib ?? null,\n },\n sendConfig: {\n index: 3,\n isWritable: true as boolean,\n value: input.sendConfig ?? null,\n },\n receiveConfig: {\n index: 4,\n isWritable: true as boolean,\n value: input.receiveConfig ?? null,\n },\n systemProgram: {\n index: 5,\n isWritable: false as boolean,\n value: input.systemProgram ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: InitConfigInstructionArgs = { ...input };\n\n // Default values.\n if (!resolvedAccounts.payer.value) {\n resolvedAccounts.payer.value = context.payer;\n }\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getInitConfigInstructionDataSerializer().serialize(\n resolvedArgs as InitConfigInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Option,\n OptionOrNullable,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n option,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type InitDefaultConfigInstructionAccounts = {\n admin: Signer;\n messageLib: PublicKey | Pda;\n sendConfig: PublicKey | Pda;\n receiveConfig: PublicKey | Pda;\n systemProgram?: PublicKey | Pda;\n};\n\n// Data.\nexport type InitDefaultConfigInstructionData = {\n discriminator: Uint8Array;\n eid: number;\n sendConfig: Option<Uint8Array>;\n receiveConfig: Option<Uint8Array>;\n};\n\nexport type InitDefaultConfigInstructionDataArgs = {\n eid: number;\n sendConfig: OptionOrNullable<Uint8Array>;\n receiveConfig: OptionOrNullable<Uint8Array>;\n};\n\nexport function getInitDefaultConfigInstructionDataSerializer(): Serializer<\n InitDefaultConfigInstructionDataArgs,\n InitDefaultConfigInstructionData\n> {\n return mapSerializer<\n InitDefaultConfigInstructionDataArgs,\n any,\n InitDefaultConfigInstructionData\n >(\n struct<InitDefaultConfigInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['eid', u32()],\n ['sendConfig', option(bytes({ size: u32() }))],\n ['receiveConfig', option(bytes({ size: u32() }))],\n ],\n { description: 'InitDefaultConfigInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([98, 218, 197, 194, 173, 179, 112, 21]),\n })\n ) as Serializer<\n InitDefaultConfigInstructionDataArgs,\n InitDefaultConfigInstructionData\n >;\n}\n\n// Args.\nexport type InitDefaultConfigInstructionArgs =\n InitDefaultConfigInstructionDataArgs;\n\n// Instruction.\nexport function initDefaultConfig(\n context: Pick<Context, 'programs'>,\n accounts: InitDefaultConfigInstructionAccounts,\n args: InitDefaultConfigInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'simpleMessagelib',\n '6GsmxMTHAAiFKfemuM4zBjumTjNSX5CAiw4xSSXM2Toy'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: true as boolean,\n value: accounts.admin ?? null,\n },\n messageLib: {\n index: 1,\n isWritable: false as boolean,\n value: accounts.messageLib ?? null,\n },\n sendConfig: {\n index: 2,\n isWritable: true as boolean,\n value: accounts.sendConfig ?? null,\n },\n receiveConfig: {\n index: 3,\n isWritable: true as boolean,\n value: accounts.receiveConfig ?? null,\n },\n systemProgram: {\n index: 4,\n isWritable: false as boolean,\n value: accounts.systemProgram ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: InitDefaultConfigInstructionArgs = { ...args };\n\n // Default values.\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getInitDefaultConfigInstructionDataSerializer().serialize(\n resolvedArgs as InitDefaultConfigInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type InitMessageLibInstructionAccounts = {\n payer?: Signer;\n messageLib: PublicKey | Pda;\n systemProgram?: PublicKey | Pda;\n};\n\n// Data.\nexport type InitMessageLibInstructionData = {\n discriminator: Uint8Array;\n eid: number;\n endpoint: PublicKey;\n endpointProgram: PublicKey;\n admin: PublicKey;\n fee: bigint;\n lzTokenFee: bigint;\n};\n\nexport type InitMessageLibInstructionDataArgs = {\n eid: number;\n endpoint: PublicKey;\n endpointProgram: PublicKey;\n admin: PublicKey;\n fee: number | bigint;\n lzTokenFee: number | bigint;\n};\n\nexport function getInitMessageLibInstructionDataSerializer(): Serializer<\n InitMessageLibInstructionDataArgs,\n InitMessageLibInstructionData\n> {\n return mapSerializer<\n InitMessageLibInstructionDataArgs,\n any,\n InitMessageLibInstructionData\n >(\n struct<InitMessageLibInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['eid', u32()],\n ['endpoint', publicKeySerializer()],\n ['endpointProgram', publicKeySerializer()],\n ['admin', publicKeySerializer()],\n ['fee', u64()],\n ['lzTokenFee', u64()],\n ],\n { description: 'InitMessageLibInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([184, 93, 59, 206, 98, 238, 225, 54]),\n })\n ) as Serializer<\n InitMessageLibInstructionDataArgs,\n InitMessageLibInstructionData\n >;\n}\n\n// Args.\nexport type InitMessageLibInstructionArgs = InitMessageLibInstructionDataArgs;\n\n// Instruction.\nexport function initMessageLib(\n context: Pick<Context, 'payer' | 'programs'>,\n input: InitMessageLibInstructionAccounts & InitMessageLibInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'simpleMessagelib',\n '6GsmxMTHAAiFKfemuM4zBjumTjNSX5CAiw4xSSXM2Toy'\n );\n\n // Accounts.\n const resolvedAccounts = {\n payer: {\n index: 0,\n isWritable: true as boolean,\n value: input.payer ?? null,\n },\n messageLib: {\n index: 1,\n isWritable: true as boolean,\n value: input.messageLib ?? null,\n },\n systemProgram: {\n index: 2,\n isWritable: false as boolean,\n value: input.systemProgram ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: InitMessageLibInstructionArgs = { ...input };\n\n // Default values.\n if (!resolvedAccounts.payer.value) {\n resolvedAccounts.payer.value = context.payer;\n }\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getInitMessageLibInstructionDataSerializer().serialize(\n resolvedArgs as InitMessageLibInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './messagingFee';\nexport * from './packet';\nexport * from './version';\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Serializer, struct, u64 } from '@metaplex-foundation/umi/serializers';\n\nexport type MessagingFee = { nativeFee: bigint; lzTokenFee: bigint };\n\nexport type MessagingFeeArgs = {\n nativeFee: number | bigint;\n lzTokenFee: number | bigint;\n};\n\nexport function getMessagingFeeSerializer(): Serializer<\n MessagingFeeArgs,\n MessagingFee\n> {\n return struct<MessagingFee>(\n [\n ['nativeFee', u64()],\n ['lzTokenFee', u64()],\n ],\n { description: 'MessagingFee' }\n ) as Serializer<MessagingFeeArgs, MessagingFee>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type Packet = {\n nonce: bigint;\n srcEid: number;\n sender: PublicKey;\n dstEid: number;\n receiver: Uint8Array;\n guid: Uint8Array;\n message: Uint8Array;\n};\n\nexport type PacketArgs = {\n nonce: number | bigint;\n srcEid: number;\n sender: PublicKey;\n dstEid: number;\n receiver: Uint8Array;\n guid: Uint8Array;\n message: Uint8Array;\n};\n\nexport function getPacketSerializer(): Serializer<PacketArgs, Packet> {\n return struct<Packet>(\n [\n ['nonce', u64()],\n ['srcEid', u32()],\n ['sender', publicKeySerializer()],\n ['dstEid', u32()],\n ['receiver', bytes({ size: 32 })],\n ['guid', bytes({ size: 32 })],\n ['message', bytes({ size: u32() })],\n ],\n { description: 'Packet' }\n ) as Serializer<PacketArgs, Packet>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Serializer,\n struct,\n u64,\n u8,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type Version = { major: bigint; minor: number; endpointVersion: number };\n\nexport type VersionArgs = {\n major: number | bigint;\n minor: number;\n endpointVersion: number;\n};\n\nexport function getVersionSerializer(): Serializer<VersionArgs, Version> {\n return struct<Version>(\n [\n ['major', u64()],\n ['minor', u8()],\n ['endpointVersion', u8()],\n ],\n { description: 'Version' }\n ) as Serializer<VersionArgs, Version>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bool,\n bytes,\n mapSerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\nimport { Packet, PacketArgs, getPacketSerializer } from '../types';\n\n// Accounts.\nexport type QuoteInstructionAccounts = {\n /** The message lib authority of the endpoint */\n endpoint: Signer;\n messageLib: PublicKey | Pda;\n};\n\n// Data.\nexport type QuoteInstructionData = {\n discriminator: Uint8Array;\n packet: Packet;\n options: Uint8Array;\n payInLzToken: boolean;\n};\n\nexport type QuoteInstructionDataArgs = {\n packet: PacketArgs;\n options: Uint8Array;\n payInLzToken: boolean;\n};\n\nexport function getQuoteInstructionDataSerializer(): Serializer<\n QuoteInstructionDataArgs,\n QuoteInstructionData\n> {\n return mapSerializer<QuoteInstructionDataArgs, any, QuoteInstructionData>(\n struct<QuoteInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['packet', getPacketSerializer()],\n ['options', bytes({ size: u32() })],\n ['payInLzToken', bool()],\n ],\n { description: 'QuoteInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([149, 42, 109, 247, 134, 146, 213, 123]),\n })\n ) as Serializer<QuoteInstructionDataArgs, QuoteInstructionData>;\n}\n\n// Args.\nexport type QuoteInstructionArgs = QuoteInstructionDataArgs;\n\n// Instruction.\nexport function quote(\n context: Pick<Context, 'programs'>,\n input: QuoteInstructionAccounts & QuoteInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'simpleMessagelib',\n '6GsmxMTHAAiFKfemuM4zBjumTjNSX5CAiw4xSSXM2Toy'\n );\n\n // Accounts.\n const resolvedAccounts = {\n endpoint: {\n index: 0,\n isWritable: false as boolean,\n value: input.endpoint ?? null,\n },\n messageLib: {\n index: 1,\n isWritable: false as boolean,\n value: input.messageLib ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: QuoteInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getQuoteInstructionDataSerializer().serialize(\n resolvedArgs as QuoteInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Data.\nexport type RevertCallInstructionData = { discriminator: Uint8Array };\n\nexport type RevertCallInstructionDataArgs = {};\n\nexport function getRevertCallInstructionDataSerializer(): Serializer<\n RevertCallInstructionDataArgs,\n RevertCallInstructionData\n> {\n return mapSerializer<\n RevertCallInstructionDataArgs,\n any,\n RevertCallInstructionData\n >(\n struct<RevertCallInstructionData>([['discriminator', bytes({ size: 8 })]], {\n description: 'RevertCallInstructionData',\n }),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([124, 243, 145, 116, 106, 203, 93, 114]),\n })\n ) as Serializer<RevertCallInstructionDataArgs, RevertCallInstructionData>;\n}\n\n// Instruction.\nexport function revertCall(\n context: Pick<Context, 'programs'>\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'simpleMessagelib',\n '6GsmxMTHAAiFKfemuM4zBjumTjNSX5CAiw4xSSXM2Toy'\n );\n\n // Accounts.\n const resolvedAccounts = {} satisfies ResolvedAccountsWithIndices;\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts as ResolvedAccountsWithIndices\n );\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getRevertCallInstructionDataSerializer().serialize({});\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\nimport { Packet, PacketArgs, getPacketSerializer } from '../types';\n\n// Accounts.\nexport type SendInstructionAccounts = {\n /** The message lib authority of the endpoint */\n endpoint: Signer;\n /** receive the native fee */\n messageLib: PublicKey | Pda;\n /** pay for the native fee */\n payer?: Signer;\n /** for native fee transfer */\n systemProgram?: PublicKey | Pda;\n};\n\n// Data.\nexport type SendInstructionData = {\n discriminator: Uint8Array;\n packet: Packet;\n options: Uint8Array;\n nativeFee: bigint;\n};\n\nexport type SendInstructionDataArgs = {\n packet: PacketArgs;\n options: Uint8Array;\n nativeFee: number | bigint;\n};\n\nexport function getSendInstructionDataSerializer(): Serializer<\n SendInstructionDataArgs,\n SendInstructionData\n> {\n return mapSerializer<SendInstructionDataArgs, any, SendInstructionData>(\n struct<SendInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['packet', getPacketSerializer()],\n ['options', bytes({ size: u32() })],\n ['nativeFee', u64()],\n ],\n { description: 'SendInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([102, 251, 20, 187, 65, 75, 12, 69]),\n })\n ) as Serializer<SendInstructionDataArgs, SendInstructionData>;\n}\n\n// Args.\nexport type SendInstructionArgs = SendInstructionDataArgs;\n\n// Instruction.\nexport function send(\n context: Pick<Context, 'payer' | 'programs'>,\n input: SendInstructionAccounts & SendInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'simpleMessagelib',\n '6GsmxMTHAAiFKfemuM4zBjumTjNSX5CAiw4xSSXM2Toy'\n );\n\n // Accounts.\n const resolvedAccounts = {\n endpoint: {\n index: 0,\n isWritable: false as boolean,\n value: input.endpoint ?? null,\n },\n messageLib: {\n index: 1,\n isWritable: true as boolean,\n value: input.messageLib ?? null,\n },\n payer: {\n index: 2,\n isWritable: true as boolean,\n value: input.payer ?? null,\n },\n systemProgram: {\n index: 3,\n isWritable: false as boolean,\n value: input.systemProgram ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SendInstructionArgs = { ...input };\n\n // Default values.\n if (!resolvedAccounts.payer.value) {\n resolvedAccounts.payer.value = context.payer;\n }\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSendInstructionDataSerializer().serialize(\n resolvedArgs as SendInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\nimport { Packet, PacketArgs, getPacketSerializer } from '../types';\n\n// Accounts.\nexport type SendWithLzTokenInstructionAccounts = {\n /** The message lib authority of the endpoint */\n endpoint: Signer;\n /** receive the native fee */\n messageLib: PublicKey | Pda;\n messageLibLzToken: PublicKey | Pda;\n /** pay for the native fee */\n payer?: Signer;\n /** The token account to pay the lz token fee */\n lzTokenSource: PublicKey | Pda;\n lzTokenMint: PublicKey | Pda;\n tokenProgram?: PublicKey | Pda;\n /** for native fee transfer */\n systemProgram?: PublicKey | Pda;\n};\n\n// Data.\nexport type SendWithLzTokenInstructionData = {\n discriminator: Uint8Array;\n packet: Packet;\n options: Uint8Array;\n nativeFee: bigint;\n lzTokenFee: bigint;\n lzTokenMint: PublicKey;\n};\n\nexport type SendWithLzTokenInstructionDataArgs = {\n packet: PacketArgs;\n options: Uint8Array;\n nativeFee: number | bigint;\n lzTokenFee: number | bigint;\n lzTokenMint: PublicKey;\n};\n\nexport function getSendWithLzTokenInstructionDataSerializer(): Serializer<\n SendWithLzTokenInstructionDataArgs,\n SendWithLzTokenInstructionData\n> {\n return mapSerializer<\n SendWithLzTokenInstructionDataArgs,\n any,\n SendWithLzTokenInstructionData\n >(\n struct<SendWithLzTokenInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['packet', getPacketSerializer()],\n ['options', bytes({ size: u32() })],\n ['nativeFee', u64()],\n ['lzTokenFee', u64()],\n ['lzTokenMint', publicKeySerializer()],\n ],\n { description: 'SendWithLzTokenInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([165, 161, 84, 48, 129, 26, 193, 19]),\n })\n ) as Serializer<\n SendWithLzTokenInstructionDataArgs,\n SendWithLzTokenInstructionData\n >;\n}\n\n// Args.\nexport type SendWithLzTokenInstructionArgs = SendWithLzTokenInstructionDataArgs;\n\n// Instruction.\nexport function sendWithLzToken(\n context: Pick<Context, 'payer' | 'programs'>,\n accounts: SendWithLzTokenInstructionAccounts,\n args: SendWithLzTokenInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'simpleMessagelib',\n '6GsmxMTHAAiFKfemuM4zBjumTjNSX5CAiw4xSSXM2Toy'\n );\n\n // Accounts.\n const resolvedAccounts = {\n endpoint: {\n index: 0,\n isWritable: false as boolean,\n value: accounts.endpoint ?? null,\n },\n messageLib: {\n index: 1,\n isWritable: true as boolean,\n value: accounts.messageLib ?? null,\n },\n messageLibLzToken: {\n index: 2,\n isWritable: true as boolean,\n value: accounts.messageLibLzToken ?? null,\n },\n payer: {\n index: 3,\n isWritable: true as boolean,\n value: accounts.payer ?? null,\n },\n lzTokenSource: {\n index: 4,\n isWritable: true as boolean,\n value: accounts.lzTokenSource ?? null,\n },\n lzTokenMint: {\n index: 5,\n isWritable: false as boolean,\n value: accounts.lzTokenMint ?? null,\n },\n tokenProgram: {\n index: 6,\n isWritable: false as boolean,\n value: accounts.tokenProgram ?? null,\n },\n systemProgram: {\n index: 7,\n isWritable: false as boolean,\n value: accounts.systemProgram ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SendWithLzTokenInstructionArgs = { ...args };\n\n // Default values.\n if (!resolvedAccounts.payer.value) {\n resolvedAccounts.payer.value = context.payer;\n }\n if (!resolvedAccounts.tokenProgram.value) {\n resolvedAccounts.tokenProgram.value = context.programs.getPublicKey(\n 'splToken',\n 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'\n );\n resolvedAccounts.tokenProgram.isWritable = false;\n }\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSendWithLzTokenInstructionDataSerializer().serialize(\n resolvedArgs as SendWithLzTokenInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type SetConfigInstructionAccounts = {\n endpoint: Signer;\n messageLib: PublicKey | Pda;\n sendConfig: PublicKey | Pda;\n receiveConfig: PublicKey | Pda;\n};\n\n// Data.\nexport type SetConfigInstructionData = {\n discriminator: Uint8Array;\n oapp: PublicKey;\n eid: number;\n configType: number;\n config: Uint8Array;\n};\n\nexport type SetConfigInstructionDataArgs = {\n oapp: PublicKey;\n eid: number;\n configType: number;\n config: Uint8Array;\n};\n\nexport function getSetConfigInstructionDataSerializer(): Serializer<\n SetConfigInstructionDataArgs,\n SetConfigInstructionData\n> {\n return mapSerializer<\n SetConfigInstructionDataArgs,\n any,\n SetConfigInstructionData\n >(\n struct<SetConfigInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['oapp', publicKeySerializer()],\n ['eid', u32()],\n ['configType', u32()],\n ['config', bytes({ size: u32() })],\n ],\n { description: 'SetConfigInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([108, 158, 154, 175, 212, 98, 52, 66]),\n })\n ) as Serializer<SetConfigInstructionDataArgs, SetConfigInstructionData>;\n}\n\n// Args.\nexport type SetConfigInstructionArgs = SetConfigInstructionDataArgs;\n\n// Instruction.\nexport function setConfig(\n context: Pick<Context, 'programs'>,\n input: SetConfigInstructionAccounts & SetConfigInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'simpleMessagelib',\n '6GsmxMTHAAiFKfemuM4zBjumTjNSX5CAiw4xSSXM2Toy'\n );\n\n // Accounts.\n const resolvedAccounts = {\n endpoint: {\n index: 0,\n isWritable: false as boolean,\n value: input.endpoint ?? null,\n },\n messageLib: {\n index: 1,\n isWritable: false as boolean,\n value: input.messageLib ?? null,\n },\n sendConfig: {\n index: 2,\n isWritable: true as boolean,\n value: input.sendConfig ?? null,\n },\n receiveConfig: {\n index: 3,\n isWritable: true as boolean,\n value: input.receiveConfig ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SetConfigInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSetConfigInstructionDataSerializer().serialize(\n resolvedArgs as SetConfigInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Option,\n OptionOrNullable,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n option,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type SetDefaultConfigInstructionAccounts = {\n admin: Signer;\n messageLib: PublicKey | Pda;\n sendConfig: PublicKey | Pda;\n receiveConfig: PublicKey | Pda;\n systemProgram?: PublicKey | Pda;\n};\n\n// Data.\nexport type SetDefaultConfigInstructionData = {\n discriminator: Uint8Array;\n eid: number;\n sendConfig: Option<Uint8Array>;\n receiveConfig: Option<Uint8Array>;\n};\n\nexport type SetDefaultConfigInstructionDataArgs = {\n eid: number;\n sendConfig: OptionOrNullable<Uint8Array>;\n receiveConfig: OptionOrNullable<Uint8Array>;\n};\n\nexport function getSetDefaultConfigInstructionDataSerializer(): Serializer<\n SetDefaultConfigInstructionDataArgs,\n SetDefaultConfigInstructionData\n> {\n return mapSerializer<\n SetDefaultConfigInstructionDataArgs,\n any,\n SetDefaultConfigInstructionData\n >(\n struct<SetDefaultConfigInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['eid', u32()],\n ['sendConfig', option(bytes({ size: u32() }))],\n ['receiveConfig', option(bytes({ size: u32() }))],\n ],\n { description: 'SetDefaultConfigInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([111, 228, 17, 75, 5, 76, 213, 169]),\n })\n ) as Serializer<\n SetDefaultConfigInstructionDataArgs,\n SetDefaultConfigInstructionData\n >;\n}\n\n// Args.\nexport type SetDefaultConfigInstructionArgs =\n SetDefaultConfigInstructionDataArgs;\n\n// Instruction.\nexport function setDefaultConfig(\n context: Pick<Context, 'programs'>,\n accounts: SetDefaultConfigInstructionAccounts,\n args: SetDefaultConfigInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'simpleMessagelib',\n '6GsmxMTHAAiFKfemuM4zBjumTjNSX5CAiw4xSSXM2Toy'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: false as boolean,\n value: accounts.admin ?? null,\n },\n messageLib: {\n index: 1,\n isWritable: false as boolean,\n value: accounts.messageLib ?? null,\n },\n sendConfig: {\n index: 2,\n isWritable: true as boolean,\n value: accounts.sendConfig ?? null,\n },\n receiveConfig: {\n index: 3,\n isWritable: true as boolean,\n value: accounts.receiveConfig ?? null,\n },\n systemProgram: {\n index: 4,\n isWritable: false as boolean,\n value: accounts.systemProgram ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SetDefaultConfigInstructionArgs = { ...args };\n\n // Default values.\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSetDefaultConfigInstructionDataSerializer().serialize(\n resolvedArgs as SetDefaultConfigInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type SetFeeInstructionAccounts = {\n admin: Signer;\n messageLib: PublicKey | Pda;\n};\n\n// Data.\nexport type SetFeeInstructionData = {\n discriminator: Uint8Array;\n fee: bigint;\n lzTokenFee: bigint;\n};\n\nexport type SetFeeInstructionDataArgs = {\n fee: number | bigint;\n lzTokenFee: number | bigint;\n};\n\nexport function getSetFeeInstructionDataSerializer(): Serializer<\n SetFeeInstructionDataArgs,\n SetFeeInstructionData\n> {\n return mapSerializer<SetFeeInstructionDataArgs, any, SetFeeInstructionData>(\n struct<SetFeeInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['fee', u64()],\n ['lzTokenFee', u64()],\n ],\n { description: 'SetFeeInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([18, 154, 24, 18, 237, 214, 19, 80]),\n })\n ) as Serializer<SetFeeInstructionDataArgs, SetFeeInstructionData>;\n}\n\n// Args.\nexport type SetFeeInstructionArgs = SetFeeInstructionDataArgs;\n\n// Instruction.\nexport function setFee(\n context: Pick<Context, 'programs'>,\n input: SetFeeInstructionAccounts & SetFeeInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'simpleMessagelib',\n '6GsmxMTHAAiFKfemuM4zBjumTjNSX5CAiw4xSSXM2Toy'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: false as boolean,\n value: input.admin ?? null,\n },\n messageLib: {\n index: 1,\n isWritable: true as boolean,\n value: input.messageLib ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SetFeeInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSetFeeInstructionDataSerializer().serialize(\n resolvedArgs as SetFeeInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type SetWlCallerInstructionAccounts = {\n admin: Signer;\n messageLib: PublicKey | Pda;\n};\n\n// Data.\nexport type SetWlCallerInstructionData = {\n discriminator: Uint8Array;\n newCaller: PublicKey;\n};\n\nexport type SetWlCallerInstructionDataArgs = { newCaller: PublicKey };\n\nexport function getSetWlCallerInstructionDataSerializer(): Serializer<\n SetWlCallerInstructionDataArgs,\n SetWlCallerInstructionData\n> {\n return mapSerializer<\n SetWlCallerInstructionDataArgs,\n any,\n SetWlCallerInstructionData\n >(\n struct<SetWlCallerInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['newCaller', publicKeySerializer()],\n ],\n { description: 'SetWlCallerInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([153, 41, 240, 37, 126, 107, 14, 253]),\n })\n ) as Serializer<SetWlCallerInstructionDataArgs, SetWlCallerInstructionData>;\n}\n\n// Args.\nexport type SetWlCallerInstructionArgs = SetWlCallerInstructionDataArgs;\n\n// Instruction.\nexport function setWlCaller(\n context: Pick<Context, 'programs'>,\n input: SetWlCallerInstructionAccounts & SetWlCallerInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'simpleMessagelib',\n '6GsmxMTHAAiFKfemuM4zBjumTjNSX5CAiw4xSSXM2Toy'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: false as boolean,\n value: input.admin ?? null,\n },\n messageLib: {\n index: 1,\n isWritable: true as boolean,\n value: input.messageLib ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SetWlCallerInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSetWlCallerInstructionDataSerializer().serialize(\n resolvedArgs as SetWlCallerInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type TransferAdminInstructionAccounts = {\n admin: Signer;\n messageLib: PublicKey | Pda;\n};\n\n// Data.\nexport type TransferAdminInstructionData = {\n discriminator: Uint8Array;\n admin: PublicKey;\n};\n\nexport type TransferAdminInstructionDataArgs = { admin: PublicKey };\n\nexport function getTransferAdminInstructionDataSerializer(): Serializer<\n TransferAdminInstructionDataArgs,\n TransferAdminInstructionData\n> {\n return mapSerializer<\n TransferAdminInstructionDataArgs,\n any,\n TransferAdminInstructionData\n >(\n struct<TransferAdminInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['admin', publicKeySerializer()],\n ],\n { description: 'TransferAdminInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([42, 242, 66, 106, 228, 10, 111, 156]),\n })\n ) as Serializer<\n TransferAdminInstructionDataArgs,\n TransferAdminInstructionData\n >;\n}\n\n// Args.\nexport type TransferAdminInstructionArgs = TransferAdminInstructionDataArgs;\n\n// Instruction.\nexport function transferAdmin(\n context: Pick<Context, 'programs'>,\n accounts: TransferAdminInstructionAccounts,\n args: TransferAdminInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'simpleMessagelib',\n '6GsmxMTHAAiFKfemuM4zBjumTjNSX5CAiw4xSSXM2Toy'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: false as boolean,\n value: accounts.admin ?? null,\n },\n messageLib: {\n index: 1,\n isWritable: true as boolean,\n value: accounts.messageLib ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: TransferAdminInstructionArgs = { ...args };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getTransferAdminInstructionDataSerializer().serialize(\n resolvedArgs as TransferAdminInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type ValidatePacketInstructionAccounts = {\n payer?: Signer;\n receiveLibrary: PublicKey | Pda;\n};\n\n// Data.\nexport type ValidatePacketInstructionData = {\n discriminator: Uint8Array;\n packet: Uint8Array;\n};\n\nexport type ValidatePacketInstructionDataArgs = { packet: Uint8Array };\n\nexport function getValidatePacketInstructionDataSerializer(): Serializer<\n ValidatePacketInstructionDataArgs,\n ValidatePacketInstructionData\n> {\n return mapSerializer<\n ValidatePacketInstructionDataArgs,\n any,\n ValidatePacketInstructionData\n >(\n struct<ValidatePacketInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['packet', bytes({ size: u32() })],\n ],\n { description: 'ValidatePacketInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([34, 146, 107, 76, 157, 98, 105, 211]),\n })\n ) as Serializer<\n ValidatePacketInstructionDataArgs,\n ValidatePacketInstructionData\n >;\n}\n\n// Args.\nexport type ValidatePacketInstructionArgs = ValidatePacketInstructionDataArgs;\n\n// Instruction.\nexport function validatePacket(\n context: Pick<Context, 'payer' | 'programs'>,\n input: ValidatePacketInstructionAccounts & ValidatePacketInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'simpleMessagelib',\n '6GsmxMTHAAiFKfemuM4zBjumTjNSX5CAiw4xSSXM2Toy'\n );\n\n // Accounts.\n const resolvedAccounts = {\n payer: {\n index: 0,\n isWritable: false as boolean,\n value: input.payer ?? null,\n },\n receiveLibrary: {\n index: 1,\n isWritable: false as boolean,\n value: input.receiveLibrary ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: ValidatePacketInstructionArgs = { ...input };\n\n // Default values.\n if (!resolvedAccounts.payer.value) {\n resolvedAccounts.payer.value = context.payer;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getValidatePacketInstructionDataSerializer().serialize(\n resolvedArgs as ValidatePacketInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Data.\nexport type VersionInstructionData = { discriminator: Uint8Array };\n\nexport type VersionInstructionDataArgs = {};\n\nexport function getVersionInstructionDataSerializer(): Serializer<\n VersionInstructionDataArgs,\n VersionInstructionData\n> {\n return mapSerializer<VersionInstructionDataArgs, any, VersionInstructionData>(\n struct<VersionInstructionData>([['discriminator', bytes({ size: 8 })]], {\n description: 'VersionInstructionData',\n }),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([118, 65, 195, 198, 129, 216, 252, 192]),\n })\n ) as Serializer<VersionInstructionDataArgs, VersionInstructionData>;\n}\n\n// Instruction.\nexport function version(\n context: Pick<Context, 'programs'>\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'simpleMessagelib',\n '6GsmxMTHAAiFKfemuM4zBjumTjNSX5CAiw4xSSXM2Toy'\n );\n\n // Accounts.\n const resolvedAccounts = {} satisfies ResolvedAccountsWithIndices;\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts as ResolvedAccountsWithIndices\n );\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getVersionInstructionDataSerializer().serialize({});\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type WithdrawFeesInstructionAccounts = {\n admin: Signer;\n messageLib: PublicKey | Pda;\n receiver: PublicKey | Pda;\n};\n\n// Data.\nexport type WithdrawFeesInstructionData = {\n discriminator: Uint8Array;\n amount: bigint;\n};\n\nexport type WithdrawFeesInstructionDataArgs = { amount: number | bigint };\n\nexport function getWithdrawFeesInstructionDataSerializer(): Serializer<\n WithdrawFeesInstructionDataArgs,\n WithdrawFeesInstructionData\n> {\n return mapSerializer<\n WithdrawFeesInstructionDataArgs,\n any,\n WithdrawFeesInstructionData\n >(\n struct<WithdrawFeesInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['amount', u64()],\n ],\n { description: 'WithdrawFeesInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([198, 212, 171, 109, 144, 215, 174, 89]),\n })\n ) as Serializer<WithdrawFeesInstructionDataArgs, WithdrawFeesInstructionData>;\n}\n\n// Args.\nexport type WithdrawFeesInstructionArgs = WithdrawFeesInstructionDataArgs;\n\n// Instruction.\nexport function withdrawFees(\n context: Pick<Context, 'programs'>,\n input: WithdrawFeesInstructionAccounts & WithdrawFeesInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'simpleMessagelib',\n '6GsmxMTHAAiFKfemuM4zBjumTjNSX5CAiw4xSSXM2Toy'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: false as boolean,\n value: input.admin ?? null,\n },\n messageLib: {\n index: 1,\n isWritable: true as boolean,\n value: input.messageLib ?? null,\n },\n receiver: {\n index: 2,\n isWritable: true as boolean,\n value: input.receiver ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: WithdrawFeesInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getWithdrawFeesInstructionDataSerializer().serialize(\n resolvedArgs as WithdrawFeesInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n ClusterFilter,\n Context,\n Program,\n PublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n getSimpleMessagelibErrorFromCode,\n getSimpleMessagelibErrorFromName,\n} from '../errors';\n\nexport const SIMPLE_MESSAGELIB_PROGRAM_ID =\n '6GsmxMTHAAiFKfemuM4zBjumTjNSX5CAiw4xSSXM2Toy' as PublicKey<'6GsmxMTHAAiFKfemuM4zBjumTjNSX5CAiw4xSSXM2Toy'>;\n\nexport function createSimpleMessagelibProgram(): Program {\n return {\n name: 'simpleMessagelib',\n publicKey: SIMPLE_MESSAGELIB_PROGRAM_ID,\n getErrorFromCode(code: number, cause?: Error) {\n return getSimpleMessagelibErrorFromCode(code, this, cause);\n },\n getErrorFromName(name: string, cause?: Error) {\n return getSimpleMessagelibErrorFromName(name, this, cause);\n },\n isOnCluster() {\n return true;\n },\n };\n}\n\nexport function getSimpleMessagelibProgram<T extends Program = Program>(\n context: Pick<Context, 'programs'>,\n clusterFilter?: ClusterFilter\n): T {\n return context.programs.get<T>('simpleMessagelib', clusterFilter);\n}\n\nexport function getSimpleMessagelibProgramId(\n context: Pick<Context, 'programs'>,\n clusterFilter?: ClusterFilter\n): PublicKey {\n return context.programs.getPublicKey(\n 'simpleMessagelib',\n SIMPLE_MESSAGELIB_PROGRAM_ID,\n clusterFilter\n );\n}\n","import {\n AccountMeta,\n Cluster,\n ClusterFilter,\n Commitment,\n Program,\n ProgramError,\n ProgramRepositoryInterface,\n PublicKey,\n RpcInterface,\n Signer,\n WrappedInstruction,\n createNoopSigner,\n createNullRpc,\n defaultPublicKey,\n} from '@metaplex-foundation/umi'\nimport { createDefaultProgramRepository } from '@metaplex-foundation/umi-program-repository'\nimport { fromWeb3JsPublicKey, toWeb3JsPublicKey } from '@metaplex-foundation/umi-web3js-adapters'\nimport { ASSOCIATED_TOKEN_PROGRAM_ID, TOKEN_PROGRAM_ID, getAssociatedTokenAddress } from '@solana/spl-token'\n\nimport { PacketV1Codec } from '@layerzerolabs/lz-v2-utilities'\n\nimport { EndpointProgram, MessageLibInterface, SolanaPacketPath } from '.'\nimport { ENDPOINT_PROGRAM_ID } from './endpoint'\nimport { SIMPLE_MESSAGELIB_PROGRAM_ID } from './generated/kinobi/simple_messagelib'\nimport * as accounts from './generated/kinobi/simple_messagelib/accounts'\nimport * as errors from './generated/kinobi/simple_messagelib/errors'\nimport * as instructions from './generated/kinobi/simple_messagelib/instructions'\nimport * as types from './generated/kinobi/simple_messagelib/types'\nimport { EndpointPDA, MessageLibPDA } from './pda'\n\nexport { SIMPLE_MESSAGELIB_PROGRAM_ID } from './generated/kinobi/simple_messagelib'\nexport { accounts, instructions, types, errors }\n\n/**\n * Class representing the SimpleMessageLib.\n * @see {@link MessageLibInterface}\n */\nexport class SimpleMessageLib implements MessageLibInterface {\n public readonly pda: MessageLibPDA\n public readonly programRepo: ProgramRepositoryInterface\n\n constructor(\n public programId: PublicKey = SIMPLE_MESSAGELIB_PROGRAM_ID,\n rpc?: RpcInterface\n ) {\n this.pda = new MessageLibPDA(programId)\n if (rpc === undefined) {\n rpc = createNullRpc()\n rpc.getCluster = (): Cluster => 'custom'\n }\n this.programRepo = createDefaultProgramRepository({ rpc }, [\n {\n name: 'simpleMessagelib',\n publicKey: programId,\n getErrorFromCode(code: number, cause?: Error): ProgramError | null {\n return errors.getSimpleMessagelibErrorFromCode(code, this, cause)\n },\n getErrorFromName(name: string, cause?: Error): ProgramError | null {\n return errors.getSimpleMessagelibErrorFromName(name, this, cause)\n },\n isOnCluster(): boolean {\n return true\n },\n } satisfies Program,\n ])\n }\n\n getProgram(clusterFilter: ClusterFilter = 'custom'): Program {\n return this.programRepo.get('simpleMessagelib', clusterFilter)\n }\n\n /**\n * Initializes the SimpleMessageLib.\n *\n * @param {PublicKey} endpointProgram - The endpoint program public key.\n * @param {PublicKey} payer - The payer public key.\n * @param {PublicKey} admin - The admin public key.\n * @param {number} eid - The endpoint ID.\n * @param {number} nativeFee - The native fee.\n * @param {number} [lzTokenFee=0] - The LayerZero token fee.\n *\n * @returns {TransactionInstruction} The transaction instruction.\n */\n initSimpleMessageLib(\n payer: Signer,\n param: {\n endpointProgram?: PublicKey\n admin: PublicKey\n eid: number\n nativeFee: number\n lzTokenFee: number\n }\n ): WrappedInstruction {\n const [messageLib] = this.pda.messageLib()\n const { endpointProgram, admin, eid, nativeFee, lzTokenFee } = param\n const [endpointAuth] = new EndpointPDA(endpointProgram ?? ENDPOINT_PROGRAM_ID).messageLibraryInfo(messageLib)\n return instructions.initMessageLib(\n { payer, programs: this.programRepo },\n {\n payer,\n messageLib: messageLib,\n\n // param\n endpointProgram: endpointProgram ?? ENDPOINT_PROGRAM_ID,\n endpoint: endpointAuth,\n eid,\n admin,\n fee: nativeFee,\n lzTokenFee,\n }\n ).items[0]\n }\n\n /**\n * Sets the whitelist caller.\n *\n * @param {Signer} admin - The admin public key.\n * @param {PublicKey} newCaller - The new caller public key.\n *\n * @returns {TransactionInstruction} The transaction instruction.\n */\n setWhitelistCaller(admin: Signer, newCaller: PublicKey): WrappedInstruction {\n const [messageLibPDA] = this.pda.messageLib()\n return instructions.setWlCaller(\n { programs: this.programRepo },\n {\n admin,\n messageLib: messageLibPDA,\n newCaller,\n }\n ).items[0]\n }\n\n /**\n * Checks if a caller is whitelisted.\n *\n * @param {RpcInterface} rpc - The connection object.\n * @param {PublicKey} caller - The caller public key.\n *\n * @returns {Promise<boolean>} A promise that resolves to true if the caller is whitelisted, false otherwise.\n */\n async isWhiteListed(rpc: RpcInterface, caller: PublicKey): Promise<boolean> {\n try {\n const exceptedCaller = await this.getWhiteListCaller(rpc)\n return exceptedCaller === caller\n } catch (e) {\n return false\n }\n }\n\n /**\n * Gets the whitelisted caller.\n *\n * @param {RpcInterface} rpc - The connection object.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment or config.\n *\n * @returns {Promise<PublicKey>} A promise that resolves to the whitelisted caller public key.\n */\n async getWhiteListCaller(rpc: RpcInterface): Promise<PublicKey> {\n const [messageLib] = this.pda.messageLib()\n const messageLibInfo = await accounts.fetchMessageLib({ rpc }, messageLib, {})\n return messageLibInfo.wlCaller\n }\n\n /**\n * Validates a packet.\n *\n * @param {Signer} payer - The payer public key.\n * @param {Uint8Array} encodedPacket - The encoded packet.\n * @param {PublicKey} endpointProgram - The endpoint program public key.\n *\n * @returns {TransactionInstruction} The transaction instruction.\n */\n validatePacket(payer: Signer, encodedPacket: Uint8Array, endpointProgram?: PublicKey): WrappedInstruction {\n const packet = PacketV1Codec.fromBytes(encodedPacket)\n const [receiveLibrary] = this.pda.messageLib()\n const endpoint = new EndpointProgram.Endpoint(endpointProgram ?? ENDPOINT_PROGRAM_ID)\n\n const txBuilder = instructions.validatePacket(\n { programs: this.programRepo, payer: payer },\n {\n receiveLibrary,\n packet: encodedPacket,\n }\n )\n return txBuilder.addRemainingAccounts(endpoint.getVerifyIXAccountMetaForCPI(packet, receiveLibrary)).items[0]\n }\n\n /**\n * Gets the account meta of the send instruction for CPI (Cross-Program Invocation).\n *\n * @param {RpcInterface} _rpc - The connection object.\n * @param {PublicKey} payer - The payer public key.\n * @param {SolanaPacketPath} _path - The packet path.\n *\n * @returns {Promise<AccountMeta[]>} A promise that resolves to an array of account meta.\n */\n async getSendIXAccountMetaForCPI(\n _rpc: RpcInterface,\n payer: PublicKey,\n _path: SolanaPacketPath\n ): Promise<AccountMeta[]> {\n const [msgLib] = this.pda.messageLib()\n const txBuilder = instructions.send(\n { payer: createNoopSigner(payer), programs: this.programRepo },\n {\n endpoint: createNoopSigner(defaultPublicKey()), // useless\n messageLib: msgLib,\n payer: createNoopSigner(payer),\n\n //param\n packet: {\n nonce: 0,\n srcEid: 0,\n sender: defaultPublicKey(),\n dstEid: 0,\n receiver: new Uint8Array(32),\n guid: new Uint8Array(32),\n message: new Uint8Array(0),\n },\n options: new Uint8Array([0, 0, 0, 0]),\n nativeFee: 0,\n }\n )\n const cpiAccounts = txBuilder.getInstructions()[0].keys.map((key) => {\n if (payer !== key.pubkey) {\n key.isSigner = false\n }\n return key\n })\n return Promise.resolve(cpiAccounts.slice(1))\n }\n\n /***\n * Get the account meta of the send instruction for CPI(Cross-Program Invocation ) with lzToken\n */\n async getSendWithLzTokenIXAccountMetaForCPI(\n _rpc: RpcInterface,\n accounts: {\n payer: PublicKey\n tokenMint: PublicKey\n tokenSource: PublicKey\n },\n _path: SolanaPacketPath,\n programs: {\n tokenProgram?: PublicKey\n associatedTokenProgram?: PublicKey\n } = {\n tokenProgram: fromWeb3JsPublicKey(TOKEN_PROGRAM_ID),\n associatedTokenProgram: fromWeb3JsPublicKey(ASSOCIATED_TOKEN_PROGRAM_ID),\n },\n _commitment: Commitment = 'confirmed'\n ): Promise<AccountMeta[]> {\n const { payer, tokenMint, tokenSource } = accounts\n const [msgLib] = this.pda.messageLib()\n const {\n tokenProgram = fromWeb3JsPublicKey(TOKEN_PROGRAM_ID),\n associatedTokenProgram = fromWeb3JsPublicKey(ASSOCIATED_TOKEN_PROGRAM_ID),\n } = programs\n const messageLibLzToken = await getAssociatedTokenAddress(\n toWeb3JsPublicKey(tokenMint),\n toWeb3JsPublicKey(msgLib),\n true,\n toWeb3JsPublicKey(tokenProgram),\n toWeb3JsPublicKey(associatedTokenProgram)\n )\n const txBuilder = instructions.sendWithLzToken(\n { payer: createNoopSigner(payer), programs: this.programRepo },\n {\n endpoint: createNoopSigner(defaultPublicKey()),\n messageLib: msgLib,\n payer: createNoopSigner(payer),\n messageLibLzToken: fromWeb3JsPublicKey(messageLibLzToken),\n lzTokenSource: tokenSource,\n lzTokenMint: tokenMint,\n },\n {\n //param\n packet: {\n nonce: 0,\n srcEid: 0,\n sender: defaultPublicKey(),\n dstEid: 0,\n receiver: new Uint8Array(32),\n guid: new Uint8Array(32),\n message: new Uint8Array(0),\n },\n options: new Uint8Array([0, 0, 0, 0]),\n nativeFee: 0,\n lzTokenFee: 0,\n lzTokenMint: tokenMint,\n }\n )\n const cpiAccounts = txBuilder.getInstructions()[0].keys.map((key) => {\n if (payer !== key.pubkey) {\n key.isSigner = false\n }\n return key\n })\n return Promise.resolve(cpiAccounts.slice(1))\n }\n\n /**\n * Gets the account meta of the quote instruction for CPI (Cross-Program Invocation).\n *\n * @param {Connection} _connection - The connection object.\n * @param {PublicKey} _payer - The payer public key.\n * @param {PacketPath} _path - The packet path.\n * @param {Commitment} [commitment] - The commitment.\n *\n * @returns {Promise<AccountMeta[]>} A promise that resolves to an array of account meta.\n */\n async getQuoteIXAccountMetaForCPI(\n _rpc: RpcInterface,\n _payer: PublicKey,\n _path: SolanaPacketPath,\n _commitment: Commitment = 'confirmed'\n ): Promise<AccountMeta[]> {\n const [msgLib] = this.pda.messageLib()\n const txBuilder = instructions.quote(\n { programs: this.programRepo },\n {\n endpoint: createNoopSigner(defaultPublicKey()), // useless\n messageLib: msgLib,\n //param\n packet: {\n nonce: 0,\n srcEid: 0,\n sender: defaultPublicKey(),\n dstEid: 0,\n receiver: new Uint8Array(32),\n guid: new Uint8Array(32),\n message: new Uint8Array(0),\n },\n options: new Uint8Array([0, 0, 0, 0]),\n payInLzToken: false,\n }\n )\n return Promise.resolve(txBuilder.getInstructions()[0].keys.slice(1))\n }\n\n /**\n * Gets the account meta of the init config instruction for CPI (Cross-Program Invocation).\n *\n * @param {PublicKey} payer - The payer public key.\n * @param {PublicKey} oapp - The oapp ID public key.\n * @param {number} eid - The endpoint ID.\n *\n * @returns {AccountMeta[]} An array of account meta.\n */\n getInitConfigIXAccountMetaForCPI(payer: PublicKey, oapp: PublicKey, eid: number): AccountMeta[] {\n const [sendConfig] = this.pda.sendConfig(eid, oapp)\n const [receiveConfig] = this.pda.receiveConfig(eid, oapp)\n const [messageLib] = this.pda.messageLib()\n const txBuilder = instructions.initConfig(\n { payer: createNoopSigner(payer), programs: this.programRepo },\n {\n endpoint: createNoopSigner(defaultPublicKey()),\n payer: createNoopSigner(payer),\n messageLib,\n sendConfig,\n receiveConfig,\n // param\n oapp,\n eid,\n }\n )\n const cpiAccounts = txBuilder.getInstructions()[0].keys.map((key) => {\n if (payer !== key.pubkey) {\n key.isSigner = false\n }\n return key\n })\n return cpiAccounts.slice(1)\n }\n\n /**\n * Gets the account meta of the set config instruction for CPI (Cross-Program Invocation).\n *\n * @param {PublicKey} oapp - The oapp ID public key.\n * @param {number} eid - The endpoint ID.\n * @param {PublicKey} _endpointProgram - The endpoint program public key.\n *\n * @returns {Promise<AccountMeta[]>} A promise that resolves to an array of account meta.\n */\n getSetConfigIXAccountMetaForCPI(\n oapp: PublicKey,\n eid: number,\n _endpointProgram: PublicKey = ENDPOINT_PROGRAM_ID\n ): AccountMeta[] {\n const [sendConfig] = this.pda.sendConfig(eid, oapp)\n const [receiveConfig] = this.pda.receiveConfig(eid, oapp)\n const [msgLib] = this.pda.messageLib()\n const txBuilder = instructions.setConfig(\n { programs: this.programRepo },\n {\n endpoint: createNoopSigner(ENDPOINT_PROGRAM_ID), // useless\n sendConfig,\n receiveConfig,\n messageLib: msgLib,\n // param\n oapp: oapp,\n eid: 0,\n configType: 0,\n config: new Uint8Array(0),\n }\n )\n return txBuilder.getInstructions()[0].keys.slice(1)\n }\n}\n","import {\n AccountMeta,\n Cluster,\n ClusterFilter,\n Commitment,\n Option,\n Program,\n ProgramError,\n ProgramRepositoryInterface,\n PublicKey,\n RpcInterface,\n Signer,\n WrappedInstruction,\n createNoopSigner,\n createNullRpc,\n defaultPublicKey,\n isSome,\n publicKey,\n} from '@metaplex-foundation/umi'\nimport { createDefaultProgramRepository } from '@metaplex-foundation/umi-program-repository'\nimport { fromWeb3JsPublicKey } from '@metaplex-foundation/umi-web3js-adapters'\nimport { TOKEN_PROGRAM_ID } from '@solana/spl-token'\nimport invariant from 'tiny-invariant'\n\nimport { arrayify } from '@layerzerolabs/lz-utilities'\nimport { PacketV1Codec } from '@layerzerolabs/lz-v2-utilities'\n\nimport { EndpointProgram, MessageLibInterface, SetConfigType, SolanaPacketPath } from '.'\nimport { DVN, accounts as DvnAccounts } from './dvn'\nimport { ENDPOINT_PROGRAM_ID } from './endpoint'\nimport { Executor, accounts as ExecutorAccounts } from './executor'\nimport { ULN_PROGRAM_ID } from './generated/kinobi/uln'\nimport * as accounts from './generated/kinobi/uln/accounts'\nimport * as errors from './generated/kinobi/uln/errors'\nimport * as events from './generated/kinobi/uln/events'\nimport * as instructions from './generated/kinobi/uln/instructions'\nimport * as types from './generated/kinobi/uln/types'\nimport { EndpointPDA, EventPDA, UlnPDA } from './pda'\n\nexport { ULN_PROGRAM_ID } from './generated/kinobi/uln'\nexport { accounts, instructions, types, events, errors }\n\n/**\n * Interface representing the maximum message size.\n */\nexport interface MaxMessageSize {\n /**\n * The size of the message.\n */\n size: number\n\n /**\n * The kind of the message size.\n */\n __kind: 'MaxMessageSize'\n}\n\n/**\n * Interface representing the outbound confirmations.\n */\nexport interface OutboundConfirmations {\n /**\n * The number of confirmations.\n */\n confirmations: number\n\n /**\n * The kind of the outbound confirmations.\n */\n __kind: 'OutboundConfirmations'\n}\n\n/**\n * Interface representing the inbound confirmations.\n */\nexport interface InboundConfirmations {\n /**\n * The number of confirmations.\n */\n confirmations: number\n\n /**\n * The kind of the inbound confirmations.\n */\n __kind: 'InboundConfirmations'\n}\n\n/**\n * Interface representing the oracles.\n */\nexport interface Oracles {\n /**\n * Indicates if custom oracles are used.\n */\n useCustomOracles: boolean\n\n /**\n * The array of oracle public keys.\n */\n oracles: PublicKey[]\n\n /**\n * The kind of the oracles.\n */\n __kind: 'Oracles'\n}\n\n/**\n * Interface representing the optional oracles.\n */\nexport interface OptionalOracles {\n /**\n * Indicates if custom optional oracles are used.\n */\n useCustomOptionalOracles: boolean\n\n /**\n * The array of optional oracle public keys.\n */\n optionalOracles: PublicKey[]\n\n /**\n * The threshold for the optional oracles.\n */\n threshold: number\n\n /**\n * The kind of the optional oracles.\n */\n __kind: 'OptionalOracles'\n}\n\n/**\n * Class representing the ULN (Ultra Light Node).\n * @see {@link MessageLibInterface}\n */\nexport class Uln implements MessageLibInterface {\n public readonly pda: UlnPDA\n public readonly programRepo: ProgramRepositoryInterface\n public readonly eventAuthority: PublicKey\n\n /**\n * Creates an instance of the Uln class.\n *\n * @param {PublicKey} programId - The program public key.\n */\n constructor(\n public programId: PublicKey = ULN_PROGRAM_ID,\n rpc?: RpcInterface\n ) {\n this.pda = new UlnPDA(programId)\n if (rpc === undefined) {\n rpc = createNullRpc()\n rpc.getCluster = (): Cluster => 'custom'\n }\n this.programRepo = createDefaultProgramRepository({ rpc }, [\n {\n name: 'uln',\n publicKey: programId,\n getErrorFromCode(code: number, cause?: Error): ProgramError | null {\n return errors.getUlnErrorFromCode(code, this, cause)\n },\n getErrorFromName(name: string, cause?: Error): ProgramError | null {\n return errors.getUlnErrorFromName(name, this, cause)\n },\n isOnCluster(): boolean {\n return true\n },\n } satisfies Program,\n ])\n\n this.eventAuthority = new EventPDA(programId).eventAuthority()[0]\n }\n\n getProgram(clusterFilter: ClusterFilter = 'custom'): Program {\n return this.programRepo.get('uln', clusterFilter)\n }\n\n initUln(payer: Signer, param: { admin: PublicKey; eid: number; endpointProgram?: PublicKey }): WrappedInstruction {\n const { admin, eid, endpointProgram } = param\n const [msgLib] = this.pda.messageLib()\n const [endpointAuth] = new EndpointPDA(endpointProgram ?? ENDPOINT_PROGRAM_ID).messageLibraryInfo(msgLib)\n return instructions.initUln(\n { programs: this.programRepo, payer },\n {\n payer,\n uln: this.pda.setting(),\n // param\n eid,\n admin,\n endpoint: endpointAuth,\n endpointProgram: endpointProgram ?? ENDPOINT_PROGRAM_ID,\n }\n ).items[0]\n }\n\n /**\n * Initializes or updates the default configuration.\n * before calling this function, you should call initUln to initialize the uln\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} admin - The admin public key.\n * @param {number} eid - The endpoint ID.\n * @param {types.UlnConfig} sendUlnConfig - The send ULN configuration.\n * @param {types.UlnConfig} receiveUlnConfig - The receive ULN configuration.\n * @param {types.ExecutorConfig} executorConfig - The executor configuration.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment level or account info configuration.\n * @returns {Promise<TransactionInstruction>} A promise that resolves to the transaction instruction.\n */\n async initOrUpdateDefaultConfig(\n rpc: RpcInterface,\n admin: Signer,\n param: {\n remote: number\n sendUlnConfig: Option<types.UlnConfig>\n receiveUlnConfig: Option<types.UlnConfig>\n executorConfig: Option<types.ExecutorConfig>\n }\n ): Promise<WrappedInstruction> {\n const { remote, sendUlnConfig, receiveUlnConfig, executorConfig } = param\n const [setting] = this.pda.setting()\n const [sendConfig] = this.pda.defaultSendConfig(remote)\n const [receiveConfigPDA] = this.pda.defaultReceiveConfig(remote)\n const sendConfigExists = await rpc.accountExists(sendConfig, { commitment: 'confirmed' })\n if (sendConfigExists) {\n // update default config\n return instructions.setDefaultConfig(\n { programs: this.programRepo },\n {\n admin,\n uln: setting,\n sendConfig: sendConfig,\n receiveConfig: receiveConfigPDA,\n eventAuthority: this.eventAuthority,\n program: this.programId,\n // param\n eid: remote,\n sendUlnConfig,\n receiveUlnConfig,\n executorConfig,\n }\n ).items[0]\n } else {\n invariant(isSome(sendUlnConfig), 'sendUlnConfig is required')\n invariant(isSome(receiveUlnConfig), 'receiveUlnConfig is required')\n invariant(isSome(executorConfig), 'executorConfig is required')\n\n // init default config\n return instructions.initDefaultConfig(\n { programs: this.programRepo },\n {\n admin,\n uln: setting,\n sendConfig: sendConfig,\n receiveConfig: receiveConfigPDA,\n eventAuthority: this.eventAuthority,\n program: this.programId,\n // param\n eid: remote,\n sendUlnConfig: sendUlnConfig.value,\n receiveUlnConfig: receiveUlnConfig.value,\n executorConfig: executorConfig.value,\n }\n ).items[0]\n }\n }\n\n // msg_lib -> msg_lib_program ->\n /**\n * Sets the treasury.\n * before calling this function, you should call initUln to initialize the uln\n *\n * @param {PublicKey} admin - The admin public key.\n * @param {object} treasury - The treasury object.\n * @param {PublicKey} treasury.admin - The treasury admin public key.\n * @param {PublicKey} treasury.nativeReceiver - The native receiver public key.\n * @param {number} treasury.nativeFeeBps - The native fee basis points.\n * @param {object} treasury.lzToken - The LZ token object.\n * @param {PublicKey} treasury.lzToken.receiver - The LZ token receiver public key.\n * @param {number} treasury.lzToken.fee - The LZ token fee.\n * @returns {Promise<TransactionInstruction>} A promise that resolves to the transaction instruction.\n */\n setTreasury(\n admin: Signer,\n treasury: {\n admin: PublicKey\n nativeReceiver: PublicKey\n nativeFeeBps: number\n lzToken: { receiver: PublicKey; fee: number } | null\n } | null\n ): WrappedInstruction {\n return instructions.setTreasury(\n { programs: this.programRepo },\n {\n signer: admin,\n uln: this.pda.setting(),\n eventAuthority: this.eventAuthority,\n program: this.programId,\n // param\n treasury,\n }\n ).items[0]\n }\n\n transferAdmin(admin: Signer, newAdmin: PublicKey): WrappedInstruction {\n return instructions.transferAdmin(\n { programs: this.programRepo },\n {\n admin,\n uln: this.pda.setting(),\n eventAuthority: this.eventAuthority,\n program: this.programId,\n },\n { admin: newAdmin }\n ).items[0]\n }\n\n /**\n * Gets the account metadata for the CPI (Cross-Program Invocation) of the quote instruction.\n *\n * @param {RpcInterface} rpc - The connection to the Solana cluster.\n * @param {PublicKey} _payer - The payer public key.\n * @param {SolanaPacketPath} path - The packet path.\n * @param {Commitment} [commitment] - The commitment level.\n * @returns {Promise<AccountMeta[]>} A promise that resolves to an array of account metadata.\n */\n async getQuoteIXAccountMetaForCPI(\n rpc: RpcInterface,\n _payer: PublicKey,\n path: SolanaPacketPath,\n commitment: Commitment = 'confirmed'\n ): Promise<AccountMeta[]> {\n const { sender, dstEid } = path\n // const sender = publicKey(arrayify(sender_))\n const txBuilder = instructions.quote(\n { programs: this.programRepo },\n {\n endpoint: createNoopSigner(defaultPublicKey()),\n uln: this.pda.setting(),\n sendConfig: this.pda.sendConfig(dstEid, sender),\n defaultSendConfig: this.pda.defaultSendConfig(dstEid),\n\n packet: {\n nonce: 0,\n srcEid: 0,\n sender: defaultPublicKey(),\n dstEid: 0,\n receiver: new Uint8Array(32),\n guid: new Uint8Array(32),\n message: new Uint8Array(4),\n },\n options: new Uint8Array(4),\n payInLzToken: false,\n }\n )\n return txBuilder\n .addRemainingAccounts(await this.getSendIxRemainingAccounts(rpc, sender, dstEid, false, commitment))\n .getInstructions()[0]\n .keys.slice(1)\n }\n\n /**\n * Gets the account metadata for the CPI (Cross-Program Invocation) of the send instruction.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} payer - The payer public key.\n * @param {PacketPath} path - The packet path.\n * @param {Commitment} [commitment='confirmed'] - The commitment level.\n * @returns {Promise<AccountMeta[]>} A promise that resolves to an array of account metadata.\n */\n async getSendIXAccountMetaForCPI(\n rpc: RpcInterface,\n payer: PublicKey,\n path: SolanaPacketPath,\n commitment: Commitment = 'confirmed'\n ): Promise<AccountMeta[]> {\n const { sender, dstEid } = path\n\n const ulnState = await this.getSetting(rpc, commitment)\n let treasury: PublicKey | undefined\n if (ulnState !== null && isSome(ulnState.treasury)) {\n treasury = ulnState.treasury.value.nativeReceiver\n }\n\n let txBuilder = instructions.send(\n { payer: createNoopSigner(payer), programs: this.programRepo },\n {\n endpoint: createNoopSigner(defaultPublicKey()),\n payer: createNoopSigner(payer),\n uln: this.pda.setting(),\n sendConfig: this.pda.sendConfig(dstEid, sender),\n defaultSendConfig: this.pda.defaultSendConfig(dstEid),\n treasury,\n eventAuthority: this.eventAuthority,\n program: this.programId,\n\n // param\n packet: {\n nonce: 0,\n srcEid: 0,\n sender: defaultPublicKey(),\n dstEid: 0,\n receiver: new Uint8Array(32),\n guid: new Uint8Array(32),\n message: new Uint8Array(4),\n },\n options: new Uint8Array(4),\n nativeFee: 0,\n }\n )\n txBuilder = txBuilder.addRemainingAccounts(\n await this.getSendIxRemainingAccounts(rpc, sender, dstEid, true, commitment)\n )\n const accounts = txBuilder.getInstructions()[0].keys.map((key) => {\n if (payer !== key.pubkey) {\n key.isSigner = false\n }\n if (treasury !== undefined && key.pubkey === treasury) {\n key.isWritable = true\n }\n return key\n })\n return accounts.slice(1)\n }\n\n /***\n * Get the account meta of the send instruction for CPI(Cross-Program Invocation ) with lzToken\n */\n async getSendWithLzTokenIXAccountMetaForCPI(\n rpc: RpcInterface,\n accounts: {\n payer: PublicKey\n tokenMint: PublicKey\n tokenSource: PublicKey\n },\n path: SolanaPacketPath,\n programs: {\n tokenProgram?: PublicKey\n associatedTokenProgram?: PublicKey\n },\n commitment: Commitment = 'confirmed'\n ): Promise<AccountMeta[]> {\n const { payer, tokenMint, tokenSource } = accounts\n const { sender, dstEid } = path\n\n const ulnState = await this.getSetting(rpc, commitment)\n invariant(ulnState !== null, 'ULN not initialized')\n invariant(isSome(ulnState.treasury), 'treasury not set')\n invariant(isSome(ulnState.treasury.value.lzToken), 'lzToken treasury not set')\n const lzTokenTreasury = ulnState.treasury.value.lzToken.value.receiver\n\n let txBuilder = instructions.sendWithLzToken(\n { payer: createNoopSigner(payer), programs: this.programRepo },\n {\n endpoint: createNoopSigner(defaultPublicKey()),\n payer: createNoopSigner(payer),\n uln: this.pda.setting(),\n sendConfig: this.pda.sendConfig(dstEid, sender),\n defaultSendConfig: this.pda.defaultSendConfig(dstEid),\n lzTokenTreasury,\n eventAuthority: this.eventAuthority,\n program: this.programId,\n lzTokenSource: tokenSource,\n lzTokenMint: tokenMint,\n tokenProgram: programs.tokenProgram ?? fromWeb3JsPublicKey(TOKEN_PROGRAM_ID),\n },\n {\n packet: {\n nonce: 0,\n srcEid: 0,\n sender: defaultPublicKey(),\n dstEid: 0,\n receiver: new Uint8Array(32),\n guid: new Uint8Array(32),\n message: new Uint8Array(4),\n },\n options: new Uint8Array(4),\n nativeFee: 0,\n lzTokenFee: 0,\n lzTokenMint: tokenMint,\n }\n )\n txBuilder = txBuilder.addRemainingAccounts(\n await this.getSendIxRemainingAccounts(rpc, sender, dstEid, true, commitment)\n )\n const keys = txBuilder.getInstructions()[0].keys.map((key) => {\n if (payer !== key.pubkey) {\n key.isSigner = false\n }\n if (key.pubkey === lzTokenTreasury) {\n key.isWritable = true\n }\n return key\n })\n return keys.slice(1)\n }\n\n // 3 RPC requests\n /**\n * Gets the remaining accounts for the send instruction.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} sender - The sender public key.\n * @param {number} dstEid - The destination endpoint ID.\n * @param {boolean} payment - Indicates if payment is required.\n * @param {Commitment | GetAccountInfoConfig} [commitment='confirmed'] - The commitment level or account info configuration.\n * @returns {Promise<AccountMeta[]>} A promise that resolves to an array of account metadata.\n */\n async getSendIxRemainingAccounts(\n rpc: RpcInterface,\n sender: PublicKey,\n dstEid: number,\n payment: boolean,\n commitment: Commitment = 'confirmed'\n ): Promise<AccountMeta[]> {\n const { executor, dvns } = await this.getWorkers(rpc, sender, dstEid)\n\n const priceFeeds = new Array<PublicKey>()\n ;[executor.config, ...dvns.map((dvn) => dvn.config)].forEach((config) => {\n if (!priceFeeds.find((p) => p === config.priceFeed)) {\n priceFeeds.push(config.priceFeed)\n }\n })\n const priceFeedInfos = await rpc.getAccounts(priceFeeds, { commitment })\n const priceFeedDict = priceFeedInfos.reduce((acc, info, i) => {\n invariant(info.exists, `priceFeed:${priceFeeds[i]} not initialized`)\n acc.set(priceFeeds[i], info.owner)\n return acc\n }, new Map<PublicKey, PublicKey>())\n const executorAccounts = new Executor(executor.owner).getQuoteIXAccountMetaForCPI(\n executor.config.priceFeed,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n priceFeedDict.get(executor.config.priceFeed)!,\n payment\n )\n const dvnAccounts = dvns.map((p, i) => {\n return new DVN(p.owner).getQuoteIXAccountMetaForCPI(\n p.config.priceFeed,\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n priceFeedDict.get(p.config.priceFeed)!,\n payment\n )\n })\n return executorAccounts.concat(dvnAccounts.flat())\n }\n\n /**\n * Gets all workers (executor and DVN).\n * 2 RPC requests\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} sender - The sender public key.\n * @param {number} eid - The endpoint ID.\n * @param {Commitment | GetAccountInfoConfig} [commitment='confirmed'] - The commitment level or account info configuration.\n * @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.\n */\n async getWorkers(\n rpc: RpcInterface,\n sender: PublicKey,\n eid: number,\n commitment: Commitment = 'confirmed'\n ): Promise<{\n executor: { config: ExecutorAccounts.ExecutorConfig; owner: PublicKey }\n dvns: { config: DvnAccounts.DvnConfig; owner: PublicKey }[]\n }> {\n const [defaultSendConfig] = this.pda.defaultSendConfig(eid)\n const [sendConfig] = this.pda.sendConfig(eid, sender)\n const [defaultSendConfigBuf, sendConfigBuf] = await rpc.getAccounts([defaultSendConfig, sendConfig], {\n commitment,\n })\n invariant(defaultSendConfigBuf.exists, 'defaultSendConfig not initialized')\n\n const defaultSendConfigState = accounts.deserializeSendConfig(defaultSendConfigBuf)\n let {\n executor,\n uln: { requiredDvns, optionalDvns },\n } = defaultSendConfigState\n const sendConfigState = sendConfigBuf.exists ? accounts.deserializeSendConfig(sendConfigBuf) : null\n\n // if the executor is set in the send config, use it\n if (sendConfigState?.executor && sendConfigState.executor.executor !== defaultPublicKey()) {\n ;({ executor } = sendConfigState)\n }\n\n // if the requiredDvns is set in the send config, use it\n if (sendConfigState && sendConfigState.uln.requiredDvns.length > 0) {\n requiredDvns = sendConfigState.uln.requiredDvns.filter((p) => {\n return p !== defaultPublicKey()\n })\n }\n\n // if the optionalDvns is set in the send config, use it\n if (sendConfigState && sendConfigState.uln.optionalDvns.length > 0) {\n optionalDvns = sendConfigState.uln.optionalDvns.filter((p) => {\n return p !== defaultPublicKey()\n })\n }\n const dvns = requiredDvns.concat(optionalDvns)\n const [executorBuf, ...dvnBuf] = await rpc.getAccounts([executor.executor, ...dvns], {\n commitment,\n })\n invariant(executorBuf.exists, `executor:${executor.executor} not initialized`)\n\n return {\n executor: {\n config: ExecutorAccounts.deserializeExecutorConfig(executorBuf),\n owner: executorBuf.owner,\n },\n dvns: dvnBuf.map((dvn, i) => {\n invariant(dvn.exists, `dvn:${dvns[i]} not initialized`)\n return {\n config: DvnAccounts.deserializeDvnConfig(dvn),\n owner: dvn.owner,\n }\n }),\n }\n }\n\n /**\n * Initializes the verification process.\n *\n */\n initVerify(payer: Signer, param: { dvn: PublicKey; packetBytes: Uint8Array }): WrappedInstruction {\n const { dvn, packetBytes } = param\n const packet = PacketV1Codec.fromBytes(packetBytes)\n const headerHash = packet.headerHash()\n const headerHashBytes = Uint8Array.from(Buffer.from(headerHash.slice(2), 'hex'))\n const payloadHash = packet.payloadHash()\n const payloadHashBytes = Uint8Array.from(Buffer.from(payloadHash.slice(2), 'hex'))\n // const confirmationsInfo = await rpc.getAccount(confirmationsPDA, { commitment })\n // if (confirmationsInfo.exists) {\n // // throw new Error('init verify already executed')\n // return null\n // }\n return instructions.initVerify(\n { programs: this.programRepo, payer },\n {\n payer,\n confirmations: this.pda.confirmations(headerHashBytes, payloadHashBytes, dvn),\n // param\n packetHeader: Array.from(Uint8Array.from(Buffer.from(packet.header().slice(2), 'hex'))),\n payloadHash: payloadHashBytes,\n dvn,\n }\n ).items[0]\n }\n\n verify(dvn: Signer, param: { packetBytes: Uint8Array; confirmations: number | bigint }): WrappedInstruction {\n const { packetBytes, confirmations } = param\n const packet = PacketV1Codec.fromBytes(packetBytes)\n const headerHash = packet.headerHash()\n const headerHashBytes = Uint8Array.from(Buffer.from(headerHash.slice(2), 'hex'))\n const payloadHash = packet.payloadHash()\n const payloadHashBytes = Uint8Array.from(Buffer.from(payloadHash.slice(2), 'hex'))\n return instructions.verify(\n { programs: this.programRepo },\n {\n dvn,\n confirmations: this.pda.confirmations(headerHashBytes, payloadHashBytes, dvn.publicKey),\n eventAuthority: this.eventAuthority,\n program: this.programId,\n },\n {\n packetHeader: Array.from(Uint8Array.from(Buffer.from(packet.header().slice(2), 'hex'))),\n payloadHash: payloadHashBytes,\n confirmations: confirmations,\n }\n ).items[0]\n }\n\n closeVerify(dvn: Signer, param: { receiver: PublicKey; packetBytes: Uint8Array }): WrappedInstruction {\n const { receiver, packetBytes } = param\n const packet = PacketV1Codec.fromBytes(packetBytes)\n const headerHash = packet.headerHash()\n const headerHashBytes = Uint8Array.from(Buffer.from(headerHash.slice(2), 'hex'))\n const payloadHash = packet.payloadHash()\n const payloadHashBytes = Uint8Array.from(Buffer.from(payloadHash.slice(2), 'hex'))\n return instructions.closeVerify(\n { programs: this.programRepo },\n {\n dvn,\n receiver,\n confirmations: this.pda.confirmations(headerHashBytes, payloadHashBytes, dvn.publicKey),\n\n // param\n packetHeaderHash: headerHashBytes,\n payloadHash: payloadHashBytes,\n }\n ).items[0]\n }\n\n /**\n * Checks if the DVN is verified.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} endpointProgram - The endpoint program public key.\n * @param {PublicKey} dvn - The DVN public key.\n * @param {Uint8Array} packetBytes - The packet bytes.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig='confirmed'] - The commitment level or account info configuration.\n * @returns {Promise<boolean>} A promise that resolves to true if the DVN is verified, false otherwise.\n */\n async isDvnVerified(\n rpc: RpcInterface,\n endpointProgram: PublicKey,\n dvn: PublicKey,\n packetBytes: Uint8Array,\n commitment: Commitment = 'confirmed'\n ): Promise<boolean> {\n const packet = PacketV1Codec.fromBytes(packetBytes)\n const headerHash = packet.headerHash()\n const headerHashBytes = Uint8Array.from(Buffer.from(headerHash.slice(2), 'hex'))\n const payloadHash = packet.payloadHash()\n const payloadHashBytes = Uint8Array.from(Buffer.from(payloadHash.slice(2), 'hex'))\n const [confirmationsPDA] = this.pda.confirmations(headerHashBytes, payloadHashBytes, dvn)\n const endpoint = new EndpointProgram.Endpoint(endpointProgram)\n const receiver = publicKey(arrayify(packet.receiver()))\n const sender = arrayify(packet.sender())\n const nonce = await endpoint.getNonce(rpc, receiver, packet.srcEid(), sender, commitment)\n const pendingNonce = await endpoint.getPendingInboundNonce(rpc, receiver, packet.srcEid(), sender, commitment)\n if (!nonce || !pendingNonce) {\n return false\n }\n\n // after lzReceive, the inboundNonce is increased by 1\n if (parseInt(nonce.inboundNonce.toString()) >= parseInt(packet.nonce())) {\n return true\n }\n // after commitVerification, the nonce is added to pendingNonce\n if (pendingNonce.nonces.find((n) => n.toString() === packet.nonce()) !== undefined) {\n return true\n }\n\n // before commitVerification, should call initVerify and verify\n const confirmation = await accounts.safeFetchConfirmations({ rpc }, confirmationsPDA, { commitment })\n if (confirmation?.value == null) {\n // initial value is null not verified\n return false\n } else {\n // TODO check confirmation value\n return true\n }\n }\n\n /**\n * Commits the verification process.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} endpointProgram - The endpoint program public key.\n * @param {Uint8Array} packetBytes - The packet bytes.\n * @returns {Promise<TransactionInstruction>} A promise that resolves to the transaction instruction.\n */\n async commitVerification(\n rpc: RpcInterface,\n packetBytes: Uint8Array,\n endpointProgram: PublicKey = ENDPOINT_PROGRAM_ID\n ): Promise<WrappedInstruction> {\n const packet = PacketV1Codec.fromBytes(packetBytes)\n const payloadHash = packet.payloadHash()\n const srcEid = packet.srcEid()\n const receiver = publicKey(arrayify(packet.receiver()))\n const payloadHashBytes = Uint8Array.from(Buffer.from(payloadHash.slice(2), 'hex'))\n\n const [msgLib] = this.pda.messageLib()\n const receiveConfigState = await this.getFinalReceiveConfigState(rpc, receiver, srcEid)\n\n const headerHash = packet.headerHash()\n const headerHashBytes = Uint8Array.from(Buffer.from(headerHash.slice(2), 'hex'))\n\n const confirmations: AccountMeta[] = receiveConfigState.requiredDvns\n .concat(receiveConfigState.optionalDvns)\n .map((p) => {\n const [confirmationsPDA] = this.pda.confirmations(headerHashBytes, payloadHashBytes, p)\n return {\n pubkey: confirmationsPDA,\n isSigner: false,\n isWritable: true,\n }\n })\n const endpoint = new EndpointProgram.Endpoint(endpointProgram)\n const verifyAccounts = endpoint.getVerifyIXAccountMetaForCPI(packet, msgLib)\n\n const txBuilder = instructions.commitVerification(\n { programs: this.programRepo },\n {\n uln: this.pda.setting(),\n defaultReceiveConfig: this.pda.defaultReceiveConfig(srcEid),\n receiveConfig: this.pda.receiveConfig(srcEid, receiver),\n\n // param\n packetHeader: Array.from(arrayify(packet.header())),\n payloadHash: payloadHashBytes,\n }\n )\n return txBuilder.addRemainingAccounts(confirmations.concat(verifyAccounts)).items[0]\n }\n\n /**\n * Gets the account metadata for the CPI (Cross-Program Invocation) of the init config instruction.\n *\n * @param {PublicKey} payer - The payer public key.\n * @param {PublicKey} oappID - The OApp ID public key.\n * @param {number} eid - The endpoint ID.\n * @returns {AccountMeta[]} An array of account metadata.\n */\n getInitConfigIXAccountMetaForCPI(payer: PublicKey, oappID: PublicKey, eid: number): AccountMeta[] {\n const txBuilder = instructions.initConfig(\n { payer: createNoopSigner(payer), programs: this.programRepo },\n {\n endpoint: createNoopSigner(defaultPublicKey()),\n payer: createNoopSigner(payer),\n uln: this.pda.setting(),\n sendConfig: this.pda.sendConfig(eid, oappID),\n receiveConfig: this.pda.receiveConfig(eid, oappID),\n\n // params\n oapp: defaultPublicKey(),\n eid: 0,\n }\n )\n const accounts = txBuilder.getInstructions()[0].keys.map((key) => {\n if (payer !== key.pubkey) {\n key.isSigner = false\n }\n return key\n })\n return accounts.slice(1)\n }\n\n /**\n * Constructs the set config data.\n *\n * @param {SetConfigType} configType - The configuration type.\n * @param {types.ExecutorConfig | types.UlnConfig} configData - The configuration data.\n * @returns {Uint8Array} The constructed set config data.\n * @throws {Error} If the configuration type is invalid.\n */\n static constructSetConfigData(\n configType: SetConfigType,\n configData: types.ExecutorConfig | types.UlnConfig\n ): Uint8Array {\n switch (configType) {\n case SetConfigType.EXECUTOR: {\n return types.getExecutorConfigSerializer().serialize(configData as types.ExecutorConfig)\n }\n case SetConfigType.SEND_ULN:\n case SetConfigType.RECEIVE_ULN: {\n return types.getUlnConfigSerializer().serialize(configData as types.UlnConfig)\n }\n default:\n throw new Error(`invalid config type: ${configType as number}`)\n }\n }\n\n /**\n * Gets the account metadata for the CPI (Cross-Program Invocation) of the set config instruction.\n *\n * @param {PublicKey} endpointProgram - The endpoint program public key.\n * @param {PublicKey} oappID - The OApp ID public key.\n * @param {number} eid - The endpoint ID.\n * @returns {Promise<AccountMeta[]>} A promise that resolves to an array of account metadata.\n */\n getSetConfigIXAccountMetaForCPI(\n oapp: PublicKey,\n eid: number,\n endpointProgram: PublicKey = ENDPOINT_PROGRAM_ID\n ): AccountMeta[] {\n const [msgLib] = this.pda.messageLib()\n const [msgLibInfo] = new EndpointPDA(endpointProgram).messageLibraryInfo(msgLib)\n\n const txBuilder = instructions.setConfig(\n { programs: this.programRepo },\n {\n endpoint: createNoopSigner(msgLibInfo),\n uln: this.pda.setting(),\n sendConfig: this.pda.sendConfig(eid, oapp),\n defaultSendConfig: this.pda.defaultSendConfig(eid),\n defaultReceiveConfig: this.pda.defaultReceiveConfig(eid),\n receiveConfig: this.pda.receiveConfig(eid, oapp),\n eventAuthority: this.eventAuthority,\n program: this.programId,\n // param\n oapp: defaultPublicKey(),\n eid: 0,\n configType: 0,\n config: new Uint8Array(32),\n }\n )\n return txBuilder.getInstructions()[0].keys.slice(1)\n }\n\n /**\n * Gets the ULN settings.\n *\n * @param {RpcInterface} rpc - The connection to the Solana cluster.\n * @param {Commitment} [commitment] - The commitment level or account info configuration.\n * @returns {Promise<accounts.UlnSettings | null>} A promise that resolves to the ULN settings or null if not found.\n */\n async getSetting(rpc: RpcInterface, commitment: Commitment = 'confirmed'): Promise<accounts.UlnSettings | null> {\n const [setting] = this.pda.setting()\n return accounts.safeFetchUlnSettings({ rpc }, setting, { commitment })\n }\n\n /**\n * Gets the default send configuration state.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {number} eid - The endpoint ID.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment level or account info configuration.\n * @returns {Promise<accounts.SendConfig | null>} A promise that resolves to the default send configuration state or null if not found.\n */\n async getDefaultSendConfigState(\n rpc: RpcInterface,\n eid: number,\n commitment: Commitment = 'confirmed'\n ): Promise<accounts.SendConfig | null> {\n const [config] = this.pda.defaultSendConfig(eid)\n return accounts.safeFetchSendConfig({ rpc }, config, { commitment })\n }\n\n /**\n * Gets the send configuration state.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} sender - The sender public key.\n * @param {number} eid - The endpoint ID.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment level or account info configuration.\n * @returns {Promise<accounts.SendConfig | null>} A promise that resolves to the send configuration state or null if not found.\n */\n async getSendConfigState(\n rpc: RpcInterface,\n sender: PublicKey,\n eid: number,\n commitment: Commitment = 'confirmed'\n ): Promise<accounts.SendConfig | null> {\n const [config] = this.pda.sendConfig(eid, sender)\n return accounts.safeFetchSendConfig({ rpc }, config, { commitment })\n }\n\n /**\n * Gets the default receive configuration state.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {number} eid - The endpoint ID.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment level or account info configuration.\n * @returns {Promise<accounts.ReceiveConfig | null>} A promise that resolves to the default receive configuration state or null if not found.\n */\n async getDefaultReceiveConfigState(\n rpc: RpcInterface,\n eid: number,\n commitment: Commitment = 'confirmed'\n ): Promise<accounts.ReceiveConfig | null> {\n const [config] = this.pda.defaultReceiveConfig(eid)\n return accounts.safeFetchReceiveConfig({ rpc }, config, { commitment })\n }\n\n /**\n * Gets the receive configuration state.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} receiver - The receiver public key.\n * @param {number} eid - The endpoint ID.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment level or account info configuration.\n * @returns {Promise<accounts.ReceiveConfig | null>} A promise that resolves to the receive configuration state or null if not found.\n */\n async getReceiveConfigState(\n rpc: RpcInterface,\n receiver: PublicKey,\n eid: number,\n commitment: Commitment = 'confirmed'\n ): Promise<accounts.ReceiveConfig | null> {\n const [config] = this.pda.receiveConfig(eid, receiver)\n return accounts.safeFetchReceiveConfig({ rpc }, config, { commitment })\n }\n\n /**\n * Gets the final receive configuration state.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} receiver - The receiver public key.\n * @param {number} eid - The endpoint ID.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig='confirmed'] - The commitment level or account info configuration.\n * @returns {Promise<accounts.ReceiveConfig>} A promise that resolves to the final receive configuration state.\n * @throws {Error} If no DVN is found.\n */\n async getFinalReceiveConfigState(\n rpc: RpcInterface,\n receiver: PublicKey,\n eid: number,\n commitment: Commitment = 'confirmed'\n ): Promise<types.UlnConfig> {\n const [defaultConfig] = this.pda.defaultReceiveConfig(eid)\n const [customConfig] = this.pda.receiveConfig(eid, receiver)\n\n const [defaultConfigInfo, customConfigInfo] = await rpc.getAccounts([defaultConfig, customConfig], {\n commitment,\n })\n if (!defaultConfigInfo.exists) {\n throw new Error(`please init default receive config first. ${defaultConfig}`)\n }\n const defaultConfigState = accounts.deserializeReceiveConfig(defaultConfigInfo)\n const customConfigState = customConfigInfo.exists ? accounts.deserializeReceiveConfig(customConfigInfo) : null\n return this.getConfigState(defaultConfigState, customConfigState)\n }\n\n async getFinalSendConfigState(\n rpc: RpcInterface,\n sender: PublicKey,\n eid: number,\n commitment: Commitment = 'confirmed'\n ): Promise<types.UlnConfig> {\n const [defaultConfig] = this.pda.defaultSendConfig(eid)\n const [customConfig] = this.pda.sendConfig(eid, sender)\n\n const [defaultConfigInfo, customConfigInfo] = await rpc.getAccounts([defaultConfig, customConfig], {\n commitment,\n })\n if (!defaultConfigInfo.exists) {\n throw new Error(`please init default send config first. ${defaultConfig}`)\n }\n const defaultConfigState = accounts.deserializeSendConfig(defaultConfigInfo)\n const customConfigState = customConfigInfo.exists ? accounts.deserializeSendConfig(customConfigInfo) : null\n return this.getConfigState(defaultConfigState, customConfigState)\n }\n\n private getConfigState(\n defaultConfigState: accounts.ReceiveConfig | accounts.SendConfig,\n customConfigState: accounts.ReceiveConfig | accounts.SendConfig | null\n ): types.UlnConfig {\n const NIL_CONFIRMATIONS = '18446744073709551615' // max uint64\n const NIL_DVN_COUNT = '255'\n\n const rtn_config: types.UlnConfig = {\n confirmations: 0n,\n requiredDvnCount: 0,\n optionalDvnCount: 0,\n optionalDvnThreshold: 0,\n requiredDvns: [],\n optionalDvns: [],\n }\n\n if (customConfigState == null || customConfigState.uln.confirmations === 0n) {\n rtn_config.confirmations = defaultConfigState.uln.confirmations\n } else if (customConfigState.uln.confirmations.toString() !== NIL_CONFIRMATIONS) {\n rtn_config.confirmations = customConfigState.uln.confirmations\n }\n\n if (customConfigState == null || customConfigState.uln.requiredDvnCount == 0) {\n if (defaultConfigState.uln.requiredDvnCount > 0) {\n rtn_config.requiredDvns = defaultConfigState.uln.requiredDvns\n rtn_config.requiredDvnCount = defaultConfigState.uln.requiredDvnCount\n }\n } else if (customConfigState.uln.requiredDvnCount.toString() !== NIL_DVN_COUNT) {\n rtn_config.requiredDvns = customConfigState.uln.requiredDvns\n rtn_config.requiredDvnCount = customConfigState.uln.requiredDvnCount\n }\n\n if (customConfigState == null || customConfigState.uln.optionalDvnCount == 0) {\n if (defaultConfigState.uln.optionalDvnCount > 0) {\n rtn_config.optionalDvns = defaultConfigState.uln.optionalDvns\n rtn_config.optionalDvnCount = defaultConfigState.uln.optionalDvnCount\n rtn_config.optionalDvnThreshold = defaultConfigState.uln.optionalDvnThreshold\n }\n } else if (customConfigState.uln.optionalDvnCount.toString() !== NIL_DVN_COUNT) {\n rtn_config.optionalDvns = customConfigState.uln.optionalDvns\n rtn_config.optionalDvnCount = customConfigState.uln.optionalDvnCount\n rtn_config.optionalDvnThreshold = customConfigState.uln.optionalDvnThreshold\n }\n\n if (rtn_config.requiredDvnCount === 0 && rtn_config.optionalDvnCount === 0) {\n throw new Error('no dvn')\n }\n return rtn_config\n }\n}\n","import {\n AccountMeta,\n Cluster,\n ClusterFilter,\n Commitment,\n Instruction,\n Program,\n ProgramError,\n ProgramRepositoryInterface,\n PublicKey,\n RpcInterface,\n Signer,\n WrappedInstruction,\n createNullRpc,\n defaultPublicKey,\n publicKey,\n} from '@metaplex-foundation/umi'\nimport { createDefaultProgramRepository } from '@metaplex-foundation/umi-program-repository'\n\nimport { HashSigner, keccak_256 } from '@layerzerolabs/lz-foundation'\nimport { PacketV1Codec, addressToBytes32 } from '@layerzerolabs/lz-v2-utilities'\n\nimport { EndpointProgram, UlnProgram } from '.'\nimport * as accounts from './generated/kinobi/dvn/accounts'\nimport * as errors from './generated/kinobi/dvn/errors'\nimport * as events from './generated/kinobi/dvn/events'\nimport * as instructions from './generated/kinobi/dvn/instructions'\nimport { QuoteDvnInstructionArgs } from './generated/kinobi/dvn/instructions'\nimport * as types from './generated/kinobi/dvn/types'\nimport { DvnPDA, EndpointPDA, EventPDA, PriceFeedPDA } from './pda'\n\nexport { accounts, errors, instructions, types, events }\nexport { DVN_PROGRAM_ID } from './generated/kinobi/dvn'\n\nexport interface SignFunc {\n sign(message: Buffer): Promise<\n {\n signature: Uint8Array\n recoveryId: number\n }[]\n >\n}\n\nexport class SolanaSignerExt implements SignFunc {\n private readonly signers: HashSigner[]\n\n private constructor(signers: HashSigner[]) {\n this.signers = signers\n }\n\n static from(signers: HashSigner[]): SolanaSignerExt {\n return new SolanaSignerExt(signers)\n }\n\n async sign(message: Buffer): Promise<{ signature: Uint8Array; recoveryId: number }[]> {\n return Promise.all(\n this.signers.map(async (s) => {\n const rv = await s.signHash(message)\n return { signature: rv.slice(0, 64), recoveryId: rv[64] }\n })\n )\n }\n}\n\nexport class DVN {\n public readonly pda: DvnPDA\n public readonly eventAuthority: PublicKey\n public readonly programRepo: ProgramRepositoryInterface\n\n constructor(\n readonly programId: PublicKey,\n rpc?: RpcInterface\n ) {\n this.pda = new DvnPDA(programId)\n // this.vid = endpointId % 30000\n this.eventAuthority = new EventPDA(programId).eventAuthority()[0]\n if (rpc === undefined) {\n rpc = createNullRpc()\n rpc.getCluster = (): Cluster => 'custom'\n }\n this.programRepo = createDefaultProgramRepository({ rpc }, [\n {\n name: 'dvn',\n publicKey: programId,\n getErrorFromCode(code: number, cause?: Error): ProgramError | null {\n return errors.getDvnErrorFromCode(code, this, cause)\n },\n getErrorFromName(name: string, cause?: Error): ProgramError | null {\n return errors.getDvnErrorFromName(name, this, cause)\n },\n isOnCluster(): boolean {\n return true\n },\n } satisfies Program,\n ])\n }\n\n getProgram(clusterFilter: ClusterFilter = 'custom'): Program {\n return this.programRepo.get('dvn', clusterFilter)\n }\n\n async initDVN(\n rpc: RpcInterface,\n payer: Signer,\n params: instructions.InitDvnInstructionArgs\n ): Promise<WrappedInstruction> {\n const [config] = this.pda.config()\n const info = await rpc.getAccount(config)\n if (info.exists) {\n throw new Error('DVN already initialized')\n }\n return instructions.initDvn(\n { programs: this.programRepo, payer: payer },\n {\n payer,\n config,\n //\n ...params,\n }\n ).items[0]\n }\n\n getDigest(vid: number, instruction: Instruction, expiration: bigint): types.ExecuteTransactionDigest {\n return {\n vid,\n programId: instruction.programId,\n accounts: instruction.keys.map((key) => {\n return {\n pubkey: key.pubkey,\n isSigner: key.isSigner,\n isWritable: key.isWritable,\n }\n }),\n data: instruction.data,\n expiration,\n }\n }\n\n getExecuteHash(hashBytes: Buffer): PublicKey {\n return this.pda.executeHash(hashBytes)[0]\n }\n\n getHashBytes(digest: types.ExecuteTransactionDigest): Buffer {\n const digestBytes = types.getExecuteTransactionDigestSerializer().serialize(digest)\n const hash = keccak_256(digestBytes)\n return Buffer.from(hash)\n }\n\n async invoke(\n rpc: RpcInterface,\n payer: Signer,\n params: {\n vid: number\n instruction: Instruction\n expiration: bigint\n },\n sign: SignFunc\n ): Promise<WrappedInstruction> {\n const configState = await this.getConfigState(rpc, 'confirmed')\n if (!configState) {\n throw new Error('DVN not initialized')\n }\n\n const { vid, instruction, expiration } = params\n const digest: types.ExecuteTransactionDigest = this.getDigest(vid, instruction, expiration)\n const hashBytes = this.getHashBytes(digest)\n const executeHash = this.getExecuteHash(hashBytes)\n const signatures: number[][] = []\n const signResult = await sign.sign(hashBytes)\n signatures.push(...signResult.map((s) => Array.from(s.signature).concat([s.recoveryId])))\n\n const txBuilder = instructions.invoke(\n { programs: this.programRepo },\n {\n signer: payer,\n config: this.pda.config(),\n executeHash,\n program: this.programId,\n eventAuthority: this.eventAuthority,\n\n digest: digest,\n signatures: signatures,\n }\n )\n return txBuilder.addRemainingAccounts([\n {\n pubkey: instruction.programId,\n isSigner: false,\n isWritable: false,\n },\n ...instruction.keys.map((key) => {\n key.isSigner = false\n return key\n }),\n ]).items[0]\n }\n\n async setMultisigConfig(\n rpc: RpcInterface,\n payer: Signer,\n params: {\n vid: number\n config: types.MultisigConfig\n expiration: bigint\n },\n sign: SignFunc\n ): Promise<[WrappedInstruction, Buffer]> {\n const { vid, expiration } = params\n const innerInstruction: Instruction = {\n programId: this.programId,\n keys: [],\n data: Buffer.from(types.getMultisigConfigSerializer().serialize(params.config)),\n }\n const digest: types.ExecuteTransactionDigest = this.getDigest(vid, innerInstruction, expiration)\n return [\n await this.invoke(\n rpc,\n payer,\n {\n vid: vid,\n instruction: innerInstruction,\n expiration,\n },\n sign\n ),\n this.getHashBytes(digest),\n ]\n }\n\n // set admin config, can call by one of the admins\n setConfig(admin: Signer, adminConfig: types.AdminConfigArgs): WrappedInstruction {\n return instructions.setConfig(\n { programs: this.programRepo },\n {\n admin,\n config: this.pda.config(),\n program: this.programId,\n eventAuthority: this.eventAuthority,\n },\n {\n config: adminConfig,\n }\n ).items[0]\n }\n\n setDstConfig(admin: Signer, dstConfigs: types.DstConfig[]): WrappedInstruction {\n return this.setConfig(admin, {\n __kind: 'DstConfigs',\n fields: [dstConfigs],\n })\n }\n\n setAdmins(admin: Signer, admins: PublicKey[]): WrappedInstruction {\n return this.setConfig(admin, {\n __kind: 'Admins',\n fields: [admins],\n })\n }\n\n setDefaultMultiplierBps(admin: Signer, defaultMultiplierBps: number): WrappedInstruction {\n return this.setConfig(admin, {\n __kind: 'DefaultMultiplierBps',\n fields: [defaultMultiplierBps],\n })\n }\n\n setPriceFeed(admin: Signer, priceFeedProgram: PublicKey): WrappedInstruction {\n const [priceFeedPda] = new PriceFeedPDA(priceFeedProgram).priceFeed()\n return this.setConfig(admin, {\n fields: [priceFeedPda],\n __kind: 'PriceFeed',\n })\n }\n\n _getExpiration(): bigint {\n return BigInt(new Date().getTime() / 1000 + 120)\n }\n\n withdrawFee(admin: Signer, param: { receiver: PublicKey; amount: number | bigint }): WrappedInstruction {\n return instructions.withdrawFee(\n { programs: this.programRepo },\n {\n admin,\n config: this.pda.config(),\n receiver: param.receiver,\n program: this.programId,\n eventAuthority: this.eventAuthority,\n amount: param.amount,\n }\n ).items[0]\n }\n\n closeExecute(admin: Signer, digestHash: Buffer): WrappedInstruction {\n return instructions.closeExecute(\n { programs: this.programRepo },\n {\n admin,\n config: this.pda.config(),\n executeHash: this.pda.executeHash(digestHash),\n digestHash,\n }\n ).items[0]\n }\n\n quoteDvn(param: { priceFeedProgram: PublicKey } & QuoteDvnInstructionArgs): WrappedInstruction {\n const [priceFeed] = new PriceFeedPDA(param.priceFeedProgram).priceFeed()\n return instructions.quoteDvn(\n { programs: this.programRepo },\n {\n dvnConfig: this.pda.config(),\n priceFeedConfig: priceFeed,\n ...param,\n }\n ).items[0]\n }\n\n async verifiable(\n rpc: RpcInterface,\n params: {\n packetBytes: Uint8Array\n endpointProgram?: PublicKey\n msgLibProgram?: PublicKey\n }\n ): Promise<WrappedInstruction> {\n const { packetBytes } = params\n const packet = PacketV1Codec.fromBytes(packetBytes)\n const receiver = publicKey(Buffer.from(packet.receiver().slice(2), 'hex'))\n const srcEid = packet.srcEid()\n const sender = addressToBytes32(packet.sender())\n const packetNonce = parseInt(packet.nonce())\n const headerHashBytes = Uint8Array.from(Buffer.from(packet.headerHash().slice(2), 'hex'))\n const payloadHashBytes = Uint8Array.from(Buffer.from(packet.payloadHash().slice(2), 'hex'))\n\n const endpointPDA = new EndpointPDA(params.endpointProgram ?? EndpointProgram.ENDPOINT_PROGRAM_ID)\n const ulnSDK = new UlnProgram.Uln(params.msgLibProgram ?? UlnProgram.ULN_PROGRAM_ID)\n\n const finalReceiveConfig = await ulnSDK.getFinalReceiveConfigState(rpc, receiver, srcEid, 'confirmed')\n const confirmations: AccountMeta[] = [\n ...finalReceiveConfig.requiredDvns,\n ...finalReceiveConfig.optionalDvns,\n ].map((dvn) => {\n return {\n pubkey: ulnSDK.pda.confirmations(headerHashBytes, payloadHashBytes, dvn)[0],\n isSigner: false,\n isWritable: false,\n }\n })\n return instructions\n .verifiable(\n { programs: this.programRepo },\n {\n nonce: endpointPDA.nonce(receiver, srcEid, sender),\n payloadHash: endpointPDA.payloadHash(receiver, srcEid, sender, packetNonce),\n receiveConfig: ulnSDK.pda.receiveConfig(srcEid, receiver),\n defaultReceiveConfig: ulnSDK.pda.defaultReceiveConfig(srcEid),\n },\n {\n packetHeader: Array.from(Uint8Array.from(Buffer.from(packet.header().slice(2), 'hex'))),\n payloadHash: payloadHashBytes,\n }\n )\n .addRemainingAccounts(confirmations).items[0]\n }\n\n getQuoteIXAccountMetaForCPI(\n priceFeedConfig: PublicKey,\n priceFeedProgram: PublicKey,\n payment: boolean\n ): AccountMeta[] {\n const txBuilder = instructions.quoteDvn(\n { programs: this.programRepo },\n {\n dvnConfig: this.pda.config(),\n priceFeedConfig,\n priceFeedProgram: priceFeedProgram,\n\n // param\n msglib: defaultPublicKey(),\n dstEid: 0,\n sender: defaultPublicKey(),\n packetHeader: new Uint8Array(4),\n payloadHash: new Uint8Array(32),\n confirmations: 0,\n options: [],\n }\n )\n const { keys } = txBuilder.getInstructions()[0]\n if (payment) {\n // if payment is required, the first account is required to be writable to receive the payment\n keys[0].isWritable = true\n }\n return [\n {\n pubkey: this.programId,\n isWritable: false,\n isSigner: false,\n },\n ].concat(keys)\n }\n\n async getConfigState(rpc: RpcInterface, commitment: Commitment = 'confirmed'): Promise<accounts.DvnConfig | null> {\n const [config] = this.pda.config()\n return accounts.safeFetchDvnConfig({ rpc }, config, { commitment })\n }\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './dvnConfig';\nexport * from './executeHash';\nexport * from './receiveConfig';\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './acl';\nexport * from './adminConfig';\nexport * from './dstConfig';\nexport * from './executeTransactionDigest';\nexport * from './lzOption';\nexport * from './multisig';\nexport * from './multisigConfig';\nexport * from './transactionAccount';\nexport * from './ulnConfig';\nexport * from './verificationState';","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n array,\n publicKey as publicKeySerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type Acl = { allowList: Array<PublicKey>; denyList: Array<PublicKey> };\n\nexport type AclArgs = Acl;\n\nexport function getAclSerializer(): Serializer<AclArgs, Acl> {\n return struct<Acl>(\n [\n ['allowList', array(publicKeySerializer())],\n ['denyList', array(publicKeySerializer())],\n ],\n { description: 'Acl' }\n ) as Serializer<AclArgs, Acl>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n GetDataEnumKind,\n GetDataEnumKindContent,\n Serializer,\n array,\n dataEnum,\n publicKey as publicKeySerializer,\n struct,\n tuple,\n u16,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport { DstConfig, DstConfigArgs, getDstConfigSerializer } from '.';\n\nexport type AdminConfig =\n | { __kind: 'Admins'; fields: [Array<PublicKey>] }\n | { __kind: 'DefaultMultiplierBps'; fields: [number] }\n | { __kind: 'DstConfigs'; fields: [Array<DstConfig>] }\n | { __kind: 'PriceFeed'; fields: [PublicKey] }\n | { __kind: 'RemoveDstConfigs'; fields: [Array<number>] };\n\nexport type AdminConfigArgs =\n | { __kind: 'Admins'; fields: [Array<PublicKey>] }\n | { __kind: 'DefaultMultiplierBps'; fields: [number] }\n | { __kind: 'DstConfigs'; fields: [Array<DstConfigArgs>] }\n | { __kind: 'PriceFeed'; fields: [PublicKey] }\n | { __kind: 'RemoveDstConfigs'; fields: [Array<number>] };\n\nexport function getAdminConfigSerializer(): Serializer<\n AdminConfigArgs,\n AdminConfig\n> {\n return dataEnum<AdminConfig>(\n [\n [\n 'Admins',\n struct<GetDataEnumKindContent<AdminConfig, 'Admins'>>([\n ['fields', tuple([array(publicKeySerializer())])],\n ]),\n ],\n [\n 'DefaultMultiplierBps',\n struct<GetDataEnumKindContent<AdminConfig, 'DefaultMultiplierBps'>>([\n ['fields', tuple([u16()])],\n ]),\n ],\n [\n 'DstConfigs',\n struct<GetDataEnumKindContent<AdminConfig, 'DstConfigs'>>([\n ['fields', tuple([array(getDstConfigSerializer())])],\n ]),\n ],\n [\n 'PriceFeed',\n struct<GetDataEnumKindContent<AdminConfig, 'PriceFeed'>>([\n ['fields', tuple([publicKeySerializer()])],\n ]),\n ],\n [\n 'RemoveDstConfigs',\n struct<GetDataEnumKindContent<AdminConfig, 'RemoveDstConfigs'>>([\n ['fields', tuple([array(u32())])],\n ]),\n ],\n ],\n { description: 'AdminConfig' }\n ) as Serializer<AdminConfigArgs, AdminConfig>;\n}\n\n// Data Enum Helpers.\nexport function adminConfig(\n kind: 'Admins',\n data: GetDataEnumKindContent<AdminConfigArgs, 'Admins'>['fields']\n): GetDataEnumKind<AdminConfigArgs, 'Admins'>;\nexport function adminConfig(\n kind: 'DefaultMultiplierBps',\n data: GetDataEnumKindContent<\n AdminConfigArgs,\n 'DefaultMultiplierBps'\n >['fields']\n): GetDataEnumKind<AdminConfigArgs, 'DefaultMultiplierBps'>;\nexport function adminConfig(\n kind: 'DstConfigs',\n data: GetDataEnumKindContent<AdminConfigArgs, 'DstConfigs'>['fields']\n): GetDataEnumKind<AdminConfigArgs, 'DstConfigs'>;\nexport function adminConfig(\n kind: 'PriceFeed',\n data: GetDataEnumKindContent<AdminConfigArgs, 'PriceFeed'>['fields']\n): GetDataEnumKind<AdminConfigArgs, 'PriceFeed'>;\nexport function adminConfig(\n kind: 'RemoveDstConfigs',\n data: GetDataEnumKindContent<AdminConfigArgs, 'RemoveDstConfigs'>['fields']\n): GetDataEnumKind<AdminConfigArgs, 'RemoveDstConfigs'>;\nexport function adminConfig<K extends AdminConfigArgs['__kind']>(\n kind: K,\n data?: any\n): Extract<AdminConfigArgs, { __kind: K }> {\n return Array.isArray(data)\n ? { __kind: kind, fields: data }\n : { __kind: kind, ...(data ?? {}) };\n}\nexport function isAdminConfig<K extends AdminConfig['__kind']>(\n kind: K,\n value: AdminConfig\n): value is AdminConfig & { __kind: K } {\n return value.__kind === kind;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Option, OptionOrNullable } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n option,\n struct,\n u128,\n u16,\n u32,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type DstConfig = {\n eid: number;\n dstGas: number;\n multiplierBps: Option<number>;\n floorMarginUsd: Option<bigint>;\n};\n\nexport type DstConfigArgs = {\n eid: number;\n dstGas: number;\n multiplierBps: OptionOrNullable<number>;\n floorMarginUsd: OptionOrNullable<number | bigint>;\n};\n\nexport function getDstConfigSerializer(): Serializer<DstConfigArgs, DstConfig> {\n return struct<DstConfig>(\n [\n ['eid', u32()],\n ['dstGas', u32()],\n ['multiplierBps', option(u16())],\n ['floorMarginUsd', option(u128())],\n ],\n { description: 'DstConfig' }\n ) as Serializer<DstConfigArgs, DstConfig>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n array,\n bytes,\n i64,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n TransactionAccount,\n TransactionAccountArgs,\n getTransactionAccountSerializer,\n} from '.';\n\nexport type ExecuteTransactionDigest = {\n vid: number;\n programId: PublicKey;\n accounts: Array<TransactionAccount>;\n data: Uint8Array;\n expiration: bigint;\n};\n\nexport type ExecuteTransactionDigestArgs = {\n vid: number;\n programId: PublicKey;\n accounts: Array<TransactionAccountArgs>;\n data: Uint8Array;\n expiration: number | bigint;\n};\n\nexport function getExecuteTransactionDigestSerializer(): Serializer<\n ExecuteTransactionDigestArgs,\n ExecuteTransactionDigest\n> {\n return struct<ExecuteTransactionDigest>(\n [\n ['vid', u32()],\n ['programId', publicKeySerializer()],\n ['accounts', array(getTransactionAccountSerializer())],\n ['data', bytes({ size: u32() })],\n ['expiration', i64()],\n ],\n { description: 'ExecuteTransactionDigest' }\n ) as Serializer<ExecuteTransactionDigestArgs, ExecuteTransactionDigest>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Serializer,\n bytes,\n struct,\n u32,\n u8,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type LzOption = { optionType: number; params: Uint8Array };\n\nexport type LzOptionArgs = LzOption;\n\nexport function getLzOptionSerializer(): Serializer<LzOptionArgs, LzOption> {\n return struct<LzOption>(\n [\n ['optionType', u8()],\n ['params', bytes({ size: u32() })],\n ],\n { description: 'LzOption' }\n ) as Serializer<LzOptionArgs, LzOption>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Serializer,\n array,\n bytes,\n struct,\n u8,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type Multisig = { signers: Array<Uint8Array>; quorum: number };\n\nexport type MultisigArgs = Multisig;\n\nexport function getMultisigSerializer(): Serializer<MultisigArgs, Multisig> {\n return struct<Multisig>(\n [\n ['signers', array(bytes({ size: 64 }))],\n ['quorum', u8()],\n ],\n { description: 'Multisig' }\n ) as Serializer<MultisigArgs, Multisig>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n GetDataEnumKind,\n GetDataEnumKindContent,\n Serializer,\n array,\n bool,\n bytes,\n dataEnum,\n publicKey as publicKeySerializer,\n struct,\n tuple,\n u8,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type MultisigConfig =\n | { __kind: 'Admins'; fields: [Array<PublicKey>] }\n | { __kind: 'Allowlist'; fields: [Array<PublicKey>] }\n | { __kind: 'Denylist'; fields: [Array<PublicKey>] }\n | { __kind: 'Msglibs'; fields: [Array<PublicKey>] }\n | { __kind: 'Paused'; fields: [boolean] }\n | { __kind: 'Quorum'; fields: [number] }\n | { __kind: 'Signers'; fields: [Array<Uint8Array>] };\n\nexport type MultisigConfigArgs = MultisigConfig;\n\nexport function getMultisigConfigSerializer(): Serializer<\n MultisigConfigArgs,\n MultisigConfig\n> {\n return dataEnum<MultisigConfig>(\n [\n [\n 'Admins',\n struct<GetDataEnumKindContent<MultisigConfig, 'Admins'>>([\n ['fields', tuple([array(publicKeySerializer())])],\n ]),\n ],\n [\n 'Allowlist',\n struct<GetDataEnumKindContent<MultisigConfig, 'Allowlist'>>([\n ['fields', tuple([array(publicKeySerializer())])],\n ]),\n ],\n [\n 'Denylist',\n struct<GetDataEnumKindContent<MultisigConfig, 'Denylist'>>([\n ['fields', tuple([array(publicKeySerializer())])],\n ]),\n ],\n [\n 'Msglibs',\n struct<GetDataEnumKindContent<MultisigConfig, 'Msglibs'>>([\n ['fields', tuple([array(publicKeySerializer())])],\n ]),\n ],\n [\n 'Paused',\n struct<GetDataEnumKindContent<MultisigConfig, 'Paused'>>([\n ['fields', tuple([bool()])],\n ]),\n ],\n [\n 'Quorum',\n struct<GetDataEnumKindContent<MultisigConfig, 'Quorum'>>([\n ['fields', tuple([u8()])],\n ]),\n ],\n [\n 'Signers',\n struct<GetDataEnumKindContent<MultisigConfig, 'Signers'>>([\n ['fields', tuple([array(bytes({ size: 64 }))])],\n ]),\n ],\n ],\n { description: 'MultisigConfig' }\n ) as Serializer<MultisigConfigArgs, MultisigConfig>;\n}\n\n// Data Enum Helpers.\nexport function multisigConfig(\n kind: 'Admins',\n data: GetDataEnumKindContent<MultisigConfigArgs, 'Admins'>['fields']\n): GetDataEnumKind<MultisigConfigArgs, 'Admins'>;\nexport function multisigConfig(\n kind: 'Allowlist',\n data: GetDataEnumKindContent<MultisigConfigArgs, 'Allowlist'>['fields']\n): GetDataEnumKind<MultisigConfigArgs, 'Allowlist'>;\nexport function multisigConfig(\n kind: 'Denylist',\n data: GetDataEnumKindContent<MultisigConfigArgs, 'Denylist'>['fields']\n): GetDataEnumKind<MultisigConfigArgs, 'Denylist'>;\nexport function multisigConfig(\n kind: 'Msglibs',\n data: GetDataEnumKindContent<MultisigConfigArgs, 'Msglibs'>['fields']\n): GetDataEnumKind<MultisigConfigArgs, 'Msglibs'>;\nexport function multisigConfig(\n kind: 'Paused',\n data: GetDataEnumKindContent<MultisigConfigArgs, 'Paused'>['fields']\n): GetDataEnumKind<MultisigConfigArgs, 'Paused'>;\nexport function multisigConfig(\n kind: 'Quorum',\n data: GetDataEnumKindContent<MultisigConfigArgs, 'Quorum'>['fields']\n): GetDataEnumKind<MultisigConfigArgs, 'Quorum'>;\nexport function multisigConfig(\n kind: 'Signers',\n data: GetDataEnumKindContent<MultisigConfigArgs, 'Signers'>['fields']\n): GetDataEnumKind<MultisigConfigArgs, 'Signers'>;\nexport function multisigConfig<K extends MultisigConfigArgs['__kind']>(\n kind: K,\n data?: any\n): Extract<MultisigConfigArgs, { __kind: K }> {\n return Array.isArray(data)\n ? { __kind: kind, fields: data }\n : { __kind: kind, ...(data ?? {}) };\n}\nexport function isMultisigConfig<K extends MultisigConfig['__kind']>(\n kind: K,\n value: MultisigConfig\n): value is MultisigConfig & { __kind: K } {\n return value.__kind === kind;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bool,\n publicKey as publicKeySerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type TransactionAccount = {\n pubkey: PublicKey;\n isSigner: boolean;\n isWritable: boolean;\n};\n\nexport type TransactionAccountArgs = TransactionAccount;\n\nexport function getTransactionAccountSerializer(): Serializer<\n TransactionAccountArgs,\n TransactionAccount\n> {\n return struct<TransactionAccount>(\n [\n ['pubkey', publicKeySerializer()],\n ['isSigner', bool()],\n ['isWritable', bool()],\n ],\n { description: 'TransactionAccount' }\n ) as Serializer<TransactionAccountArgs, TransactionAccount>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n array,\n publicKey as publicKeySerializer,\n struct,\n u64,\n u8,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type UlnConfig = {\n confirmations: bigint;\n requiredDvnCount: number;\n optionalDvnCount: number;\n optionalDvnThreshold: number;\n requiredDvns: Array<PublicKey>;\n optionalDvns: Array<PublicKey>;\n};\n\nexport type UlnConfigArgs = {\n confirmations: number | bigint;\n requiredDvnCount: number;\n optionalDvnCount: number;\n optionalDvnThreshold: number;\n requiredDvns: Array<PublicKey>;\n optionalDvns: Array<PublicKey>;\n};\n\nexport function getUlnConfigSerializer(): Serializer<UlnConfigArgs, UlnConfig> {\n return struct<UlnConfig>(\n [\n ['confirmations', u64()],\n ['requiredDvnCount', u8()],\n ['optionalDvnCount', u8()],\n ['optionalDvnThreshold', u8()],\n ['requiredDvns', array(publicKeySerializer())],\n ['optionalDvns', array(publicKeySerializer())],\n ],\n { description: 'UlnConfig' }\n ) as Serializer<UlnConfigArgs, UlnConfig>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Serializer, scalarEnum } from '@metaplex-foundation/umi/serializers';\n\nexport enum VerificationState {\n Verifying,\n Verifiable,\n Verified,\n NotInitializable,\n VerifiableButCapExceeded,\n}\n\nexport type VerificationStateArgs = VerificationState;\n\nexport function getVerificationStateSerializer(): Serializer<\n VerificationStateArgs,\n VerificationState\n> {\n return scalarEnum<VerificationState>(VerificationState, {\n description: 'VerificationState',\n }) as Serializer<VerificationStateArgs, VerificationState>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Account,\n Context,\n Pda,\n PublicKey,\n RpcAccount,\n RpcGetAccountOptions,\n RpcGetAccountsOptions,\n assertAccountExists,\n deserializeAccount,\n gpaBuilder,\n publicKey as toPublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n array,\n bool,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u16,\n u32,\n u8,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n Acl,\n AclArgs,\n DstConfig,\n DstConfigArgs,\n Multisig,\n MultisigArgs,\n getAclSerializer,\n getDstConfigSerializer,\n getMultisigSerializer,\n} from '../types';\n\nexport type DvnConfig = Account<DvnConfigAccountData>;\n\nexport type DvnConfigAccountData = {\n discriminator: Uint8Array;\n vid: number;\n bump: number;\n multisig: Multisig;\n acl: Acl;\n paused: boolean;\n msglibs: Array<PublicKey>;\n admins: Array<PublicKey>;\n priceFeed: PublicKey;\n dstConfigs: Array<DstConfig>;\n defaultMultiplierBps: number;\n};\n\nexport type DvnConfigAccountDataArgs = {\n vid: number;\n bump: number;\n multisig: MultisigArgs;\n acl: AclArgs;\n paused: boolean;\n msglibs: Array<PublicKey>;\n admins: Array<PublicKey>;\n priceFeed: PublicKey;\n dstConfigs: Array<DstConfigArgs>;\n defaultMultiplierBps: number;\n};\n\nexport function getDvnConfigAccountDataSerializer(): Serializer<\n DvnConfigAccountDataArgs,\n DvnConfigAccountData\n> {\n return mapSerializer<DvnConfigAccountDataArgs, any, DvnConfigAccountData>(\n struct<DvnConfigAccountData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['vid', u32()],\n ['bump', u8()],\n ['multisig', getMultisigSerializer()],\n ['acl', getAclSerializer()],\n ['paused', bool()],\n ['msglibs', array(publicKeySerializer())],\n ['admins', array(publicKeySerializer())],\n ['priceFeed', publicKeySerializer()],\n ['dstConfigs', array(getDstConfigSerializer())],\n ['defaultMultiplierBps', u16()],\n ],\n { description: 'DvnConfigAccountData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([49, 81, 33, 98, 234, 168, 93, 73]),\n })\n ) as Serializer<DvnConfigAccountDataArgs, DvnConfigAccountData>;\n}\n\nexport function deserializeDvnConfig(rawAccount: RpcAccount): DvnConfig {\n return deserializeAccount(rawAccount, getDvnConfigAccountDataSerializer());\n}\n\nexport async function fetchDvnConfig(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<DvnConfig> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n assertAccountExists(maybeAccount, 'DvnConfig');\n return deserializeDvnConfig(maybeAccount);\n}\n\nexport async function safeFetchDvnConfig(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<DvnConfig | null> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n return maybeAccount.exists ? deserializeDvnConfig(maybeAccount) : null;\n}\n\nexport async function fetchAllDvnConfig(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<DvnConfig[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts.map((maybeAccount) => {\n assertAccountExists(maybeAccount, 'DvnConfig');\n return deserializeDvnConfig(maybeAccount);\n });\n}\n\nexport async function safeFetchAllDvnConfig(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<DvnConfig[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts\n .filter((maybeAccount) => maybeAccount.exists)\n .map((maybeAccount) => deserializeDvnConfig(maybeAccount as RpcAccount));\n}\n\nexport function getDvnConfigGpaBuilder(\n context: Pick<Context, 'rpc' | 'programs'>\n) {\n const programId = context.programs.getPublicKey(\n 'dvn',\n 'HtEYV4xB4wvsj5fgTkcfuChYpvGYzgzwvNhgDZQNh7wW'\n );\n return gpaBuilder(context, programId)\n .registerFields<{\n discriminator: Uint8Array;\n vid: number;\n bump: number;\n multisig: MultisigArgs;\n acl: AclArgs;\n paused: boolean;\n msglibs: Array<PublicKey>;\n admins: Array<PublicKey>;\n priceFeed: PublicKey;\n dstConfigs: Array<DstConfigArgs>;\n defaultMultiplierBps: number;\n }>({\n discriminator: [0, bytes({ size: 8 })],\n vid: [8, u32()],\n bump: [12, u8()],\n multisig: [13, getMultisigSerializer()],\n acl: [null, getAclSerializer()],\n paused: [null, bool()],\n msglibs: [null, array(publicKeySerializer())],\n admins: [null, array(publicKeySerializer())],\n priceFeed: [null, publicKeySerializer()],\n dstConfigs: [null, array(getDstConfigSerializer())],\n defaultMultiplierBps: [null, u16()],\n })\n .deserializeUsing<DvnConfig>((account) => deserializeDvnConfig(account))\n .whereField(\n 'discriminator',\n new Uint8Array([49, 81, 33, 98, 234, 168, 93, 73])\n );\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Account,\n Context,\n Pda,\n PublicKey,\n RpcAccount,\n RpcGetAccountOptions,\n RpcGetAccountsOptions,\n assertAccountExists,\n deserializeAccount,\n gpaBuilder,\n publicKey as toPublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n i64,\n mapSerializer,\n struct,\n u8,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type ExecuteHash = Account<ExecuteHashAccountData>;\n\nexport type ExecuteHashAccountData = {\n discriminator: Uint8Array;\n expiration: bigint;\n bump: number;\n};\n\nexport type ExecuteHashAccountDataArgs = {\n expiration: number | bigint;\n bump: number;\n};\n\nexport function getExecuteHashAccountDataSerializer(): Serializer<\n ExecuteHashAccountDataArgs,\n ExecuteHashAccountData\n> {\n return mapSerializer<ExecuteHashAccountDataArgs, any, ExecuteHashAccountData>(\n struct<ExecuteHashAccountData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['expiration', i64()],\n ['bump', u8()],\n ],\n { description: 'ExecuteHashAccountData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([34, 17, 137, 123, 62, 25, 205, 155]),\n })\n ) as Serializer<ExecuteHashAccountDataArgs, ExecuteHashAccountData>;\n}\n\nexport function deserializeExecuteHash(rawAccount: RpcAccount): ExecuteHash {\n return deserializeAccount(rawAccount, getExecuteHashAccountDataSerializer());\n}\n\nexport async function fetchExecuteHash(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<ExecuteHash> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n assertAccountExists(maybeAccount, 'ExecuteHash');\n return deserializeExecuteHash(maybeAccount);\n}\n\nexport async function safeFetchExecuteHash(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<ExecuteHash | null> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n return maybeAccount.exists ? deserializeExecuteHash(maybeAccount) : null;\n}\n\nexport async function fetchAllExecuteHash(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<ExecuteHash[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts.map((maybeAccount) => {\n assertAccountExists(maybeAccount, 'ExecuteHash');\n return deserializeExecuteHash(maybeAccount);\n });\n}\n\nexport async function safeFetchAllExecuteHash(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<ExecuteHash[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts\n .filter((maybeAccount) => maybeAccount.exists)\n .map((maybeAccount) => deserializeExecuteHash(maybeAccount as RpcAccount));\n}\n\nexport function getExecuteHashGpaBuilder(\n context: Pick<Context, 'rpc' | 'programs'>\n) {\n const programId = context.programs.getPublicKey(\n 'dvn',\n 'HtEYV4xB4wvsj5fgTkcfuChYpvGYzgzwvNhgDZQNh7wW'\n );\n return gpaBuilder(context, programId)\n .registerFields<{\n discriminator: Uint8Array;\n expiration: number | bigint;\n bump: number;\n }>({\n discriminator: [0, bytes({ size: 8 })],\n expiration: [8, i64()],\n bump: [16, u8()],\n })\n .deserializeUsing<ExecuteHash>((account) => deserializeExecuteHash(account))\n .whereField(\n 'discriminator',\n new Uint8Array([34, 17, 137, 123, 62, 25, 205, 155])\n );\n}\n\nexport function getExecuteHashSize(): number {\n return 17;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Account,\n Context,\n Pda,\n PublicKey,\n RpcAccount,\n RpcGetAccountOptions,\n RpcGetAccountsOptions,\n assertAccountExists,\n deserializeAccount,\n gpaBuilder,\n publicKey as toPublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n u8,\n} from '@metaplex-foundation/umi/serializers';\nimport { UlnConfig, UlnConfigArgs, getUlnConfigSerializer } from '../types';\n\nexport type ReceiveConfig = Account<ReceiveConfigAccountData>;\n\nexport type ReceiveConfigAccountData = {\n discriminator: Uint8Array;\n bump: number;\n uln: UlnConfig;\n};\n\nexport type ReceiveConfigAccountDataArgs = { bump: number; uln: UlnConfigArgs };\n\nexport function getReceiveConfigAccountDataSerializer(): Serializer<\n ReceiveConfigAccountDataArgs,\n ReceiveConfigAccountData\n> {\n return mapSerializer<\n ReceiveConfigAccountDataArgs,\n any,\n ReceiveConfigAccountData\n >(\n struct<ReceiveConfigAccountData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['bump', u8()],\n ['uln', getUlnConfigSerializer()],\n ],\n { description: 'ReceiveConfigAccountData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([162, 159, 153, 188, 56, 65, 245, 58]),\n })\n ) as Serializer<ReceiveConfigAccountDataArgs, ReceiveConfigAccountData>;\n}\n\nexport function deserializeReceiveConfig(\n rawAccount: RpcAccount\n): ReceiveConfig {\n return deserializeAccount(\n rawAccount,\n getReceiveConfigAccountDataSerializer()\n );\n}\n\nexport async function fetchReceiveConfig(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<ReceiveConfig> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n assertAccountExists(maybeAccount, 'ReceiveConfig');\n return deserializeReceiveConfig(maybeAccount);\n}\n\nexport async function safeFetchReceiveConfig(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<ReceiveConfig | null> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n return maybeAccount.exists ? deserializeReceiveConfig(maybeAccount) : null;\n}\n\nexport async function fetchAllReceiveConfig(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<ReceiveConfig[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts.map((maybeAccount) => {\n assertAccountExists(maybeAccount, 'ReceiveConfig');\n return deserializeReceiveConfig(maybeAccount);\n });\n}\n\nexport async function safeFetchAllReceiveConfig(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<ReceiveConfig[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts\n .filter((maybeAccount) => maybeAccount.exists)\n .map((maybeAccount) =>\n deserializeReceiveConfig(maybeAccount as RpcAccount)\n );\n}\n\nexport function getReceiveConfigGpaBuilder(\n context: Pick<Context, 'rpc' | 'programs'>\n) {\n const programId = context.programs.getPublicKey(\n 'dvn',\n 'HtEYV4xB4wvsj5fgTkcfuChYpvGYzgzwvNhgDZQNh7wW'\n );\n return gpaBuilder(context, programId)\n .registerFields<{\n discriminator: Uint8Array;\n bump: number;\n uln: UlnConfigArgs;\n }>({\n discriminator: [0, bytes({ size: 8 })],\n bump: [8, u8()],\n uln: [9, getUlnConfigSerializer()],\n })\n .deserializeUsing<ReceiveConfig>((account) =>\n deserializeReceiveConfig(account)\n )\n .whereField(\n 'discriminator',\n new Uint8Array([162, 159, 153, 188, 56, 65, 245, 58])\n );\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './dvn';\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Program, ProgramError } from '@metaplex-foundation/umi';\n\ntype ProgramErrorConstructor = new (\n program: Program,\n cause?: Error\n) => ProgramError;\nconst codeToErrorMap: Map<number, ProgramErrorConstructor> = new Map();\nconst nameToErrorMap: Map<string, ProgramErrorConstructor> = new Map();\n\n/** InvalidSignatureLen */\nexport class InvalidSignatureLenError extends ProgramError {\n override readonly name: string = 'InvalidSignatureLen';\n\n readonly code: number = 0x1770; // 6000\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1770, InvalidSignatureLenError);\nnameToErrorMap.set('InvalidSignatureLen', InvalidSignatureLenError);\n\n/** NotAdmin */\nexport class NotAdminError extends ProgramError {\n override readonly name: string = 'NotAdmin';\n\n readonly code: number = 0x1771; // 6001\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1771, NotAdminError);\nnameToErrorMap.set('NotAdmin', NotAdminError);\n\n/** MsgLibNotAllowed */\nexport class MsgLibNotAllowedError extends ProgramError {\n override readonly name: string = 'MsgLibNotAllowed';\n\n readonly code: number = 0x1772; // 6002\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1772, MsgLibNotAllowedError);\nnameToErrorMap.set('MsgLibNotAllowed', MsgLibNotAllowedError);\n\n/** InvalidQuorum */\nexport class InvalidQuorumError extends ProgramError {\n override readonly name: string = 'InvalidQuorum';\n\n readonly code: number = 0x1773; // 6003\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1773, InvalidQuorumError);\nnameToErrorMap.set('InvalidQuorum', InvalidQuorumError);\n\n/** InvalidSignersLen */\nexport class InvalidSignersLenError extends ProgramError {\n override readonly name: string = 'InvalidSignersLen';\n\n readonly code: number = 0x1774; // 6004\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1774, InvalidSignersLenError);\nnameToErrorMap.set('InvalidSignersLen', InvalidSignersLenError);\n\n/** UniqueOwners */\nexport class UniqueOwnersError extends ProgramError {\n override readonly name: string = 'UniqueOwners';\n\n readonly code: number = 0x1775; // 6005\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1775, UniqueOwnersError);\nnameToErrorMap.set('UniqueOwners', UniqueOwnersError);\n\n/** SignatureError */\nexport class SignatureErrorError extends ProgramError {\n override readonly name: string = 'SignatureError';\n\n readonly code: number = 0x1776; // 6006\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1776, SignatureErrorError);\nnameToErrorMap.set('SignatureError', SignatureErrorError);\n\n/** SignerNotInCommittee */\nexport class SignerNotInCommitteeError extends ProgramError {\n override readonly name: string = 'SignerNotInCommittee';\n\n readonly code: number = 0x1777; // 6007\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1777, SignerNotInCommitteeError);\nnameToErrorMap.set('SignerNotInCommittee', SignerNotInCommitteeError);\n\n/** TooManyAdmins */\nexport class TooManyAdminsError extends ProgramError {\n override readonly name: string = 'TooManyAdmins';\n\n readonly code: number = 0x1778; // 6008\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1778, TooManyAdminsError);\nnameToErrorMap.set('TooManyAdmins', TooManyAdminsError);\n\n/** TooManyOptionTypes */\nexport class TooManyOptionTypesError extends ProgramError {\n override readonly name: string = 'TooManyOptionTypes';\n\n readonly code: number = 0x1779; // 6009\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1779, TooManyOptionTypesError);\nnameToErrorMap.set('TooManyOptionTypes', TooManyOptionTypesError);\n\n/** DuplicateSignature */\nexport class DuplicateSignatureError extends ProgramError {\n override readonly name: string = 'DuplicateSignature';\n\n readonly code: number = 0x177a; // 6010\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x177a, DuplicateSignatureError);\nnameToErrorMap.set('DuplicateSignature', DuplicateSignatureError);\n\n/** Expired */\nexport class ExpiredError extends ProgramError {\n override readonly name: string = 'Expired';\n\n readonly code: number = 0x177b; // 6011\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x177b, ExpiredError);\nnameToErrorMap.set('Expired', ExpiredError);\n\n/** InvalidVid */\nexport class InvalidVidError extends ProgramError {\n override readonly name: string = 'InvalidVid';\n\n readonly code: number = 0x177c; // 6012\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x177c, InvalidVidError);\nnameToErrorMap.set('InvalidVid', InvalidVidError);\n\n/** Paused */\nexport class PausedError extends ProgramError {\n override readonly name: string = 'Paused';\n\n readonly code: number = 0x177d; // 6013\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x177d, PausedError);\nnameToErrorMap.set('Paused', PausedError);\n\n/** UnexpiredExecuteHash */\nexport class UnexpiredExecuteHashError extends ProgramError {\n override readonly name: string = 'UnexpiredExecuteHash';\n\n readonly code: number = 0x177e; // 6014\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x177e, UnexpiredExecuteHashError);\nnameToErrorMap.set('UnexpiredExecuteHash', UnexpiredExecuteHashError);\n\n/** InvalidAmount */\nexport class InvalidAmountError extends ProgramError {\n override readonly name: string = 'InvalidAmount';\n\n readonly code: number = 0x177f; // 6015\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x177f, InvalidAmountError);\nnameToErrorMap.set('InvalidAmount', InvalidAmountError);\n\n/** EidNotSupported */\nexport class EidNotSupportedError extends ProgramError {\n override readonly name: string = 'EidNotSupported';\n\n readonly code: number = 0x1780; // 6016\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1780, EidNotSupportedError);\nnameToErrorMap.set('EidNotSupported', EidNotSupportedError);\n\n/**\n * Attempts to resolve a custom program error from the provided error code.\n * @category Errors\n */\nexport function getDvnErrorFromCode(\n code: number,\n program: Program,\n cause?: Error\n): ProgramError | null {\n const constructor = codeToErrorMap.get(code);\n return constructor ? new constructor(program, cause) : null;\n}\n\n/**\n * Attempts to resolve a custom program error from the provided error name, i.e. 'Unauthorized'.\n * @category Errors\n */\nexport function getDvnErrorFromName(\n name: string,\n program: Program,\n cause?: Error\n): ProgramError | null {\n const constructor = nameToErrorMap.get(name);\n return constructor ? new constructor(program, cause) : null;\n}\n","export * from './adminConfigSetEvent';\nexport * from './feeWithdrawnEvent';\nexport * from './multisigConfigSetEvent';","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Serializer, struct } from '@metaplex-foundation/umi/serializers';\nimport { AdminConfig, AdminConfigArgs, getAdminConfigSerializer } from '../types';\n\nexport type AdminConfigSetEvent = { config: AdminConfig };\n\nexport type AdminConfigSetEventArgs = { config: AdminConfigArgs };\n\nexport function getAdminConfigSetEventSerializer(): Serializer<\n AdminConfigSetEventArgs,\n AdminConfigSetEvent\n> {\n return struct<AdminConfigSetEvent>([['config', getAdminConfigSerializer()]], {\n description: 'AdminConfigSetEvent',\n }) as Serializer<AdminConfigSetEventArgs, AdminConfigSetEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n publicKey as publicKeySerializer,\n struct,\n u64,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type FeeWithdrawnEvent = { receiver: PublicKey; amount: bigint };\n\nexport type FeeWithdrawnEventArgs = {\n receiver: PublicKey;\n amount: number | bigint;\n};\n\nexport function getFeeWithdrawnEventSerializer(): Serializer<\n FeeWithdrawnEventArgs,\n FeeWithdrawnEvent\n> {\n return struct<FeeWithdrawnEvent>(\n [\n ['receiver', publicKeySerializer()],\n ['amount', u64()],\n ],\n { description: 'FeeWithdrawnEvent' }\n ) as Serializer<FeeWithdrawnEventArgs, FeeWithdrawnEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Serializer, struct } from '@metaplex-foundation/umi/serializers';\nimport {\n MultisigConfig,\n MultisigConfigArgs,\n getMultisigConfigSerializer,\n} from '../types';\n\nexport type MultisigConfigSetEvent = { config: MultisigConfig };\n\nexport type MultisigConfigSetEventArgs = { config: MultisigConfigArgs };\n\nexport function getMultisigConfigSetEventSerializer(): Serializer<\n MultisigConfigSetEventArgs,\n MultisigConfigSetEvent\n> {\n return struct<MultisigConfigSetEvent>(\n [['config', getMultisigConfigSerializer()]],\n { description: 'MultisigConfigSetEvent' }\n ) as Serializer<MultisigConfigSetEventArgs, MultisigConfigSetEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './closeExecute';\nexport * from './initDvn';\nexport * from './invoke';\nexport * from './quoteDvn';\nexport * from './setConfig';\nexport * from './verifiable';\nexport * from './withdrawFee';\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n AccountMeta,\n isSigner,\n Pda,\n publicKey,\n PublicKey,\n Signer,\n isPda,\n} from '@metaplex-foundation/umi';\n\n/**\n * Transforms the given object such that the given keys are optional.\n * @internal\n */\nexport type PickPartial<T, K extends keyof T> = Omit<T, K> &\n Partial<Pick<T, K>>;\n\n/**\n * Asserts that the given value is not null or undefined.\n * @internal\n */\nexport function expectSome<T>(value: T | null | undefined): T {\n if (value == null) {\n throw new Error('Expected a value but received null or undefined.');\n }\n return value;\n}\n\n/**\n * Asserts that the given value is a PublicKey.\n * @internal\n */\nexport function expectPublicKey(\n value: PublicKey | Pda | Signer | null | undefined\n): PublicKey {\n if (!value) {\n throw new Error('Expected a PublicKey.');\n }\n return publicKey(value, false);\n}\n\n/**\n * Asserts that the given value is a PDA.\n * @internal\n */\nexport function expectPda(\n value: PublicKey | Pda | Signer | null | undefined\n): Pda {\n if (!value || !Array.isArray(value) || !isPda(value)) {\n throw new Error('Expected a PDA.');\n }\n return value;\n}\n\n/**\n * Defines an instruction account to resolve.\n * @internal\n */\nexport type ResolvedAccount<T = PublicKey | Pda | Signer | null> = {\n isWritable: boolean;\n value: T;\n};\n\n/**\n * Defines a set of instruction account to resolve.\n * @internal\n */\nexport type ResolvedAccounts = Record<string, ResolvedAccount>;\n\n/**\n * Defines a set of instruction account to resolve with their indices.\n * @internal\n */\nexport type ResolvedAccountsWithIndices = Record<\n string,\n ResolvedAccount & { index: number }\n>;\n\n/**\n * Get account metas and signers from resolved accounts.\n * @internal\n */\nexport function getAccountMetasAndSigners(\n accounts: ResolvedAccount[],\n optionalAccountStrategy: 'omitted' | 'programId',\n programId: PublicKey\n): [AccountMeta[], Signer[]] {\n const keys: AccountMeta[] = [];\n const signers: Signer[] = [];\n\n accounts.forEach((account) => {\n if (!account.value) {\n if (optionalAccountStrategy === 'omitted') return;\n keys.push({ pubkey: programId, isSigner: false, isWritable: false });\n return;\n }\n\n if (isSigner(account.value)) {\n signers.push(account.value);\n }\n keys.push({\n pubkey: publicKey(account.value, false),\n isSigner: isSigner(account.value),\n isWritable: account.isWritable,\n });\n });\n\n return [keys, signers];\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type CloseExecuteInstructionAccounts = {\n admin: Signer;\n config: PublicKey | Pda;\n executeHash: PublicKey | Pda;\n};\n\n// Data.\nexport type CloseExecuteInstructionData = {\n discriminator: Uint8Array;\n digestHash: Uint8Array;\n};\n\nexport type CloseExecuteInstructionDataArgs = { digestHash: Uint8Array };\n\nexport function getCloseExecuteInstructionDataSerializer(): Serializer<\n CloseExecuteInstructionDataArgs,\n CloseExecuteInstructionData\n> {\n return mapSerializer<\n CloseExecuteInstructionDataArgs,\n any,\n CloseExecuteInstructionData\n >(\n struct<CloseExecuteInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['digestHash', bytes({ size: 32 })],\n ],\n { description: 'CloseExecuteInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([253, 220, 23, 127, 15, 171, 189, 226]),\n })\n ) as Serializer<CloseExecuteInstructionDataArgs, CloseExecuteInstructionData>;\n}\n\n// Args.\nexport type CloseExecuteInstructionArgs = CloseExecuteInstructionDataArgs;\n\n// Instruction.\nexport function closeExecute(\n context: Pick<Context, 'programs'>,\n input: CloseExecuteInstructionAccounts & CloseExecuteInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'dvn',\n 'HtEYV4xB4wvsj5fgTkcfuChYpvGYzgzwvNhgDZQNh7wW'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: false as boolean,\n value: input.admin ?? null,\n },\n config: {\n index: 1,\n isWritable: true as boolean,\n value: input.config ?? null,\n },\n executeHash: {\n index: 2,\n isWritable: true as boolean,\n value: input.executeHash ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: CloseExecuteInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getCloseExecuteInstructionDataSerializer().serialize(\n resolvedArgs as CloseExecuteInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n array,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u8,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type InitDvnInstructionAccounts = {\n payer?: Signer;\n config: PublicKey | Pda;\n systemProgram?: PublicKey | Pda;\n};\n\n// Data.\nexport type InitDvnInstructionData = {\n discriminator: Uint8Array;\n vid: number;\n msglibs: Array<PublicKey>;\n priceFeed: PublicKey;\n signers: Array<Uint8Array>;\n quorum: number;\n admins: Array<PublicKey>;\n};\n\nexport type InitDvnInstructionDataArgs = {\n vid: number;\n msglibs: Array<PublicKey>;\n priceFeed: PublicKey;\n signers: Array<Uint8Array>;\n quorum: number;\n admins: Array<PublicKey>;\n};\n\nexport function getInitDvnInstructionDataSerializer(): Serializer<\n InitDvnInstructionDataArgs,\n InitDvnInstructionData\n> {\n return mapSerializer<InitDvnInstructionDataArgs, any, InitDvnInstructionData>(\n struct<InitDvnInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['vid', u32()],\n ['msglibs', array(publicKeySerializer())],\n ['priceFeed', publicKeySerializer()],\n ['signers', array(bytes({ size: 64 }))],\n ['quorum', u8()],\n ['admins', array(publicKeySerializer())],\n ],\n { description: 'InitDvnInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([58, 108, 132, 12, 20, 10, 215, 210]),\n })\n ) as Serializer<InitDvnInstructionDataArgs, InitDvnInstructionData>;\n}\n\n// Args.\nexport type InitDvnInstructionArgs = InitDvnInstructionDataArgs;\n\n// Instruction.\nexport function initDvn(\n context: Pick<Context, 'payer' | 'programs'>,\n input: InitDvnInstructionAccounts & InitDvnInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'dvn',\n 'HtEYV4xB4wvsj5fgTkcfuChYpvGYzgzwvNhgDZQNh7wW'\n );\n\n // Accounts.\n const resolvedAccounts = {\n payer: {\n index: 0,\n isWritable: true as boolean,\n value: input.payer ?? null,\n },\n config: {\n index: 1,\n isWritable: true as boolean,\n value: input.config ?? null,\n },\n systemProgram: {\n index: 2,\n isWritable: false as boolean,\n value: input.systemProgram ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: InitDvnInstructionArgs = { ...input };\n\n // Default values.\n if (!resolvedAccounts.payer.value) {\n resolvedAccounts.payer.value = context.payer;\n }\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getInitDvnInstructionDataSerializer().serialize(\n resolvedArgs as InitDvnInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n array,\n bytes,\n mapSerializer,\n struct,\n u8,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\nimport {\n ExecuteTransactionDigest,\n ExecuteTransactionDigestArgs,\n getExecuteTransactionDigestSerializer,\n} from '../types';\n\n// Accounts.\nexport type InvokeInstructionAccounts = {\n signer: Signer;\n config: PublicKey | Pda;\n executeHash: PublicKey | Pda;\n systemProgram?: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type InvokeInstructionData = {\n discriminator: Uint8Array;\n digest: ExecuteTransactionDigest;\n signatures: Array<Array<number>>;\n};\n\nexport type InvokeInstructionDataArgs = {\n digest: ExecuteTransactionDigestArgs;\n signatures: Array<Array<number>>;\n};\n\nexport function getInvokeInstructionDataSerializer(): Serializer<\n InvokeInstructionDataArgs,\n InvokeInstructionData\n> {\n return mapSerializer<InvokeInstructionDataArgs, any, InvokeInstructionData>(\n struct<InvokeInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['digest', getExecuteTransactionDigestSerializer()],\n ['signatures', array(array(u8(), { size: 65 }))],\n ],\n { description: 'InvokeInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([26, 16, 169, 7, 21, 202, 242, 25]),\n })\n ) as Serializer<InvokeInstructionDataArgs, InvokeInstructionData>;\n}\n\n// Args.\nexport type InvokeInstructionArgs = InvokeInstructionDataArgs;\n\n// Instruction.\nexport function invoke(\n context: Pick<Context, 'programs'>,\n input: InvokeInstructionAccounts & InvokeInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'dvn',\n 'HtEYV4xB4wvsj5fgTkcfuChYpvGYzgzwvNhgDZQNh7wW'\n );\n\n // Accounts.\n const resolvedAccounts = {\n signer: {\n index: 0,\n isWritable: true as boolean,\n value: input.signer ?? null,\n },\n config: {\n index: 1,\n isWritable: true as boolean,\n value: input.config ?? null,\n },\n executeHash: {\n index: 2,\n isWritable: true as boolean,\n value: input.executeHash ?? null,\n },\n systemProgram: {\n index: 3,\n isWritable: false as boolean,\n value: input.systemProgram ?? null,\n },\n eventAuthority: {\n index: 4,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 5,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: InvokeInstructionArgs = { ...input };\n\n // Default values.\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getInvokeInstructionDataSerializer().serialize(\n resolvedArgs as InvokeInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n array,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\nimport { LzOption, LzOptionArgs, getLzOptionSerializer } from '../types';\n\n// Accounts.\nexport type QuoteDvnInstructionAccounts = {\n dvnConfig: PublicKey | Pda;\n priceFeedProgram: PublicKey | Pda;\n priceFeedConfig: PublicKey | Pda;\n};\n\n// Data.\nexport type QuoteDvnInstructionData = {\n discriminator: Uint8Array;\n msglib: PublicKey;\n dstEid: number;\n sender: PublicKey;\n packetHeader: Uint8Array;\n payloadHash: Uint8Array;\n confirmations: bigint;\n options: Array<LzOption>;\n};\n\nexport type QuoteDvnInstructionDataArgs = {\n msglib: PublicKey;\n dstEid: number;\n sender: PublicKey;\n packetHeader: Uint8Array;\n payloadHash: Uint8Array;\n confirmations: number | bigint;\n options: Array<LzOptionArgs>;\n};\n\nexport function getQuoteDvnInstructionDataSerializer(): Serializer<\n QuoteDvnInstructionDataArgs,\n QuoteDvnInstructionData\n> {\n return mapSerializer<\n QuoteDvnInstructionDataArgs,\n any,\n QuoteDvnInstructionData\n >(\n struct<QuoteDvnInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['msglib', publicKeySerializer()],\n ['dstEid', u32()],\n ['sender', publicKeySerializer()],\n ['packetHeader', bytes({ size: u32() })],\n ['payloadHash', bytes({ size: 32 })],\n ['confirmations', u64()],\n ['options', array(getLzOptionSerializer())],\n ],\n { description: 'QuoteDvnInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([223, 98, 51, 200, 123, 133, 132, 194]),\n })\n ) as Serializer<QuoteDvnInstructionDataArgs, QuoteDvnInstructionData>;\n}\n\n// Args.\nexport type QuoteDvnInstructionArgs = QuoteDvnInstructionDataArgs;\n\n// Instruction.\nexport function quoteDvn(\n context: Pick<Context, 'programs'>,\n input: QuoteDvnInstructionAccounts & QuoteDvnInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'dvn',\n 'HtEYV4xB4wvsj5fgTkcfuChYpvGYzgzwvNhgDZQNh7wW'\n );\n\n // Accounts.\n const resolvedAccounts = {\n dvnConfig: {\n index: 0,\n isWritable: false as boolean,\n value: input.dvnConfig ?? null,\n },\n priceFeedProgram: {\n index: 1,\n isWritable: false as boolean,\n value: input.priceFeedProgram ?? null,\n },\n priceFeedConfig: {\n index: 2,\n isWritable: false as boolean,\n value: input.priceFeedConfig ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: QuoteDvnInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getQuoteDvnInstructionDataSerializer().serialize(\n resolvedArgs as QuoteDvnInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\nimport {\n AdminConfig,\n AdminConfigArgs,\n getAdminConfigSerializer,\n} from '../types';\n\n// Accounts.\nexport type SetConfigInstructionAccounts = {\n admin: Signer;\n config: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type SetConfigInstructionData = {\n discriminator: Uint8Array;\n config: AdminConfig;\n};\n\nexport type SetConfigInstructionDataArgs = { config: AdminConfigArgs };\n\nexport function getSetConfigInstructionDataSerializer(): Serializer<\n SetConfigInstructionDataArgs,\n SetConfigInstructionData\n> {\n return mapSerializer<\n SetConfigInstructionDataArgs,\n any,\n SetConfigInstructionData\n >(\n struct<SetConfigInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['config', getAdminConfigSerializer()],\n ],\n { description: 'SetConfigInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([108, 158, 154, 175, 212, 98, 52, 66]),\n })\n ) as Serializer<SetConfigInstructionDataArgs, SetConfigInstructionData>;\n}\n\n// Args.\nexport type SetConfigInstructionArgs = SetConfigInstructionDataArgs;\n\n// Instruction.\nexport function setConfig(\n context: Pick<Context, 'programs'>,\n accounts: SetConfigInstructionAccounts,\n args: SetConfigInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'dvn',\n 'HtEYV4xB4wvsj5fgTkcfuChYpvGYzgzwvNhgDZQNh7wW'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: false as boolean,\n value: accounts.admin ?? null,\n },\n config: {\n index: 1,\n isWritable: true as boolean,\n value: accounts.config ?? null,\n },\n eventAuthority: {\n index: 2,\n isWritable: false as boolean,\n value: accounts.eventAuthority ?? null,\n },\n program: {\n index: 3,\n isWritable: false as boolean,\n value: accounts.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SetConfigInstructionArgs = { ...args };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSetConfigInstructionDataSerializer().serialize(\n resolvedArgs as SetConfigInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n array,\n bytes,\n mapSerializer,\n struct,\n u8,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type VerifiableInstructionAccounts = {\n nonce: PublicKey | Pda;\n payloadHash: PublicKey | Pda;\n receiveConfig: PublicKey | Pda;\n defaultReceiveConfig: PublicKey | Pda;\n};\n\n// Data.\nexport type VerifiableInstructionData = {\n discriminator: Uint8Array;\n packetHeader: Array<number>;\n payloadHash: Uint8Array;\n};\n\nexport type VerifiableInstructionDataArgs = {\n packetHeader: Array<number>;\n payloadHash: Uint8Array;\n};\n\nexport function getVerifiableInstructionDataSerializer(): Serializer<\n VerifiableInstructionDataArgs,\n VerifiableInstructionData\n> {\n return mapSerializer<\n VerifiableInstructionDataArgs,\n any,\n VerifiableInstructionData\n >(\n struct<VerifiableInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['packetHeader', array(u8(), { size: 81 })],\n ['payloadHash', bytes({ size: 32 })],\n ],\n { description: 'VerifiableInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([249, 50, 227, 157, 238, 249, 211, 90]),\n })\n ) as Serializer<VerifiableInstructionDataArgs, VerifiableInstructionData>;\n}\n\n// Args.\nexport type VerifiableInstructionArgs = VerifiableInstructionDataArgs;\n\n// Instruction.\nexport function verifiable(\n context: Pick<Context, 'programs'>,\n accounts: VerifiableInstructionAccounts,\n args: VerifiableInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'dvn',\n 'HtEYV4xB4wvsj5fgTkcfuChYpvGYzgzwvNhgDZQNh7wW'\n );\n\n // Accounts.\n const resolvedAccounts = {\n nonce: {\n index: 0,\n isWritable: false as boolean,\n value: accounts.nonce ?? null,\n },\n payloadHash: {\n index: 1,\n isWritable: false as boolean,\n value: accounts.payloadHash ?? null,\n },\n receiveConfig: {\n index: 2,\n isWritable: false as boolean,\n value: accounts.receiveConfig ?? null,\n },\n defaultReceiveConfig: {\n index: 3,\n isWritable: false as boolean,\n value: accounts.defaultReceiveConfig ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: VerifiableInstructionArgs = { ...args };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getVerifiableInstructionDataSerializer().serialize(\n resolvedArgs as VerifiableInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type WithdrawFeeInstructionAccounts = {\n admin: Signer;\n config: PublicKey | Pda;\n receiver: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type WithdrawFeeInstructionData = {\n discriminator: Uint8Array;\n amount: bigint;\n};\n\nexport type WithdrawFeeInstructionDataArgs = { amount: number | bigint };\n\nexport function getWithdrawFeeInstructionDataSerializer(): Serializer<\n WithdrawFeeInstructionDataArgs,\n WithdrawFeeInstructionData\n> {\n return mapSerializer<\n WithdrawFeeInstructionDataArgs,\n any,\n WithdrawFeeInstructionData\n >(\n struct<WithdrawFeeInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['amount', u64()],\n ],\n { description: 'WithdrawFeeInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([14, 122, 231, 218, 31, 238, 223, 150]),\n })\n ) as Serializer<WithdrawFeeInstructionDataArgs, WithdrawFeeInstructionData>;\n}\n\n// Args.\nexport type WithdrawFeeInstructionArgs = WithdrawFeeInstructionDataArgs;\n\n// Instruction.\nexport function withdrawFee(\n context: Pick<Context, 'programs'>,\n input: WithdrawFeeInstructionAccounts & WithdrawFeeInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'dvn',\n 'HtEYV4xB4wvsj5fgTkcfuChYpvGYzgzwvNhgDZQNh7wW'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: false as boolean,\n value: input.admin ?? null,\n },\n config: {\n index: 1,\n isWritable: true as boolean,\n value: input.config ?? null,\n },\n receiver: {\n index: 2,\n isWritable: true as boolean,\n value: input.receiver ?? null,\n },\n eventAuthority: {\n index: 3,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 4,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: WithdrawFeeInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getWithdrawFeeInstructionDataSerializer().serialize(\n resolvedArgs as WithdrawFeeInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './accounts';\nexport * from './errors';\nexport * from './instructions';\nexport * from './programs';\nexport * from './shared';\nexport * from './types';\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n ClusterFilter,\n Context,\n Program,\n PublicKey,\n} from '@metaplex-foundation/umi';\nimport { getDvnErrorFromCode, getDvnErrorFromName } from '../errors';\n\nexport const DVN_PROGRAM_ID =\n 'HtEYV4xB4wvsj5fgTkcfuChYpvGYzgzwvNhgDZQNh7wW' as PublicKey<'HtEYV4xB4wvsj5fgTkcfuChYpvGYzgzwvNhgDZQNh7wW'>;\n\nexport function createDvnProgram(): Program {\n return {\n name: 'dvn',\n publicKey: DVN_PROGRAM_ID,\n getErrorFromCode(code: number, cause?: Error) {\n return getDvnErrorFromCode(code, this, cause);\n },\n getErrorFromName(name: string, cause?: Error) {\n return getDvnErrorFromName(name, this, cause);\n },\n isOnCluster() {\n return true;\n },\n };\n}\n\nexport function getDvnProgram<T extends Program = Program>(\n context: Pick<Context, 'programs'>,\n clusterFilter?: ClusterFilter\n): T {\n return context.programs.get<T>('dvn', clusterFilter);\n}\n\nexport function getDvnProgramId(\n context: Pick<Context, 'programs'>,\n clusterFilter?: ClusterFilter\n): PublicKey {\n return context.programs.getPublicKey('dvn', DVN_PROGRAM_ID, clusterFilter);\n}\n","import {\n AccountMeta,\n Cluster,\n ClusterFilter,\n Commitment,\n Program,\n ProgramError,\n ProgramRepositoryInterface,\n PublicKey,\n RpcInterface,\n Signer,\n WrappedInstruction,\n createNullRpc,\n defaultPublicKey,\n publicKey,\n} from '@metaplex-foundation/umi'\nimport { createDefaultProgramRepository } from '@metaplex-foundation/umi-program-repository'\nimport invariant from 'tiny-invariant'\n\nimport { arrayify } from '@layerzerolabs/lz-utilities'\nimport { Packet, addressToBytes32 } from '@layerzerolabs/lz-v2-utilities'\n\nimport { ENDPOINT_PROGRAM_ID } from './endpoint'\nimport { ComposeSentEvent } from './generated/kinobi/endpoint/events'\nimport * as accounts from './generated/kinobi/executor/accounts'\nimport * as errors from './generated/kinobi/executor/errors'\nimport * as events from './generated/kinobi/executor/events'\nimport * as instructions from './generated/kinobi/executor/instructions'\nimport { NativeDropInstructionDataArgs, QuoteExecutorInstructionArgs } from './generated/kinobi/executor/instructions'\nimport { EXECUTOR_PROGRAM_ID } from './generated/kinobi/executor/programs'\nimport * as types from './generated/kinobi/executor/types'\nimport { EventPDA, ExecutorPDA, MessageLibPDA, PriceFeedPDA } from './pda'\nimport { getLzComposeAccountMeta, getLzReceiveAccounts } from './receive'\n\nexport { EXECUTOR_PROGRAM_ID } from './generated/kinobi/executor/programs'\nexport { accounts, instructions, types, events, errors }\n\nexport class Executor {\n public readonly pda: ExecutorPDA\n public readonly programRepo: ProgramRepositoryInterface\n public readonly eventAuthority: PublicKey\n\n constructor(\n public programId: PublicKey = EXECUTOR_PROGRAM_ID,\n rpc?: RpcInterface\n ) {\n this.pda = new ExecutorPDA(this.programId)\n if (rpc === undefined) {\n rpc = createNullRpc()\n rpc.getCluster = (): Cluster => 'custom'\n }\n this.programRepo = createDefaultProgramRepository({ rpc }, [\n {\n name: 'executor',\n publicKey: programId,\n getErrorFromCode(code: number, cause?: Error): ProgramError | null {\n return errors.getExecutorErrorFromCode(code, this, cause)\n },\n getErrorFromName(name: string, cause?: Error): ProgramError | null {\n return errors.getExecutorErrorFromName(name, this, cause)\n },\n isOnCluster(): boolean {\n return true\n },\n } satisfies Program,\n ])\n\n this.eventAuthority = new EventPDA(programId).eventAuthority()[0]\n }\n\n getProgram(clusterFilter: ClusterFilter = 'custom'): Program {\n return this.programRepo.get('executor', clusterFilter)\n }\n\n // owner methods\n initExecutor(payer: Signer, param: instructions.InitExecutorInstructionDataArgs): WrappedInstruction {\n return instructions.initExecutor(\n { programs: this.programRepo, payer },\n {\n payer,\n config: this.pda.config(),\n ...param,\n }\n ).items[0]\n }\n\n setOwner(owner: Signer, newOwner: PublicKey): WrappedInstruction {\n return instructions.ownerSetConfig(\n { programs: this.programRepo },\n {\n owner,\n config: this.pda.config(),\n params: {\n fields: [newOwner],\n __kind: 'Owner',\n },\n }\n ).items[0]\n }\n\n setAdmins(owner: Signer, admins: PublicKey[]): WrappedInstruction {\n return instructions.ownerSetConfig(\n { programs: this.programRepo },\n {\n owner,\n config: this.pda.config(),\n params: {\n fields: [admins],\n __kind: 'Admins',\n },\n }\n ).items[0]\n }\n\n setAllowList(owner: Signer, allowlist: PublicKey[]): WrappedInstruction {\n return instructions.ownerSetConfig(\n { programs: this.programRepo },\n {\n owner,\n config: this.pda.config(),\n params: {\n fields: [allowlist],\n __kind: 'Allowlist',\n },\n }\n ).items[0]\n }\n\n setDenyList(owner: Signer, denylist: PublicKey[]): WrappedInstruction {\n return instructions.ownerSetConfig(\n { programs: this.programRepo },\n {\n owner,\n config: this.pda.config(),\n params: {\n fields: [denylist],\n __kind: 'Denylist',\n },\n }\n ).items[0]\n }\n\n setPaused(owner: Signer, paused: boolean): WrappedInstruction {\n return instructions.ownerSetConfig(\n { programs: this.programRepo },\n {\n owner,\n config: this.pda.config(),\n params: {\n fields: [paused],\n __kind: 'Paused',\n },\n }\n ).items[0]\n }\n\n setExecutors(owner: Signer, executors: PublicKey[]): WrappedInstruction {\n return instructions.ownerSetConfig(\n { programs: this.programRepo },\n {\n owner: owner,\n config: this.pda.config(),\n params: {\n fields: [executors],\n __kind: 'Executors',\n },\n }\n ).items[0]\n }\n\n setMsglibByPrograms(owner: Signer, msglibPrograms: PublicKey[]): WrappedInstruction {\n const msglibPdas = msglibPrograms.map((program) => {\n return new MessageLibPDA(program).messageLib()[0]\n })\n return this.setMsglibByPDAs(owner, msglibPdas)\n }\n\n setMsglibByPDAs(owner: Signer, msglibPDAs: PublicKey[]): WrappedInstruction {\n return instructions.ownerSetConfig(\n { programs: this.programRepo },\n {\n owner,\n config: this.pda.config(),\n params: {\n fields: [msglibPDAs],\n __kind: 'Msglibs',\n },\n }\n ).items[0]\n }\n\n // admin methods\n setDefaultMultiplierBps(admin: Signer, defaultMultiplierBps: number): WrappedInstruction {\n return instructions.adminSetConfig(\n { programs: this.programRepo },\n {\n admin,\n config: this.pda.config(),\n params: {\n fields: [defaultMultiplierBps],\n __kind: 'DefaultMultiplierBps',\n } satisfies types.AdminSetConfigParams,\n }\n ).items[0]\n }\n\n setDstConfig(admin: Signer, dstConfigs: types.DstConfig[]): WrappedInstruction {\n return instructions.adminSetConfig(\n { programs: this.programRepo },\n {\n admin,\n config: this.pda.config(),\n params: {\n fields: [dstConfigs],\n __kind: 'DstConfigs',\n } satisfies types.AdminSetConfigParams,\n }\n ).items[0]\n }\n\n setPriceFeed(admin: Signer, priceFeedProgram: PublicKey): WrappedInstruction {\n const [priceFeed] = new PriceFeedPDA(priceFeedProgram).priceFeed()\n return instructions.adminSetConfig(\n { programs: this.programRepo },\n {\n admin,\n config: this.pda.config(),\n params: {\n fields: [priceFeed],\n __kind: 'PriceFeed',\n } satisfies types.AdminSetConfigParams,\n }\n ).items[0]\n }\n\n nativeDrop(executor: Signer, param: NativeDropInstructionDataArgs): WrappedInstruction {\n const receivers: AccountMeta[] = param.nativeDropRequests.map((request) => {\n return {\n pubkey: request.receiver,\n isSigner: false,\n isWritable: true,\n } satisfies AccountMeta\n })\n return instructions\n .nativeDrop(\n { programs: this.programRepo },\n {\n executor: executor,\n config: this.pda.config(),\n eventAuthority: new EventPDA(this.programId).eventAuthority()[0],\n program: this.programId,\n ...param,\n }\n )\n .addRemainingAccounts(receivers).items[0]\n }\n\n quoteExecutor(param: { priceFeedProgram: PublicKey } & QuoteExecutorInstructionArgs): WrappedInstruction {\n const [priceFeed] = new PriceFeedPDA(param.priceFeedProgram).priceFeed()\n return instructions.quoteExecutor(\n { programs: this.programRepo },\n {\n executorConfig: this.pda.config(),\n priceFeedConfig: priceFeed,\n ...param,\n }\n ).items[0]\n }\n\n async getExecutorConfig(\n rpc: RpcInterface,\n commitment: Commitment = 'confirmed'\n ): Promise<accounts.ExecutorConfig | null> {\n const [configAccount] = this.pda.config()\n const config = await accounts.safeFetchExecutorConfig({ rpc }, configAccount, { commitment })\n return config\n }\n\n getQuoteIXAccountMetaForCPI(\n priceFeedConfig: PublicKey,\n priceFeedProgram: PublicKey,\n payment: boolean\n ): AccountMeta[] {\n const txBuilder = instructions.quoteExecutor(\n { programs: this.programRepo },\n {\n executorConfig: this.pda.config(),\n priceFeedConfig,\n priceFeedProgram: priceFeedProgram,\n // param\n msglib: defaultPublicKey(),\n dstEid: 0,\n sender: defaultPublicKey(),\n calldataSize: 0,\n options: [],\n }\n )\n const ixAccounts = txBuilder.getInstructions()[0].keys\n if (payment) {\n // if payment is required, the first account is required to be writable to receive the payment\n ixAccounts[0].isWritable = true\n }\n return [\n {\n pubkey: this.programId,\n isWritable: false,\n isSigner: false,\n },\n ].concat(ixAccounts)\n }\n\n async execute(\n rpc: RpcInterface,\n executor: Signer,\n param: {\n packet: Packet\n extraData: Uint8Array\n value?: bigint\n computeUnits?: number\n endpointProgram?: PublicKey\n },\n commitment: Commitment = 'confirmed'\n ): Promise<WrappedInstruction> {\n const { packet, extraData, value = 0n, computeUnits = 200000, endpointProgram = ENDPOINT_PROGRAM_ID } = param\n const endpointEventPDA = new EventPDA(endpointProgram)\n const executorEventPDA = new EventPDA(this.programId)\n const { message: message_, sender: sender, srcEid, guid, receiver: receiver_, nonce } = packet\n const receiver = publicKey(addressToBytes32(receiver_))\n const receiverInfo = await rpc.getAccount(receiver, { commitment })\n invariant(receiverInfo.exists, `Receiver account not found: ${receiver}`)\n const receiverProgram = publicKey(receiverInfo.owner)\n const message = arrayify(message_)\n const accounts = await getLzReceiveAccounts(\n rpc,\n executor.publicKey,\n receiver,\n receiverProgram,\n {\n srcEid: srcEid,\n sender: arrayify(sender),\n guid: arrayify(guid),\n message,\n callerParams: extraData,\n nonce: BigInt(packet.nonce),\n },\n commitment\n )\n\n const txBuilder = instructions.execute(\n { programs: this.programRepo },\n {\n executor,\n config: this.pda.config(),\n endpointProgram: endpointProgram,\n endpointEventAuthority: endpointEventPDA.eventAuthority()[0],\n program: this.programId,\n eventAuthority: executorEventPDA.eventAuthority()[0],\n // param\n receiver,\n lzReceive: {\n srcEid,\n sender: arrayify(sender),\n nonce: parseInt(nonce),\n guid: arrayify(guid),\n message,\n extraData,\n },\n value,\n computeUnits,\n }\n )\n return txBuilder.addRemainingAccounts([\n {\n pubkey: receiverProgram,\n isWritable: false,\n isSigner: false,\n },\n ...accounts,\n ]).items[0]\n }\n\n async compose(\n rpc: RpcInterface,\n executor: Signer,\n param: {\n event: ComposeSentEvent\n extraData: Uint8Array\n value?: bigint\n computeUnits?: number\n endpointProgram?: PublicKey\n },\n commitment: Commitment = 'confirmed'\n ): Promise<WrappedInstruction> {\n const { event, extraData, value = 0n, computeUnits = 400000, endpointProgram = ENDPOINT_PROGRAM_ID } = param\n const endpointEventDeriver = new EventPDA(endpointProgram)\n const executorEventDeriver = new EventPDA(this.programId)\n const { to, from, guid, index, message } = event\n const receiverInfo = await rpc.getAccount(to, { commitment })\n invariant(receiverInfo.exists, `Receiver account not found: ${to}`)\n const receiverProgram = publicKey(receiverInfo.owner)\n\n const accounts = await getLzComposeAccountMeta(\n rpc,\n executor.publicKey,\n to,\n receiverProgram,\n {\n from,\n to,\n guid,\n index,\n message,\n extraData,\n },\n commitment\n )\n\n const txBuilder = instructions.compose(\n { programs: this.programRepo },\n {\n executor,\n config: this.pda.config(),\n endpointProgram,\n endpointEventAuthority: endpointEventDeriver.eventAuthority()[0],\n program: this.programId,\n eventAuthority: executorEventDeriver.eventAuthority()[0],\n\n // param\n lzCompose: {\n to,\n from,\n guid,\n index,\n message,\n extraData,\n },\n computeUnits,\n value,\n }\n )\n return txBuilder.addRemainingAccounts([\n {\n pubkey: receiverProgram,\n isWritable: false,\n isSigner: false,\n },\n ...accounts,\n ]).items[0]\n }\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './executorConfig';\nexport * from './nonce';\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './acl';\nexport * from './adminSetConfigParams';\nexport * from './dstConfig';\nexport * from './executionState';\nexport * from './lzComposeParams';\nexport * from './lzOption';\nexport * from './lzReceiveParams';\nexport * from './nativeDropRequest';\nexport * from './ownerSetConfigParams';","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n array,\n publicKey as publicKeySerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type Acl = { allowList: Array<PublicKey>; denyList: Array<PublicKey> };\n\nexport type AclArgs = Acl;\n\nexport function getAclSerializer(): Serializer<AclArgs, Acl> {\n return struct<Acl>(\n [\n ['allowList', array(publicKeySerializer())],\n ['denyList', array(publicKeySerializer())],\n ],\n { description: 'Acl' }\n ) as Serializer<AclArgs, Acl>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n GetDataEnumKind,\n GetDataEnumKindContent,\n Serializer,\n array,\n dataEnum,\n publicKey as publicKeySerializer,\n struct,\n tuple,\n u16,\n} from '@metaplex-foundation/umi/serializers';\nimport { DstConfig, DstConfigArgs, getDstConfigSerializer } from '.';\n\nexport type AdminSetConfigParams =\n | { __kind: 'PriceFeed'; fields: [PublicKey] }\n | { __kind: 'DefaultMultiplierBps'; fields: [number] }\n | { __kind: 'DstConfigs'; fields: [Array<DstConfig>] };\n\nexport type AdminSetConfigParamsArgs =\n | { __kind: 'PriceFeed'; fields: [PublicKey] }\n | { __kind: 'DefaultMultiplierBps'; fields: [number] }\n | { __kind: 'DstConfigs'; fields: [Array<DstConfigArgs>] };\n\nexport function getAdminSetConfigParamsSerializer(): Serializer<\n AdminSetConfigParamsArgs,\n AdminSetConfigParams\n> {\n return dataEnum<AdminSetConfigParams>(\n [\n [\n 'PriceFeed',\n struct<GetDataEnumKindContent<AdminSetConfigParams, 'PriceFeed'>>([\n ['fields', tuple([publicKeySerializer()])],\n ]),\n ],\n [\n 'DefaultMultiplierBps',\n struct<\n GetDataEnumKindContent<AdminSetConfigParams, 'DefaultMultiplierBps'>\n >([['fields', tuple([u16()])]]),\n ],\n [\n 'DstConfigs',\n struct<GetDataEnumKindContent<AdminSetConfigParams, 'DstConfigs'>>([\n ['fields', tuple([array(getDstConfigSerializer())])],\n ]),\n ],\n ],\n { description: 'AdminSetConfigParams' }\n ) as Serializer<AdminSetConfigParamsArgs, AdminSetConfigParams>;\n}\n\n// Data Enum Helpers.\nexport function adminSetConfigParams(\n kind: 'PriceFeed',\n data: GetDataEnumKindContent<AdminSetConfigParamsArgs, 'PriceFeed'>['fields']\n): GetDataEnumKind<AdminSetConfigParamsArgs, 'PriceFeed'>;\nexport function adminSetConfigParams(\n kind: 'DefaultMultiplierBps',\n data: GetDataEnumKindContent<\n AdminSetConfigParamsArgs,\n 'DefaultMultiplierBps'\n >['fields']\n): GetDataEnumKind<AdminSetConfigParamsArgs, 'DefaultMultiplierBps'>;\nexport function adminSetConfigParams(\n kind: 'DstConfigs',\n data: GetDataEnumKindContent<AdminSetConfigParamsArgs, 'DstConfigs'>['fields']\n): GetDataEnumKind<AdminSetConfigParamsArgs, 'DstConfigs'>;\nexport function adminSetConfigParams<\n K extends AdminSetConfigParamsArgs['__kind'],\n>(kind: K, data?: any): Extract<AdminSetConfigParamsArgs, { __kind: K }> {\n return Array.isArray(data)\n ? { __kind: kind, fields: data }\n : { __kind: kind, ...(data ?? {}) };\n}\nexport function isAdminSetConfigParams<\n K extends AdminSetConfigParams['__kind'],\n>(\n kind: K,\n value: AdminSetConfigParams\n): value is AdminSetConfigParams & { __kind: K } {\n return value.__kind === kind;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Option, OptionOrNullable } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n option,\n struct,\n u128,\n u16,\n u32,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type DstConfig = {\n eid: number;\n lzReceiveBaseGas: number;\n lzComposeBaseGas: number;\n multiplierBps: Option<number>;\n floorMarginUsd: Option<bigint>;\n nativeDropCap: bigint;\n};\n\nexport type DstConfigArgs = {\n eid: number;\n lzReceiveBaseGas: number;\n lzComposeBaseGas: number;\n multiplierBps: OptionOrNullable<number>;\n floorMarginUsd: OptionOrNullable<number | bigint>;\n nativeDropCap: number | bigint;\n};\n\nexport function getDstConfigSerializer(): Serializer<DstConfigArgs, DstConfig> {\n return struct<DstConfig>(\n [\n ['eid', u32()],\n ['lzReceiveBaseGas', u32()],\n ['lzComposeBaseGas', u32()],\n ['multiplierBps', option(u16())],\n ['floorMarginUsd', option(u128())],\n ['nativeDropCap', u128()],\n ],\n { description: 'DstConfig' }\n ) as Serializer<DstConfigArgs, DstConfig>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Serializer, scalarEnum } from '@metaplex-foundation/umi/serializers';\n\nexport enum ExecutionState {\n NotExecutable,\n VerifiedButNotExecutable,\n Executable,\n Executed,\n}\n\nexport type ExecutionStateArgs = ExecutionState;\n\nexport function getExecutionStateSerializer(): Serializer<\n ExecutionStateArgs,\n ExecutionState\n> {\n return scalarEnum<ExecutionState>(ExecutionState, {\n description: 'ExecutionState',\n }) as Serializer<ExecutionStateArgs, ExecutionState>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n publicKey as publicKeySerializer,\n struct,\n u16,\n u32,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type LzComposeParams = {\n from: PublicKey;\n to: PublicKey;\n guid: Uint8Array;\n index: number;\n message: Uint8Array;\n extraData: Uint8Array;\n};\n\nexport type LzComposeParamsArgs = LzComposeParams;\n\nexport function getLzComposeParamsSerializer(): Serializer<\n LzComposeParamsArgs,\n LzComposeParams\n> {\n return struct<LzComposeParams>(\n [\n ['from', publicKeySerializer()],\n ['to', publicKeySerializer()],\n ['guid', bytes({ size: 32 })],\n ['index', u16()],\n ['message', bytes({ size: u32() })],\n ['extraData', bytes({ size: u32() })],\n ],\n { description: 'LzComposeParams' }\n ) as Serializer<LzComposeParamsArgs, LzComposeParams>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Serializer,\n bytes,\n struct,\n u32,\n u8,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type LzOption = { optionType: number; params: Uint8Array };\n\nexport type LzOptionArgs = LzOption;\n\nexport function getLzOptionSerializer(): Serializer<LzOptionArgs, LzOption> {\n return struct<LzOption>(\n [\n ['optionType', u8()],\n ['params', bytes({ size: u32() })],\n ],\n { description: 'LzOption' }\n ) as Serializer<LzOptionArgs, LzOption>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Serializer,\n bytes,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type LzReceiveParams = {\n srcEid: number;\n sender: Uint8Array;\n nonce: bigint;\n guid: Uint8Array;\n message: Uint8Array;\n extraData: Uint8Array;\n};\n\nexport type LzReceiveParamsArgs = {\n srcEid: number;\n sender: Uint8Array;\n nonce: number | bigint;\n guid: Uint8Array;\n message: Uint8Array;\n extraData: Uint8Array;\n};\n\nexport function getLzReceiveParamsSerializer(): Serializer<\n LzReceiveParamsArgs,\n LzReceiveParams\n> {\n return struct<LzReceiveParams>(\n [\n ['srcEid', u32()],\n ['sender', bytes({ size: 32 })],\n ['nonce', u64()],\n ['guid', bytes({ size: 32 })],\n ['message', bytes({ size: u32() })],\n ['extraData', bytes({ size: u32() })],\n ],\n { description: 'LzReceiveParams' }\n ) as Serializer<LzReceiveParamsArgs, LzReceiveParams>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n publicKey as publicKeySerializer,\n struct,\n u64,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type NativeDropRequest = { receiver: PublicKey; amount: bigint };\n\nexport type NativeDropRequestArgs = {\n receiver: PublicKey;\n amount: number | bigint;\n};\n\nexport function getNativeDropRequestSerializer(): Serializer<\n NativeDropRequestArgs,\n NativeDropRequest\n> {\n return struct<NativeDropRequest>(\n [\n ['receiver', publicKeySerializer()],\n ['amount', u64()],\n ],\n { description: 'NativeDropRequest' }\n ) as Serializer<NativeDropRequestArgs, NativeDropRequest>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n GetDataEnumKind,\n GetDataEnumKindContent,\n Serializer,\n array,\n bool,\n dataEnum,\n publicKey as publicKeySerializer,\n struct,\n tuple,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type OwnerSetConfigParams =\n | { __kind: 'Admins'; fields: [Array<PublicKey>] }\n | { __kind: 'Executors'; fields: [Array<PublicKey>] }\n | { __kind: 'Msglibs'; fields: [Array<PublicKey>] }\n | { __kind: 'Owner'; fields: [PublicKey] }\n | { __kind: 'Paused'; fields: [boolean] }\n | { __kind: 'Allowlist'; fields: [Array<PublicKey>] }\n | { __kind: 'Denylist'; fields: [Array<PublicKey>] };\n\nexport type OwnerSetConfigParamsArgs = OwnerSetConfigParams;\n\nexport function getOwnerSetConfigParamsSerializer(): Serializer<\n OwnerSetConfigParamsArgs,\n OwnerSetConfigParams\n> {\n return dataEnum<OwnerSetConfigParams>(\n [\n [\n 'Admins',\n struct<GetDataEnumKindContent<OwnerSetConfigParams, 'Admins'>>([\n ['fields', tuple([array(publicKeySerializer())])],\n ]),\n ],\n [\n 'Executors',\n struct<GetDataEnumKindContent<OwnerSetConfigParams, 'Executors'>>([\n ['fields', tuple([array(publicKeySerializer())])],\n ]),\n ],\n [\n 'Msglibs',\n struct<GetDataEnumKindContent<OwnerSetConfigParams, 'Msglibs'>>([\n ['fields', tuple([array(publicKeySerializer())])],\n ]),\n ],\n [\n 'Owner',\n struct<GetDataEnumKindContent<OwnerSetConfigParams, 'Owner'>>([\n ['fields', tuple([publicKeySerializer()])],\n ]),\n ],\n [\n 'Paused',\n struct<GetDataEnumKindContent<OwnerSetConfigParams, 'Paused'>>([\n ['fields', tuple([bool()])],\n ]),\n ],\n [\n 'Allowlist',\n struct<GetDataEnumKindContent<OwnerSetConfigParams, 'Allowlist'>>([\n ['fields', tuple([array(publicKeySerializer())])],\n ]),\n ],\n [\n 'Denylist',\n struct<GetDataEnumKindContent<OwnerSetConfigParams, 'Denylist'>>([\n ['fields', tuple([array(publicKeySerializer())])],\n ]),\n ],\n ],\n { description: 'OwnerSetConfigParams' }\n ) as Serializer<OwnerSetConfigParamsArgs, OwnerSetConfigParams>;\n}\n\n// Data Enum Helpers.\nexport function ownerSetConfigParams(\n kind: 'Admins',\n data: GetDataEnumKindContent<OwnerSetConfigParamsArgs, 'Admins'>['fields']\n): GetDataEnumKind<OwnerSetConfigParamsArgs, 'Admins'>;\nexport function ownerSetConfigParams(\n kind: 'Executors',\n data: GetDataEnumKindContent<OwnerSetConfigParamsArgs, 'Executors'>['fields']\n): GetDataEnumKind<OwnerSetConfigParamsArgs, 'Executors'>;\nexport function ownerSetConfigParams(\n kind: 'Msglibs',\n data: GetDataEnumKindContent<OwnerSetConfigParamsArgs, 'Msglibs'>['fields']\n): GetDataEnumKind<OwnerSetConfigParamsArgs, 'Msglibs'>;\nexport function ownerSetConfigParams(\n kind: 'Owner',\n data: GetDataEnumKindContent<OwnerSetConfigParamsArgs, 'Owner'>['fields']\n): GetDataEnumKind<OwnerSetConfigParamsArgs, 'Owner'>;\nexport function ownerSetConfigParams(\n kind: 'Paused',\n data: GetDataEnumKindContent<OwnerSetConfigParamsArgs, 'Paused'>['fields']\n): GetDataEnumKind<OwnerSetConfigParamsArgs, 'Paused'>;\nexport function ownerSetConfigParams(\n kind: 'Allowlist',\n data: GetDataEnumKindContent<OwnerSetConfigParamsArgs, 'Allowlist'>['fields']\n): GetDataEnumKind<OwnerSetConfigParamsArgs, 'Allowlist'>;\nexport function ownerSetConfigParams(\n kind: 'Denylist',\n data: GetDataEnumKindContent<OwnerSetConfigParamsArgs, 'Denylist'>['fields']\n): GetDataEnumKind<OwnerSetConfigParamsArgs, 'Denylist'>;\nexport function ownerSetConfigParams<\n K extends OwnerSetConfigParamsArgs['__kind'],\n>(kind: K, data?: any): Extract<OwnerSetConfigParamsArgs, { __kind: K }> {\n return Array.isArray(data)\n ? { __kind: kind, fields: data }\n : { __kind: kind, ...(data ?? {}) };\n}\nexport function isOwnerSetConfigParams<\n K extends OwnerSetConfigParams['__kind'],\n>(\n kind: K,\n value: OwnerSetConfigParams\n): value is OwnerSetConfigParams & { __kind: K } {\n return value.__kind === kind;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Account,\n Context,\n Pda,\n PublicKey,\n RpcAccount,\n RpcGetAccountOptions,\n RpcGetAccountsOptions,\n assertAccountExists,\n deserializeAccount,\n gpaBuilder,\n publicKey as toPublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n array,\n bool,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u16,\n u8,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n Acl,\n AclArgs,\n DstConfig,\n DstConfigArgs,\n getAclSerializer,\n getDstConfigSerializer,\n} from '../types';\n\nexport type ExecutorConfig = Account<ExecutorConfigAccountData>;\n\nexport type ExecutorConfigAccountData = {\n discriminator: Uint8Array;\n bump: number;\n owner: PublicKey;\n acl: Acl;\n admins: Array<PublicKey>;\n executors: Array<PublicKey>;\n msglibs: Array<PublicKey>;\n paused: boolean;\n defaultMultiplierBps: number;\n priceFeed: PublicKey;\n dstConfigs: Array<DstConfig>;\n};\n\nexport type ExecutorConfigAccountDataArgs = {\n bump: number;\n owner: PublicKey;\n acl: AclArgs;\n admins: Array<PublicKey>;\n executors: Array<PublicKey>;\n msglibs: Array<PublicKey>;\n paused: boolean;\n defaultMultiplierBps: number;\n priceFeed: PublicKey;\n dstConfigs: Array<DstConfigArgs>;\n};\n\nexport function getExecutorConfigAccountDataSerializer(): Serializer<\n ExecutorConfigAccountDataArgs,\n ExecutorConfigAccountData\n> {\n return mapSerializer<\n ExecutorConfigAccountDataArgs,\n any,\n ExecutorConfigAccountData\n >(\n struct<ExecutorConfigAccountData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['bump', u8()],\n ['owner', publicKeySerializer()],\n ['acl', getAclSerializer()],\n ['admins', array(publicKeySerializer())],\n ['executors', array(publicKeySerializer())],\n ['msglibs', array(publicKeySerializer())],\n ['paused', bool()],\n ['defaultMultiplierBps', u16()],\n ['priceFeed', publicKeySerializer()],\n ['dstConfigs', array(getDstConfigSerializer())],\n ],\n { description: 'ExecutorConfigAccountData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([134, 17, 226, 24, 10, 173, 157, 78]),\n })\n ) as Serializer<ExecutorConfigAccountDataArgs, ExecutorConfigAccountData>;\n}\n\nexport function deserializeExecutorConfig(\n rawAccount: RpcAccount\n): ExecutorConfig {\n return deserializeAccount(\n rawAccount,\n getExecutorConfigAccountDataSerializer()\n );\n}\n\nexport async function fetchExecutorConfig(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<ExecutorConfig> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n assertAccountExists(maybeAccount, 'ExecutorConfig');\n return deserializeExecutorConfig(maybeAccount);\n}\n\nexport async function safeFetchExecutorConfig(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<ExecutorConfig | null> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n return maybeAccount.exists ? deserializeExecutorConfig(maybeAccount) : null;\n}\n\nexport async function fetchAllExecutorConfig(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<ExecutorConfig[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts.map((maybeAccount) => {\n assertAccountExists(maybeAccount, 'ExecutorConfig');\n return deserializeExecutorConfig(maybeAccount);\n });\n}\n\nexport async function safeFetchAllExecutorConfig(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<ExecutorConfig[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts\n .filter((maybeAccount) => maybeAccount.exists)\n .map((maybeAccount) =>\n deserializeExecutorConfig(maybeAccount as RpcAccount)\n );\n}\n\nexport function getExecutorConfigGpaBuilder(\n context: Pick<Context, 'rpc' | 'programs'>\n) {\n const programId = context.programs.getPublicKey(\n 'executor',\n '6doghB248px58JSSwG4qejQ46kFMW4AMj7vzJnWZHNZn'\n );\n return gpaBuilder(context, programId)\n .registerFields<{\n discriminator: Uint8Array;\n bump: number;\n owner: PublicKey;\n acl: AclArgs;\n admins: Array<PublicKey>;\n executors: Array<PublicKey>;\n msglibs: Array<PublicKey>;\n paused: boolean;\n defaultMultiplierBps: number;\n priceFeed: PublicKey;\n dstConfigs: Array<DstConfigArgs>;\n }>({\n discriminator: [0, bytes({ size: 8 })],\n bump: [8, u8()],\n owner: [9, publicKeySerializer()],\n acl: [41, getAclSerializer()],\n admins: [null, array(publicKeySerializer())],\n executors: [null, array(publicKeySerializer())],\n msglibs: [null, array(publicKeySerializer())],\n paused: [null, bool()],\n defaultMultiplierBps: [null, u16()],\n priceFeed: [null, publicKeySerializer()],\n dstConfigs: [null, array(getDstConfigSerializer())],\n })\n .deserializeUsing<ExecutorConfig>((account) =>\n deserializeExecutorConfig(account)\n )\n .whereField(\n 'discriminator',\n new Uint8Array([134, 17, 226, 24, 10, 173, 157, 78])\n );\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Account,\n Context,\n Pda,\n PublicKey,\n RpcAccount,\n RpcGetAccountOptions,\n RpcGetAccountsOptions,\n assertAccountExists,\n deserializeAccount,\n gpaBuilder,\n publicKey as toPublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n u64,\n u8,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type Nonce = Account<NonceAccountData>;\n\nexport type NonceAccountData = {\n discriminator: Uint8Array;\n bump: number;\n outboundNonce: bigint;\n inboundNonce: bigint;\n};\n\nexport type NonceAccountDataArgs = {\n bump: number;\n outboundNonce: number | bigint;\n inboundNonce: number | bigint;\n};\n\nexport function getNonceAccountDataSerializer(): Serializer<\n NonceAccountDataArgs,\n NonceAccountData\n> {\n return mapSerializer<NonceAccountDataArgs, any, NonceAccountData>(\n struct<NonceAccountData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['bump', u8()],\n ['outboundNonce', u64()],\n ['inboundNonce', u64()],\n ],\n { description: 'NonceAccountData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([143, 197, 147, 95, 106, 165, 50, 43]),\n })\n ) as Serializer<NonceAccountDataArgs, NonceAccountData>;\n}\n\nexport function deserializeNonce(rawAccount: RpcAccount): Nonce {\n return deserializeAccount(rawAccount, getNonceAccountDataSerializer());\n}\n\nexport async function fetchNonce(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<Nonce> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n assertAccountExists(maybeAccount, 'Nonce');\n return deserializeNonce(maybeAccount);\n}\n\nexport async function safeFetchNonce(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<Nonce | null> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n return maybeAccount.exists ? deserializeNonce(maybeAccount) : null;\n}\n\nexport async function fetchAllNonce(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<Nonce[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts.map((maybeAccount) => {\n assertAccountExists(maybeAccount, 'Nonce');\n return deserializeNonce(maybeAccount);\n });\n}\n\nexport async function safeFetchAllNonce(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<Nonce[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts\n .filter((maybeAccount) => maybeAccount.exists)\n .map((maybeAccount) => deserializeNonce(maybeAccount as RpcAccount));\n}\n\nexport function getNonceGpaBuilder(context: Pick<Context, 'rpc' | 'programs'>) {\n const programId = context.programs.getPublicKey(\n 'executor',\n '6doghB248px58JSSwG4qejQ46kFMW4AMj7vzJnWZHNZn'\n );\n return gpaBuilder(context, programId)\n .registerFields<{\n discriminator: Uint8Array;\n bump: number;\n outboundNonce: number | bigint;\n inboundNonce: number | bigint;\n }>({\n discriminator: [0, bytes({ size: 8 })],\n bump: [8, u8()],\n outboundNonce: [9, u64()],\n inboundNonce: [17, u64()],\n })\n .deserializeUsing<Nonce>((account) => deserializeNonce(account))\n .whereField(\n 'discriminator',\n new Uint8Array([143, 197, 147, 95, 106, 165, 50, 43])\n );\n}\n\nexport function getNonceSize(): number {\n return 25;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './executor';\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Program, ProgramError } from '@metaplex-foundation/umi';\n\ntype ProgramErrorConstructor = new (\n program: Program,\n cause?: Error\n) => ProgramError;\nconst codeToErrorMap: Map<number, ProgramErrorConstructor> = new Map();\nconst nameToErrorMap: Map<string, ProgramErrorConstructor> = new Map();\n\n/** InvalidSize */\nexport class InvalidSizeError extends ProgramError {\n override readonly name: string = 'InvalidSize';\n\n readonly code: number = 0x1770; // 6000\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1770, InvalidSizeError);\nnameToErrorMap.set('InvalidSize', InvalidSizeError);\n\n/** Paused */\nexport class PausedError extends ProgramError {\n override readonly name: string = 'Paused';\n\n readonly code: number = 0x1771; // 6001\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1771, PausedError);\nnameToErrorMap.set('Paused', PausedError);\n\n/** UnsupportedOptionType */\nexport class UnsupportedOptionTypeError extends ProgramError {\n override readonly name: string = 'UnsupportedOptionType';\n\n readonly code: number = 0x1772; // 6002\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1772, UnsupportedOptionTypeError);\nnameToErrorMap.set('UnsupportedOptionType', UnsupportedOptionTypeError);\n\n/** ZeroLzComposeGasProvided */\nexport class ZeroLzComposeGasProvidedError extends ProgramError {\n override readonly name: string = 'ZeroLzComposeGasProvided';\n\n readonly code: number = 0x1773; // 6003\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1773, ZeroLzComposeGasProvidedError);\nnameToErrorMap.set('ZeroLzComposeGasProvided', ZeroLzComposeGasProvidedError);\n\n/** ZeroLzReceiveGasProvided */\nexport class ZeroLzReceiveGasProvidedError extends ProgramError {\n override readonly name: string = 'ZeroLzReceiveGasProvided';\n\n readonly code: number = 0x1774; // 6004\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1774, ZeroLzReceiveGasProvidedError);\nnameToErrorMap.set('ZeroLzReceiveGasProvided', ZeroLzReceiveGasProvidedError);\n\n/** NativeAmountExceedsCap */\nexport class NativeAmountExceedsCapError extends ProgramError {\n override readonly name: string = 'NativeAmountExceedsCap';\n\n readonly code: number = 0x1775; // 6005\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1775, NativeAmountExceedsCapError);\nnameToErrorMap.set('NativeAmountExceedsCap', NativeAmountExceedsCapError);\n\n/** NotAdmin */\nexport class NotAdminError extends ProgramError {\n override readonly name: string = 'NotAdmin';\n\n readonly code: number = 0x1776; // 6006\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1776, NotAdminError);\nnameToErrorMap.set('NotAdmin', NotAdminError);\n\n/** NotExecutor */\nexport class NotExecutorError extends ProgramError {\n override readonly name: string = 'NotExecutor';\n\n readonly code: number = 0x1777; // 6007\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1777, NotExecutorError);\nnameToErrorMap.set('NotExecutor', NotExecutorError);\n\n/** MsgLibNotAllowed */\nexport class MsgLibNotAllowedError extends ProgramError {\n override readonly name: string = 'MsgLibNotAllowed';\n\n readonly code: number = 0x1778; // 6008\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1778, MsgLibNotAllowedError);\nnameToErrorMap.set('MsgLibNotAllowed', MsgLibNotAllowedError);\n\n/** TooManyAdmins */\nexport class TooManyAdminsError extends ProgramError {\n override readonly name: string = 'TooManyAdmins';\n\n readonly code: number = 0x1779; // 6009\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1779, TooManyAdminsError);\nnameToErrorMap.set('TooManyAdmins', TooManyAdminsError);\n\n/** TooManyExecutors */\nexport class TooManyExecutorsError extends ProgramError {\n override readonly name: string = 'TooManyExecutors';\n\n readonly code: number = 0x177a; // 6010\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x177a, TooManyExecutorsError);\nnameToErrorMap.set('TooManyExecutors', TooManyExecutorsError);\n\n/** TooManyOptionTypes */\nexport class TooManyOptionTypesError extends ProgramError {\n override readonly name: string = 'TooManyOptionTypes';\n\n readonly code: number = 0x177b; // 6011\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x177b, TooManyOptionTypesError);\nnameToErrorMap.set('TooManyOptionTypes', TooManyOptionTypesError);\n\n/** InvalidNativeDropRequestsLength */\nexport class InvalidNativeDropRequestsLengthError extends ProgramError {\n override readonly name: string = 'InvalidNativeDropRequestsLength';\n\n readonly code: number = 0x177c; // 6012\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x177c, InvalidNativeDropRequestsLengthError);\nnameToErrorMap.set(\n 'InvalidNativeDropRequestsLength',\n InvalidNativeDropRequestsLengthError\n);\n\n/** InvalidNativeDropReceiver */\nexport class InvalidNativeDropReceiverError extends ProgramError {\n override readonly name: string = 'InvalidNativeDropReceiver';\n\n readonly code: number = 0x177d; // 6013\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x177d, InvalidNativeDropReceiverError);\nnameToErrorMap.set('InvalidNativeDropReceiver', InvalidNativeDropReceiverError);\n\n/** InsufficientBalance */\nexport class InsufficientBalanceError extends ProgramError {\n override readonly name: string = 'InsufficientBalance';\n\n readonly code: number = 0x177e; // 6014\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x177e, InsufficientBalanceError);\nnameToErrorMap.set('InsufficientBalance', InsufficientBalanceError);\n\n/** EidNotSupported */\nexport class EidNotSupportedError extends ProgramError {\n override readonly name: string = 'EidNotSupported';\n\n readonly code: number = 0x177f; // 6015\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x177f, EidNotSupportedError);\nnameToErrorMap.set('EidNotSupported', EidNotSupportedError);\n\n/** ExecutorIsAdmin */\nexport class ExecutorIsAdminError extends ProgramError {\n override readonly name: string = 'ExecutorIsAdmin';\n\n readonly code: number = 0x1780; // 6016\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1780, ExecutorIsAdminError);\nnameToErrorMap.set('ExecutorIsAdmin', ExecutorIsAdminError);\n\n/** InvalidOwner */\nexport class InvalidOwnerError extends ProgramError {\n override readonly name: string = 'InvalidOwner';\n\n readonly code: number = 0x1781; // 6017\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1781, InvalidOwnerError);\nnameToErrorMap.set('InvalidOwner', InvalidOwnerError);\n\n/**\n * Attempts to resolve a custom program error from the provided error code.\n * @category Errors\n */\nexport function getExecutorErrorFromCode(\n code: number,\n program: Program,\n cause?: Error\n): ProgramError | null {\n const constructor = codeToErrorMap.get(code);\n return constructor ? new constructor(program, cause) : null;\n}\n\n/**\n * Attempts to resolve a custom program error from the provided error name, i.e. 'Unauthorized'.\n * @category Errors\n */\nexport function getExecutorErrorFromName(\n name: string,\n program: Program,\n cause?: Error\n): ProgramError | null {\n const constructor = nameToErrorMap.get(name);\n return constructor ? new constructor(program, cause) : null;\n}\n","export * from './nativeDropAppliedEvent';","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n array,\n bool,\n bytes,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n NativeDropRequest,\n NativeDropRequestArgs,\n getNativeDropRequestSerializer,\n} from '../types';\n\nexport type NativeDropAppliedEvent = {\n srcEid: number;\n sender: Uint8Array;\n nonce: bigint;\n dstEid: number;\n oapp: PublicKey;\n nativeDropRequests: Array<NativeDropRequest>;\n successes: Array<boolean>;\n};\n\nexport type NativeDropAppliedEventArgs = {\n srcEid: number;\n sender: Uint8Array;\n nonce: number | bigint;\n dstEid: number;\n oapp: PublicKey;\n nativeDropRequests: Array<NativeDropRequestArgs>;\n successes: Array<boolean>;\n};\n\nexport function getNativeDropAppliedEventSerializer(): Serializer<\n NativeDropAppliedEventArgs,\n NativeDropAppliedEvent\n> {\n return struct<NativeDropAppliedEvent>(\n [\n ['srcEid', u32()],\n ['sender', bytes({ size: 32 })],\n ['nonce', u64()],\n ['dstEid', u32()],\n ['oapp', publicKeySerializer()],\n ['nativeDropRequests', array(getNativeDropRequestSerializer())],\n ['successes', array(bool())],\n ],\n { description: 'NativeDropAppliedEvent' }\n ) as Serializer<NativeDropAppliedEventArgs, NativeDropAppliedEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './adminSetConfig';\nexport * from './compose';\nexport * from './executable';\nexport * from './execute';\nexport * from './initExecutor';\nexport * from './nativeDrop';\nexport * from './ownerSetConfig';\nexport * from './quoteExecutor';\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n AccountMeta,\n isSigner,\n Pda,\n publicKey,\n PublicKey,\n Signer,\n isPda,\n} from '@metaplex-foundation/umi';\n\n/**\n * Transforms the given object such that the given keys are optional.\n * @internal\n */\nexport type PickPartial<T, K extends keyof T> = Omit<T, K> &\n Partial<Pick<T, K>>;\n\n/**\n * Asserts that the given value is not null or undefined.\n * @internal\n */\nexport function expectSome<T>(value: T | null | undefined): T {\n if (value == null) {\n throw new Error('Expected a value but received null or undefined.');\n }\n return value;\n}\n\n/**\n * Asserts that the given value is a PublicKey.\n * @internal\n */\nexport function expectPublicKey(\n value: PublicKey | Pda | Signer | null | undefined\n): PublicKey {\n if (!value) {\n throw new Error('Expected a PublicKey.');\n }\n return publicKey(value, false);\n}\n\n/**\n * Asserts that the given value is a PDA.\n * @internal\n */\nexport function expectPda(\n value: PublicKey | Pda | Signer | null | undefined\n): Pda {\n if (!value || !Array.isArray(value) || !isPda(value)) {\n throw new Error('Expected a PDA.');\n }\n return value;\n}\n\n/**\n * Defines an instruction account to resolve.\n * @internal\n */\nexport type ResolvedAccount<T = PublicKey | Pda | Signer | null> = {\n isWritable: boolean;\n value: T;\n};\n\n/**\n * Defines a set of instruction account to resolve.\n * @internal\n */\nexport type ResolvedAccounts = Record<string, ResolvedAccount>;\n\n/**\n * Defines a set of instruction account to resolve with their indices.\n * @internal\n */\nexport type ResolvedAccountsWithIndices = Record<\n string,\n ResolvedAccount & { index: number }\n>;\n\n/**\n * Get account metas and signers from resolved accounts.\n * @internal\n */\nexport function getAccountMetasAndSigners(\n accounts: ResolvedAccount[],\n optionalAccountStrategy: 'omitted' | 'programId',\n programId: PublicKey\n): [AccountMeta[], Signer[]] {\n const keys: AccountMeta[] = [];\n const signers: Signer[] = [];\n\n accounts.forEach((account) => {\n if (!account.value) {\n if (optionalAccountStrategy === 'omitted') return;\n keys.push({ pubkey: programId, isSigner: false, isWritable: false });\n return;\n }\n\n if (isSigner(account.value)) {\n signers.push(account.value);\n }\n keys.push({\n pubkey: publicKey(account.value, false),\n isSigner: isSigner(account.value),\n isWritable: account.isWritable,\n });\n });\n\n return [keys, signers];\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\nimport {\n AdminSetConfigParams,\n AdminSetConfigParamsArgs,\n getAdminSetConfigParamsSerializer,\n} from '../types';\n\n// Accounts.\nexport type AdminSetConfigInstructionAccounts = {\n admin: Signer;\n config: PublicKey | Pda;\n};\n\n// Data.\nexport type AdminSetConfigInstructionData = {\n discriminator: Uint8Array;\n params: AdminSetConfigParams;\n};\n\nexport type AdminSetConfigInstructionDataArgs = {\n params: AdminSetConfigParamsArgs;\n};\n\nexport function getAdminSetConfigInstructionDataSerializer(): Serializer<\n AdminSetConfigInstructionDataArgs,\n AdminSetConfigInstructionData\n> {\n return mapSerializer<\n AdminSetConfigInstructionDataArgs,\n any,\n AdminSetConfigInstructionData\n >(\n struct<AdminSetConfigInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['params', getAdminSetConfigParamsSerializer()],\n ],\n { description: 'AdminSetConfigInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([35, 56, 160, 84, 132, 156, 27, 79]),\n })\n ) as Serializer<\n AdminSetConfigInstructionDataArgs,\n AdminSetConfigInstructionData\n >;\n}\n\n// Args.\nexport type AdminSetConfigInstructionArgs = AdminSetConfigInstructionDataArgs;\n\n// Instruction.\nexport function adminSetConfig(\n context: Pick<Context, 'programs'>,\n input: AdminSetConfigInstructionAccounts & AdminSetConfigInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'executor',\n '6doghB248px58JSSwG4qejQ46kFMW4AMj7vzJnWZHNZn'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: false as boolean,\n value: input.admin ?? null,\n },\n config: {\n index: 1,\n isWritable: true as boolean,\n value: input.config ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: AdminSetConfigInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getAdminSetConfigInstructionDataSerializer().serialize(\n resolvedArgs as AdminSetConfigInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\nimport {\n LzComposeParams,\n LzComposeParamsArgs,\n getLzComposeParamsSerializer,\n} from '../types';\n\n// Accounts.\nexport type ComposeInstructionAccounts = {\n executor: Signer;\n config: PublicKey | Pda;\n endpointProgram: PublicKey | Pda;\n /** The authority for the endpoint program to emit events */\n endpointEventAuthority: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type ComposeInstructionData = {\n discriminator: Uint8Array;\n lzCompose: LzComposeParams;\n computeUnits: bigint;\n value: bigint;\n};\n\nexport type ComposeInstructionDataArgs = {\n lzCompose: LzComposeParamsArgs;\n computeUnits: number | bigint;\n value: number | bigint;\n};\n\nexport function getComposeInstructionDataSerializer(): Serializer<\n ComposeInstructionDataArgs,\n ComposeInstructionData\n> {\n return mapSerializer<ComposeInstructionDataArgs, any, ComposeInstructionData>(\n struct<ComposeInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['lzCompose', getLzComposeParamsSerializer()],\n ['computeUnits', u64()],\n ['value', u64()],\n ],\n { description: 'ComposeInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([106, 64, 131, 142, 7, 159, 42, 15]),\n })\n ) as Serializer<ComposeInstructionDataArgs, ComposeInstructionData>;\n}\n\n// Args.\nexport type ComposeInstructionArgs = ComposeInstructionDataArgs;\n\n// Instruction.\nexport function compose(\n context: Pick<Context, 'programs'>,\n input: ComposeInstructionAccounts & ComposeInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'executor',\n '6doghB248px58JSSwG4qejQ46kFMW4AMj7vzJnWZHNZn'\n );\n\n // Accounts.\n const resolvedAccounts = {\n executor: {\n index: 0,\n isWritable: true as boolean,\n value: input.executor ?? null,\n },\n config: {\n index: 1,\n isWritable: false as boolean,\n value: input.config ?? null,\n },\n endpointProgram: {\n index: 2,\n isWritable: false as boolean,\n value: input.endpointProgram ?? null,\n },\n endpointEventAuthority: {\n index: 3,\n isWritable: false as boolean,\n value: input.endpointEventAuthority ?? null,\n },\n eventAuthority: {\n index: 4,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 5,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: ComposeInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getComposeInstructionDataSerializer().serialize(\n resolvedArgs as ComposeInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type ExecutableInstructionAccounts = {\n nonce: PublicKey | Pda;\n payloadHash: PublicKey | Pda;\n};\n\n// Data.\nexport type ExecutableInstructionData = {\n discriminator: Uint8Array;\n receiver: PublicKey;\n srcEid: number;\n sender: Uint8Array;\n nonce: bigint;\n};\n\nexport type ExecutableInstructionDataArgs = {\n receiver: PublicKey;\n srcEid: number;\n sender: Uint8Array;\n nonce: number | bigint;\n};\n\nexport function getExecutableInstructionDataSerializer(): Serializer<\n ExecutableInstructionDataArgs,\n ExecutableInstructionData\n> {\n return mapSerializer<\n ExecutableInstructionDataArgs,\n any,\n ExecutableInstructionData\n >(\n struct<ExecutableInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['receiver', publicKeySerializer()],\n ['srcEid', u32()],\n ['sender', bytes({ size: 32 })],\n ['nonce', u64()],\n ],\n { description: 'ExecutableInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([57, 165, 171, 234, 157, 191, 156, 25]),\n })\n ) as Serializer<ExecutableInstructionDataArgs, ExecutableInstructionData>;\n}\n\n// Args.\nexport type ExecutableInstructionArgs = ExecutableInstructionDataArgs;\n\n// Instruction.\nexport function executable(\n context: Pick<Context, 'programs'>,\n accounts: ExecutableInstructionAccounts,\n args: ExecutableInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'executor',\n '6doghB248px58JSSwG4qejQ46kFMW4AMj7vzJnWZHNZn'\n );\n\n // Accounts.\n const resolvedAccounts = {\n nonce: {\n index: 0,\n isWritable: false as boolean,\n value: accounts.nonce ?? null,\n },\n payloadHash: {\n index: 1,\n isWritable: false as boolean,\n value: accounts.payloadHash ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: ExecutableInstructionArgs = { ...args };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getExecutableInstructionDataSerializer().serialize(\n resolvedArgs as ExecutableInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\nimport {\n LzReceiveParams,\n LzReceiveParamsArgs,\n getLzReceiveParamsSerializer,\n} from '../types';\n\n// Accounts.\nexport type ExecuteInstructionAccounts = {\n executor: Signer;\n config: PublicKey | Pda;\n endpointProgram: PublicKey | Pda;\n /** The authority for the endpoint program to emit events */\n endpointEventAuthority: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type ExecuteInstructionData = {\n discriminator: Uint8Array;\n receiver: PublicKey;\n lzReceive: LzReceiveParams;\n value: bigint;\n computeUnits: bigint;\n};\n\nexport type ExecuteInstructionDataArgs = {\n receiver: PublicKey;\n lzReceive: LzReceiveParamsArgs;\n value: number | bigint;\n computeUnits: number | bigint;\n};\n\nexport function getExecuteInstructionDataSerializer(): Serializer<\n ExecuteInstructionDataArgs,\n ExecuteInstructionData\n> {\n return mapSerializer<ExecuteInstructionDataArgs, any, ExecuteInstructionData>(\n struct<ExecuteInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['receiver', publicKeySerializer()],\n ['lzReceive', getLzReceiveParamsSerializer()],\n ['value', u64()],\n ['computeUnits', u64()],\n ],\n { description: 'ExecuteInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([130, 221, 242, 154, 13, 193, 189, 29]),\n })\n ) as Serializer<ExecuteInstructionDataArgs, ExecuteInstructionData>;\n}\n\n// Args.\nexport type ExecuteInstructionArgs = ExecuteInstructionDataArgs;\n\n// Instruction.\nexport function execute(\n context: Pick<Context, 'programs'>,\n input: ExecuteInstructionAccounts & ExecuteInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'executor',\n '6doghB248px58JSSwG4qejQ46kFMW4AMj7vzJnWZHNZn'\n );\n\n // Accounts.\n const resolvedAccounts = {\n executor: {\n index: 0,\n isWritable: true as boolean,\n value: input.executor ?? null,\n },\n config: {\n index: 1,\n isWritable: false as boolean,\n value: input.config ?? null,\n },\n endpointProgram: {\n index: 2,\n isWritable: false as boolean,\n value: input.endpointProgram ?? null,\n },\n endpointEventAuthority: {\n index: 3,\n isWritable: false as boolean,\n value: input.endpointEventAuthority ?? null,\n },\n eventAuthority: {\n index: 4,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 5,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: ExecuteInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getExecuteInstructionDataSerializer().serialize(\n resolvedArgs as ExecuteInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n array,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type InitExecutorInstructionAccounts = {\n payer?: Signer;\n config: PublicKey | Pda;\n systemProgram?: PublicKey | Pda;\n};\n\n// Data.\nexport type InitExecutorInstructionData = {\n discriminator: Uint8Array;\n owner: PublicKey;\n admins: Array<PublicKey>;\n executors: Array<PublicKey>;\n msglibs: Array<PublicKey>;\n priceFeed: PublicKey;\n};\n\nexport type InitExecutorInstructionDataArgs = {\n owner: PublicKey;\n admins: Array<PublicKey>;\n executors: Array<PublicKey>;\n msglibs: Array<PublicKey>;\n priceFeed: PublicKey;\n};\n\nexport function getInitExecutorInstructionDataSerializer(): Serializer<\n InitExecutorInstructionDataArgs,\n InitExecutorInstructionData\n> {\n return mapSerializer<\n InitExecutorInstructionDataArgs,\n any,\n InitExecutorInstructionData\n >(\n struct<InitExecutorInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['owner', publicKeySerializer()],\n ['admins', array(publicKeySerializer())],\n ['executors', array(publicKeySerializer())],\n ['msglibs', array(publicKeySerializer())],\n ['priceFeed', publicKeySerializer()],\n ],\n { description: 'InitExecutorInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([195, 68, 116, 173, 55, 173, 159, 31]),\n })\n ) as Serializer<InitExecutorInstructionDataArgs, InitExecutorInstructionData>;\n}\n\n// Args.\nexport type InitExecutorInstructionArgs = InitExecutorInstructionDataArgs;\n\n// Instruction.\nexport function initExecutor(\n context: Pick<Context, 'payer' | 'programs'>,\n input: InitExecutorInstructionAccounts & InitExecutorInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'executor',\n '6doghB248px58JSSwG4qejQ46kFMW4AMj7vzJnWZHNZn'\n );\n\n // Accounts.\n const resolvedAccounts = {\n payer: {\n index: 0,\n isWritable: true as boolean,\n value: input.payer ?? null,\n },\n config: {\n index: 1,\n isWritable: true as boolean,\n value: input.config ?? null,\n },\n systemProgram: {\n index: 2,\n isWritable: false as boolean,\n value: input.systemProgram ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: InitExecutorInstructionArgs = { ...input };\n\n // Default values.\n if (!resolvedAccounts.payer.value) {\n resolvedAccounts.payer.value = context.payer;\n }\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getInitExecutorInstructionDataSerializer().serialize(\n resolvedArgs as InitExecutorInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n array,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\nimport {\n NativeDropRequest,\n NativeDropRequestArgs,\n getNativeDropRequestSerializer,\n} from '../types';\n\n// Accounts.\nexport type NativeDropInstructionAccounts = {\n executor: Signer;\n config: PublicKey | Pda;\n /** For native drop transfer */\n systemProgram?: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type NativeDropInstructionData = {\n discriminator: Uint8Array;\n srcEid: number;\n sender: Uint8Array;\n nonce: bigint;\n dstEid: number;\n oapp: PublicKey;\n nativeDropRequests: Array<NativeDropRequest>;\n};\n\nexport type NativeDropInstructionDataArgs = {\n srcEid: number;\n sender: Uint8Array;\n nonce: number | bigint;\n dstEid: number;\n oapp: PublicKey;\n nativeDropRequests: Array<NativeDropRequestArgs>;\n};\n\nexport function getNativeDropInstructionDataSerializer(): Serializer<\n NativeDropInstructionDataArgs,\n NativeDropInstructionData\n> {\n return mapSerializer<\n NativeDropInstructionDataArgs,\n any,\n NativeDropInstructionData\n >(\n struct<NativeDropInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['srcEid', u32()],\n ['sender', bytes({ size: 32 })],\n ['nonce', u64()],\n ['dstEid', u32()],\n ['oapp', publicKeySerializer()],\n ['nativeDropRequests', array(getNativeDropRequestSerializer())],\n ],\n { description: 'NativeDropInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([105, 30, 218, 121, 155, 234, 85, 12]),\n })\n ) as Serializer<NativeDropInstructionDataArgs, NativeDropInstructionData>;\n}\n\n// Args.\nexport type NativeDropInstructionArgs = NativeDropInstructionDataArgs;\n\n// Instruction.\nexport function nativeDrop(\n context: Pick<Context, 'programs'>,\n input: NativeDropInstructionAccounts & NativeDropInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'executor',\n '6doghB248px58JSSwG4qejQ46kFMW4AMj7vzJnWZHNZn'\n );\n\n // Accounts.\n const resolvedAccounts = {\n executor: {\n index: 0,\n isWritable: true as boolean,\n value: input.executor ?? null,\n },\n config: {\n index: 1,\n isWritable: true as boolean,\n value: input.config ?? null,\n },\n systemProgram: {\n index: 2,\n isWritable: false as boolean,\n value: input.systemProgram ?? null,\n },\n eventAuthority: {\n index: 3,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 4,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: NativeDropInstructionArgs = { ...input };\n\n // Default values.\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getNativeDropInstructionDataSerializer().serialize(\n resolvedArgs as NativeDropInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\nimport {\n OwnerSetConfigParams,\n OwnerSetConfigParamsArgs,\n getOwnerSetConfigParamsSerializer,\n} from '../types';\n\n// Accounts.\nexport type OwnerSetConfigInstructionAccounts = {\n owner: Signer;\n config: PublicKey | Pda;\n};\n\n// Data.\nexport type OwnerSetConfigInstructionData = {\n discriminator: Uint8Array;\n params: OwnerSetConfigParams;\n};\n\nexport type OwnerSetConfigInstructionDataArgs = {\n params: OwnerSetConfigParamsArgs;\n};\n\nexport function getOwnerSetConfigInstructionDataSerializer(): Serializer<\n OwnerSetConfigInstructionDataArgs,\n OwnerSetConfigInstructionData\n> {\n return mapSerializer<\n OwnerSetConfigInstructionDataArgs,\n any,\n OwnerSetConfigInstructionData\n >(\n struct<OwnerSetConfigInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['params', getOwnerSetConfigParamsSerializer()],\n ],\n { description: 'OwnerSetConfigInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([99, 197, 129, 19, 164, 164, 183, 123]),\n })\n ) as Serializer<\n OwnerSetConfigInstructionDataArgs,\n OwnerSetConfigInstructionData\n >;\n}\n\n// Args.\nexport type OwnerSetConfigInstructionArgs = OwnerSetConfigInstructionDataArgs;\n\n// Instruction.\nexport function ownerSetConfig(\n context: Pick<Context, 'programs'>,\n input: OwnerSetConfigInstructionAccounts & OwnerSetConfigInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'executor',\n '6doghB248px58JSSwG4qejQ46kFMW4AMj7vzJnWZHNZn'\n );\n\n // Accounts.\n const resolvedAccounts = {\n owner: {\n index: 0,\n isWritable: false as boolean,\n value: input.owner ?? null,\n },\n config: {\n index: 1,\n isWritable: true as boolean,\n value: input.config ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: OwnerSetConfigInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getOwnerSetConfigInstructionDataSerializer().serialize(\n resolvedArgs as OwnerSetConfigInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n array,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\nimport { LzOption, LzOptionArgs, getLzOptionSerializer } from '../types';\n\n// Accounts.\nexport type QuoteExecutorInstructionAccounts = {\n executorConfig: PublicKey | Pda;\n priceFeedProgram: PublicKey | Pda;\n priceFeedConfig: PublicKey | Pda;\n};\n\n// Data.\nexport type QuoteExecutorInstructionData = {\n discriminator: Uint8Array;\n msglib: PublicKey;\n dstEid: number;\n sender: PublicKey;\n calldataSize: bigint;\n options: Array<LzOption>;\n};\n\nexport type QuoteExecutorInstructionDataArgs = {\n msglib: PublicKey;\n dstEid: number;\n sender: PublicKey;\n calldataSize: number | bigint;\n options: Array<LzOptionArgs>;\n};\n\nexport function getQuoteExecutorInstructionDataSerializer(): Serializer<\n QuoteExecutorInstructionDataArgs,\n QuoteExecutorInstructionData\n> {\n return mapSerializer<\n QuoteExecutorInstructionDataArgs,\n any,\n QuoteExecutorInstructionData\n >(\n struct<QuoteExecutorInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['msglib', publicKeySerializer()],\n ['dstEid', u32()],\n ['sender', publicKeySerializer()],\n ['calldataSize', u64()],\n ['options', array(getLzOptionSerializer())],\n ],\n { description: 'QuoteExecutorInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([84, 246, 255, 191, 82, 65, 164, 92]),\n })\n ) as Serializer<\n QuoteExecutorInstructionDataArgs,\n QuoteExecutorInstructionData\n >;\n}\n\n// Args.\nexport type QuoteExecutorInstructionArgs = QuoteExecutorInstructionDataArgs;\n\n// Instruction.\nexport function quoteExecutor(\n context: Pick<Context, 'programs'>,\n input: QuoteExecutorInstructionAccounts & QuoteExecutorInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'executor',\n '6doghB248px58JSSwG4qejQ46kFMW4AMj7vzJnWZHNZn'\n );\n\n // Accounts.\n const resolvedAccounts = {\n executorConfig: {\n index: 0,\n isWritable: false as boolean,\n value: input.executorConfig ?? null,\n },\n priceFeedProgram: {\n index: 1,\n isWritable: false as boolean,\n value: input.priceFeedProgram ?? null,\n },\n priceFeedConfig: {\n index: 2,\n isWritable: false as boolean,\n value: input.priceFeedConfig ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: QuoteExecutorInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getQuoteExecutorInstructionDataSerializer().serialize(\n resolvedArgs as QuoteExecutorInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n ClusterFilter,\n Context,\n Program,\n PublicKey,\n} from '@metaplex-foundation/umi';\nimport { getExecutorErrorFromCode, getExecutorErrorFromName } from '../errors';\n\nexport const EXECUTOR_PROGRAM_ID =\n '6doghB248px58JSSwG4qejQ46kFMW4AMj7vzJnWZHNZn' as PublicKey<'6doghB248px58JSSwG4qejQ46kFMW4AMj7vzJnWZHNZn'>;\n\nexport function createExecutorProgram(): Program {\n return {\n name: 'executor',\n publicKey: EXECUTOR_PROGRAM_ID,\n getErrorFromCode(code: number, cause?: Error) {\n return getExecutorErrorFromCode(code, this, cause);\n },\n getErrorFromName(name: string, cause?: Error) {\n return getExecutorErrorFromName(name, this, cause);\n },\n isOnCluster() {\n return true;\n },\n };\n}\n\nexport function getExecutorProgram<T extends Program = Program>(\n context: Pick<Context, 'programs'>,\n clusterFilter?: ClusterFilter\n): T {\n return context.programs.get<T>('executor', clusterFilter);\n}\n\nexport function getExecutorProgramId(\n context: Pick<Context, 'programs'>,\n clusterFilter?: ClusterFilter\n): PublicKey {\n return context.programs.getPublicKey(\n 'executor',\n EXECUTOR_PROGRAM_ID,\n clusterFilter\n );\n}\n","import { PublicKey } from '@metaplex-foundation/umi'\nimport {\n Serializer,\n bool,\n bytes,\n publicKey as publicKeySerializer,\n struct,\n u16,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers'\n\nexport interface SolanaPacketPath {\n sender: PublicKey\n dstEid: number\n receiver: Uint8Array // length 32\n}\n\n/**\n * Offset for message type.\n */\nexport const MSG_TYPE_OFFSET = 0\n\n/**\n * Enum representing different message types.\n */\nexport enum MessageType {\n /**\n * Vanilla message type.\n */\n VANILLA = 1,\n\n /**\n * Composed message type.\n */\n COMPOSED_TYPE = 2,\n}\n\n/**\n * Interface representing the parameters for LzReceive.\n */\nexport interface LzReceiveParams {\n /**\n * Source EID.\n */\n srcEid: number\n /**\n * Sender address (size: 32).\n */\n sender: Uint8Array\n\n nonce: bigint\n\n /**\n * GUID (size: 32).\n */\n guid: Uint8Array\n\n /**\n * Message content.\n */\n message: Uint8Array\n\n /**\n * Caller parameters.\n */\n callerParams: Uint8Array\n}\n\nexport interface LzReceiveParamsArgs {\n srcEid: number\n sender: Uint8Array\n nonce: number | bigint\n guid: Uint8Array\n message: Uint8Array\n callerParams: Uint8Array\n}\n\nexport function getLzReceiveParamsSerializer(): Serializer<LzReceiveParamsArgs, LzReceiveParams> {\n return struct<LzReceiveParams>(\n [\n ['srcEid', u32()],\n ['sender', bytes({ size: 32 })],\n ['nonce', u64()],\n ['guid', bytes({ size: 32 })],\n ['message', bytes({ size: u32() })],\n ['callerParams', bytes({ size: u32() })],\n ],\n { description: 'LzReceiveParams' }\n ) as Serializer<LzReceiveParamsArgs, LzReceiveParams>\n}\n\n/**\n *\npub from: Pubkey,\npub to: Pubkey,\npub guid: [u8; 32],\npub index: u16,\npub message: Vec<u8>,\npub extra_data: Vec<u8>,\n**/\n\n/**\n * Interface representing the parameters for LzCompose.\n */\nexport interface LzComposeParams {\n /**\n * Sender public key.\n */\n from: PublicKey\n\n /**\n * Recipient public key.\n */\n to: PublicKey\n\n /**\n * GUID (size: 32).\n */\n guid: Uint8Array\n\n /**\n * Index value.\n */\n index: number\n\n /**\n * Message content.\n */\n message: Uint8Array\n\n /**\n * Extra data.\n */\n extraData: Uint8Array\n}\n\nexport function getLzComposeParamsSerializer(): Serializer<LzComposeParams, LzComposeParams> {\n return struct<LzComposeParams>(\n [\n ['from', publicKeySerializer()],\n ['to', publicKeySerializer()],\n ['guid', bytes({ size: 32 })],\n ['index', u16()],\n ['message', bytes({ size: u32() })],\n ['extraData', bytes({ size: u32() })],\n ],\n { description: 'LzComposeParams' }\n )\n}\n\n/**\n * Interface representing an LzReceive account.\n */\nexport interface LzReceiveAccount {\n /**\n * Public key of the account.\n */\n pubkey: PublicKey\n\n /**\n * Indicates if the account is a signer.\n */\n isSigner: boolean\n\n /**\n * Indicates if the account is writable.\n */\n isWritable: boolean\n}\n\nexport function getLzReceiveAccountSerializer(): Serializer<LzReceiveAccount, LzReceiveAccount> {\n return struct<LzReceiveAccount>(\n [\n ['pubkey', publicKeySerializer()],\n ['isSigner', bool()],\n ['isWritable', bool()],\n ],\n { description: 'LzReceiveAccount' }\n )\n}\n\n/**\n * Enum representing different executor option types.\n */\nexport enum ExecutorOptionType {\n /**\n * Placeholder option type.\n */\n PlaceHolder = 0,\n\n /**\n * LzReceive option type.\n */\n LzReceive = 1,\n\n /**\n * NativeDrop option type.\n */\n NativeDrop = 2,\n\n /**\n * LzCompose option type.\n */\n LzCompose = 3,\n\n /**\n * OrderExecution option type.\n */\n OrderExecution = 4,\n}\n\n/**\n * Maximum length for executor option types.\n */\nexport const MaxExecutorOptionTypeLength = 10\n","export * from './adminTransferredEvent';\nexport * from './configSetEvent';\nexport * from './defaultConfigSetEvent';\nexport * from './feesPaidEvent';\nexport * from './payloadVerifiedEvent';\nexport * from './rentWithdrawnEvent';\nexport * from './treasurySetEvent';","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n publicKey as publicKeySerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type AdminTransferredEvent = { newAdmin: PublicKey };\n\nexport type AdminTransferredEventArgs = AdminTransferredEvent;\n\nexport function getAdminTransferredEventSerializer(): Serializer<\n AdminTransferredEventArgs,\n AdminTransferredEvent\n> {\n return struct<AdminTransferredEvent>([['newAdmin', publicKeySerializer()]], {\n description: 'AdminTransferredEvent',\n }) as Serializer<AdminTransferredEventArgs, AdminTransferredEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './config';\nexport * from './executorConfig';\nexport * from './lzTokenTreasury';\nexport * from './messagingFee';\nexport * from './packet';\nexport * from './treasury';\nexport * from './treasuryFee';\nexport * from './ulnConfig';\nexport * from './version';\nexport * from './workerFee';","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n GetDataEnumKind,\n GetDataEnumKindContent,\n Serializer,\n dataEnum,\n struct,\n tuple,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ExecutorConfig,\n ExecutorConfigArgs,\n UlnConfig,\n UlnConfigArgs,\n getExecutorConfigSerializer,\n getUlnConfigSerializer,\n} from '.';\n\nexport type Config =\n | { __kind: 'SendUln'; fields: [UlnConfig] }\n | { __kind: 'ReceiveUln'; fields: [UlnConfig] }\n | { __kind: 'Executor'; fields: [ExecutorConfig] };\n\nexport type ConfigArgs =\n | { __kind: 'SendUln'; fields: [UlnConfigArgs] }\n | { __kind: 'ReceiveUln'; fields: [UlnConfigArgs] }\n | { __kind: 'Executor'; fields: [ExecutorConfigArgs] };\n\nexport function getConfigSerializer(): Serializer<ConfigArgs, Config> {\n return dataEnum<Config>(\n [\n [\n 'SendUln',\n struct<GetDataEnumKindContent<Config, 'SendUln'>>([\n ['fields', tuple([getUlnConfigSerializer()])],\n ]),\n ],\n [\n 'ReceiveUln',\n struct<GetDataEnumKindContent<Config, 'ReceiveUln'>>([\n ['fields', tuple([getUlnConfigSerializer()])],\n ]),\n ],\n [\n 'Executor',\n struct<GetDataEnumKindContent<Config, 'Executor'>>([\n ['fields', tuple([getExecutorConfigSerializer()])],\n ]),\n ],\n ],\n { description: 'Config' }\n ) as Serializer<ConfigArgs, Config>;\n}\n\n// Data Enum Helpers.\nexport function config(\n kind: 'SendUln',\n data: GetDataEnumKindContent<ConfigArgs, 'SendUln'>['fields']\n): GetDataEnumKind<ConfigArgs, 'SendUln'>;\nexport function config(\n kind: 'ReceiveUln',\n data: GetDataEnumKindContent<ConfigArgs, 'ReceiveUln'>['fields']\n): GetDataEnumKind<ConfigArgs, 'ReceiveUln'>;\nexport function config(\n kind: 'Executor',\n data: GetDataEnumKindContent<ConfigArgs, 'Executor'>['fields']\n): GetDataEnumKind<ConfigArgs, 'Executor'>;\nexport function config<K extends ConfigArgs['__kind']>(\n kind: K,\n data?: any\n): Extract<ConfigArgs, { __kind: K }> {\n return Array.isArray(data)\n ? { __kind: kind, fields: data }\n : { __kind: kind, ...(data ?? {}) };\n}\nexport function isConfig<K extends Config['__kind']>(\n kind: K,\n value: Config\n): value is Config & { __kind: K } {\n return value.__kind === kind;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type ExecutorConfig = { maxMessageSize: number; executor: PublicKey };\n\nexport type ExecutorConfigArgs = ExecutorConfig;\n\nexport function getExecutorConfigSerializer(): Serializer<\n ExecutorConfigArgs,\n ExecutorConfig\n> {\n return struct<ExecutorConfig>(\n [\n ['maxMessageSize', u32()],\n ['executor', publicKeySerializer()],\n ],\n { description: 'ExecutorConfig' }\n ) as Serializer<ExecutorConfigArgs, ExecutorConfig>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n publicKey as publicKeySerializer,\n struct,\n u64,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type LzTokenTreasury = { receiver: PublicKey; fee: bigint };\n\nexport type LzTokenTreasuryArgs = { receiver: PublicKey; fee: number | bigint };\n\nexport function getLzTokenTreasurySerializer(): Serializer<\n LzTokenTreasuryArgs,\n LzTokenTreasury\n> {\n return struct<LzTokenTreasury>(\n [\n ['receiver', publicKeySerializer()],\n ['fee', u64()],\n ],\n { description: 'LzTokenTreasury' }\n ) as Serializer<LzTokenTreasuryArgs, LzTokenTreasury>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Serializer, struct, u64 } from '@metaplex-foundation/umi/serializers';\n\nexport type MessagingFee = { nativeFee: bigint; lzTokenFee: bigint };\n\nexport type MessagingFeeArgs = {\n nativeFee: number | bigint;\n lzTokenFee: number | bigint;\n};\n\nexport function getMessagingFeeSerializer(): Serializer<\n MessagingFeeArgs,\n MessagingFee\n> {\n return struct<MessagingFee>(\n [\n ['nativeFee', u64()],\n ['lzTokenFee', u64()],\n ],\n { description: 'MessagingFee' }\n ) as Serializer<MessagingFeeArgs, MessagingFee>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type Packet = {\n nonce: bigint;\n srcEid: number;\n sender: PublicKey;\n dstEid: number;\n receiver: Uint8Array;\n guid: Uint8Array;\n message: Uint8Array;\n};\n\nexport type PacketArgs = {\n nonce: number | bigint;\n srcEid: number;\n sender: PublicKey;\n dstEid: number;\n receiver: Uint8Array;\n guid: Uint8Array;\n message: Uint8Array;\n};\n\nexport function getPacketSerializer(): Serializer<PacketArgs, Packet> {\n return struct<Packet>(\n [\n ['nonce', u64()],\n ['srcEid', u32()],\n ['sender', publicKeySerializer()],\n ['dstEid', u32()],\n ['receiver', bytes({ size: 32 })],\n ['guid', bytes({ size: 32 })],\n ['message', bytes({ size: u32() })],\n ],\n { description: 'Packet' }\n ) as Serializer<PacketArgs, Packet>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Option, OptionOrNullable, PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n option,\n publicKey as publicKeySerializer,\n struct,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n LzTokenTreasury,\n LzTokenTreasuryArgs,\n getLzTokenTreasurySerializer,\n} from '.';\n\nexport type Treasury = {\n admin: Option<PublicKey>;\n nativeReceiver: PublicKey;\n nativeFeeBps: bigint;\n lzToken: Option<LzTokenTreasury>;\n};\n\nexport type TreasuryArgs = {\n admin: OptionOrNullable<PublicKey>;\n nativeReceiver: PublicKey;\n nativeFeeBps: number | bigint;\n lzToken: OptionOrNullable<LzTokenTreasuryArgs>;\n};\n\nexport function getTreasurySerializer(): Serializer<TreasuryArgs, Treasury> {\n return struct<Treasury>(\n [\n ['admin', option(publicKeySerializer())],\n ['nativeReceiver', publicKeySerializer()],\n ['nativeFeeBps', u64()],\n ['lzToken', option(getLzTokenTreasurySerializer())],\n ],\n { description: 'Treasury' }\n ) as Serializer<TreasuryArgs, Treasury>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bool,\n publicKey as publicKeySerializer,\n struct,\n u64,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type TreasuryFee = {\n treasury: PublicKey;\n fee: bigint;\n payInLzToken: boolean;\n};\n\nexport type TreasuryFeeArgs = {\n treasury: PublicKey;\n fee: number | bigint;\n payInLzToken: boolean;\n};\n\nexport function getTreasuryFeeSerializer(): Serializer<\n TreasuryFeeArgs,\n TreasuryFee\n> {\n return struct<TreasuryFee>(\n [\n ['treasury', publicKeySerializer()],\n ['fee', u64()],\n ['payInLzToken', bool()],\n ],\n { description: 'TreasuryFee' }\n ) as Serializer<TreasuryFeeArgs, TreasuryFee>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n array,\n publicKey as publicKeySerializer,\n struct,\n u64,\n u8,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type UlnConfig = {\n confirmations: bigint;\n requiredDvnCount: number;\n optionalDvnCount: number;\n optionalDvnThreshold: number;\n requiredDvns: Array<PublicKey>;\n optionalDvns: Array<PublicKey>;\n};\n\nexport type UlnConfigArgs = {\n confirmations: number | bigint;\n requiredDvnCount: number;\n optionalDvnCount: number;\n optionalDvnThreshold: number;\n requiredDvns: Array<PublicKey>;\n optionalDvns: Array<PublicKey>;\n};\n\nexport function getUlnConfigSerializer(): Serializer<UlnConfigArgs, UlnConfig> {\n return struct<UlnConfig>(\n [\n ['confirmations', u64()],\n ['requiredDvnCount', u8()],\n ['optionalDvnCount', u8()],\n ['optionalDvnThreshold', u8()],\n ['requiredDvns', array(publicKeySerializer())],\n ['optionalDvns', array(publicKeySerializer())],\n ],\n { description: 'UlnConfig' }\n ) as Serializer<UlnConfigArgs, UlnConfig>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Serializer,\n struct,\n u64,\n u8,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type Version = { major: bigint; minor: number; endpointVersion: number };\n\nexport type VersionArgs = {\n major: number | bigint;\n minor: number;\n endpointVersion: number;\n};\n\nexport function getVersionSerializer(): Serializer<VersionArgs, Version> {\n return struct<Version>(\n [\n ['major', u64()],\n ['minor', u8()],\n ['endpointVersion', u8()],\n ],\n { description: 'Version' }\n ) as Serializer<VersionArgs, Version>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n publicKey as publicKeySerializer,\n struct,\n u64,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type WorkerFee = { worker: PublicKey; fee: bigint };\n\nexport type WorkerFeeArgs = { worker: PublicKey; fee: number | bigint };\n\nexport function getWorkerFeeSerializer(): Serializer<WorkerFeeArgs, WorkerFee> {\n return struct<WorkerFee>(\n [\n ['worker', publicKeySerializer()],\n ['fee', u64()],\n ],\n { description: 'WorkerFee' }\n ) as Serializer<WorkerFeeArgs, WorkerFee>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport { Config, ConfigArgs, getConfigSerializer } from '../types';\n\nexport type ConfigSetEvent = { oapp: PublicKey; eid: number; config: Config };\n\nexport type ConfigSetEventArgs = {\n oapp: PublicKey;\n eid: number;\n config: ConfigArgs;\n};\n\nexport function getConfigSetEventSerializer(): Serializer<\n ConfigSetEventArgs,\n ConfigSetEvent\n> {\n return struct<ConfigSetEvent>(\n [\n ['oapp', publicKeySerializer()],\n ['eid', u32()],\n ['config', getConfigSerializer()],\n ],\n { description: 'ConfigSetEvent' }\n ) as Serializer<ConfigSetEventArgs, ConfigSetEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Option, OptionOrNullable } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n option,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ExecutorConfig,\n ExecutorConfigArgs,\n UlnConfig,\n UlnConfigArgs,\n getExecutorConfigSerializer,\n getUlnConfigSerializer,\n} from '../types';\n\nexport type DefaultConfigSetEvent = {\n eid: number;\n sendUlnConfig: Option<UlnConfig>;\n receiveUlnConfig: Option<UlnConfig>;\n executorConfig: Option<ExecutorConfig>;\n};\n\nexport type DefaultConfigSetEventArgs = {\n eid: number;\n sendUlnConfig: OptionOrNullable<UlnConfigArgs>;\n receiveUlnConfig: OptionOrNullable<UlnConfigArgs>;\n executorConfig: OptionOrNullable<ExecutorConfigArgs>;\n};\n\nexport function getDefaultConfigSetEventSerializer(): Serializer<\n DefaultConfigSetEventArgs,\n DefaultConfigSetEvent\n> {\n return struct<DefaultConfigSetEvent>(\n [\n ['eid', u32()],\n ['sendUlnConfig', option(getUlnConfigSerializer())],\n ['receiveUlnConfig', option(getUlnConfigSerializer())],\n ['executorConfig', option(getExecutorConfigSerializer())],\n ],\n { description: 'DefaultConfigSetEvent' }\n ) as Serializer<DefaultConfigSetEventArgs, DefaultConfigSetEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Option, OptionOrNullable } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n array,\n option,\n struct,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n TreasuryFee,\n TreasuryFeeArgs,\n WorkerFee,\n WorkerFeeArgs,\n getTreasuryFeeSerializer,\n getWorkerFeeSerializer,\n} from '../types';\n\nexport type FeesPaidEvent = {\n executor: WorkerFee;\n dvns: Array<WorkerFee>;\n treasury: Option<TreasuryFee>;\n};\n\nexport type FeesPaidEventArgs = {\n executor: WorkerFeeArgs;\n dvns: Array<WorkerFeeArgs>;\n treasury: OptionOrNullable<TreasuryFeeArgs>;\n};\n\nexport function getFeesPaidEventSerializer(): Serializer<\n FeesPaidEventArgs,\n FeesPaidEvent\n> {\n return struct<FeesPaidEvent>(\n [\n ['executor', getWorkerFeeSerializer()],\n ['dvns', array(getWorkerFeeSerializer())],\n ['treasury', option(getTreasuryFeeSerializer())],\n ],\n { description: 'FeesPaidEvent' }\n ) as Serializer<FeesPaidEventArgs, FeesPaidEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n array,\n bytes,\n publicKey as publicKeySerializer,\n struct,\n u64,\n u8,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type PayloadVerifiedEvent = {\n dvn: PublicKey;\n header: Array<number>;\n confirmations: bigint;\n proofHash: Uint8Array;\n};\n\nexport type PayloadVerifiedEventArgs = {\n dvn: PublicKey;\n header: Array<number>;\n confirmations: number | bigint;\n proofHash: Uint8Array;\n};\n\nexport function getPayloadVerifiedEventSerializer(): Serializer<\n PayloadVerifiedEventArgs,\n PayloadVerifiedEvent\n> {\n return struct<PayloadVerifiedEvent>(\n [\n ['dvn', publicKeySerializer()],\n ['header', array(u8(), { size: 81 })],\n ['confirmations', u64()],\n ['proofHash', bytes({ size: 32 })],\n ],\n { description: 'PayloadVerifiedEvent' }\n ) as Serializer<PayloadVerifiedEventArgs, PayloadVerifiedEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { PublicKey } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n publicKey as publicKeySerializer,\n struct,\n u64,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type RentWithdrawnEvent = { receiver: PublicKey; amount: bigint };\n\nexport type RentWithdrawnEventArgs = {\n receiver: PublicKey;\n amount: number | bigint;\n};\n\nexport function getRentWithdrawnEventSerializer(): Serializer<\n RentWithdrawnEventArgs,\n RentWithdrawnEvent\n> {\n return struct<RentWithdrawnEvent>(\n [\n ['receiver', publicKeySerializer()],\n ['amount', u64()],\n ],\n { description: 'RentWithdrawnEvent' }\n ) as Serializer<RentWithdrawnEventArgs, RentWithdrawnEvent>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Option, OptionOrNullable } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n option,\n struct,\n} from '@metaplex-foundation/umi/serializers';\nimport { Treasury, TreasuryArgs, getTreasurySerializer } from '../types';\n\nexport type TreasurySetEvent = { treasury: Option<Treasury> };\n\nexport type TreasurySetEventArgs = { treasury: OptionOrNullable<TreasuryArgs> };\n\nexport function getTreasurySetEventSerializer(): Serializer<\n TreasurySetEventArgs,\n TreasurySetEvent\n> {\n return struct<TreasurySetEvent>(\n [['treasury', option(getTreasurySerializer())]],\n { description: 'TreasurySetEvent' }\n ) as Serializer<TreasurySetEventArgs, TreasurySetEvent>;\n}\n","import { Instruction, PublicKey, RpcInterface, WrappedInstruction, isPublicKey } from '@metaplex-foundation/umi'\nimport { Serializer, base58 } from '@metaplex-foundation/umi/serializers'\nimport { toWeb3JsInstruction, toWeb3JsPublicKey } from '@metaplex-foundation/umi-web3js-adapters'\nimport * as web3 from '@solana/web3.js'\n\nimport { sha2_256 } from '@layerzerolabs/lz-foundation'\n\nimport { EventEmitDiscriminator } from './endpoint'\nimport {\n ComposeDeliveredEvent,\n ComposeSentEvent,\n PacketDeliveredEvent,\n PacketSentEvent,\n PacketVerifiedEvent,\n getComposeDeliveredEventSerializer,\n getComposeSentEventSerializer,\n getPacketDeliveredEventSerializer,\n getPacketSentEventSerializer,\n getPacketVerifiedEventSerializer,\n} from './generated/kinobi/endpoint/events'\nimport { FeesPaidEvent, getFeesPaidEventSerializer } from './generated/kinobi/uln/events'\n\n/**\n * Gets the event discriminator for a given event.\n *\n * @param {string} event - The event name.\n * @returns {string} The event discriminator.\n */\nfunction getEventDiscriminator(event: string): string {\n /*\n https://book.anchor-lang.com/anchor_bts/discriminator.html\n sha256(namespace:eventName) namespace of cpi event is 'event'\n */\n return Buffer.from(sha2_256(`event:${event}`))\n .subarray(0, 8)\n .toString('hex')\n}\n\n/**\n * Extracts the sent packet event by transaction hash.\n *\n * @param {web3.Connection | RpcInterface} connection - The connection to the Solana cluster.\n * @param {PublicKey | web3.PublicKey} program - The program public key.\n * @param {web3.TransactionSignature | web3.ParsedTransactionWithMeta | null} signature - The transaction signature or parsed transaction.\n * @param {web3.Finality | web3.GetVersionedTransactionConfig} [commitment] - The commitment level.\n * @param {boolean} [unsafeParseErr=false] - Whether to parse the event even if the transaction failed.\n * @returns {Promise<PacketSentEvent[] | null>} A promise that resolves to an array of sent packet events or null if not found.\n */\nexport async function extractPacketSentEventByTxHash(\n connection: web3.Connection | RpcInterface,\n program: PublicKey | web3.PublicKey,\n signature: web3.TransactionSignature | web3.ParsedTransactionWithMeta | null,\n commitment?: web3.Finality | web3.GetVersionedTransactionConfig,\n unsafeParseErr = false\n): Promise<PacketSentEvent[] | null> {\n const events = await extractEventFromTransactionSignature(\n connection,\n program,\n signature,\n getPacketSentEventSerializer(),\n commitment,\n unsafeParseErr\n )\n if (!events) return null\n return events\n}\n\n/**\n * Extracts the verified packet event by transaction hash.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} program - The program public key.\n * @param {TransactionSignature | Awaited<ReturnType<typeof connection.getParsedTransaction>>} signature - The transaction signature or parsed transaction.\n * @param {Finality | GetVersionedTransactionConfig} [commitment] - The commitment level.\n * @param {boolean} [unsafeParseErr=false] - Whether to parse the event even if the transaction failed.\n * @returns {Promise<PacketVerifiedEvent[] | null>} A promise that resolves to an array of verified packet events or null if not found.\n */\nexport async function extractVerifiedPacketEventByTxHash(\n connection: web3.Connection | RpcInterface,\n program: PublicKey | web3.PublicKey,\n signature: web3.TransactionSignature | web3.ParsedTransactionWithMeta | null,\n commitment?: web3.Finality | web3.GetVersionedTransactionConfig,\n unsafeParseErr = false\n): Promise<PacketVerifiedEvent[] | null> {\n const events = await extractEventFromTransactionSignature(\n connection,\n program,\n signature,\n getPacketVerifiedEventSerializer(),\n commitment,\n unsafeParseErr\n )\n if (!events) return null\n return events\n}\n\n/**\n * Extracts the received packet event by transaction hash.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} program - The program public key.\n * @param {TransactionSignature | Awaited<ReturnType<typeof connection.getParsedTransaction>>} signature - The transaction signature or parsed transaction.\n * @param {Finality | GetVersionedTransactionConfig} [commitment] - The commitment level.\n * @param {boolean} [unsafeParseErr=false] - Whether to parse the event even if the transaction failed.\n * @returns {Promise<PacketDeliveredEvent[] | null>} A promise that resolves to an array of received packet events or null if not found.\n */\nexport async function extractReceivedPacketEventByTxHash(\n connection: web3.Connection | RpcInterface,\n program: PublicKey | web3.PublicKey,\n signature: web3.TransactionSignature | web3.ParsedTransactionWithMeta | null,\n commitment?: web3.Finality | web3.GetVersionedTransactionConfig,\n unsafeParseErr = false\n): Promise<PacketDeliveredEvent[] | null> {\n const events = await extractEventFromTransactionSignature(\n connection,\n program,\n signature,\n getPacketDeliveredEventSerializer(),\n commitment,\n unsafeParseErr\n )\n if (!events) return null\n return events\n}\n\n/**\n * Extracts the compose sent event by transaction hash.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} program - The program public key.\n * @param {TransactionSignature | Awaited<ReturnType<typeof connection.getParsedTransaction>>} signature - The transaction signature or parsed transaction.\n * @param {Finality | GetVersionedTransactionConfig} [commitment] - The commitment level.\n * @param {boolean} [unsafeParseErr=false] - Whether to parse the event even if the transaction failed.\n * @returns {Promise<ComposeSentEvent[] | null>} A promise that resolves to an array of compose sent events or null if not found.\n */\nexport async function extractComposeSentEventByTxHash(\n connection: web3.Connection | RpcInterface,\n program: PublicKey | web3.PublicKey,\n signature: web3.TransactionSignature | web3.ParsedTransactionWithMeta | null,\n commitment?: web3.Finality | web3.GetVersionedTransactionConfig,\n unsafeParseErr = false\n): Promise<ComposeSentEvent[] | null> {\n const events = await extractEventFromTransactionSignature(\n connection,\n program,\n signature,\n getComposeSentEventSerializer(),\n commitment,\n unsafeParseErr\n )\n if (!events) return null\n return events\n}\n\n/**\n * Extracts the compose delivered event by transaction hash.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} program - The program public key.\n * @param {TransactionSignature | Awaited<ReturnType<typeof connection.getParsedTransaction>>} signature - The transaction signature or parsed transaction.\n * @param {Finality | GetVersionedTransactionConfig} [commitment] - The commitment level.\n * @param {boolean} [unsafeParseErr=false] - Whether to parse the event even if the transaction failed.\n * @returns {Promise<ComposeDeliveredEvent[] | null>} A promise that resolves to an array of compose delivered events or null if not found.\n */\nexport async function extractComposeDeliveredEventByTxHash(\n connection: web3.Connection | RpcInterface,\n program: PublicKey | web3.PublicKey,\n signature: web3.TransactionSignature | web3.ParsedTransactionWithMeta | null,\n commitment?: web3.Finality | web3.GetVersionedTransactionConfig,\n unsafeParseErr = false\n): Promise<ComposeDeliveredEvent[] | null> {\n const events = await extractEventFromTransactionSignature(\n connection,\n program,\n signature,\n getComposeDeliveredEventSerializer(),\n commitment,\n unsafeParseErr\n )\n if (!events) return null\n return events\n}\n\n/**\n * Extracts the worker fee paid event by transaction hash.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} program - The program public key.\n * @param {TransactionSignature | Awaited<ReturnType<typeof connection.getParsedTransaction>>} signature - The transaction signature or parsed transaction.\n * @param {Finality | GetVersionedTransactionConfig} [commitment] - The commitment level.\n * @param {boolean} [unsafeParseErr=false] - Whether to parse the event even if the transaction failed.\n * @returns {Promise<FeesPaidEvent[] | null>} A promise that resolves to an array of worker fee paid events or null if not found.\n */\nexport async function extractWorkerFeePaidEventByTxHash(\n connection: web3.Connection | RpcInterface,\n program: PublicKey | web3.PublicKey,\n signature: web3.TransactionSignature | web3.ParsedTransactionWithMeta | null,\n commitment?: web3.Finality | web3.GetVersionedTransactionConfig,\n unsafeParseErr = false\n): Promise<FeesPaidEvent[] | null> {\n const events = await extractEventFromTransactionSignature(\n connection,\n program,\n signature,\n getFeesPaidEventSerializer(),\n commitment,\n unsafeParseErr\n )\n if (!events) return null\n return events\n}\n\n/**\n * Extracts events from a transaction signature.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} program - The program public key, extract event from specific program id\n * @param {TransactionSignature | Awaited<ReturnType<typeof connection.getParsedTransaction>>} signature - The transaction signature(tx hash) or parsed transaction.\n * @param {beet.FixableBeetArgsStruct<E> | beet.BeetArgsStruct<E>} eventBeet - The beet struct for the event.\n * @param {Finality | GetVersionedTransactionConfig} [commitment] - The commitment level.\n * @param {boolean} [unsafeParseErr=false] - Whether to parse the event even if the transaction failed. Default is false, only parse event if transaction succeeded. if true, will parse event even if transaction failed. Please set this to false if you want to ignore failed transaction and set `true` with caution as it may lead to unexpected behavior.\n * @returns {Promise<E[] | null>} A promise that resolves to an array of events or null if not found.\n */\nexport async function extractEventFromTransactionSignature<From, To extends From = From>(\n connection: web3.Connection | RpcInterface,\n _program: PublicKey | web3.PublicKey,\n signature: web3.TransactionSignature | web3.ParsedTransactionWithMeta | null,\n serializer: Serializer<From, To>,\n commitment?: web3.Finality | web3.GetVersionedTransactionConfig,\n unsafeParseErr = false\n): Promise<To[] | null> {\n let program: web3.PublicKey\n if (typeof _program === 'string' && isPublicKey(_program)) {\n program = toWeb3JsPublicKey(_program)\n } else {\n program = _program\n }\n let tx: web3.ParsedTransactionWithMeta | null\n if (typeof signature === 'string') {\n if (connection instanceof web3.Connection) {\n tx = await connection.getParsedTransaction(signature, commitment)\n } else if ('connection' in connection && connection.connection instanceof web3.Connection) {\n tx = await connection.connection.getParsedTransaction(signature, commitment)\n } else {\n throw new Error('Invalid connection')\n }\n } else {\n tx = signature\n }\n if (tx == null) return null\n const events = new Array<To>()\n // refer: https://solana.com/docs/rpc/http/gettransaction\n // tx.meta.err: Error if transaction failed, null if transaction succeeded\n if (tx.meta?.err !== null && !unsafeParseErr) {\n return null\n }\n for (const instruction of tx.meta?.innerInstructions ?? []) {\n for (const innerInstruction of instruction.instructions) {\n const inst = innerInstruction as web3.PartiallyDecodedInstruction\n if (!inst.programId.equals(program)) {\n continue\n }\n const decoded = base58.serialize(inst.data)\n const discriminator = Buffer.from(decoded.subarray(0, 8)).toString('hex')\n if (discriminator !== EventEmitDiscriminator) {\n continue\n }\n // get second 8 bits, filter event here\n const eventDiscriminator = Buffer.from(decoded.subarray(8, 16)).toString('hex')\n if (eventDiscriminator !== getEventDiscriminator(serializer.description)) {\n continue\n }\n events.push(serializer.deserialize(decoded, 16)[0])\n // const dataBuffer = Buffer.from(decoded.subarray(16, decoded.length))\n // if (eventBeet instanceof beet.FixableBeetArgsStruct) {\n // const beet = eventBeet.toFixedFromData(dataBuffer, 0)\n // events.push(beet.read(dataBuffer, 0))\n // } else {\n // events.push(eventBeet.read(dataBuffer, 0))\n // }\n }\n }\n return events.length > 0 ? events : null\n}\n\n/**\n * Generates an address lookup table.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} payer - The payer public key.\n * @param {PublicKey} authority - The authority public key.\n * @param {PublicKey[]} addresses - The addresses to include in the lookup table.\n * @returns {Promise<{ instructions: TransactionInstruction[]; address: PublicKey }>} A promise that resolves to the instructions and lookup table address.\n */\nexport async function generateAddressLookupTable(\n connection: web3.Connection,\n payer: web3.PublicKey,\n authority: web3.PublicKey,\n addresses: web3.PublicKey[]\n): Promise<{ instructions: web3.TransactionInstruction[]; address: web3.PublicKey }> {\n const slot = await connection.getSlot('finalized')\n const [createInstruction, lookupTableAddress] = web3.AddressLookupTableProgram.createLookupTable({\n payer,\n authority,\n recentSlot: slot,\n })\n const extendInstruction = web3.AddressLookupTableProgram.extendLookupTable({\n payer,\n authority,\n lookupTable: lookupTableAddress,\n addresses,\n })\n\n return {\n instructions: [createInstruction, extendInstruction],\n address: lookupTableAddress,\n }\n}\n\n/**\n * Deactivates an address lookup table.\n * To properly terminate the lookup table, it is advisable to initially invoke `deactivateLookupTable`,\n * pause for a duration of 500 blocks, and subsequently invoke `closeLookupTable`.\n *\n * @param {web3.PublicKey} authority - The authority public key.\n * @param {web3.PublicKey} lookupTable - The lookup table public key.\n * @returns {web3.TransactionInstruction} The transaction instruction.\n */\nexport function deactivateLookupTable(\n authority: web3.PublicKey,\n lookupTable: web3.PublicKey\n): web3.TransactionInstruction {\n return web3.AddressLookupTableProgram.deactivateLookupTable({\n authority,\n lookupTable,\n } satisfies web3.DeactivateLookupTableParams)\n}\n\n/**\n * Closes an address lookup table.\n * To properly terminate the lookup table, it is advisable to initially invoke `deactivateLookupTable`,\n * pause for a duration of 500 blocks, and subsequently invoke `closeLookupTable`.\n *\n * @param {PublicKey} recipient - The recipient public key.\n * @param {PublicKey} authority - The authority public key.\n * @param {PublicKey} lookupTable - The lookup table public key.\n * @returns {TransactionInstruction} The transaction instruction.\n */\nexport function closeLookupTable(\n recipient: web3.PublicKey,\n authority: web3.PublicKey,\n lookupTable: web3.PublicKey\n): web3.TransactionInstruction {\n return web3.AddressLookupTableProgram.closeLookupTable({\n authority,\n recipient,\n lookupTable,\n } satisfies web3.CloseLookupTableParams)\n}\n\n/**\n * Creates a versioned transaction with an address lookup table.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} payer - The payer public key.\n * @param {TransactionInstruction[]} instructions - The transaction instructions.\n * @param {Blockhash} [recentBlockHash] - The recent block hash.\n * @param {PublicKey} [tableAddr] - The address lookup table public key.\n * @returns {Promise<VersionedTransaction>} A promise that resolves to the versioned transaction.\n */\nexport async function txWithAddressLookupTable(\n connection: web3.Connection,\n payer: web3.PublicKey,\n instructions: web3.TransactionInstruction[],\n recentBlockHash?: web3.Blockhash,\n tableAddr?: web3.PublicKey\n): Promise<web3.VersionedTransaction> {\n recentBlockHash = recentBlockHash ?? (await connection.getLatestBlockhash()).blockhash\n if (!tableAddr) {\n return new web3.VersionedTransaction(\n new web3.TransactionMessage({\n instructions,\n payerKey: payer,\n recentBlockhash: recentBlockHash,\n }).compileToV0Message()\n )\n }\n const { value: lookupTableAccount } = await connection.getAddressLookupTable(tableAddr)\n return new web3.VersionedTransaction(\n new web3.TransactionMessage({\n instructions,\n payerKey: payer,\n recentBlockhash: recentBlockHash,\n }).compileToV0Message(lookupTableAccount ? [lookupTableAccount] : undefined)\n )\n}\n\n/**\n * Creates a nonce account transaction.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} auth - The authorized public key.\n * @param {number} [lamportsForRent] - The lamports for rent.\n * @returns {Promise<{ tx: Transaction; nonceAccount: Keypair }>} A promise that resolves to the transaction and nonce account.\n */\nexport async function createNonceAccountTX(\n connection: web3.Connection,\n auth: web3.PublicKey,\n lamportsForRent?: number\n): Promise<{ tx: web3.Transaction; nonceAccount: web3.Keypair }> {\n const nonceAccount = web3.Keypair.generate()\n\n const lamports = lamportsForRent ?? (await connection.getMinimumBalanceForRentExemption(web3.NONCE_ACCOUNT_LENGTH))\n\n const tx = new web3.Transaction()\n tx.add(\n // create nonce account\n web3.SystemProgram.createAccount({\n fromPubkey: auth,\n newAccountPubkey: nonceAccount.publicKey,\n lamports,\n space: web3.NONCE_ACCOUNT_LENGTH,\n programId: web3.SystemProgram.programId,\n }),\n // init nonce account\n web3.SystemProgram.nonceInitialize({\n noncePubkey: nonceAccount.publicKey, // nonce account pubkey\n authorizedPubkey: auth, // nonce account auth\n })\n )\n return { tx, nonceAccount }\n}\n\n/**\n * Creates a transaction with a nonce.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} noncePubkey - The nonce public key.\n * @param {TransactionInstruction[]} instructions - The transaction instructions.\n * @param {NonceAccount} [nonceInfo] - The nonce account information.\n * @returns {Promise<Transaction | null>} A promise that resolves to the transaction or null if not found.\n */\nexport async function txWithNonce(\n connection: web3.Connection,\n noncePubkey: web3.PublicKey,\n instructions: web3.TransactionInstruction[],\n nonceInfo?: web3.NonceAccount\n): Promise<web3.Transaction | null> {\n const tx = new web3.Transaction()\n\n if (!nonceInfo) {\n const accountInfo = await connection.getAccountInfo(noncePubkey)\n if (accountInfo) {\n nonceInfo = web3.NonceAccount.fromAccountData(accountInfo.data)\n } else {\n return null\n }\n }\n\n tx.add(\n // nonce advance must be the first insturction\n web3.SystemProgram.nonceAdvance({\n noncePubkey: noncePubkey,\n authorizedPubkey: nonceInfo.authorizedPubkey,\n })\n )\n tx.add(...instructions)\n tx.recentBlockhash = nonceInfo.nonce\n return tx\n}\n\n/**\n * Checks if an account is initialized.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} account - The account public key.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - The commitment level or account info configuration.\n * @returns {Promise<boolean>} A promise that resolves to true if the account is initialized, false otherwise.\n */\nexport async function isAccountInitialized(\n connection: web3.Connection,\n account: web3.PublicKey,\n commitmentOrConfig?: web3.Commitment | web3.GetAccountInfoConfig\n): Promise<boolean> {\n return connection.getAccountInfo(account, commitmentOrConfig).then((res) => {\n return res !== null\n })\n}\n\n/**\n * Builds a version 0 message.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} payerKey - The payer public key.\n * @param {TransactionInstruction[]} instructions - The transaction instructions.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig='confirmed'] - The commitment level or account info configuration.\n * @param {Blockhash} [blockhash] - The blockhash.\n * @returns {Promise<MessageV0>} A promise that resolves to the version 0 message.\n */\nexport async function buildMessageV0(\n connection: web3.Connection,\n payerKey: web3.PublicKey,\n instructions: web3.TransactionInstruction[],\n commitmentOrConfig: web3.Commitment | web3.GetAccountInfoConfig = 'confirmed',\n blockhash?: web3.Blockhash\n): Promise<web3.MessageV0> {\n return new web3.TransactionMessage({\n payerKey: payerKey,\n recentBlockhash: blockhash ?? (await connection.getLatestBlockhash(commitmentOrConfig)).blockhash,\n instructions: instructions,\n }).compileToV0Message()\n}\n\n/**\n * Builds a versioned transaction.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} payerKey - The payer public key.\n * @param {TransactionInstruction[]} instructions - The transaction instructions.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig='confirmed'] - The commitment level or account info configuration.\n * @param {Blockhash} [blockhash] - The blockhash.\n * @param {PublicKey} [lookupTableAddress] - The lookup table address.\n * @returns {Promise<VersionedTransaction>} A promise that resolves to the versioned transaction.\n */\nexport async function buildVersionedTransaction(\n connection: web3.Connection,\n payerKey: web3.PublicKey,\n instructions: web3.TransactionInstruction[],\n commitmentOrConfig: web3.Commitment | web3.GetAccountInfoConfig = 'confirmed',\n blockhash?: web3.Blockhash,\n lookupTableAddress?: web3.PublicKey\n): Promise<web3.VersionedTransaction> {\n if (lookupTableAddress) {\n return txWithAddressLookupTable(connection, payerKey, instructions, blockhash, lookupTableAddress)\n }\n return new web3.VersionedTransaction(\n await buildMessageV0(connection, payerKey, instructions, commitmentOrConfig, blockhash)\n )\n}\n\n/**\n * Generates an instruction discriminator.\n *\n * @param {string} method - The method name.\n * @returns {Buffer} The instruction discriminator.\n */\nexport function instructionDiscriminator(method: string): Buffer {\n return Buffer.from(sha2_256(Buffer.from(`global:${method}`))).subarray(0, 8)\n}\n\n/**\n * Simulates a transaction.\n *\n * @param {string | web3.Connection | RpcInterface} _connection - The connection to the Solana cluster.\n * @param {web3.TransactionInstruction[] | WrappedInstruction[] | Instruction[]} _instructions - The transaction instructions.\n * @param {web3.PublicKey | PublicKey} _programId - The program public key.\n * @param {web3.PublicKey | PublicKey} _payer - The payer public key.\n * @param {Serializer<From, To>} serializer - The serializer.\n * @param {web3.Commitment} [commitment='confirmed'] - The commitment level.\n * @param {web3.Blockhash} [blockhash] - The blockhash.\n * @param {web3.PublicKey | PublicKey} [_lookupTableAddress] - The lookup table address.\n * @returns {Promise<Buffer>} A promise that resolves to the simulation result.\n * @throws {Error} If the simulation fails.\n */\nexport async function simulateWeb3JsTransaction<From, To extends From = From>(\n _connection: string | web3.Connection | RpcInterface,\n _instructions: web3.TransactionInstruction[] | WrappedInstruction[] | Instruction[],\n _programId: web3.PublicKey | PublicKey,\n _payer: web3.PublicKey | PublicKey,\n serializer: Serializer<From, To>,\n commitment: web3.Commitment = 'confirmed',\n blockhash?: web3.Blockhash,\n _lookupTableAddress?: web3.PublicKey | PublicKey\n): Promise<To> {\n let connection: web3.Connection\n if (typeof _connection === 'string') {\n connection = new web3.Connection(_connection, commitment)\n } else if (_connection instanceof web3.Connection) {\n connection = _connection\n } else if ('connection' in _connection && _connection.connection instanceof web3.Connection) {\n ;({ connection } = _connection)\n } else {\n throw new Error('Invalid connection')\n }\n\n let instructions: web3.TransactionInstruction[]\n if (_instructions.length === 0) {\n throw new Error('Instructions cannot be empty')\n }\n if (_instructions[0] instanceof web3.TransactionInstruction) {\n instructions = _instructions as web3.TransactionInstruction[]\n } else if ('bytesCreatedOnChain' in _instructions[0]) {\n instructions = (_instructions as WrappedInstruction[]).map((i) => toWeb3JsInstruction(i.instruction))\n } else {\n instructions = (_instructions as Instruction[]).map((i) => toWeb3JsInstruction(i))\n }\n\n let programId: web3.PublicKey\n if (_programId instanceof web3.PublicKey) {\n programId = _programId\n } else {\n programId = toWeb3JsPublicKey(_programId)\n }\n\n let payer: web3.PublicKey\n if (_payer instanceof web3.PublicKey) {\n payer = _payer\n } else {\n payer = toWeb3JsPublicKey(_payer)\n }\n\n let lookupTableAddress: web3.PublicKey | undefined\n if (_lookupTableAddress) {\n if (_lookupTableAddress instanceof web3.PublicKey) {\n lookupTableAddress = _lookupTableAddress\n } else {\n lookupTableAddress = toWeb3JsPublicKey(_lookupTableAddress)\n }\n }\n\n const tx = await buildVersionedTransaction(\n connection,\n payer,\n instructions,\n commitment,\n blockhash,\n lookupTableAddress\n )\n const simulateResp = await connection.simulateTransaction(tx, { sigVerify: false, commitment })\n const returnPrefix = `Program return: ${programId.toBase58()} `\n const returnLog = simulateResp.value.logs?.find((l) => l.startsWith(returnPrefix))\n if (returnLog === undefined || simulateResp.value.returnData?.programId !== programId.toBase58()) {\n throw new Error(`Simulate Fail: ${JSON.stringify(simulateResp)}`)\n } else {\n const resp = Buffer.from(returnLog.slice(returnPrefix.length), 'base64')\n return serializer.deserialize(resp, 0)[0]\n }\n}\n","import {\n AccountMeta,\n Commitment,\n Instruction,\n PublicKey,\n RpcInterface,\n defaultPublicKey,\n publicKey,\n} from '@metaplex-foundation/umi'\nimport { array, publicKey as publicKeySerializer } from '@metaplex-foundation/umi/serializers'\nimport { toWeb3JsInstruction, toWeb3JsPublicKey } from '@metaplex-foundation/umi-web3js-adapters'\nimport invariant from 'tiny-invariant'\n\nimport { arrayify } from '@layerzerolabs/lz-utilities'\nimport { Packet, addressToBytes32 } from '@layerzerolabs/lz-v2-utilities'\n\nimport { OmniAppPDA } from '.'\nimport { ComposeSentEvent } from './generated/kinobi/endpoint/events'\nimport {\n LzComposeParams,\n LzReceiveParams,\n getLzComposeParamsSerializer,\n getLzReceiveAccountSerializer,\n getLzReceiveParamsSerializer,\n} from './types'\nimport { instructionDiscriminator, simulateWeb3JsTransaction } from './utility'\n\n/**\n * Receives a LayerZero message.\n *\n * @param {Connection} connection - The Solana connection object.\n * @param {PublicKey} payer - The public key of the payer.\n * @param {Packet} packet - The packet containing the message.\n * @param {Uint8Array} [callerParams] - Optional caller parameters.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - Optional commitment or configuration.\n *\n * @returns {Promise<TransactionInstruction>} The transaction instruction.\n */\nexport async function lzReceive(\n rpc: RpcInterface,\n payer: PublicKey,\n packet: Pick<Packet, 'message' | 'sender' | 'srcEid' | 'guid' | 'receiver' | 'nonce'>,\n callerParams: Uint8Array = Uint8Array.from([0, 0]),\n commitment: Commitment = 'confirmed'\n): Promise<Instruction> {\n const { message: message_, sender: sender, srcEid, guid, receiver: receiver_ } = packet\n const receiver = publicKey(addressToBytes32(receiver_))\n const message = arrayify(message_)\n const params: LzReceiveParams = {\n srcEid: srcEid,\n sender: arrayify(sender),\n guid: arrayify(guid),\n message,\n callerParams,\n nonce: BigInt(packet.nonce),\n }\n const receiverInfo = await rpc.getAccount(receiver, { commitment })\n invariant(receiverInfo.exists, `Receiver account not found: ${receiver}`)\n const receiverProgram = publicKey(receiverInfo.owner)\n const accounts = await getLzReceiveAccounts(rpc, payer, receiver, receiverProgram, params, commitment)\n\n const MSG_TYPE_OFFSET = 0\n // const msgType: string = message[MSG_TYPE_OFFSET].toString()\n // if (msgType !== MessageType.COMPOSED_TYPE.toString() && msgType !== MessageType.VANILLA.toString()) {\n // throw new Error(`Invalid message type ${msgType}`)\n // }\n\n const data = getLzReceiveParamsSerializer().serialize(params)\n return {\n programId: receiverProgram,\n keys: accounts,\n data: Buffer.concat([instructionDiscriminator('lz_receive'), data]),\n }\n}\n\n/**\n * Composes a LayerZero message.\n *\n * @param {Connection} connection - The Solana connection object.\n * @param {PublicKey} payer - The public key of the payer.\n * @param {ComposeSentEvent} event - The event containing the message details.\n * @param {Uint8Array} [extraData] - Optional extra data.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - Optional commitment or configuration.\n *\n * @returns {Promise<TransactionInstruction>} The transaction instruction.\n */\nexport async function lzCompose(\n rpc: RpcInterface,\n payer: PublicKey,\n event: ComposeSentEvent,\n extraData: Uint8Array = Uint8Array.from([0, 0]),\n commitment: Commitment = 'confirmed'\n): Promise<Instruction> {\n const { to, from, guid, index, message } = event\n const params: LzComposeParams = {\n from,\n to,\n guid,\n index,\n message,\n extraData,\n }\n const accountInfo = await rpc.getAccount(to, { commitment })\n if (!accountInfo.exists) {\n throw new Error(`Account not found: ${to}`)\n }\n const programId = accountInfo.owner\n const accounts = await getLzComposeAccountMeta(rpc, payer, to, programId, params, commitment)\n\n const data = getLzComposeParamsSerializer().serialize(params)\n return {\n programId,\n keys: accounts,\n data: Buffer.concat([instructionDiscriminator('lz_compose'), data]),\n }\n}\n\n/// LzReceiveTypes instruction provides a list of accounts that are used in the LzReceive\n/// instruction. The list of accounts required by this LzReceiveTypes instruction can be found\n/// from the specific PDA account that is generated by the LZ_RECEIVE_TYPES_SEED.\n/**\n * Retrieves the accounts required for the LzReceive instruction.\n *\n * @param {Connection} connection - The Solana connection object.\n * @param {PublicKey} payer - The public key of the payer.\n * @param {PublicKey} receiver - The public key of the receiver.\n * @param {PublicKey} receiverProgram - The public key of the receiver program.\n * @param {LzReceiveParams} params - The parameters for the LzReceive instruction.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - Optional commitment or configuration.\n *\n * @returns {Promise<AccountMeta[]>} The list of account metadata.\n */\nexport async function getLzReceiveAccounts(\n rpc: RpcInterface,\n payer: PublicKey,\n receiver: PublicKey,\n receiverProgram: PublicKey,\n params: LzReceiveParams,\n commitment: Commitment = 'confirmed'\n): Promise<AccountMeta[]> {\n const lzReceiveTypesAccounts = await (async (): Promise<AccountMeta[]> => {\n const oappPDA = new OmniAppPDA(receiverProgram)\n const [lzReceiveTypesAccountsPDA] = oappPDA.lzReceiveTypesAccounts(receiver)\n // const [lzReceiveTypesAccountsPDA] = deriveLzReceiveTypesAccountsPDA(receiverProgram, receiver)\n // Get the lzReceiveTypesAccounts. Deserialize the AccountInfo.data to get the lzReceiveTypesAccounts.\n const info = await rpc.getAccount(lzReceiveTypesAccountsPDA, { commitment })\n const accounts = []\n if (info.exists) {\n const buffer = Buffer.from(info.data)\n const len = buffer.length - 8\n if (len % 32 !== 0) {\n throw new Error(\n `Invalid length of AccountInfo.data. The length must be a multiple of 32 plus 8.(n*32+8). Current length is ${buffer.length}`\n )\n }\n // const serializer = array(publicKeySerializer())\n // const [addresses] = serializer.deserialize(buffer, 8)\n // for (const address of addresses) {\n // accounts.push({\n // pubkey: address,\n // isSigner: false,\n // isWritable: false,\n // })\n // }\n for (let i = 8; i < len; i += 32) {\n const [address] = publicKeySerializer().deserialize(buffer, i)\n accounts.push({\n pubkey: address,\n isSigner: false,\n isWritable: false,\n })\n }\n }\n return accounts\n })()\n\n const data = getLzReceiveParamsSerializer().serialize(params)\n const lzReceiveTypesIx: Instruction = {\n programId: receiverProgram,\n keys: lzReceiveTypesAccounts,\n data: Buffer.concat([instructionDiscriminator('lz_receive_types'), data]),\n }\n const keys = await simulateWeb3JsTransaction(\n rpc.getEndpoint(),\n [toWeb3JsInstruction(lzReceiveTypesIx)],\n toWeb3JsPublicKey(receiverProgram),\n toWeb3JsPublicKey(payer),\n array(getLzReceiveAccountSerializer()),\n 'confirmed'\n )\n return updateAccountFromSimulatedResp(keys, payer)\n}\n\n/**\n * Retrieves the accounts required for the LzCompose instruction.\n *\n * @param {Connection} connection - The Solana connection object.\n * @param {PublicKey} payer - The public key of the payer.\n * @param {PublicKey} to - The public key of the recipient.\n * @param {PublicKey} composerProgram - The public key of the composer program.\n * @param {LzComposeParams} params - The parameters for the LzCompose instruction.\n * @param {Commitment | GetAccountInfoConfig} [commitmentOrConfig] - Optional commitment or configuration.\n *\n * @returns {Promise<AccountMeta[]>} The list of account metadata.\n */\nexport async function getLzComposeAccountMeta(\n rpc: RpcInterface,\n payer: PublicKey,\n to: PublicKey,\n composerProgram: PublicKey,\n params: LzComposeParams,\n commitment: Commitment = 'confirmed'\n): Promise<AccountMeta[]> {\n const lzComposeTypesAccounts = await (async (): Promise<AccountMeta[]> => {\n const oappPDA = new OmniAppPDA(composerProgram)\n const [lzComposeTypesAccountsPDA] = oappPDA.lzComposeTypesAccounts(to)\n // const [lzComposeTypesAccountsPDA] = deriveLzComposeTypesAccountsPDA(composerProgram, to)\n // Get the lzReceiveTypesAccounts. Deserialize the AccountInfo.data to get the lzComposeTypesAccounts.\n const info = await rpc.getAccount(lzComposeTypesAccountsPDA, { commitment })\n const accounts = []\n if (info.exists) {\n const buffer = Buffer.from(info.data)\n const len = buffer.length - 8\n if (len % 32 !== 0) {\n throw new Error(\n `Invalid length of AccountInfo.data. The length must be a multiple of 32 plus 8.(n*32+8). Current length is ${buffer.length}`\n )\n }\n // const serializer = array(publicKeySerializer())\n // const [addresses] = serializer.deserialize(buffer, 8)\n // for (const address of addresses) {\n // accounts.push({\n // pubkey: address,\n // isSigner: false,\n // isWritable: false,\n // })\n // }\n for (let i = 8; i < len; i += 32) {\n const [address] = publicKeySerializer().deserialize(buffer, i)\n accounts.push({\n pubkey: address,\n isSigner: false,\n isWritable: false,\n })\n }\n }\n return accounts\n })()\n\n const data = getLzComposeParamsSerializer().serialize(params)\n const lzComposeTypesIx: Instruction = {\n programId: composerProgram,\n keys: lzComposeTypesAccounts,\n data: Buffer.concat([instructionDiscriminator('lz_compose_types'), data]),\n }\n\n const keys = await simulateWeb3JsTransaction(\n rpc.getEndpoint(),\n [toWeb3JsInstruction(lzComposeTypesIx)],\n toWeb3JsPublicKey(composerProgram),\n toWeb3JsPublicKey(payer),\n array(getLzReceiveAccountSerializer()),\n 'confirmed'\n )\n return updateAccountFromSimulatedResp(keys, payer)\n}\n\nfunction updateAccountFromSimulatedResp(accounts: AccountMeta[], payer?: PublicKey): AccountMeta[] {\n return accounts.map((r) => {\n if (r.pubkey == defaultPublicKey() && r.isSigner) {\n if (!payer) throw new Error('payer is required')\n return {\n pubkey: payer,\n isSigner: true,\n isWritable: r.isWritable,\n } satisfies AccountMeta\n } else {\n return {\n pubkey: r.pubkey,\n isSigner: r.isSigner,\n isWritable: r.isWritable,\n } satisfies AccountMeta\n }\n })\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './confirmations';\nexport * from './receiveConfig';\nexport * from './sendConfig';\nexport * from './ulnSettings';\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Account,\n Context,\n Option,\n OptionOrNullable,\n Pda,\n PublicKey,\n RpcAccount,\n RpcGetAccountOptions,\n RpcGetAccountsOptions,\n assertAccountExists,\n deserializeAccount,\n gpaBuilder,\n publicKey as toPublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n option,\n struct,\n u64,\n u8,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type Confirmations = Account<ConfirmationsAccountData>;\n\nexport type ConfirmationsAccountData = {\n discriminator: Uint8Array;\n value: Option<bigint>;\n bump: number;\n};\n\nexport type ConfirmationsAccountDataArgs = {\n value: OptionOrNullable<number | bigint>;\n bump: number;\n};\n\nexport function getConfirmationsAccountDataSerializer(): Serializer<\n ConfirmationsAccountDataArgs,\n ConfirmationsAccountData\n> {\n return mapSerializer<\n ConfirmationsAccountDataArgs,\n any,\n ConfirmationsAccountData\n >(\n struct<ConfirmationsAccountData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['value', option(u64())],\n ['bump', u8()],\n ],\n { description: 'ConfirmationsAccountData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([206, 57, 50, 8, 124, 133, 138, 112]),\n })\n ) as Serializer<ConfirmationsAccountDataArgs, ConfirmationsAccountData>;\n}\n\nexport function deserializeConfirmations(\n rawAccount: RpcAccount\n): Confirmations {\n return deserializeAccount(\n rawAccount,\n getConfirmationsAccountDataSerializer()\n );\n}\n\nexport async function fetchConfirmations(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<Confirmations> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n assertAccountExists(maybeAccount, 'Confirmations');\n return deserializeConfirmations(maybeAccount);\n}\n\nexport async function safeFetchConfirmations(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<Confirmations | null> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n return maybeAccount.exists ? deserializeConfirmations(maybeAccount) : null;\n}\n\nexport async function fetchAllConfirmations(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<Confirmations[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts.map((maybeAccount) => {\n assertAccountExists(maybeAccount, 'Confirmations');\n return deserializeConfirmations(maybeAccount);\n });\n}\n\nexport async function safeFetchAllConfirmations(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<Confirmations[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts\n .filter((maybeAccount) => maybeAccount.exists)\n .map((maybeAccount) =>\n deserializeConfirmations(maybeAccount as RpcAccount)\n );\n}\n\nexport function getConfirmationsGpaBuilder(\n context: Pick<Context, 'rpc' | 'programs'>\n) {\n const programId = context.programs.getPublicKey(\n 'uln',\n '7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH'\n );\n return gpaBuilder(context, programId)\n .registerFields<{\n discriminator: Uint8Array;\n value: OptionOrNullable<number | bigint>;\n bump: number;\n }>({\n discriminator: [0, bytes({ size: 8 })],\n value: [8, option(u64())],\n bump: [null, u8()],\n })\n .deserializeUsing<Confirmations>((account) =>\n deserializeConfirmations(account)\n )\n .whereField(\n 'discriminator',\n new Uint8Array([206, 57, 50, 8, 124, 133, 138, 112])\n );\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Account,\n Context,\n Pda,\n PublicKey,\n RpcAccount,\n RpcGetAccountOptions,\n RpcGetAccountsOptions,\n assertAccountExists,\n deserializeAccount,\n gpaBuilder,\n publicKey as toPublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n u8,\n} from '@metaplex-foundation/umi/serializers';\nimport { UlnConfig, UlnConfigArgs, getUlnConfigSerializer } from '../types';\n\nexport type ReceiveConfig = Account<ReceiveConfigAccountData>;\n\nexport type ReceiveConfigAccountData = {\n discriminator: Uint8Array;\n bump: number;\n uln: UlnConfig;\n};\n\nexport type ReceiveConfigAccountDataArgs = { bump: number; uln: UlnConfigArgs };\n\nexport function getReceiveConfigAccountDataSerializer(): Serializer<\n ReceiveConfigAccountDataArgs,\n ReceiveConfigAccountData\n> {\n return mapSerializer<\n ReceiveConfigAccountDataArgs,\n any,\n ReceiveConfigAccountData\n >(\n struct<ReceiveConfigAccountData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['bump', u8()],\n ['uln', getUlnConfigSerializer()],\n ],\n { description: 'ReceiveConfigAccountData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([162, 159, 153, 188, 56, 65, 245, 58]),\n })\n ) as Serializer<ReceiveConfigAccountDataArgs, ReceiveConfigAccountData>;\n}\n\nexport function deserializeReceiveConfig(\n rawAccount: RpcAccount\n): ReceiveConfig {\n return deserializeAccount(\n rawAccount,\n getReceiveConfigAccountDataSerializer()\n );\n}\n\nexport async function fetchReceiveConfig(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<ReceiveConfig> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n assertAccountExists(maybeAccount, 'ReceiveConfig');\n return deserializeReceiveConfig(maybeAccount);\n}\n\nexport async function safeFetchReceiveConfig(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<ReceiveConfig | null> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n return maybeAccount.exists ? deserializeReceiveConfig(maybeAccount) : null;\n}\n\nexport async function fetchAllReceiveConfig(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<ReceiveConfig[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts.map((maybeAccount) => {\n assertAccountExists(maybeAccount, 'ReceiveConfig');\n return deserializeReceiveConfig(maybeAccount);\n });\n}\n\nexport async function safeFetchAllReceiveConfig(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<ReceiveConfig[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts\n .filter((maybeAccount) => maybeAccount.exists)\n .map((maybeAccount) =>\n deserializeReceiveConfig(maybeAccount as RpcAccount)\n );\n}\n\nexport function getReceiveConfigGpaBuilder(\n context: Pick<Context, 'rpc' | 'programs'>\n) {\n const programId = context.programs.getPublicKey(\n 'uln',\n '7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH'\n );\n return gpaBuilder(context, programId)\n .registerFields<{\n discriminator: Uint8Array;\n bump: number;\n uln: UlnConfigArgs;\n }>({\n discriminator: [0, bytes({ size: 8 })],\n bump: [8, u8()],\n uln: [9, getUlnConfigSerializer()],\n })\n .deserializeUsing<ReceiveConfig>((account) =>\n deserializeReceiveConfig(account)\n )\n .whereField(\n 'discriminator',\n new Uint8Array([162, 159, 153, 188, 56, 65, 245, 58])\n );\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Account,\n Context,\n Pda,\n PublicKey,\n RpcAccount,\n RpcGetAccountOptions,\n RpcGetAccountsOptions,\n assertAccountExists,\n deserializeAccount,\n gpaBuilder,\n publicKey as toPublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n u8,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ExecutorConfig,\n ExecutorConfigArgs,\n UlnConfig,\n UlnConfigArgs,\n getExecutorConfigSerializer,\n getUlnConfigSerializer,\n} from '../types';\n\nexport type SendConfig = Account<SendConfigAccountData>;\n\nexport type SendConfigAccountData = {\n discriminator: Uint8Array;\n bump: number;\n uln: UlnConfig;\n executor: ExecutorConfig;\n};\n\nexport type SendConfigAccountDataArgs = {\n bump: number;\n uln: UlnConfigArgs;\n executor: ExecutorConfigArgs;\n};\n\nexport function getSendConfigAccountDataSerializer(): Serializer<\n SendConfigAccountDataArgs,\n SendConfigAccountData\n> {\n return mapSerializer<SendConfigAccountDataArgs, any, SendConfigAccountData>(\n struct<SendConfigAccountData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['bump', u8()],\n ['uln', getUlnConfigSerializer()],\n ['executor', getExecutorConfigSerializer()],\n ],\n { description: 'SendConfigAccountData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([91, 221, 135, 137, 131, 199, 174, 25]),\n })\n ) as Serializer<SendConfigAccountDataArgs, SendConfigAccountData>;\n}\n\nexport function deserializeSendConfig(rawAccount: RpcAccount): SendConfig {\n return deserializeAccount(rawAccount, getSendConfigAccountDataSerializer());\n}\n\nexport async function fetchSendConfig(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<SendConfig> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n assertAccountExists(maybeAccount, 'SendConfig');\n return deserializeSendConfig(maybeAccount);\n}\n\nexport async function safeFetchSendConfig(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<SendConfig | null> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n return maybeAccount.exists ? deserializeSendConfig(maybeAccount) : null;\n}\n\nexport async function fetchAllSendConfig(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<SendConfig[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts.map((maybeAccount) => {\n assertAccountExists(maybeAccount, 'SendConfig');\n return deserializeSendConfig(maybeAccount);\n });\n}\n\nexport async function safeFetchAllSendConfig(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<SendConfig[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts\n .filter((maybeAccount) => maybeAccount.exists)\n .map((maybeAccount) => deserializeSendConfig(maybeAccount as RpcAccount));\n}\n\nexport function getSendConfigGpaBuilder(\n context: Pick<Context, 'rpc' | 'programs'>\n) {\n const programId = context.programs.getPublicKey(\n 'uln',\n '7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH'\n );\n return gpaBuilder(context, programId)\n .registerFields<{\n discriminator: Uint8Array;\n bump: number;\n uln: UlnConfigArgs;\n executor: ExecutorConfigArgs;\n }>({\n discriminator: [0, bytes({ size: 8 })],\n bump: [8, u8()],\n uln: [9, getUlnConfigSerializer()],\n executor: [null, getExecutorConfigSerializer()],\n })\n .deserializeUsing<SendConfig>((account) => deserializeSendConfig(account))\n .whereField(\n 'discriminator',\n new Uint8Array([91, 221, 135, 137, 131, 199, 174, 25])\n );\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Account,\n Context,\n Option,\n OptionOrNullable,\n Pda,\n PublicKey,\n RpcAccount,\n RpcGetAccountOptions,\n RpcGetAccountsOptions,\n assertAccountExists,\n deserializeAccount,\n gpaBuilder,\n publicKey as toPublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n option,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u8,\n} from '@metaplex-foundation/umi/serializers';\nimport { Treasury, TreasuryArgs, getTreasurySerializer } from '../types';\n\nexport type UlnSettings = Account<UlnSettingsAccountData>;\n\nexport type UlnSettingsAccountData = {\n discriminator: Uint8Array;\n eid: number;\n endpoint: PublicKey;\n endpointProgram: PublicKey;\n bump: number;\n admin: PublicKey;\n treasury: Option<Treasury>;\n};\n\nexport type UlnSettingsAccountDataArgs = {\n eid: number;\n endpoint: PublicKey;\n endpointProgram: PublicKey;\n bump: number;\n admin: PublicKey;\n treasury: OptionOrNullable<TreasuryArgs>;\n};\n\nexport function getUlnSettingsAccountDataSerializer(): Serializer<\n UlnSettingsAccountDataArgs,\n UlnSettingsAccountData\n> {\n return mapSerializer<UlnSettingsAccountDataArgs, any, UlnSettingsAccountData>(\n struct<UlnSettingsAccountData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['eid', u32()],\n ['endpoint', publicKeySerializer()],\n ['endpointProgram', publicKeySerializer()],\n ['bump', u8()],\n ['admin', publicKeySerializer()],\n ['treasury', option(getTreasurySerializer())],\n ],\n { description: 'UlnSettingsAccountData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([226, 199, 100, 253, 38, 115, 167, 154]),\n })\n ) as Serializer<UlnSettingsAccountDataArgs, UlnSettingsAccountData>;\n}\n\nexport function deserializeUlnSettings(rawAccount: RpcAccount): UlnSettings {\n return deserializeAccount(rawAccount, getUlnSettingsAccountDataSerializer());\n}\n\nexport async function fetchUlnSettings(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<UlnSettings> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n assertAccountExists(maybeAccount, 'UlnSettings');\n return deserializeUlnSettings(maybeAccount);\n}\n\nexport async function safeFetchUlnSettings(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<UlnSettings | null> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n return maybeAccount.exists ? deserializeUlnSettings(maybeAccount) : null;\n}\n\nexport async function fetchAllUlnSettings(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<UlnSettings[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts.map((maybeAccount) => {\n assertAccountExists(maybeAccount, 'UlnSettings');\n return deserializeUlnSettings(maybeAccount);\n });\n}\n\nexport async function safeFetchAllUlnSettings(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<UlnSettings[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts\n .filter((maybeAccount) => maybeAccount.exists)\n .map((maybeAccount) => deserializeUlnSettings(maybeAccount as RpcAccount));\n}\n\nexport function getUlnSettingsGpaBuilder(\n context: Pick<Context, 'rpc' | 'programs'>\n) {\n const programId = context.programs.getPublicKey(\n 'uln',\n '7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH'\n );\n return gpaBuilder(context, programId)\n .registerFields<{\n discriminator: Uint8Array;\n eid: number;\n endpoint: PublicKey;\n endpointProgram: PublicKey;\n bump: number;\n admin: PublicKey;\n treasury: OptionOrNullable<TreasuryArgs>;\n }>({\n discriminator: [0, bytes({ size: 8 })],\n eid: [8, u32()],\n endpoint: [12, publicKeySerializer()],\n endpointProgram: [44, publicKeySerializer()],\n bump: [76, u8()],\n admin: [77, publicKeySerializer()],\n treasury: [109, option(getTreasurySerializer())],\n })\n .deserializeUsing<UlnSettings>((account) => deserializeUlnSettings(account))\n .whereField(\n 'discriminator',\n new Uint8Array([226, 199, 100, 253, 38, 115, 167, 154])\n );\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './uln';\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Program, ProgramError } from '@metaplex-foundation/umi';\n\ntype ProgramErrorConstructor = new (\n program: Program,\n cause?: Error\n) => ProgramError;\nconst codeToErrorMap: Map<number, ProgramErrorConstructor> = new Map();\nconst nameToErrorMap: Map<string, ProgramErrorConstructor> = new Map();\n\n/** Unauthorized */\nexport class UnauthorizedError extends ProgramError {\n override readonly name: string = 'Unauthorized';\n\n readonly code: number = 0x1770; // 6000\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1770, UnauthorizedError);\nnameToErrorMap.set('Unauthorized', UnauthorizedError);\n\n/** InvalidAmount */\nexport class InvalidAmountError extends ProgramError {\n override readonly name: string = 'InvalidAmount';\n\n readonly code: number = 0x1771; // 6001\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1771, InvalidAmountError);\nnameToErrorMap.set('InvalidAmount', InvalidAmountError);\n\n/** InvalidExecutor */\nexport class InvalidExecutorError extends ProgramError {\n override readonly name: string = 'InvalidExecutor';\n\n readonly code: number = 0x1772; // 6002\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1772, InvalidExecutorError);\nnameToErrorMap.set('InvalidExecutor', InvalidExecutorError);\n\n/** ZeroMessageSize */\nexport class ZeroMessageSizeError extends ProgramError {\n override readonly name: string = 'ZeroMessageSize';\n\n readonly code: number = 0x1773; // 6003\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1773, ZeroMessageSizeError);\nnameToErrorMap.set('ZeroMessageSize', ZeroMessageSizeError);\n\n/** InvalidRequiredDVNCount */\nexport class InvalidRequiredDVNCountError extends ProgramError {\n override readonly name: string = 'InvalidRequiredDVNCount';\n\n readonly code: number = 0x1774; // 6004\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1774, InvalidRequiredDVNCountError);\nnameToErrorMap.set('InvalidRequiredDVNCount', InvalidRequiredDVNCountError);\n\n/** InvalidOptionalDVNCount */\nexport class InvalidOptionalDVNCountError extends ProgramError {\n override readonly name: string = 'InvalidOptionalDVNCount';\n\n readonly code: number = 0x1775; // 6005\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1775, InvalidOptionalDVNCountError);\nnameToErrorMap.set('InvalidOptionalDVNCount', InvalidOptionalDVNCountError);\n\n/** InvalidOptionalDVNThreshold */\nexport class InvalidOptionalDVNThresholdError extends ProgramError {\n override readonly name: string = 'InvalidOptionalDVNThreshold';\n\n readonly code: number = 0x1776; // 6006\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1776, InvalidOptionalDVNThresholdError);\nnameToErrorMap.set(\n 'InvalidOptionalDVNThreshold',\n InvalidOptionalDVNThresholdError\n);\n\n/** InvalidConfirmations */\nexport class InvalidConfirmationsError extends ProgramError {\n override readonly name: string = 'InvalidConfirmations';\n\n readonly code: number = 0x1777; // 6007\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1777, InvalidConfirmationsError);\nnameToErrorMap.set('InvalidConfirmations', InvalidConfirmationsError);\n\n/** AtLeastOneDVN */\nexport class AtLeastOneDVNError extends ProgramError {\n override readonly name: string = 'AtLeastOneDVN';\n\n readonly code: number = 0x1778; // 6008\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1778, AtLeastOneDVNError);\nnameToErrorMap.set('AtLeastOneDVN', AtLeastOneDVNError);\n\n/** Unsorted */\nexport class UnsortedError extends ProgramError {\n override readonly name: string = 'Unsorted';\n\n readonly code: number = 0x1779; // 6009\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1779, UnsortedError);\nnameToErrorMap.set('Unsorted', UnsortedError);\n\n/** InvalidTreasuryFeeCap */\nexport class InvalidTreasuryFeeCapError extends ProgramError {\n override readonly name: string = 'InvalidTreasuryFeeCap';\n\n readonly code: number = 0x177a; // 6010\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x177a, InvalidTreasuryFeeCapError);\nnameToErrorMap.set('InvalidTreasuryFeeCap', InvalidTreasuryFeeCapError);\n\n/** InvalidPacketVersion */\nexport class InvalidPacketVersionError extends ProgramError {\n override readonly name: string = 'InvalidPacketVersion';\n\n readonly code: number = 0x177b; // 6011\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x177b, InvalidPacketVersionError);\nnameToErrorMap.set('InvalidPacketVersion', InvalidPacketVersionError);\n\n/** InvalidEid */\nexport class InvalidEidError extends ProgramError {\n override readonly name: string = 'InvalidEid';\n\n readonly code: number = 0x177c; // 6012\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x177c, InvalidEidError);\nnameToErrorMap.set('InvalidEid', InvalidEidError);\n\n/** Verifying */\nexport class VerifyingError extends ProgramError {\n override readonly name: string = 'Verifying';\n\n readonly code: number = 0x177d; // 6013\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x177d, VerifyingError);\nnameToErrorMap.set('Verifying', VerifyingError);\n\n/** InvalidWorkerId */\nexport class InvalidWorkerIdError extends ProgramError {\n override readonly name: string = 'InvalidWorkerId';\n\n readonly code: number = 0x177e; // 6014\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x177e, InvalidWorkerIdError);\nnameToErrorMap.set('InvalidWorkerId', InvalidWorkerIdError);\n\n/** InvalidOptionType */\nexport class InvalidOptionTypeError extends ProgramError {\n override readonly name: string = 'InvalidOptionType';\n\n readonly code: number = 0x177f; // 6015\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x177f, InvalidOptionTypeError);\nnameToErrorMap.set('InvalidOptionType', InvalidOptionTypeError);\n\n/** InvalidBps */\nexport class InvalidBpsError extends ProgramError {\n override readonly name: string = 'InvalidBps';\n\n readonly code: number = 0x1780; // 6016\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1780, InvalidBpsError);\nnameToErrorMap.set('InvalidBps', InvalidBpsError);\n\n/** ExceededMaxMessageSize */\nexport class ExceededMaxMessageSizeError extends ProgramError {\n override readonly name: string = 'ExceededMaxMessageSize';\n\n readonly code: number = 0x1781; // 6017\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1781, ExceededMaxMessageSizeError);\nnameToErrorMap.set('ExceededMaxMessageSize', ExceededMaxMessageSizeError);\n\n/** InvalidExecutorProgram */\nexport class InvalidExecutorProgramError extends ProgramError {\n override readonly name: string = 'InvalidExecutorProgram';\n\n readonly code: number = 0x1782; // 6018\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1782, InvalidExecutorProgramError);\nnameToErrorMap.set('InvalidExecutorProgram', InvalidExecutorProgramError);\n\n/** InvalidAccountLength */\nexport class InvalidAccountLengthError extends ProgramError {\n override readonly name: string = 'InvalidAccountLength';\n\n readonly code: number = 0x1783; // 6019\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1783, InvalidAccountLengthError);\nnameToErrorMap.set('InvalidAccountLength', InvalidAccountLengthError);\n\n/** InvalidDvnProgram */\nexport class InvalidDvnProgramError extends ProgramError {\n override readonly name: string = 'InvalidDvnProgram';\n\n readonly code: number = 0x1784; // 6020\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1784, InvalidDvnProgramError);\nnameToErrorMap.set('InvalidDvnProgram', InvalidDvnProgramError);\n\n/** InvalidDvn */\nexport class InvalidDvnError extends ProgramError {\n override readonly name: string = 'InvalidDvn';\n\n readonly code: number = 0x1785; // 6021\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1785, InvalidDvnError);\nnameToErrorMap.set('InvalidDvn', InvalidDvnError);\n\n/** LzTokenUnavailable */\nexport class LzTokenUnavailableError extends ProgramError {\n override readonly name: string = 'LzTokenUnavailable';\n\n readonly code: number = 0x1786; // 6022\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1786, LzTokenUnavailableError);\nnameToErrorMap.set('LzTokenUnavailable', LzTokenUnavailableError);\n\n/** InsufficientFee */\nexport class InsufficientFeeError extends ProgramError {\n override readonly name: string = 'InsufficientFee';\n\n readonly code: number = 0x1787; // 6023\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1787, InsufficientFeeError);\nnameToErrorMap.set('InsufficientFee', InsufficientFeeError);\n\n/** InvalidTreasury */\nexport class InvalidTreasuryError extends ProgramError {\n override readonly name: string = 'InvalidTreasury';\n\n readonly code: number = 0x1788; // 6024\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1788, InvalidTreasuryError);\nnameToErrorMap.set('InvalidTreasury', InvalidTreasuryError);\n\n/** InvalidLzTokenMint */\nexport class InvalidLzTokenMintError extends ProgramError {\n override readonly name: string = 'InvalidLzTokenMint';\n\n readonly code: number = 0x1789; // 6025\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1789, InvalidLzTokenMintError);\nnameToErrorMap.set('InvalidLzTokenMint', InvalidLzTokenMintError);\n\n/** InvalidConfigType */\nexport class InvalidConfigTypeError extends ProgramError {\n override readonly name: string = 'InvalidConfigType';\n\n readonly code: number = 0x178a; // 6026\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x178a, InvalidConfigTypeError);\nnameToErrorMap.set('InvalidConfigType', InvalidConfigTypeError);\n\n/** InvalidConfirmation */\nexport class InvalidConfirmationError extends ProgramError {\n override readonly name: string = 'InvalidConfirmation';\n\n readonly code: number = 0x178b; // 6027\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x178b, InvalidConfirmationError);\nnameToErrorMap.set('InvalidConfirmation', InvalidConfirmationError);\n\n/** InvalidType1Size */\nexport class InvalidType1SizeError extends ProgramError {\n override readonly name: string = 'InvalidType1Size';\n\n readonly code: number = 0x178c; // 6028\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x178c, InvalidType1SizeError);\nnameToErrorMap.set('InvalidType1Size', InvalidType1SizeError);\n\n/** InvalidType2Size */\nexport class InvalidType2SizeError extends ProgramError {\n override readonly name: string = 'InvalidType2Size';\n\n readonly code: number = 0x178d; // 6029\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x178d, InvalidType2SizeError);\nnameToErrorMap.set('InvalidType2Size', InvalidType2SizeError);\n\n/** ExceededU128 */\nexport class ExceededU128Error extends ProgramError {\n override readonly name: string = 'ExceededU128';\n\n readonly code: number = 0x178e; // 6030\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x178e, ExceededU128Error);\nnameToErrorMap.set('ExceededU128', ExceededU128Error);\n\n/** NonSigner */\nexport class NonSignerError extends ProgramError {\n override readonly name: string = 'NonSigner';\n\n readonly code: number = 0x178f; // 6031\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x178f, NonSignerError);\nnameToErrorMap.set('NonSigner', NonSignerError);\n\n/** InvalidPayer */\nexport class InvalidPayerError extends ProgramError {\n override readonly name: string = 'InvalidPayer';\n\n readonly code: number = 0x1790; // 6032\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1790, InvalidPayerError);\nnameToErrorMap.set('InvalidPayer', InvalidPayerError);\n\n/**\n * Attempts to resolve a custom program error from the provided error code.\n * @category Errors\n */\nexport function getUlnErrorFromCode(\n code: number,\n program: Program,\n cause?: Error\n): ProgramError | null {\n const constructor = codeToErrorMap.get(code);\n return constructor ? new constructor(program, cause) : null;\n}\n\n/**\n * Attempts to resolve a custom program error from the provided error name, i.e. 'Unauthorized'.\n * @category Errors\n */\nexport function getUlnErrorFromName(\n name: string,\n program: Program,\n cause?: Error\n): ProgramError | null {\n const constructor = nameToErrorMap.get(name);\n return constructor ? new constructor(program, cause) : null;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './closeVerify';\nexport * from './commitVerification';\nexport * from './initConfig';\nexport * from './initDefaultConfig';\nexport * from './initUln';\nexport * from './initVerify';\nexport * from './quote';\nexport * from './send';\nexport * from './sendWithLzToken';\nexport * from './setConfig';\nexport * from './setDefaultConfig';\nexport * from './setTreasury';\nexport * from './transferAdmin';\nexport * from './verify';\nexport * from './version';\nexport * from './withdrawRent';\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n AccountMeta,\n isSigner,\n Pda,\n publicKey,\n PublicKey,\n Signer,\n isPda,\n} from '@metaplex-foundation/umi';\n\n/**\n * Transforms the given object such that the given keys are optional.\n * @internal\n */\nexport type PickPartial<T, K extends keyof T> = Omit<T, K> &\n Partial<Pick<T, K>>;\n\n/**\n * Asserts that the given value is not null or undefined.\n * @internal\n */\nexport function expectSome<T>(value: T | null | undefined): T {\n if (value == null) {\n throw new Error('Expected a value but received null or undefined.');\n }\n return value;\n}\n\n/**\n * Asserts that the given value is a PublicKey.\n * @internal\n */\nexport function expectPublicKey(\n value: PublicKey | Pda | Signer | null | undefined\n): PublicKey {\n if (!value) {\n throw new Error('Expected a PublicKey.');\n }\n return publicKey(value, false);\n}\n\n/**\n * Asserts that the given value is a PDA.\n * @internal\n */\nexport function expectPda(\n value: PublicKey | Pda | Signer | null | undefined\n): Pda {\n if (!value || !Array.isArray(value) || !isPda(value)) {\n throw new Error('Expected a PDA.');\n }\n return value;\n}\n\n/**\n * Defines an instruction account to resolve.\n * @internal\n */\nexport type ResolvedAccount<T = PublicKey | Pda | Signer | null> = {\n isWritable: boolean;\n value: T;\n};\n\n/**\n * Defines a set of instruction account to resolve.\n * @internal\n */\nexport type ResolvedAccounts = Record<string, ResolvedAccount>;\n\n/**\n * Defines a set of instruction account to resolve with their indices.\n * @internal\n */\nexport type ResolvedAccountsWithIndices = Record<\n string,\n ResolvedAccount & { index: number }\n>;\n\n/**\n * Get account metas and signers from resolved accounts.\n * @internal\n */\nexport function getAccountMetasAndSigners(\n accounts: ResolvedAccount[],\n optionalAccountStrategy: 'omitted' | 'programId',\n programId: PublicKey\n): [AccountMeta[], Signer[]] {\n const keys: AccountMeta[] = [];\n const signers: Signer[] = [];\n\n accounts.forEach((account) => {\n if (!account.value) {\n if (optionalAccountStrategy === 'omitted') return;\n keys.push({ pubkey: programId, isSigner: false, isWritable: false });\n return;\n }\n\n if (isSigner(account.value)) {\n signers.push(account.value);\n }\n keys.push({\n pubkey: publicKey(account.value, false),\n isSigner: isSigner(account.value),\n isWritable: account.isWritable,\n });\n });\n\n return [keys, signers];\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type CloseVerifyInstructionAccounts = {\n dvn: Signer;\n receiver: PublicKey | Pda;\n confirmations: PublicKey | Pda;\n};\n\n// Data.\nexport type CloseVerifyInstructionData = {\n discriminator: Uint8Array;\n packetHeaderHash: Uint8Array;\n payloadHash: Uint8Array;\n};\n\nexport type CloseVerifyInstructionDataArgs = {\n packetHeaderHash: Uint8Array;\n payloadHash: Uint8Array;\n};\n\nexport function getCloseVerifyInstructionDataSerializer(): Serializer<\n CloseVerifyInstructionDataArgs,\n CloseVerifyInstructionData\n> {\n return mapSerializer<\n CloseVerifyInstructionDataArgs,\n any,\n CloseVerifyInstructionData\n >(\n struct<CloseVerifyInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['packetHeaderHash', bytes({ size: 32 })],\n ['payloadHash', bytes({ size: 32 })],\n ],\n { description: 'CloseVerifyInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([44, 133, 228, 138, 169, 242, 53, 36]),\n })\n ) as Serializer<CloseVerifyInstructionDataArgs, CloseVerifyInstructionData>;\n}\n\n// Args.\nexport type CloseVerifyInstructionArgs = CloseVerifyInstructionDataArgs;\n\n// Instruction.\nexport function closeVerify(\n context: Pick<Context, 'programs'>,\n input: CloseVerifyInstructionAccounts & CloseVerifyInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'uln',\n '7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH'\n );\n\n // Accounts.\n const resolvedAccounts = {\n dvn: { index: 0, isWritable: false as boolean, value: input.dvn ?? null },\n receiver: {\n index: 1,\n isWritable: true as boolean,\n value: input.receiver ?? null,\n },\n confirmations: {\n index: 2,\n isWritable: true as boolean,\n value: input.confirmations ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: CloseVerifyInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getCloseVerifyInstructionDataSerializer().serialize(\n resolvedArgs as CloseVerifyInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n array,\n bytes,\n mapSerializer,\n struct,\n u8,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type CommitVerificationInstructionAccounts = {\n /** The custom receive config account may be uninitialized, so deserialize it only if it's initialized */\n receiveConfig: PublicKey | Pda;\n defaultReceiveConfig: PublicKey | Pda;\n uln: PublicKey | Pda;\n};\n\n// Data.\nexport type CommitVerificationInstructionData = {\n discriminator: Uint8Array;\n packetHeader: Array<number>;\n payloadHash: Uint8Array;\n};\n\nexport type CommitVerificationInstructionDataArgs = {\n packetHeader: Array<number>;\n payloadHash: Uint8Array;\n};\n\nexport function getCommitVerificationInstructionDataSerializer(): Serializer<\n CommitVerificationInstructionDataArgs,\n CommitVerificationInstructionData\n> {\n return mapSerializer<\n CommitVerificationInstructionDataArgs,\n any,\n CommitVerificationInstructionData\n >(\n struct<CommitVerificationInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['packetHeader', array(u8(), { size: 81 })],\n ['payloadHash', bytes({ size: 32 })],\n ],\n { description: 'CommitVerificationInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([194, 120, 44, 252, 140, 215, 139, 103]),\n })\n ) as Serializer<\n CommitVerificationInstructionDataArgs,\n CommitVerificationInstructionData\n >;\n}\n\n// Args.\nexport type CommitVerificationInstructionArgs =\n CommitVerificationInstructionDataArgs;\n\n// Instruction.\nexport function commitVerification(\n context: Pick<Context, 'programs'>,\n input: CommitVerificationInstructionAccounts &\n CommitVerificationInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'uln',\n '7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH'\n );\n\n // Accounts.\n const resolvedAccounts = {\n receiveConfig: {\n index: 0,\n isWritable: false as boolean,\n value: input.receiveConfig ?? null,\n },\n defaultReceiveConfig: {\n index: 1,\n isWritable: false as boolean,\n value: input.defaultReceiveConfig ?? null,\n },\n uln: { index: 2, isWritable: false as boolean, value: input.uln ?? null },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: CommitVerificationInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getCommitVerificationInstructionDataSerializer().serialize(\n resolvedArgs as CommitVerificationInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type InitConfigInstructionAccounts = {\n endpoint: Signer;\n payer?: Signer;\n uln: PublicKey | Pda;\n sendConfig: PublicKey | Pda;\n receiveConfig: PublicKey | Pda;\n systemProgram?: PublicKey | Pda;\n};\n\n// Data.\nexport type InitConfigInstructionData = {\n discriminator: Uint8Array;\n oapp: PublicKey;\n eid: number;\n};\n\nexport type InitConfigInstructionDataArgs = { oapp: PublicKey; eid: number };\n\nexport function getInitConfigInstructionDataSerializer(): Serializer<\n InitConfigInstructionDataArgs,\n InitConfigInstructionData\n> {\n return mapSerializer<\n InitConfigInstructionDataArgs,\n any,\n InitConfigInstructionData\n >(\n struct<InitConfigInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['oapp', publicKeySerializer()],\n ['eid', u32()],\n ],\n { description: 'InitConfigInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([23, 235, 115, 232, 168, 96, 1, 231]),\n })\n ) as Serializer<InitConfigInstructionDataArgs, InitConfigInstructionData>;\n}\n\n// Args.\nexport type InitConfigInstructionArgs = InitConfigInstructionDataArgs;\n\n// Instruction.\nexport function initConfig(\n context: Pick<Context, 'payer' | 'programs'>,\n input: InitConfigInstructionAccounts & InitConfigInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'uln',\n '7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH'\n );\n\n // Accounts.\n const resolvedAccounts = {\n endpoint: {\n index: 0,\n isWritable: false as boolean,\n value: input.endpoint ?? null,\n },\n payer: {\n index: 1,\n isWritable: true as boolean,\n value: input.payer ?? null,\n },\n uln: { index: 2, isWritable: false as boolean, value: input.uln ?? null },\n sendConfig: {\n index: 3,\n isWritable: true as boolean,\n value: input.sendConfig ?? null,\n },\n receiveConfig: {\n index: 4,\n isWritable: true as boolean,\n value: input.receiveConfig ?? null,\n },\n systemProgram: {\n index: 5,\n isWritable: false as boolean,\n value: input.systemProgram ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: InitConfigInstructionArgs = { ...input };\n\n // Default values.\n if (!resolvedAccounts.payer.value) {\n resolvedAccounts.payer.value = context.payer;\n }\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getInitConfigInstructionDataSerializer().serialize(\n resolvedArgs as InitConfigInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\nimport {\n ExecutorConfig,\n ExecutorConfigArgs,\n UlnConfig,\n UlnConfigArgs,\n getExecutorConfigSerializer,\n getUlnConfigSerializer,\n} from '../types';\n\n// Accounts.\nexport type InitDefaultConfigInstructionAccounts = {\n admin: Signer;\n uln: PublicKey | Pda;\n sendConfig: PublicKey | Pda;\n receiveConfig: PublicKey | Pda;\n systemProgram?: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type InitDefaultConfigInstructionData = {\n discriminator: Uint8Array;\n eid: number;\n sendUlnConfig: UlnConfig;\n receiveUlnConfig: UlnConfig;\n executorConfig: ExecutorConfig;\n};\n\nexport type InitDefaultConfigInstructionDataArgs = {\n eid: number;\n sendUlnConfig: UlnConfigArgs;\n receiveUlnConfig: UlnConfigArgs;\n executorConfig: ExecutorConfigArgs;\n};\n\nexport function getInitDefaultConfigInstructionDataSerializer(): Serializer<\n InitDefaultConfigInstructionDataArgs,\n InitDefaultConfigInstructionData\n> {\n return mapSerializer<\n InitDefaultConfigInstructionDataArgs,\n any,\n InitDefaultConfigInstructionData\n >(\n struct<InitDefaultConfigInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['eid', u32()],\n ['sendUlnConfig', getUlnConfigSerializer()],\n ['receiveUlnConfig', getUlnConfigSerializer()],\n ['executorConfig', getExecutorConfigSerializer()],\n ],\n { description: 'InitDefaultConfigInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([98, 218, 197, 194, 173, 179, 112, 21]),\n })\n ) as Serializer<\n InitDefaultConfigInstructionDataArgs,\n InitDefaultConfigInstructionData\n >;\n}\n\n// Args.\nexport type InitDefaultConfigInstructionArgs =\n InitDefaultConfigInstructionDataArgs;\n\n// Instruction.\nexport function initDefaultConfig(\n context: Pick<Context, 'programs'>,\n input: InitDefaultConfigInstructionAccounts & InitDefaultConfigInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'uln',\n '7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: true as boolean,\n value: input.admin ?? null,\n },\n uln: { index: 1, isWritable: false as boolean, value: input.uln ?? null },\n sendConfig: {\n index: 2,\n isWritable: true as boolean,\n value: input.sendConfig ?? null,\n },\n receiveConfig: {\n index: 3,\n isWritable: true as boolean,\n value: input.receiveConfig ?? null,\n },\n systemProgram: {\n index: 4,\n isWritable: false as boolean,\n value: input.systemProgram ?? null,\n },\n eventAuthority: {\n index: 5,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 6,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: InitDefaultConfigInstructionArgs = { ...input };\n\n // Default values.\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getInitDefaultConfigInstructionDataSerializer().serialize(\n resolvedArgs as InitDefaultConfigInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type InitUlnInstructionAccounts = {\n payer?: Signer;\n uln: PublicKey | Pda;\n systemProgram?: PublicKey | Pda;\n};\n\n// Data.\nexport type InitUlnInstructionData = {\n discriminator: Uint8Array;\n eid: number;\n endpoint: PublicKey;\n endpointProgram: PublicKey;\n admin: PublicKey;\n};\n\nexport type InitUlnInstructionDataArgs = {\n eid: number;\n endpoint: PublicKey;\n endpointProgram: PublicKey;\n admin: PublicKey;\n};\n\nexport function getInitUlnInstructionDataSerializer(): Serializer<\n InitUlnInstructionDataArgs,\n InitUlnInstructionData\n> {\n return mapSerializer<InitUlnInstructionDataArgs, any, InitUlnInstructionData>(\n struct<InitUlnInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['eid', u32()],\n ['endpoint', publicKeySerializer()],\n ['endpointProgram', publicKeySerializer()],\n ['admin', publicKeySerializer()],\n ],\n { description: 'InitUlnInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([19, 215, 207, 92, 197, 112, 119, 240]),\n })\n ) as Serializer<InitUlnInstructionDataArgs, InitUlnInstructionData>;\n}\n\n// Args.\nexport type InitUlnInstructionArgs = InitUlnInstructionDataArgs;\n\n// Instruction.\nexport function initUln(\n context: Pick<Context, 'payer' | 'programs'>,\n input: InitUlnInstructionAccounts & InitUlnInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'uln',\n '7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH'\n );\n\n // Accounts.\n const resolvedAccounts = {\n payer: {\n index: 0,\n isWritable: true as boolean,\n value: input.payer ?? null,\n },\n uln: { index: 1, isWritable: true as boolean, value: input.uln ?? null },\n systemProgram: {\n index: 2,\n isWritable: false as boolean,\n value: input.systemProgram ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: InitUlnInstructionArgs = { ...input };\n\n // Default values.\n if (!resolvedAccounts.payer.value) {\n resolvedAccounts.payer.value = context.payer;\n }\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getInitUlnInstructionDataSerializer().serialize(\n resolvedArgs as InitUlnInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n array,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u8,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type InitVerifyInstructionAccounts = {\n payer?: Signer;\n confirmations: PublicKey | Pda;\n systemProgram?: PublicKey | Pda;\n};\n\n// Data.\nexport type InitVerifyInstructionData = {\n discriminator: Uint8Array;\n packetHeader: Array<number>;\n payloadHash: Uint8Array;\n dvn: PublicKey;\n};\n\nexport type InitVerifyInstructionDataArgs = {\n packetHeader: Array<number>;\n payloadHash: Uint8Array;\n dvn: PublicKey;\n};\n\nexport function getInitVerifyInstructionDataSerializer(): Serializer<\n InitVerifyInstructionDataArgs,\n InitVerifyInstructionData\n> {\n return mapSerializer<\n InitVerifyInstructionDataArgs,\n any,\n InitVerifyInstructionData\n >(\n struct<InitVerifyInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['packetHeader', array(u8(), { size: 81 })],\n ['payloadHash', bytes({ size: 32 })],\n ['dvn', publicKeySerializer()],\n ],\n { description: 'InitVerifyInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([76, 246, 244, 124, 115, 17, 235, 91]),\n })\n ) as Serializer<InitVerifyInstructionDataArgs, InitVerifyInstructionData>;\n}\n\n// Args.\nexport type InitVerifyInstructionArgs = InitVerifyInstructionDataArgs;\n\n// Instruction.\nexport function initVerify(\n context: Pick<Context, 'payer' | 'programs'>,\n input: InitVerifyInstructionAccounts & InitVerifyInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'uln',\n '7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH'\n );\n\n // Accounts.\n const resolvedAccounts = {\n payer: {\n index: 0,\n isWritable: true as boolean,\n value: input.payer ?? null,\n },\n confirmations: {\n index: 1,\n isWritable: true as boolean,\n value: input.confirmations ?? null,\n },\n systemProgram: {\n index: 2,\n isWritable: false as boolean,\n value: input.systemProgram ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: InitVerifyInstructionArgs = { ...input };\n\n // Default values.\n if (!resolvedAccounts.payer.value) {\n resolvedAccounts.payer.value = context.payer;\n }\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getInitVerifyInstructionDataSerializer().serialize(\n resolvedArgs as InitVerifyInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bool,\n bytes,\n mapSerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\nimport { Packet, PacketArgs, getPacketSerializer } from '../types';\n\n// Accounts.\nexport type QuoteInstructionAccounts = {\n endpoint: Signer;\n uln: PublicKey | Pda;\n /** The custom send config account may be uninitialized, so deserialize it only if it's initialized */\n sendConfig: PublicKey | Pda;\n defaultSendConfig: PublicKey | Pda;\n};\n\n// Data.\nexport type QuoteInstructionData = {\n discriminator: Uint8Array;\n packet: Packet;\n options: Uint8Array;\n payInLzToken: boolean;\n};\n\nexport type QuoteInstructionDataArgs = {\n packet: PacketArgs;\n options: Uint8Array;\n payInLzToken: boolean;\n};\n\nexport function getQuoteInstructionDataSerializer(): Serializer<\n QuoteInstructionDataArgs,\n QuoteInstructionData\n> {\n return mapSerializer<QuoteInstructionDataArgs, any, QuoteInstructionData>(\n struct<QuoteInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['packet', getPacketSerializer()],\n ['options', bytes({ size: u32() })],\n ['payInLzToken', bool()],\n ],\n { description: 'QuoteInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([149, 42, 109, 247, 134, 146, 213, 123]),\n })\n ) as Serializer<QuoteInstructionDataArgs, QuoteInstructionData>;\n}\n\n// Args.\nexport type QuoteInstructionArgs = QuoteInstructionDataArgs;\n\n// Instruction.\nexport function quote(\n context: Pick<Context, 'programs'>,\n input: QuoteInstructionAccounts & QuoteInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'uln',\n '7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH'\n );\n\n // Accounts.\n const resolvedAccounts = {\n endpoint: {\n index: 0,\n isWritable: false as boolean,\n value: input.endpoint ?? null,\n },\n uln: { index: 1, isWritable: false as boolean, value: input.uln ?? null },\n sendConfig: {\n index: 2,\n isWritable: false as boolean,\n value: input.sendConfig ?? null,\n },\n defaultSendConfig: {\n index: 3,\n isWritable: false as boolean,\n value: input.defaultSendConfig ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: QuoteInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getQuoteInstructionDataSerializer().serialize(\n resolvedArgs as QuoteInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\nimport { Packet, PacketArgs, getPacketSerializer } from '../types';\n\n// Accounts.\nexport type SendInstructionAccounts = {\n endpoint: Signer;\n uln: PublicKey | Pda;\n /** The custom send config account may be uninitialized, so deserialize it only if it's initialized */\n sendConfig: PublicKey | Pda;\n defaultSendConfig: PublicKey | Pda;\n /** pay for the native fee */\n payer?: Signer;\n /** The treasury account to receive the native fee */\n treasury?: PublicKey | Pda;\n /** for native fee transfer */\n systemProgram?: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type SendInstructionData = {\n discriminator: Uint8Array;\n packet: Packet;\n options: Uint8Array;\n nativeFee: bigint;\n};\n\nexport type SendInstructionDataArgs = {\n packet: PacketArgs;\n options: Uint8Array;\n nativeFee: number | bigint;\n};\n\nexport function getSendInstructionDataSerializer(): Serializer<\n SendInstructionDataArgs,\n SendInstructionData\n> {\n return mapSerializer<SendInstructionDataArgs, any, SendInstructionData>(\n struct<SendInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['packet', getPacketSerializer()],\n ['options', bytes({ size: u32() })],\n ['nativeFee', u64()],\n ],\n { description: 'SendInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([102, 251, 20, 187, 65, 75, 12, 69]),\n })\n ) as Serializer<SendInstructionDataArgs, SendInstructionData>;\n}\n\n// Args.\nexport type SendInstructionArgs = SendInstructionDataArgs;\n\n// Instruction.\nexport function send(\n context: Pick<Context, 'payer' | 'programs'>,\n input: SendInstructionAccounts & SendInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'uln',\n '7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH'\n );\n\n // Accounts.\n const resolvedAccounts = {\n endpoint: {\n index: 0,\n isWritable: false as boolean,\n value: input.endpoint ?? null,\n },\n uln: { index: 1, isWritable: false as boolean, value: input.uln ?? null },\n sendConfig: {\n index: 2,\n isWritable: false as boolean,\n value: input.sendConfig ?? null,\n },\n defaultSendConfig: {\n index: 3,\n isWritable: false as boolean,\n value: input.defaultSendConfig ?? null,\n },\n payer: {\n index: 4,\n isWritable: true as boolean,\n value: input.payer ?? null,\n },\n treasury: {\n index: 5,\n isWritable: true as boolean,\n value: input.treasury ?? null,\n },\n systemProgram: {\n index: 6,\n isWritable: false as boolean,\n value: input.systemProgram ?? null,\n },\n eventAuthority: {\n index: 7,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 8,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SendInstructionArgs = { ...input };\n\n // Default values.\n if (!resolvedAccounts.payer.value) {\n resolvedAccounts.payer.value = context.payer;\n }\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSendInstructionDataSerializer().serialize(\n resolvedArgs as SendInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\nimport { Packet, PacketArgs, getPacketSerializer } from '../types';\n\n// Accounts.\nexport type SendWithLzTokenInstructionAccounts = {\n endpoint: Signer;\n uln: PublicKey | Pda;\n /** The custom send config account may be uninitialized, so deserialize it only if it's initialized */\n sendConfig: PublicKey | Pda;\n defaultSendConfig: PublicKey | Pda;\n /** pay for the native fee */\n payer?: Signer;\n /** for native fee transfer */\n systemProgram?: PublicKey | Pda;\n /** The token account to pay the lz token fee */\n lzTokenSource: PublicKey | Pda;\n /** The treasury token account to receive the lz token fee */\n lzTokenTreasury: PublicKey | Pda;\n lzTokenMint: PublicKey | Pda;\n tokenProgram?: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type SendWithLzTokenInstructionData = {\n discriminator: Uint8Array;\n packet: Packet;\n options: Uint8Array;\n nativeFee: bigint;\n lzTokenFee: bigint;\n lzTokenMint: PublicKey;\n};\n\nexport type SendWithLzTokenInstructionDataArgs = {\n packet: PacketArgs;\n options: Uint8Array;\n nativeFee: number | bigint;\n lzTokenFee: number | bigint;\n lzTokenMint: PublicKey;\n};\n\nexport function getSendWithLzTokenInstructionDataSerializer(): Serializer<\n SendWithLzTokenInstructionDataArgs,\n SendWithLzTokenInstructionData\n> {\n return mapSerializer<\n SendWithLzTokenInstructionDataArgs,\n any,\n SendWithLzTokenInstructionData\n >(\n struct<SendWithLzTokenInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['packet', getPacketSerializer()],\n ['options', bytes({ size: u32() })],\n ['nativeFee', u64()],\n ['lzTokenFee', u64()],\n ['lzTokenMint', publicKeySerializer()],\n ],\n { description: 'SendWithLzTokenInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([165, 161, 84, 48, 129, 26, 193, 19]),\n })\n ) as Serializer<\n SendWithLzTokenInstructionDataArgs,\n SendWithLzTokenInstructionData\n >;\n}\n\n// Args.\nexport type SendWithLzTokenInstructionArgs = SendWithLzTokenInstructionDataArgs;\n\n// Instruction.\nexport function sendWithLzToken(\n context: Pick<Context, 'payer' | 'programs'>,\n accounts: SendWithLzTokenInstructionAccounts,\n args: SendWithLzTokenInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'uln',\n '7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH'\n );\n\n // Accounts.\n const resolvedAccounts = {\n endpoint: {\n index: 0,\n isWritable: false as boolean,\n value: accounts.endpoint ?? null,\n },\n uln: {\n index: 1,\n isWritable: false as boolean,\n value: accounts.uln ?? null,\n },\n sendConfig: {\n index: 2,\n isWritable: false as boolean,\n value: accounts.sendConfig ?? null,\n },\n defaultSendConfig: {\n index: 3,\n isWritable: false as boolean,\n value: accounts.defaultSendConfig ?? null,\n },\n payer: {\n index: 4,\n isWritable: true as boolean,\n value: accounts.payer ?? null,\n },\n systemProgram: {\n index: 5,\n isWritable: false as boolean,\n value: accounts.systemProgram ?? null,\n },\n lzTokenSource: {\n index: 6,\n isWritable: true as boolean,\n value: accounts.lzTokenSource ?? null,\n },\n lzTokenTreasury: {\n index: 7,\n isWritable: true as boolean,\n value: accounts.lzTokenTreasury ?? null,\n },\n lzTokenMint: {\n index: 8,\n isWritable: false as boolean,\n value: accounts.lzTokenMint ?? null,\n },\n tokenProgram: {\n index: 9,\n isWritable: false as boolean,\n value: accounts.tokenProgram ?? null,\n },\n eventAuthority: {\n index: 10,\n isWritable: false as boolean,\n value: accounts.eventAuthority ?? null,\n },\n program: {\n index: 11,\n isWritable: false as boolean,\n value: accounts.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SendWithLzTokenInstructionArgs = { ...args };\n\n // Default values.\n if (!resolvedAccounts.payer.value) {\n resolvedAccounts.payer.value = context.payer;\n }\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n if (!resolvedAccounts.tokenProgram.value) {\n resolvedAccounts.tokenProgram.value = context.programs.getPublicKey(\n 'splToken',\n 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'\n );\n resolvedAccounts.tokenProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSendWithLzTokenInstructionDataSerializer().serialize(\n resolvedArgs as SendWithLzTokenInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type SetConfigInstructionAccounts = {\n endpoint: Signer;\n uln: PublicKey | Pda;\n sendConfig: PublicKey | Pda;\n receiveConfig: PublicKey | Pda;\n defaultSendConfig: PublicKey | Pda;\n defaultReceiveConfig: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type SetConfigInstructionData = {\n discriminator: Uint8Array;\n oapp: PublicKey;\n eid: number;\n configType: number;\n config: Uint8Array;\n};\n\nexport type SetConfigInstructionDataArgs = {\n oapp: PublicKey;\n eid: number;\n configType: number;\n config: Uint8Array;\n};\n\nexport function getSetConfigInstructionDataSerializer(): Serializer<\n SetConfigInstructionDataArgs,\n SetConfigInstructionData\n> {\n return mapSerializer<\n SetConfigInstructionDataArgs,\n any,\n SetConfigInstructionData\n >(\n struct<SetConfigInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['oapp', publicKeySerializer()],\n ['eid', u32()],\n ['configType', u32()],\n ['config', bytes({ size: u32() })],\n ],\n { description: 'SetConfigInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([108, 158, 154, 175, 212, 98, 52, 66]),\n })\n ) as Serializer<SetConfigInstructionDataArgs, SetConfigInstructionData>;\n}\n\n// Args.\nexport type SetConfigInstructionArgs = SetConfigInstructionDataArgs;\n\n// Instruction.\nexport function setConfig(\n context: Pick<Context, 'programs'>,\n input: SetConfigInstructionAccounts & SetConfigInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'uln',\n '7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH'\n );\n\n // Accounts.\n const resolvedAccounts = {\n endpoint: {\n index: 0,\n isWritable: false as boolean,\n value: input.endpoint ?? null,\n },\n uln: { index: 1, isWritable: false as boolean, value: input.uln ?? null },\n sendConfig: {\n index: 2,\n isWritable: true as boolean,\n value: input.sendConfig ?? null,\n },\n receiveConfig: {\n index: 3,\n isWritable: true as boolean,\n value: input.receiveConfig ?? null,\n },\n defaultSendConfig: {\n index: 4,\n isWritable: false as boolean,\n value: input.defaultSendConfig ?? null,\n },\n defaultReceiveConfig: {\n index: 5,\n isWritable: false as boolean,\n value: input.defaultReceiveConfig ?? null,\n },\n eventAuthority: {\n index: 6,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 7,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SetConfigInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSetConfigInstructionDataSerializer().serialize(\n resolvedArgs as SetConfigInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Option,\n OptionOrNullable,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n option,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\nimport {\n ExecutorConfig,\n ExecutorConfigArgs,\n UlnConfig,\n UlnConfigArgs,\n getExecutorConfigSerializer,\n getUlnConfigSerializer,\n} from '../types';\n\n// Accounts.\nexport type SetDefaultConfigInstructionAccounts = {\n admin: Signer;\n uln: PublicKey | Pda;\n sendConfig: PublicKey | Pda;\n receiveConfig: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type SetDefaultConfigInstructionData = {\n discriminator: Uint8Array;\n eid: number;\n sendUlnConfig: Option<UlnConfig>;\n receiveUlnConfig: Option<UlnConfig>;\n executorConfig: Option<ExecutorConfig>;\n};\n\nexport type SetDefaultConfigInstructionDataArgs = {\n eid: number;\n sendUlnConfig: OptionOrNullable<UlnConfigArgs>;\n receiveUlnConfig: OptionOrNullable<UlnConfigArgs>;\n executorConfig: OptionOrNullable<ExecutorConfigArgs>;\n};\n\nexport function getSetDefaultConfigInstructionDataSerializer(): Serializer<\n SetDefaultConfigInstructionDataArgs,\n SetDefaultConfigInstructionData\n> {\n return mapSerializer<\n SetDefaultConfigInstructionDataArgs,\n any,\n SetDefaultConfigInstructionData\n >(\n struct<SetDefaultConfigInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['eid', u32()],\n ['sendUlnConfig', option(getUlnConfigSerializer())],\n ['receiveUlnConfig', option(getUlnConfigSerializer())],\n ['executorConfig', option(getExecutorConfigSerializer())],\n ],\n { description: 'SetDefaultConfigInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([111, 228, 17, 75, 5, 76, 213, 169]),\n })\n ) as Serializer<\n SetDefaultConfigInstructionDataArgs,\n SetDefaultConfigInstructionData\n >;\n}\n\n// Args.\nexport type SetDefaultConfigInstructionArgs =\n SetDefaultConfigInstructionDataArgs;\n\n// Instruction.\nexport function setDefaultConfig(\n context: Pick<Context, 'programs'>,\n input: SetDefaultConfigInstructionAccounts & SetDefaultConfigInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'uln',\n '7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: false as boolean,\n value: input.admin ?? null,\n },\n uln: { index: 1, isWritable: false as boolean, value: input.uln ?? null },\n sendConfig: {\n index: 2,\n isWritable: true as boolean,\n value: input.sendConfig ?? null,\n },\n receiveConfig: {\n index: 3,\n isWritable: true as boolean,\n value: input.receiveConfig ?? null,\n },\n eventAuthority: {\n index: 4,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 5,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SetDefaultConfigInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSetDefaultConfigInstructionDataSerializer().serialize(\n resolvedArgs as SetDefaultConfigInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Option,\n OptionOrNullable,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n option,\n struct,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\nimport { Treasury, TreasuryArgs, getTreasurySerializer } from '../types';\n\n// Accounts.\nexport type SetTreasuryInstructionAccounts = {\n /** The admin or treasury admin */\n signer: Signer;\n uln: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type SetTreasuryInstructionData = {\n discriminator: Uint8Array;\n treasury: Option<Treasury>;\n};\n\nexport type SetTreasuryInstructionDataArgs = {\n treasury: OptionOrNullable<TreasuryArgs>;\n};\n\nexport function getSetTreasuryInstructionDataSerializer(): Serializer<\n SetTreasuryInstructionDataArgs,\n SetTreasuryInstructionData\n> {\n return mapSerializer<\n SetTreasuryInstructionDataArgs,\n any,\n SetTreasuryInstructionData\n >(\n struct<SetTreasuryInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['treasury', option(getTreasurySerializer())],\n ],\n { description: 'SetTreasuryInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([57, 97, 196, 95, 195, 206, 106, 136]),\n })\n ) as Serializer<SetTreasuryInstructionDataArgs, SetTreasuryInstructionData>;\n}\n\n// Args.\nexport type SetTreasuryInstructionArgs = SetTreasuryInstructionDataArgs;\n\n// Instruction.\nexport function setTreasury(\n context: Pick<Context, 'programs'>,\n input: SetTreasuryInstructionAccounts & SetTreasuryInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'uln',\n '7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH'\n );\n\n // Accounts.\n const resolvedAccounts = {\n signer: {\n index: 0,\n isWritable: false as boolean,\n value: input.signer ?? null,\n },\n uln: { index: 1, isWritable: true as boolean, value: input.uln ?? null },\n eventAuthority: {\n index: 2,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 3,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SetTreasuryInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSetTreasuryInstructionDataSerializer().serialize(\n resolvedArgs as SetTreasuryInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type TransferAdminInstructionAccounts = {\n admin: Signer;\n uln: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type TransferAdminInstructionData = {\n discriminator: Uint8Array;\n admin: PublicKey;\n};\n\nexport type TransferAdminInstructionDataArgs = { admin: PublicKey };\n\nexport function getTransferAdminInstructionDataSerializer(): Serializer<\n TransferAdminInstructionDataArgs,\n TransferAdminInstructionData\n> {\n return mapSerializer<\n TransferAdminInstructionDataArgs,\n any,\n TransferAdminInstructionData\n >(\n struct<TransferAdminInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['admin', publicKeySerializer()],\n ],\n { description: 'TransferAdminInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([42, 242, 66, 106, 228, 10, 111, 156]),\n })\n ) as Serializer<\n TransferAdminInstructionDataArgs,\n TransferAdminInstructionData\n >;\n}\n\n// Args.\nexport type TransferAdminInstructionArgs = TransferAdminInstructionDataArgs;\n\n// Instruction.\nexport function transferAdmin(\n context: Pick<Context, 'programs'>,\n accounts: TransferAdminInstructionAccounts,\n args: TransferAdminInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'uln',\n '7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: false as boolean,\n value: accounts.admin ?? null,\n },\n uln: { index: 1, isWritable: true as boolean, value: accounts.uln ?? null },\n eventAuthority: {\n index: 2,\n isWritable: false as boolean,\n value: accounts.eventAuthority ?? null,\n },\n program: {\n index: 3,\n isWritable: false as boolean,\n value: accounts.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: TransferAdminInstructionArgs = { ...args };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getTransferAdminInstructionDataSerializer().serialize(\n resolvedArgs as TransferAdminInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n array,\n bytes,\n mapSerializer,\n struct,\n u64,\n u8,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type VerifyInstructionAccounts = {\n dvn: Signer;\n confirmations: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type VerifyInstructionData = {\n discriminator: Uint8Array;\n packetHeader: Array<number>;\n payloadHash: Uint8Array;\n confirmations: bigint;\n};\n\nexport type VerifyInstructionDataArgs = {\n packetHeader: Array<number>;\n payloadHash: Uint8Array;\n confirmations: number | bigint;\n};\n\nexport function getVerifyInstructionDataSerializer(): Serializer<\n VerifyInstructionDataArgs,\n VerifyInstructionData\n> {\n return mapSerializer<VerifyInstructionDataArgs, any, VerifyInstructionData>(\n struct<VerifyInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['packetHeader', array(u8(), { size: 81 })],\n ['payloadHash', bytes({ size: 32 })],\n ['confirmations', u64()],\n ],\n { description: 'VerifyInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([133, 161, 141, 48, 120, 198, 88, 150]),\n })\n ) as Serializer<VerifyInstructionDataArgs, VerifyInstructionData>;\n}\n\n// Args.\nexport type VerifyInstructionArgs = VerifyInstructionDataArgs;\n\n// Instruction.\nexport function verify(\n context: Pick<Context, 'programs'>,\n accounts: VerifyInstructionAccounts,\n args: VerifyInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'uln',\n '7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH'\n );\n\n // Accounts.\n const resolvedAccounts = {\n dvn: {\n index: 0,\n isWritable: false as boolean,\n value: accounts.dvn ?? null,\n },\n confirmations: {\n index: 1,\n isWritable: true as boolean,\n value: accounts.confirmations ?? null,\n },\n eventAuthority: {\n index: 2,\n isWritable: false as boolean,\n value: accounts.eventAuthority ?? null,\n },\n program: {\n index: 3,\n isWritable: false as boolean,\n value: accounts.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: VerifyInstructionArgs = { ...args };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getVerifyInstructionDataSerializer().serialize(\n resolvedArgs as VerifyInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Data.\nexport type VersionInstructionData = { discriminator: Uint8Array };\n\nexport type VersionInstructionDataArgs = {};\n\nexport function getVersionInstructionDataSerializer(): Serializer<\n VersionInstructionDataArgs,\n VersionInstructionData\n> {\n return mapSerializer<VersionInstructionDataArgs, any, VersionInstructionData>(\n struct<VersionInstructionData>([['discriminator', bytes({ size: 8 })]], {\n description: 'VersionInstructionData',\n }),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([118, 65, 195, 198, 129, 216, 252, 192]),\n })\n ) as Serializer<VersionInstructionDataArgs, VersionInstructionData>;\n}\n\n// Instruction.\nexport function version(\n context: Pick<Context, 'programs'>\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'uln',\n '7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH'\n );\n\n // Accounts.\n const resolvedAccounts = {} satisfies ResolvedAccountsWithIndices;\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts as ResolvedAccountsWithIndices\n );\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getVersionInstructionDataSerializer().serialize({});\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type WithdrawRentInstructionAccounts = {\n admin: Signer;\n uln: PublicKey | Pda;\n receiver: PublicKey | Pda;\n eventAuthority: PublicKey | Pda;\n program: PublicKey | Pda;\n};\n\n// Data.\nexport type WithdrawRentInstructionData = {\n discriminator: Uint8Array;\n amount: bigint;\n};\n\nexport type WithdrawRentInstructionDataArgs = { amount: number | bigint };\n\nexport function getWithdrawRentInstructionDataSerializer(): Serializer<\n WithdrawRentInstructionDataArgs,\n WithdrawRentInstructionData\n> {\n return mapSerializer<\n WithdrawRentInstructionDataArgs,\n any,\n WithdrawRentInstructionData\n >(\n struct<WithdrawRentInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['amount', u64()],\n ],\n { description: 'WithdrawRentInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([226, 7, 41, 158, 173, 111, 192, 107]),\n })\n ) as Serializer<WithdrawRentInstructionDataArgs, WithdrawRentInstructionData>;\n}\n\n// Args.\nexport type WithdrawRentInstructionArgs = WithdrawRentInstructionDataArgs;\n\n// Instruction.\nexport function withdrawRent(\n context: Pick<Context, 'programs'>,\n input: WithdrawRentInstructionAccounts & WithdrawRentInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'uln',\n '7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: false as boolean,\n value: input.admin ?? null,\n },\n uln: { index: 1, isWritable: true as boolean, value: input.uln ?? null },\n receiver: {\n index: 2,\n isWritable: true as boolean,\n value: input.receiver ?? null,\n },\n eventAuthority: {\n index: 3,\n isWritable: false as boolean,\n value: input.eventAuthority ?? null,\n },\n program: {\n index: 4,\n isWritable: false as boolean,\n value: input.program ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: WithdrawRentInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getWithdrawRentInstructionDataSerializer().serialize(\n resolvedArgs as WithdrawRentInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n ClusterFilter,\n Context,\n Program,\n PublicKey,\n} from '@metaplex-foundation/umi';\nimport { getUlnErrorFromCode, getUlnErrorFromName } from '../errors';\n\nexport const ULN_PROGRAM_ID =\n '7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH' as PublicKey<'7a4WjyR8VZ7yZz5XJAKm39BUGn5iT9CKcv2pmG9tdXVH'>;\n\nexport function createUlnProgram(): Program {\n return {\n name: 'uln',\n publicKey: ULN_PROGRAM_ID,\n getErrorFromCode(code: number, cause?: Error) {\n return getUlnErrorFromCode(code, this, cause);\n },\n getErrorFromName(name: string, cause?: Error) {\n return getUlnErrorFromName(name, this, cause);\n },\n isOnCluster() {\n return true;\n },\n };\n}\n\nexport function getUlnProgram<T extends Program = Program>(\n context: Pick<Context, 'programs'>,\n clusterFilter?: ClusterFilter\n): T {\n return context.programs.get<T>('uln', clusterFilter);\n}\n\nexport function getUlnProgramId(\n context: Pick<Context, 'programs'>,\n clusterFilter?: ClusterFilter\n): PublicKey {\n return context.programs.getPublicKey('uln', ULN_PROGRAM_ID, clusterFilter);\n}\n","import {\n Cluster,\n ClusterFilter,\n Commitment,\n OptionOrNullable,\n Program,\n ProgramError,\n ProgramRepositoryInterface,\n PublicKey,\n RpcInterface,\n Signer,\n WrappedInstruction,\n createNullRpc,\n} from '@metaplex-foundation/umi'\nimport { createDefaultProgramRepository } from '@metaplex-foundation/umi-program-repository'\n\nimport { PRICEFEED_PROGRAM_ID } from './generated/kinobi/pricefeed'\nimport * as accounts from './generated/kinobi/pricefeed/accounts'\nimport * as errors from './generated/kinobi/pricefeed/errors'\nimport * as instructions from './generated/kinobi/pricefeed/instructions'\nimport * as types from './generated/kinobi/pricefeed/types'\nimport { PriceFeedPDA } from './pda'\n\nexport { PRICEFEED_PROGRAM_ID } from './generated/kinobi/pricefeed'\nexport { accounts, instructions, types, errors }\n\n/**\n * Class representing the PriceFeed.\n */\nexport class PriceFeed {\n public readonly pda: PriceFeedPDA\n public readonly programRepo: ProgramRepositoryInterface\n\n constructor(\n public readonly programId: PublicKey = PRICEFEED_PROGRAM_ID,\n rpc?: RpcInterface\n ) {\n this.pda = new PriceFeedPDA(this.programId)\n if (rpc === undefined) {\n rpc = createNullRpc()\n rpc.getCluster = (): Cluster => 'custom'\n }\n this.programRepo = createDefaultProgramRepository({ rpc }, [\n {\n name: 'pricefeed',\n publicKey: programId,\n getErrorFromCode(code: number, cause?: Error): ProgramError | null {\n return errors.getPricefeedErrorFromCode(code, this, cause)\n },\n getErrorFromName(name: string, cause?: Error): ProgramError | null {\n return errors.getPricefeedErrorFromName(name, this, cause)\n },\n isOnCluster(): boolean {\n return true\n },\n } satisfies Program,\n ])\n }\n\n getProgram(clusterFilter: ClusterFilter = 'custom'): Program {\n return this.programRepo.get('pricefeed', clusterFilter)\n }\n\n initPriceFeed(payer: Signer, param: instructions.InitPriceFeedInstructionDataArgs): WrappedInstruction {\n return instructions.initPriceFeed(\n { programs: this.programRepo, payer },\n {\n payer,\n priceFeed: this.pda.priceFeed(),\n ...param,\n }\n ).items[0]\n }\n\n setPriceFeed(admin: Signer, param: instructions.SetPriceFeedInstructionArgs): WrappedInstruction {\n return instructions.setPriceFeed(\n { programs: this.programRepo },\n {\n admin,\n priceFeed: this.pda.priceFeed(),\n ...param,\n }\n ).items[0]\n }\n\n setPrice(updater: Signer, param: { dstEid: number } & OptionOrNullable<types.PriceParamsArgs>): WrappedInstruction {\n const EID_MODULUS = 30000\n const dstEid = param.dstEid % EID_MODULUS\n const isParamsNull = !('priceRatio' in param)\n\n return instructions.setPrice(\n { programs: this.programRepo },\n {\n updater,\n priceFeed: this.pda.priceFeed(),\n dstEid,\n params: isParamsNull\n ? null\n : {\n priceRatio: param.priceRatio,\n gasPriceInUnit: param.gasPriceInUnit,\n gasPerByte: param.gasPerByte,\n modelType: param.modelType,\n },\n }\n ).items[0]\n }\n\n setSolPrice(updater: Signer, nativeTokenPriceUsd: OptionOrNullable<number | bigint>): WrappedInstruction {\n return instructions.setSolPrice(\n { programs: this.programRepo },\n {\n updater,\n priceFeed: this.pda.priceFeed(),\n nativeTokenPriceUsd,\n }\n ).items[0]\n }\n\n transferAdmin(admin: Signer, newAdmin: PublicKey): WrappedInstruction {\n return instructions.transferAdmin(\n { programs: this.programRepo },\n {\n admin,\n priceFeed: this.pda.priceFeed(),\n },\n {\n admin: newAdmin,\n }\n ).items[0]\n }\n\n getFee(param: instructions.GetFeeInstructionArgs): WrappedInstruction {\n return instructions.getFee(\n { programs: this.programRepo },\n {\n priceFeed: this.pda.priceFeed(),\n ...param,\n }\n ).items[0]\n }\n\n /**\n * Retrieves the price feed account.\n *\n * @param {RpcInterface} rpc - The Solana connection object.\n * @param {Commitment} [commitment] - Optional commitment or configuration.\n *\n * @returns {Promise<accounts.PriceFeed | null>} The price feed account or null if not found.\n */\n async getPriceFeed(rpc: RpcInterface, commitment: Commitment = 'confirmed'): Promise<accounts.PriceFeed | null> {\n const [priceFeed] = this.pda.priceFeed()\n return accounts.safeFetchPriceFeed({ rpc }, priceFeed, { commitment })\n }\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './priceFeed';\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './modelType';\nexport * from './price';\nexport * from './priceParams';\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n GetDataEnumKind,\n GetDataEnumKindContent,\n Serializer,\n dataEnum,\n struct,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\n\nexport type ModelType =\n | { __kind: 'Arbitrum'; gasPerL2Tx: bigint; gasPerL1CalldataByte: number }\n | { __kind: 'Optimism'; l1Eid: number };\n\nexport type ModelTypeArgs =\n | {\n __kind: 'Arbitrum';\n gasPerL2Tx: number | bigint;\n gasPerL1CalldataByte: number;\n }\n | { __kind: 'Optimism'; l1Eid: number };\n\nexport function getModelTypeSerializer(): Serializer<ModelTypeArgs, ModelType> {\n return dataEnum<ModelType>(\n [\n [\n 'Arbitrum',\n struct<GetDataEnumKindContent<ModelType, 'Arbitrum'>>([\n ['gasPerL2Tx', u64()],\n ['gasPerL1CalldataByte', u32()],\n ]),\n ],\n [\n 'Optimism',\n struct<GetDataEnumKindContent<ModelType, 'Optimism'>>([\n ['l1Eid', u32()],\n ]),\n ],\n ],\n { description: 'ModelType' }\n ) as Serializer<ModelTypeArgs, ModelType>;\n}\n\n// Data Enum Helpers.\nexport function modelType(\n kind: 'Arbitrum',\n data: GetDataEnumKindContent<ModelTypeArgs, 'Arbitrum'>\n): GetDataEnumKind<ModelTypeArgs, 'Arbitrum'>;\nexport function modelType(\n kind: 'Optimism',\n data: GetDataEnumKindContent<ModelTypeArgs, 'Optimism'>\n): GetDataEnumKind<ModelTypeArgs, 'Optimism'>;\nexport function modelType<K extends ModelTypeArgs['__kind']>(\n kind: K,\n data?: any\n): Extract<ModelTypeArgs, { __kind: K }> {\n return Array.isArray(data)\n ? { __kind: kind, fields: data }\n : { __kind: kind, ...(data ?? {}) };\n}\nexport function isModelType<K extends ModelType['__kind']>(\n kind: K,\n value: ModelType\n): value is ModelType & { __kind: K } {\n return value.__kind === kind;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Option, OptionOrNullable } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n option,\n struct,\n u128,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport { ModelType, ModelTypeArgs, getModelTypeSerializer } from '.';\n\nexport type Price = {\n eid: number;\n priceRatio: bigint;\n gasPriceInUnit: bigint;\n gasPerByte: number;\n modelType: Option<ModelType>;\n};\n\nexport type PriceArgs = {\n eid: number;\n priceRatio: number | bigint;\n gasPriceInUnit: number | bigint;\n gasPerByte: number;\n modelType: OptionOrNullable<ModelTypeArgs>;\n};\n\nexport function getPriceSerializer(): Serializer<PriceArgs, Price> {\n return struct<Price>(\n [\n ['eid', u32()],\n ['priceRatio', u128()],\n ['gasPriceInUnit', u64()],\n ['gasPerByte', u32()],\n ['modelType', option(getModelTypeSerializer())],\n ],\n { description: 'Price' }\n ) as Serializer<PriceArgs, Price>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Option, OptionOrNullable } from '@metaplex-foundation/umi';\nimport {\n Serializer,\n option,\n struct,\n u128,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport { ModelType, ModelTypeArgs, getModelTypeSerializer } from '.';\n\nexport type PriceParams = {\n priceRatio: bigint;\n gasPriceInUnit: bigint;\n gasPerByte: number;\n modelType: Option<ModelType>;\n};\n\nexport type PriceParamsArgs = {\n priceRatio: number | bigint;\n gasPriceInUnit: number | bigint;\n gasPerByte: number;\n modelType: OptionOrNullable<ModelTypeArgs>;\n};\n\nexport function getPriceParamsSerializer(): Serializer<\n PriceParamsArgs,\n PriceParams\n> {\n return struct<PriceParams>(\n [\n ['priceRatio', u128()],\n ['gasPriceInUnit', u64()],\n ['gasPerByte', u32()],\n ['modelType', option(getModelTypeSerializer())],\n ],\n { description: 'PriceParams' }\n ) as Serializer<PriceParamsArgs, PriceParams>;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Account,\n Context,\n Option,\n OptionOrNullable,\n Pda,\n PublicKey,\n RpcAccount,\n RpcGetAccountOptions,\n RpcGetAccountsOptions,\n assertAccountExists,\n deserializeAccount,\n gpaBuilder,\n publicKey as toPublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n array,\n bytes,\n mapSerializer,\n option,\n publicKey as publicKeySerializer,\n struct,\n u128,\n u8,\n} from '@metaplex-foundation/umi/serializers';\nimport { Price, PriceArgs, getPriceSerializer } from '../types';\n\nexport type PriceFeed = Account<PriceFeedAccountData>;\n\nexport type PriceFeedAccountData = {\n discriminator: Uint8Array;\n admin: PublicKey;\n updaters: Array<PublicKey>;\n priceRatioDenominator: bigint;\n arbitrumCompressionPercent: bigint;\n nativeTokenPriceUsd: Option<bigint>;\n prices: Array<Price>;\n bump: number;\n};\n\nexport type PriceFeedAccountDataArgs = {\n admin: PublicKey;\n updaters: Array<PublicKey>;\n priceRatioDenominator: number | bigint;\n arbitrumCompressionPercent: number | bigint;\n nativeTokenPriceUsd: OptionOrNullable<number | bigint>;\n prices: Array<PriceArgs>;\n bump: number;\n};\n\nexport function getPriceFeedAccountDataSerializer(): Serializer<\n PriceFeedAccountDataArgs,\n PriceFeedAccountData\n> {\n return mapSerializer<PriceFeedAccountDataArgs, any, PriceFeedAccountData>(\n struct<PriceFeedAccountData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['admin', publicKeySerializer()],\n ['updaters', array(publicKeySerializer())],\n ['priceRatioDenominator', u128()],\n ['arbitrumCompressionPercent', u128()],\n ['nativeTokenPriceUsd', option(u128())],\n ['prices', array(getPriceSerializer())],\n ['bump', u8()],\n ],\n { description: 'PriceFeedAccountData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([189, 103, 252, 23, 152, 35, 243, 156]),\n })\n ) as Serializer<PriceFeedAccountDataArgs, PriceFeedAccountData>;\n}\n\nexport function deserializePriceFeed(rawAccount: RpcAccount): PriceFeed {\n return deserializeAccount(rawAccount, getPriceFeedAccountDataSerializer());\n}\n\nexport async function fetchPriceFeed(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<PriceFeed> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n assertAccountExists(maybeAccount, 'PriceFeed');\n return deserializePriceFeed(maybeAccount);\n}\n\nexport async function safeFetchPriceFeed(\n context: Pick<Context, 'rpc'>,\n publicKey: PublicKey | Pda,\n options?: RpcGetAccountOptions\n): Promise<PriceFeed | null> {\n const maybeAccount = await context.rpc.getAccount(\n toPublicKey(publicKey, false),\n options\n );\n return maybeAccount.exists ? deserializePriceFeed(maybeAccount) : null;\n}\n\nexport async function fetchAllPriceFeed(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<PriceFeed[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts.map((maybeAccount) => {\n assertAccountExists(maybeAccount, 'PriceFeed');\n return deserializePriceFeed(maybeAccount);\n });\n}\n\nexport async function safeFetchAllPriceFeed(\n context: Pick<Context, 'rpc'>,\n publicKeys: Array<PublicKey | Pda>,\n options?: RpcGetAccountsOptions\n): Promise<PriceFeed[]> {\n const maybeAccounts = await context.rpc.getAccounts(\n publicKeys.map((key) => toPublicKey(key, false)),\n options\n );\n return maybeAccounts\n .filter((maybeAccount) => maybeAccount.exists)\n .map((maybeAccount) => deserializePriceFeed(maybeAccount as RpcAccount));\n}\n\nexport function getPriceFeedGpaBuilder(\n context: Pick<Context, 'rpc' | 'programs'>\n) {\n const programId = context.programs.getPublicKey(\n 'pricefeed',\n '8ahPGPjEbpgGaZx2NV1iG5Shj7TDwvsjkEDcGWjt94TP'\n );\n return gpaBuilder(context, programId)\n .registerFields<{\n discriminator: Uint8Array;\n admin: PublicKey;\n updaters: Array<PublicKey>;\n priceRatioDenominator: number | bigint;\n arbitrumCompressionPercent: number | bigint;\n nativeTokenPriceUsd: OptionOrNullable<number | bigint>;\n prices: Array<PriceArgs>;\n bump: number;\n }>({\n discriminator: [0, bytes({ size: 8 })],\n admin: [8, publicKeySerializer()],\n updaters: [40, array(publicKeySerializer())],\n priceRatioDenominator: [null, u128()],\n arbitrumCompressionPercent: [null, u128()],\n nativeTokenPriceUsd: [null, option(u128())],\n prices: [null, array(getPriceSerializer())],\n bump: [null, u8()],\n })\n .deserializeUsing<PriceFeed>((account) => deserializePriceFeed(account))\n .whereField(\n 'discriminator',\n new Uint8Array([189, 103, 252, 23, 152, 35, 243, 156])\n );\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './pricefeed';\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Program, ProgramError } from '@metaplex-foundation/umi';\n\ntype ProgramErrorConstructor = new (\n program: Program,\n cause?: Error\n) => ProgramError;\nconst codeToErrorMap: Map<number, ProgramErrorConstructor> = new Map();\nconst nameToErrorMap: Map<string, ProgramErrorConstructor> = new Map();\n\n/** TooManyUpdaters */\nexport class TooManyUpdatersError extends ProgramError {\n override readonly name: string = 'TooManyUpdaters';\n\n readonly code: number = 0x1770; // 6000\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1770, TooManyUpdatersError);\nnameToErrorMap.set('TooManyUpdaters', TooManyUpdatersError);\n\n/** InvalidUpdater */\nexport class InvalidUpdaterError extends ProgramError {\n override readonly name: string = 'InvalidUpdater';\n\n readonly code: number = 0x1771; // 6001\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1771, InvalidUpdaterError);\nnameToErrorMap.set('InvalidUpdater', InvalidUpdaterError);\n\n/** NotFound */\nexport class NotFoundError extends ProgramError {\n override readonly name: string = 'NotFound';\n\n readonly code: number = 0x1772; // 6002\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1772, NotFoundError);\nnameToErrorMap.set('NotFound', NotFoundError);\n\n/** InvalidSize */\nexport class InvalidSizeError extends ProgramError {\n override readonly name: string = 'InvalidSize';\n\n readonly code: number = 0x1773; // 6003\n\n constructor(program: Program, cause?: Error) {\n super('', program, cause);\n }\n}\ncodeToErrorMap.set(0x1773, InvalidSizeError);\nnameToErrorMap.set('InvalidSize', InvalidSizeError);\n\n/**\n * Attempts to resolve a custom program error from the provided error code.\n * @category Errors\n */\nexport function getPricefeedErrorFromCode(\n code: number,\n program: Program,\n cause?: Error\n): ProgramError | null {\n const constructor = codeToErrorMap.get(code);\n return constructor ? new constructor(program, cause) : null;\n}\n\n/**\n * Attempts to resolve a custom program error from the provided error name, i.e. 'Unauthorized'.\n * @category Errors\n */\nexport function getPricefeedErrorFromName(\n name: string,\n program: Program,\n cause?: Error\n): ProgramError | null {\n const constructor = nameToErrorMap.get(name);\n return constructor ? new constructor(program, cause) : null;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './getFee';\nexport * from './initPriceFeed';\nexport * from './setPrice';\nexport * from './setPriceFeed';\nexport * from './setSolPrice';\nexport * from './transferAdmin';\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n AccountMeta,\n isSigner,\n Pda,\n publicKey,\n PublicKey,\n Signer,\n isPda,\n} from '@metaplex-foundation/umi';\n\n/**\n * Transforms the given object such that the given keys are optional.\n * @internal\n */\nexport type PickPartial<T, K extends keyof T> = Omit<T, K> &\n Partial<Pick<T, K>>;\n\n/**\n * Asserts that the given value is not null or undefined.\n * @internal\n */\nexport function expectSome<T>(value: T | null | undefined): T {\n if (value == null) {\n throw new Error('Expected a value but received null or undefined.');\n }\n return value;\n}\n\n/**\n * Asserts that the given value is a PublicKey.\n * @internal\n */\nexport function expectPublicKey(\n value: PublicKey | Pda | Signer | null | undefined\n): PublicKey {\n if (!value) {\n throw new Error('Expected a PublicKey.');\n }\n return publicKey(value, false);\n}\n\n/**\n * Asserts that the given value is a PDA.\n * @internal\n */\nexport function expectPda(\n value: PublicKey | Pda | Signer | null | undefined\n): Pda {\n if (!value || !Array.isArray(value) || !isPda(value)) {\n throw new Error('Expected a PDA.');\n }\n return value;\n}\n\n/**\n * Defines an instruction account to resolve.\n * @internal\n */\nexport type ResolvedAccount<T = PublicKey | Pda | Signer | null> = {\n isWritable: boolean;\n value: T;\n};\n\n/**\n * Defines a set of instruction account to resolve.\n * @internal\n */\nexport type ResolvedAccounts = Record<string, ResolvedAccount>;\n\n/**\n * Defines a set of instruction account to resolve with their indices.\n * @internal\n */\nexport type ResolvedAccountsWithIndices = Record<\n string,\n ResolvedAccount & { index: number }\n>;\n\n/**\n * Get account metas and signers from resolved accounts.\n * @internal\n */\nexport function getAccountMetasAndSigners(\n accounts: ResolvedAccount[],\n optionalAccountStrategy: 'omitted' | 'programId',\n programId: PublicKey\n): [AccountMeta[], Signer[]] {\n const keys: AccountMeta[] = [];\n const signers: Signer[] = [];\n\n accounts.forEach((account) => {\n if (!account.value) {\n if (optionalAccountStrategy === 'omitted') return;\n keys.push({ pubkey: programId, isSigner: false, isWritable: false });\n return;\n }\n\n if (isSigner(account.value)) {\n signers.push(account.value);\n }\n keys.push({\n pubkey: publicKey(account.value, false),\n isSigner: isSigner(account.value),\n isWritable: account.isWritable,\n });\n });\n\n return [keys, signers];\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n u128,\n u32,\n u64,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type GetFeeInstructionAccounts = {\n priceFeed: PublicKey | Pda;\n};\n\n// Data.\nexport type GetFeeInstructionData = {\n discriminator: Uint8Array;\n dstEid: number;\n calldataSize: bigint;\n totalGas: bigint;\n};\n\nexport type GetFeeInstructionDataArgs = {\n dstEid: number;\n calldataSize: number | bigint;\n totalGas: number | bigint;\n};\n\nexport function getGetFeeInstructionDataSerializer(): Serializer<\n GetFeeInstructionDataArgs,\n GetFeeInstructionData\n> {\n return mapSerializer<GetFeeInstructionDataArgs, any, GetFeeInstructionData>(\n struct<GetFeeInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['dstEid', u32()],\n ['calldataSize', u64()],\n ['totalGas', u128()],\n ],\n { description: 'GetFeeInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([115, 195, 235, 161, 25, 219, 60, 29]),\n })\n ) as Serializer<GetFeeInstructionDataArgs, GetFeeInstructionData>;\n}\n\n// Args.\nexport type GetFeeInstructionArgs = GetFeeInstructionDataArgs;\n\n// Instruction.\nexport function getFee(\n context: Pick<Context, 'programs'>,\n input: GetFeeInstructionAccounts & GetFeeInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'pricefeed',\n '8ahPGPjEbpgGaZx2NV1iG5Shj7TDwvsjkEDcGWjt94TP'\n );\n\n // Accounts.\n const resolvedAccounts = {\n priceFeed: {\n index: 0,\n isWritable: false as boolean,\n value: input.priceFeed ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: GetFeeInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getGetFeeInstructionDataSerializer().serialize(\n resolvedArgs as GetFeeInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n array,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type InitPriceFeedInstructionAccounts = {\n payer?: Signer;\n priceFeed: PublicKey | Pda;\n systemProgram?: PublicKey | Pda;\n};\n\n// Data.\nexport type InitPriceFeedInstructionData = {\n discriminator: Uint8Array;\n admin: PublicKey;\n updaters: Array<PublicKey>;\n};\n\nexport type InitPriceFeedInstructionDataArgs = {\n admin: PublicKey;\n updaters: Array<PublicKey>;\n};\n\nexport function getInitPriceFeedInstructionDataSerializer(): Serializer<\n InitPriceFeedInstructionDataArgs,\n InitPriceFeedInstructionData\n> {\n return mapSerializer<\n InitPriceFeedInstructionDataArgs,\n any,\n InitPriceFeedInstructionData\n >(\n struct<InitPriceFeedInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['admin', publicKeySerializer()],\n ['updaters', array(publicKeySerializer())],\n ],\n { description: 'InitPriceFeedInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([27, 209, 184, 5, 152, 116, 136, 16]),\n })\n ) as Serializer<\n InitPriceFeedInstructionDataArgs,\n InitPriceFeedInstructionData\n >;\n}\n\n// Args.\nexport type InitPriceFeedInstructionArgs = InitPriceFeedInstructionDataArgs;\n\n// Instruction.\nexport function initPriceFeed(\n context: Pick<Context, 'payer' | 'programs'>,\n input: InitPriceFeedInstructionAccounts & InitPriceFeedInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'pricefeed',\n '8ahPGPjEbpgGaZx2NV1iG5Shj7TDwvsjkEDcGWjt94TP'\n );\n\n // Accounts.\n const resolvedAccounts = {\n payer: {\n index: 0,\n isWritable: true as boolean,\n value: input.payer ?? null,\n },\n priceFeed: {\n index: 1,\n isWritable: true as boolean,\n value: input.priceFeed ?? null,\n },\n systemProgram: {\n index: 2,\n isWritable: false as boolean,\n value: input.systemProgram ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: InitPriceFeedInstructionArgs = { ...input };\n\n // Default values.\n if (!resolvedAccounts.payer.value) {\n resolvedAccounts.payer.value = context.payer;\n }\n if (!resolvedAccounts.systemProgram.value) {\n resolvedAccounts.systemProgram.value = context.programs.getPublicKey(\n 'splSystem',\n '11111111111111111111111111111111'\n );\n resolvedAccounts.systemProgram.isWritable = false;\n }\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getInitPriceFeedInstructionDataSerializer().serialize(\n resolvedArgs as InitPriceFeedInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Option,\n OptionOrNullable,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n option,\n struct,\n u32,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\nimport {\n PriceParams,\n PriceParamsArgs,\n getPriceParamsSerializer,\n} from '../types';\n\n// Accounts.\nexport type SetPriceInstructionAccounts = {\n updater: Signer;\n priceFeed: PublicKey | Pda;\n};\n\n// Data.\nexport type SetPriceInstructionData = {\n discriminator: Uint8Array;\n dstEid: number;\n params: Option<PriceParams>;\n};\n\nexport type SetPriceInstructionDataArgs = {\n dstEid: number;\n params: OptionOrNullable<PriceParamsArgs>;\n};\n\nexport function getSetPriceInstructionDataSerializer(): Serializer<\n SetPriceInstructionDataArgs,\n SetPriceInstructionData\n> {\n return mapSerializer<\n SetPriceInstructionDataArgs,\n any,\n SetPriceInstructionData\n >(\n struct<SetPriceInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['dstEid', u32()],\n ['params', option(getPriceParamsSerializer())],\n ],\n { description: 'SetPriceInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([16, 19, 182, 8, 149, 83, 72, 181]),\n })\n ) as Serializer<SetPriceInstructionDataArgs, SetPriceInstructionData>;\n}\n\n// Args.\nexport type SetPriceInstructionArgs = SetPriceInstructionDataArgs;\n\n// Instruction.\nexport function setPrice(\n context: Pick<Context, 'programs'>,\n input: SetPriceInstructionAccounts & SetPriceInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'pricefeed',\n '8ahPGPjEbpgGaZx2NV1iG5Shj7TDwvsjkEDcGWjt94TP'\n );\n\n // Accounts.\n const resolvedAccounts = {\n updater: {\n index: 0,\n isWritable: false as boolean,\n value: input.updater ?? null,\n },\n priceFeed: {\n index: 1,\n isWritable: true as boolean,\n value: input.priceFeed ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SetPriceInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSetPriceInstructionDataSerializer().serialize(\n resolvedArgs as SetPriceInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n array,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n u128,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type SetPriceFeedInstructionAccounts = {\n admin: Signer;\n priceFeed: PublicKey | Pda;\n};\n\n// Data.\nexport type SetPriceFeedInstructionData = {\n discriminator: Uint8Array;\n updaters: Array<PublicKey>;\n priceRatioDenominator: bigint;\n arbitrumCompressionPercent: bigint;\n};\n\nexport type SetPriceFeedInstructionDataArgs = {\n updaters: Array<PublicKey>;\n priceRatioDenominator: number | bigint;\n arbitrumCompressionPercent: number | bigint;\n};\n\nexport function getSetPriceFeedInstructionDataSerializer(): Serializer<\n SetPriceFeedInstructionDataArgs,\n SetPriceFeedInstructionData\n> {\n return mapSerializer<\n SetPriceFeedInstructionDataArgs,\n any,\n SetPriceFeedInstructionData\n >(\n struct<SetPriceFeedInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['updaters', array(publicKeySerializer())],\n ['priceRatioDenominator', u128()],\n ['arbitrumCompressionPercent', u128()],\n ],\n { description: 'SetPriceFeedInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([13, 15, 231, 129, 61, 7, 28, 122]),\n })\n ) as Serializer<SetPriceFeedInstructionDataArgs, SetPriceFeedInstructionData>;\n}\n\n// Args.\nexport type SetPriceFeedInstructionArgs = SetPriceFeedInstructionDataArgs;\n\n// Instruction.\nexport function setPriceFeed(\n context: Pick<Context, 'programs'>,\n input: SetPriceFeedInstructionAccounts & SetPriceFeedInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'pricefeed',\n '8ahPGPjEbpgGaZx2NV1iG5Shj7TDwvsjkEDcGWjt94TP'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: true as boolean,\n value: input.admin ?? null,\n },\n priceFeed: {\n index: 1,\n isWritable: true as boolean,\n value: input.priceFeed ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SetPriceFeedInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSetPriceFeedInstructionDataSerializer().serialize(\n resolvedArgs as SetPriceFeedInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Option,\n OptionOrNullable,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n option,\n struct,\n u128,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type SetSolPriceInstructionAccounts = {\n updater: Signer;\n priceFeed: PublicKey | Pda;\n};\n\n// Data.\nexport type SetSolPriceInstructionData = {\n discriminator: Uint8Array;\n nativeTokenPriceUsd: Option<bigint>;\n};\n\nexport type SetSolPriceInstructionDataArgs = {\n nativeTokenPriceUsd: OptionOrNullable<number | bigint>;\n};\n\nexport function getSetSolPriceInstructionDataSerializer(): Serializer<\n SetSolPriceInstructionDataArgs,\n SetSolPriceInstructionData\n> {\n return mapSerializer<\n SetSolPriceInstructionDataArgs,\n any,\n SetSolPriceInstructionData\n >(\n struct<SetSolPriceInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['nativeTokenPriceUsd', option(u128())],\n ],\n { description: 'SetSolPriceInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([151, 237, 70, 191, 232, 81, 138, 214]),\n })\n ) as Serializer<SetSolPriceInstructionDataArgs, SetSolPriceInstructionData>;\n}\n\n// Args.\nexport type SetSolPriceInstructionArgs = SetSolPriceInstructionDataArgs;\n\n// Instruction.\nexport function setSolPrice(\n context: Pick<Context, 'programs'>,\n input: SetSolPriceInstructionAccounts & SetSolPriceInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'pricefeed',\n '8ahPGPjEbpgGaZx2NV1iG5Shj7TDwvsjkEDcGWjt94TP'\n );\n\n // Accounts.\n const resolvedAccounts = {\n updater: {\n index: 0,\n isWritable: false as boolean,\n value: input.updater ?? null,\n },\n priceFeed: {\n index: 1,\n isWritable: true as boolean,\n value: input.priceFeed ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: SetSolPriceInstructionArgs = { ...input };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getSetSolPriceInstructionDataSerializer().serialize(\n resolvedArgs as SetSolPriceInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n Pda,\n PublicKey,\n Signer,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n publicKey as publicKeySerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Accounts.\nexport type TransferAdminInstructionAccounts = {\n admin: Signer;\n priceFeed: PublicKey | Pda;\n};\n\n// Data.\nexport type TransferAdminInstructionData = {\n discriminator: Uint8Array;\n admin: PublicKey;\n};\n\nexport type TransferAdminInstructionDataArgs = { admin: PublicKey };\n\nexport function getTransferAdminInstructionDataSerializer(): Serializer<\n TransferAdminInstructionDataArgs,\n TransferAdminInstructionData\n> {\n return mapSerializer<\n TransferAdminInstructionDataArgs,\n any,\n TransferAdminInstructionData\n >(\n struct<TransferAdminInstructionData>(\n [\n ['discriminator', bytes({ size: 8 })],\n ['admin', publicKeySerializer()],\n ],\n { description: 'TransferAdminInstructionData' }\n ),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([42, 242, 66, 106, 228, 10, 111, 156]),\n })\n ) as Serializer<\n TransferAdminInstructionDataArgs,\n TransferAdminInstructionData\n >;\n}\n\n// Args.\nexport type TransferAdminInstructionArgs = TransferAdminInstructionDataArgs;\n\n// Instruction.\nexport function transferAdmin(\n context: Pick<Context, 'programs'>,\n accounts: TransferAdminInstructionAccounts,\n args: TransferAdminInstructionArgs\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'pricefeed',\n '8ahPGPjEbpgGaZx2NV1iG5Shj7TDwvsjkEDcGWjt94TP'\n );\n\n // Accounts.\n const resolvedAccounts = {\n admin: {\n index: 0,\n isWritable: false as boolean,\n value: accounts.admin ?? null,\n },\n priceFeed: {\n index: 1,\n isWritable: true as boolean,\n value: accounts.priceFeed ?? null,\n },\n } satisfies ResolvedAccountsWithIndices;\n\n // Arguments.\n const resolvedArgs: TransferAdminInstructionArgs = { ...args };\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts\n ).sort((a, b) => a.index - b.index);\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getTransferAdminInstructionDataSerializer().serialize(\n resolvedArgs as TransferAdminInstructionDataArgs\n );\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n ClusterFilter,\n Context,\n Program,\n PublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n getPricefeedErrorFromCode,\n getPricefeedErrorFromName,\n} from '../errors';\n\nexport const PRICEFEED_PROGRAM_ID =\n '8ahPGPjEbpgGaZx2NV1iG5Shj7TDwvsjkEDcGWjt94TP' as PublicKey<'8ahPGPjEbpgGaZx2NV1iG5Shj7TDwvsjkEDcGWjt94TP'>;\n\nexport function createPricefeedProgram(): Program {\n return {\n name: 'pricefeed',\n publicKey: PRICEFEED_PROGRAM_ID,\n getErrorFromCode(code: number, cause?: Error) {\n return getPricefeedErrorFromCode(code, this, cause);\n },\n getErrorFromName(name: string, cause?: Error) {\n return getPricefeedErrorFromName(name, this, cause);\n },\n isOnCluster() {\n return true;\n },\n };\n}\n\nexport function getPricefeedProgram<T extends Program = Program>(\n context: Pick<Context, 'programs'>,\n clusterFilter?: ClusterFilter\n): T {\n return context.programs.get<T>('pricefeed', clusterFilter);\n}\n\nexport function getPricefeedProgramId(\n context: Pick<Context, 'programs'>,\n clusterFilter?: ClusterFilter\n): PublicKey {\n return context.programs.getPublicKey(\n 'pricefeed',\n PRICEFEED_PROGRAM_ID,\n clusterFilter\n );\n}\n","import { Environment } from '@layerzerolabs/lz-definitions'\n\n/**\n * Array of IDL types.\n */\nexport const idlTypes = [\n 'MessageLibQuoteParams',\n 'MessageLibSendParams',\n 'MessagingFee',\n 'MessagingReceipt',\n 'PacketForQuote',\n 'Packet',\n 'InitConfigParams',\n 'MessageLibSetConfigParams',\n 'MessageLibSnapshotConfigParams',\n 'MessageLibResetConfigParams',\n]\n\n/**\n * Array of message libraries.\n */\nexport const messageLibs = ['uln', 'simple_messagelib']\n\n/**\n * Faucet URLs for different environments.\n */\nexport const FAUCET_URL: { [env in Environment]: string } = {\n [Environment.MAINNET]: '',\n [Environment.TESTNET]: '',\n [Environment.DEVNET]: '',\n [Environment.LOCAL]: 'http://127.0.0.1:9900',\n}\n","import { PublicKey, publicKey } from '@metaplex-foundation/umi'\n\nimport { Network } from '@layerzerolabs/lz-definitions'\n\n/**\n * Supported programs.\n */\nexport type SupportedPrograms =\n | 'endpoint'\n | 'simple_messagelib'\n | 'uln'\n | 'blocked_messagelib'\n | 'executor'\n | 'pricefeed'\n | 'dvn'\n\n/**\n * Interface representing a deployment.\n */\nexport interface Deployment {\n /**\n * The name of the supported program.\n */\n name: SupportedPrograms\n\n /**\n * The network of the deployment.\n */\n network: Network\n\n /**\n * The address of the deployment.\n */\n address: string\n\n /**\n * Compatible versions of the deployment.\n */\n compatibleVersions: string[]\n\n /**\n * The deployer of the deployment.\n */\n deployer: string\n}\n\n/**\n * Gets the program keypair.\n *\n * @param {Network | 'default'} network - The network.\n * @param {SupportedPrograms} program - The supported program.\n * @returns {PublicKey} The public key of the program.\n */\nexport function getProgramKeypair(network: Network | 'default', program: SupportedPrograms): PublicKey {\n network = network === 'default' ? 'solana-sandbox-local' : network\n const deployment = require(`@layerzerolabs/lz-solana-sdk-v2/deployments/${network}/${program}.json`) as Deployment\n return publicKey(deployment.address)\n}\n\n/**\n * Gets the endpoint program ID.\n *\n * @param {Network | 'default'} network - The network.\n * @returns {PublicKey} The public key of the endpoint program.\n */\nexport function getEndpointProgramId(network: Network | 'default'): PublicKey {\n return getProgramKeypair(network, 'endpoint')\n}\n\n/**\n * Gets the simple message library program ID.\n *\n * @param {Network | 'default'} network - The network.\n * @returns {PublicKey} The public key of the simple message library program.\n */\nexport function getSimpleMessageLibProgramId(network: Network | 'default'): PublicKey {\n return getProgramKeypair(network, 'simple_messagelib')\n}\n\n/**\n * Gets the ULN program ID.\n *\n * @param {Network | 'default'} network - The network.\n * @returns {PublicKey} The public key of the ULN program.\n */\nexport function getULNProgramId(network: Network | 'default'): PublicKey {\n return getProgramKeypair(network, 'uln')\n}\n\n/**\n * Gets the DVN program ID.\n *\n * @param {Network | 'default'} network - The network.\n * @returns {PublicKey} The public key of the DVN program.\n */\nexport function getDVNProgramId(network: Network | 'default'): PublicKey {\n return getProgramKeypair(network, 'dvn')\n}\n\n/**\n * Gets the blocked message library program ID.\n *\n * @param {Network | 'default'} network - The network.\n * @returns {PublicKey} The public key of the blocked message library program.\n */\nexport function getBlockedMessageLibProgramId(network: Network | 'default'): PublicKey {\n return getProgramKeypair(network, 'blocked_messagelib')\n}\n\n/**\n * Gets the executor program ID.\n *\n * @param {Network | 'default'} network - The network.\n * @returns {PublicKey} The public key of the executor program.\n */\nexport function getExecutorProgramId(network: Network | 'default'): PublicKey {\n return getProgramKeypair(network, 'executor')\n}\n\n/**\n * Gets the pricefeed program ID.\n *\n * @param {Network | 'default'} network - The network.\n * @returns {PublicKey} The public key of the pricefeed program.\n */\nexport function getPricefeedProgramId(network: Network | 'default'): PublicKey {\n return getProgramKeypair(network, 'pricefeed')\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nexport * from './errors';\nexport * from './instructions';\nexport * from './programs';\nexport * from './shared';\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport { Program, ProgramError } from '@metaplex-foundation/umi';\n\ntype ProgramErrorConstructor = new (\n program: Program,\n cause?: Error\n) => ProgramError;\nconst codeToErrorMap: Map<number, ProgramErrorConstructor> = new Map();\nconst nameToErrorMap: Map<string, ProgramErrorConstructor> = new Map();\n\n/**\n * Attempts to resolve a custom program error from the provided error code.\n * @category Errors\n */\nexport function getBlockedMessagelibErrorFromCode(\n code: number,\n program: Program,\n cause?: Error\n): ProgramError | null {\n const constructor = codeToErrorMap.get(code);\n return constructor ? new constructor(program, cause) : null;\n}\n\n/**\n * Attempts to resolve a custom program error from the provided error name, i.e. 'Unauthorized'.\n * @category Errors\n */\nexport function getBlockedMessagelibErrorFromName(\n name: string,\n program: Program,\n cause?: Error\n): ProgramError | null {\n const constructor = nameToErrorMap.get(name);\n return constructor ? new constructor(program, cause) : null;\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n AccountMeta,\n isSigner,\n Pda,\n publicKey,\n PublicKey,\n Signer,\n isPda,\n} from '@metaplex-foundation/umi';\n\n/**\n * Transforms the given object such that the given keys are optional.\n * @internal\n */\nexport type PickPartial<T, K extends keyof T> = Omit<T, K> &\n Partial<Pick<T, K>>;\n\n/**\n * Asserts that the given value is not null or undefined.\n * @internal\n */\nexport function expectSome<T>(value: T | null | undefined): T {\n if (value == null) {\n throw new Error('Expected a value but received null or undefined.');\n }\n return value;\n}\n\n/**\n * Asserts that the given value is a PublicKey.\n * @internal\n */\nexport function expectPublicKey(\n value: PublicKey | Pda | Signer | null | undefined\n): PublicKey {\n if (!value) {\n throw new Error('Expected a PublicKey.');\n }\n return publicKey(value, false);\n}\n\n/**\n * Asserts that the given value is a PDA.\n * @internal\n */\nexport function expectPda(\n value: PublicKey | Pda | Signer | null | undefined\n): Pda {\n if (!value || !Array.isArray(value) || !isPda(value)) {\n throw new Error('Expected a PDA.');\n }\n return value;\n}\n\n/**\n * Defines an instruction account to resolve.\n * @internal\n */\nexport type ResolvedAccount<T = PublicKey | Pda | Signer | null> = {\n isWritable: boolean;\n value: T;\n};\n\n/**\n * Defines a set of instruction account to resolve.\n * @internal\n */\nexport type ResolvedAccounts = Record<string, ResolvedAccount>;\n\n/**\n * Defines a set of instruction account to resolve with their indices.\n * @internal\n */\nexport type ResolvedAccountsWithIndices = Record<\n string,\n ResolvedAccount & { index: number }\n>;\n\n/**\n * Get account metas and signers from resolved accounts.\n * @internal\n */\nexport function getAccountMetasAndSigners(\n accounts: ResolvedAccount[],\n optionalAccountStrategy: 'omitted' | 'programId',\n programId: PublicKey\n): [AccountMeta[], Signer[]] {\n const keys: AccountMeta[] = [];\n const signers: Signer[] = [];\n\n accounts.forEach((account) => {\n if (!account.value) {\n if (optionalAccountStrategy === 'omitted') return;\n keys.push({ pubkey: programId, isSigner: false, isWritable: false });\n return;\n }\n\n if (isSigner(account.value)) {\n signers.push(account.value);\n }\n keys.push({\n pubkey: publicKey(account.value, false),\n isSigner: isSigner(account.value),\n isWritable: account.isWritable,\n });\n });\n\n return [keys, signers];\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n Context,\n TransactionBuilder,\n transactionBuilder,\n} from '@metaplex-foundation/umi';\nimport {\n Serializer,\n bytes,\n mapSerializer,\n struct,\n} from '@metaplex-foundation/umi/serializers';\nimport {\n ResolvedAccount,\n ResolvedAccountsWithIndices,\n getAccountMetasAndSigners,\n} from '../shared';\n\n// Data.\nexport type VersionInstructionData = { discriminator: Uint8Array };\n\nexport type VersionInstructionDataArgs = {};\n\nexport function getVersionInstructionDataSerializer(): Serializer<\n VersionInstructionDataArgs,\n VersionInstructionData\n> {\n return mapSerializer<VersionInstructionDataArgs, any, VersionInstructionData>(\n struct<VersionInstructionData>([['discriminator', bytes({ size: 8 })]], {\n description: 'VersionInstructionData',\n }),\n (value) => ({\n ...value,\n discriminator: new Uint8Array([118, 65, 195, 198, 129, 216, 252, 192]),\n })\n ) as Serializer<VersionInstructionDataArgs, VersionInstructionData>;\n}\n\n// Instruction.\nexport function version(\n context: Pick<Context, 'programs'>\n): TransactionBuilder {\n // Program ID.\n const programId = context.programs.getPublicKey(\n 'blockedMessagelib',\n '2XrYqmhBMPJgDsb4SVbjV1PnJBprurd5bzRCkHwiFCJB'\n );\n\n // Accounts.\n const resolvedAccounts = {} satisfies ResolvedAccountsWithIndices;\n\n // Accounts in order.\n const orderedAccounts: ResolvedAccount[] = Object.values(\n resolvedAccounts as ResolvedAccountsWithIndices\n );\n\n // Keys and Signers.\n const [keys, signers] = getAccountMetasAndSigners(\n orderedAccounts,\n 'programId',\n programId\n );\n\n // Data.\n const data = getVersionInstructionDataSerializer().serialize({});\n\n // Bytes Created On Chain.\n const bytesCreatedOnChain = 0;\n\n return transactionBuilder([\n { instruction: { keys, programId, data }, signers, bytesCreatedOnChain },\n ]);\n}\n","/**\n * This code was AUTOGENERATED using the kinobi library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun kinobi to update it.\n *\n * @see https://github.com/kinobi-so/kinobi\n */\n\nimport {\n ClusterFilter,\n Context,\n Program,\n PublicKey,\n} from '@metaplex-foundation/umi';\nimport {\n getBlockedMessagelibErrorFromCode,\n getBlockedMessagelibErrorFromName,\n} from '../errors';\n\nexport const BLOCKED_MESSAGELIB_PROGRAM_ID =\n '2XrYqmhBMPJgDsb4SVbjV1PnJBprurd5bzRCkHwiFCJB' as PublicKey<'2XrYqmhBMPJgDsb4SVbjV1PnJBprurd5bzRCkHwiFCJB'>;\n\nexport function createBlockedMessagelibProgram(): Program {\n return {\n name: 'blockedMessagelib',\n publicKey: BLOCKED_MESSAGELIB_PROGRAM_ID,\n getErrorFromCode(code: number, cause?: Error) {\n return getBlockedMessagelibErrorFromCode(code, this, cause);\n },\n getErrorFromName(name: string, cause?: Error) {\n return getBlockedMessagelibErrorFromName(name, this, cause);\n },\n isOnCluster() {\n return true;\n },\n };\n}\n\nexport function getBlockedMessagelibProgram<T extends Program = Program>(\n context: Pick<Context, 'programs'>,\n clusterFilter?: ClusterFilter\n): T {\n return context.programs.get<T>('blockedMessagelib', clusterFilter);\n}\n\nexport function getBlockedMessagelibProgramId(\n context: Pick<Context, 'programs'>,\n clusterFilter?: ClusterFilter\n): PublicKey {\n return context.programs.getPublicKey(\n 'blockedMessagelib',\n BLOCKED_MESSAGELIB_PROGRAM_ID,\n clusterFilter\n );\n}\n","import {\n AccountMeta,\n Commitment,\n MaybeRpcAccount,\n PublicKey,\n RpcInterface,\n createNoopSigner,\n defaultPublicKey,\n isSome,\n} from '@metaplex-foundation/umi'\nimport { fromWeb3JsPublicKey } from '@metaplex-foundation/umi-web3js-adapters'\nimport * as web3 from '@solana/web3.js'\nimport invariant from 'tiny-invariant'\n\nimport { addressToBytes32 } from '@layerzerolabs/lz-v2-utilities'\n\nimport { EndpointProgram, SimpleMessageLibProgram, UlnProgram } from '.'\nimport { DVN, accounts as DvnAccounts } from './dvn'\nimport { DefaultMessageLib } from './endpoint'\nimport { Executor, accounts as ExecutorAccounts } from './executor'\n\n/**\n * Interface representing keyed account information.\n */\ninterface KeyedAccountInfo {\n /**\n * The account ID.\n */\n accountId: PublicKey\n accountInfo: MaybeRpcAccount\n}\n\n/**\n * Enum representing quote or send actions.\n */\nenum QuoteOrSend {\n /**\n * Quote action.\n */\n Quote,\n\n /**\n * Send action.\n */\n Send,\n}\n\n/**\n * Class representing a helper for sending transactions.\n */\nexport class SendHelper {\n private endpoint: EndpointProgram.Endpoint\n private uln: UlnProgram.Uln\n private simpleMsgLib: SimpleMessageLibProgram.SimpleMessageLib\n private accounts = new Map<string, MaybeRpcAccount>()\n\n /**\n * Creates an instance of the SendHelper class.\n *\n * @param {PublicKey} [endpointProgram=EndpointProgram.PROGRAM_ID] - The endpoint program public key.\n * @param {PublicKey} [ulnProgram=UlnProgram.PROGRAM_ID] - The ULN program public key.\n * @param {PublicKey} [simpleMsgLibProgram=SimpleMessageLibProgram.PROGRAM_ID] - The simple message library program public key.\n */\n constructor(\n public readonly endpointProgram: PublicKey = EndpointProgram.ENDPOINT_PROGRAM_ID,\n public readonly ulnProgram: PublicKey = UlnProgram.ULN_PROGRAM_ID,\n public readonly simpleMsgLibProgram: PublicKey = SimpleMessageLibProgram.SIMPLE_MESSAGELIB_PROGRAM_ID\n ) {\n this.endpoint = new EndpointProgram.Endpoint(endpointProgram)\n this.uln = new UlnProgram.Uln(ulnProgram)\n this.simpleMsgLib = new SimpleMessageLibProgram.SimpleMessageLib(simpleMsgLibProgram)\n }\n\n /**\n * Fetches multiple account information.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey[]} keys - The public keys of the accounts.\n * @param {Commitment | GetAccountInfoConfig} [commitment] - The commitment level or account info configuration.\n * @returns {Promise<(AccountInfo<Buffer> | null)[]>} A promise that resolves to an array of account information.\n */\n private async getMultipleAccountsInfo(\n rpc: RpcInterface,\n keys: PublicKey[],\n commitment: Commitment = 'confirmed'\n ): Promise<MaybeRpcAccount[]> {\n // check if all accounts are already fetched\n const missingKeys = keys.filter((key) => !this.accounts.has(key))\n\n // fetch missing accounts\n if (missingKeys.length > 0) {\n const infos = await rpc.getAccounts(missingKeys, { commitment })\n infos.forEach((info, i) => {\n this.accounts.set(missingKeys[i], info)\n })\n }\n\n // return all accounts\n return keys.map((key) => this.accounts.get(key)!)\n }\n\n async getQuoteAccounts(\n rpc: RpcInterface,\n params: {\n payer: PublicKey | web3.PublicKey\n sender: PublicKey | web3.PublicKey\n dstEid: number\n receiver: string | Uint8Array\n },\n commitment: Commitment = 'confirmed'\n ): Promise<AccountMeta[]> {\n const { payer: _payer, sender: _sender, dstEid, receiver } = params\n const payer = _payer instanceof web3.PublicKey ? fromWeb3JsPublicKey(_payer) : _payer\n const sender = _sender instanceof web3.PublicKey ? fromWeb3JsPublicKey(_sender) : _sender\n\n const [sendLibConfig] = this.endpoint.pda.sendLibraryConfig(sender, dstEid)\n const [defaultSendLibConfig] = this.endpoint.pda.defaultSendLibraryConfig(dstEid)\n const [simpleMsgLib] = this.simpleMsgLib.pda.messageLib()\n const [uln] = this.uln.pda.messageLib()\n const [ulnDefaultSendConfig] = this.uln.pda.defaultSendConfig(dstEid)\n const [ulnSendConfig] = this.uln.pda.sendConfig(dstEid, sender)\n const [\n sendLibConfigBuf,\n defaultSendLibConfigBuf,\n _simpleMsgLibBuf,\n ulnBuf,\n ulnDefaultSendConfigBuf,\n ulnSendConfigBuf,\n ] = await this.getMultipleAccountsInfo(\n rpc,\n [sendLibConfig, defaultSendLibConfig, simpleMsgLib, uln, ulnDefaultSendConfig, ulnSendConfig],\n commitment\n )\n invariant(defaultSendLibConfigBuf.exists && sendLibConfigBuf.exists, 'endpoint send library not initialized')\n const sendLibConfigInfo = EndpointProgram.accounts.deserializeSendLibraryConfig(sendLibConfigBuf)\n const defaultSendLibConfigInfo = EndpointProgram.accounts.deserializeSendLibraryConfig(defaultSendLibConfigBuf)\n const msgLib =\n sendLibConfigInfo.messageLib.toString() === DefaultMessageLib.toString()\n ? defaultSendLibConfigInfo.messageLib\n : sendLibConfigInfo.messageLib\n\n let msgLibProgram = this.ulnProgram\n if (msgLib === this.simpleMsgLib.pda.messageLib()[0]) {\n msgLibProgram = this.simpleMsgLibProgram\n return this.getEndpointAccounts(msgLibProgram, msgLib, sender, dstEid, receiver, QuoteOrSend.Quote).concat(\n this.getSimpleMsgLibAccounts(payer, QuoteOrSend.Quote)\n )\n }\n if (msgLib !== this.uln.pda.messageLib()[0]) {\n throw new Error('Invalid message library')\n }\n\n return this.getEndpointAccounts(msgLibProgram, msgLib, sender, dstEid, receiver, QuoteOrSend.Quote).concat(\n await this.getUlnAccounts(\n rpc,\n payer,\n {\n accountId: uln,\n accountInfo: ulnBuf,\n },\n {\n accountId: ulnDefaultSendConfig,\n accountInfo: ulnDefaultSendConfigBuf,\n },\n {\n accountId: ulnSendConfig,\n accountInfo: ulnSendConfigBuf,\n },\n QuoteOrSend.Quote,\n commitment\n )\n )\n }\n\n /**\n * @param connection\n * @param payer\n * @param sender the PDA of the oApp\n * @param dstEid the destination endpoint id\n * @param receiver the remote peer's address\n * @param commitmentOrConfig\n * 1 or 3(1+2) RPC calls\n * */\n async getSendAccounts(\n rpc: RpcInterface,\n params: {\n payer: PublicKey | web3.PublicKey\n sender: PublicKey | web3.PublicKey\n dstEid: number\n receiver: string | Uint8Array\n },\n commitment: Commitment = 'confirmed'\n ): Promise<AccountMeta[]> {\n const { payer: _payer, sender: _sender, dstEid, receiver } = params\n const payer = _payer instanceof web3.PublicKey ? fromWeb3JsPublicKey(_payer) : _payer\n const sender = _sender instanceof web3.PublicKey ? fromWeb3JsPublicKey(_sender) : _sender\n\n const [sendLibConfig] = this.endpoint.pda.sendLibraryConfig(sender, dstEid)\n const [defaultSendLibConfig] = this.endpoint.pda.defaultSendLibraryConfig(dstEid)\n const [simpleMsgLib] = this.simpleMsgLib.pda.messageLib()\n const [uln] = this.uln.pda.messageLib()\n const [ulnDefaultSendConfig] = this.uln.pda.defaultSendConfig(dstEid)\n const [ulnSendConfig] = this.uln.pda.sendConfig(dstEid, sender)\n const [\n sendLibConfigBuf,\n defaultSendLibConfigBuf,\n _simpleMsgLibBuf,\n ulnBuf,\n ulnDefaultSendConfigBuf,\n ulnSendConfigBuf,\n ] = await this.getMultipleAccountsInfo(\n rpc,\n [sendLibConfig, defaultSendLibConfig, simpleMsgLib, uln, ulnDefaultSendConfig, ulnSendConfig],\n commitment\n )\n invariant(defaultSendLibConfigBuf.exists && sendLibConfigBuf.exists, 'endpoint send library not initialized')\n const sendLibConfigInfo = EndpointProgram.accounts.deserializeSendLibraryConfig(sendLibConfigBuf)\n const defaultSendLibConfigInfo = EndpointProgram.accounts.deserializeSendLibraryConfig(defaultSendLibConfigBuf)\n const msgLib =\n sendLibConfigInfo.messageLib.toString() === DefaultMessageLib.toString()\n ? defaultSendLibConfigInfo.messageLib\n : sendLibConfigInfo.messageLib\n\n let msgLibProgram = this.ulnProgram\n if (msgLib === this.simpleMsgLib.pda.messageLib()[0]) {\n msgLibProgram = this.simpleMsgLibProgram\n return this.getEndpointAccounts(msgLibProgram, msgLib, sender, dstEid, receiver, QuoteOrSend.Send).concat(\n this.getSimpleMsgLibAccounts(payer, QuoteOrSend.Send)\n )\n }\n if (msgLib !== this.uln.pda.messageLib()[0]) {\n throw new Error('Invalid message library')\n }\n return this.getEndpointAccounts(msgLibProgram, msgLib, sender, dstEid, receiver, QuoteOrSend.Send).concat(\n await this.getUlnAccounts(\n rpc,\n payer,\n {\n accountId: uln,\n accountInfo: ulnBuf,\n },\n {\n accountId: ulnDefaultSendConfig,\n accountInfo: ulnDefaultSendConfigBuf,\n },\n {\n accountId: ulnSendConfig,\n accountInfo: ulnSendConfigBuf,\n },\n QuoteOrSend.Send,\n commitment\n )\n )\n }\n\n /**\n * Gets the account metadata for the endpoint.\n *\n * @param {PublicKey} msgLibProgram - The message library program public key.\n * @param {PublicKey} msgLib - The message library public key.\n * @param {PublicKey} sender - The sender public key.\n * @param {number} dstEid - The destination endpoint ID.\n * @param {string} receiver - The receiver address.\n * @param {QuoteOrSend} quoteOrSend - The quote or send action.\n * @returns {AccountMeta[]} An array of account metadata.\n */\n private getEndpointAccounts(\n msgLibProgram: PublicKey,\n msgLib: PublicKey,\n sender: PublicKey,\n dstEid: number,\n _receiver: string | Uint8Array,\n quoteOrSend: QuoteOrSend\n ): AccountMeta[] {\n const receiver = typeof _receiver === 'string' ? addressToBytes32(_receiver) : _receiver\n const [sendLibraryConfig] = this.endpoint.pda.sendLibraryConfig(sender, dstEid)\n const [defaultSendLibraryConfig] = this.endpoint.pda.defaultSendLibraryConfig(dstEid)\n const [sendLibraryInfo] = this.endpoint.pda.messageLibraryInfo(msgLib)\n const [nonce] = this.endpoint.pda.nonce(sender, dstEid, receiver)\n let accounts: AccountMeta[]\n const endpoint = new EndpointProgram.Endpoint(this.endpointProgram)\n if (quoteOrSend === QuoteOrSend.Quote) {\n accounts = EndpointProgram.instructions\n .quote(\n { programs: endpoint.programRepo },\n {\n sendLibraryProgram: msgLibProgram,\n sendLibraryConfig,\n defaultSendLibraryConfig,\n sendLibraryInfo,\n endpoint: this.endpoint.pda.setting()[0],\n nonce,\n\n // param\n sender: defaultPublicKey(),\n dstEid: 0,\n receiver: new Uint8Array(32),\n message: new Uint8Array(32),\n options: new Uint8Array(32),\n payInLzToken: false,\n }\n )\n .getInstructions()[0].keys\n } else {\n accounts = EndpointProgram.instructions\n .send(\n { programs: endpoint.programRepo },\n {\n sender: createNoopSigner(sender), //signer\n sendLibraryProgram: msgLibProgram,\n sendLibraryConfig,\n defaultSendLibraryConfig,\n sendLibraryInfo,\n endpoint: this.endpoint.pda.setting()[0],\n nonce,\n program: this.endpointProgram,\n eventAuthority: this.endpoint.eventAuthority,\n\n // param\n dstEid: 0,\n receiver: new Uint8Array(32),\n message: new Uint8Array(32),\n options: new Uint8Array(32),\n nativeFee: 0,\n lzTokenFee: 0,\n }\n )\n .getInstructions()[0].keys\n }\n\n accounts.forEach((item: AccountMeta) => {\n item.isSigner = false\n })\n return [\n {\n pubkey: this.endpoint.programId,\n isSigner: false,\n isWritable: false,\n },\n ...accounts,\n ]\n }\n\n /**\n * Gets the account metadata for the simple message library.\n *\n * @param {PublicKey} payer - The payer public key.\n * @param {QuoteOrSend} quoteOrSend - The quote or send action.\n * @returns {AccountMeta[]} An array of account metadata.\n */\n private getSimpleMsgLibAccounts(payer: PublicKey, quoteOrSend: QuoteOrSend): AccountMeta[] {\n const [msgLib] = this.simpleMsgLib.pda.messageLib()\n let accounts: AccountMeta[]\n const simpleMsgLib = new SimpleMessageLibProgram.SimpleMessageLib(this.simpleMsgLibProgram)\n if (quoteOrSend === QuoteOrSend.Quote) {\n accounts = SimpleMessageLibProgram.instructions\n .quote(\n { programs: simpleMsgLib.programRepo },\n {\n endpoint: createNoopSigner(defaultPublicKey()),\n messageLib: msgLib,\n // param\n packet: {\n nonce: 0,\n srcEid: 0,\n sender: defaultPublicKey(),\n dstEid: 0,\n receiver: new Uint8Array(32),\n guid: new Uint8Array(32),\n message: new Uint8Array(4),\n },\n options: new Uint8Array(4),\n payInLzToken: false,\n }\n )\n .getInstructions()[0].keys\n } else {\n accounts = SimpleMessageLibProgram.instructions\n .send(\n { programs: simpleMsgLib.programRepo, payer: createNoopSigner(payer) },\n {\n endpoint: createNoopSigner(defaultPublicKey()), // useless\n messageLib: msgLib,\n payer: createNoopSigner(payer),\n // param\n packet: {\n nonce: 0,\n srcEid: 0,\n sender: defaultPublicKey(),\n dstEid: 0,\n receiver: new Uint8Array(32),\n guid: new Uint8Array(32),\n message: new Uint8Array(4),\n },\n options: new Uint8Array(4),\n nativeFee: 0,\n }\n )\n .getInstructions()[0].keys\n }\n accounts.forEach((key) => {\n if (payer !== key.pubkey) {\n key.isSigner = false\n }\n })\n return accounts.slice(1)\n }\n\n /**\n * Gets the account metadata for the ULN.\n *\n * @param {Connection} connection - The connection to the Solana cluster.\n * @param {PublicKey} payer - The payer public key.\n * @param {KeyedAccountInfo} ulnInfo - The ULN account information.\n * @param {KeyedAccountInfo} ulnDefaultSendConfigInfo - The ULN default send configuration account information.\n * @param {KeyedAccountInfo} ulnSendConfigInfo - The ULN send configuration account information.\n * @param {QuoteOrSend} quoteOrSend - The quote or send action.\n * @param {Commitment | GetAccountInfoConfig} [commitment] - The commitment level or account info configuration.\n * @returns {Promise<AccountMeta[]>} A promise that resolves to an array of account metadata.\n */\n private async getUlnAccounts(\n rpc: RpcInterface,\n payer: PublicKey,\n ulnInfo: KeyedAccountInfo,\n ulnDefaultSendConfigInfo: KeyedAccountInfo,\n ulnSendConfigInfo: KeyedAccountInfo,\n quoteOrSend: QuoteOrSend,\n commitment: Commitment = 'confirmed'\n ): Promise<AccountMeta[]> {\n invariant(\n ulnInfo.accountInfo.exists && ulnDefaultSendConfigInfo.accountInfo.exists,\n 'uln send library not initialized'\n )\n const ulnState = UlnProgram.accounts.deserializeUlnSettings(ulnInfo.accountInfo)\n const defaultSendConfigState = UlnProgram.accounts.deserializeSendConfig(ulnDefaultSendConfigInfo.accountInfo)\n const sendConfigState = ulnSendConfigInfo.accountInfo.exists\n ? UlnProgram.accounts.deserializeSendConfig(ulnSendConfigInfo.accountInfo)\n : null\n\n let {\n executor,\n uln: { requiredDvns, optionalDvns },\n } = defaultSendConfigState\n\n // if the executor is set in the send config, use it\n if (sendConfigState?.executor && sendConfigState.executor.executor !== defaultPublicKey()) {\n ;({ executor } = sendConfigState)\n }\n\n // if the requiredDvns is set in the send config, use it\n if (sendConfigState && sendConfigState.uln.requiredDvns.length > 0) {\n requiredDvns = sendConfigState.uln.requiredDvns.filter((p) => {\n return p !== defaultPublicKey()\n })\n }\n\n // if the optionalDvns is set in the send config, use it\n if (sendConfigState && sendConfigState.uln.optionalDvns.length > 0) {\n optionalDvns = sendConfigState.uln.optionalDvns.filter((p) => {\n return p !== defaultPublicKey()\n })\n }\n\n const dvnsKey = requiredDvns.concat(optionalDvns)\n const [executorBuf, ...dvnBuf] = await this.getMultipleAccountsInfo(\n rpc,\n [executor.executor, ...dvnsKey],\n commitment\n )\n invariant(executorBuf.exists, `executor:${executor.executor} not initialized`)\n\n let executorAccounts: AccountMeta[], dvnAccounts: AccountMeta[]\n {\n const executor = {\n config: ExecutorAccounts.deserializeExecutorConfig(executorBuf),\n owner: executorBuf.owner,\n }\n const dvns = dvnBuf.map((dvn, i) => {\n invariant(dvn.exists, `dvn:${dvnsKey[i]} not initialized`)\n return {\n config: DvnAccounts.deserializeDvnConfig(dvn),\n owner: dvn.owner,\n }\n })\n\n const priceFeeds = new Array<PublicKey>()\n ;[executor.config, ...dvns.map((dvn) => dvn.config)].forEach((config) => {\n priceFeeds.push(config.priceFeed)\n })\n const priceFeedInfos = await this.getMultipleAccountsInfo(rpc, priceFeeds, commitment)\n priceFeedInfos.forEach((info, i) => {\n invariant(info.exists, `priceFeed:${priceFeeds[i]} not initialized`)\n })\n const executorPriceFeed = await this.getMultipleAccountsInfo(rpc, [executor.config.priceFeed], commitment)\n invariant(executorPriceFeed[0].exists, `executor priceFeed:${executor.config.priceFeed} not initialized`)\n executorAccounts = new Executor(executor.owner).getQuoteIXAccountMetaForCPI(\n executor.config.priceFeed,\n executorPriceFeed[0].owner,\n quoteOrSend === QuoteOrSend.Send\n )\n dvnAccounts = (\n await Promise.all(\n dvns.map(async (p, i) => {\n const dvnPriceFeed = await this.getMultipleAccountsInfo(rpc, [p.config.priceFeed], commitment)\n invariant(dvnPriceFeed[0].exists, `dvn priceFeed:${p.config.priceFeed} not initialized`)\n return new DVN(p.owner).getQuoteIXAccountMetaForCPI(\n p.config.priceFeed,\n dvnPriceFeed[0].owner,\n quoteOrSend === QuoteOrSend.Send\n )\n })\n )\n ).flat()\n }\n\n const treasury = isSome(ulnState.treasury) ? ulnState.treasury.value.nativeReceiver : undefined\n let accounts: AccountMeta[]\n const uln = new UlnProgram.Uln(this.ulnProgram)\n if (quoteOrSend === QuoteOrSend.Quote) {\n const txBuilder = UlnProgram.instructions\n .quote(\n { programs: uln.programRepo },\n {\n endpoint: createNoopSigner(defaultPublicKey()),\n uln: this.uln.pda.setting()[0],\n sendConfig: ulnSendConfigInfo.accountId,\n defaultSendConfig: ulnDefaultSendConfigInfo.accountId,\n // param\n packet: {\n nonce: 0,\n srcEid: 0,\n sender: defaultPublicKey(),\n dstEid: 0,\n receiver: new Uint8Array(32),\n guid: new Uint8Array(32),\n message: new Uint8Array(4),\n },\n options: new Uint8Array(4),\n payInLzToken: false,\n }\n )\n .addRemainingAccounts(executorAccounts.concat(dvnAccounts))\n accounts = txBuilder.getInstructions()[0].keys\n } else {\n const txBuilder = UlnProgram.instructions\n .send(\n { programs: uln.programRepo, payer: createNoopSigner(payer) },\n {\n endpoint: createNoopSigner(defaultPublicKey()),\n uln: this.uln.pda.setting()[0],\n sendConfig: ulnSendConfigInfo.accountId,\n defaultSendConfig: ulnDefaultSendConfigInfo.accountId,\n payer: createNoopSigner(payer),\n treasury,\n eventAuthority: this.uln.eventAuthority,\n program: this.uln.programId,\n\n packet: {\n nonce: 0,\n srcEid: 0,\n sender: defaultPublicKey(),\n dstEid: 0,\n receiver: new Uint8Array(32),\n guid: new Uint8Array(32),\n message: new Uint8Array(4),\n },\n options: new Uint8Array(4),\n nativeFee: 0,\n }\n )\n .addRemainingAccounts(executorAccounts.concat(dvnAccounts))\n accounts = txBuilder.getInstructions()[0].keys\n if (treasury) {\n const treasuryIndex = accounts.findIndex((k) => k.pubkey == treasury)\n accounts[treasuryIndex].isWritable = true // treasury account\n }\n }\n accounts.forEach((key) => {\n if (payer !== key.pubkey) {\n key.isSigner = false\n }\n })\n return accounts.slice(1)\n }\n}\n","import { AccountMeta, Commitment, PublicKey, RpcInterface } from '@metaplex-foundation/umi'\n\nexport * from './pda'\nexport * as EndpointProgram from './endpoint'\nexport * as SimpleMessageLibProgram from './simple-message-lib'\nexport * as UlnProgram from './uln'\nexport * as ExecutorProgram from './executor'\nexport * as PriceFeedProgram from './pricefeed'\nexport * as DVNProgram from './dvn'\n\nexport * from './utility'\nexport * from './config'\nexport * from './receive'\nexport * from './types'\nexport * from './deployment'\n\nexport * as BlockedMessageLibProgram from './generated/kinobi/blocked_messagelib'\nexport * as DvnProgram from './generated/kinobi/dvn'\nexport * from './send-helper'\n\n/**\n * Enum representing different configuration types.\n */\nexport enum SetConfigType {\n /**\n * Executor configuration type.\n */\n EXECUTOR = 1,\n\n /**\n * Send ULN configuration type.\n */\n SEND_ULN = 2,\n\n /**\n * Receive ULN configuration type.\n */\n RECEIVE_ULN = 3,\n}\n\nexport interface SolanaPacketPath {\n sender: PublicKey\n dstEid: number\n receiver: Uint8Array // length 32\n}\n\n/**\n * Interface representing the Message Library.\n */\nexport interface MessageLibInterface {\n programId: PublicKey\n\n /**\n * Gets the account metadata for a quote instruction.\n *\n * @param {Connection} connection - The Solana connection.\n * @param {PublicKey} payer - The payer public key.\n * @param {PacketPath} path - The packet path.\n * @param {Commitment} [commitment] - The commitment level.\n * @returns {Promise<AccountMeta[]>} A promise that resolves to an array of account metadata.\n */\n getQuoteIXAccountMetaForCPI(\n rpc: RpcInterface,\n payer: PublicKey,\n path: SolanaPacketPath,\n commitment?: Commitment\n ): Promise<AccountMeta[]>\n\n getSendIXAccountMetaForCPI(rpc: RpcInterface, payer: PublicKey, path: SolanaPacketPath): Promise<AccountMeta[]>\n\n getSendWithLzTokenIXAccountMetaForCPI(\n rpc: RpcInterface,\n accounts: {\n payer: PublicKey\n tokenMint: PublicKey\n tokenSource: PublicKey\n },\n path: SolanaPacketPath,\n programs: {\n tokenProgram?: PublicKey\n associatedTokenProgram?: PublicKey\n },\n commitment: Commitment\n ): Promise<AccountMeta[]>\n /**\n * Gets the account metadata for an init config instruction.\n *\n * @param {PublicKey} payer - The payer public key.\n * @param {PublicKey} oappID - The OAPP ID.\n * @param {number} eid - The endpoint ID.\n * @returns {AccountMeta[]} An array of account metadata.\n */\n getInitConfigIXAccountMetaForCPI(payer: PublicKey, oapp: PublicKey, eid: number): AccountMeta[]\n\n /**\n * Gets the account metadata for a set config instruction.\n *\n * @param {PublicKey} endpointProgram - The endpoint program public key.\n * @param {PublicKey} oappID - The OAPP ID.\n * @param {number} eid - The endpoint ID.\n * @returns {Promise<AccountMeta[]>} A promise that resolves to an array of account metadata.\n */\n getSetConfigIXAccountMetaForCPI(oapp: PublicKey, eid: number, endpointProgram?: PublicKey): AccountMeta[]\n}\n"]}