數字藏品開發(上線版)丨數字藏品系統開發(NFT數字藏品原始碼)
智慧合約是執行在區塊鏈公鏈上的一種程式碼,該程式碼由Solidity編寫,並透過區塊鏈的智慧合約虛擬機器來執行,以達到對區塊鏈程式設計的目標。可以將區塊鏈公聯理解為作業系統,Solidity是編寫該作業系統應用程式的程式語言,智慧合約虛擬機器則是程式語言編譯之後的程式碼執行環境。
var fs=require('fs');
const fetch=require('node-fetch')
var Web3=require('web3');
const ethers=require('ethers');
const infuraKey=fs.readFileSync("../.infuraKey").toString().trim();
var ethRpcUrl=``+infuraKey
var web3=new Web3(ethRpcUrl);
abi=[
{
"inputs":[],
"name":"getValue",
"outputs":[
{
"internalType":"uint256",
"name":"",
"type":"uint256"
}
],
"stateMutability":"view",
"type":"function"
},
{
"inputs":[
{
"internalType":"uint256",
"name":"_value",
"type":"uint256"
}
],
"name":"setValue",
"outputs":[],
"stateMutability":"nonpayable",
"type":"function"
}
]
contractAddress="合約地址"
pk="錢包私鑰"
userAccount="私鑰對應的賬戶地址"
main()
.then(()=>process.exit(0))
.catch(error=>{
console.error(error);
process.exit(1);
});
async function main(){
await setValue();
await getValue();
}
async function getNonce(account){
let nonce=await web3.eth.getTransactionCount(account);
console.log('nonce=',nonce)
return nonce;
}
async function getValue(){
//對方法進行sha3編碼,然後取前四個位元組
//var methodSign=await web3.utils.keccak256("getValue()").substr(0,10);
var methodSign=await web3.utils.keccak256("getValue()").substr(0,10);
//console.log(methodSign)
data=methodSign;
//如果有入參,對入參進行編碼
//encodeParams=web3.eth.abi.encodeParameters(['uint256'],[456]);
//拼接方法名和入參作為jsonrpc的params中的data欄位的資料
//data+=encodeParams.substr(2,encodeParams.length)
console.log(data)
//構造post請求的body引數
var input={"jsonrpc":"2.0","id":3,"method":"eth_call","params":[{"to":contractAddress,"data":data},"latest"]}
//http可以一次多個請求
var inputs=[input,input]
//傳送post請求
const resp=await fetch(ethRpcUrl,{
method:"POST",
body:JSON.stringify(inputs),
headers:{
"Content-Type":"application/json"
}
});
var rpcResult=await resp.json();
console.log(rpcResult[0].result)
//用ethers包中的方法解析返回結果
var ethersResult=await ethers.utils.defaultAbiCoder.decode(['uint256'],rpcResult[0].result)
//用web3包中的方法解析防護結果
var decodeResult=await web3.eth.abi.decodeParameters(['uint256'],rpcResult[0].result);
console.log("vaule is"+ethersResult)
console.log("value is"+decodeResult[0])
}
async function setValue(){
//這裡借用web3的方法對要傳送的內容進行簽名
var contract=new web3.eth.Contract(abi,contractAddress);
value=456;
var encodeABI=contract.methods.setValue(value).encodeABI();
var signResult=await web3.eth.accounts.signTransaction({
gas:3000000,
to:contractAddress,
data:encodeABI,
nonce:await getNonce(userAccount)
},pk);
console.log(signResult);
rawTransaction=signResult.rawTransaction
//構造post請求的body引數
var input={"jsonrpc":"2.0","id":3,"method":"eth_sendRawTransaction","params":[rawTransaction]}
console.log(input)
var inputs=[input]
//傳送post請求
const resp=await fetch(ethRpcUrl,{
method:"POST",
body:JSON.stringify(inputs),
headers:{
"Content-Type":"application/json"
}
});
var rpcResult=await resp.json();
console.log(rpcResult)
}
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69956839/viewspace-2937097/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- NFT數字藏品開發需求丨NFT數字藏品系統開發(開發原理)丨NFT數字藏品原始碼功能原始碼
- 數字藏品系統開發(數字藏品APP原始碼)APP原始碼
- 數字藏品系統開發(開發說明)丨NFT數字藏品系統開發(開發案例)及原始碼功能原始碼
- NFT數字藏品開發功能丨NFT數字藏品系統開發(開發流程及方案)
- nft 數字藏品開發方案丨nft 數字藏品系統開發(功能及詳情)
- NFT數字藏品系統開發(開發案例)丨數字藏品系統開發(詳細及規則)丨原始碼部署原始碼
- NFT數字藏品系統開發
- NFT(數字藏品)系統開發案例詳情丨NFT數字藏品開發原始碼說明原始碼
- NFT數字藏品系統開發介紹
- 數字藏品開發現成版,數字藏品系統開發(邏輯原理)
- 探元NFT數藏/數字藏品/NFT元宇宙藏品系統技術開發/程式碼示例元宇宙
- AI繪畫數字藏品開發原理丨AI繪畫數字藏品系統開發(案例開發原始碼)AI原始碼
- NFT數字藏品鑄造系統開發(開發方案)丨NFT數字藏品鑄造系統開發(開發原始碼)原始碼
- 數字藏品APP系統開發|數字藏品系統介紹APP
- iBox數字藏品系統如何開發?(iBox數字藏品系統開發所需技術支援)
- NFT藝術數字藏品系統模式開發丨NFT丨dapp丨defi模式APP
- NFT元宇宙開發丨Doodles數字藏品系統開發技術丨Doodles丨NFT元宇宙
- 數字藏品平臺開發數字藏品系統開發技術架構分析架構
- NFT數字藏品系統的發展方案
- NFT數字藏品開發丨NFT盲盒數藏系統技術開發丨DAPP丨Defi丨NFTAPP
- 區塊鏈數字藏品開發原理丨區塊鏈數字藏品系統開發(技術詳細)及原始碼案例區塊鏈原始碼
- NFT數藏數字藏品系統開發專案邏輯分析方案(原理分析)
- NFT蝸客數藏開發丨蝸客數藏系統開發技術丨NFT數字藏品詳情
- 數藏系統開發數字藏品APPAPP
- 如何開發自己的數字藏品系統?
- NFT數字藏品系統開發原始碼部署丨NFT鏈遊元宇宙遊戲系統開發原始碼搭建原始碼元宇宙遊戲
- 聯盟鏈NFT數字藏品系統開發技術(現成原始碼)原始碼
- NFT數字藏品:神奇數碼藏品
- NFT數字收藏品交易所開發丨NFT數字收藏品平臺技術開發
- NFT元宇宙數字藏品系統技術開發設計元宇宙
- 數字藏品nft系統開發平臺搭建原始碼原始碼
- 數字藏品系統開發搭建步驟(需求分析)
- 數字藏品NFT系統設計開發模型丨NFT丨Defi丨DAPP模型APP
- NFT數字藏品系統開發功能技術需求方案丨AI繪畫數藏模式系統開發對接功能AI模式
- NFT數字藏品鏈上鑄造系統開發(開發案例)及原始碼功能原始碼
- OpenSea交易NFT數字藏品系統合約開發技術詳情
- NFT數字藏品Opensae交易平臺系統開發(方案及詳情)丨原始碼版原始碼
- 探元數藏NFT開發丨藏品原始碼丨探元數藏系統設計開發丨NFT技術原始碼