Interact with a smart contract with Taquito

Install Taquito

npm install @taquito/taquito
npm install @taquito/signer

Import the library

import { TezosToolkit } from '@taquito/taquito';
import { InMemorySigner} from '@taquito/signer';

Instantiate the library with the same contracts rpc

const Tezos = new TezosToolkit('https://YOUR_PREFERRED_RPC_URL');

Maybe you have an error and need to install 'stream-browserify'.

npm install 'stream-browserify'

and add "stream" to vue.config.js file.

Sign configuration

You get your private key from your wallet, in settings.

Tezos.setProvider({
  signer: new InMemorySigner('YOUR_PRIVATE_KEY'),
});

Interact with the smart contract

You need the contract address. Example: KT1NvFHBQv3Zkv3wmWYqYpWWR8rMdd5pUG14 .

Send a method

Tezos.contract
  .at('YOUR CONTRACT ADDRESS')
  .then((contract) => {
    return contract.methods.YOUR_METHOD(PARAMS).send();
  });

Get a op hash confimation

Tezos.contract
  .at('YOUR CONTRACT ADDRESS')
  .then((contract) => {
    return contract.methods.YOUR_METHOD(PARAMS).send();
  })
  .then((op) => {
    console.log(`Waiting for ${op.hash} to be confirmed...`);
    return op.confirmation(1).then(() => op.hash);
  });

Catch error

Tezos.contract
  .at('YOUR CONTRACT ADDRESS')
  .then((c) => {
    return c.methods.YOUR_METHOD(PARAMS).send();
  })
  .then((op) => {
    console.log(`Waiting for ${op.hash} to be confirmed...`);
    return op.confirmation(1).then(() => op.hash);
  })
  .then((hash) => console.log(`Operation injected: https://kathmandu.tzstats.com/${hash}`))
  .catch((error) => console.log(`Error: ${JSON.stringify(error, null, 2)}`));

Inspect the contract methods and data types

Tezos.contract
  .at('YOUR CONTRACT ADDRESS')
  .then((c) => {
    let methods = c.parameterSchema.ExtractSignatures();
    console.log(JSON.stringify(methods, null, 2));
  })
  .catch((error) => console.log(`Error: ${error}`));

Last updated