@ecobioca/smart-traceability

1.0.3 • Public • Published

Tracebility EVM Smart Contracts

This project enables traceability of supply chains using EVM smart contracts and comes with the smart contracts, a test for that contracts and a sample script that deploys that contract.

Suppliers can create products and their respective batches, recording the transactions of this batch on blockchain.

Each batch created represents a token. The standard token used is the ERC1155 NFT standard and all the metadata should be stored in IPFS.

Each supplier can give permission to a list of managers' addresses to create and transact the batch, in addition to transferring it to other links in the chain.

Install dependencies:

yarn install

Compile and run tests:

yarn hardhat coverage

Deployment

Deploy to Alfajores (Celo Testnet):

yarn hardhat deploy --network alfajores

Deploy to Celo Mainnet:

yarn hardhat deploy --network celo

Deploy to Mumbai (Polygon Testnet):

yarn hardhat deploy --network mumbai

Deploy to Polygon Mainnet:

yarn hardhat deploy --network polygon

Then, copy the deployment address and start using it in your client application!

Tasks

Add Supplier

Usage:

hardhat --network <NETWORK> add-supplier --contract <STRING> --holder <STRING> --manager <STRING> --metadata <STRING>

OPTIONS:

  • contract: Contract address
  • holder: Holder address, can be a contract
  • manager: Addresses of managers, separated by commas
  • metadata: Metadata IPFS hash

Example:

yarn hardhat --network alfajores add-supplier --contract 0x5d7D5AEBFe64E72Bd571d24Fc2d8547A2E657cfC --metadata bafybeif5i3ov3n7xjwdeg3gnreeoy7kmumsedu64qd5juzer7pmn47z3oi --manager 0x208eAE2D4f048F35FD7974216f5fa409Dd70d2E1 --holder 0x7cE9254F2c643e2BFD5306361529Db622873A8D8

# Response:
Added supplier, Id: 1

Get Supplier

Usage:

hardhat --network <NETWORK> get-supplier --contract <STRING> --supplier <INT>

OPTIONS:

  • contract: Contract address
  • supplier: Supplier Id

Example:

yarn hardhat --network alfajores get-supplier --contract 0x5d7D5AEBFe64E72Bd571d24Fc2d8547A2E657cfC --supplier 1

# Response:
id: 1
metadata: bafybeif5i3ov3n7xjwdeg3gnreeoy7kmumsedu64qd5juzer7pmn47z3oi
managers: 0xb10c1E57379aBbA9F54AdAD33681abe4F4Fb0faC
holder: 0x7cE9254F2c643e2BFD5306361529Db622873A8D8
role: Supplier

Add Product

yarn hardhat --network alfajores add-product --contract 0x5d7D5AEBFe64E72Bd571d24Fc2d8547A2E657cfC --supplier 1 --code 0123456789123 --metadata bafybeiar26nqkdtiyrzbaxwcdm7zkr2o36xljqskdvg6z6ugwlmpkdhamy

Get Product

yarn hardhat --network alfajores get-product --contract 0x5d7D5AEBFe64E72Bd571d24Fc2d8547A2E657cfC --id 1

Add Batch

yarn hardhat --network alfajores add-batch --contract 0x8a17A7bB33040E6FF8aF645b67d7154c1B241AeA --supplier 1 --product 1 --code "2022-2" --metadata bafybeiar26nqkdtiyrzbaxwcdm7zkr2o36xljqskdvg6z6ugwlmpkdhamy

Contributing

If you want to contribute to the project, lint code before git pushing / open a pull request.

yarn eslint '**/*.{js,ts}'
yarn eslint '**/*.{js,ts}' --fix
yarn prettier '**/*.{json,sol,md}' --check
yarn prettier '**/*.{json,sol,md}' --write
yarn solhint 'contracts/**/*.sol'
yarn solhint 'contracts/**/*.sol' --fix

Package Sidebar

Install

npm i @ecobioca/smart-traceability

Weekly Downloads

0

Version

1.0.3

License

MIT

Unpacked Size

35.3 kB

Total Files

12

Last publish

Collaborators

  • anarkrypto