Interacting with a Smart Contract

Prerequisites

Ensure Olatte is installed correctly:

olatte --version

If this command fails, see Setting up your environment.

Introduction

Olatte enables interaction with smart contracts via two primary methods:

  • call: for read-only functions.

  • invoke: for write functions that modify the state.

Call a function

The call command can query a smart contract function without sending a transaction.

As an example you can use the get_proposer function which expect index of the proposal and returns the address of the proposer:

olatte call --network=pre-alpha vote_simple_abi.json  \
    0x444b2e790621ac6b74923f7ad92....\
    winningProposal
  • vote_simple_abi.json is the smart contract's abi file.

  • 0x444b.. is the contract address

  • winningProposal is function name. For functions with parameters, enter the function's inputs after the function name.

This will return the winner proposal:

    0

Invoke a function

when we need to modify the state of the smart contract, we need to send a transaction. This requires the use of the invoke command in Olatte, which sends a transaction to the Ola network.

In this example, we are sending a transaction to vote for proposal 7.

olatte invoke --network pre-alpha vote_simple_abi.json \
0x444b2e790621ac6b74923f7ad92.... \
vote 7

Last updated