@layerzerolabs/protocol-stellar-v2 0.2.18 → 0.2.20

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 (213) hide show
  1. package/.turbo/turbo-build.log +303 -253
  2. package/.turbo/turbo-lint.log +66 -65
  3. package/.turbo/turbo-test.log +1312 -1282
  4. package/Cargo.lock +21 -8
  5. package/Cargo.toml +2 -0
  6. package/contracts/ERROR_SPEC.md +9 -2
  7. package/contracts/common-macros/src/contract_ttl.rs +18 -7
  8. package/contracts/common-macros/src/lib.rs +4 -4
  9. package/contracts/common-macros/src/tests/contract_ttl.rs +1 -1
  10. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap +2 -1
  11. package/contracts/common-macros/src/tests/snapshots/common_macros__tests__upgradeable__snapshot_generated_upgradeable_code.snap +7 -12
  12. package/contracts/common-macros/src/upgradeable.rs +15 -21
  13. package/contracts/message-libs/uln-302/src/events.rs +4 -0
  14. package/contracts/message-libs/uln-302/src/send_uln.rs +23 -7
  15. package/contracts/message-libs/uln-302/src/tests/send_uln302/send.rs +38 -64
  16. package/contracts/oapps/counter/Cargo.toml +1 -0
  17. package/contracts/oapps/counter/integration_tests/setup_uln.rs +1 -1
  18. package/contracts/oapps/oapp/src/oapp_receiver.rs +1 -1
  19. package/contracts/oapps/oapp/src/tests/test_oapp_core.rs +113 -65
  20. package/contracts/oapps/oapp/src/tests/test_oapp_options_type3.rs +111 -82
  21. package/contracts/oapps/oapp/src/tests/test_oapp_receiver.rs +293 -65
  22. package/contracts/oapps/oapp/src/tests/test_oapp_sender.rs +331 -56
  23. package/contracts/oapps/oft/Cargo.toml +10 -7
  24. package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/test_oft_fee.rs +3 -4
  25. package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/test_pausable.rs +2 -3
  26. package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/test_rate_limiter.rs +1 -1
  27. package/contracts/oapps/oft/integration-tests/mod.rs +1 -1
  28. package/contracts/oapps/oft/integration-tests/setup.rs +28 -127
  29. package/contracts/oapps/oft/integration-tests/utils.rs +254 -21
  30. package/contracts/oapps/oft/src/extensions/oft_fee.rs +23 -8
  31. package/contracts/oapps/oft/src/extensions/pausable.rs +19 -4
  32. package/contracts/oapps/oft/src/extensions/rate_limiter.rs +52 -28
  33. package/contracts/oapps/oft/src/lib.rs +10 -14
  34. package/contracts/oapps/oft/src/oft.rs +143 -193
  35. package/contracts/oapps/oft/src/oft_types/lock_unlock.rs +9 -11
  36. package/contracts/oapps/oft/src/oft_types/mint_burn.rs +12 -14
  37. package/contracts/oapps/oft/src/oft_types/mod.rs +13 -0
  38. package/contracts/oapps/{oft-std → oft-core}/Cargo.toml +6 -4
  39. package/contracts/oapps/{oft-std → oft-core}/integration-tests/mod.rs +1 -1
  40. package/contracts/oapps/{oft-std → oft-core}/integration-tests/setup.rs +126 -29
  41. package/contracts/oapps/{oft → oft-core}/integration-tests/test_with_sml.rs +3 -3
  42. package/contracts/oapps/oft-core/integration-tests/utils.rs +201 -0
  43. package/contracts/oapps/oft-core/src/lib.rs +18 -0
  44. package/contracts/oapps/oft-core/src/oft_core.rs +479 -0
  45. package/contracts/oapps/{oft → oft-core}/src/tests/mod.rs +0 -2
  46. package/contracts/oapps/{oft → oft-core}/src/tests/test_lz_receive.rs +7 -7
  47. package/contracts/oapps/{oft → oft-core}/src/tests/test_oft_msg_codec.rs +4 -4
  48. package/contracts/oapps/{oft → oft-core}/src/tests/test_resolve_address.rs +3 -3
  49. package/contracts/oapps/{oft → oft-core}/src/tests/test_utils.rs +46 -27
  50. package/contracts/oapps/{oft → oft-core}/src/utils.rs +1 -1
  51. package/contracts/upgrader/src/lib.rs +30 -57
  52. package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract1.wasm +0 -0
  53. package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract2.wasm +0 -0
  54. package/contracts/upgrader/src/tests/test_upgrader.rs +44 -35
  55. package/contracts/utils/src/buffer_reader.rs +1 -0
  56. package/contracts/utils/src/errors.rs +8 -2
  57. package/contracts/utils/src/ownable.rs +125 -3
  58. package/contracts/utils/src/tests/option_ext.rs +1 -1
  59. package/contracts/utils/src/tests/ownable.rs +445 -7
  60. package/contracts/utils/src/tests/ttl_configurable.rs +2 -2
  61. package/contracts/utils/src/tests/upgradeable.rs +372 -175
  62. package/contracts/utils/src/ttl_configurable.rs +3 -3
  63. package/contracts/utils/src/upgradeable.rs +48 -23
  64. package/contracts/workers/dvn/Cargo.toml +1 -0
  65. package/contracts/workers/dvn/src/auth.rs +12 -42
  66. package/contracts/workers/dvn/src/dvn.rs +16 -31
  67. package/contracts/workers/dvn/src/errors.rs +0 -1
  68. package/contracts/workers/dvn/src/interfaces/dvn.rs +35 -0
  69. package/contracts/workers/dvn/src/lib.rs +4 -3
  70. package/contracts/workers/dvn/src/tests/auth.rs +1 -1
  71. package/contracts/workers/dvn/src/tests/dvn.rs +19 -15
  72. package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +2 -4
  73. package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +1 -3
  74. package/contracts/workers/dvn/src/tests/setup.rs +5 -9
  75. package/contracts/workers/dvn-fee-lib/Cargo.toml +1 -1
  76. package/contracts/workers/dvn-fee-lib/src/dvn_fee_lib.rs +3 -5
  77. package/contracts/workers/dvn-fee-lib/src/tests/dvn_fee_lib.rs +2 -3
  78. package/contracts/workers/executor/Cargo.toml +1 -0
  79. package/contracts/workers/executor/src/executor.rs +15 -26
  80. package/contracts/workers/executor-fee-lib/Cargo.toml +2 -1
  81. package/contracts/workers/executor-fee-lib/src/executor_fee_lib.rs +63 -5
  82. package/contracts/workers/executor-fee-lib/src/executor_option.rs +28 -1
  83. package/contracts/workers/executor-fee-lib/src/lib.rs +3 -0
  84. package/contracts/workers/executor-fee-lib/src/tests/executor_fee_lib.rs +701 -0
  85. package/contracts/workers/executor-fee-lib/src/tests/executor_option.rs +370 -0
  86. package/contracts/workers/executor-fee-lib/src/tests/mod.rs +4 -0
  87. package/contracts/workers/executor-fee-lib/src/tests/setup.rs +60 -0
  88. package/contracts/workers/executor-helper/src/lib.rs +3 -0
  89. package/contracts/workers/executor-helper/src/tests/executor_helper.rs +184 -0
  90. package/contracts/workers/executor-helper/src/tests/mod.rs +2 -0
  91. package/contracts/workers/executor-helper/src/tests/setup.rs +366 -0
  92. package/contracts/workers/fee-lib-interfaces/Cargo.toml +14 -0
  93. package/contracts/workers/{worker/src/interfaces/mod.rs → fee-lib-interfaces/src/lib.rs} +4 -3
  94. package/contracts/workers/price-feed/Cargo.toml +2 -1
  95. package/contracts/workers/price-feed/src/events.rs +1 -1
  96. package/contracts/workers/price-feed/src/lib.rs +3 -0
  97. package/contracts/workers/price-feed/src/price_feed.rs +6 -12
  98. package/contracts/workers/price-feed/src/storage.rs +1 -1
  99. package/contracts/workers/price-feed/src/tests/mod.rs +2 -0
  100. package/contracts/workers/price-feed/src/tests/price_feed.rs +869 -0
  101. package/contracts/workers/price-feed/src/tests/setup.rs +70 -0
  102. package/contracts/workers/price-feed/src/types.rs +1 -1
  103. package/contracts/workers/worker/src/errors.rs +0 -3
  104. package/contracts/workers/worker/src/lib.rs +0 -2
  105. package/contracts/workers/worker/src/storage.rs +32 -29
  106. package/contracts/workers/worker/src/tests/setup.rs +1 -7
  107. package/contracts/workers/worker/src/tests/worker.rs +50 -42
  108. package/contracts/workers/worker/src/worker.rs +49 -58
  109. package/package.json +4 -5
  110. package/sdk/.turbo/turbo-test.log +229 -217
  111. package/sdk/dist/generated/bml.d.ts +39 -1
  112. package/sdk/dist/generated/bml.js +33 -8
  113. package/sdk/dist/generated/counter.d.ts +131 -3
  114. package/sdk/dist/generated/counter.js +41 -10
  115. package/sdk/dist/generated/dvn.d.ts +431 -362
  116. package/sdk/dist/generated/dvn.js +80 -55
  117. package/sdk/dist/generated/dvn_fee_lib.d.ts +327 -251
  118. package/sdk/dist/generated/dvn_fee_lib.js +55 -57
  119. package/sdk/dist/generated/endpoint.d.ts +131 -3
  120. package/sdk/dist/generated/endpoint.js +41 -10
  121. package/sdk/dist/generated/executor.d.ts +503 -339
  122. package/sdk/dist/generated/executor.js +80 -48
  123. package/sdk/dist/generated/executor_fee_lib.d.ts +395 -319
  124. package/sdk/dist/generated/executor_fee_lib.js +54 -56
  125. package/sdk/dist/generated/executor_helper.d.ts +53 -187
  126. package/sdk/dist/generated/executor_helper.js +47 -29
  127. package/sdk/dist/generated/layerzero_view.d.ts +1271 -0
  128. package/sdk/dist/generated/layerzero_view.js +294 -0
  129. package/sdk/dist/generated/oft.d.ts +1851 -0
  130. package/sdk/dist/generated/oft.js +347 -0
  131. package/sdk/dist/generated/price_feed.d.ts +329 -253
  132. package/sdk/dist/generated/price_feed.js +55 -57
  133. package/sdk/dist/generated/sml.d.ts +131 -3
  134. package/sdk/dist/generated/sml.js +41 -10
  135. package/sdk/dist/generated/treasury.d.ts +131 -3
  136. package/sdk/dist/generated/treasury.js +41 -10
  137. package/sdk/dist/generated/uln302.d.ts +131 -3
  138. package/sdk/dist/generated/uln302.js +43 -12
  139. package/sdk/dist/generated/upgrader.d.ts +201 -15
  140. package/sdk/dist/generated/upgrader.js +99 -1
  141. package/sdk/dist/index.d.ts +2 -2
  142. package/sdk/dist/index.js +3 -3
  143. package/sdk/package.json +3 -2
  144. package/sdk/src/index.ts +3 -3
  145. package/sdk/test/oft-sml.test.ts +20 -20
  146. package/sdk/test/upgrader.test.ts +2 -3
  147. package/sdk/turbo.json +8 -0
  148. package/tools/ts-bindings-gen/Cargo.toml +2 -0
  149. package/tools/ts-bindings-gen/src/main.rs +53 -5
  150. package/turbo.json +0 -2
  151. package/contracts/oapps/oft/src/interfaces/mint_burn_token.rs +0 -23
  152. package/contracts/oapps/oft/src/interfaces/mod.rs +0 -3
  153. package/contracts/oapps/oft/src/oft_impl.rs +0 -201
  154. package/contracts/oapps/oft/src/tests/extensions/mod.rs +0 -11
  155. package/contracts/oapps/oft/src/tests/extensions/setup.rs +0 -917
  156. package/contracts/oapps/oft/src/tests/extensions/test_oft_fee.rs +0 -751
  157. package/contracts/oapps/oft/src/tests/extensions/test_pausable.rs +0 -434
  158. package/contracts/oapps/oft/src/tests/extensions/test_rate_limiter.rs +0 -1080
  159. package/contracts/oapps/oft-std/integration-tests/utils.rs +0 -427
  160. package/contracts/oapps/oft-std/src/lib.rs +0 -16
  161. package/contracts/oapps/oft-std/src/oft.rs +0 -174
  162. package/sdk/dist/generated/oft_std.d.ts +0 -1722
  163. package/sdk/dist/generated/oft_std.js +0 -316
  164. package/sdk/dist/wasm/blocked-message-lib.d.ts +0 -1
  165. package/sdk/dist/wasm/blocked-message-lib.js +0 -2
  166. package/sdk/dist/wasm/counter.d.ts +0 -1
  167. package/sdk/dist/wasm/counter.js +0 -2
  168. package/sdk/dist/wasm/dvn-fee-lib.d.ts +0 -1
  169. package/sdk/dist/wasm/dvn-fee-lib.js +0 -2
  170. package/sdk/dist/wasm/dvn.d.ts +0 -1
  171. package/sdk/dist/wasm/dvn.js +0 -2
  172. package/sdk/dist/wasm/endpoint-v2.d.ts +0 -1
  173. package/sdk/dist/wasm/endpoint-v2.js +0 -2
  174. package/sdk/dist/wasm/executor-fee-lib.d.ts +0 -1
  175. package/sdk/dist/wasm/executor-fee-lib.js +0 -2
  176. package/sdk/dist/wasm/executor-helper.d.ts +0 -1
  177. package/sdk/dist/wasm/executor-helper.js +0 -2
  178. package/sdk/dist/wasm/executor.d.ts +0 -1
  179. package/sdk/dist/wasm/executor.js +0 -2
  180. package/sdk/dist/wasm/layerzero-views.d.ts +0 -1
  181. package/sdk/dist/wasm/layerzero-views.js +0 -2
  182. package/sdk/dist/wasm/oft-std.d.ts +0 -1
  183. package/sdk/dist/wasm/oft-std.js +0 -2
  184. package/sdk/dist/wasm/price-feed.d.ts +0 -1
  185. package/sdk/dist/wasm/price-feed.js +0 -2
  186. package/sdk/dist/wasm/simple-message-lib.d.ts +0 -1
  187. package/sdk/dist/wasm/simple-message-lib.js +0 -2
  188. package/sdk/dist/wasm/treasury.d.ts +0 -1
  189. package/sdk/dist/wasm/treasury.js +0 -2
  190. package/sdk/dist/wasm/uln302.d.ts +0 -1
  191. package/sdk/dist/wasm/uln302.js +0 -2
  192. package/sdk/dist/wasm/upgrader.d.ts +0 -1
  193. package/sdk/dist/wasm/upgrader.js +0 -2
  194. package/sdk/dist/wasm.d.ts +0 -15
  195. package/sdk/dist/wasm.js +0 -15
  196. /package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/mod.rs +0 -0
  197. /package/contracts/oapps/{oft → oft-core}/src/codec/mod.rs +0 -0
  198. /package/contracts/oapps/{oft → oft-core}/src/codec/oft_compose_msg_codec.rs +0 -0
  199. /package/contracts/oapps/{oft → oft-core}/src/codec/oft_msg_codec.rs +0 -0
  200. /package/contracts/oapps/{oft → oft-core}/src/errors.rs +0 -0
  201. /package/contracts/oapps/{oft → oft-core}/src/events.rs +0 -0
  202. /package/contracts/oapps/{oft → oft-core}/src/storage.rs +0 -0
  203. /package/contracts/oapps/{oft → oft-core}/src/tests/test_decimals.rs +0 -0
  204. /package/contracts/oapps/{oft → oft-core}/src/tests/test_oft_compose_msg_codec.rs +0 -0
  205. /package/contracts/oapps/{oft → oft-core}/src/tests/test_oft_version.rs +0 -0
  206. /package/contracts/oapps/{oft → oft-core}/src/tests/test_quote_oft.rs +0 -0
  207. /package/contracts/oapps/{oft → oft-core}/src/tests/test_quote_send.rs +0 -0
  208. /package/contracts/oapps/{oft → oft-core}/src/tests/test_send.rs +0 -0
  209. /package/contracts/oapps/{oft → oft-core}/src/tests/test_token.rs +0 -0
  210. /package/contracts/oapps/{oft → oft-core}/src/types.rs +0 -0
  211. /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/dvn_fee_lib.rs +0 -0
  212. /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/executor_fee_lib.rs +0 -0
  213. /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/price_feed.rs +0 -0
@@ -1,7 +1,84 @@
1
+ import { Buffer } from "buffer";
1
2
  import { Client as ContractClient, Spec as ContractSpec, } from '@stellar/stellar-sdk/contract';
2
3
  export * from '@stellar/stellar-sdk';
3
4
  export * as contract from '@stellar/stellar-sdk/contract';
4
5
  export * as rpc from '@stellar/stellar-sdk/rpc';
6
+ /**
7
+ * Embedded WASM bytecode (base64-encoded)
8
+ * Size: 4968 bytes (4.85 KB)
9
+ */
10
+ export const WASM_BASE64 = "AGFzbQEAAAABJgdgAX4BfmADfn5+AX5gAn5+AX5gAn9+AGADfn5+AGABfwF+YAAAAhkEAWIBXwAAAWIBOAAAAWQBXwABAXYBZwACAwkIAgMEAQUEBgYFAwEAEAYhBH8BQYCAwAALfwBBgIDAAAt/AEGAgMAAC38AQYCAwAALB0kGBm1lbW9yeQIAB3VwZ3JhZGUABBN1cGdyYWRlX2FuZF9taWdyYXRlAAcBXwMBCl9fZGF0YV9lbmQDAgtfX2hlYXBfYmFzZQMDCoYECFwBAX8jgICAgABBEGsiAiSAgICAAAJAIABC/wGDQs0AUg0AIAIgARCFgICAACACKAIAQQFGDQAgACACKQMIQgIQgICAgAAQhoCAgAAgAkEQaiSAgICAAEICDwsAC0IBAX5CASECAkAgAUL/AYNCyABSDQAgARCBgICAAEKAgICAcINCgICAgIAEUg0AIAAgATcDCEIAIQILIAAgAjcDAAu4AQMBfwF+AX8jgICAgABBEGsiAySAgICAACADIAE3AwBCAiEEQQEhBQJAA0AgBUUNASAFQX9qIQUgASEEDAALCyADIAQ3AwggAEKO1Knzza3rASADQQhqEIiAgIAAEImAgIAAIAMgAjcDAEICIQFBASEFAkADQCAFRQ0BIAVBf2ohBSACIQEMAAsLIAMgATcDCCAAQo7UufPN9coBIANBCGoQiICAgAAQiYCAgAAgA0EQaiSAgICAAAtiAQF/I4CAgIAAQRBrIgMkgICAgAACQCAAQv8Bg0LNAFINACADIAEQhYCAgAAgAygCAEEBRg0AIAJC/wGDQsgAUg0AIAAgAykDCCACEIaAgIAAIANBEGokgICAgABCAg8LAAsXACAArUIghkIEhEKEgICAEBCDgICAAAshAAJAIAAgASACEIKAgIAAQv8Bg0ICUQ0AEIuAgIAAAAsLAwAACwkAEIqAgIAAAAsLCQEAQYCAwAALAAD3Hw5jb250cmFjdHNwZWN2MAAAAAAAAAERVXBncmFkZXMgYSB0YXJnZXQgY29udHJhY3Qgd2l0aG91dCBjdXN0b20gbWlncmF0aW9uIGRhdGEuCgpUaGlzIGlzIGEgY29udmVuaWVuY2Ugd3JhcHBlciB0aGF0IGNhbGxzIGB1cGdyYWRlX2FuZF9taWdyYXRlYCB3aXRoIGVtcHR5IG1pZ3JhdGlvbiBkYXRhLgoKIyBBcmd1bWVudHMKKiBgY29udHJhY3RfYWRkcmVzc2AgLSBUaGUgYWRkcmVzcyBvZiB0aGUgY29udHJhY3QgdG8gdXBncmFkZQoqIGB3YXNtX2hhc2hgIC0gVGhlIGhhc2ggb2YgdGhlIG5ldyBXQVNNIGJ5dGVjb2RlAAAAAAAAB3VwZ3JhZGUAAAAAAgAAAAAAAAAQY29udHJhY3RfYWRkcmVzcwAAABMAAAAAAAAACXdhc21faGFzaAAAAAAAA+4AAAAgAAAAAAAAAAAAAAJ0VXBncmFkZXMgYSB0YXJnZXQgY29udHJhY3QgYW5kIHJ1bnMgaXRzIG1pZ3JhdGlvbiBpbiBhIHNpbmdsZSB0cmFuc2FjdGlvbi4KClRoZSBjYWxsZXIgbXVzdCBiZSBhdXRob3JpemVkIGFzIHRoZSBhdXRob3JpemVyIG9mIHRoZSB0YXJnZXQgY29udHJhY3QuClRoaXMgaXMgZW5mb3JjZWQgYnkgdGhlIHRhcmdldCBjb250cmFjdCdzIGAjW29ubHlfYXV0aF1gIGNoZWNrLgoKIyBBcmd1bWVudHMKKiBgY29udHJhY3RfYWRkcmVzc2AgLSBUaGUgYWRkcmVzcyBvZiB0aGUgY29udHJhY3QgdG8gdXBncmFkZQoqIGB3YXNtX2hhc2hgIC0gVGhlIGhhc2ggb2YgdGhlIG5ldyBXQVNNIGJ5dGVjb2RlCiogYG1pZ3JhdGlvbl9kYXRhYCAtIFhEUi1lbmNvZGVkIGJ5dGVzIHRvIHBhc3MgdG8gdGhlIG1pZ3JhdGUgZnVuY3Rpb24uClVzZSBgdmFsdWUudG9feGRyKCZlbnYpYCB0byBlbmNvZGUgdGhlIHRhcmdldCBjb250cmFjdCdzIE1pZ3JhdGlvbkRhdGEgdHlwZS4KCiMgRXhhbXBsZQpgYGBpZ25vcmUKbGV0IG1pZ3JhdGlvbl9kYXRhID0gbXlfZGF0YS50b194ZHIoJmVudik7CnVwZ3JhZGVyLnVwZ3JhZGVfYW5kX21pZ3JhdGUoJmNvbnRyYWN0X2FkZHIsICZ3YXNtX2hhc2gsICZtaWdyYXRpb25fZGF0YSk7CmBgYAAAABN1cGdyYWRlX2FuZF9taWdyYXRlAAAAAAMAAAAAAAAAEGNvbnRyYWN0X2FkZHJlc3MAAAATAAAAAAAAAAl3YXNtX2hhc2gAAAAAAAPuAAAAIAAAAAAAAAAObWlncmF0aW9uX2RhdGEAAAAAAA4AAAAAAAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPpAAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/IAAAAEAAAAH1R0bENvbmZpZ3VyYWJsZUVycm9yOiAxMDIwLTEwMjkAAAAAAAAAABRUdGxDb25maWd1cmFibGVFcnJvcgAAAAMAAAAAAAAAEEludmFsaWRUdGxDb25maWcAAAP8AAAAAAAAAA9UdGxDb25maWdGcm96ZW4AAAAD/QAAAAAAAAAWVHRsQ29uZmlnQWxyZWFkeUZyb3plbgAAAAAD/gAAAAQAAAAXT3duYWJsZUVycm9yOiAxMDMwLTEwMzkAAAAAAAAAAAxPd25hYmxlRXJyb3IAAAAGAAAAAAAAABNJbnZhbGlkUGVuZGluZ093bmVyAAAABAYAAAAAAAAACkludmFsaWRUdGwAAAAABAcAAAAAAAAAEU5vUGVuZGluZ1RyYW5zZmVyAAAAAAAECAAAAAAAAAAPT3duZXJBbHJlYWR5U2V0AAAABAkAAAAAAAAAC093bmVyTm90U2V0AAAABAoAAAAAAAAAElRyYW5zZmVySW5Qcm9ncmVzcwAAAAAECwAAAAQAAAAYQnl0ZXNFeHRFcnJvcjogMTA0MC0xMDQ5AAAAAAAAAA1CeXRlc0V4dEVycm9yAAAAAAAAAQAAAAAAAAAOTGVuZ3RoTWlzbWF0Y2gAAAAABBAAAAAEAAAAG1VwZ3JhZGVhYmxlRXJyb3I6IDEwNTAtMTA1OQAAAAAAAAAAEFVwZ3JhZGVhYmxlRXJyb3IAAAADAAAAAAAAABRJbnZhbGlkTWlncmF0aW9uRGF0YQAABBoAAAAAAAAAE01pZ3JhdGlvbk5vdEFsbG93ZWQAAAAEGwAAAAAAAAAOVXBncmFkZXNGcm96ZW4AAAAABBwAAAAEAAAAGE11bHRpc2lnRXJyb3I6IDEwNjAtMTA2OQAAAAAAAAANTXVsdGlzaWdFcnJvcgAAAAAAAAgAAAAAAAAAEkFscmVhZHlJbml0aWFsaXplZAAAAAAEJAAAAAAAAAANSW52YWxpZFNpZ25lcgAAAAAABCUAAAAAAAAADlNpZ25hdHVyZUVycm9yAAAAAAQmAAAAAAAAABNTaWduZXJBbHJlYWR5RXhpc3RzAAAABCcAAAAAAAAADlNpZ25lck5vdEZvdW5kAAAAAAQoAAAAAAAAAB1Ub3RhbFNpZ25lcnNMZXNzVGhhblRocmVzaG9sZAAAAAAABCkAAAAAAAAAD1Vuc29ydGVkU2lnbmVycwAAAAQqAAAAAAAAAA1aZXJvVGhyZXNob2xkAAAAAAAEKwAAAAUAAAAwRXZlbnQgZW1pdHRlZCB3aGVuIGEgc2lnbmVyIGlzIGFkZGVkIG9yIHJlbW92ZWQuAAAAAAAAAAlTaWduZXJTZXQAAAAAAAABAAAACnNpZ25lcl9zZXQAAAAAAAIAAAAAAAAABnNpZ25lcgAAAAAD7gAAABQAAAABAAAAAAAAAAZhY3RpdmUAAAAAAAEAAAAAAAAAAgAAAAUAAAA2RXZlbnQgZW1pdHRlZCB3aGVuIHRoZSBzaWduYXR1cmUgdGhyZXNob2xkIGlzIGNoYW5nZWQuAAAAAAAAAAAADFRocmVzaG9sZFNldAAAAAEAAAANdGhyZXNob2xkX3NldAAAAAAAAAEAAAAAAAAACXRocmVzaG9sZAAAAAAAAAQAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA9NdWx0aXNpZ1N0b3JhZ2UAAAAAAgAAAAAAAAAAAAAAB1NpZ25lcnMAAAAAAAAAAAAAAAAJVGhyZXNob2xkAAAAAAAABQAAAFdFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIChib3RoIHNpbmdsZS1zdGVwIGFuZCB0d28tc3RlcCBjb21wbGV0aW9uKS4AAAAAAAAAABRPd25lcnNoaXBUcmFuc2ZlcnJlZAAAAAEAAAAVb3duZXJzaGlwX3RyYW5zZmVycmVkAAAAAAAAAgAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAgAAAAUAAAA7RXZlbnQgZW1pdHRlZCB3aGVuIGEgMi1zdGVwIG93bmVyc2hpcCB0cmFuc2ZlciBpcyBwcm9wb3NlZC4AAAAAAAAAABVPd25lcnNoaXBUcmFuc2ZlcnJpbmcAAAAAAAABAAAAFm93bmVyc2hpcF90cmFuc2ZlcnJpbmcAAAAAAAMAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAAAAAAluZXdfb3duZXIAAAAAAAATAAAAAAAAAAAAAAADdHRsAAAAAAQAAAAAAAAAAgAAAAUAAAAqRXZlbnQgZW1pdHRlZCB3aGVuIG93bmVyc2hpcCBpcyByZW5vdW5jZWQuAAAAAAAAAAAAEk93bmVyc2hpcFJlbm91bmNlZAAAAAAAAQAAABNvd25lcnNoaXBfcmVub3VuY2VkAAAAAAEAAAAAAAAACW9sZF9vd25lcgAAAAAAABMAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAA5Pd25hYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABU93bmVyAAAAAAAAAAAAAAAAAAAMUGVuZGluZ093bmVyAAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQAAAAFAAAAJ0V2ZW50IGVtaXR0ZWQgd2hlbiBUVEwgY29uZmlncyBhcmUgc2V0LgAAAAAAAAAADVR0bENvbmZpZ3NTZXQAAAAAAAABAAAAD3R0bF9jb25maWdzX3NldAAAAAACAAAAAAAAAAhpbnN0YW5jZQAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAAAAAAACnBlcnNpc3RlbnQAAAAAA+gAAAfQAAAACVR0bENvbmZpZwAAAAAAAAAAAAACAAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAAAAAAAAQVHRsQ29uZmlnc0Zyb3plbgAAAAEAAAASdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAABBUdGxDb25maWdTdG9yYWdlAAAAAwAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAISW5zdGFuY2UAAAAAAAAAAAAAAApQZXJzaXN0ZW50AAAAAAACAAAAAAAAAAAAAAASVXBncmFkZWFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAlNaWdyYXRpbmcAAAAAHhFjb250cmFjdGVudm1ldGF2MAAAAAAAAAAXAAAAAABvDmNvbnRyYWN0bWV0YXYwAAAAAAAAAAVyc3ZlcgAAAAAAAAYxLjkwLjAAAAAAAAAAAAAIcnNzZGt2ZXIAAAAvMjMuNC4wIzY3M2Q2YzRmMjM2OGQyODJkMjVkYTI5YmRhNTVjMjFiOGJlNjljYTYA";
11
+ /**
12
+ * Pre-computed WASM hash (SHA-256)
13
+ * Use this when the WASM is already uploaded on-chain
14
+ */
15
+ export const WASM_HASH = "6c749cc6678cc29a835dff31a3198b9cee989f2077b55b662bc1e7df1f9cad26";
16
+ /**
17
+ * Get the WASM bytecode as a Buffer
18
+ * Use this to upload the WASM to the network
19
+ */
20
+ export function getWasmBuffer() {
21
+ return Buffer.from(WASM_BASE64, 'base64');
22
+ }
23
+ /**
24
+ * BufferReaderError: 1000-1009
25
+ */
26
+ export const BufferReaderError = {
27
+ 1000: { message: "InvalidLength" },
28
+ 1001: { message: "InvalidAddressPayload" }
29
+ };
30
+ /**
31
+ * BufferWriterError: 1010-1019
32
+ */
33
+ export const BufferWriterError = {
34
+ 1010: { message: "InvalidAddressPayload" }
35
+ };
36
+ /**
37
+ * TtlConfigurableError: 1020-1029
38
+ */
39
+ export const TtlConfigurableError = {
40
+ 1020: { message: "InvalidTtlConfig" },
41
+ 1021: { message: "TtlConfigFrozen" },
42
+ 1022: { message: "TtlConfigAlreadyFrozen" }
43
+ };
44
+ /**
45
+ * OwnableError: 1030-1039
46
+ */
47
+ export const OwnableError = {
48
+ 1030: { message: "InvalidPendingOwner" },
49
+ 1031: { message: "InvalidTtl" },
50
+ 1032: { message: "NoPendingTransfer" },
51
+ 1033: { message: "OwnerAlreadySet" },
52
+ 1034: { message: "OwnerNotSet" },
53
+ 1035: { message: "TransferInProgress" }
54
+ };
55
+ /**
56
+ * BytesExtError: 1040-1049
57
+ */
58
+ export const BytesExtError = {
59
+ 1040: { message: "LengthMismatch" }
60
+ };
61
+ /**
62
+ * UpgradeableError: 1050-1059
63
+ */
64
+ export const UpgradeableError = {
65
+ 1050: { message: "InvalidMigrationData" },
66
+ 1051: { message: "MigrationNotAllowed" },
67
+ 1052: { message: "UpgradesFrozen" }
68
+ };
69
+ /**
70
+ * MultisigError: 1060-1069
71
+ */
72
+ export const MultisigError = {
73
+ 1060: { message: "AlreadyInitialized" },
74
+ 1061: { message: "InvalidSigner" },
75
+ 1062: { message: "SignatureError" },
76
+ 1063: { message: "SignerAlreadyExists" },
77
+ 1064: { message: "SignerNotFound" },
78
+ 1065: { message: "TotalSignersLessThanThreshold" },
79
+ 1066: { message: "UnsortedSigners" },
80
+ 1067: { message: "ZeroThreshold" }
81
+ };
5
82
  export class Client extends ContractClient {
6
83
  options;
7
84
  static async deploy(
@@ -10,10 +87,31 @@ export class Client extends ContractClient {
10
87
  return ContractClient.deploy(null, options);
11
88
  }
12
89
  constructor(options) {
13
- super(new ContractSpec(["AAAAAAAAA1pVcGdyYWRlIGEgdGFyZ2V0IGNvbnRyYWN0IGFuZCBydW4gaXRzIG1pZ3JhdGlvbiBpbiBhIHNpbmdsZSB0cmFuc2FjdGlvbgoKVGhlIGNhbGxlciBtdXN0IGJlIGF1dGhvcml6ZWQgYXMgdGhlIGF1dGhvcml6ZXIgb2YgdGhlIHRhcmdldCBjb250cmFjdC4KVGhpcyBpcyBlbmZvcmNlZCBieSB0aGUgdGFyZ2V0IGNvbnRyYWN0J3MgYCNbb25seV9hdXRoXWAgY2hlY2suCgpUaGlzIGlzIHVzZWZ1bCBmb3IgYXRvbWljIHVwZ3JhZGVzIHdoZXJlIHlvdSB3YW50IHRvIGVuc3VyZSB0aGUgbWlncmF0aW9uCmhhcHBlbnMgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIHVwZ3JhZGUsIG9yIHRoZSBlbnRpcmUgb3BlcmF0aW9uIGZhaWxzLgoKIyBBcmd1bWVudHMKKiBgY29udHJhY3RfYWRkcmVzc2AgLSBUaGUgYWRkcmVzcyBvZiB0aGUgY29udHJhY3QgdG8gdXBncmFkZQoqIGB3YXNtX2hhc2hgIC0gVGhlIGhhc2ggb2YgdGhlIG5ldyBXQVNNIGJ5dGVjb2RlCiogYG1pZ3JhdGlvbl9kYXRhYCAtIEEgdmVjdG9yIG9mIHZhbHVlcyB0byBwYXNzIHRvIHRoZSBtaWdyYXRlIGZ1bmN0aW9uLgpUaGUgdHlwZXMgb2YgdGhlc2UgdmFsdWVzIGRlcGVuZCBvbiB0aGUgdGFyZ2V0IGNvbnRyYWN0J3MgTWlncmF0aW9uRGF0YSB0eXBlLgoKIyBFeGFtcGxlCmBgYGlnbm9yZQovLyBGb3IgYSBjb250cmFjdCB3aXRoIE1pZ3JhdGlvbkRhdGEgPSAodTMyLCBib29sKQpsZXQgbWlncmF0aW9uX2RhdGEgPSB2ZWMhWwomZW52LAo0MnUzMi5pbnRvX3ZhbCgmZW52KSwKdHJ1ZS5pbnRvX3ZhbCgmZW52KSwKXTsKdXBncmFkZXIudXBncmFkZV9hbmRfbWlncmF0ZSgmY29udHJhY3RfYWRkciwgJndhc21faGFzaCwgbWlncmF0aW9uX2RhdGEpOwpgYGAAAAAAABN1cGdyYWRlX2FuZF9taWdyYXRlAAAAAAMAAAAAAAAAEGNvbnRyYWN0X2FkZHJlc3MAAAATAAAAAAAAAAl3YXNtX2hhc2gAAAAAAAPuAAAAIAAAAAAAAAAObWlncmF0aW9uX2RhdGEAAAAAA+oAAAAAAAAAAA=="]), options);
90
+ super(new ContractSpec(["AAAAAAAAARFVcGdyYWRlcyBhIHRhcmdldCBjb250cmFjdCB3aXRob3V0IGN1c3RvbSBtaWdyYXRpb24gZGF0YS4KClRoaXMgaXMgYSBjb252ZW5pZW5jZSB3cmFwcGVyIHRoYXQgY2FsbHMgYHVwZ3JhZGVfYW5kX21pZ3JhdGVgIHdpdGggZW1wdHkgbWlncmF0aW9uIGRhdGEuCgojIEFyZ3VtZW50cwoqIGBjb250cmFjdF9hZGRyZXNzYCAtIFRoZSBhZGRyZXNzIG9mIHRoZSBjb250cmFjdCB0byB1cGdyYWRlCiogYHdhc21faGFzaGAgLSBUaGUgaGFzaCBvZiB0aGUgbmV3IFdBU00gYnl0ZWNvZGUAAAAAAAAHdXBncmFkZQAAAAACAAAAAAAAABBjb250cmFjdF9hZGRyZXNzAAAAEwAAAAAAAAAJd2FzbV9oYXNoAAAAAAAD7gAAACAAAAAA",
91
+ "AAAAAAAAAnRVcGdyYWRlcyBhIHRhcmdldCBjb250cmFjdCBhbmQgcnVucyBpdHMgbWlncmF0aW9uIGluIGEgc2luZ2xlIHRyYW5zYWN0aW9uLgoKVGhlIGNhbGxlciBtdXN0IGJlIGF1dGhvcml6ZWQgYXMgdGhlIGF1dGhvcml6ZXIgb2YgdGhlIHRhcmdldCBjb250cmFjdC4KVGhpcyBpcyBlbmZvcmNlZCBieSB0aGUgdGFyZ2V0IGNvbnRyYWN0J3MgYCNbb25seV9hdXRoXWAgY2hlY2suCgojIEFyZ3VtZW50cwoqIGBjb250cmFjdF9hZGRyZXNzYCAtIFRoZSBhZGRyZXNzIG9mIHRoZSBjb250cmFjdCB0byB1cGdyYWRlCiogYHdhc21faGFzaGAgLSBUaGUgaGFzaCBvZiB0aGUgbmV3IFdBU00gYnl0ZWNvZGUKKiBgbWlncmF0aW9uX2RhdGFgIC0gWERSLWVuY29kZWQgYnl0ZXMgdG8gcGFzcyB0byB0aGUgbWlncmF0ZSBmdW5jdGlvbi4KVXNlIGB2YWx1ZS50b194ZHIoJmVudilgIHRvIGVuY29kZSB0aGUgdGFyZ2V0IGNvbnRyYWN0J3MgTWlncmF0aW9uRGF0YSB0eXBlLgoKIyBFeGFtcGxlCmBgYGlnbm9yZQpsZXQgbWlncmF0aW9uX2RhdGEgPSBteV9kYXRhLnRvX3hkcigmZW52KTsKdXBncmFkZXIudXBncmFkZV9hbmRfbWlncmF0ZSgmY29udHJhY3RfYWRkciwgJndhc21faGFzaCwgJm1pZ3JhdGlvbl9kYXRhKTsKYGBgAAAAE3VwZ3JhZGVfYW5kX21pZ3JhdGUAAAAAAwAAAAAAAAAQY29udHJhY3RfYWRkcmVzcwAAABMAAAAAAAAACXdhc21faGFzaAAAAAAAA+4AAAAgAAAAAAAAAA5taWdyYXRpb25fZGF0YQAAAAAADgAAAAA=",
92
+ "AAAABAAAABxCdWZmZXJSZWFkZXJFcnJvcjogMTAwMC0xMDA5AAAAAAAAABFCdWZmZXJSZWFkZXJFcnJvcgAAAAAAAAIAAAAAAAAADUludmFsaWRMZW5ndGgAAAAAAAPoAAAAAAAAABVJbnZhbGlkQWRkcmVzc1BheWxvYWQAAAAAAAPp",
93
+ "AAAABAAAABxCdWZmZXJXcml0ZXJFcnJvcjogMTAxMC0xMDE5AAAAAAAAABFCdWZmZXJXcml0ZXJFcnJvcgAAAAAAAAEAAAAAAAAAFUludmFsaWRBZGRyZXNzUGF5bG9hZAAAAAAAA/I=",
94
+ "AAAABAAAAB9UdGxDb25maWd1cmFibGVFcnJvcjogMTAyMC0xMDI5AAAAAAAAAAAUVHRsQ29uZmlndXJhYmxlRXJyb3IAAAADAAAAAAAAABBJbnZhbGlkVHRsQ29uZmlnAAAD/AAAAAAAAAAPVHRsQ29uZmlnRnJvemVuAAAAA/0AAAAAAAAAFlR0bENvbmZpZ0FscmVhZHlGcm96ZW4AAAAAA/4=",
95
+ "AAAABAAAABdPd25hYmxlRXJyb3I6IDEwMzAtMTAzOQAAAAAAAAAADE93bmFibGVFcnJvcgAAAAYAAAAAAAAAE0ludmFsaWRQZW5kaW5nT3duZXIAAAAEBgAAAAAAAAAKSW52YWxpZFR0bAAAAAAEBwAAAAAAAAARTm9QZW5kaW5nVHJhbnNmZXIAAAAAAAQIAAAAAAAAAA9Pd25lckFscmVhZHlTZXQAAAAECQAAAAAAAAALT3duZXJOb3RTZXQAAAAECgAAAAAAAAASVHJhbnNmZXJJblByb2dyZXNzAAAAAAQL",
96
+ "AAAABAAAABhCeXRlc0V4dEVycm9yOiAxMDQwLTEwNDkAAAAAAAAADUJ5dGVzRXh0RXJyb3IAAAAAAAABAAAAAAAAAA5MZW5ndGhNaXNtYXRjaAAAAAAEEA==",
97
+ "AAAABAAAABtVcGdyYWRlYWJsZUVycm9yOiAxMDUwLTEwNTkAAAAAAAAAABBVcGdyYWRlYWJsZUVycm9yAAAAAwAAAAAAAAAUSW52YWxpZE1pZ3JhdGlvbkRhdGEAAAQaAAAAAAAAABNNaWdyYXRpb25Ob3RBbGxvd2VkAAAABBsAAAAAAAAADlVwZ3JhZGVzRnJvemVuAAAAAAQc",
98
+ "AAAABAAAABhNdWx0aXNpZ0Vycm9yOiAxMDYwLTEwNjkAAAAAAAAADU11bHRpc2lnRXJyb3IAAAAAAAAIAAAAAAAAABJBbHJlYWR5SW5pdGlhbGl6ZWQAAAAABCQAAAAAAAAADUludmFsaWRTaWduZXIAAAAAAAQlAAAAAAAAAA5TaWduYXR1cmVFcnJvcgAAAAAEJgAAAAAAAAATU2lnbmVyQWxyZWFkeUV4aXN0cwAAAAQnAAAAAAAAAA5TaWduZXJOb3RGb3VuZAAAAAAEKAAAAAAAAAAdVG90YWxTaWduZXJzTGVzc1RoYW5UaHJlc2hvbGQAAAAAAAQpAAAAAAAAAA9VbnNvcnRlZFNpZ25lcnMAAAAEKgAAAAAAAAANWmVyb1RocmVzaG9sZAAAAAAABCs=",
99
+ "AAAABQAAADBFdmVudCBlbWl0dGVkIHdoZW4gYSBzaWduZXIgaXMgYWRkZWQgb3IgcmVtb3ZlZC4AAAAAAAAACVNpZ25lclNldAAAAAAAAAEAAAAKc2lnbmVyX3NldAAAAAAAAgAAAAAAAAAGc2lnbmVyAAAAAAPuAAAAFAAAAAEAAAAAAAAABmFjdGl2ZQAAAAAAAQAAAAAAAAAC",
100
+ "AAAABQAAADZFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHNpZ25hdHVyZSB0aHJlc2hvbGQgaXMgY2hhbmdlZC4AAAAAAAAAAAAMVGhyZXNob2xkU2V0AAAAAQAAAA10aHJlc2hvbGRfc2V0AAAAAAAAAQAAAAAAAAAJdGhyZXNob2xkAAAAAAAABAAAAAAAAAAC",
101
+ "AAAAAgAAAAAAAAAAAAAAD011bHRpc2lnU3RvcmFnZQAAAAACAAAAAAAAAAAAAAAHU2lnbmVycwAAAAAAAAAAAAAAAAlUaHJlc2hvbGQAAAA=",
102
+ "AAAABQAAAFdFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHRyYW5zZmVycmVkIChib3RoIHNpbmdsZS1zdGVwIGFuZCB0d28tc3RlcCBjb21wbGV0aW9uKS4AAAAAAAAAABRPd25lcnNoaXBUcmFuc2ZlcnJlZAAAAAEAAAAVb3duZXJzaGlwX3RyYW5zZmVycmVkAAAAAAAAAgAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAg==",
103
+ "AAAABQAAADtFdmVudCBlbWl0dGVkIHdoZW4gYSAyLXN0ZXAgb3duZXJzaGlwIHRyYW5zZmVyIGlzIHByb3Bvc2VkLgAAAAAAAAAAFU93bmVyc2hpcFRyYW5zZmVycmluZwAAAAAAAAEAAAAWb3duZXJzaGlwX3RyYW5zZmVycmluZwAAAAAAAwAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAAAAAACW5ld19vd25lcgAAAAAAABMAAAAAAAAAAAAAAAN0dGwAAAAABAAAAAAAAAAC",
104
+ "AAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gb3duZXJzaGlwIGlzIHJlbm91bmNlZC4AAAAAAAAAAAAST3duZXJzaGlwUmVub3VuY2VkAAAAAAABAAAAE293bmVyc2hpcF9yZW5vdW5jZWQAAAAAAQAAAAAAAAAJb2xkX293bmVyAAAAAAAAEwAAAAAAAAAC",
105
+ "AAAAAgAAAAAAAAAAAAAADk93bmFibGVTdG9yYWdlAAAAAAACAAAAAAAAAAAAAAAFT3duZXIAAAAAAAAAAAAAAAAAAAxQZW5kaW5nT3duZXI=",
106
+ "AAAAAQAAAElUVEwgY29uZmlndXJhdGlvbjogdGhyZXNob2xkICh3aGVuIHRvIGV4dGVuZCkgYW5kIGV4dGVuZF90byAodGFyZ2V0IFRUTCkuAAAAAAAAAAAAAAlUdGxDb25maWcAAAAAAAACAAAAKFRhcmdldCBUVEwgYWZ0ZXIgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAJZXh0ZW5kX3RvAAAAAAAABAAAADNUVEwgdGhyZXNob2xkIHRoYXQgdHJpZ2dlcnMgZXh0ZW5zaW9uIChpbiBsZWRnZXJzKS4AAAAACXRocmVzaG9sZAAAAAAAAAQ=",
107
+ "AAAABQAAACdFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIHNldC4AAAAAAAAAAA1UdGxDb25maWdzU2V0AAAAAAAAAQAAAA90dGxfY29uZmlnc19zZXQAAAAAAgAAAAAAAAAIaW5zdGFuY2UAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAAAAAApwZXJzaXN0ZW50AAAAAAPoAAAH0AAAAAlUdGxDb25maWcAAAAAAAAAAAAAAg==",
108
+ "AAAABQAAACpFdmVudCBlbWl0dGVkIHdoZW4gVFRMIGNvbmZpZ3MgYXJlIGZyb3plbi4AAAAAAAAAAAAQVHRsQ29uZmlnc0Zyb3plbgAAAAEAAAASdHRsX2NvbmZpZ3NfZnJvemVuAAAAAAAAAAAAAg==",
109
+ "AAAAAgAAAAAAAAAAAAAAEFR0bENvbmZpZ1N0b3JhZ2UAAAADAAAAAAAAAAAAAAAGRnJvemVuAAAAAAAAAAAAAAAAAAhJbnN0YW5jZQAAAAAAAAAAAAAAClBlcnNpc3RlbnQAAA==",
110
+ "AAAAAgAAAAAAAAAAAAAAElVwZ3JhZGVhYmxlU3RvcmFnZQAAAAAAAgAAAAAAAAAAAAAABkZyb3plbgAAAAAAAAAAAAAAAAAJTWlncmF0aW5nAAAA"]), options);
14
111
  this.options = options;
15
112
  }
16
113
  fromJSON = {
114
+ upgrade: (this.txFromJSON),
17
115
  upgrade_and_migrate: (this.txFromJSON)
18
116
  };
19
117
  }
@@ -11,5 +11,5 @@ export * as executor from './generated/executor.js';
11
11
  export * as executorFeeLib from './generated/executor_fee_lib.js';
12
12
  export * as executorHelper from './generated/executor_helper.js';
13
13
  export * as priceFeed from './generated/price_feed.js';
14
- export * as oftStd from './generated/oft_std.js';
15
- export * from './wasm.js';
14
+ export * as oft from './generated/oft.js';
15
+ export * as layerzeroView from './generated/layerzero_view.js';
package/sdk/dist/index.js CHANGED
@@ -14,6 +14,6 @@ export * as executorFeeLib from './generated/executor_fee_lib.js';
14
14
  export * as executorHelper from './generated/executor_helper.js';
15
15
  export * as priceFeed from './generated/price_feed.js';
16
16
  // OApp contracts
17
- export * as oftStd from './generated/oft_std.js';
18
- // WASM exports (auto-generated)
19
- export * from './wasm.js';
17
+ export * as oft from './generated/oft.js';
18
+ // View contracts
19
+ export * as layerzeroView from './generated/layerzero_view.js';
package/sdk/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@layerzerolabs/lz-v2-stellar-sdk",
3
- "version": "0.2.18",
3
+ "version": "0.2.20",
4
4
  "private": false,
5
5
  "description": "TypeScript SDK for endpoint-v2 Stellar contract",
6
6
  "repository": {
@@ -17,6 +17,7 @@
17
17
  "test": "vitest --run --pass-with-no-tests --typecheck"
18
18
  },
19
19
  "dependencies": {
20
+ "@layerzerolabs/protocol-stellar-v2": "workspace:*",
20
21
  "@noble/hashes": "catalog:",
21
22
  "@noble/secp256k1": "catalog:",
22
23
  "@stellar/stellar-sdk": "catalog:",
@@ -25,7 +26,6 @@
25
26
  "devDependencies": {
26
27
  "@layerzerolabs/common-node-utils": "workspace:*",
27
28
  "@layerzerolabs/lz-v2-utilities": "catalog:",
28
- "@layerzerolabs/protocol-stellar-v2": "workspace:*",
29
29
  "@layerzerolabs/tsup-configuration": "workspace:*",
30
30
  "@layerzerolabs/typescript-configuration": "workspace:*",
31
31
  "axios": "catalog:",
@@ -38,6 +38,7 @@
38
38
  "registry": "https://registry.npmjs.org/"
39
39
  },
40
40
  "implicitDependencies": {
41
+ "@layerzerolabs/protocol-stellar-v2": "workspace:*",
41
42
  "buffer": "catalog:"
42
43
  }
43
44
  }
package/sdk/src/index.ts CHANGED
@@ -16,7 +16,7 @@ export * as executorHelper from './generated/executor_helper.js';
16
16
  export * as priceFeed from './generated/price_feed.js';
17
17
 
18
18
  // OApp contracts
19
- export * as oftStd from './generated/oft_std.js';
19
+ export * as oft from './generated/oft.js';
20
20
 
21
- // WASM exports (auto-generated)
22
- export * from './wasm.js';
21
+ // View contracts
22
+ export * as layerzeroView from './generated/layerzero_view.js';
@@ -16,7 +16,7 @@ import { PacketSerializer, PacketV1Codec } from '@layerzerolabs/lz-v2-utilities'
16
16
 
17
17
  import { Client as EndpointClient } from '../src/generated/endpoint';
18
18
  import { Client as ExecutorHelperClient } from '../src/generated/executor_helper';
19
- import { Client as OFTStdClient, OFTMode, SendParam } from '../src/generated/oft_std';
19
+ import { Client as OFTClient, OftType, SendParam } from '../src/generated/oft';
20
20
  import { Client as SMLClient } from '../src/generated/sml';
21
21
  import {
22
22
  DEFAULT_DEPLOYER,
@@ -47,8 +47,8 @@ let mintBurnOftAddress = '';
47
47
  let endpointClient: EndpointClient;
48
48
  let smlClient: SMLClient;
49
49
  let executorHelperClient: ExecutorHelperClient;
50
- let lockUnlockOftClient: OFTStdClient;
51
- let mintBurnOftClient: OFTStdClient;
50
+ let lockUnlockOftClient: OFTClient;
51
+ let mintBurnOftClient: OFTClient;
52
52
 
53
53
  // Test accounts
54
54
  const TOKEN_ISSUER = Keypair.random();
@@ -80,7 +80,7 @@ describe('OFT E2E Testing with SAC (SML)', async () => {
80
80
  'release',
81
81
  );
82
82
 
83
- const OFT_STD_WASM_PATH = path.join(wasmDir, 'oft_std.wasm');
83
+ const OFT_WASM_PATH = path.join(wasmDir, 'oft.wasm');
84
84
 
85
85
  beforeAll(async () => {
86
86
  // Inject protocol addresses from globalSetup
@@ -165,16 +165,16 @@ describe('OFT E2E Testing with SAC (SML)', async () => {
165
165
  });
166
166
 
167
167
  it('Deploy Lock/Unlock OFT', async () => {
168
- lockUnlockOftClient = await deployContract<OFTStdClient>(
169
- OFTStdClient,
170
- OFT_STD_WASM_PATH,
168
+ lockUnlockOftClient = await deployContract<OFTClient>(
169
+ OFTClient,
170
+ OFT_WASM_PATH,
171
171
  {
172
172
  token: oftTokenAddress,
173
173
  owner: DEFAULT_DEPLOYER.publicKey(),
174
174
  endpoint: protocolAddresses.endpointV2,
175
175
  delegate: DEFAULT_DEPLOYER.publicKey(),
176
176
  shared_decimals: SHARED_DECIMALS,
177
- mode: OFTMode.LockUnlock, // Lock/Unlock mode
177
+ oft_type: OftType.LockUnlock,
178
178
  },
179
179
  DEFAULT_DEPLOYER,
180
180
  );
@@ -183,21 +183,21 @@ describe('OFT E2E Testing with SAC (SML)', async () => {
183
183
  console.log('✅ Lock/Unlock OFT deployed:', lockUnlockOftAddress);
184
184
 
185
185
  // Verify it's in lock/unlock mode
186
- const { result: mode } = await lockUnlockOftClient.mode();
187
- expect(mode).toEqual(OFTMode.LockUnlock);
186
+ const { result: oftType } = await lockUnlockOftClient.oft_type();
187
+ expect(oftType).toEqual(OftType.LockUnlock);
188
188
  });
189
189
 
190
190
  it('Deploy Mint/Burn OFT', async () => {
191
- mintBurnOftClient = await deployContract<OFTStdClient>(
192
- OFTStdClient,
193
- OFT_STD_WASM_PATH,
191
+ mintBurnOftClient = await deployContract<OFTClient>(
192
+ OFTClient,
193
+ OFT_WASM_PATH,
194
194
  {
195
195
  token: oftTokenAddress,
196
196
  owner: DEFAULT_DEPLOYER.publicKey(),
197
197
  endpoint: protocolAddresses.endpointV2,
198
198
  delegate: DEFAULT_DEPLOYER.publicKey(),
199
199
  shared_decimals: SHARED_DECIMALS,
200
- mode: OFTMode.MintBurn, // Mint/Burn mode
200
+ oft_type: OftType.MintBurn, // Mint/Burn mode
201
201
  },
202
202
  DEFAULT_DEPLOYER,
203
203
  );
@@ -206,8 +206,8 @@ describe('OFT E2E Testing with SAC (SML)', async () => {
206
206
  console.log('✅ Mint/Burn OFT deployed:', mintBurnOftAddress);
207
207
 
208
208
  // Verify it's in mint/burn mode
209
- const { result: mode } = await mintBurnOftClient.mode();
210
- expect(mode).toEqual(OFTMode.MintBurn);
209
+ const { result: oftType } = await mintBurnOftClient.oft_type();
210
+ expect(oftType).toEqual(OftType.MintBurn);
211
211
  });
212
212
  });
213
213
 
@@ -419,14 +419,14 @@ describe('OFT E2E Testing with SAC (SML)', async () => {
419
419
  };
420
420
 
421
421
  const { result: fee } = await lockUnlockOftClient.quote_send({
422
- sender: DEFAULT_DEPLOYER.publicKey(),
422
+ from: DEFAULT_DEPLOYER.publicKey(),
423
423
  send_param: sendParam,
424
424
  pay_in_zro: true,
425
425
  });
426
426
  console.log('📊 Messaging Fee:', fee);
427
427
 
428
428
  const assembledTx = await lockUnlockOftClient.send({
429
- sender: DEFAULT_DEPLOYER.publicKey(),
429
+ from: DEFAULT_DEPLOYER.publicKey(),
430
430
  send_param: sendParam,
431
431
  fee: fee,
432
432
  refund_address: DEFAULT_DEPLOYER.publicKey(),
@@ -581,14 +581,14 @@ describe('OFT E2E Testing with SAC (SML)', async () => {
581
581
  };
582
582
 
583
583
  const { result: fee } = await mintBurnOftClient.quote_send({
584
- sender: DEFAULT_DEPLOYER.publicKey(),
584
+ from: DEFAULT_DEPLOYER.publicKey(),
585
585
  send_param: sendParam,
586
586
  pay_in_zro: true,
587
587
  });
588
588
  console.log('📊 Reverse Messaging Fee:', fee);
589
589
 
590
590
  const assembledTx = await mintBurnOftClient.send({
591
- sender: DEFAULT_DEPLOYER.publicKey(),
591
+ from: DEFAULT_DEPLOYER.publicKey(),
592
592
  send_param: sendParam,
593
593
  fee: fee,
594
594
  refund_address: DEFAULT_DEPLOYER.publicKey(),
@@ -179,8 +179,7 @@ describe('Upgrader Contract Testing', async () => {
179
179
 
180
180
  // NOTE: Using Option 2 - Hybrid approach with generated client
181
181
  // Build with generated client, then manually simulate with authMode, then inject back
182
-
183
- const voidScVal = xdr.ScVal.scvVoid();
182
+ const counterValue = 2;
184
183
  const server = new rpc.Server(RPC_URL, { allowHttp: true });
185
184
 
186
185
  // 1. Build transaction using generated client (don't auto-simulate)
@@ -188,7 +187,7 @@ describe('Upgrader Contract Testing', async () => {
188
187
  {
189
188
  contract_address: testContractAddress,
190
189
  wasm_hash: Buffer.from(newWasmHash, 'hex'),
191
- migration_data: [voidScVal],
190
+ migration_data: xdr.ScVal.scvU32(counterValue).toXDR(),
192
191
  },
193
192
  {
194
193
  simulate: false, // Don't simulate yet
package/sdk/turbo.json ADDED
@@ -0,0 +1,8 @@
1
+ {
2
+ "extends": ["//"],
3
+ "tasks": {
4
+ "build": {
5
+ "dependsOn": ["@layerzerolabs/protocol-stellar-v2#build", "^build"]
6
+ }
7
+ }
8
+ }
@@ -11,4 +11,6 @@ path = "src/main.rs"
11
11
  [dependencies]
12
12
  anyhow = "1.0"
13
13
  soroban-spec-typescript = "23.0.3"
14
+ sha2 = "0.10"
15
+ base64 = "0.22"
14
16
 
@@ -1,4 +1,6 @@
1
1
  use anyhow::Result;
2
+ use base64::{engine::general_purpose::STANDARD as BASE64, Engine};
3
+ use sha2::{Digest, Sha256};
2
4
  use soroban_spec_typescript::generate_from_file;
3
5
  use std::{fs, path::Path};
4
6
 
@@ -31,12 +33,49 @@ export * from '@stellar/stellar-sdk'
31
33
  export * as contract from '@stellar/stellar-sdk/contract'
32
34
  export * as rpc from '@stellar/stellar-sdk/rpc'
33
35
 
34
- export type MigrationData = void;
35
36
 
36
37
 
37
38
  "#
38
39
  }
39
40
 
41
+ /// Generate embedded WASM code section
42
+ fn generate_wasm_embed(wasm_bytes: &[u8]) -> String {
43
+ // Compute SHA-256 hash (this is what Stellar uses for wasmHash)
44
+ let wasm_hash = Sha256::digest(wasm_bytes);
45
+ let wasm_hash_hex = format!("{:x}", wasm_hash);
46
+
47
+ // Base64 encode the WASM bytes
48
+ let wasm_base64 = BASE64.encode(wasm_bytes);
49
+
50
+ format!(
51
+ r#"/**
52
+ * Embedded WASM bytecode (base64-encoded)
53
+ * Size: {} bytes ({:.2} KB)
54
+ */
55
+ export const WASM_BASE64 = "{}";
56
+
57
+ /**
58
+ * Pre-computed WASM hash (SHA-256)
59
+ * Use this when the WASM is already uploaded on-chain
60
+ */
61
+ export const WASM_HASH = "{}";
62
+
63
+ /**
64
+ * Get the WASM bytecode as a Buffer
65
+ * Use this to upload the WASM to the network
66
+ */
67
+ export function getWasmBuffer(): Buffer {{
68
+ return Buffer.from(WASM_BASE64, 'base64');
69
+ }}
70
+
71
+ "#,
72
+ wasm_bytes.len(),
73
+ wasm_bytes.len() as f64 / 1024.0,
74
+ wasm_base64,
75
+ wasm_hash_hex
76
+ )
77
+ }
78
+
40
79
  fn main() -> Result<()> {
41
80
  println!("🚀 Generating TypeScript bindings for Stellar contracts...\n");
42
81
 
@@ -63,7 +102,9 @@ fn main() -> Result<()> {
63
102
  ("price_feed", "price_feed.ts"),
64
103
  // OApp contracts
65
104
  ("counter", "counter.ts"),
66
- ("oft_std", "oft_std.ts"),
105
+ ("oft", "oft.ts"),
106
+ // View contracts
107
+ ("layerzero_views", "layerzero_view.ts"),
67
108
  // Add more contracts here as needed:
68
109
  ];
69
110
 
@@ -89,6 +130,13 @@ fn main() -> Result<()> {
89
130
  continue;
90
131
  }
91
132
 
133
+ // Read WASM bytes for embedding
134
+ let wasm_bytes = fs::read(&wasm_path)?;
135
+ println!(" WASM size: {} bytes ({:.2} KB)", wasm_bytes.len(), wasm_bytes.len() as f64 / 1024.0);
136
+
137
+ // Generate the embedded WASM section
138
+ let wasm_embed = generate_wasm_embed(&wasm_bytes);
139
+
92
140
  // Generate TypeScript bindings
93
141
  println!(" Generating bindings...");
94
142
  let wasm_path_str =
@@ -132,8 +180,8 @@ fn main() -> Result<()> {
132
180
  }"#,
133
181
  );
134
182
 
135
- // Combine imports header with generated code
136
- let complete_code = format!("{}{}", generate_imports_header(), ts_code);
183
+ // Combine imports header + embedded WASM + generated code
184
+ let complete_code = format!("{}{}{}", generate_imports_header(), wasm_embed, ts_code);
137
185
 
138
186
  // Write to contract-specific TypeScript file
139
187
  fs::write(&output_file, &complete_code)?;
@@ -145,7 +193,7 @@ fn main() -> Result<()> {
145
193
  }
146
194
 
147
195
  println!("\n✅ TypeScript binding generation complete!");
148
- println!(" Generated {} contract(s)", generated_contracts.len());
196
+ println!(" Generated {} contract(s) with embedded WASM", generated_contracts.len());
149
197
 
150
198
  if generated_contracts.is_empty() {
151
199
  println!("\n💡 Tip: Build your contracts first before generating bindings:");
package/turbo.json CHANGED
@@ -4,8 +4,6 @@
4
4
  "build": {
5
5
  "outputs": [
6
6
  "sdk/src/generated/**",
7
- "sdk/src/wasm/**",
8
- "sdk/src/wasm.ts",
9
7
  "target/wasm32v1-none/release/*.wasm",
10
8
  "target/wasm32v1-none/release/*.d"
11
9
  ]
@@ -1,23 +0,0 @@
1
- use soroban_sdk::{contractclient, Address, Env};
2
-
3
- /// Contract interface for mint and burn token operations.
4
- ///
5
- /// This interface abstracts the token mint/burn functionality, allowing different
6
- /// token implementations (e.g., StellarAssetContract, custom tokens) to be used
7
- /// with the MintBurn OFT.
8
- #[contractclient(name = "MintBurnTokenClient")]
9
- pub trait MintBurnToken {
10
- /// Mints tokens to the specified address.
11
- ///
12
- /// # Parameters
13
- /// * `to` - The address to mint tokens to
14
- /// * `amount` - The amount of tokens to mint (must be non-negative)
15
- fn mint(env: Env, to: Address, amount: i128);
16
-
17
- /// Burns tokens from the specified address.
18
- ///
19
- /// # Parameters
20
- /// * `from` - The address to burn tokens from
21
- /// * `amount` - The amount of tokens to burn (must be non-negative)
22
- fn burn(env: Env, from: Address, amount: i128);
23
- }
@@ -1,3 +0,0 @@
1
- mod mint_burn_token;
2
-
3
- pub use mint_burn_token::*;