LogoLogo
Blockchain ExplorerWebsiteAirdrop
  • Welcome to Metacces
  • Overview
    • Mission & Vision
    • Market Analysis
    • Story
  • THE ECOSYSTEM
    • Unique Oli
      • Who is Oli
      • AI Integration
      • Blockchain Integration
    • Blacxes
      • What is Blacxes
      • Utilites
      • Unique DNA
      • DAO Governance
      • Technology
      • Distribution
      • Swap
    • Access Journey
      • Overview
      • Basic level
      • Intermediate level
      • Final level
    • Main App
      • Overview
      • Account
      • Assets
      • Use Acces Journey
    • Blockchain Layer 1
    • Acces Coin
      • Coin Utility
      • Smart-Contracts
      • Tokenomecs
      • Metacces Listings Roadmap
  • DEVELOPERS
    • Public Endpoints
    • MetaMask
    • Node Setup
    • JSON RPC Server
    • Connect to RPC
    • API Methods
    • Client Libraries
    • Smart Contracts
      • Deploy
      • Interact
      • Transfer
      • Fixed Cap Asset
      • Variable Cap Asset
  • MISC
    • Roadmap
      • Main Roadmap
        • ✔️2022
        • ✔️2023
        • 🔛2024
        • 2025
      • 🪙Coin Roadmap
        • 2022
        • 2023
        • 2024
    • Meet The Team
    • Be a partner With Metacces
    • Pitch Deck⁩
    • Social Links
      • Website
      • Telegram
      • X.Twitter
      • Discord
      • Youtube
      • Instagram
      • Facebook
Powered by GitBook
On this page

Was this helpful?

  1. DEVELOPERS

Client Libraries

PreviousAPI MethodsNextSmart Contracts

Last updated 8 months ago

Was this helpful?

Metacces uses Geth which supports common smart contract and dapp development, deployment, and operational use cases, using tools such as Hardhat, web3.js and web3js-quorum. The client supports common JSON-RPC API methods, for example eth, net, web3, debug, and miner.

Prerequisites​

  • Node.js version 15 or later.

  • The web3 library must be installed in your project.

web3

The web3.js library is the most widely used for developing applications.

Install web3 in your project

npm install web3

Initialize the web3 client

Initialize your client where:

  • https://oli.accesscan.io is the JSON-RPC HTTP endpoint of your Metacces node.

  • HTTP example

Example connection

const Web3 = require("web3");

const web3 = new Web3("http://oli.accesscan.io");

WS example

Example connection

const Web3 = require("web3");

const web3 = new Web3("http://ws.accesscan.io");

To deploy a private contract, you need the contract binary. You can use Solidity to get the contract binary.

Copy

myContract.deploy({
   data: '0x12345...',
   arguments: [123, 'My String']
})
.send({
   from: '0x1234567890123456789012345678901234567891',
   gas: 1500000,
   gasPrice: '30000000000000'
}, function(error, transactionHash){ ... })
.on('error', function(error){ ... })
.on('transactionHash', function(transactionHash){ ... })
.on('receipt', function(receipt){
 console.log(receipt.contractAddress) // contains the new contract address
})
.on('confirmation', function(confirmationNumber, receipt){ ... })
.then(function(newContractInstance){
   console.log(newContractInstance.options.address) // instance with the new contract address
});

Alternatively, you can also deploy a contract using eth.sendSignedTransaction

Copy

const rawTxOptions = {
 nonce: "0x00",
 from: account.address,
 to: null, //public tx
 value: "0x00",
 data: "0x" + contractBin + contractConstructorInit,
 gasPrice: "0x0", //ETH per unit of gas
 gasLimit: "0x24A22", //max number of gas units the tx is allowed to use
};
console.log("Creating transaction...");
const tx = new Tx(rawTxOptions);
console.log("Signing transaction...");
tx.sign(Buffer.from(account.privateKey.substring(2), "hex"));
console.log("Sending transaction...");
var serializedTx = tx.serialize();
const pTx = await web3.eth.sendSignedTransaction(
 "0x" + serializedTx.toString("hex").toString("hex"),
);
console.log("tx transactionHash: " + pTx.transactionHash);
console.log("tx contractAddress: " + pTx.contractAddress);
return pTx;

For more information about the web3 methods, see the web3 reference documentation.

Deploying a contract

web3 methods

​
​
​
​
​