Skip to content

whereyouatwimm/hashed-timelock-contract-ethereum

 
 

Repository files navigation

hashed-timelock-contract-ethereum

NPM Package

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

An implementation of a Hashed Timelock Contract on Ethereum

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%