0.2.0 • Published 4 years ago

@fr8/besu-tx v0.2.0

Weekly downloads
2
License
-
Repository
-
Last release
4 years ago

Besu Utilities

Run it:

npm install
node test.js --url=<url of the target node> --verbose --deploy

The above command deploys a simple smart contract simplestorage.sol to the target node and sets the initial value to 10.

You should see output similar to the following:

1. Connecting to target node: https://<username>:<appcreds>@-$freightlayer.io
  Found account in the target node: 0xFf8c6060d3D4930E81a4c923b96B05FC039901F4
2. Deploying smart contract
  Smart contract deployed, ready to take calls at "0xb53C9f258FdD76B78D154CcEd33EFe09f9Bd9B69"

Query the current value

Feel frees to switch to a different node in the same consortia for any of the following commands as they are supposed to work the same on any of the consortia nodes.

node test.js --url=<url of the target node> --contract=<contract address from the output above> --query

Set a new value

node test.js --url=<url of the target node> --contract=<contract address from the output above> --set=<new value>

Print out the DataStored event

node test.js --url=<url of the target node> --ws=<ws:// URL for the websocket connection> --contract=<contract address from the output above> --set=<new value>

Deploy a private smart contract

node test.js --url=<url of the target node> --deploy --privateFor='["<private transaction addresses>"]'

Note: the privateFor argument value must be delimited with single quotes, and use double quotes for each of the target private addresses, in order for the script to successfully parse

Deploy a private smart contract to a Besu node

node test.js --url=<url of the target node> --deploy --besu_private --privateFor=<private transaction addresses of receiver(s)> --privateFrom=<private transaction address of sender>

NOTE: List receiver addresses seperated by comma(,)

Send a private transaction

node test.js --url=<url of the target node> --contract=<contract address from the output above> --set=<new value> --privateFor='["<private transaction addresses>"]'

Send a private transaction to a Besu node

node test.js --url=<url of the target node> --contract=<contract address from the output above> --set=<new value> --besu_private --privateFor=<private transaction addresses of receiver(s)> --privateFrom=<private transaction address of sender>

Query a private transaction from a Besu node

node test.js --url=<url of the target node> --contract=<contract address from the output above> --query --besu_private --privateFor=<private transaction addresses of receiver(s)> --privateFrom=<private transaction address of sender>

Use an external account to deploy contract and sign a transaction

node test.js --sign --url=<url of the target node> --deploy
node test.js --sign --url=<url of the target node> --contract=<contract address from the output above> --set=<new value>

Use hdwallet account to deploy contract and sign a transaction

Note: EthSigner's hdwallet service must be provisioned and a wallet created to use this option

node test.js --sign --hdwalletUrl=<url of the hdwallet service> --hdwalletId=<hdwallet ID> --hdwalletAccountIndex=<account index to anonymize identity> --url=<url of the target node> --deploy
node test.js --sign --hdwalletUrl=<url of the hdwallet service> --hdwalletId=<hdwallet ID> --hdwalletAccountIndex=<account index to anonymize identity> --url=<url of the target node> --contract=<contract address from the output above> --set=<new value>