您当前的位置: 首页 >  区块链

111辄

暂无认证

  • 2浏览

    0关注

    91博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

区块链知识(一) | 实例化合约Contract

111辄 发布时间:2021-10-30 20:17:53 ,浏览量:2

初学记录 · 欢迎交流 区块链DApp从零开始学 (一) | DApp抓包 区块链DApp从零开始学 (二) | 超详细 DApp创建 | 发行代币token |宠物领养

区块链知识 (一) | 实例化合约Contract

区块链报错1 | npm run dev 无法解析json格式 | npm ERR JSON.parse Failed to parse json 区块链报错2 | 区块链npm run dev失败lite-server 区块链报错3 | truffle unbox 报错 | downloading失败 | unbox failed 区块链报错4 | 区块链玄学 | truffle unbox下载downloading步骤失败 区块链报错5 | Contract has not been deployed to detect network (network/artifact mismatch) 区块链报错6 | Failed to load resource: the server responded with a status of 404 (Not Found)

想获得合约实例,首先需要部署 (deploy/migrate)网络, 可参考 该文章的环境配置的truffle部分

获得合约实例 myContract有两种方法,即通过合约名称实例化智能合约,或通过ABI+ address进行实力化

方法一
MathContract2.deployed().then(function(instance){var myContract = instance})

通过合约实例可调用合约中的函数:

myContract.mulAtoB(3,4) # 12
方法二
var myContract = new web3.eth.contract('abi','contractAddress')

其中,abi为: 在这里插入图片描述

abi要通过json压缩转为这种行的形式: 在这里插入图片描述

contractAddress为: 在这里插入图片描述 一个实际例子,

var myContract = new web3.eth.Contract([{"constant":true,"inputs":[{"name":"a","type":"uint256"},{"name":"b","type":"uint256"}],"name":"mulAtoB","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"}],'0x1b0127F2d5826Bd462899845A25Bda35b0132648')

ps: ’contractAdress‘以字符串形式输入

通过合约实例调用合约函数:

myContract.methods.mulAtoB(3,4).call() # 返回12

ps: 如果不加call()函数,返回的还将是json格式 call()函数表示不对其值进行改变,仅读;send()函数改变其状态,可写

关注
打赏
1648114069
查看更多评论
立即登录/注册

微信扫码登录

0.0344s