Skip to content

0xae/hashed-timelock-contract-ethereum

 
 

Repository files navigation

hashed-timelock-contract-ethereum

NPM Package Build Status

Hashed Timelock Contracts (HTLCs) for Ethereum:

Use these contracts for creating HTLCs on the Ethereum side of a cross chain atomic swap (for example the xcat project).

Deployment

HashedTimelock:

HashedTimelockERC20:

Protocol - Native ETH

Main flow

Timelock expires

Protocol - ERC20

Main flow

Timelock expires

Interface

HashedTimelock

  1. newContract(receiverAddress, hashlock, timelock) create new HTLC with given receiver, hashlock and expiry; returns contractId bytes32
  2. withdraw(contractId, preimage) claim funds revealing the preimage
  3. refund(contractId) if withdraw was not called the contract creator can get a refund by calling this some time after the time lock has expired.

See test/htlc.js for examples of interacting with the contract from javascript.

HashedTimelockERC20

  1. newContract(receiverAddress, hashlock, timelock, tokenContract, amount) create new HTLC with given receiver, hashlock, expiry, ERC20 token contract address and amount of tokens
  2. withdraw(contractId, preimage) claim funds revealing the preimage
  3. refund(contractId) if withdraw was not called the contract creator can get a refund by calling this some time after the time lock has expired.

See test/htlcERC20.js for examples of interacting with the contract from javascript.

ABI and Bytecode

About

Hashed Timelock Contracts for ETH and ERC20 on Ethereum

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%