[SON for Ethereum] Implement Ethereum listener #401

Closed
opened 2022-07-18 17:02:18 +00:00 by serkixenos · 11 comments
serkixenos commented 2022-07-18 17:02:18 +00:00 (Migrated from gitlab.com)

Ethereum listener call sequence to transactions related to a primary wallet contract

# One transfer per block
curl --data '{"method":"eth_getLogs","params":[{"address": "0x35C442a810358AFcE6a2743fb685C7b6E6BD7275"}],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" localhost:8545
{"jsonrpc":"2.0","id":1,"result":[{"address":"0x35c442a810358afce6a2743fb685c7b6e6bd7275","topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c"],"data":"0x0000000000000000000000005fbbb31be52608d2f52247e8400b7fcaa9e0bc120000000000000000000000000000000000000000000000000de0b6b3a7640000","blockNumber":"0x1577","transactionHash":"0x68b21a532a523e5cb31f9c726a6383fe30b2c45bc8eca4f594bf4ebc5e2d40ae","transactionIndex":"0x0","blockHash":"0x4244721c35cb75802b343dfa27ae7fa7a8929cf2064a2760b0aa7967edae4dbc","logIndex":"0x0","removed":false}]}

# Multiple transfers per block
curl --data '{"method":"eth_getLogs","params":[{}],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" localhost:8545
{"jsonrpc":"2.0","id":1,"result":[{"address":"0x35c442a810358afce6a2743fb685c7b6e6bd7275","topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c"],"data":"0x0000000000000000000000005fbbb31be52608d2f52247e8400b7fcaa9e0bc120000000000000000000000000000000000000000000000000de0b6b3a7640000","blockNumber":"0x161f","transactionHash":"0x95d66b5682f8fc6a2434e0efaf3e27a431739a146cca801a398f2e5a3ac1ff83","transactionIndex":"0x0","blockHash":"0x41ef6b1ffe051e9d269f7bf178f1abc1718f06d6d8ae2d1a969fb69bc32d64dd","logIndex":"0x0","removed":false},{"address":"0x35c442a810358afce6a2743fb685c7b6e6bd7275","topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c"],"data":"0x0000000000000000000000005fbbb31be52608d2f52247e8400b7fcaa9e0bc120000000000000000000000000000000000000000000000000de0b6b3a7640000","blockNumber":"0x161f","transactionHash":"0x950076377cabfa54fa83eb960c61855cd10dfba1cb97ddf3d7d3910f0e1e554e","transactionIndex":"0x1","blockHash":"0x41ef6b1ffe051e9d269f7bf178f1abc1718f06d6d8ae2d1a969fb69bc32d64dd","logIndex":"0x1","removed":false},{"address":"0x35c442a810358afce6a2743fb685c7b6e6bd7275","topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c"],"data":"0x0000000000000000000000005fbbb31be52608d2f52247e8400b7fcaa9e0bc120000000000000000000000000000000000000000000000000de0b6b3a7640000","blockNumber":"0x161f","transactionHash":"0x4508973856a91fe3370038fa64bfd796f002cc6fc612546748bf3f35f2843616","transactionIndex":"0x2","blockHash":"0x41ef6b1ffe051e9d269f7bf178f1abc1718f06d6d8ae2d1a969fb69bc32d64dd","logIndex":"0x2","removed":false},{"address":"0x35c442a810358afce6a2743fb685c7b6e6bd7275","topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c"],"data":"0x0000000000000000000000005fbbb31be52608d2f52247e8400b7fcaa9e0bc120000000000000000000000000000000000000000000000000de0b6b3a7640000","blockNumber":"0x161f","transactionHash":"0x98207e20f61dba121b44307edf1148fbe949f6c00632114fb5ee0fbc6fe94b3c","transactionIndex":"0x3","blockHash":"0x41ef6b1ffe051e9d269f7bf178f1abc1718f06d6d8ae2d1a969fb69bc32d64dd","logIndex":"0x3","removed":false}]}

# One transfer per block
curl --data '{"method":"eth_getLogs","params":[{}],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" localhost:8545
{"jsonrpc":"2.0","id":1,"result":[{"address":"0x35c442a810358afce6a2743fb685c7b6e6bd7275","topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c"],"data":"0x0000000000000000000000005fbbb31be52608d2f52247e8400b7fcaa9e0bc120000000000000000000000000000000000000000000000000de0b6b3a7640000","blockNumber":"0x1620","transactionHash":"0xd492e72c3ef87bb10d073a27439f05b111e1f652e8e18e0ec68514cbdc607d95","transactionIndex":"0x0","blockHash":"0x5868f2feff88242ccad2cb6dac1cb40697329f91d08a2dc0c935a495c94bc150","logIndex":"0x0","removed":false}]}

# No transfer per block
curl --data '{"method":"eth_getLogs","params":[{"address": "0x35C442a810358AFcE6a2743fb685C7b6E6BD7275"}],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" localhost:8545
{"jsonrpc":"2.0","id":1,"result":[]}

#Get transaction by hash
curl --data '{"method":"eth_getTransactionByHash","params":["0x68b21a532a523e5cb31f9c726a6383fe30b2c45bc8eca4f594bf4ebc5e2d40ae"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" localhost:8545
{"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x4244721c35cb75802b343dfa27ae7fa7a8929cf2064a2760b0aa7967edae4dbc","blockNumber":"0x1577","from":"0x5fbbb31be52608d2f52247e8400b7fcaa9e0bc12","gas":"0x5894","gasPrice":"0x3b9aca00","hash":"0x68b21a532a523e5cb31f9c726a6383fe30b2c45bc8eca4f594bf4ebc5e2d40ae","input":"0x","nonce":"0xe","to":"0x35c442a810358afce6a2743fb685c7b6e6bd7275","transactionIndex":"0x0","value":"0xde0b6b3a7640000","type":"0x0","v":"0x65","r":"0xb7c93bd726f8aa554f1504e5cef462b39f96099ab447fb4a6ecec0d9dc4aea0c","s":"0x3bd734492d2ef04048a888947ab5670a89fb37d0c87e2fe1b0e71d7293959f5a"}}

must be false   "removed":false
sender          "from":"0x5fbbb31be52608d2f52247e8400b7fcaa9e0bc12"
receiver        "to":"0x35c442a810358afce6a2743fb685c7b6e6bd7275"
amount          "value":"0xde0b6b3a7640000"

Receiver address is a primary wallet smart contract address, and should be configurable.
Ethereum listener call sequence to transactions related to a primary wallet contract ``` # One transfer per block curl --data '{"method":"eth_getLogs","params":[{"address": "0x35C442a810358AFcE6a2743fb685C7b6E6BD7275"}],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" localhost:8545 {"jsonrpc":"2.0","id":1,"result":[{"address":"0x35c442a810358afce6a2743fb685c7b6e6bd7275","topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c"],"data":"0x0000000000000000000000005fbbb31be52608d2f52247e8400b7fcaa9e0bc120000000000000000000000000000000000000000000000000de0b6b3a7640000","blockNumber":"0x1577","transactionHash":"0x68b21a532a523e5cb31f9c726a6383fe30b2c45bc8eca4f594bf4ebc5e2d40ae","transactionIndex":"0x0","blockHash":"0x4244721c35cb75802b343dfa27ae7fa7a8929cf2064a2760b0aa7967edae4dbc","logIndex":"0x0","removed":false}]} # Multiple transfers per block curl --data '{"method":"eth_getLogs","params":[{}],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" localhost:8545 {"jsonrpc":"2.0","id":1,"result":[{"address":"0x35c442a810358afce6a2743fb685c7b6e6bd7275","topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c"],"data":"0x0000000000000000000000005fbbb31be52608d2f52247e8400b7fcaa9e0bc120000000000000000000000000000000000000000000000000de0b6b3a7640000","blockNumber":"0x161f","transactionHash":"0x95d66b5682f8fc6a2434e0efaf3e27a431739a146cca801a398f2e5a3ac1ff83","transactionIndex":"0x0","blockHash":"0x41ef6b1ffe051e9d269f7bf178f1abc1718f06d6d8ae2d1a969fb69bc32d64dd","logIndex":"0x0","removed":false},{"address":"0x35c442a810358afce6a2743fb685c7b6e6bd7275","topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c"],"data":"0x0000000000000000000000005fbbb31be52608d2f52247e8400b7fcaa9e0bc120000000000000000000000000000000000000000000000000de0b6b3a7640000","blockNumber":"0x161f","transactionHash":"0x950076377cabfa54fa83eb960c61855cd10dfba1cb97ddf3d7d3910f0e1e554e","transactionIndex":"0x1","blockHash":"0x41ef6b1ffe051e9d269f7bf178f1abc1718f06d6d8ae2d1a969fb69bc32d64dd","logIndex":"0x1","removed":false},{"address":"0x35c442a810358afce6a2743fb685c7b6e6bd7275","topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c"],"data":"0x0000000000000000000000005fbbb31be52608d2f52247e8400b7fcaa9e0bc120000000000000000000000000000000000000000000000000de0b6b3a7640000","blockNumber":"0x161f","transactionHash":"0x4508973856a91fe3370038fa64bfd796f002cc6fc612546748bf3f35f2843616","transactionIndex":"0x2","blockHash":"0x41ef6b1ffe051e9d269f7bf178f1abc1718f06d6d8ae2d1a969fb69bc32d64dd","logIndex":"0x2","removed":false},{"address":"0x35c442a810358afce6a2743fb685c7b6e6bd7275","topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c"],"data":"0x0000000000000000000000005fbbb31be52608d2f52247e8400b7fcaa9e0bc120000000000000000000000000000000000000000000000000de0b6b3a7640000","blockNumber":"0x161f","transactionHash":"0x98207e20f61dba121b44307edf1148fbe949f6c00632114fb5ee0fbc6fe94b3c","transactionIndex":"0x3","blockHash":"0x41ef6b1ffe051e9d269f7bf178f1abc1718f06d6d8ae2d1a969fb69bc32d64dd","logIndex":"0x3","removed":false}]} # One transfer per block curl --data '{"method":"eth_getLogs","params":[{}],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" localhost:8545 {"jsonrpc":"2.0","id":1,"result":[{"address":"0x35c442a810358afce6a2743fb685c7b6e6bd7275","topics":["0xe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c"],"data":"0x0000000000000000000000005fbbb31be52608d2f52247e8400b7fcaa9e0bc120000000000000000000000000000000000000000000000000de0b6b3a7640000","blockNumber":"0x1620","transactionHash":"0xd492e72c3ef87bb10d073a27439f05b111e1f652e8e18e0ec68514cbdc607d95","transactionIndex":"0x0","blockHash":"0x5868f2feff88242ccad2cb6dac1cb40697329f91d08a2dc0c935a495c94bc150","logIndex":"0x0","removed":false}]} # No transfer per block curl --data '{"method":"eth_getLogs","params":[{"address": "0x35C442a810358AFcE6a2743fb685C7b6E6BD7275"}],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" localhost:8545 {"jsonrpc":"2.0","id":1,"result":[]} #Get transaction by hash curl --data '{"method":"eth_getTransactionByHash","params":["0x68b21a532a523e5cb31f9c726a6383fe30b2c45bc8eca4f594bf4ebc5e2d40ae"],"id":1,"jsonrpc":"2.0"}' -H "Content-Type: application/json" localhost:8545 {"jsonrpc":"2.0","id":1,"result":{"blockHash":"0x4244721c35cb75802b343dfa27ae7fa7a8929cf2064a2760b0aa7967edae4dbc","blockNumber":"0x1577","from":"0x5fbbb31be52608d2f52247e8400b7fcaa9e0bc12","gas":"0x5894","gasPrice":"0x3b9aca00","hash":"0x68b21a532a523e5cb31f9c726a6383fe30b2c45bc8eca4f594bf4ebc5e2d40ae","input":"0x","nonce":"0xe","to":"0x35c442a810358afce6a2743fb685c7b6e6bd7275","transactionIndex":"0x0","value":"0xde0b6b3a7640000","type":"0x0","v":"0x65","r":"0xb7c93bd726f8aa554f1504e5cef462b39f96099ab447fb4a6ecec0d9dc4aea0c","s":"0x3bd734492d2ef04048a888947ab5670a89fb37d0c87e2fe1b0e71d7293959f5a"}} must be false "removed":false sender "from":"0x5fbbb31be52608d2f52247e8400b7fcaa9e0bc12" receiver "to":"0x35c442a810358afce6a2743fb685c7b6e6bd7275" amount "value":"0xde0b6b3a7640000" Receiver address is a primary wallet smart contract address, and should be configurable. ```
serkixenos commented 2022-07-18 17:02:18 +00:00 (Migrated from gitlab.com)

assigned to @serkixenos

assigned to @serkixenos
serkixenos commented 2022-07-18 17:06:39 +00:00 (Migrated from gitlab.com)

changed the description

changed the description
serkixenos commented 2022-07-25 23:04:53 +00:00 (Migrated from gitlab.com)

assigned to @prandnum

assigned to @prandnum
serkixenos commented 2022-07-25 23:16:04 +00:00 (Migrated from gitlab.com)

Build QA environment from branch feature/son-for-ethereum

https://gitlab.com/PBSA/tools-libs/peerplays-utils/-/tree/feature/son-for-ethereum

Initialize QA environment as described in a README file.

Connect to the ethereum docker container

docker exec -it peerplays-qa-environment_ethereum-for-peerplays_1 /bin/bash

Start geth console

./geth attach ./network/geth.ipc 

Unlock account01 ethereum keys

> personal.unlockAccount("0x5c79a9f5767e3c1b926f963fa24e21d8a04289ae", "", 1200)
true

Send funds to a primary wallet smart contract

> eth.sendTransaction({from: "0x5c79a9f5767e3c1b926f963fa24e21d8a04289ae",to: "0x35C442a810358AFcE6a2743fb685C7b6E6BD7275", value: "1000000000000000000"})
"0x5608adc19ee8b570c21007f4ac7e5d1455038d2bdb69f4284ea48ca365d841b4"

Observe the logs in witness node

...
743189ms th_a       sidechain_net_handler.cpp:155 sidechain_event_data ] sidechain_event_data:
743189ms th_a       sidechain_net_handler.cpp:156 sidechain_event_data ]   timestamp:                2022-07-25T23:12:21
743189ms th_a       sidechain_net_handler.cpp:157 sidechain_event_data ]   block_num:                18266
743189ms th_a       sidechain_net_handler.cpp:158 sidechain_event_data ]   sidechain:                ethereum
743189ms th_a       sidechain_net_handler.cpp:159 sidechain_event_data ]   sidechain_uid:            ethereum-0x5608adc19ee8b570c21007f4ac7e5d1455038d2bdb69f4284ea48ca365d841b4-0
743189ms th_a       sidechain_net_handler.cpp:160 sidechain_event_data ]   sidechain_transaction_id: 0x5608adc19ee8b570c21007f4ac7e5d1455038d2bdb69f4284ea48ca365d841b4
743189ms th_a       sidechain_net_handler.cpp:161 sidechain_event_data ]   sidechain_from:           0x5c79a9f5767e3c1b926f963fa24e21d8a04289ae
743189ms th_a       sidechain_net_handler.cpp:162 sidechain_event_data ]   sidechain_to:             0x35c442a810358afce6a2743fb685c7b6e6bd7275
743189ms th_a       sidechain_net_handler.cpp:163 sidechain_event_data ]   sidechain_currency:       ETH
743189ms th_a       sidechain_net_handler.cpp:164 sidechain_event_data ]   sidechain_amount:         100000000
743189ms th_a       sidechain_net_handler.cpp:165 sidechain_event_data ]   peerplays_from:           1.2.52
743189ms th_a       sidechain_net_handler.cpp:166 sidechain_event_data ]   peerplays_to:             1.2.19
743190ms th_a       sidechain_net_handler.cpp:167 sidechain_event_data ]   peerplays_asset:          {"amount":"4000000000","asset_id":"1.3.0"}
...

In peerplays cli wallet, check the balance of account01

locked >>> list_account_balances account01
list_account_balances account01
49999872.50695 TEST
1000000 PBTC
1000000 PEOS
1000000 PETH
1 ETH

Send 1 ether back to the son-account

unlock password
transfer account01 son-account 1 ETH null true

Observe the logs in witness node

...
882001ms th_a       sidechain_net_handler.cpp:155 sidechain_event_data ] sidechain_event_data:
882001ms th_a       sidechain_net_handler.cpp:156 sidechain_event_data ]   timestamp:                2022-07-25T23:14:42
882001ms th_a       sidechain_net_handler.cpp:157 sidechain_event_data ]   block_num:                18313
882001ms th_a       sidechain_net_handler.cpp:158 sidechain_event_data ]   sidechain:                peerplays
882001ms th_a       sidechain_net_handler.cpp:159 sidechain_event_data ]   sidechain_uid:            peerplays-b2ed68f29eabf3dc0385e9d5c1ec1f45682f3d1a-0
882001ms th_a       sidechain_net_handler.cpp:160 sidechain_event_data ]   sidechain_transaction_id: b2ed68f29eabf3dc0385e9d5c1ec1f45682f3d1a
882001ms th_a       sidechain_net_handler.cpp:161 sidechain_event_data ]   sidechain_from:           1.2.52
882001ms th_a       sidechain_net_handler.cpp:162 sidechain_event_data ]   sidechain_to:             1.2.19
882001ms th_a       sidechain_net_handler.cpp:163 sidechain_event_data ]   sidechain_currency:       1.3.7
882001ms th_a       sidechain_net_handler.cpp:164 sidechain_event_data ]   sidechain_amount:         100000000
882002ms th_a       sidechain_net_handler.cpp:165 sidechain_event_data ]   peerplays_from:           1.2.52
882002ms th_a       sidechain_net_handler.cpp:166 sidechain_event_data ]   peerplays_to:             1.2.19
882002ms th_a       sidechain_net_handler.cpp:167 sidechain_event_data ]   peerplays_asset:          {"amount":"4000000000","asset_id":"1.3.0"}
...

Both deposit and withdrawal events should be detected, and displayed in a witness logs.

Build QA environment from branch feature/son-for-ethereum https://gitlab.com/PBSA/tools-libs/peerplays-utils/-/tree/feature/son-for-ethereum Initialize QA environment as described in a README file. Connect to the ethereum docker container ``` docker exec -it peerplays-qa-environment_ethereum-for-peerplays_1 /bin/bash ``` Start geth console ``` ./geth attach ./network/geth.ipc ``` Unlock account01 ethereum keys ``` > personal.unlockAccount("0x5c79a9f5767e3c1b926f963fa24e21d8a04289ae", "", 1200) true ``` Send funds to a primary wallet smart contract ``` > eth.sendTransaction({from: "0x5c79a9f5767e3c1b926f963fa24e21d8a04289ae",to: "0x35C442a810358AFcE6a2743fb685C7b6E6BD7275", value: "1000000000000000000"}) "0x5608adc19ee8b570c21007f4ac7e5d1455038d2bdb69f4284ea48ca365d841b4" ``` Observe the logs in witness node ``` ... 743189ms th_a sidechain_net_handler.cpp:155 sidechain_event_data ] sidechain_event_data: 743189ms th_a sidechain_net_handler.cpp:156 sidechain_event_data ] timestamp: 2022-07-25T23:12:21 743189ms th_a sidechain_net_handler.cpp:157 sidechain_event_data ] block_num: 18266 743189ms th_a sidechain_net_handler.cpp:158 sidechain_event_data ] sidechain: ethereum 743189ms th_a sidechain_net_handler.cpp:159 sidechain_event_data ] sidechain_uid: ethereum-0x5608adc19ee8b570c21007f4ac7e5d1455038d2bdb69f4284ea48ca365d841b4-0 743189ms th_a sidechain_net_handler.cpp:160 sidechain_event_data ] sidechain_transaction_id: 0x5608adc19ee8b570c21007f4ac7e5d1455038d2bdb69f4284ea48ca365d841b4 743189ms th_a sidechain_net_handler.cpp:161 sidechain_event_data ] sidechain_from: 0x5c79a9f5767e3c1b926f963fa24e21d8a04289ae 743189ms th_a sidechain_net_handler.cpp:162 sidechain_event_data ] sidechain_to: 0x35c442a810358afce6a2743fb685c7b6e6bd7275 743189ms th_a sidechain_net_handler.cpp:163 sidechain_event_data ] sidechain_currency: ETH 743189ms th_a sidechain_net_handler.cpp:164 sidechain_event_data ] sidechain_amount: 100000000 743189ms th_a sidechain_net_handler.cpp:165 sidechain_event_data ] peerplays_from: 1.2.52 743189ms th_a sidechain_net_handler.cpp:166 sidechain_event_data ] peerplays_to: 1.2.19 743190ms th_a sidechain_net_handler.cpp:167 sidechain_event_data ] peerplays_asset: {"amount":"4000000000","asset_id":"1.3.0"} ... ``` In peerplays cli wallet, check the balance of account01 ``` locked >>> list_account_balances account01 list_account_balances account01 49999872.50695 TEST 1000000 PBTC 1000000 PEOS 1000000 PETH 1 ETH ``` Send 1 ether back to the son-account ``` unlock password transfer account01 son-account 1 ETH null true ``` Observe the logs in witness node ``` ... 882001ms th_a sidechain_net_handler.cpp:155 sidechain_event_data ] sidechain_event_data: 882001ms th_a sidechain_net_handler.cpp:156 sidechain_event_data ] timestamp: 2022-07-25T23:14:42 882001ms th_a sidechain_net_handler.cpp:157 sidechain_event_data ] block_num: 18313 882001ms th_a sidechain_net_handler.cpp:158 sidechain_event_data ] sidechain: peerplays 882001ms th_a sidechain_net_handler.cpp:159 sidechain_event_data ] sidechain_uid: peerplays-b2ed68f29eabf3dc0385e9d5c1ec1f45682f3d1a-0 882001ms th_a sidechain_net_handler.cpp:160 sidechain_event_data ] sidechain_transaction_id: b2ed68f29eabf3dc0385e9d5c1ec1f45682f3d1a 882001ms th_a sidechain_net_handler.cpp:161 sidechain_event_data ] sidechain_from: 1.2.52 882001ms th_a sidechain_net_handler.cpp:162 sidechain_event_data ] sidechain_to: 1.2.19 882001ms th_a sidechain_net_handler.cpp:163 sidechain_event_data ] sidechain_currency: 1.3.7 882001ms th_a sidechain_net_handler.cpp:164 sidechain_event_data ] sidechain_amount: 100000000 882002ms th_a sidechain_net_handler.cpp:165 sidechain_event_data ] peerplays_from: 1.2.52 882002ms th_a sidechain_net_handler.cpp:166 sidechain_event_data ] peerplays_to: 1.2.19 882002ms th_a sidechain_net_handler.cpp:167 sidechain_event_data ] peerplays_asset: {"amount":"4000000000","asset_id":"1.3.0"} ... ``` Both deposit and withdrawal events should be detected, and displayed in a witness logs.
prandnum commented 2022-08-01 16:30:50 +00:00 (Migrated from gitlab.com)

mentioned in issue #409

mentioned in issue #409
prandnum commented 2022-08-16 18:44:03 +00:00 (Migrated from gitlab.com)

@serkixenos Witness nodes are not starting because of issue in config files(as mentioned in log, attached)

docker.log

@serkixenos Witness nodes are not starting because of issue in config files(as mentioned in log, attached) [docker.log](/uploads/58eafc7fc14be44ecbec21730b88aead/docker.log)
serkixenos commented 2022-08-23 14:47:16 +00:00 (Migrated from gitlab.com)

@prandnum The ticket is unblocked now.

@prandnum The ticket is unblocked now.
vampik commented 2022-08-23 16:48:07 +00:00 (Migrated from gitlab.com)

@prandnum

Here updated steps:

Build QA environment from branch feature/son-for-ethereum

https://gitlab.com/PBSA/tools-libs/peerplays-utils/-/tree/feature/son-for-ethereum

Initialize QA environment as described in a README file.

Connect to the ethereum docker container

docker exec -it peerplays-qa-environment_ethereum-for-peerplays_1 /bin/bash

Start geth console

./geth attach ./network/geth.ipc 

Unlock account01 ethereum keys

> personal.unlockAccount("0x5c79a9f5767e3c1b926f963fa24e21d8a04289ae", "", 1200)
true

Send funds to a primary wallet smart contract (from curl)

curl http://10.11.12.202:8545 -X POST -H "Content-Type: application/json" --data '{"method":"eth_sendTransaction","params":[ { "from": "0x5c79a9f5767e3c1b926f963fa24e21d8a04289ae", "to": "0x875a7e0eFe5140c80C5c822f99C02281C0290348", "value": "0x1BC16D674EC80000", "data": "0xd0e30db0" } ],"id":1,"jsonrpc":"2.0"}'

Observe the logs in witness node

...
2451003ms th_a       sidechain_net_handler.cpp:155 sidechain_event_data ] sidechain_event_data:
2451003ms th_a       sidechain_net_handler.cpp:156 sidechain_event_data ]   timestamp:                2022-08-23T16:40:51
2451003ms th_a       sidechain_net_handler.cpp:157 sidechain_event_data ]   block_num:                224
2451003ms th_a       sidechain_net_handler.cpp:158 sidechain_event_data ]   sidechain:                peerplays
2451003ms th_a       sidechain_net_handler.cpp:159 sidechain_event_data ]   sidechain_uid:            peerplays-46196afd6c02536e6ecb853aaee4eeaff7c46669-0
2451003ms th_a       sidechain_net_handler.cpp:160 sidechain_event_data ]   sidechain_transaction_id: 46196afd6c02536e6ecb853aaee4eeaff7c46669
2451003ms th_a       sidechain_net_handler.cpp:161 sidechain_event_data ]   sidechain_from:           1.2.52
2451003ms th_a       sidechain_net_handler.cpp:162 sidechain_event_data ]   sidechain_to:             1.2.19
2451003ms th_a       sidechain_net_handler.cpp:163 sidechain_event_data ]   sidechain_currency:       1.3.2
2451003ms th_a       sidechain_net_handler.cpp:164 sidechain_event_data ]   sidechain_amount:         100000000
2451003ms th_a       sidechain_net_handler.cpp:165 sidechain_event_data ]   peerplays_from:           1.2.52
2451003ms th_a       sidechain_net_handler.cpp:166 sidechain_event_data ]   peerplays_to:             1.2.19
2451003ms th_a       sidechain_net_handler.cpp:167 sidechain_event_data ]   peerplays_asset:          {"amount":"4000000000","asset_id":"1.3.0"}
...

In peerplays cli wallet, check the balance of account01

list_account_balances account01
49999949 TEST
2 ETH
1000000 PBTC
1000000 PEOS
1000000 PETH

Send 1 ether back to the son-account

unlock password
transfer account01 son-account 1 ETH null true

Observe the logs in witness node

2541001ms th_a       sidechain_net_handler.cpp:155 sidechain_event_data ] sidechain_event_data:
2541001ms th_a       sidechain_net_handler.cpp:156 sidechain_event_data ]   timestamp:                2022-08-24T06:42:21
2541001ms th_a       sidechain_net_handler.cpp:157 sidechain_event_data ]   block_num:                369
2541001ms th_a       sidechain_net_handler.cpp:158 sidechain_event_data ]   sidechain:                peerplays
2541001ms th_a       sidechain_net_handler.cpp:159 sidechain_event_data ]   sidechain_uid:            peerplays-8f1c7519c02e9845ed29808aa44c5dac0f1abfa6-0
2541001ms th_a       sidechain_net_handler.cpp:160 sidechain_event_data ]   sidechain_transaction_id: 8f1c7519c02e9845ed29808aa44c5dac0f1abfa6
2541001ms th_a       sidechain_net_handler.cpp:161 sidechain_event_data ]   sidechain_from:           1.2.52
2541001ms th_a       sidechain_net_handler.cpp:162 sidechain_event_data ]   sidechain_to:             1.2.19
2541001ms th_a       sidechain_net_handler.cpp:163 sidechain_event_data ]   sidechain_currency:       1.3.2
2541001ms th_a       sidechain_net_handler.cpp:164 sidechain_event_data ]   sidechain_amount:         100000000
2541001ms th_a       sidechain_net_handler.cpp:165 sidechain_event_data ]   peerplays_from:           1.2.52
2541001ms th_a       sidechain_net_handler.cpp:166 sidechain_event_data ]   peerplays_to:             1.2.19
2541001ms th_a       sidechain_net_handler.cpp:167 sidechain_event_data ]   peerplays_asset:          {"amount":"4000000000","asset_id":"1.3.0"}
...
2454515ms th_a       sidechain_net_handler.cpp:463 operator()           ] Withdraw to process: {"id":"1.37.0","timestamp":"2022-08-23T16:40:51","block_num":224,"sidechain":"peerplays","peerplays_uid":"peerplays-46196afd6c02536e6ecb853aaee4eeaff7c46669-0","peerplays_transaction_id":"46196afd6c02536e6ecb853aaee4eeaff7c46669","peerplays_from":"1.2.52","peerplays_asset":{"amount":"4000000000","asset_id":"1.3.0"},"withdraw_sidechain":"ethereum","withdraw_address":"0x5c79a9f5767e3c1b926f963fa24e21d8a04289ae","withdraw_currency":"ETH","withdraw_amount":100000000,"expected_reports":[["1.33.0",1],["1.33.1",1],["1.33.2",1],["1.33.3",1],["1.33.4",1]],"received_reports":["1.33.0","1.33.1","1.33.2","1.33.3","1.33.4"],"confirmed":true,"processed":false}
...

Both deposit and withdrawal events should be detected, and displayed in a witness logs.

@prandnum Here updated steps: Build QA environment from branch feature/son-for-ethereum https://gitlab.com/PBSA/tools-libs/peerplays-utils/-/tree/feature/son-for-ethereum Initialize QA environment as described in a README file. Connect to the ethereum docker container ``` docker exec -it peerplays-qa-environment_ethereum-for-peerplays_1 /bin/bash ``` Start geth console ``` ./geth attach ./network/geth.ipc ``` Unlock account01 ethereum keys ``` > personal.unlockAccount("0x5c79a9f5767e3c1b926f963fa24e21d8a04289ae", "", 1200) true ``` Send funds to a primary wallet smart contract (from curl) ``` curl http://10.11.12.202:8545 -X POST -H "Content-Type: application/json" --data '{"method":"eth_sendTransaction","params":[ { "from": "0x5c79a9f5767e3c1b926f963fa24e21d8a04289ae", "to": "0x875a7e0eFe5140c80C5c822f99C02281C0290348", "value": "0x1BC16D674EC80000", "data": "0xd0e30db0" } ],"id":1,"jsonrpc":"2.0"}' ``` Observe the logs in witness node ``` ... 2451003ms th_a sidechain_net_handler.cpp:155 sidechain_event_data ] sidechain_event_data: 2451003ms th_a sidechain_net_handler.cpp:156 sidechain_event_data ] timestamp: 2022-08-23T16:40:51 2451003ms th_a sidechain_net_handler.cpp:157 sidechain_event_data ] block_num: 224 2451003ms th_a sidechain_net_handler.cpp:158 sidechain_event_data ] sidechain: peerplays 2451003ms th_a sidechain_net_handler.cpp:159 sidechain_event_data ] sidechain_uid: peerplays-46196afd6c02536e6ecb853aaee4eeaff7c46669-0 2451003ms th_a sidechain_net_handler.cpp:160 sidechain_event_data ] sidechain_transaction_id: 46196afd6c02536e6ecb853aaee4eeaff7c46669 2451003ms th_a sidechain_net_handler.cpp:161 sidechain_event_data ] sidechain_from: 1.2.52 2451003ms th_a sidechain_net_handler.cpp:162 sidechain_event_data ] sidechain_to: 1.2.19 2451003ms th_a sidechain_net_handler.cpp:163 sidechain_event_data ] sidechain_currency: 1.3.2 2451003ms th_a sidechain_net_handler.cpp:164 sidechain_event_data ] sidechain_amount: 100000000 2451003ms th_a sidechain_net_handler.cpp:165 sidechain_event_data ] peerplays_from: 1.2.52 2451003ms th_a sidechain_net_handler.cpp:166 sidechain_event_data ] peerplays_to: 1.2.19 2451003ms th_a sidechain_net_handler.cpp:167 sidechain_event_data ] peerplays_asset: {"amount":"4000000000","asset_id":"1.3.0"} ... ``` In peerplays cli wallet, check the balance of account01 ``` list_account_balances account01 49999949 TEST 2 ETH 1000000 PBTC 1000000 PEOS 1000000 PETH ``` Send 1 ether back to the son-account ``` unlock password transfer account01 son-account 1 ETH null true ``` Observe the logs in witness node ``` 2541001ms th_a sidechain_net_handler.cpp:155 sidechain_event_data ] sidechain_event_data: 2541001ms th_a sidechain_net_handler.cpp:156 sidechain_event_data ] timestamp: 2022-08-24T06:42:21 2541001ms th_a sidechain_net_handler.cpp:157 sidechain_event_data ] block_num: 369 2541001ms th_a sidechain_net_handler.cpp:158 sidechain_event_data ] sidechain: peerplays 2541001ms th_a sidechain_net_handler.cpp:159 sidechain_event_data ] sidechain_uid: peerplays-8f1c7519c02e9845ed29808aa44c5dac0f1abfa6-0 2541001ms th_a sidechain_net_handler.cpp:160 sidechain_event_data ] sidechain_transaction_id: 8f1c7519c02e9845ed29808aa44c5dac0f1abfa6 2541001ms th_a sidechain_net_handler.cpp:161 sidechain_event_data ] sidechain_from: 1.2.52 2541001ms th_a sidechain_net_handler.cpp:162 sidechain_event_data ] sidechain_to: 1.2.19 2541001ms th_a sidechain_net_handler.cpp:163 sidechain_event_data ] sidechain_currency: 1.3.2 2541001ms th_a sidechain_net_handler.cpp:164 sidechain_event_data ] sidechain_amount: 100000000 2541001ms th_a sidechain_net_handler.cpp:165 sidechain_event_data ] peerplays_from: 1.2.52 2541001ms th_a sidechain_net_handler.cpp:166 sidechain_event_data ] peerplays_to: 1.2.19 2541001ms th_a sidechain_net_handler.cpp:167 sidechain_event_data ] peerplays_asset: {"amount":"4000000000","asset_id":"1.3.0"} ``` ``` ... 2454515ms th_a sidechain_net_handler.cpp:463 operator() ] Withdraw to process: {"id":"1.37.0","timestamp":"2022-08-23T16:40:51","block_num":224,"sidechain":"peerplays","peerplays_uid":"peerplays-46196afd6c02536e6ecb853aaee4eeaff7c46669-0","peerplays_transaction_id":"46196afd6c02536e6ecb853aaee4eeaff7c46669","peerplays_from":"1.2.52","peerplays_asset":{"amount":"4000000000","asset_id":"1.3.0"},"withdraw_sidechain":"ethereum","withdraw_address":"0x5c79a9f5767e3c1b926f963fa24e21d8a04289ae","withdraw_currency":"ETH","withdraw_amount":100000000,"expected_reports":[["1.33.0",1],["1.33.1",1],["1.33.2",1],["1.33.3",1],["1.33.4",1]],"received_reports":["1.33.0","1.33.1","1.33.2","1.33.3","1.33.4"],"confirmed":true,"processed":false} ... ``` Both deposit and withdrawal events should be detected, and displayed in a witness logs.
prandnum commented 2022-08-23 19:06:53 +00:00 (Migrated from gitlab.com)

@serkixenos @vampik

when run from terminal 

root@236ab63ff0cc:~/ethereum-network# curl http://10.11.12.202:8545 -X POST -H "Content-Type: application/json" --data '{"method":"eth_sendTransaction","params":[ { "from": "0x5c79a9f5767e3c1b926f963fa24e21d8a04289ae", "to": "0x875a7e0eFe5140c80C5c822f99C02281C0290348", "value": "0x1BC16D674EC80000", "data": "0xd0e30db0" } ],"id":1,"jsonrpc":"2.0"}'
{"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"authentication needed: password or unlock"}}
root@236ab63ff0cc:~/ethereum-network# 


The steps mentions login into ethereum terminal in which case the following error is encountered

> curl http://10.11.12.202:8545 -X POST -H "Content-Type: application/json" --data '{"method":"eth_sendTransaction","params":[ { "from": "0x5c79a9f5767e3c1b926f963fa24e21d8a04289ae", "to": "0x875a7e0eFe5140c80C5c822f99C02281C0290348", "value": "0x1BC16D674EC80000", "data": "0xd0e30db0" } ],"id":1,"jsonrpc":"2.0"}'
SyntaxError: SyntaxError: (anonymous): Line 1:6 Unexpected identifier (and 1 more errors)

> 
@serkixenos @vampik ``` when run from terminal root@236ab63ff0cc:~/ethereum-network# curl http://10.11.12.202:8545 -X POST -H "Content-Type: application/json" --data '{"method":"eth_sendTransaction","params":[ { "from": "0x5c79a9f5767e3c1b926f963fa24e21d8a04289ae", "to": "0x875a7e0eFe5140c80C5c822f99C02281C0290348", "value": "0x1BC16D674EC80000", "data": "0xd0e30db0" } ],"id":1,"jsonrpc":"2.0"}' {"jsonrpc":"2.0","id":1,"error":{"code":-32000,"message":"authentication needed: password or unlock"}} root@236ab63ff0cc:~/ethereum-network# The steps mentions login into ethereum terminal in which case the following error is encountered > curl http://10.11.12.202:8545 -X POST -H "Content-Type: application/json" --data '{"method":"eth_sendTransaction","params":[ { "from": "0x5c79a9f5767e3c1b926f963fa24e21d8a04289ae", "to": "0x875a7e0eFe5140c80C5c822f99C02281C0290348", "value": "0x1BC16D674EC80000", "data": "0xd0e30db0" } ],"id":1,"jsonrpc":"2.0"}' SyntaxError: SyntaxError: (anonymous): Line 1:6 Unexpected identifier (and 1 more errors) > ```
prandnum commented 2022-08-23 19:08:04 +00:00 (Migrated from gitlab.com)

the logs and db for the original steps are:
docker-logs-23082022.tar.gz
docker-23082022.tar.gz

the logs and db for the original steps are: [docker-logs-23082022.tar.gz](/uploads/06ea43145d9e540b24b4c414cf079ab7/docker-logs-23082022.tar.gz) [docker-23082022.tar.gz](/uploads/d5983b4345146e36c5e481a01e305c75/docker-23082022.tar.gz)
prandnum commented 2022-08-24 16:50:42 +00:00 (Migrated from gitlab.com)

sidechain event captured in logs

3118279ms th_a       sidechain_net_handler.cpp:155 sidechain_event_data ] sidechain_event_data:
3118279ms th_a       sidechain_net_handler.cpp:156 sidechain_event_data ]   timestamp:                2022-08-24T12:51:57
3118279ms th_a       sidechain_net_handler.cpp:157 sidechain_event_data ]   block_num:                22722
3118279ms th_a       sidechain_net_handler.cpp:158 sidechain_event_data ]   sidechain:                ethereum
3118279ms th_a       sidechain_net_handler.cpp:159 sidechain_event_data ]   sidechain_uid:            ethereum-0x2d3e5f6b5e164ebd15779539278122d91898b9c3098aea98804bc5eee16d58e4-0
3118279ms th_a       sidechain_net_handler.cpp:160 sidechain_event_data ]   sidechain_transaction_id: 0x2d3e5f6b5e164ebd15779539278122d91898b9c3098aea98804bc5eee16d58e4
3118279ms th_a       sidechain_net_handler.cpp:161 sidechain_event_data ]   sidechain_from:           0x5c79a9f5767e3c1b926f963fa24e21d8a04289ae
3118279ms th_a       sidechain_net_handler.cpp:162 sidechain_event_data ]   sidechain_to:             0x35c442a810358afce6a2743fb685c7b6e6bd7275
3118279ms th_a       sidechain_net_handler.cpp:163 sidechain_event_data ]   sidechain_currency:       ETH
3118279ms th_a       sidechain_net_handler.cpp:164 sidechain_event_data ]   sidechain_amount:         200000000
3118279ms th_a       sidechain_net_handler.cpp:165 sidechain_event_data ]   peerplays_from:           1.2.52
3118279ms th_a       sidechain_net_handler.cpp:166 sidechain_event_data ]   peerplays_to:             1.2.19
3118279ms th_a       sidechain_net_handler.cpp:167 sidechain_event_data ]   peerplays_asset:          {"amount":"8000000000","asset_id":"1.3.0"}



285005ms th_a       sidechain_net_handler.cpp:155 sidechain_event_data ] sidechain_event_data:
285005ms th_a       sidechain_net_handler.cpp:156 sidechain_event_data ]   timestamp:                2022-08-24T13:04:45
285005ms th_a       sidechain_net_handler.cpp:157 sidechain_event_data ]   block_num:                22975
285005ms th_a       sidechain_net_handler.cpp:158 sidechain_event_data ]   sidechain:                peerplays
285005ms th_a       sidechain_net_handler.cpp:159 sidechain_event_data ]   sidechain_uid:            peerplays-e9e8724b9a2abf8ee73323ae9c35cc5685a154fd-0
285005ms th_a       sidechain_net_handler.cpp:160 sidechain_event_data ]   sidechain_transaction_id: e9e8724b9a2abf8ee73323ae9c35cc5685a154fd
285005ms th_a       sidechain_net_handler.cpp:161 sidechain_event_data ]   sidechain_from:           1.2.52
285005ms th_a       sidechain_net_handler.cpp:162 sidechain_event_data ]   sidechain_to:             1.2.19
285005ms th_a       sidechain_net_handler.cpp:163 sidechain_event_data ]   sidechain_currency:       1.3.2
285005ms th_a       sidechain_net_handler.cpp:164 sidechain_event_data ]   sidechain_amount:         100000000
285005ms th_a       sidechain_net_handler.cpp:165 sidechain_event_data ]   peerplays_from:           1.2.52
285005ms th_a       sidechain_net_handler.cpp:166 sidechain_event_data ]   peerplays_to:             1.2.19
285005ms th_a       sidechain_net_handler.cpp:167 sidechain_event_data ]   peerplays_asset:          {"amount":"4000000000","asset_id":"1.3.0"}

sidechain event captured in logs ``` 3118279ms th_a sidechain_net_handler.cpp:155 sidechain_event_data ] sidechain_event_data: 3118279ms th_a sidechain_net_handler.cpp:156 sidechain_event_data ] timestamp: 2022-08-24T12:51:57 3118279ms th_a sidechain_net_handler.cpp:157 sidechain_event_data ] block_num: 22722 3118279ms th_a sidechain_net_handler.cpp:158 sidechain_event_data ] sidechain: ethereum 3118279ms th_a sidechain_net_handler.cpp:159 sidechain_event_data ] sidechain_uid: ethereum-0x2d3e5f6b5e164ebd15779539278122d91898b9c3098aea98804bc5eee16d58e4-0 3118279ms th_a sidechain_net_handler.cpp:160 sidechain_event_data ] sidechain_transaction_id: 0x2d3e5f6b5e164ebd15779539278122d91898b9c3098aea98804bc5eee16d58e4 3118279ms th_a sidechain_net_handler.cpp:161 sidechain_event_data ] sidechain_from: 0x5c79a9f5767e3c1b926f963fa24e21d8a04289ae 3118279ms th_a sidechain_net_handler.cpp:162 sidechain_event_data ] sidechain_to: 0x35c442a810358afce6a2743fb685c7b6e6bd7275 3118279ms th_a sidechain_net_handler.cpp:163 sidechain_event_data ] sidechain_currency: ETH 3118279ms th_a sidechain_net_handler.cpp:164 sidechain_event_data ] sidechain_amount: 200000000 3118279ms th_a sidechain_net_handler.cpp:165 sidechain_event_data ] peerplays_from: 1.2.52 3118279ms th_a sidechain_net_handler.cpp:166 sidechain_event_data ] peerplays_to: 1.2.19 3118279ms th_a sidechain_net_handler.cpp:167 sidechain_event_data ] peerplays_asset: {"amount":"8000000000","asset_id":"1.3.0"} 285005ms th_a sidechain_net_handler.cpp:155 sidechain_event_data ] sidechain_event_data: 285005ms th_a sidechain_net_handler.cpp:156 sidechain_event_data ] timestamp: 2022-08-24T13:04:45 285005ms th_a sidechain_net_handler.cpp:157 sidechain_event_data ] block_num: 22975 285005ms th_a sidechain_net_handler.cpp:158 sidechain_event_data ] sidechain: peerplays 285005ms th_a sidechain_net_handler.cpp:159 sidechain_event_data ] sidechain_uid: peerplays-e9e8724b9a2abf8ee73323ae9c35cc5685a154fd-0 285005ms th_a sidechain_net_handler.cpp:160 sidechain_event_data ] sidechain_transaction_id: e9e8724b9a2abf8ee73323ae9c35cc5685a154fd 285005ms th_a sidechain_net_handler.cpp:161 sidechain_event_data ] sidechain_from: 1.2.52 285005ms th_a sidechain_net_handler.cpp:162 sidechain_event_data ] sidechain_to: 1.2.19 285005ms th_a sidechain_net_handler.cpp:163 sidechain_event_data ] sidechain_currency: 1.3.2 285005ms th_a sidechain_net_handler.cpp:164 sidechain_event_data ] sidechain_amount: 100000000 285005ms th_a sidechain_net_handler.cpp:165 sidechain_event_data ] peerplays_from: 1.2.52 285005ms th_a sidechain_net_handler.cpp:166 sidechain_event_data ] peerplays_to: 1.2.19 285005ms th_a sidechain_net_handler.cpp:167 sidechain_event_data ] peerplays_asset: {"amount":"4000000000","asset_id":"1.3.0"} ```
prandnum (Migrated from gitlab.com) closed this issue 2022-08-24 16:50:42 +00:00
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Peerplays_Blockchain/peerplays_migrated#401
No description provided.