以太坊中的简单令牌系统

时间:2018-01-31 22:41:46

标签: javascript node.js reactjs ethereum truffle

如何在以太坊区块链中添加特定数量的令牌?

我想我需要使用类似

的标记来创建一个契约数组
contract Token {
  uint[] public tokens;
}

我不想做任何花哨的事情。我只是想拥有,例如区块链中的10个令牌,可以在不同的地址之间转移。

因此,一个地址应该能够容纳多个令牌。

我曾尝试阅读合同,但与我想要完成的相比,它们看起来相当复杂。我只想创建令牌,能够将令牌分配给不同的所有者,并查找地址以查看地址所包含的令牌。

我知道这可能是一个对于stackoverflow问题来说太大的项目,但我想知道要使用哪些工具。我想我应该设置一个测试节点(例如Truffle Ganache),这样我就可以创建一些帐户(谁应该能够持有令牌),但是我怎样才能简单地创建令牌,将它们分配给帐户并查找哪些令牌每个帐户都有?

我可以使用web3.js连接到我的测试网络吗?我是否需要使用松露制作合同?是否有非常简单的松露项目,只发放令牌并可以查看令牌并将其分配给不同的用户?

1 个答案:

答案 0 :(得分:3)

对于这样的事情,您不需要创建自己的测试网络。相反,您可以使用Rinkeby或Rospten等公共测试网。您甚至可以谷歌了解如何获得这些测试网的免费测试以太网。

如果您只是想习惯编写令牌并运行它,我建议您使用Remix之类的东西在testnet上创建和部署令牌。

现在是令牌......

https://www.ethereum.org/token有一个很好的最小可行令牌示例,我将解释每个部分的作用。

contract MyToken {
    /* This creates an array with all balances */
    mapping (address => uint256) public balanceOf;

    /* Initializes contract with initial supply tokens to the creator of the contract */
    function MyToken(
        uint256 initialSupply
        ) {
        balanceOf[msg.sender] = initialSupply;              // Give the creator all initial tokens
    }

    /* Send coins */
    function transfer(address _to, uint256 _value) {
        require(balanceOf[msg.sender] >= _value);           // Check if the sender has enough
        require(balanceOf[_to] + _value >= balanceOf[_to]); // Check for overflows
        balanceOf[msg.sender] -= _value;                    // Subtract from the sender
        balanceOf[_to] += _value;                           // Add the same to the recipient
    }
}

此代码允许您使用您设置的初始电源初始化令牌,然后将该余额设置为您的地址。然后,您可以使用下面的转移方法将任意数量的令牌发送到另一个地址。

您可以通过Remix完成所有这些操作,而无需担心设置松露或web3等。

这是一个可以用来获得Rinkeby以太的水龙头:https://faucet.rinkeby.io/