ArweaveKit Docs
  • ArweaveKit
    • Introduction
  • 🔐Wallets
    • Introduction to Wallets
    • Create Wallet
    • Get Wallet Address
    • Get Wallet Balance
    • Wallet Plugins
  • 💳ARWEAVE WALLET KIT
    • Introduction to Arweave Wallet Kit
    • Setup
    • Connect Button
    • Hooks
    • Customization
  • 🏦Transactions
    • Introduction to Transactions
    • Create Transaction
    • Sign Transaction
    • Post Transaction
    • Get Transaction Status
    • Get Transaction
    • Create and Post Transaction with Othent
    • Transaction Plugins
  • 📄SMART CONTRACTS
    • Introduction to Smart Contracts
    • Create Contract
    • Write Contract
    • Read Contract State
    • View Contract State
    • Write Contract with Othent
    • Read Contract with Othent
    • Smart Contract Plugins
  • ✅AUTH
    • Introduction to Auth
    • Connect
    • Disconnect
    • Get Active Address
    • Get Permissions
    • Get Wallet Names
    • Get All Addresses
    • Get Active Public Key
    • Is Installed
    • Log In with Othent
    • Log Out with Othent
    • Get User Details with Othent
    • Auth Plugins
  • 🔐Encryption
    • Introduction to Encryption
    • Encrypt Data with AES
    • Decrypt Data with AES
    • Encrypt AES Key with RSA
    • Decrypt AES Key with RSA
    • Encryption Plugins
  • 🌐GRAPHQL
    • Introduction to GraphQL
    • Query All Arweave Transactions
    • Query Arweave Data
    • Query Arweave Transactions
    • GraphQL Plugins
  • 🗺️RoadMap
    • Features
  • 📘REFERENCES
    • ArweaveKit in Browser Environments
  • 🛠️SUPPORTING TOOLS
    • Arweave StarterKit
Powered by GitBook
On this page
  • Basic Syntax
  • Input Parameters
  • Returned Data

Was this helpful?

  1. SMART CONTRACTS

Write Contract with Othent

Write to a smart contract with Othent

PreviousView Contract StateNextRead Contract with Othent

Last updated 1 year ago

Was this helpful?

is library facilitating the onboarding of users from web2 to web3 through account abstraction. The authentication protocol offers a number of "wallet-less" functions for the same. Users can connect and interact with applications using web2 technologies like email accounts with the help of Othent.

The writeContractWOthent function enables interacting with a deployed contract based on the input parameters.

The writeContractWOthent function currently supports only with contracts deployed using the .

Ensure you have pop-ups enabled in your browser for the URL you'll be using this function in.

Basic Syntax

The function is called as follows:

import { writeContractWOthent } from 'arweavekit/contract'

const writeResult = await writeContractWOthent({params});

Input Parameters

The following params are available for this function and they must be passed in as an object:

  • apiId: string : Use of any Othent function requires an apiId which can be fetched from . Towards the bottom of the linked page, the Get your API ID button provides the same.

  • othentFunction: string : The othentFunction param informs the protocol's backend on the type of interaction to network. For the writeContractWOthent function, the required input is 'sendTransaction'.

  • data: object : The data field helps the function call understand details for interaction with a contract.

    • toContractId: string : The id of the contract to be interacted with.

    • toContractFunction: string : The function within the specified contract to be called. Every SmartWeave contract generally defines conditionals for multiple functions within it and depending on the function name passed in as input, the particular function logic is executed.

    • txnData : object : The data are the input parameters required by a function within the contract to run successfully.

  • tags : array (optional) : Tags can be added to any write interaction for ease of indexing and querying. Every tag must be passed in as an object in the tags array. The syntax for adding tags is as follows:

    tags: [{ 'name': key_name, 'value': some_value},
            { 'name': key_name2, 'value': some_value2}]

The environment does not need to be specified for writeContractWOthent as it only supports mainnet interactions, currently.

Example
const writeResult = await writeContractWOthent({
  apiId: string,
  othentFunction: 'sendTransaction', 
  data: {
    toContractId: '2W9NoIJM1SuaFUaSOJsui_5lD_NvCHTjez5HKe2SjYU', 
    toContractFunction: 'createPost', 
    txnData: { blog_entry: 'Hello World!'} 
  }, 
  tags: [ {name: 'Test', value: 'Tag'} ]
});

This writes to the contract deployed by calling the function createPost from the contract logic and updating the state accordingly.

Returned Data

The function call returns the following data:

  • success: boolean : The success status of the write interaction.

  • transactionId: string : The unique identifier for the write interaction. As every write interaction is a transaction, it has a corresponding transactionId associated with it for future reference.

📄
Othent
internal write interactions
warp-sdk
othent.io