L1X Developer SDK
Get Started
Get Started
  • L1X VM SDK
    • L1X Native SDK for L1X VM
      • Set up Environment
        • Pre-Requisites
        • Installation
          • Install Cargo L1X
            • Ubuntu and Windows (WSL)
            • Mac (Intel and Silicon)
          • Install L1X CLI (Beta)
      • Build your First Smart Contract on L1X VM
        • Common Flags and Arguments
    • L1X CLI Methods
  • L1X EVM SDK
    • Pre-Requisites
    • Hardhat Installation & Deploy your First L1X EVM FT Contract
  • L1X Typescript SDK
    • L1X Library
      • L1X Typescript SDK
      • Account Methods
        • How to import wallet using mnemonic?
        • How to import wallet using private key?
      • Core Methods
        • How to get Account State?
        • How to get block information by block number?
        • How to get chain state?
        • How to get events?
        • How to get current nonce?
        • How to get account transactions?
        • How to get the transaction recipt?
        • How to broadcast transactions?
      • L1X VM Methods
        • How to deploy a VM contract?
        • How to initialise a VM contract?
        • How to make VM readonly calls?
        • How to make VM contract state changing calls?
      • L1X EVM Methods
        • How to initialise a smart contract?
        • How to make an EVM contract state changing call?
        • How to make EVM read only calls?
      • Other Methods
        • Native Token Methods
          • How to transfer native token?
          • How to get native token balance?
          • How to get signed payload for transfer?
        • Fungible Token Methods
          • How to create fungible tokens?
          • How to mint fungible token?
          • How to give approval to fungible token?
          • How to get fungible token attributes?
          • How to get a fungible token balance?
          • How to get an allowence of fungible tokens?
          • How to transfer fungible tokens?
          • How to use transfer from of fungible token?
        • Non-fungible Token Methods
          • How to Create a Non-Fungible Token?
          • How to mint a Non-Fungible Token?
          • How to get the balance of a Non-Fungible token?
          • How to get the attribute of a Non-Fungible token?
          • How to approve a spender to manage a specific Non-Fungible token?
          • How to set or revoke approval for a specific operator to manage all tokens of the sender?
          • How to get the owner of a Non-Fungible token by its ID?
          • How to Transfer a Non-Fungible token from one address to another?
          • How to burn an existing Non-Fungible Token?
  • Endpoints
  • Configuring MetaMask with L1X Network
Powered by GitBook
On this page
  1. L1X Typescript SDK
  2. L1X Library
  3. L1X VM Methods

How to make VM contract state changing calls?

  • makeStateChangingFunctionCall

Function:

This function is used to make a state changing call to a VM contract.

import { L1XProvider, VMStateChangeCallArg } from "@l1x/l1x-wallet-sdk";

let l1xProvider = new L1XProvider({
  clusterType: "mainnet",
  endpoint: "https://v2-mainnet-rpc.l1x.foundation",
});

let params: VMStateChangeCallArg = {
  attrib: {
    arguments: {
      token: "BNB",
      new_percentage: "113940",
      duration: "180",
    },
    contract_address: "2092b9b5fbaa7a924fae9547e6997832300fe15c",
    function: "update_token_rewards_percentage",
    is_argument_object: true,
  },
  private_key: "YOUR_PRIVATE_KEY",
  fee_limit: 1,
};

l1xProvider.vm
  .makeStateChangingFunctionCall(params)
  .then((response) => console.log(response)) // log response
  .catch((err) => console.error(err)); // log error

Parameters:

The VM contract parameters for state changing object.

{
  attrib: {
    arguments: {
      token: "BNB",
      new_percentage: "113940",
      duration: "180",
    },
    contract_address: "2092b9b5fbaa7a924fae9547e6997832300fe15c",
    function: "update_token_rewards_percentage",
    is_argument_object: true,
  },
  private_key: "YOUR_PRIVATE_KEY",
  fee_limit: 1,
}

Returns:

A promise that resolves when the transaction is submitted.

{
    "hash": "aea97cfc0478da253f51309a8297aa664267e6f10486bed5b8022ed1baca8187"
}
PreviousHow to make VM readonly calls?NextL1X EVM Methods

Last updated 1 year ago