Invoking contracts
Overview
This command allows you to send an invoke transaction with @external
function entrypoint.
The basic inputs that you need for the commands are:
- Signing credentials
- Contract address
- Function name
- Inputs to the function
- Fee specification (concrete amount, or auto-estimation)
- Network you want to target (i.e. its name or gateway URL)
For detailed API description, see invoke command reference.
Signing
Credentials for paying the fee are needed, which are:
- Account address (which pays the fee) - in hex (prefixed with '0x') or decimal representation.
- Private key for that account (from ArgentX, Braavos etc.) - in hex (prefixed with '0x') or decimal representation. This can be provided with
PROTOSTAR_ACCOUNT_PRIVATE_KEY
env variable or with a file on local filesystem containing that key in plaintext, in which case you should use--private-key-path
.
Custom signing logic is made possible by using custom signers - see details here.
Usage example
protostar invoke --contract-address 0x4a739ab73aa3cac01f9da5d55f49fb67baee4919224454a2e3f85b16462a911 --function "setter_tester_success" --network testnet --account-address 0x0481Eed2e02b1ff19Fd32429801f28a59DEa630d81189E39c80F2F60139b381a --max-fee auto --inputs 3 --private-key-path ./.pkey
Invoke transaction was sent.
Transaction hash: 0x05d2362b9b5a5aba8a02a41d2f1fcbdc06cde89f90cf33c0ea4957846c86aeef
danger
Setting max-fee
to auto
is discouraged, since it may incur extra unexpected costs.
note
If you need to print machine-readable output in JSON format, you should use --json
flag.
This may come in handy for writing scripts that include protostar commands.
For more information, go to this page