mirror of https://github.com/hyperledger/besu
An enterprise-grade Java-based, Apache 2.0 licensed Ethereum client https://wiki.hyperledger.org/display/besu
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Trent Mohay
79bd915e2e
|
5 years ago | |
---|---|---|
.. | ||
contracts | 5 years ago | |
migrations | 5 years ago | |
test | 5 years ago | |
.gitignore | 5 years ago | |
README.md | 5 years ago | |
truffle.js | 5 years ago |
README.md
Pre-requisites
- Truffle installed
npm install -g truffle
- Wallet installed
npm install truffle-hdwallet-provider
To run the tests:
cd acceptance-tests/simple-permissioning-smart-contract
-
here you will find truffle.js which has network configurations for
- development (Ganache) and
- devwallet (points to localhost:8545)
- Note you need Ganache running if you want to run the tests against it (see below)
- Also this truffle.js uses address and private key generated by Ganache with default mnemonic "candy maple cake sugar pudding cream honey rich smooth crumble sweet treat"
-
To run the Truffle example with Besu, you need Besu running
- check out and build Besu
- run Besu (either in IDE or via command line), with mining and RPC enabled.
-
Run Truffle migrate against Ganache
truffle migrate
- Output should look something like:
Compiling ./contracts/Migrations.sol...
Compiling ./contracts/SimplePermissioning.sol...
Writing artifacts to ./build/contracts
⚠️ Important ⚠️
If you're using an HDWalletProvider, it must be Web3 1.0 enabled or your migration will hang.
Starting migrations...
======================
> Network name: 'development'
> Network id: 5777
> Block gas limit: 6721975
1_initial_migration.js
======================
Deploying 'Migrations'
----------------------
> transaction hash: 0x346b51830819ac04aac4c10082ac3e2b534fee424fa702e37155a4f8eee12f61
> Blocks: 0 Seconds: 0
> contract address: 0xD7de17FB4DFB954535E35353dC82dBB6156a8078
> account: 0x627306090abaB3A6e1400e9345bC60c78a8BEf57
> balance: 96.53012304
> gas used: 284908
> gas price: 20 gwei
> value sent: 0 ETH
> total cost: 0.00569816 ETH
> Saving migration to chain.
> Saving artifacts
-------------------------------------
> Total cost: 0.00569816 ETH
2_deploy_contracts.js
=====================
Deploying 'SimplePermissioning'
-------------------------------
> transaction hash: 0x0752d5683ecb210308bc4c387fd8d4bbfde4c05a335bdcf594b608c2e63abf5a
> Blocks: 0 Seconds: 0
> contract address: 0x1baf55be3D4b5f1911EB729EEa5A8d089Ee1162a
> account: 0x627306090abaB3A6e1400e9345bC60c78a8BEf57
> balance: 96.50582406
> gas used: 1172915
> gas price: 20 gwei
> value sent: 0 ETH
> total cost: 0.0234583 ETH
> Saving migration to chain.
> Saving artifacts
-------------------------------------
> Total cost: 0.0234583 ETH
Summary
=======
> Total deployments: 2
> Final cost: 0.02915646 ETH
If migrate works, try running the tests
cd acceptance-tests/simple-permissioning-smart-contract
truffle test
- Output should look something like:
Using network 'development'.
Compiling ./contracts/SimplePermissioning.sol...
Contract: Permissioning Ipv4
Function: permissioning Ipv4
✓ Should NOT permit any node when none have been added (75ms)
✓ Should compute key (71ms)
✓ Should add a node to the whitelist and then permit that node (223ms)
✓ Should allow a connection between 2 added nodes
✓ Should remove a node from the whitelist and then NOT permit that node (91ms)
Contract: Permissioning Ipv6
Function: permissioning Ipv6
✓ Should NOT permit any node when none have been added (79ms)
✓ Should compute key (66ms)
✓ Should add a node to the whitelist and then permit that node (165ms)
✓ Should allow a connection between 2 added nodes
✓ Should remove a node from the whitelist and then NOT permit that node (103ms)
10 passing (1s)