Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
@kredits/contracts
Advanced tools
This repository contains the Solidity smart contracts and the JavaScript API wrapper for Kosmos Kredits.
All requirements are defined in package.json
.
$ npm install
We use hardhat as development environment for the smart contracts.
To run a local development chain run:
$ npm run devchain # or: hardhat node --network hardhat
Run an EVM node and ipfs
$ npm run devchain
$ ipfs daemon
Compile contracts and build ABIs
(compiled artifacts will be in `/artifacts`)
$ npm run build
Deploy new upgradable contract proxies
$ npm run deploy:dao
Execute seeds to create demo contributors, contributions, etc. (optional)
$ npm run seeds
Step 2-4 is also summarized in npm run bootstrap
Show contract addresses
$ cat lib/addresses.json
If you need to fund development accounts with devchain coins:
$ npm run fund # or hardhat fund --network localhost
With a local development chain running:
$ hardhat test
If you add or change contract code, please make sure to add and/or adapt tests accordingly. Don't worry, it's easy! You can use existing tests as a template for new ones.
We use the OpenZeppelin hardhat
proxy for
deploying and managing upgradeable contracts. (see scripts/create-proxy.js
)
Each contract is independent and is connected to its dependencies by storing the addresses of the other contracts.
scripts/
contains some helper scripts to interact with the contracts from the
CLI. At some point these should be moved into a real nice CLI.
To run these scripts use hardhat run
. For example: hardhat run scripts/list-contributors.js --network localhost
. (NOTE: add --network localhost
or the network you want to use)
Some scripts are also defined as npm script, see package.json
.
Similar to cli.js but only provides a REPL with an initialized kredits
instance.
$ hardhat console --network localhost
Script to add a new entries to the contracts using the JS wrapper
$ hardhat run scripts/add-{contributor, contribution, proposal}.js --network localhost
List contract entries
$ hardhat run scripts/list-{contributors, contributions, proposals}.js --network localhost
Run seeds defined in config/seeds.js
.
$ npm run seeds
All contract addresses are stored in lib/addresses.json
$ cat lib/addresses.json
We use OpenZeppelin for an upgradeable contracts: https://www.npmjs.com/package/@openzeppelin/hardhat-upgrades
Refer to the OpenZeppelin README and scripts/create-proxy.js
OpenZeppelin Step by Step guide
For an upgrade example checkout scripts/upgrade-example.js
Deployable networks are configured in the hardhat.config.js
.
To deploy to those networks provide the --network
argument to the hardhat
commands, e.g. --network rsk
.
Please note that some npm scripts combine multiple hardhat commands. In those
cases the hardhat commands needs to be run manually with the --network
argument. (=> don't use npm run bootstrap
)
Set a DEPLOY_KEY
environment variable with the private key (HEX) which will
be used as a root/deploy account
Typical deployment flow:
$ npm run build
$ hardhat run scripts/create-proxy.js --network rsk
# OR with deploy key:
$ DEPLOY_KEY=0xsomething hardhat run scripts/create-proxy.js --network rsk
$ # commit the new addresses in the addresses.json file if needed
To run the console on one of the non localhost networks you can also just pass on the --network argument.
$ hardhat console --network rsk
FAQs
Smart contracts and JavaScript API for Kredits
We found that @kredits/contracts demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.