This is a transaction verification library for use in EVM compatible networks. In order to verify block hashes across layers, a contract is needed to store the block hashes. That is different for each network and should be implemented individually.
npm install bridgeDisputeManager
in the project directory. Make sure to install through npm for prompt updates!import "bridgeDisputeManager/contracts/BridgeDisputeManager.sol"
in the desired smart contract.
The contract provides several functions to validate transactions.
verifyBlockHash(bytes32 blockHash, uint blockNumber) bool
: Verify a blockhashverifyTxSignature(address from, bytes[] calldata txRaw) bool
: Verifies if the transaction signature is correctverifyProof(bytes32 txHash, bytes[] memory proof, bytes memory bytesRoot, uint8[] memory path) bytes memory
: Verifies the mark-proofing of the transaction. The return value is an encoded transaction; EIP 1559 or later is supported.verifyBlockHeader(bytes32 blockHash, bytes[] calldata blockHeaderRaw) bool
: Validates block headers stored in an array; EIP 1559 or later is supported.verifyRawTx(bytes memory transaction, bytes[] calldata txRaw) bool
: Validates a transaction stored in the array.
git clone https://github.com/recruitcojp/BridgeDisputeManager && cd BridgeDisputeManager
npm install
npm install -g truffle ganache-cli
installed globally for the dev envirnomentganache-cli
run in a background process or seperate terminal window.truffle compile && truffle test
The source code is licensed MIT.