MOAC实战 - 10. 计算合约地址

前言

合约部署完了,我们需要计算出合约的地址。在调用的时候需要,合约地址需要怎么计算呢?

我们直接上代码

正文

首先我们需要查询到合约的序列号。

我们先去查 hash, 如下图是一个部署成功合约的hash

我们需要的是上述的,部署地址,和下面的 Nonce(序号)

1
2
3
4
5
6
7
8
9
10
11
12
13
const rlp = require('rlp');

const address = 'xxx'
const noce = 65;

// 进行rlp编码
const encodedRlp = rlp.encode([address, nonce]);

// 进行sha3散列
const buf = util.sha3(encodedRlp);

// 取buffer第12个字节后面的部分
const contractAddress = '0x' + buf.slice(12).toString('hex');

rlp 包可以去npm下载。这里下载的版本是 ^2.2.6 基本上下载最新版本也不会有问题。

得到的 contractAddress 即合约地址。

我们可以去查看下:

在墨客浏览器上,合约地址和普通地址是有区别的。

我们知道了合约地址,接下来就可以去调用合约里面的一些方法。

  • 版权声明: 本博客所有文章,未经许可,任何单位及个人不得做营利性使用!转载请标明出处!如有侵权请联系作者。
  • Copyrights © 2015-2020 翟天野

请我喝杯咖啡吧~