Skip to content

Commit

Permalink
Merge pull request #110 from onflow/bastian/improve-evm-addresses
Browse files Browse the repository at this point in the history
Improve conversion of EVM addresses
  • Loading branch information
sisyphusSmiling authored Aug 30, 2024
2 parents a9d52f9 + 5a46d92 commit 3e8011f
Show file tree
Hide file tree
Showing 3 changed files with 5 additions and 28 deletions.
12 changes: 2 additions & 10 deletions cadence/scripts/evm/call.cdc
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,9 @@ access(all) fun main(
typeIdentifiers: [String]
): [AnyStruct] {

let evmAddressBytes: [UInt8] = evmContractAddressHex.decodeHex()
let evmAddress = EVM.EVMAddress(
bytes: [
evmAddressBytes[0], evmAddressBytes[1], evmAddressBytes[2], evmAddressBytes[3], evmAddressBytes[4],
evmAddressBytes[5], evmAddressBytes[6], evmAddressBytes[7], evmAddressBytes[8], evmAddressBytes[9],
evmAddressBytes[10], evmAddressBytes[11], evmAddressBytes[12], evmAddressBytes[13], evmAddressBytes[14],
evmAddressBytes[15], evmAddressBytes[16], evmAddressBytes[17], evmAddressBytes[18], evmAddressBytes[19]
]
)
let evmAddress = EVM.addressFromString(evmContractAddressHex)

let data: [UInt8] = calldata.decodeHex()
let data = calldata.decodeHex()

let gatewayCOA = getAuthAccount<auth(BorrowValue) &Account>(gatewayAddress)
.storage.borrow<auth(EVM.Call) &EVM.CadenceOwnedAccount>(
Expand Down
9 changes: 1 addition & 8 deletions cadence/scripts/evm/get_balance.cdc
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,5 @@ import "EVM"
/// Returns the Flow balance of of a given EVM address in FlowEVM
///
access(all) fun main(address: String): UFix64 {
let bytes = address.decodeHex()
let addressBytes: [UInt8; 20] = [
bytes[0], bytes[1], bytes[2], bytes[3], bytes[4],
bytes[5], bytes[6], bytes[7], bytes[8], bytes[9],
bytes[10], bytes[11], bytes[12], bytes[13], bytes[14],
bytes[15], bytes[16], bytes[17], bytes[18], bytes[19]
]
return EVM.EVMAddress(bytes: addressBytes).balance().inFLOW()
return EVM.addressFromString(address).balance().inFLOW()
}
12 changes: 2 additions & 10 deletions cadence/transactions/evm/call.cdc
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,8 @@ transaction(evmContractAddressHex: String, calldata: String, gasLimit: UInt64, v
let coa: auth(EVM.Call) &EVM.CadenceOwnedAccount

prepare(signer: auth(BorrowValue) &Account) {
let evmAddressBytes: [UInt8] = evmContractAddressHex.toLower().decodeHex()
self.evmAddress = EVM.EVMAddress(
bytes: [
evmAddressBytes[0], evmAddressBytes[1], evmAddressBytes[2], evmAddressBytes[3], evmAddressBytes[4],
evmAddressBytes[5], evmAddressBytes[6], evmAddressBytes[7], evmAddressBytes[8], evmAddressBytes[9],
evmAddressBytes[10], evmAddressBytes[11], evmAddressBytes[12], evmAddressBytes[13], evmAddressBytes[14],
evmAddressBytes[15], evmAddressBytes[16], evmAddressBytes[17], evmAddressBytes[18], evmAddressBytes[19]
]
)

self.evmAddress = EVM.addressFromString(evmContractAddressHex)

self.coa = signer.storage.borrow<auth(EVM.Call) &EVM.CadenceOwnedAccount>(from: /storage/evm)
?? panic("Could not borrow COA from provided gateway address")
}
Expand Down

0 comments on commit 3e8011f

Please sign in to comment.