diff --git a/src/utils/miner.rs b/src/utils/miner.rs index 4afe05246f9c91bc27f7a58df4e2dd93844dbc29..107a61f6d7db9dc33d53d33236cb85c01df27d7c 100644 --- a/src/utils/miner.rs +++ b/src/utils/miner.rs @@ -10,6 +10,7 @@ use ethers::{ TransactionRequest, }, }; +use ethers::utils::keccak256; use ethnum::U256; /// Get a RPC Behavior for miner with default values, ready to send. @@ -43,16 +44,16 @@ pub fn get_miner_behavior( _ => U256::from(MEAN_VDF_DIFFICULTY_PER_SEC * 60), }; let behavior_msg = BehaviorMessage{ - chain_id: U64::from(chain_id), - to:Some(to), - timestamp: U64::from(now), - quantity, - input: Bytes::from("0x015d8eb90000000000000000000000000000000000000000000000000000000000878c1c00000000000000000000000000000000000000000000000000000000644662bc0000000000000000000000000000000000000000000000000000001ee24fba17b7e19cc10812911dfa8a438e0a81a9933f843aa5b528899b8d9e221b649ae0df00000000000000000000000000000000000000000000000000000000000000060000000000000000000000007431310e026b69bfc676c0013e12a1a11411eec9000000000000000000000000000000000000000000000000000000000000083400000000000000000000000000000000000000000000000000000000000f4240") }; + chain_id: U64::from(chain_id), + to:Some(to), + timestamp: U64::from(now), + quantity, + input: Bytes::from("0x015d8eb90000000000000000000000000000000000000000000000000000000000878c1c00000000000000000000000000000000000000000000000000000000644662bc0000000000000000000000000000000000000000000000000000001ee24fba17b7e19cc10812911dfa8a438e0a81a9933f843aa5b528899b8d9e221b649ae0df00000000000000000000000000000000000000000000000000000000000000060000000000000000000000007431310e026b69bfc676c0013e12a1a11411eec9000000000000000000000000000000000000000000000000000000000000083400000000000000000000000000000000000000000000000000000000000f4240") }; // let behavior = wallet. let tr = TransactionRequest::new() .to(to) - .value(primitive_types::U256::zero()) + .value(primitive_types::U256::from(quantity.as_u128())) .chain_id(chain_id) .data(behavior_msg.input.0.clone()); @@ -60,17 +61,20 @@ pub fn get_miner_behavior( // wallet.sig let signature = wallet .sign_transaction_sync( - ðers::types::transaction::eip2718::TypedTransaction::EcoMobiCoinBehavior(bx), + ðers::types::transaction::eip2718::TypedTransaction::EcoMobiCoinBehavior(bx.clone()), ) .unwrap(); + let behavior_rlp = bx.rlp(); + let bx_hash: primitive_types::H256 = keccak256(behavior_rlp.as_ref()).into(); + let hash = primitive_types::H256::from(bx_hash); Behavior { message: behavior_msg, v: signature.v.into(), r: H256::from(signature.r).into(), s: H256::from(signature.s).into(), from: wallet.address(), - hash: H256::default().into(), + hash, behavior_index: None, block_number: None, block_hash: None,