5.7.1.3``账户
下述方法创建并与账户)表示进行交互。
—
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>
执行从from
到to
的amount
数量代币的转移,其中账户)通常可以通过 connectAccount
返回。如果未指定 代币
则默认转移当前共识网络代币);否则,它属于指定的非网络代币)。返回的Promise信息只有在代币转移完成后才会被解析。
bigNumberify
被透明地应用于amount
参数。
5.7.1.3.1``以太坊特定函数
当连接到一个基于EVM的共识网络时,标准库提供额外的功能。
—
acc.setGasLimit(n) => void
在程序的其余部分,修改来自给定账户的每笔交易的燃料限额。n
必须是一个bigNumberify
可以接受的值。
在基于EVM的共识网络中,Reach标准库会自动估计执行交易所需的燃料,即进行签名数据公示)。然而,有时这种估计过程是不准确的,特别是当Reach程序与远程对象)交互时。在这些情况下,有时指定一个特定的燃料限制是有用的。在以太坊上,在测试中使用5000000
这样的燃料限制是很常见的。如果你这样做,你应该通知你的客户,他们应该注意发出的燃料费用。