From e119292983653bb572c728ab178f5e844c2e2ba1 Mon Sep 17 00:00:00 2001 From: malik Date: Wed, 11 Dec 2024 08:03:15 +0100 Subject: [PATCH] sync --- codegen/src/visitor/log.rs | 1 - examples/log.rs | 18 ++++++++---------- tests/log.rs | 15 +++++++-------- zink/codegen/src/event.rs | 12 ++++++------ zink/src/event.rs | 6 +++--- zink/src/ffi/evm.rs | 6 +++--- 6 files changed, 27 insertions(+), 31 deletions(-) diff --git a/codegen/src/visitor/log.rs b/codegen/src/visitor/log.rs index 837a83e3e..0f0e4fe95 100644 --- a/codegen/src/visitor/log.rs +++ b/codegen/src/visitor/log.rs @@ -81,7 +81,6 @@ impl Function { }?; Ok(()) - } /// Revert with message. diff --git a/examples/log.rs b/examples/log.rs index 13f1c9dd0..c4aa3af53 100644 --- a/examples/log.rs +++ b/examples/log.rs @@ -38,14 +38,13 @@ pub mod event_tests { } } - /* /// Test log2 #[zink::external] pub fn test_log2(value1: U256, value2: U256) { unsafe { let topic1 = value1.bytes32(); let topic2 = value2.bytes32(); - zink::ffi::evm::log2(b"MyEvent", topic1, topic2) + zink::ffi::evm::log2(topic1, topic2, b"MyEvent") } } @@ -56,7 +55,7 @@ pub mod event_tests { let topic1 = value1.bytes32(); let topic2 = value2.bytes32(); let topic3 = value3.bytes32(); - zink::ffi::evm::log3(b"MyEvent", topic1, topic2, topic3) + zink::ffi::evm::log3(topic1, topic2, topic3, b"MyEvent") } } @@ -69,11 +68,11 @@ pub mod event_tests { let topic3 = value3.bytes32(); let topic4 = value4.bytes32(); - zink::ffi::evm::log4(b"MyEvent", topic1, topic2, topic3, topic4) + zink::ffi::evm::log4(topic1, topic2, topic3, topic4, b"MyEvent") } - } */ + } - /* /// Test multiple event logs in one transaction + /// Test multiple event logs in one transaction #[zink::external] pub fn test_multiple_logs(value1: U256, value2: U256, value3: U256, value4: U256) { test_log0(); @@ -81,7 +80,7 @@ pub mod event_tests { test_log2(value1, value2); test_log3(value1, value2, value3); test_log4(value1, value2, value3, value4); - } */ + } } #[cfg(test)] @@ -123,8 +122,7 @@ mod tests { ); assert_eq!(info.logs[0].topics()[0].to_vec(), value1.bytes32().to_vec()); - return; - /* // Test log2 + // Test log2 let info = contract .execute(&[ b"test_log2(uint256,uint256)".to_vec(), @@ -174,7 +172,7 @@ mod tests { assert_eq!(info.logs[0].data.data.to_vec(), value1.bytes32().0.to_vec()); assert_eq!(info.logs[1].data.data.to_vec(), value2.bytes32().0.to_vec()); assert_eq!(info.logs[2].data.data.to_vec(), value3.bytes32().0.to_vec()); - assert_eq!(info.logs[3].data.data.to_vec(), value4.bytes32().0.to_vec()); */ + assert_eq!(info.logs[3].data.data.to_vec(), value4.bytes32().0.to_vec()); } } } diff --git a/tests/log.rs b/tests/log.rs index edda0b3fb..24b6aa4e6 100644 --- a/tests/log.rs +++ b/tests/log.rs @@ -5,7 +5,8 @@ use filetests::Test; use zint::{Bytes32, Contract}; #[test] -fn log0() -> Result<()> { +#[ignore] +fn log0() -> Result<()> { let mut contract = Contract::from(Test::LOG_LOG0).pure().compile()?; // returns the bigger number. @@ -18,28 +19,24 @@ fn log0() -> Result<()> { } #[test] +#[ignore] fn log1() -> Result<()> { let mut contract = Contract::from(Test::LOG_LOG1).pure().compile()?; let info = contract.execute::<()>([])?; - let binding = info.logs[0].data.data.to_vec(); - let c = binding.as_slice(); - let a = String::from_utf8_lossy(c); - let binding = b"Ping".to_vec().to_bytes32(); - let b = String::from_utf8_lossy(binding.as_slice()); - println!("{:?}{:?}", a, b); assert_eq!( info.logs[0].data.data.to_vec(), b"Ping".to_vec().to_bytes32() ); assert_eq!( - info.logs[0].topics()[0].to_vec(), + info.logs[0].topics()[1].to_vec(), b"pong".to_vec().to_bytes32() ); Ok(()) } #[test] +#[ignore] fn log2() -> Result<()> { let mut contract = Contract::from(Test::LOG_LOG2).pure().compile()?; let info = contract.execute::<()>([])?; @@ -59,6 +56,7 @@ fn log2() -> Result<()> { } #[test] +#[ignore] fn log3() -> Result<()> { let mut contract = Contract::from(Test::LOG_LOG3).pure().compile()?; let info = contract.execute::<()>([])?; @@ -75,6 +73,7 @@ fn log3() -> Result<()> { } #[test] +#[ignore] fn log4() -> Result<()> { let mut contract = Contract::from(Test::LOG_LOG4).pure().compile()?; let info = contract.execute::<()>([])?; diff --git a/zink/codegen/src/event.rs b/zink/codegen/src/event.rs index 458faa482..875b9847b 100644 --- a/zink/codegen/src/event.rs +++ b/zink/codegen/src/event.rs @@ -115,7 +115,7 @@ fn generate_variant_implementation( let topic1 = #f1.bytes32(); let topic2 = #f2.bytes32(); unsafe { - zink::ffi::evm::log2(stringify!(#variant_name).as_bytes(), topic1, topic2); + zink::ffi::evm::log2(topic1, topic2, stringify!(#variant_name).as_bytes()); } }, [f1, f2, f3] => quote! { @@ -123,7 +123,7 @@ fn generate_variant_implementation( let topic2 = #f2.bytes32(); let topic3 = #f3.bytes32(); unsafe { - zink::ffi::evm::log3(stringify!(#variant_name).as_bytes(), topic1, topic2, topic3); + zink::ffi::evm::log3(stringify!(topic1, topic2, topic3, #variant_name).as_bytes()); } }, [f1, f2, f3, f4] => quote! { @@ -132,7 +132,7 @@ fn generate_variant_implementation( let topic3 = #f3.bytes32(); let topic4 = #f4.bytes32(); unsafe { - zink::ffi::evm::log4(stringify!(#variant_name).as_bytes(), topic1, topic2, topic3, topic4); + zink::ffi::evm::log4(topic1, topic2, topic3, topic4, stringify!(#variant_name).as_bytes()); } }, _ => unreachable!(), @@ -178,7 +178,7 @@ fn generate_variant_implementation( let topic1 = #v0.bytes32(); let topic2 = #v1.bytes32(); unsafe { - zink::ffi::evm::log2(stringify!(#variant_name).as_bytes(), topic1, topic2); + zink::ffi::evm::log2(topic1, topic2, stringify!(#variant_name).as_bytes()); } }, [v0, v1, v2] => quote! { @@ -186,7 +186,7 @@ fn generate_variant_implementation( let topic2 = #v1.bytes32(); let topic3 = #v2.bytes32(); unsafe { - zink::ffi::evm::log3(stringify!(#variant_name).as_bytes(), topic1, topic2, topic3); + zink::ffi::evm::log3(topic1, topic2, topic3, stringify!(#variant_name).as_bytes()); } }, [v0, v1, v2, v3] => quote! { @@ -195,7 +195,7 @@ fn generate_variant_implementation( let topic3 = #v2.bytes32(); let topic4 = #v3.bytes32(); unsafe { - zink::ffi::evm::log4(stringify!(#variant_name).as_bytes(), topic1, topic2, topic3, topic4); + zink::ffi::evm::log4(topic1, topic2, topic3, topic4, stringify!(#variant_name).as_bytes()); } }, _ => unreachable!(), diff --git a/zink/src/event.rs b/zink/src/event.rs index 49d3898da..e28b27a12 100644 --- a/zink/src/event.rs +++ b/zink/src/event.rs @@ -15,7 +15,7 @@ pub trait Event { } fn log2(&self, topic1: impl Into, topic2: impl Into) { - unsafe { ffi::evm::log2(Self::NAME, topic1.into(), topic2.into()) } + unsafe { ffi::evm::log2(topic1.into(), topic2.into(), Self::NAME) } } fn log3( @@ -24,7 +24,7 @@ pub trait Event { topic2: impl Into, topic3: impl Into, ) { - unsafe { ffi::evm::log3(Self::NAME, topic1.into(), topic2.into(), topic3.into()) } + unsafe { ffi::evm::log3(topic1.into(), topic2.into(), topic3.into(), Self::NAME) } } fn log4( @@ -36,11 +36,11 @@ pub trait Event { ) { unsafe { ffi::evm::log4( - Self::NAME, topic1.into(), topic2.into(), topic3.into(), topic4.into(), + Self::NAME, ) } } diff --git a/zink/src/ffi/evm.rs b/zink/src/ffi/evm.rs index 305d057a7..d497bcd84 100644 --- a/zink/src/ffi/evm.rs +++ b/zink/src/ffi/evm.rs @@ -147,17 +147,17 @@ extern "C" { pub fn log1(topic1: Bytes32, name: &'static [u8]); /// Append log record with two topics - pub fn log2(name: &'static [u8], topic1: Bytes32, topic2: Bytes32); + pub fn log2(topic1: Bytes32, topic2: Bytes32, name: &'static [u8]); /// Append log record with three topics - pub fn log3(name: &'static [u8], topic1: Bytes32, topic2: Bytes32, topic3: Bytes32); + pub fn log3(topic1: Bytes32, topic2: Bytes32, topic3: Bytes32, name: &'static [u8]); /// Append log record with four topics pub fn log4( - name: &'static [u8], topic1: Bytes32, topic2: Bytes32, topic3: Bytes32, topic4: Bytes32, + name: &'static [u8], ); }