Skip to content

Payment processor built on Ethererum smart contracts + ReactJS Front end

License

Notifications You must be signed in to change notification settings

KayinCheung/ercpay

Repository files navigation

ercpay

ERCPay - The Paypal Dapp

ERCPay is the world's first payment processor built on Ethereum smart contracts. We leverage blockchain technology to offer the industry's lowest transaction fee and highest funds security.

Deployed at: https://ercpay.github.io/

To use ERCPay

Install Ethereum node software (Required):

We suggest Metamask as they provide a fully synced Ethereum node and only takes 3 mins to setup.

The Dapp is developed on Google chrome and Metamask. Other ethereum node and browser combinations may work, but are untested and unsupported. Once metamask is installed and your wallet is created, you can access the dashboard and try sending, receiving, releasing and refunding transactions on the Ropsten testnet.

How the smart contract works

Buyer initiates a transaction, specifying a seller and escrow agent address. On ERCPay's dashboard, the escrow agent address is hardcoded to our address and not available to edit on the dashboard.

After transaction creation, the transaction is "In Escrow". Afterwards,

  • Buyer or Escrow can release funds, transaction is considered complete. Tx state will be frozen.
  • Seller or Escrow can refund buyer, transaction is considered complete. Tx state will be frozen.
  • Buyer or Seller can raise dispute resolution. Raising dispute resolution is for records purpose (we can track % of disputes for each buyer/seller).
  • No other party can modify state of transaction.

Funds when released or refunded, is moved under the seller/buyer's ownership respectively. Fees are moved to escrow agent's ownership. They can withdraw funds they own.

Run the source code locally

Download the repo, run npm install, then npm start

Core logic

Core logic of displaying the dashboard is under src > dashboard > body.js

Core logic of sending escrow transactions is under src > transaction > send_payment.js

Core logic of interacting with existing transactions, including viewing the transaction, funds release, refund or opening disputes is under src > transaction > tx_details.js

Smart Contract Changelog

Authors

Cheung Ka Yin

Contact: [email protected]

About

Payment processor built on Ethererum smart contracts + ReactJS Front end

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published