我的问题可能微不足道,但我无法找到答案。 所以基本上我有简单的合同,从可靠性文档,添加到松露。 我使用松露3.59和testRPC 4.0.1
pragma solidity ^0.4.0;
contract Coin {
// The keyword "public" makes those variables
// readable from outside.
address public minter;
mapping (address => uint) public balances;
// Events allow light clients to react on
// changes efficiently.
event Sent(address from, address to, uint amount);
// This is the constructor whose code is
// run only when the contract is created.
function Coin() {
minter = msg.sender;
}
function mint(address receiver, uint amount) {
if (msg.sender != minter) return;
balances[receiver] += amount;
}
function send(address receiver, uint amount) {
if (balances[msg.sender] < amount) return;
balances[msg.sender] -= amount;
balances[receiver] += amount;
Sent(msg.sender, receiver, amount);
}
}
&#13;
这是合同,后来在标准localhost:8545上运行testRPC。 然后,松露编译,迁移和部署,一切正常,我去松露控制台,现在,请解释我如何将硬币从一个帐户转移到另一个帐户,默认情况下由testRPC生成。
其他问题!如何检查testRPC上的帐户余额。
干杯!
答案 0 :(得分:0)
我认为你混合了两个不同的东西,从你提出的问题我认为你认为token
是ether
。实际上,醚在以太坊中的处理方式不同,它是用于推动交易和运营的主要机制。你不能用稀薄的空气来稀释醚,例如令牌就是这种情况。
TestRPC默认启动时会为每个帐户提供100 Ether(NOT TOKENS)!一旦部署了智能合约(除非指定了不同的默认用户),松露使用testrpc的帐户[0]作为主要部署者。
您运行truffle deploy
并且合同已经开始。现在,如果你查看你的合同,你有一个构造函数
function Coin() {
minter = msg.sender;
}
这使得account [0]在testRPC中的第一个帐户成为minter。 minter可以通过帐户[0]从稀薄的空气中创建令牌,您可以将任意数量的令牌存入您指定的任何地址。假设您想给帐户[1]
提供一些“newbe”令牌function mint(address receiver, uint amount) {
if (msg.sender != minter) return;
balances[receiver] += amount;
}
你调用mint函数指定帐户[1]以及你想要提供多少令牌。在控制台中运行该功能,其完成帐户[1]有100个令牌
如果您想知道帐户[1]有多少余额可以查看
mapping (address => uint) public balances;
这可以由您轻松运行的任何人公开承认
contractInsance.balances[account[1]];
您将获得帐户[1]或任何地址的数量。
如果我错过了一点或者某些事情不明确,请给我评论