GenericHandler

onlyBridge() modifier

constructor(address bridgeAddress, bytes32[] initialResourceIDs, address[] initialContractAddresses, bytes4[] initialDepositFunctionSignatures, bytes4[] initialExecuteFunctionSignatures) public

Parameters:

  • bridgeAddress: Contract address of previously deployed Bridge. @param initialResourceIDs Resource IDs used to identify a specific contract address. These are the Resource IDs this contract will initially support. @param initialContractAddresses These are the addresses the {initialResourceIDs} will point to, and are the contracts that will be called to perform deposit and execution calls. @param initialDepositFunctionSignatures These are the function signatures {initialContractAddresses} will point to, and are the function that will be called when executing deposit @param initialExecuteFunctionSignatures These are the function signatures {initialContractAddresses} will point to, and are the function that will be called when executing executeProposal

    @dev {initialResourceIDs}, {initialContractAddresses}, {initialDepositFunctionSignatures},
    and {initialExecuteFunctionSignatures} must all have the same length. Also,
    values must be ordered in the way that that index x of any mentioned array
    must be intended for value x of any other array, e.g. {initialContractAddresses}[0]
    is the intended address for {initialDepositFunctionSignatures}[0].

getDepositRecord(uint64 depositNonce, uint8 destId) → struct GenericHandler.DepositRecord external

Parameters:

  • depositNonce: This ID will have been generated by the Bridge contract. @param destId ID of chain deposit will be bridged to. @return DepositRecord which consists of:

    • _destinationChainID ChainID deposited tokens are intended to end up on.

    • _resourceID ResourceID used when deposit was executed.

    • _depositer Address that initially called deposit in the Bridge contract.

    • _metaData Data to be passed to method executed in corresponding {resourceID} contract.

setResource(bytes32 resourceID, address contractAddress, bytes4 depositFunctionSig, bytes4 executeFunctionSig) external

First verifies _resourceIDToContractAddress[{resourceID}] and _contractAddressToResourceID[{contractAddress}] are not already set, then sets _resourceIDToContractAddress with {contractAddress}, _contractAddressToResourceID with {resourceID}, _contractAddressToDepositFunctionSignature with {depositFunctionSig}, _contractAddressToExecuteFunctionSignature with {executeFunctionSig}, and _contractWhitelist to true for {contractAddress}. @param resourceID ResourceID to be used when making deposits. @param contractAddress Address of contract to be called when a deposit is made and a deposited is executed. @param depositFunctionSig Function signature of method to be called in {contractAddress} when a deposit is made. @param executeFunctionSig Function signature of method to be called in {contractAddress} when a deposit is executed.

deposit(bytes32 resourceID, uint8 destinationChainID, uint64 depositNonce, address depositer, bytes data) external

A deposit is initiatied by making a deposit in the Bridge contract. @param destinationChainID Chain ID deposit is expected to be bridged to. @param depositNonce This value is generated as an ID by the Bridge contract. @param depositer Address of account making the deposit in the Bridge contract. @param data Consists of: {resourceID}, {lenMetaData}, and {metaData} all padded to 32 bytes. @notice Data passed into the function should be constructed as follows: len(data) uint256 bytes 0 - 32 data bytes bytes 64 - END @notice {contractAddress} is required to be whitelisted @notice If _contractAddressToDepositFunctionSignature[{contractAddress}] is set, {metaData} is expected to consist of needed function arguments.

executeProposal(bytes32 resourceID, bytes data) external

Proposal execution should be initiated when a proposal is finalized in the Bridge contract. @param data Consists of {resourceID}, {lenMetaData}, and {metaData}. @notice Data passed into the function should be constructed as follows: len(data) uint256 bytes 0 - 32 data bytes bytes 32 - END @notice {contractAddress} is required to be whitelisted @notice If _contractAddressToExecuteFunctionSignature[{contractAddress}] is set, {metaData} is expected to consist of needed function arguments.

_setResource(bytes32 resourceID, address contractAddress, bytes4 depositFunctionSig, bytes4 executeFunctionSig) internal

© UMA Project 2018-2019