Skip to content

Commit

Permalink
update readme
Browse files Browse the repository at this point in the history
  • Loading branch information
EdsonAlcala committed Oct 1, 2024
1 parent 27b208d commit 920ea31
Showing 1 changed file with 61 additions and 17 deletions.
78 changes: 61 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,19 +28,20 @@ let transfer_action = Action::Transfer(TransferAction { deposit: U128(1) });
let actions = vec![transfer_action];

let near_tx = TransactionBuilder::new::<NEAR>()
.signer_id(signer_id.to_string())
.signer_public_key(signer_public_key.to_public_key().unwrap())
.nonce(nonce)
.receiver_id(receiver_id.to_string())
.block_hash(block_hash_str.to_block_hash().unwrap())
.actions(actions)
.build();
.signer_id(signer_id.to_string())
.signer_public_key(signer_public_key.to_public_key().unwrap())
.nonce(nonce)
.receiver_id(receiver_id.to_string())
.block_hash(block_hash_str.to_block_hash().unwrap())
.actions(actions)
.build();

// Now you have access to build_for_signing that returns the encoded payload
let near_tx_encoded = near_tx.build_for_signing();
```

Building Ethereum transaction:
Building an Ethereum transaction:

```rust
let to_address_str = "d8dA6BF26964aF9D7eEd9e03E53415D37aA96045";
let to_address = parse_eth_address(to_address_str);
Expand All @@ -53,16 +54,59 @@ let data: Vec<u8> = vec![];
let value: u128 = 10000000000000000; // 0.01 ETH

let evm_tx = TransactionBuilder::new::<EVM>()
.nonce(nonce)
.to(to_address)
.value(value)
.input(data.clone())
.max_priority_fee_per_gas(max_priority_fee_per_gas)
.max_fee_per_gas(max_gas_fee)
.gas_limit(gas_limit)
.chain_id(chain_id)
.build();
.nonce(nonce)
.to(to_address)
.value(value)
.input(data.clone())
.max_priority_fee_per_gas(max_priority_fee_per_gas)
.max_fee_per_gas(max_gas_fee)
.gas_limit(gas_limit)
.chain_id(chain_id)
.build();

// Now you have access to build_for_signing that returns the encoded payload
let rlp_encoded = evm_tx.build_for_signing();
```

Building a Bitcoin transaction:

```rust
let txid_str = "2ece6cd71fee90ff613cee8f30a52c3ecc58685acf9b817b9c467b7ff199871c";
let hash = Hash::from_hex(txid_str).unwrap();
let txid = Txid(hash);
let vout = 0;

let txin: TxIn = TxIn {
previous_output: OutPoint::new(txid, vout as u32),
script_sig: ScriptBuf::default(), // For a p2pkh script_sig is initially empty.
sequence: Sequence::MAX,
witness: Witness::default(),
};

let sender_script_pubkey_hex = "76a914cb8a3018cf279311b148cb8d13728bd8cbe95bda88ac";
let sender_script_pubkey = ScriptBuf(sender_script_pubkey_hex.as_bytes().to_vec());

let receiver_script_pubkey_hex = "76a914406cf8a18b97a230d15ed82f0d251560a05bda0688ac";
let receiver_script_pubkey = ScriptBuf(receiver_script_pubkey_hex.as_bytes().to_vec());

// The spend output is locked to a key controlled by the receiver.
let spend_txout: TxOut = TxOut {
value: Amount::from_sat(500_000_000),
script_pubkey: receiver_script_pubkey,
};

let change_txout = TxOut {
value: Amount::from_sat(100_000_000),
script_pubkey: sender_script_pubkey,
};

let bitcoin_tx = TransactionBuilder::new::<BITCOIN>()
.version(Version::One)
.inputs(vec![txin])
.outputs(vec![spend_txout, change_txout])
.lock_time(LockTime::from_height(0).unwrap())
.build();

// Prepare the transaction for signing
let encoded_tx = bitcoin_tx.build_for_signing_legacy(EcdsaSighashType::All);
```

0 comments on commit 920ea31

Please sign in to comment.