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

初学记录 · 欢迎交流
区块链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()函数改变其状态,可写

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值