5.7.1.3``账户

下述方法创建并与账户)表示进行交互。

  1. getDefaultAccount() => Promise<acc>

返回了一个在共识网络)上针对“缺省”账户)抽象处理过Reach账户)的Promise信息。 “缺省账户”的含义随着场景的不同而变化。在浏览器中,缺省账户会连接到一个如MetaMask或AlgoSigner的钱包。在运行node.js时,由于会连接到reach的标准私有开发测试链。此时缺省账户会连接到私有开发测试链上的一个水龙头地址。如果在当前的场景下没有合理的默认账户可以被访问,这个Promise将被拒绝,并报异常。

newAccountFromSecret(secret: string) => Promise<acc>

返回了一个在共识网络)上经过特定秘密信息处理的“缺省”账户)抽象的Reach账户)Promise信息。秘密信息编码细节是由共识网络)唯一指定的。

newAccountFromMnemonic(phrase: string) => Promise<acc>

返回了一个在共识网络)上经过特定助记词恢复的“缺省”账户)抽象的Reach账户)Promise信息。助记词编码细节是由共识网络)唯一指定的。

newTestAccount(balance) => Promise<acc>

返回一个新的Reach账户)抽象Promise信息,且该账户会持有共识网络)的网络代币)。这只能在私人测试场景中使用,因为它使用私人水龙头来发行网络代币)。

bigNumberify被透明地应用于balance参数。

createAccount() => Promise<acc>

返回一个在共识网络)上新的Reach账户)抽象Promise信息。且该账户网络代币)余额为0。

fundFromFaucet(account, balance) => Promise<void>

将给定的网络代币)余额添加到Reach账户)抽象中。这只能用于私人测试场景,因为它使用了一个私人水龙头来发行网络代币)。

bigNumberify会被透明地应用于balance参数。

connectAccount(networkAccount) => Promise<acc>

根据 networkAccount 提供的基于特定连接器)特性,为共识网络)现有的Reach账户)返回一个Promise。

// network => networkAccount type
ETH        => ethers.Wallet
ALGO       => {addr: string, sk: UInt8Array(64)}

acc.networkAccount => networkAccount

返回针对特定连接器)配置的Reach账户)抽象。返回一个Promise。

acc.getAddress() => string

按照字符串形式返回账户)的地址。字符串格式在不同的连接器)中有所差异。

acc.setDebugLabel(string) => acc

账户)可以设置一个区别性的标签,在调试日志中使用。如果没有提供标签,那么将使用账户)地址的前四位数字。

balanceOf(acc) => Promise<amount>

利用 acc参数查询账户)的网络代币)余额,并返回一个Promise类型数据。

transfer(from:acc, to:acc, amount, token) => Promise<void>

执行从fromtoamount数量代币的转移,其中账户)通常可以通过 connectAccount返回。如果未指定 代币 则默认转移当前共识网络代币);否则,它属于指定的非网络代币)。返回的Promise信息只有在代币转移完成后才会被解析。

bigNumberify被透明地应用于amount参数。

5.7.1.3.1``以太坊特定函数

当连接到一个基于EVM的共识网络时,标准库提供额外的功能。

acc.setGasLimit(n) => void

在程序的其余部分,修改来自给定账户的每笔交易的燃料限额。n必须是一个bigNumberify可以接受的值。

在基于EVM的共识网络中,Reach标准库会自动估计执行交易所需的燃料,即进行签名数据公示)。然而,有时这种估计过程是不准确的,特别是当Reach程序与远程对象)交互时。在这些情况下,有时指定一个特定的燃料限制是有用的。在以太坊上,在测试中使用5000000这样的燃料限制是很常见的。如果你这样做,你应该通知你的客户,他们应该注意发出的燃料费用。