Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

The Numeraire Ethereum Smart Contract

NotificationsYou must be signed in to change notification settings

erasureprotocol/NMR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Numeraire (NMR) is anERC-20 token used for staking and burning.

NMR is the native token of theErasure Protocol.

Seedocumentation for more information.

Security Contact:security@numer.ai

Validated Metrics

NMR circulating supply
Etherscan token tracker
Coingecko token tracker
DeFiPulse token tracker

Deployed Contracts

ContractAddress
NumeraireBackend0x1776e1f26f98b1a5df9cd347953a26dd3cb46671
NumeraireDelegateV10xF32e4724946d4e288B3042d504919CE68C4Fda9c
NumeraireDelegateV20x3548718A49EE7cd348e50290D446D9F1A1f9C59E
NumeraireDelegateV30x29F709e42C95C604BA76E73316d325077f8eB7b2
UpgradeDelegate0x3361F79f0819fD5feaA37bea44C8a33d98b2A1cd
Relay0xB17dF4a656505570aD994D023F632D48De04eDF2

Security Audits

AuditProviderDate
NMR TokenNew AlchemyMay 2017
NMR Code FixNew AlchemyApril 2018
NMR 2.0Trail of BitsJuly 2019

Whitepapers

ProjectAuthorsDate
NumeraiRichard Craib, Geoffrey Bradway, Xander Dunn, Joey KrugFebruary 2017
Erasure QuantRichard Craib, James Geary, Jason ParyaniAugust 2019
Erasure BayStephane Gosselin, Jonathan SidegoMarch 2020

Specification

ERC-20

function approve(address _spender, uint256 _value);function transfer(address _to, uint256 _value);function transferFrom(address _from, address _to, uint256 _value);function totalSupply();function balanceOf(address _owner);function allowance(address _owner, address _spender);event Transfer(address indexed _from, address indexed _to, uint256 _value);event Approval(address indexed _owner, address indexed _spender, uint256 _value);

Refer toERC-20 standard for detailed specification.

Note: NMR deviates from ERC-20 in the implementation of theapprove() function to prevent theERC-20 approve race condition.

Theapprove() function is limited to changing the allowance from zero or to zero.

In order to change the allowance from a non-zero value to a different non-zero value in a single transaction. The user must use thechangeApproval() function.

function changeApproval(address _spender, uint256 _oldValue, uint256 _newValue);

Sets the approval to a new value while checking that the previous approvalvalue is what we expected.

  • _spender is the address of the contract.
  • _oldValue is the current amount the contract is allowed to spend.
  • _newValue is the new amount to allow the contract to spend.

Burning

Themint() andnumeraiTransfer() functions have been repurposed from their initial use in order to support native token burns as implemented in OpenZeppelin'sERC20Burnable.

Note: The caller must check the return values of these functions as they return false on failure.

/** * @dev Destoys `amount` tokens from `msg.sender`, reducing the total supply. * * Emits a `Transfer` event with `to` set to the zero address. * * Requirements: * - `account` must have at least `amount` tokens. */function mint(uint256 _value);   => function burn(uint256 amount);/** * @dev Destoys `amount` tokens from `account`.`amount` is then deducted * from the caller's allowance. * * Emits an `Approval` event indicating the updated allowance. * Emits a `Transfer` event with `to` set to the zero address. * * Requirements: * - `account` must have at least `amount` tokens. * - `account` must have approved `msg.sender` with allowance of at least `amount` tokens. */function numeraiTransfer(address _to, uint256 _value);   => function burnFrom(address account, uint256 amount);

Custody for Numerai Tournament

Numerai performs custody of the token for participants in theNumerai Tournament. This removes participation barriers as users no longer need to pay for gas or manage their own private keys. Thewithdraw() function can be used by Numerai to transfer tokens from the first 1 million accounts (0x00...00000000 to 0x00...000F4240).

function withdraw(address _from, address _to, uint256 _value);

Deprecated Features

All other contract methods belong to the following features which have been disabled as a part of the NMR 2.0 upgrade.

  • Multisignature
  • Emergency Stops
  • Minting
  • Upgradeability

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp