Interactuar con un Smart Contract con Taquito

Instalar Taquito

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

Importar la librería

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

Crear una instancia de la librería con los mismos contratos rpc:

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

Tal vez se encuentre un error y sea necesario instalar 'stream-browserify':

npm install 'stream-browserify'

y agregar "stream" al archivo vue.config.js.

Sign configuration

Obtener la clave privada de la billetera, en la configuración.

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

Interact with the smart contract

Es necesaria la dirección del contrato. Ejemplo: KT1NvFHBQv3Zkv3wmWYqYpWWR8rMdd5pUG14 .

Enviar un method:

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

Obtener una confirmación de op hash:

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)}`));

Inspeccionar los métodos de contrato y los tipos de datos:

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}`));

Enlaces de referencia

Last updated