/TokenLib

TokenLib - Reference Implemention for Ethereum Tokens

Primary LanguageShell

Intended Use

  • Clone the repo
  • Build your token
    • Remix
pragma solidity ^0.4.24;

import "github.com/nic0lae/TokenLib/DefaultImplementations/ERC233Token.sol";

contract MyToken is ERC621Token("NodeU Token", "NUT", 0, 1400) {
    // ...
}
  • Be confident this includes
    • latest standards in language/compilers
    • best coding practices, clean and readable
    • security

Why

Spec, Credits and Inspirations

Implemented Tokens Specs

  • ERC-20 - Token implementation
  • ERC-233 - Token security focus (aka noob proof)
  • ERC-621 - Token with adjustable total supply

Main Dox

Current EIP List @ 2018.Aug.26

eip-1		Changes EIP-1 wording to focus on technicals not community sentiment. (…	21 days ago		// What is an `Ethereum Improvement Proposal`
eip-2		Add pages for each EIP type, improve listing tables with links				5 months ago	// Homestead. Fix for: If block.number >= HOMESTEAD_FORK_BLKNUM
eip-3		eip-3.md --> Status: Deferred (#971)										5 months ago	// Add a new opcode CALLDEPTH
eip-4		Add checking for errors in frontmatter										5 months ago	// Describes a classification scheme for EIPs
eip-5		Add pages for each EIP type, improve listing tables with links				5 months ago	// Makes it possible to call functions that return strings and other dynamically-sized arrays
eip-6		Add pages for each EIP type, improve listing tables with links				5 months ago	// Change the name of the SUICIDE opcode in Ethereum programming languages with SELFDESTRUCT
eip-7		Add pages for each EIP type, improve listing tables with links				5 months ago	// Hard Fork. Homestead
eip-8		Add checking for errors in frontmatter										5 months ago	// Introduces new forward-compatibility requirements for implementations of the devp2p Wire Protocol, the RLPx Discovery Protocol and the RLPx TCP Transport Protocol.
eip-20		Fix typo, releated->related (#1134)											3 months ago	// ERC-20. Standard interface for tokens
eip-55		Move EIP 55 from Accepted to Final											4 months ago	// Mixed-case checksum address encoding
eip-86		Add EIP validation check, and fix issues identified by it. (#954)			5 months ago	// "Abstracting out" signature verification and nonce checking, allowing users to create "account contracts" that perform any desired signature/nonce checks
eip-100		Add pages for each EIP type, improve listing tables with links				5 months ago	// Block calculations
eip-101		EIP 101 is draft, not active												5 months ago	// CONSENSUS. BLAH-BLAH
eip-107		Move EIP assets to assets folder (#977)										5 months ago	// Html popup for `eth_sendTransaction` without the need to enable CORS 
eip-137		Lowercase all frontmatter keys												5 months ago	// ERC-137. Ethereum Name Service, protocol and ABI definition
eip-140		Fix email formatting in EIP 140												5 months ago	// Add the REVERT instruction to stop execution and revert state changes
eip-141		Add pages for each EIP type, improve listing tables with links				5 months ago	// Opcode 0xfe is the INVALID instruction. It can be used to abort the execution (i.e. duplicates as an ABORT instruction).
eip-145		Move EIP 145 to Accepted instead of Final.									4 months ago	// Implementing SHL and SHR using arithmetics cost each 35 gas, while the proposed instructions take 3 gas.
eip-150		Add pages for each EIP type, improve listing tables with links				5 months ago	// Mitigate attacks that degrade network performance via transaction spam
eip-155		Add pages for each EIP type, improve listing tables with links				5 months ago	// Provide a way to send transactions that work on Ethereum without working on ETC or the Morden testnet
eip-158		Add checking for errors in frontmatter										5 months ago	// Removes a large number of empty accounts that have been put in the state at very low cost due to flaws in earlier versions of the Ethereum protocol
eip-160		Add pages for each EIP type, improve listing tables with links				5 months ago	// Hard fork. Spurious Dragon
eip-161		Add pages for each EIP type, improve listing tables with links				5 months ago	// Hard fork. Spurious Dragon
eip-162		Add EIP validation check, and fix issues identified by it. (#954)			5 months ago	// ERC-162. Describes the implementation of a registrar contract to govern the allocation of names in the Ethereum Name Service (ENS)
eip-165		Fix typo in EIP-165, stadardizes->standardizes (#1168)						2 months ago	// ERC-165. Standard method to publish and detect what interfaces a smart contract implements
eip-170		Add pages for each EIP type, improve listing tables with links				5 months ago	// Hard fork. Spurious Dragon
eip-173		Automatically merged updates to draft EIP(s) 173							3 months ago	// ERC-173. Standard interface for ownership of contracts
eip-181		Add pages for each EIP type, improve listing tables with links				5 months ago	// ERC-181. Specifies a TLD, registrar, and resolver interface for reverse resolution of Ethereum addresses using ENS
eip-190		Update eip-190.md (#1025)													4 months ago	// ERC-190. Specification for Ethereum smart contract packages
eip-191		[WIP] Add eth_signTypedData as a standard for machine-verifiable and …		3 months ago	// ERC-191. Specification how to handle signed data in Ethereum contracts
eip-196		Add pages for each EIP type, improve listing tables with links				5 months ago	// Precompiled contracts for elliptic curve operations are required in order to perform zkSNARK verification within the block gas limit.
eip-197		Merge pull request #913 from pirapira/fix-field								5 months ago	// Precompiled contracts for elliptic curve pairing operations are required in order to perform zkSNARK verification within the block gas limit.
eip-198		Update eip-609.md to include link to EIP-198 (#1012)						4 months ago	// At address 0x00......05, add a precompile that allows for efficient RSA verification inside of the EVM, as well as other forms of number theory-based cryptography
eip-210		Update eip-210.md (#1022)													4 months ago	// Stores blockhashes in the state
eip-211		Fix depends field on eip-211												5 months ago	// Mechanism to allow returning arbitrary-length data inside the EVM
eip-214		Add pages for each EIP type, improve listing tables with links				5 months ago	// Adds a new opcode `STATICCALL` that can be used to call another contract (or itself) while disallowing any modifications to the state during the call
eip-234		Automatically merged updates to draft EIP(s) 234							a month ago		// Add an option to JSON-RPC filter that allows specifying the block hash that should be included in the results
eip-606		Update EIP 1 with header format changes, fix a few other EIP header i…		5 months ago	// Specifies the changes included in the hard fork named Homestead.
eip-607		Update EIP 1 with header format changes, fix a few other EIP header i…		5 months ago	// Specifies the changes included in the hard fork named Spurious Dragon
eip-608		Update EIP 1 with header format changes, fix a few other EIP header i…		5 months ago	// Specifies the changes included in the hard fork named Tangerine Whistle (EIP 150)
eip-609		Update eip-609.md to include link to EIP-198 (#1012)						4 months ago	// Specifies the changes included in the hard fork named Byzantium
eip-615		Automatically merged updates to draft EIP(s) 615							5 months ago	// New EVM opcodes and conditions on EVM code to support subroutines and static jumps
eip-616		Fix email address on eip-616.md (#984)										5 months ago	// Provide Single Instruction Multiple Data types and operations for the Ethereum Virtual Machine
eip-627		EIP: Whisper packet codes spec (#627)										5 months ago	// Describes the format of Whisper messages within the ÐΞVp2p Wire Protocol
eip-649		eip-649: update to correct header format (#1233)							a month ago		// Delay the difficulty bomb (aka "ice age") for one and a half year and to reduce the block rewards with the Byzantium fork, the first part of the Metropolis fork
eip-658		Remove reference to EIP98 from EIP658										5 months ago	// Replaces the intermediate state root field of the receipt with a status code indicating if the top-level call succeeded or failed
eip-665		EIP 665 updates (#983)														4 months ago	// Performant and cheap verification of Ed25519 cryptographic signatures in smart contracts in general by adding a precompiled contract for Ed25519 signature verification to the EVM
eip-681		Update to new ABI spec URL (#978)											5 months ago	// ERC-681. Standard way of representing various transactions, especially payment requests in Ethers and ERC #20 tokens as URLs
eip-689		Update eip-689.md															3 months ago	// Make contract creation fail on an account with nonempty code or non-zero nonce.
eip-695		Fix links to authors in eip-695.md (#991)									5 months ago	// Include eth_chainId method in eth_-namespaced JSON-RPC methods
eip-706		Add pages for each EIP type, improve listing tables with links				5 months ago	// DEVp2p snappy compression
eip-712		Automatically merged updates to draft EIP(s) 712							a month ago		// Ethereum typed structured data hashing and signing
eip-721		Move EIP 721 to Final (#1170)												2 months ago	// ERC-721. Standard interface for non-fungible tokens, also known as deeds
eip-725		ERC Proxy Identity draft (#1036)											4 months ago	// ERC-725. Proxy contract for key management and execution, to establish a Blockchain identity
eip-758		Automatically merged updates to draft EIP(s) 758							2 months ago	// ERC-758. Provide a way for external callers to be notified of completed transactions, and access the return data of functions executed when a transaction is mined
eip-777		Automatically merged updates to draft EIP(s) 777							14 days ago		// ERC-777. Standard interfaces and behaviors for token contracts
eip-778		EIP-778: simplify ENR for v4 compatibility (#1049)							4 months ago	// Defines Ethereum Node Records (ENR), an open format for p2p connectivity information
eip-779		EIP 779 is meta, not info													5 months ago	// Documents the changes included in the hard fork named "DAO Fork"
eip-801		Add pages for each EIP type, improve listing tables with links				5 months ago	// ERC-801. Standard interface for canary contracts
eip-820		Automatically merged updates to draft EIP(s) 820							14 days ago		// ERC-820. Defines a universal registry smart contract where any address can register which interface it supports and which smart contract is responsible for its implementation. Backwards compatibility with ERC-165.
eip-823		Automatically merged updates to draft EIP(s) 823							2 months ago	// ERC-823. Standard for token contracts, providing token exchange services thereby facilitating cross token payments
eip-831		Automatically merged updates to draft EIP(s) 831							4 months ago	// ERC-831. Standard way of creating Ethereum URIs for various use-cases
eip-858		Move EIP assets to assets folder (#977)										5 months ago	// Reduce the block reward to 1 ETH
eip-867		Update eip-867.md (#1024)													4 months ago	// Provide a standardized format for Ethereum Recovery Proposals (ERPs), which relate to recovery of certain classes of lost funds
eip-868		EIP-868: add sequence number to ping and pong								5 months ago	// Defines an extension to Node Discovery Protocol v4 to enable authoritative resolution of Ethereum Node Records (ENR)
eip-884		Update eip-884.md															3 months ago	// ERC-884. ERC-20 Token - Delaware General Corporations Law (DGCL) compatible share token
eip-897		ERC DelegateProxy (#897)													4 months ago	// ERC-897. Proxy contracts
eip-900		Retcon: EIP 900 is still draft, not final.									5 months ago	// ERC-900. Standard describes a common staking interface allowing for easy to use staking systems
eip-902		Token Validation (#902)														4 months ago	// ERC-902. A protocol for services providing token ownership and transfer validation.
eip-908		Automatically merged updates to draft EIP(s) 908							3 months ago	// ERC-908. Proposal for a reward for clients
eip-918		Automatically merged updates to draft EIP(s) 918							3 months ago	// ERC-918. Standardized Mineable Token that uses a Proof of Work algorithm for distribution
eip-926		Fix capitalisation of "standards track" (#1293)								24 days ago		// ERC-926. Specifies a registry for address metadata, permitting both contracts and external accounts to supply metadata about themselves to onchain and offchain callers
eip-927		Fix capitalisation of "standards track" (#1293)								24 days ago		// ERC-927. Specifies a generic authorisation mechanism, which can be used to implement a variety of authorisation patterns, replacing approvals in ERC20, operators in ERC777
eip-969		Automatically merged updates to draft EIP(s) 969							4 months ago	// Modifies ethash in order to break ASIC miners specialized for the current ethash mining algorithm
eip-998		Automatically merged updates to draft EIP(s) 998							3 days ago		// ERC-998. Extension of the ERC721 standard to enable ERC721 tokens to own other ERC721 tokens and ERC20 tokens. An extension of the ERC20 and ERC223 standards to enable ERC20 and ERC223 tokens to be owned by ERC721 tokens.
eip-999		Restore Contract Code at 0x863DF6BFa4469f3ead0bE8f9F2AAE51c91A907b4 (#…		4 months ago	// Restore the contract code of the WalletLibrary
eip-1010	EIP 1010: Uniformity Between Two Addresses (#1010)							4 months ago	// Improve the uniformity of ether distribution between wallet address 0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B and wallet address 0x15E55EF43efA8348dDaeAa455F16C43B64917e3c
eip-1011	Automatically merged updates to draft EIP(s) 1011							3 months ago	// Move main-net from Proof of Work (PoW) to Proof of Stake (PoS)
eip-1013	Add EIPs to eip-1013.md (#1219)												29 days ago		// Changes included in the Constantinople Ethereum hardfork
eip-1014	Skinny CREATE2 (#1014)														2 months ago	// Adds a new opcode at 0xf5, which takes 4 stack arguments: endowment, memory_start, memory_length, salt. Identical to CREATE, except using sha3(msg.sender ++ salt ++ init_code)[12:] instead of the usual sender-and-nonce-hash as the address where the contract is initialized at.
eip-1015	Variable issuance by on chain contract (#1015)								4 months ago	// Changes the block reward step
eip-1046	ERC20 metadata extension (#1046)											4 months ago	// Make ERC20 include ERC721 token metadata
eip-1047	Token metadata json schema (#1047)											4 months ago	// Add interface for token metadata
eip-1051	Arithmetic overflow detection for the EVM (#1051)							4 months ago	// Overflow checking for EVM
eip-1052	Automatically merged updates to draft EIP(s) 1052							a month ago		// Specifies a new opcode, which returns the keccak256 hash of a contract's code
eip-1057	Rename eip-1057.md to EIPS/eip-1057.md										3 months ago 	// Proposal for an alternate proof-of-work algorithm - “ProgPoW”
eip-1062	Formalize IPFS hash into ENS(Ethereum Name Service) resolver (#1062)		4 months ago	// ERC-1062. Specify the mapping protocol between resources stored on IPFS and ENS(Ethereum Naming Service)
eip-1066	Automatically merged updates to draft EIP(s) 1066							a month ago		// ERC-1066. Define Ethereum status codes (ESC) for smart contracts
eip-1077	Automatically merged updates to draft EIP(s) 1077							3 months ago	// ERC-1077. Allow a third party relayer to sign messages to show intent of execution
eip-1078	Automatically merged updates to draft EIP(s) 1078							3 months ago	// ERC-1078. A method to replace the usual signup/login design pattern with a minimal ethereum native scheme, that doesn’t require passwords, backing up private keys nor typing seed phrases
eip-1080	ERC 1080: RecoverableToken Standard (#1080)									3 months ago	// ERC-1080. Interface for tokens that support chargebacks, theft prevention, and lost & found resolutions
eip-1081	Standard Bounties (#1081)													26 days ago		// ERC-1081. Interface for issuing bounties on Ethereum, usable for any type of task, paying in any ERC20 token or in ETH
eip-1087	Automatically merged updates to draft EIP(s) 1087							9 days ago		// Change to how gas is charged for EVM SSTORE operations
eip-1102	Automatically merged updates to draft EIP(s) 1102							13 days ago		// A way for DOM environments to expose an Ethereum provider API that requires user approval.
eip-1108	EIP-1108: Reduce alt bn128 gas costs (#1108)								3 months ago	// Gains for the ECADD, ECMUL, and pairing check precompiled contracts on the alt_bn128 elliptic curve, which should be reflected in reduced gas costs.
eip-1109	Automatically merged updates to draft EIP(s) 1109							4 days ago		// Creates OPCODE named "PRECOMPILEDCALL" to call Precompiled contracts without the costs of a normal CALL
eip-1123	Automatically merged updates to draft EIP(s) 1123							3 months ago	// Defines a data format representing a package of one or more smart contracts, optionally including source code and any/all deployed instances across multiple networks.
eip-1129	First version of EIP-SDA. (#1129)											2 months ago	// ERC-1129. Standardisation of announcements in DAPPs and services on Ethereum network
eip-1132	ERC1132 - Extending ERC20 with token locking capability (#1331)				9 days ago		// ERC-1132. Extension to the ERC20 standard with methods for time-locking of tokens within a contract.
eip-1153	Transient storage opcodes (#1153)											2 months ago	// Support for efficient transient storage in EVM. It is like regular storage (SLOAD/SSTORE), but with the lifetime limited to one Ethereum transaction
eip-1154	Automatically merged updates to draft EIP(s) 1154							a month ago		// ERC-1154. Interface for oracles
eip-1155	Automatically merged updates to draft EIP(s) 1155							5 days ago		// ERC-1155. Interface for multiple item/token definitions in a single deployed contract.
eip-1167	Automatically merged updates to draft EIP(s) 1167							8 days ago		// ERC-1167. Cheaply clone contract functionality in an immutable way, this standard specifies a minimal bytecode implementation that delegates all calls to a known, fixed address
eip-1175	change directory (#1183)													2 months ago	// ERC-1175. mutual trust between the wallet and the shop created by the authenticated contract allows you to pay for and purchase items at a simple process.
eip-1178	added sample implementation and updated functionality (#1216)				a month ago		// ERC-1178. Interface for multi-class fungible token
eip-1191	EIP-1191: extends EIP-55 by optionally adding a chain id defined by E…		2 months ago	// ERC-1191. Extends EIP-55 by optionally adding a chain id defined by EIP-155 to the checksum calculation.
eip-1193	Automatically merged updates to draft EIP(s) 1193							24 days ago		// Formalizes an Ethereum Provider JavaScript API. Designed to be minimal, containing 3 methods: send, subscribe, and unsubscribe. It emits 4 types of events: connect, close, networkChanged, and accountsChanged
eip-1202	Automatically merged updates to draft EIP(s) 1202							a month ago		// ERC-1202. Standard API for implementing voting within smart contract
eip-1203	EIP 1203 (#1204)															a month ago		// ERC-1203. Standard interface for multi-class tokens (MCTs).
eip-1207	Add EIP-1207 DAuth Access Delegation Standard (#1208)						a month ago		// ERC-1207. Standard interface for accessing authorization delegation between smart contracts and users
eip-1227	EIP-1227: Defuse Difficulty Bomb and Reset Block Reward (#1235)				a month ago		// Disable the "difficulty bomb" and reset the block reward to pre-Byzantium levels
eip-1234	Automatically merged updates to draft EIP(s) 1234							a month ago		// Delay the difficulty bomb for approximately one and a half year and to reduce the block rewards with the Constantinople fork, the second part of the Metropolis fork
eip-1240	Automatically merged updates to draft EIP(s) 1240							a month ago		// Remove the difficulty bomb with the Constantinople fork, the second part of the Metropolis fork
eip-1261	Create eip-1261 (#1268)														27 days ago		// ERC-1261. Standard interface for Membership Verification Token(MVT)
eip-1271	ERC-1271 : Standard Signature Validation Method for Contracts (#1258)		25 days ago		// ERC-1271. Standard way for contracts to verify if a provided signature is valid when the account is a contract
eip-1276	EIP-1276: Eliminate Difficulty Bomb and Adjust Block Reward on Consta…		27 days ago		// Remove the difficulty bomb forever and to reduce the block rewards with the Constantinople fork, the second part of the Metropolis fork
eip-1283	Automatically merged updates to draft EIP(s) 1283							4 days ago		// Net gas metering changes for SSTORE opcode, as an alternative for EIP-1087
eip-1285	Automatically merged updates to draft EIP(s) 1285							9 days ago		// Increase the Gcallstipend fee parameter in the CALL OPCODE from 2,300 to 3,500 gas units
eip-1295	Modify Proof of Work Incentive Structure and Remove Difficulty Bomb (#…		20 days ago		// Reduction of Uncle and removal of Nephew rewards while diffusing and removing the Difficulty Bomb with the Constantinople hard fork.