用testRPC发送的简单货币
我的问题可能很简单,但我找不到任何答案。 所以基本上我有简单的合同,从坚实的文件,添加到松露。 我使用松露3.59和testRPC 4.0.1用testRPC发送的简单货币
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);
}
}
这是合同,后来上运行testRPC标准的本地主机:8545。 然后,松露编译,迁移和部署,一切正常,我去松露控制台,现在,请解释我如何将硬币从一个帐户转移到另一个由testRPC默认生成的另一个帐户。
附加问题!如何检查testRPC上的帐户余额。
干杯!
我认为你是在混合两种不同的东西,从你如何问这个问题我假设你认为token
是ether
。事实上,乙醚在以太网方面的处理方式与用于促进交易和运营的主要机制不同。例如,对于令牌来说,你不能从稀薄空气中提炼以太。
TestRPC默认情况下启动时,每个帐户100 Ether(NOT TOKENS)!一旦您部署了智能合约(除非指定了不同的默认用户),松露会使用testrpc的帐户[0]作为主要部署者。
您运行truffle deploy
合同已启动。现在如果你看看你的合同,你有一个构造函数
function Coin() {
minter = msg.sender;
}
这使得帐户[0] testRPC中的第一个帐户minter。 minter可以通过帐户[0]从稀薄空气创建令牌,您可以将任意数量的令牌缓存到指定的任何地址。比方说,你想给一些“newbe”令牌帐户[1]
function mint(address receiver, uint amount) {
if (msg.sender != minter) return;
balances[receiver] += amount;
}
你叫薄荷函数指定的帐户[1],将有多少令牌你想给。在控制台中运行的功能,并对其做帐[1]有100个令牌
,如果你想知道有多少账户余额[1]中,您可以检查
mapping (address => uint) public balances;
这可以通过任何公开accssesed你可以很容易地运行 contractInsance.balances[account[1]];
,你会得到多少帐户[1]或任何地址。
给我一个评论,如果我错过了一个点或东西不清楚