From 6844b3f515072b892c4152c25cbde18bd0308da4 Mon Sep 17 00:00:00 2001 From: nickgs1337 Date: Fri, 10 Jan 2025 11:16:06 -0300 Subject: [PATCH 1/4] rename get_nft_name hook to get_kda_hook --- c-api/src/capi_vm_hook_pointers.rs | 2 +- c-api/src/capi_vm_hooks.rs | 4 ++-- vm-executor-wasmer/src/wasmer_imports.rs | 6 +++--- vm-executor/src/vm_hooks.rs | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/c-api/src/capi_vm_hook_pointers.rs b/c-api/src/capi_vm_hook_pointers.rs index 2ef540b..e58d796 100644 --- a/c-api/src/capi_vm_hook_pointers.rs +++ b/c-api/src/capi_vm_hook_pointers.rs @@ -18,7 +18,7 @@ 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_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_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, diff --git a/c-api/src/capi_vm_hooks.rs b/c-api/src/capi_vm_hooks.rs index 3680a0e..549ea59 100644 --- a/c-api/src/capi_vm_hooks.rs +++ b/c-api/src/capi_vm_hooks.rs @@ -71,8 +71,8 @@ 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 { diff --git a/vm-executor-wasmer/src/wasmer_imports.rs b/vm-executor-wasmer/src/wasmer_imports.rs index 4069c92..7cdb4ef 100644 --- a/vm-executor-wasmer/src/wasmer_imports.rs +++ b/vm-executor-wasmer/src/wasmer_imports.rs @@ -51,8 +51,8 @@ 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] @@ -1231,7 +1231,7 @@ 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), + "getKDANameLength" => Function::new_native_with_env(store, env.clone(), wasmer_import_get_kda_name_length), "getKDANFTURILength" => Function::new_native_with_env(store, env.clone(), wasmer_import_get_kda_nft_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), diff --git a/vm-executor/src/vm_hooks.rs b/vm-executor/src/vm_hooks.rs index f8e1f16..0dfa660 100644 --- a/vm-executor/src/vm_hooks.rs +++ b/vm-executor/src/vm_hooks.rs @@ -21,7 +21,7 @@ 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_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_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; @@ -303,8 +303,8 @@ 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 } From a6528a6da6f6f96958305315f6e6ef06f4e6540e Mon Sep 17 00:00:00 2001 From: nickgs1337 Date: Fri, 10 Jan 2025 12:21:48 -0300 Subject: [PATCH 2/4] Rename get_nft_uri hook to get_kda_uri --- c-api/src/capi_vm_hook_pointers.rs | 2 +- c-api/src/capi_vm_hooks.rs | 4 ++-- vm-executor-wasmer/src/wasmer_imports.rs | 6 +++--- vm-executor/src/vm_hooks.rs | 6 +++--- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/c-api/src/capi_vm_hook_pointers.rs b/c-api/src/capi_vm_hook_pointers.rs index e58d796..8900d8a 100644 --- a/c-api/src/capi_vm_hook_pointers.rs +++ b/c-api/src/capi_vm_hook_pointers.rs @@ -19,7 +19,7 @@ pub struct vm_exec_vm_hook_c_func_pointers { 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_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_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 549ea59..206d2f7 100644 --- a/c-api/src/capi_vm_hooks.rs +++ b/c-api/src/capi_vm_hooks.rs @@ -75,8 +75,8 @@ impl klever_chain_vm_executor::VMHooks for CapiVMHooks { (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/src/wasmer_imports.rs b/vm-executor-wasmer/src/wasmer_imports.rs index 7cdb4ef..8010afd 100644 --- a/vm-executor-wasmer/src/wasmer_imports.rs +++ b/vm-executor-wasmer/src/wasmer_imports.rs @@ -56,8 +56,8 @@ fn wasmer_import_get_kda_name_length(env: &VMHooksWrapper, address_offset: i32, } #[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] @@ -1232,7 +1232,7 @@ pub fn generate_import_object(store: &Store, env: &VMHooksWrapper) -> ImportObje "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), "getKDANameLength" => Function::new_native_with_env(store, env.clone(), wasmer_import_get_kda_name_length), - "getKDANFTURILength" => Function::new_native_with_env(store, env.clone(), wasmer_import_get_kda_nft_uri_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 0dfa660..65dda2b 100644 --- a/vm-executor/src/vm_hooks.rs +++ b/vm-executor/src/vm_hooks.rs @@ -22,7 +22,7 @@ pub trait VMHooks: core::fmt::Debug + 'static { 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_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_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); @@ -308,8 +308,8 @@ impl VMHooks for VMHooksDefault { 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 } From 81212743955992d1a9466c6e5f7a10694f7830ea Mon Sep 17 00:00:00 2001 From: nickgs1337 Date: Tue, 14 Jan 2025 17:35:17 -0300 Subject: [PATCH 3/4] Update CI rustc to 1.81 --- .github/workflows/libvmexeccapi-build.yml | 2 +- .github/workflows/rust-ci.yml | 4 ++-- Docker/arm64.dockerfile | 2 +- c-api/libvmexeccapi.h | 4 ++-- 4 files changed, 6 insertions(+), 6 deletions(-) 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); From 784cf067645042e95339f2e1c06149f4495edddb Mon Sep 17 00:00:00 2001 From: nickgs1337 Date: Thu, 23 Jan 2025 11:23:30 -0300 Subject: [PATCH 4/4] Bump wasmer version --- vm-executor-wasmer/Cargo.toml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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"