REMME token
ERC20
This contract is an ERC20 token.
Name
REMME token
Symbol
REM
Decimals
4
Total Supply
1,000,000,000 REM
About
link
description
Remme is an ecosystem of Identity and Access Management products with a digital key at its heart. Founded in 2015, Remme is building the decentralized Public Key Infrastructure protocol and PKI-enabled apps to address the challenges of Web 3.0. Remme blockchain consensus is achieved via Delegated Proof of Stake. With the REMChain mainnet launched end of 2019 currently there are 2 key roles tokenholders can take up on REMChain: Block Producers and Guardians.
Remme Protocol aims to become the next-generation blockchain-based PKI alternative. It is open-source and customizable to suit business needs. Remme Protocol provides a basis for establishing self-sovereign and authority-issued identities, with a host of use cases.
Remme Auth is a 2-click authentication solution that allows users to securely access a website without passwords. Instead, the solution uses Web Cryptography API and blockchain technology.
With the Protocol being built on EOSIO codebase, REMChain is an independent blockchain fueled by the REM token. REM is an ERC-20 token on Ethereum with the permanent possibility to swap it to REMChain native tokens in both directions.
Stats
Public Functions
38
Event Types
3
Code Size
22,510 bytes
Events (3) keyboard_arrow_up
Functions
_forwardApprove keyboard_arrow_up
Modifiers help
onlyImplementationFor checks for the following:
Source Code
function _forwardApprove(address _spender, uint _value, address _sender) onlyImplementationFor(_sender) returns(bool) {
return etoken2.proxyApprove(_spender, _value, etoken2Symbol, _sender);
}
_forwardTransferFromWithReference keyboard_arrow_up
Parameters help
Modifiers help
onlyImplementationFor checks for the following:
Source Code
function _forwardTransferFromWithReference(address _from, address _to, uint _value, string _reference, address _sender) onlyImplementationFor(_sender) returns(bool) {
return etoken2.proxyTransferFromWithReference(_from, _to, _value, etoken2Symbol, _reference, _sender);
}
_forwardTransferFromToICAPWithReference keyboard_arrow_up
Parameters help
Modifiers help
onlyImplementationFor checks for the following:
Source Code
function _forwardTransferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference, address _sender) onlyImplementationFor(_sender) returns(bool) {
return etoken2.proxyTransferFromToICAPWithReference(_from, _icap, _value, _reference, _sender);
}
balanceOf keyboard_arrow_up
totalSupply keyboard_arrow_up
transfer keyboard_arrow_up
transferFrom keyboard_arrow_up
approve keyboard_arrow_up
allowance keyboard_arrow_up
decimals keyboard_arrow_up
init keyboard_arrow_up
Source Code
function init(EToken2Interface _etoken2, string _symbol, string _name) returns(bool) {
if (address(etoken2) != 0x0) {
return false;
}
etoken2 = _etoken2;
etoken2Symbol = _bytes32(_symbol);
name = _name;
symbol = _symbol;
return true;
}
recoverTokens keyboard_arrow_up
Modifiers help
onlyAssetOwner checks for the following:
Source Code
function recoverTokens(uint _value) onlyAssetOwner() returns(bool) {
return this.transferWithReference(msg.sender, _value, 'Tokens recovery');
}
transfer keyboard_arrow_up
transferWithReference keyboard_arrow_up
Source Code
function transferWithReference(address _to, uint _value, string _reference) returns(bool) {
return _getAsset()._performTransferWithReference(_to, _value, _reference, msg.sender);
}
transferToICAP keyboard_arrow_up
transferToICAPWithReference keyboard_arrow_up
Source Code
function transferToICAPWithReference(bytes32 _icap, uint _value, string _reference) returns(bool) {
return _getAsset()._performTransferToICAPWithReference(_icap, _value, _reference, msg.sender);
}
transferFrom keyboard_arrow_up
transferFromWithReference keyboard_arrow_up
Parameters help
Source Code
function transferFromWithReference(address _from, address _to, uint _value, string _reference) returns(bool) {
return _getAsset()._performTransferFromWithReference(_from, _to, _value, _reference, msg.sender);
}
transferFromToICAP keyboard_arrow_up
Source Code
function transferFromToICAP(address _from, bytes32 _icap, uint _value) returns(bool) {
return transferFromToICAPWithReference(_from, _icap, _value, '');
}
transferFromToICAPWithReference keyboard_arrow_up
Parameters help
Source Code
function transferFromToICAPWithReference(address _from, bytes32 _icap, uint _value, string _reference) returns(bool) {
return _getAsset()._performTransferFromToICAPWithReference(_from, _icap, _value, _reference, msg.sender);
}
approve keyboard_arrow_up
emitTransfer keyboard_arrow_up
Modifiers help
onlyEToken2 checks for the following:
Source Code
function emitTransfer(address _from, address _to, uint _value) onlyEToken2() {
Transfer(_from, _to, _value);
}
emitApprove keyboard_arrow_up
Modifiers help
onlyEToken2 checks for the following:
Source Code
function emitApprove(address _from, address _spender, uint _value) onlyEToken2() {
Approval(_from, _spender, _value);
}
constructor keyboard_arrow_up
transferToICAP keyboard_arrow_up
transferToICAPWithReference keyboard_arrow_up
Source Code
function transferToICAPWithReference(string _icap, uint _value, string _reference) returns(bool) {
return transferToICAPWithReference(_bytes32(_icap), _value, _reference);
}
transferFromToICAP keyboard_arrow_up
Source Code
function transferFromToICAP(address _from, string _icap, uint _value) returns(bool) {
return transferFromToICAPWithReference(_from, _icap, _value, '');
}
transferFromToICAPWithReference keyboard_arrow_up
Parameters help
Source Code
function transferFromToICAPWithReference(address _from, string _icap, uint _value, string _reference) returns(bool) {
return transferFromToICAPWithReference(_from, _bytes32(_icap), _value, _reference);
}
getVersionFor keyboard_arrow_up
getLatestVersion keyboard_arrow_up
getPendingVersion keyboard_arrow_up
getPendingVersionTimestamp keyboard_arrow_up
proposeUpgrade keyboard_arrow_up
Modifiers help
onlyAssetOwner checks for the following:
Source Code
function proposeUpgrade(address _newVersion) onlyAssetOwner() returns(bool) {
// Should not already be in the upgrading process.
if (pendingVersion != 0x0) {
return false;
}
// New version address should be other than 0x0.
if (_newVersion == 0x0) {
return false;
}
// Don't apply freeze-time for the initial setup.
if (latestVersion == 0x0) {
latestVersion = _newVersion;
return true;
}
pendingVersion = _newVersion;
pendingVersionTimestamp = now;
UpgradeProposal(_newVersion);
return true;
}
purgeUpgrade keyboard_arrow_up
commitUpgrade keyboard_arrow_up
Parameters help
This function has no parameters.
Source Code
function commitUpgrade() returns(bool) {
if (pendingVersion == 0x0) {
return false;
}
if (pendingVersionTimestamp + UPGRADE_FREEZE_TIME > now) {
return false;
}
latestVersion = pendingVersion;
delete pendingVersion;
delete pendingVersionTimestamp;
return true;
}