NES.TECH Documentation
  • 👋Welcome to NES.TECH
  • Overview
    • 💡What we do
  • SDKs Guide
    • 📪Kickstart with our SDKs
    • ⛓️Blockchain SDKs
      • 📌Solana SDK
        • ⛏️generateAccount
        • ⛏️getAccountFromSecretKey
        • ⛏️getBalance
        • ⛏️sendSOL
        • ⛏️mintNFT
        • ⛏️estimateTransferToken
        • ⛏️estimateMint
        • ⛏️estimateSOLTransfer
        • ⛏️estimateMintToken
        • ⛏️createToken
        • ⛏️transferToken
      • 📌EVM Chains SDK
        • ⛏️BulkNFT
          • 🔗deployContract
          • 🔗bulkMint
        • ⛏️NFT
          • 🔗deployContract
          • 🔗mint
          • 🔗convertToVLRY
          • 🔗VLRYToUSD
          • 🔗VLRYToCRYPTO
          • 🔗transferOwnership
          • 🔗transfer
          • 🔗estimateFee
            • 📌ERC20
              • ⛏️deploy
              • ⛏️mint
              • ⛏️transfer
            • 📌ERC721
              • ⛏️deploy
              • ⛏️mint
              • ⛏️transfer
            • 📌ERC1155
              • ⛏️deploy
              • ⛏️mint
              • ⛏️transfer
            • 📌Soulbound
              • ⛏️deploy
              • ⛏️mint
        • ⛏️Contracts
          • 🔗ERC20
            • 📌deployContract
            • 📌transfer
            • 📌mint
          • 🔗ERC721
            • 📌deployContract
            • 📌transfer
            • 📌mint
            • 📌approve
          • 🔗ERC1155
            • 📌deployContract
            • 📌transfer
            • 📌mint
            • 📌balanceOf
          • 🔗Soulbound
            • 📌deployContract
        • ⛏️Wallet
          • 🔗getBalance
          • 🔗sendEther
          • 🔗depositEther
          • 🔗checkIfAddress
        • ⛏️NFTMarketPlace
          • 🔗listNFT
          • 🔗buyNFT
          • 🔗getNFT
          • 🔗placeBid
          • 🔗transferNFT
        • ⛏️BlockchainInfo
          • 🔗availableBlockchains
          • 🔗availableContracts
      • 📌Tokenomics SDK
        • ⛏️createStake
        • ⛏️removeStake
        • ⛏️approveVolary
        • ⛏️transferVolary
        • ⛏️getBalance
        • ⛏️claimRewards
        • ⛏️addRewards
        • ⛏️swapVlry
        • ⛏️getSwapAmountVolary
      • 📌Storage SDK
        • ⛏️uploadToIPFS
        • ⛏️fetchMetadata
      • 📌Casper SDK
        • ⛏️generateWallet
        • ⛏️fetchWalletFromPrivateKey
        • ⛏️fetchAccountHash
        • ⛏️getBalance
        • ⛏️transferTokens
        • ⛏️deployNFTContract
        • ⛏️mintNFT
        • ⛏️mintFreeNFT
        • ⛏️checkNFT
        • ⛏️approveSale
        • ⛏️transferNFT
        • ⛏️getNftOwner
        • ⛏️bid
        • ⛏️startBidding
        • ⛏️closeBidding
        • ⛏️cancelAuction
        • ⛏️getUserData
        • ⛏️getNftInfo
        • ⛏️getContractDetails
        • ⛏️getWalletDetails
        • ⛏️checkPublicKey
        • ⛏️getAllAuctionNft
        • ⛏️transferWithRoyalty
        • ⛏️getPaymentAmounts
        • ⛏️transferPlaceBidAmount
      • 📌XY-Finance SDK
        • ⛏️getRecommendedTokens
        • ⛏️getQuote
        • ⛏️approveSwap
        • ⛏️executeSwap
      • 📌Wallet SDK
        • ⛏️createWallet
        • ⛏️getKeys
          • 🔗btc
          • 🔗evm
          • 🔗sol
          • 🔗near
        • ⛏️transfer
          • 🔗evm
          • 🔗sol
          • 🔗btc
          • 🔗near
        • ⛏️estimateFee
          • 🔗evm
          • 🔗sol
        • ⛏️txStatus
          • 🔗evm
          • 🔗sol
          • 🔗near
        • ⛏️getBalanceByMnemonic
          • 🔗evm
          • 🔗sol
          • 🔗btc
          • 🔗near
        • ⛏️chainBalances
          • 🔗evm
          • 🔗sol
        • ⛏️testChainBalances
        • ⛏️getTotalBalanceInUSDByAddresArray
          • 🔗evm
          • 🔗sol
        • ⛏️isAddress
          • 🔗evm
          • 🔗sol
        • ⛏️isPrivateKey
          • 🔗evm
          • 🔗sol
        • ⛏️isMnemonic
          • 🔗evm
      • 📌Explorer SDK
        • ⛏️getLatestTxsOfAddress
        • ⛏️getLatestTxs
        • ⛏️getTransferFromAddress
    • 🤖AI Guide
      • 📌Overview
      • 📌Face Recognition
        • ⛏️faceRecoRegisterUser
        • ⛏️faceRecoCompareFaceWithId
        • ⛏️faceRecoCompareFaceWithFace
      • 📌Check Toxicity
        • ⛏️checkToxicityImage
        • ⛏️checToxicityTest
      • 📌Caption and Tag Generator
        • ⛏️generateCaptionAndTagsFromImage
      • 📌Stable Diffusion
        • ⛏️stableDiffusionGenerateImage
      • 📌Image Similarity
        • ⛏️imageSimilarityTrain
        • ⛏️imageSimilarityTest
  • Template Library
    • 🛠️Get Started
    • 🕵️Technical Overview
    • 👷Smart Contracts
      • 📌ERC721
      • 📌ERC721A
      • 📌ERC1155
      • 📌Soulbound
      • 📌ERC6551
        • 📌Account
        • 📌Registry
      • 📌Fractional
      • 📌BiDirectionalPaymentChannel
      • 📌Swap
      • 📌ERC2981
      • 📌Flashloans
      • 📌Vault
      • 📌ERC884
      • 📌Play To Earn Contract
      • 📌Escrow
      • 📌UpgradableNFTContract
    • ⚖️Templates Library
      • 🥇Music Tracks/Album
      • 🥇Loyalty Point System
      • 🥇Real Estate Ownership
      • 🥇Artwork Authentication
      • 🥇Crowdfunding Platform
      • 🥇Social Tokens
      • 🥇Food and Recipe
      • 🥇Scientific Research
      • 🥇Educational Certification
      • 🥇Trading Cards
      • 🥇Digital Fashion
      • 🥇Bulk Digital Fashion
      • 🥇Governance Token
      • 🥇Content Licenses
      • 🥇Membership Cards
      • 🥇Bulk Membership Cards
      • 🥇Artifacts
      • 🥇Debt Instruments
      • 🥇Bulk Debt Instruments
      • 🥇Profit Sharing
      • 🥇Digital Souvenirs
      • 🥇Fractional Ownership of Intellectual Property
      • 🥇Digital Autographs and Signature
      • 🥇Bulk Digital Autographs and Signature
      • 🥇Film and Media Rights
      • 🥇Bulk Film and Media Rights
      • 🥇Sports Achievements
      • 🥇Bulk Sports Achievements
      • 🥇Digital Comics and Graphic Novels
      • 🥇Bulk Digital Comics and Graphic Novels
      • 🥇Proposals and Voting
      • 🥇Music Royalties
      • 🥇Gaming Royalties
      • 🥇Art Token Aggregation
      • 🥇Medical Token Aggregation
      • 🥇Charity Token Aggregation
      • 🥇Travel Token Aggregation
      • 🥇Time-Limited Access Tokens
      • 🥇Virtual Art Exhibition
  • KRYPTOKASE
    • 🛠️KryptoKase: Overview
    • 🕵️Technical Overview
    • 👷Functionalities
      • 📌Create Token
      • 📌Mint Token
      • 📌Transfer Tokens
      • 📌Airdrop Token
      • 📌Schedule Vesting
      • 📌Token Analytics
  • AERIE
    • 🏆Introduction
      • 📌Overview
      • 📌Use Cases
    • 📖User Guide
      • 📌Dashboard
      • 📌Managing Assets
        • 🔗Creating Assets
      • 📌Wallet Management
        • 🔗Overview
      • 📌Client Management
        • 🔗Adding Client
        • 🔗Managing Members
      • 📌Invoice Management
        • 🔗Managing Tickets
    • 📌Features
      • 🔗AI Image Generation
      • 🔗Portfolio Management
      • 🔗CDN Analytics
  • ROMULUS
    • Contracts
      • Dynamic NFT
      • Rental NFT
      • ERC 998
      • Fractional NFT
  • Layer 1
    • 🗡️DAG-EVM Hybrid Layer 1
    • ⛓️Setting up an RPC/RO Node
    • 👾Node Functions
      • 📍ftm.call()
      • 📍ftm.chainId()
      • 📍ftm.contract()
      • 📍ftm.currentEpoch()
      • 📍ftm.estimateGas()
      • 📍ftm.feeHistory()
      • 📍ftm.fillTransaction()
      • 📍ftm.filter()
      • 📍ftm.getAccounts()
      • 📍ftm.getBalance()
      • 📍ftm.getBlock()
      • 📍ftm.getBlockByHash()
      • 📍ftm.getBlockByNumber()
      • 📍ftm.getBlockNumber()
      • 📍ftm.getBlockTransactionCount()
      • 📍ftm.getBlockUncleCount()
      • 📍ftm.getCode()
      • 📍ftm.getCoinbase()
      • 📍ftm.getCompilers()
      • 📍ftm.getEvent()
      • 📍ftm.getGasPrice()
      • 📍ftm.getHashrate()
      • 📍ftm.getHeaderByHash()
      • 📍ftm.getHeaderByNumber()
      • 📍ftm.getHeads()
      • 📍ftm.getMaxPriorityFeePerGas()
      • 📍ftm.getPendingTransactions()
      • 📍ftm.getProof()
      • 📍ftm.getProtocolVersion()
      • 📍ftm.getStorageAt()
      • 📍ftm.getTransaction()
      • 📍ftm.getTransactionCount()
      • 📍ftm.getTransactionReceipt()
      • 📍ftm.icapNamereg()
      • 📍ftm.isSyncing()
      • 📍ftm.namereg()
      • 📍ftm.sendRawTransaction()
      • 📍ftm.signTransaction()
    • 🎫Admin Node Functions
      • 📍admin.addPeer()
      • 📍admin.addTrustedPeer()
      • 📍admin.exportChain()
      • 📍admin.getNodeInfo()
      • 📍admin.getPeers()
      • 📍admin.importChain()
      • 📍admin.removePeer()
      • 📍admin.removeTrustedPeer()
      • 📍admin.startHTTP()
      • 📍admin.startWS()
      • 📍admin.stopHTTP()
      • 📍admin.stopWS()
    • 📄Oracle Contracts
      • 📌Traffic Feed Contract
      • 📌Air Quality Feed Contract
      • 📌Football Player Feed Contract
      • 📌Stock Price Feed Contract
      • 📌Weather Feed Contract
      • 📌Crypto Price Feed Contract
      • 📌Random Number Contract
Powered by GitBook
On this page
  • Overview
  • Methods
  • verify
  • Parameters
  • Returns
  • challengeExit
  • Parameters
  • withdraw
  1. Template Library
  2. Smart Contracts

BiDirectionalPaymentChannel

Overview

The BiDirectionalPaymentChannel contract is designed to manage a two-way payment channel between two parties.

This type of channel allows these parties to conduct numerous transactions with each other off-chain, with the final settlement occurring on the Ethereum blockchain.

The primary advantage of this approach is the significant reduction in transaction fees and improved efficiency, as only two transactions (channel opening and closing) are recorded on the blockchain, regardless of the number of off-chain transactions conducted.

Methods

verify

Checks whether the provided signatures are valid for the given contract state (balances and nonce).

Parameters

Name
Type
Description

_signatures

bytes[2] memory

Array of cryptographic signatures from the users.

_contract

address

Address of this contract.

_signers

address[2] memory

Array of addresses of the signers.

_balances

uint[2] memory

Proposed balances of the users in the channel.

_nonce

uint

Nonce associated with the current state.

Returns

Name
Type
Description

-

bool

Returns true if the signatures are valid for the given state, otherwise false.

challengeExit

Allows a user to propose a new state (balances and nonce) for the channel, secured by their signatures.

Parameters

Name
Type
Description

_balances

uint[2] memory

Proposed balances of the users in the challenge.

_nonce

uint

Nonce associated with the challenge state.

_signatures

bytes[2] memory

Array of cryptographic signatures from the users for the challenge.

withdraw

Enables a user to withdraw their balance from the contract after the challenge period has expired.

Last updated 1 year ago

👷
📌