From a40721370ac0818c2ea9ac4da7add571ca18caa7 Mon Sep 17 00:00:00 2001 From: oskal174 Date: Thu, 18 Jan 2024 18:40:13 +0500 Subject: [PATCH 1/4] sei evm devnet support --- .env.example | 44 ++++++++++++++++++++++++++++++++ CONTRIBUTORS.md | 2 ++ Modules/Common/EVMMainModule.php | 5 +++- Modules/Common/EVMTraits.php | 1 + Modules/SeiEVMERC1155Module.php | 20 +++++++++++++++ Modules/SeiEVMERC20Module.php | 20 +++++++++++++++ Modules/SeiEVMERC721Module.php | 20 +++++++++++++++ Modules/SeiEVMMainModule.php | 30 ++++++++++++++++++++++ 8 files changed, 141 insertions(+), 1 deletion(-) create mode 100644 Modules/SeiEVMERC1155Module.php create mode 100644 Modules/SeiEVMERC20Module.php create mode 100644 Modules/SeiEVMERC721Module.php create mode 100644 Modules/SeiEVMMainModule.php diff --git a/.env.example b/.env.example index f149ab12..dd8d2a66 100644 --- a/.env.example +++ b/.env.example @@ -809,6 +809,50 @@ MODULE_zcash-main_NODES[]=http://login:password@127.0.0.2:1234/ MODULE_zcash-main_REQUESTER_TIMEOUT=60 MODULE_zcash-main_REQUESTER_THREADS=12 +###################### +## Main EVM Sei Module +###################### + +MODULES[]=sei-evm-main +MODULE_sei-evm-main_CLASS=SeiEVMMainModule +MODULE_sei-evm-main_NODES[]=http://login:password@127.0.0.1:1234/ +MODULE_sei-evm-main_NODES[]=http://login:password@127.0.0.1:1234/ +MODULE_sei-evm-main_REQUESTER_TIMEOUT=60 +MODULE_sei-evm-main_REQUESTER_THREADS=12 + +###################### +## EVM ERC20 Sei Module +###################### + +MODULES[]=sei-evm-erc-20 +MODULE_sei-evm-erc-20_CLASS=SeiEVMERC20Module +MODULE_sei-evm-erc-20_NODES[]=http://login:password@127.0.0.1:1234/ +MODULE_sei-evm-erc-20_NODES[]=http://login:password@127.0.0.1:1234/ +MODULE_sei-evm-erc-20_REQUESTER_TIMEOUT=60 +MODULE_sei-evm-erc-20_REQUESTER_THREADS=12 + +###################### +## EVM ERC721 Sei Module +###################### + +MODULES[]=sei-evm-erc-721 +MODULE_sei-evm-erc-721_CLASS=SeiEVMERC721Module +MODULE_sei-evm-erc-721_NODES[]=http://login:password@127.0.0.1:1234/ +MODULE_sei-evm-erc-721_NODES[]=http://login:password@127.0.0.1:1234/ +MODULE_sei-evm-erc-721_REQUESTER_TIMEOUT=60 +MODULE_sei-evm-erc-721_REQUESTER_THREADS=12 + +###################### +## EVM ERC1155 Sei Module +###################### + +MODULES[]=sei-evm-erc-1155 +MODULE_sei-evm-erc-1155_CLASS=SeiEVMERC1155Module +MODULE_sei-evm-erc-1155_NODES[]=http://login:password@127.0.0.1:1234/ +MODULE_sei-evm-erc-1155_NODES[]=http://login:password@127.0.0.1:1234/ +MODULE_sei-evm-erc-1155_REQUESTER_TIMEOUT=60 +MODULE_sei-evm-erc-1155_REQUESTER_THREADS=12 + ############################ # Titles, descriptions, etc. ############################ diff --git a/CONTRIBUTORS.md b/CONTRIBUTORS.md index 7c87c9e5..9dfd7463 100644 --- a/CONTRIBUTORS.md +++ b/CONTRIBUTORS.md @@ -9,3 +9,5 @@ - TVM modules * [Oleg Makaussov](https://github.com/Lorgansar) - Cardano Tokens modules +* [Kirill Kuzminykh](https://github.com/Oskal174) + - Sei modules diff --git a/Modules/Common/EVMMainModule.php b/Modules/Common/EVMMainModule.php index e6336359..f37ef5da 100644 --- a/Modules/Common/EVMMainModule.php +++ b/Modules/Common/EVMMainModule.php @@ -67,7 +67,7 @@ final public function post_post_initialize() if (is_null($this->reward_function)) throw new DeveloperError("`reward_function` is not set (developer error)"); - + if (in_array(EVMSpecialFeatures::PoSWithdrawals, $this->extra_features) && is_null($this->staking_contract)) throw new DeveloperError('`staking_contract` is not set when `PoSWithdrawals` is enabled'); @@ -238,6 +238,9 @@ final public function pre_process_block($block_id) // Data processing + if (in_array(EVMSpecialFeatures::FeesToTreasury, $this->extra_features)) + $miner = 'treasury'; + $this->block_time = date('Y-m-d H:i:s', to_int64_from_0xhex($block_time)); if (($ic = count($general_data)) !== count($receipt_data)) diff --git a/Modules/Common/EVMTraits.php b/Modules/Common/EVMTraits.php index 76b6e5e4..1c034f12 100644 --- a/Modules/Common/EVMTraits.php +++ b/Modules/Common/EVMTraits.php @@ -33,6 +33,7 @@ enum EVMSpecialFeatures case zkEVM; case HasSystemTransactions; case EffectiveGasPriceCanBeZero; + case FeesToTreasury; } trait EVMTraits diff --git a/Modules/SeiEVMERC1155Module.php b/Modules/SeiEVMERC1155Module.php new file mode 100644 index 00000000..76a0cffa --- /dev/null +++ b/Modules/SeiEVMERC1155Module.php @@ -0,0 +1,20 @@ +blockchain = 'sei'; + $this->module = 'sei-evm-erc-1155'; + $this->is_main = false; + $this->first_block_date = '2023-12-26'; // TODO: this is block_date for Sei devnet + $this->first_block_id = 0; + } +} diff --git a/Modules/SeiEVMERC20Module.php b/Modules/SeiEVMERC20Module.php new file mode 100644 index 00000000..28bec80b --- /dev/null +++ b/Modules/SeiEVMERC20Module.php @@ -0,0 +1,20 @@ +blockchain = 'sei'; + $this->module = 'sei-evm-erc-20'; + $this->is_main = false; + $this->first_block_date = '2023-12-26'; // TODO: this is block_date for Sei devnet + $this->first_block_id = 0; + } +} diff --git a/Modules/SeiEVMERC721Module.php b/Modules/SeiEVMERC721Module.php new file mode 100644 index 00000000..ac22a98c --- /dev/null +++ b/Modules/SeiEVMERC721Module.php @@ -0,0 +1,20 @@ +blockchain = 'sei'; + $this->module = 'sei-evm-erc-721'; + $this->is_main = false; + $this->first_block_date = '2023-12-26'; // TODO: this is block_date for Sei devnet + $this->first_block_id = 0; + } +} diff --git a/Modules/SeiEVMMainModule.php b/Modules/SeiEVMMainModule.php new file mode 100644 index 00000000..e05637f6 --- /dev/null +++ b/Modules/SeiEVMMainModule.php @@ -0,0 +1,30 @@ +blockchain = 'sei'; + $this->module = 'sei-evm-main'; + $this->is_main = true; + $this->first_block_date = '2023-12-26'; // TODO: this is block_date for Sei devnet + $this->first_block_id = 0; + $this->currency = 'sei'; + $this->currency_details = ['name' => 'Sei', 'symbol' => 'SEI', 'decimals' => 18, 'description' => null]; + + // EVMMainModule + $this->evm_implementation = EVMImplementation::geth; + $this->extra_features = [EVMSpecialFeatures::FeesToTreasury]; + $this->reward_function = function($block_id) + { + return '0'; + }; + } +} From 9ab6aafdd09ec5b488bfb2d29b453412c6901f64 Mon Sep 17 00:00:00 2001 From: Nikita Zhavoronkov Date: Sat, 20 Jan 2024 21:55:09 -0400 Subject: [PATCH 2/4] Rename the blockchain into `sei-evm` --- Modules/SeiEVMERC1155Module.php | 8 ++++---- Modules/SeiEVMERC20Module.php | 8 ++++---- Modules/SeiEVMERC721Module.php | 8 ++++---- Modules/SeiEVMMainModule.php | 10 +++++----- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/Modules/SeiEVMERC1155Module.php b/Modules/SeiEVMERC1155Module.php index 76a0cffa..b8defb75 100644 --- a/Modules/SeiEVMERC1155Module.php +++ b/Modules/SeiEVMERC1155Module.php @@ -1,20 +1,20 @@ blockchain = 'sei'; + $this->blockchain = 'sei-evm'; $this->module = 'sei-evm-erc-1155'; $this->is_main = false; - $this->first_block_date = '2023-12-26'; // TODO: this is block_date for Sei devnet + $this->first_block_date = '2023-12-26'; // This is for the devnet $this->first_block_id = 0; } } diff --git a/Modules/SeiEVMERC20Module.php b/Modules/SeiEVMERC20Module.php index 28bec80b..fe318582 100644 --- a/Modules/SeiEVMERC20Module.php +++ b/Modules/SeiEVMERC20Module.php @@ -1,20 +1,20 @@ blockchain = 'sei'; + $this->blockchain = 'sei-evm'; $this->module = 'sei-evm-erc-20'; $this->is_main = false; - $this->first_block_date = '2023-12-26'; // TODO: this is block_date for Sei devnet + $this->first_block_date = '2023-12-26'; // This is for the devnet $this->first_block_id = 0; } } diff --git a/Modules/SeiEVMERC721Module.php b/Modules/SeiEVMERC721Module.php index ac22a98c..5a5305cf 100644 --- a/Modules/SeiEVMERC721Module.php +++ b/Modules/SeiEVMERC721Module.php @@ -1,20 +1,20 @@ blockchain = 'sei'; + $this->blockchain = 'sei-evm'; $this->module = 'sei-evm-erc-721'; $this->is_main = false; - $this->first_block_date = '2023-12-26'; // TODO: this is block_date for Sei devnet + $this->first_block_date = '2023-12-26'; // This is for the devnet $this->first_block_id = 0; } } diff --git a/Modules/SeiEVMMainModule.php b/Modules/SeiEVMMainModule.php index e05637f6..49cd9f65 100644 --- a/Modules/SeiEVMMainModule.php +++ b/Modules/SeiEVMMainModule.php @@ -1,22 +1,22 @@ blockchain = 'sei'; + $this->blockchain = 'sei-evm'; $this->module = 'sei-evm-main'; $this->is_main = true; - $this->first_block_date = '2023-12-26'; // TODO: this is block_date for Sei devnet + $this->first_block_date = '2023-12-26'; // This is for the devnet $this->first_block_id = 0; - $this->currency = 'sei'; + $this->currency = 'sei-evm'; $this->currency_details = ['name' => 'Sei', 'symbol' => 'SEI', 'decimals' => 18, 'description' => null]; // EVMMainModule From 22c098773eed70cb5bfe01fb3266e44cd4e235e6 Mon Sep 17 00:00:00 2001 From: Nikita Zhavoronkov Date: Sat, 27 Jan 2024 13:39:11 -0400 Subject: [PATCH 3/4] Add Sei EVM trace module --- .env.example | 11 +++++++++++ Modules/SeiEVMTraceModule.php | 24 ++++++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 Modules/SeiEVMTraceModule.php diff --git a/.env.example b/.env.example index dd8d2a66..bf69825a 100644 --- a/.env.example +++ b/.env.example @@ -820,6 +820,17 @@ MODULE_sei-evm-main_NODES[]=http://login:password@127.0.0.1:1234/ MODULE_sei-evm-main_REQUESTER_TIMEOUT=60 MODULE_sei-evm-main_REQUESTER_THREADS=12 +####################### +## Trace Sei EVM Module +####################### + +MODULES[]=sei-evm-trace +MODULE_sei-evm-trace_CLASS=SeiEVMTraceModule +MODULE_sei-evm-trace_NODES[]=http://login:password@127.0.0.1:1234/ +MODULE_sei-evm-trace_NODES[]=http://login:password@127.0.0.2:1234/ +MODULE_sei-evm-trace_REQUESTER_TIMEOUT=60 +MODULE_sei-evm-trace_REQUESTER_THREADS=12 + ###################### ## EVM ERC20 Sei Module ###################### diff --git a/Modules/SeiEVMTraceModule.php b/Modules/SeiEVMTraceModule.php new file mode 100644 index 00000000..79851d4e --- /dev/null +++ b/Modules/SeiEVMTraceModule.php @@ -0,0 +1,24 @@ +blockchain = 'sei-evm'; + $this->module = 'sei-evm-trace'; + $this->complements = 'sei-evm-main'; + $this->is_main = false; + $this->first_block_date = '2023-12-26'; // This is for the devnet + $this->first_block_id = 0; + + // EVMTraceModule + $this->evm_implementation = EVMImplementation::geth; + } +} From 97c0432d50852d3b384fef0ec6a9fc35a16ec93d Mon Sep 17 00:00:00 2001 From: Nikita Zhavoronkov Date: Mon, 29 Jan 2024 13:33:31 -0400 Subject: [PATCH 4/4] Update `first_block_date` for Sei EVM due to a new testnet --- Modules/SeiEVMERC1155Module.php | 2 +- Modules/SeiEVMERC20Module.php | 2 +- Modules/SeiEVMERC721Module.php | 2 +- Modules/SeiEVMMainModule.php | 2 +- Modules/SeiEVMTraceModule.php | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Modules/SeiEVMERC1155Module.php b/Modules/SeiEVMERC1155Module.php index b8defb75..0cf0fa0c 100644 --- a/Modules/SeiEVMERC1155Module.php +++ b/Modules/SeiEVMERC1155Module.php @@ -14,7 +14,7 @@ function initialize() $this->blockchain = 'sei-evm'; $this->module = 'sei-evm-erc-1155'; $this->is_main = false; - $this->first_block_date = '2023-12-26'; // This is for the devnet + $this->first_block_date = '2024-01-25'; // This is for the devnet $this->first_block_id = 0; } } diff --git a/Modules/SeiEVMERC20Module.php b/Modules/SeiEVMERC20Module.php index fe318582..91f7d970 100644 --- a/Modules/SeiEVMERC20Module.php +++ b/Modules/SeiEVMERC20Module.php @@ -14,7 +14,7 @@ function initialize() $this->blockchain = 'sei-evm'; $this->module = 'sei-evm-erc-20'; $this->is_main = false; - $this->first_block_date = '2023-12-26'; // This is for the devnet + $this->first_block_date = '2024-01-25'; // This is for the devnet $this->first_block_id = 0; } } diff --git a/Modules/SeiEVMERC721Module.php b/Modules/SeiEVMERC721Module.php index 5a5305cf..15649a2e 100644 --- a/Modules/SeiEVMERC721Module.php +++ b/Modules/SeiEVMERC721Module.php @@ -14,7 +14,7 @@ function initialize() $this->blockchain = 'sei-evm'; $this->module = 'sei-evm-erc-721'; $this->is_main = false; - $this->first_block_date = '2023-12-26'; // This is for the devnet + $this->first_block_date = '2024-01-25'; // This is for the devnet $this->first_block_id = 0; } } diff --git a/Modules/SeiEVMMainModule.php b/Modules/SeiEVMMainModule.php index 49cd9f65..e0fbd8b7 100644 --- a/Modules/SeiEVMMainModule.php +++ b/Modules/SeiEVMMainModule.php @@ -14,7 +14,7 @@ function initialize() $this->blockchain = 'sei-evm'; $this->module = 'sei-evm-main'; $this->is_main = true; - $this->first_block_date = '2023-12-26'; // This is for the devnet + $this->first_block_date = '2024-01-25'; // This is for the devnet $this->first_block_id = 0; $this->currency = 'sei-evm'; $this->currency_details = ['name' => 'Sei', 'symbol' => 'SEI', 'decimals' => 18, 'description' => null]; diff --git a/Modules/SeiEVMTraceModule.php b/Modules/SeiEVMTraceModule.php index 79851d4e..6c58c81a 100644 --- a/Modules/SeiEVMTraceModule.php +++ b/Modules/SeiEVMTraceModule.php @@ -15,7 +15,7 @@ function initialize() $this->module = 'sei-evm-trace'; $this->complements = 'sei-evm-main'; $this->is_main = false; - $this->first_block_date = '2023-12-26'; // This is for the devnet + $this->first_block_date = '2024-01-25'; // This is for the devnet $this->first_block_id = 0; // EVMTraceModule