发行token

工具环境

配置

.
├── contracts
│   └── Migrations.sol
├── migrations
│   └── 1_initial_migration.js
├── test
└── truffle-config.js

结束

现在我们的token发行完成,你可以通过 MetaMask 转账或者查询.

代码我会放在github

最后的目录

.
├── README.md
├── contracts
│   ├── GSN
│   │   ├── Context.sol
│   │   ├── GSNRecipient.sol
│   │   ├── GSNRecipientERC20Fee.sol
│   │   ├── GSNRecipientSignature.sol
│   │   ├── IRelayHub.sol
│   │   ├── IRelayRecipient.sol
│   │   └── README.adoc
│   ├── Migrations.sol
│   ├── MyToken.sol
│   ├── access
│   │   ├── AccessControl.sol
│   │   ├── Ownable.sol
│   │   └── README.adoc
│   ├── cryptography
│   │   ├── ECDSA.sol
│   │   ├── MerkleProof.sol
│   │   └── README.adoc
│   ├── drafts
│   │   └── TokenVesting.sol
│   ├── introspection
│   │   ├── ERC165.sol
│   │   ├── ERC165Checker.sol
│   │   ├── ERC1820Implementer.sol
│   │   ├── IERC165.sol
│   │   ├── IERC1820Implementer.sol
│   │   ├── IERC1820Registry.sol
│   │   └── README.adoc
│   ├── math
│   │   ├── Math.sol
│   │   ├── README.adoc
│   │   ├── SafeMath.sol
│   │   └── SignedSafeMath.sol
│   ├── mocks
│   │   ├── AccessControlMock.sol
│   │   ├── AddressImpl.sol
│   │   ├── ArraysImpl.sol
│   │   ├── ConditionalEscrowMock.sol
│   │   ├── ContextMock.sol
│   │   ├── CountersImpl.sol
│   │   ├── Create2Impl.sol
│   │   ├── ECDSAMock.sol
│   │   ├── ERC165
│   │   │   ├── ERC165InterfacesSupported.sol
│   │   │   └── ERC165NotSupported.sol
│   │   ├── ERC165CheckerMock.sol
│   │   ├── ERC165Mock.sol
│   │   ├── ERC1820ImplementerMock.sol
│   │   ├── ERC20BurnableMock.sol
│   │   ├── ERC20CappedMock.sol
│   │   ├── ERC20DecimalsMock.sol
│   │   ├── ERC20Mock.sol
│   │   ├── ERC20PausableMock.sol
│   │   ├── ERC20SnapshotMock.sol
│   │   ├── ERC721BurnableMock.sol
│   │   ├── ERC721GSNRecipientMock.sol
│   │   ├── ERC721Mock.sol
│   │   ├── ERC721PausableMock.sol
│   │   ├── ERC721ReceiverMock.sol
│   │   ├── ERC777Mock.sol
│   │   ├── ERC777SenderRecipientMock.sol
│   │   ├── EnumerableMapMock.sol
│   │   ├── EnumerableSetMock.sol
│   │   ├── EtherReceiverMock.sol
│   │   ├── GSNRecipientERC20FeeMock.sol
│   │   ├── GSNRecipientMock.sol
│   │   ├── GSNRecipientSignatureMock.sol
│   │   ├── MathMock.sol
│   │   ├── MerkleProofWrapper.sol
│   │   ├── OwnableMock.sol
│   │   ├── PausableMock.sol
│   │   ├── PullPaymentMock.sol
│   │   ├── ReentrancyAttack.sol
│   │   ├── ReentrancyMock.sol
│   │   ├── SafeCastMock.sol
│   │   ├── SafeERC20Helper.sol
│   │   ├── SafeMathMock.sol
│   │   ├── SignedSafeMathMock.sol
│   │   └── StringsMock.sol
│   ├── payment
│   │   ├── PaymentSplitter.sol
│   │   ├── PullPayment.sol
│   │   ├── README.adoc
│   │   └── escrow
│   │       ├── ConditionalEscrow.sol
│   │       ├── Escrow.sol
│   │       └── RefundEscrow.sol
│   ├── presets
│   │   ├── ERC20PresetMinterPauser.sol
│   │   ├── ERC721PresetMinterPauserAutoId.sol
│   │   └── README.adoc
│   ├── token
│   │   ├── ERC20
│   │   │   ├── ERC20.sol
│   │   │   ├── ERC20Burnable.sol
│   │   │   ├── ERC20Capped.sol
│   │   │   ├── ERC20Pausable.sol
│   │   │   ├── ERC20Snapshot.sol
│   │   │   ├── IERC20.sol
│   │   │   ├── README.adoc
│   │   │   ├── SafeERC20.sol
│   │   │   └── TokenTimelock.sol
│   │   ├── ERC721
│   │   │   ├── ERC721.sol
│   │   │   ├── ERC721Burnable.sol
│   │   │   ├── ERC721Holder.sol
│   │   │   ├── ERC721Pausable.sol
│   │   │   ├── IERC721.sol
│   │   │   ├── IERC721Enumerable.sol
│   │   │   ├── IERC721Metadata.sol
│   │   │   ├── IERC721Receiver.sol
│   │   │   └── README.adoc
│   │   └── ERC777
│   │       ├── ERC777.sol
│   │       ├── IERC777.sol
│   │       ├── IERC777Recipient.sol
│   │       ├── IERC777Sender.sol
│   │       └── README.adoc
│   └── utils
│       ├── Address.sol
│       ├── Arrays.sol
│       ├── Counters.sol
│       ├── Create2.sol
│       ├── EnumerableMap.sol
│       ├── EnumerableSet.sol
│       ├── Pausable.sol
│       ├── README.adoc
│       ├── ReentrancyGuard.sol
│       ├── SafeCast.sol
│       └── Strings.sol
├── migrations
│   ├── 1_initial_migration.js
│   └── 2_initial_migration.js
├── test
└── truffle-config.js