diff --git a/.github/workflows/libvmexeccapi-build.yml b/.github/workflows/libvmexeccapi-build.yml index b48041e..1420b2e 100644 --- a/.github/workflows/libvmexeccapi-build.yml +++ b/.github/workflows/libvmexeccapi-build.yml @@ -34,7 +34,7 @@ jobs: - name: Checkout uses: actions/checkout@v4 - name: Setup toolchain - run: rustup default 1.77.1 + run: rustup default 1.81 - name: Add targets run: | rustup target add aarch64-unknown-linux-gnu diff --git a/.github/workflows/rust-ci.yml b/.github/workflows/rust-ci.yml index cdc450a..1bc3426 100644 --- a/.github/workflows/rust-ci.yml +++ b/.github/workflows/rust-ci.yml @@ -14,7 +14,7 @@ jobs: steps: - uses: actions/checkout@v4 - name: Setup toolchain - run: rustup default 1.77.1 + run: rustup default 1.81 - name: Run rust tests run: cargo test clippy_check: @@ -25,7 +25,7 @@ jobs: - uses: actions/checkout@v4 - name: Setup toolchain run: | - rustup default 1.77.1 + rustup default 1.81 rustup component add clippy - name: Run clippy run: cargo clippy --all-features diff --git a/Docker/arm64.dockerfile b/Docker/arm64.dockerfile index 790e944..5a93bb5 100644 --- a/Docker/arm64.dockerfile +++ b/Docker/arm64.dockerfile @@ -1,4 +1,4 @@ -FROM arm64v8/rust:1.77.1 +FROM arm64v8/rust:1.81 RUN apt-get update && apt-get install -y \ wget \ diff --git a/c-api/libvmexeccapi.h b/c-api/libvmexeccapi.h index 923409c..93ec584 100644 --- a/c-api/libvmexeccapi.h +++ b/c-api/libvmexeccapi.h @@ -46,8 +46,8 @@ typedef struct { void (*get_external_balance_func_ptr)(void *context, int32_t address_offset, int32_t result_offset); int32_t (*get_block_hash_func_ptr)(void *context, int64_t nonce, int32_t result_offset); int32_t (*get_kda_balance_func_ptr)(void *context, int32_t address_offset, int32_t token_id_offset, int32_t token_id_len, int64_t nonce, int32_t result_offset); - int32_t (*get_kda_nft_name_length_func_ptr)(void *context, int32_t address_offset, int32_t token_id_offset, int32_t token_id_len, int64_t nonce); - int32_t (*get_kda_nft_uri_length_func_ptr)(void *context, int32_t address_offset, int32_t token_id_offset, int32_t token_id_len, int64_t nonce); + int32_t (*get_kda_name_length_func_ptr)(void *context, int32_t address_offset, int32_t token_id_offset, int32_t token_id_len, int64_t nonce); + int32_t (*get_kda_uri_length_func_ptr)(void *context, int32_t address_offset, int32_t token_id_offset, int32_t token_id_len, int64_t nonce); int32_t (*get_kda_token_data_func_ptr)(void *context, int32_t address_offset, int32_t token_id_offset, int32_t token_id_len, int64_t nonce, int32_t precision_handle, int32_t id_offset, int32_t name_offset, int32_t creator_offset, int32_t logo_offset, int32_t initial_supply_offset, int32_t circulating_supply_offset, int32_t max_supply_offset, int32_t minted_offset, int32_t burned_offset, int32_t royalties_offset, int32_t properties_offset, int32_t attributes_offset, int32_t roles_offset); int32_t (*validate_token_identifier_func_ptr)(void *context, int32_t token_id_handle); void (*upgrade_contract_func_ptr)(void *context, int32_t dest_offset, int64_t gas_limit, int32_t value_offset, int32_t code_offset, int32_t code_metadata_offset, int32_t length, int32_t num_arguments, int32_t arguments_length_offset, int32_t data_offset); diff --git a/c-api/src/capi_vm_hook_pointers.rs b/c-api/src/capi_vm_hook_pointers.rs index 2ef540b..8900d8a 100644 --- a/c-api/src/capi_vm_hook_pointers.rs +++ b/c-api/src/capi_vm_hook_pointers.rs @@ -18,8 +18,8 @@ pub struct vm_exec_vm_hook_c_func_pointers { pub get_external_balance_func_ptr: extern "C" fn(context: *mut c_void, address_offset: i32, result_offset: i32), pub get_block_hash_func_ptr: extern "C" fn(context: *mut c_void, nonce: i64, result_offset: i32) -> i32, pub get_kda_balance_func_ptr: extern "C" fn(context: *mut c_void, address_offset: i32, token_id_offset: i32, token_id_len: i32, nonce: i64, result_offset: i32) -> i32, - pub get_kda_nft_name_length_func_ptr: extern "C" fn(context: *mut c_void, address_offset: i32, token_id_offset: i32, token_id_len: i32, nonce: i64) -> i32, - pub get_kda_nft_uri_length_func_ptr: extern "C" fn(context: *mut c_void, address_offset: i32, token_id_offset: i32, token_id_len: i32, nonce: i64) -> i32, + pub get_kda_name_length_func_ptr: extern "C" fn(context: *mut c_void, address_offset: i32, token_id_offset: i32, token_id_len: i32, nonce: i64) -> i32, + pub get_kda_uri_length_func_ptr: extern "C" fn(context: *mut c_void, address_offset: i32, token_id_offset: i32, token_id_len: i32, nonce: i64) -> i32, pub get_kda_token_data_func_ptr: extern "C" fn(context: *mut c_void, address_offset: i32, token_id_offset: i32, token_id_len: i32, nonce: i64, precision_handle: i32, id_offset: i32, name_offset: i32, creator_offset: i32, logo_offset: i32, initial_supply_offset: i32, circulating_supply_offset: i32, max_supply_offset: i32, minted_offset: i32, burned_offset: i32, royalties_offset: i32, properties_offset: i32, attributes_offset: i32, roles_offset: i32) -> i32, pub validate_token_identifier_func_ptr: extern "C" fn(context: *mut c_void, token_id_handle: i32) -> i32, pub upgrade_contract_func_ptr: extern "C" fn(context: *mut c_void, dest_offset: i32, gas_limit: i64, value_offset: i32, code_offset: i32, code_metadata_offset: i32, length: i32, num_arguments: i32, arguments_length_offset: i32, data_offset: i32), diff --git a/c-api/src/capi_vm_hooks.rs b/c-api/src/capi_vm_hooks.rs index 3680a0e..206d2f7 100644 --- a/c-api/src/capi_vm_hooks.rs +++ b/c-api/src/capi_vm_hooks.rs @@ -71,12 +71,12 @@ impl klever_chain_vm_executor::VMHooks for CapiVMHooks { (self.c_func_pointers_ptr.get_kda_balance_func_ptr)(self.vm_hooks_ptr, self.convert_mem_ptr(address_offset), self.convert_mem_ptr(token_id_offset), self.convert_mem_length(token_id_len), nonce, self.convert_mem_ptr(result_offset)) } - fn get_kda_nft_name_length(&self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64) -> i32 { - (self.c_func_pointers_ptr.get_kda_nft_name_length_func_ptr)(self.vm_hooks_ptr, self.convert_mem_ptr(address_offset), self.convert_mem_ptr(token_id_offset), self.convert_mem_length(token_id_len), nonce) + fn get_kda_name_length(&self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64) -> i32 { + (self.c_func_pointers_ptr.get_kda_name_length_func_ptr)(self.vm_hooks_ptr, self.convert_mem_ptr(address_offset), self.convert_mem_ptr(token_id_offset), self.convert_mem_length(token_id_len), nonce) } - fn get_kda_nft_uri_length(&self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64) -> i32 { - (self.c_func_pointers_ptr.get_kda_nft_uri_length_func_ptr)(self.vm_hooks_ptr, self.convert_mem_ptr(address_offset), self.convert_mem_ptr(token_id_offset), self.convert_mem_length(token_id_len), nonce) + fn get_kda_uri_length(&self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64) -> i32 { + (self.c_func_pointers_ptr.get_kda_uri_length_func_ptr)(self.vm_hooks_ptr, self.convert_mem_ptr(address_offset), self.convert_mem_ptr(token_id_offset), self.convert_mem_length(token_id_len), nonce) } fn get_kda_token_data(&self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64, precision_handle: i32, id_offset: MemPtr, name_offset: MemPtr, creator_offset: MemPtr, logo_offset: MemPtr, initial_supply_offset: MemPtr, circulating_supply_offset: MemPtr, max_supply_offset: MemPtr, minted_offset: MemPtr, burned_offset: MemPtr, royalties_offset: MemPtr, properties_offset: MemPtr, attributes_offset: MemPtr, roles_offset: MemPtr) -> i32 { diff --git a/vm-executor-wasmer/Cargo.toml b/vm-executor-wasmer/Cargo.toml index 8f83740..c968067 100644 --- a/vm-executor-wasmer/Cargo.toml +++ b/vm-executor-wasmer/Cargo.toml @@ -11,15 +11,15 @@ version = "0.2.2" path = "../vm-executor" [dependencies] -wasmer = { git = "https://github.com/klever-io/wasmer", rev = "3ab6ec4", default-features = false, features = [ +wasmer = { git = "https://github.com/klever-io/wasmer", rev = "aa828ed", default-features = false, features = [ "singlepass", "sys", "universal", "wat", ] } -wasmer-vm = { git = "https://github.com/klever-io/wasmer", rev = "3ab6ec4" } -wasmer-types = { git = "https://github.com/klever-io/wasmer", rev = "3ab6ec4" } +wasmer-vm = { git = "https://github.com/klever-io/wasmer", rev = "aa828ed" } +wasmer-types = { git = "https://github.com/klever-io/wasmer", rev = "aa828ed" } chrono = "0.4.23" log = "0.4.17" diff --git a/vm-executor-wasmer/src/wasmer_imports.rs b/vm-executor-wasmer/src/wasmer_imports.rs index 4069c92..8010afd 100644 --- a/vm-executor-wasmer/src/wasmer_imports.rs +++ b/vm-executor-wasmer/src/wasmer_imports.rs @@ -51,13 +51,13 @@ fn wasmer_import_get_kda_balance(env: &VMHooksWrapper, address_offset: i32, toke } #[rustfmt::skip] -fn wasmer_import_get_kda_nft_name_length(env: &VMHooksWrapper, address_offset: i32, token_id_offset: i32, token_id_len: i32, nonce: i64) -> i32 { - env.vm_hooks.get_kda_nft_name_length(env.convert_mem_ptr(address_offset), env.convert_mem_ptr(token_id_offset), env.convert_mem_length(token_id_len), nonce) +fn wasmer_import_get_kda_name_length(env: &VMHooksWrapper, address_offset: i32, token_id_offset: i32, token_id_len: i32, nonce: i64) -> i32 { + env.vm_hooks.get_kda_name_length(env.convert_mem_ptr(address_offset), env.convert_mem_ptr(token_id_offset), env.convert_mem_length(token_id_len), nonce) } #[rustfmt::skip] -fn wasmer_import_get_kda_nft_uri_length(env: &VMHooksWrapper, address_offset: i32, token_id_offset: i32, token_id_len: i32, nonce: i64) -> i32 { - env.vm_hooks.get_kda_nft_uri_length(env.convert_mem_ptr(address_offset), env.convert_mem_ptr(token_id_offset), env.convert_mem_length(token_id_len), nonce) +fn wasmer_import_get_kda_uri_length(env: &VMHooksWrapper, address_offset: i32, token_id_offset: i32, token_id_len: i32, nonce: i64) -> i32 { + env.vm_hooks.get_kda_uri_length(env.convert_mem_ptr(address_offset), env.convert_mem_ptr(token_id_offset), env.convert_mem_length(token_id_len), nonce) } #[rustfmt::skip] @@ -1231,8 +1231,8 @@ pub fn generate_import_object(store: &Store, env: &VMHooksWrapper) -> ImportObje "getExternalBalance" => Function::new_native_with_env(store, env.clone(), wasmer_import_get_external_balance), "getBlockHash" => Function::new_native_with_env(store, env.clone(), wasmer_import_get_block_hash), "getKDABalance" => Function::new_native_with_env(store, env.clone(), wasmer_import_get_kda_balance), - "getKDANFTNameLength" => Function::new_native_with_env(store, env.clone(), wasmer_import_get_kda_nft_name_length), - "getKDANFTURILength" => Function::new_native_with_env(store, env.clone(), wasmer_import_get_kda_nft_uri_length), + "getKDANameLength" => Function::new_native_with_env(store, env.clone(), wasmer_import_get_kda_name_length), + "getKDAURILength" => Function::new_native_with_env(store, env.clone(), wasmer_import_get_kda_uri_length), "getKDATokenData" => Function::new_native_with_env(store, env.clone(), wasmer_import_get_kda_token_data), "validateTokenIdentifier" => Function::new_native_with_env(store, env.clone(), wasmer_import_validate_token_identifier), "upgradeContract" => Function::new_native_with_env(store, env.clone(), wasmer_import_upgrade_contract), diff --git a/vm-executor/src/vm_hooks.rs b/vm-executor/src/vm_hooks.rs index f8e1f16..65dda2b 100644 --- a/vm-executor/src/vm_hooks.rs +++ b/vm-executor/src/vm_hooks.rs @@ -21,8 +21,8 @@ pub trait VMHooks: core::fmt::Debug + 'static { fn get_external_balance(&self, address_offset: MemPtr, result_offset: MemPtr); fn get_block_hash(&self, nonce: i64, result_offset: MemPtr) -> i32; fn get_kda_balance(&self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64, result_offset: MemPtr) -> i32; - fn get_kda_nft_name_length(&self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64) -> i32; - fn get_kda_nft_uri_length(&self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64) -> i32; + fn get_kda_name_length(&self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64) -> i32; + fn get_kda_uri_length(&self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64) -> i32; fn get_kda_token_data(&self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64, precision_handle: i32, id_offset: MemPtr, name_offset: MemPtr, creator_offset: MemPtr, logo_offset: MemPtr, initial_supply_offset: MemPtr, circulating_supply_offset: MemPtr, max_supply_offset: MemPtr, minted_offset: MemPtr, burned_offset: MemPtr, royalties_offset: MemPtr, properties_offset: MemPtr, attributes_offset: MemPtr, roles_offset: MemPtr) -> i32; fn validate_token_identifier(&self, token_id_handle: i32) -> i32; fn upgrade_contract(&self, dest_offset: MemPtr, gas_limit: i64, value_offset: MemPtr, code_offset: MemPtr, code_metadata_offset: MemPtr, length: MemLength, num_arguments: i32, arguments_length_offset: MemPtr, data_offset: MemPtr); @@ -303,13 +303,13 @@ impl VMHooks for VMHooksDefault { 0 } - fn get_kda_nft_name_length(&self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64) -> i32 { - println!("Called: get_kda_nft_name_length"); + fn get_kda_name_length(&self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64) -> i32 { + println!("Called: get_kda_name_length"); 0 } - fn get_kda_nft_uri_length(&self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64) -> i32 { - println!("Called: get_kda_nft_uri_length"); + fn get_kda_uri_length(&self, address_offset: MemPtr, token_id_offset: MemPtr, token_id_len: MemLength, nonce: i64) -> i32 { + println!("Called: get_kda_uri_length"); 0 }