@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.
- package/.turbo/turbo-build.log +303 -253
- package/.turbo/turbo-lint.log +66 -65
- package/.turbo/turbo-test.log +1312 -1282
- package/Cargo.lock +21 -8
- package/Cargo.toml +2 -0
- package/contracts/ERROR_SPEC.md +9 -2
- package/contracts/common-macros/src/contract_ttl.rs +18 -7
- package/contracts/common-macros/src/lib.rs +4 -4
- package/contracts/common-macros/src/tests/contract_ttl.rs +1 -1
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__contract_ttl__snapshot_generated_contractimpl_code.snap +2 -1
- package/contracts/common-macros/src/tests/snapshots/common_macros__tests__upgradeable__snapshot_generated_upgradeable_code.snap +7 -12
- package/contracts/common-macros/src/upgradeable.rs +15 -21
- package/contracts/message-libs/uln-302/src/events.rs +4 -0
- package/contracts/message-libs/uln-302/src/send_uln.rs +23 -7
- package/contracts/message-libs/uln-302/src/tests/send_uln302/send.rs +38 -64
- package/contracts/oapps/counter/Cargo.toml +1 -0
- package/contracts/oapps/counter/integration_tests/setup_uln.rs +1 -1
- package/contracts/oapps/oapp/src/oapp_receiver.rs +1 -1
- package/contracts/oapps/oapp/src/tests/test_oapp_core.rs +113 -65
- package/contracts/oapps/oapp/src/tests/test_oapp_options_type3.rs +111 -82
- package/contracts/oapps/oapp/src/tests/test_oapp_receiver.rs +293 -65
- package/contracts/oapps/oapp/src/tests/test_oapp_sender.rs +331 -56
- package/contracts/oapps/oft/Cargo.toml +10 -7
- package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/test_oft_fee.rs +3 -4
- package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/test_pausable.rs +2 -3
- package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/test_rate_limiter.rs +1 -1
- package/contracts/oapps/oft/integration-tests/mod.rs +1 -1
- package/contracts/oapps/oft/integration-tests/setup.rs +28 -127
- package/contracts/oapps/oft/integration-tests/utils.rs +254 -21
- package/contracts/oapps/oft/src/extensions/oft_fee.rs +23 -8
- package/contracts/oapps/oft/src/extensions/pausable.rs +19 -4
- package/contracts/oapps/oft/src/extensions/rate_limiter.rs +52 -28
- package/contracts/oapps/oft/src/lib.rs +10 -14
- package/contracts/oapps/oft/src/oft.rs +143 -193
- package/contracts/oapps/oft/src/oft_types/lock_unlock.rs +9 -11
- package/contracts/oapps/oft/src/oft_types/mint_burn.rs +12 -14
- package/contracts/oapps/oft/src/oft_types/mod.rs +13 -0
- package/contracts/oapps/{oft-std → oft-core}/Cargo.toml +6 -4
- package/contracts/oapps/{oft-std → oft-core}/integration-tests/mod.rs +1 -1
- package/contracts/oapps/{oft-std → oft-core}/integration-tests/setup.rs +126 -29
- package/contracts/oapps/{oft → oft-core}/integration-tests/test_with_sml.rs +3 -3
- package/contracts/oapps/oft-core/integration-tests/utils.rs +201 -0
- package/contracts/oapps/oft-core/src/lib.rs +18 -0
- package/contracts/oapps/oft-core/src/oft_core.rs +479 -0
- package/contracts/oapps/{oft → oft-core}/src/tests/mod.rs +0 -2
- package/contracts/oapps/{oft → oft-core}/src/tests/test_lz_receive.rs +7 -7
- package/contracts/oapps/{oft → oft-core}/src/tests/test_oft_msg_codec.rs +4 -4
- package/contracts/oapps/{oft → oft-core}/src/tests/test_resolve_address.rs +3 -3
- package/contracts/oapps/{oft → oft-core}/src/tests/test_utils.rs +46 -27
- package/contracts/oapps/{oft → oft-core}/src/utils.rs +1 -1
- package/contracts/upgrader/src/lib.rs +30 -57
- package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract1.wasm +0 -0
- package/contracts/upgrader/src/tests/test_data/test_upgradeable_contract2.wasm +0 -0
- package/contracts/upgrader/src/tests/test_upgrader.rs +44 -35
- package/contracts/utils/src/buffer_reader.rs +1 -0
- package/contracts/utils/src/errors.rs +8 -2
- package/contracts/utils/src/ownable.rs +125 -3
- package/contracts/utils/src/tests/option_ext.rs +1 -1
- package/contracts/utils/src/tests/ownable.rs +445 -7
- package/contracts/utils/src/tests/ttl_configurable.rs +2 -2
- package/contracts/utils/src/tests/upgradeable.rs +372 -175
- package/contracts/utils/src/ttl_configurable.rs +3 -3
- package/contracts/utils/src/upgradeable.rs +48 -23
- package/contracts/workers/dvn/Cargo.toml +1 -0
- package/contracts/workers/dvn/src/auth.rs +12 -42
- package/contracts/workers/dvn/src/dvn.rs +16 -31
- package/contracts/workers/dvn/src/errors.rs +0 -1
- package/contracts/workers/dvn/src/interfaces/dvn.rs +35 -0
- package/contracts/workers/dvn/src/lib.rs +4 -3
- package/contracts/workers/dvn/src/tests/auth.rs +1 -1
- package/contracts/workers/dvn/src/tests/dvn.rs +19 -15
- package/contracts/workers/dvn/src/tests/multisig/set_threshold.rs +2 -4
- package/contracts/workers/dvn/src/tests/multisig/verify_signatures.rs +1 -3
- package/contracts/workers/dvn/src/tests/setup.rs +5 -9
- package/contracts/workers/dvn-fee-lib/Cargo.toml +1 -1
- package/contracts/workers/dvn-fee-lib/src/dvn_fee_lib.rs +3 -5
- package/contracts/workers/dvn-fee-lib/src/tests/dvn_fee_lib.rs +2 -3
- package/contracts/workers/executor/Cargo.toml +1 -0
- package/contracts/workers/executor/src/executor.rs +15 -26
- package/contracts/workers/executor-fee-lib/Cargo.toml +2 -1
- package/contracts/workers/executor-fee-lib/src/executor_fee_lib.rs +63 -5
- package/contracts/workers/executor-fee-lib/src/executor_option.rs +28 -1
- package/contracts/workers/executor-fee-lib/src/lib.rs +3 -0
- package/contracts/workers/executor-fee-lib/src/tests/executor_fee_lib.rs +701 -0
- package/contracts/workers/executor-fee-lib/src/tests/executor_option.rs +370 -0
- package/contracts/workers/executor-fee-lib/src/tests/mod.rs +4 -0
- package/contracts/workers/executor-fee-lib/src/tests/setup.rs +60 -0
- package/contracts/workers/executor-helper/src/lib.rs +3 -0
- package/contracts/workers/executor-helper/src/tests/executor_helper.rs +184 -0
- package/contracts/workers/executor-helper/src/tests/mod.rs +2 -0
- package/contracts/workers/executor-helper/src/tests/setup.rs +366 -0
- package/contracts/workers/fee-lib-interfaces/Cargo.toml +14 -0
- package/contracts/workers/{worker/src/interfaces/mod.rs → fee-lib-interfaces/src/lib.rs} +4 -3
- package/contracts/workers/price-feed/Cargo.toml +2 -1
- package/contracts/workers/price-feed/src/events.rs +1 -1
- package/contracts/workers/price-feed/src/lib.rs +3 -0
- package/contracts/workers/price-feed/src/price_feed.rs +6 -12
- package/contracts/workers/price-feed/src/storage.rs +1 -1
- package/contracts/workers/price-feed/src/tests/mod.rs +2 -0
- package/contracts/workers/price-feed/src/tests/price_feed.rs +869 -0
- package/contracts/workers/price-feed/src/tests/setup.rs +70 -0
- package/contracts/workers/price-feed/src/types.rs +1 -1
- package/contracts/workers/worker/src/errors.rs +0 -3
- package/contracts/workers/worker/src/lib.rs +0 -2
- package/contracts/workers/worker/src/storage.rs +32 -29
- package/contracts/workers/worker/src/tests/setup.rs +1 -7
- package/contracts/workers/worker/src/tests/worker.rs +50 -42
- package/contracts/workers/worker/src/worker.rs +49 -58
- package/package.json +4 -5
- package/sdk/.turbo/turbo-test.log +229 -217
- package/sdk/dist/generated/bml.d.ts +39 -1
- package/sdk/dist/generated/bml.js +33 -8
- package/sdk/dist/generated/counter.d.ts +131 -3
- package/sdk/dist/generated/counter.js +41 -10
- package/sdk/dist/generated/dvn.d.ts +431 -362
- package/sdk/dist/generated/dvn.js +80 -55
- package/sdk/dist/generated/dvn_fee_lib.d.ts +327 -251
- package/sdk/dist/generated/dvn_fee_lib.js +55 -57
- package/sdk/dist/generated/endpoint.d.ts +131 -3
- package/sdk/dist/generated/endpoint.js +41 -10
- package/sdk/dist/generated/executor.d.ts +503 -339
- package/sdk/dist/generated/executor.js +80 -48
- package/sdk/dist/generated/executor_fee_lib.d.ts +395 -319
- package/sdk/dist/generated/executor_fee_lib.js +54 -56
- package/sdk/dist/generated/executor_helper.d.ts +53 -187
- package/sdk/dist/generated/executor_helper.js +47 -29
- package/sdk/dist/generated/layerzero_view.d.ts +1271 -0
- package/sdk/dist/generated/layerzero_view.js +294 -0
- package/sdk/dist/generated/oft.d.ts +1851 -0
- package/sdk/dist/generated/oft.js +347 -0
- package/sdk/dist/generated/price_feed.d.ts +329 -253
- package/sdk/dist/generated/price_feed.js +55 -57
- package/sdk/dist/generated/sml.d.ts +131 -3
- package/sdk/dist/generated/sml.js +41 -10
- package/sdk/dist/generated/treasury.d.ts +131 -3
- package/sdk/dist/generated/treasury.js +41 -10
- package/sdk/dist/generated/uln302.d.ts +131 -3
- package/sdk/dist/generated/uln302.js +43 -12
- package/sdk/dist/generated/upgrader.d.ts +201 -15
- package/sdk/dist/generated/upgrader.js +99 -1
- package/sdk/dist/index.d.ts +2 -2
- package/sdk/dist/index.js +3 -3
- package/sdk/package.json +3 -2
- package/sdk/src/index.ts +3 -3
- package/sdk/test/oft-sml.test.ts +20 -20
- package/sdk/test/upgrader.test.ts +2 -3
- package/sdk/turbo.json +8 -0
- package/tools/ts-bindings-gen/Cargo.toml +2 -0
- package/tools/ts-bindings-gen/src/main.rs +53 -5
- package/turbo.json +0 -2
- package/contracts/oapps/oft/src/interfaces/mint_burn_token.rs +0 -23
- package/contracts/oapps/oft/src/interfaces/mod.rs +0 -3
- package/contracts/oapps/oft/src/oft_impl.rs +0 -201
- package/contracts/oapps/oft/src/tests/extensions/mod.rs +0 -11
- package/contracts/oapps/oft/src/tests/extensions/setup.rs +0 -917
- package/contracts/oapps/oft/src/tests/extensions/test_oft_fee.rs +0 -751
- package/contracts/oapps/oft/src/tests/extensions/test_pausable.rs +0 -434
- package/contracts/oapps/oft/src/tests/extensions/test_rate_limiter.rs +0 -1080
- package/contracts/oapps/oft-std/integration-tests/utils.rs +0 -427
- package/contracts/oapps/oft-std/src/lib.rs +0 -16
- package/contracts/oapps/oft-std/src/oft.rs +0 -174
- package/sdk/dist/generated/oft_std.d.ts +0 -1722
- package/sdk/dist/generated/oft_std.js +0 -316
- package/sdk/dist/wasm/blocked-message-lib.d.ts +0 -1
- package/sdk/dist/wasm/blocked-message-lib.js +0 -2
- package/sdk/dist/wasm/counter.d.ts +0 -1
- package/sdk/dist/wasm/counter.js +0 -2
- package/sdk/dist/wasm/dvn-fee-lib.d.ts +0 -1
- package/sdk/dist/wasm/dvn-fee-lib.js +0 -2
- package/sdk/dist/wasm/dvn.d.ts +0 -1
- package/sdk/dist/wasm/dvn.js +0 -2
- package/sdk/dist/wasm/endpoint-v2.d.ts +0 -1
- package/sdk/dist/wasm/endpoint-v2.js +0 -2
- package/sdk/dist/wasm/executor-fee-lib.d.ts +0 -1
- package/sdk/dist/wasm/executor-fee-lib.js +0 -2
- package/sdk/dist/wasm/executor-helper.d.ts +0 -1
- package/sdk/dist/wasm/executor-helper.js +0 -2
- package/sdk/dist/wasm/executor.d.ts +0 -1
- package/sdk/dist/wasm/executor.js +0 -2
- package/sdk/dist/wasm/layerzero-views.d.ts +0 -1
- package/sdk/dist/wasm/layerzero-views.js +0 -2
- package/sdk/dist/wasm/oft-std.d.ts +0 -1
- package/sdk/dist/wasm/oft-std.js +0 -2
- package/sdk/dist/wasm/price-feed.d.ts +0 -1
- package/sdk/dist/wasm/price-feed.js +0 -2
- package/sdk/dist/wasm/simple-message-lib.d.ts +0 -1
- package/sdk/dist/wasm/simple-message-lib.js +0 -2
- package/sdk/dist/wasm/treasury.d.ts +0 -1
- package/sdk/dist/wasm/treasury.js +0 -2
- package/sdk/dist/wasm/uln302.d.ts +0 -1
- package/sdk/dist/wasm/uln302.js +0 -2
- package/sdk/dist/wasm/upgrader.d.ts +0 -1
- package/sdk/dist/wasm/upgrader.js +0 -2
- package/sdk/dist/wasm.d.ts +0 -15
- package/sdk/dist/wasm.js +0 -15
- /package/contracts/oapps/{oft-std → oft}/integration-tests/extensions/mod.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/codec/mod.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/codec/oft_compose_msg_codec.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/codec/oft_msg_codec.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/errors.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/events.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/storage.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_decimals.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_oft_compose_msg_codec.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_oft_version.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_quote_oft.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_quote_send.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_send.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/tests/test_token.rs +0 -0
- /package/contracts/oapps/{oft → oft-core}/src/types.rs +0 -0
- /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/dvn_fee_lib.rs +0 -0
- /package/contracts/workers/{worker/src/interfaces → fee-lib-interfaces/src}/executor_fee_lib.rs +0 -0
- /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(["
|
|
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
|
}
|
package/sdk/dist/index.d.ts
CHANGED
|
@@ -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
|
|
15
|
-
export * from './
|
|
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
|
|
18
|
-
//
|
|
19
|
-
export * from './
|
|
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.
|
|
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
|
|
19
|
+
export * as oft from './generated/oft.js';
|
|
20
20
|
|
|
21
|
-
//
|
|
22
|
-
export * from './
|
|
21
|
+
// View contracts
|
|
22
|
+
export * as layerzeroView from './generated/layerzero_view.js';
|
package/sdk/test/oft-sml.test.ts
CHANGED
|
@@ -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
|
|
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:
|
|
51
|
-
let mintBurnOftClient:
|
|
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
|
|
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<
|
|
169
|
-
|
|
170
|
-
|
|
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
|
-
|
|
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:
|
|
187
|
-
expect(
|
|
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<
|
|
192
|
-
|
|
193
|
-
|
|
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
|
-
|
|
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:
|
|
210
|
-
expect(
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
@@ -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
|
-
("
|
|
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
|
|
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
|
@@ -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
|
-
}
|