-
Notifications
You must be signed in to change notification settings - Fork 50
RBX ‐ Ripto Bux
Table of contents
- Token Contract Information
- Market Making Information
- How To Watch The Token Contract In Ethereum Wallet / Mist
- How To Watch The Token In Ethereum Wallet / Mist
- How To Check Your Token Balance In Ethereum Wallet / Mist
- How To Transfer Your Tokens In Ethereum Wallet / Mist
- How To Move Your Tokens To The Waves Blockchain In Ethereum Wallet / Mist
- The Token Contract Source Code
- Symbol:
RBX
- Name:
Ripto Bux
- Address:
0x74aca0f1a40f7e0f3845dadf52c65060de7749af
- Decimal places:
8
- Total supply:
1,000,000,000
- Note that this token can be moved between the Ethereum blockchain (this contract) and the Waves blockchain (asset id
AnERqFRffNVrCbviXbDEdzrU6ipXCP5Y1PKpFdRnyQAy
). See https://blockswap.incentloyalty.com/ for further information.
If you want to list an RBX TokenTrader contract on https://cryptoderivatives.market, use the TokenTraderFactory contract.
Execute createTradeContract(address asset, uint256 buyPrice, uint256 sellPrice, uint256 units, bool buysTokens, bool sellsTokens)
to create your RBX TokenTrader contract.
The formula for working out the buyPrice
or sellPrice
follows:
rate = price / units * 10^(tokenDecimals - etherDecimals)
which is:
rate = price / units * 10^(tokenDecimals - 18)
and tokenDecimals = 8
, so:
rate = price / units * 10^-10
The currently active RBX contract at 0xa82a8dc964efd4a6a9f1e8abc45e76573cbdb2f4 has:
_asset = 0x74aca0f1a40f7e0f3845dadf52c65060de7749af
sellPrice = 1000000
buyPrice = 950000
units = 1
and so:
sellRate = 1000000 / 1 * 10^-10 = 0.0001
buyRate = 950000 / 1 * 10^-10 = 0.000095
Check:
- See Tx 0xd2b6b4a2... where 0.002511 ETH was sent to the contract above to purchase 25.11 RBX tokens.
Find your newly created Trade contract on https://cryptoderivatives.market/tokenTraderContracts. Watch this contract address using the ABI at How To Watch A TokenTrader Contract In Ethereum Wallet / Mist.
Use the RBX token contract to transfer your tokens to your newly created TokenTrader address.
Execute your TokenTrader.makerDepositEther()
function, sending the amount of ethers.
In Ethereum Wallet / Mist, select the CONTRACTS tab and click WATCH CONTRACT to open the Watch contract window. Then:
-
Under CONTRACT NAME, enter
RBX
-
Under CONTRACT ADDRESS, enter
0x74aca0f1a40f7e0f3845dadf52c65060de7749af
-
Copy the Application Binary Interface below and paste it into the JSON INTERFACE text box
[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_amount","type":"uint256"}],"name":"approve","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"totalSupply","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"wavesAddress","type":"string"},{"name":"amount","type":"uint256"}],"name":"moveToWaves","outputs":[],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"transfer","outputs":[{"name":"success","type":"bool"}],"payable":false,"type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"type":"function"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":false,"name":"wavesAddress","type":"string"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"WavesTransfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_owner","type":"address"},{"indexed":true,"name":"_spender","type":"address"},{"indexed":false,"name":"_value","type":"uint256"}],"name":"Approval","type":"event"}]
-
Click OK
In Ethereum Wallet / Mist, select the CONTRACTS tab and click WATCH TOKEN to open the Add token window. Then:
-
Under TOKEN CONTRACT ADDRESS, enter
0x74aca0f1a40f7e0f3845dadf52c65060de7749af
. The additional fields should automatically be filled in. -
Click OK
Watch The Token Contract, then:
- Click on the
RBX
contract - Click on SHOW CONTRACT INFO
- In the READ FROM CONTRACT section and under Balance of:
- Enter the address you want to check the token balance of
- The token balance will be displayed in the Natural Units with 8 decimal places, e.g., 123000000 is 123000000 / 1e8 = 1.23 token units
Watch The Token Contract, then:
- Click on the
RBX
contract - Click on SHOW CONTRACT INFO
- In the WRITE TO CONTRACT section and under Select function:
- Select the Transfer function
- Under to, enter the address you want to transfer the token to
- Under value, enter the amount of tokens you want to transfer. This amount needs to be specified in the natural units with 8 decimal places, e.g., 123000000 is 123000000 / 1e8 = 1.23 token units
- Under Execute from, select the account you want to transfer your tokens from
- Click on Execute, then confirm your transaction
Watch The Token Contract, then:
- Click on the
RBX
contract - Click on SHOW CONTRACT INFO
- In the WRITE TO CONTRACT section and under Select function:
- Select the Move To Waves function
- Under Waves address, enter the correct Waves address you want to transfer the token to
- Under Amount, enter the amount of tokens you want to transfer. This amount needs to be specified in the natural units with 8 decimal places, e.g., 123000000 is 123000000 / 1e8 = 1.23 token units
- Under Execute from, select the account you want to transfer your tokens from
- Click on Execute, then confirm your transaction
The verified source code can be found at 0x74aca0f1a40f7e0f3845dadf52c65060de7749af and follows:
pragma solidity ^0.4.8;
// ----------------------------------------------------------------------------------------------
// The Ripto Bux smart contract - to find out more, join the Incent Slack; http://incentinvites.herokuapp.com/
// A collaboration between Incent and Bok :)
// Enjoy. (c) Incent Loyalty Pty Ltd and Bok Consulting Pty Ltd 2017. The MIT Licence.
// ----------------------------------------------------------------------------------------------
// Contract configuration
contract TokenConfig {
string public constant symbol = "RBX";
string public constant name = "Ripto Bux";
uint8 public constant decimals = 8; // 8 decimal places, the same as tokens on Wave
uint256 _totalSupply = 100000000000000000;
}
// ERC Token Standard #20 Interface
// https://github.com/ethereum/EIPs/issues/20
contract ERC20Interface {
// Get the total token supply
function totalSupply() constant returns (uint256 totalSupply);
// Get the account balance of another account with address _owner
function balanceOf(address _owner) constant returns (uint256 balance);
// Send _value amount of tokens to address _to
function transfer(address _to, uint256 _value) returns (bool success);
// Send _value amount of tokens from address _from to address _to
function transferFrom(address _from, address _to, uint256 _value) returns (bool success);
// Allow _spender to withdraw from your account, multiple times, up to the _value amount.
// If this function is called again it overwrites the current allowance with _value.
// this function is required for some DEX functionality
function approve(address _spender, uint256 _value) returns (bool success);
// Returns the amount which _spender is still allowed to withdraw from _owner
function allowance(address _owner, address _spender) constant returns (uint256 remaining);
// Triggered when tokens are transferred.
event Transfer(address indexed _from, address indexed _to, uint256 _value);
// Triggered whenever approve(address _spender, uint256 _value) is called.
event Approval(address indexed _owner, address indexed _spender, uint256 _value);
}
contract RiptoBuxToken is ERC20Interface, TokenConfig {
// Owner of this contract
address public owner;
// Balances for each account
mapping(address => uint256) balances;
// Owner of account approves the transfer of an amount to another account
mapping(address => mapping (address => uint256)) allowed;
// Functions with this modifier can only be executed by the owner
modifier onlyOwner() {
if (msg.sender != owner) {
throw;
}
_;
}
// Constructor
function RiptoBuxToken() {
owner = msg.sender;
balances[owner] = _totalSupply;
}
function totalSupply() constant returns (uint256 totalSupply) {
totalSupply = _totalSupply;
}
// What is the balance of a particular account?
function balanceOf(address _owner) constant returns (uint256 balance) {
return balances[_owner];
}
// Transfer the balance from owner's account to another account
function transfer(address _to, uint256 _amount) returns (bool success) {
if (balances[msg.sender] >= _amount
&& _amount > 0
&& balances[_to] + _amount > balances[_to]) {
balances[msg.sender] -= _amount;
balances[_to] += _amount;
Transfer(msg.sender, _to, _amount);
return true;
} else {
return false;
}
}
// Send _value amount of tokens from address _from to address _to
// The transferFrom method is used for a withdraw workflow, allowing contracts to send
// tokens on your behalf, for example to "deposit" to a contract address and/or to charge
// fees in sub-currencies; the command should fail unless the _from account has
// deliberately authorized the sender of the message via some mechanism; we propose
// these standardized APIs for approval:
function transferFrom(
address _from,
address _to,
uint256 _amount
) returns (bool success) {
if (balances[_from] >= _amount
&& allowed[_from][msg.sender] >= _amount
&& _amount > 0
&& balances[_to] + _amount > balances[_to]) {
balances[_from] -= _amount;
allowed[_from][msg.sender] -= _amount;
balances[_to] += _amount;
Transfer(_from, _to, _amount);
return true;
} else {
return false;
}
}
// Allow _spender to withdraw from your account, multiple times, up to the _value amount.
// If this function is called again it overwrites the current allowance with _value.
function approve(address _spender, uint256 _amount) returns (bool success) {
allowed[msg.sender][_spender] = _amount;
Approval(msg.sender, _spender, _amount);
return true;
}
function allowance(address _owner, address _spender) constant returns (uint256 remaining) {
return allowed[_owner][_spender];
}
}
contract WavesEthereumSwap is RiptoBuxToken {
event WavesTransfer(address indexed _from, string wavesAddress, uint256 amount);
function moveToWaves(string wavesAddress, uint256 amount) {
if (!transfer(owner, amount)) throw;
WavesTransfer(msg.sender, wavesAddress, amount);
}
}
Most of this wiki is currently work in progress. GNTTokenTrader & Factory, GNT ‐ Golem Network Token and Bug Bounty are complete.
- 1ST ‐ First Blood
- AMIS ‐ AMIS
- ARC ‐ Arcade City
- BARF ‐ BARF (discontinued)
- BERP ‐ BokkyPooBah´s Ether Refundable Prize
- DAO ‐ The DAO
- DGD ‐ Digix DAO
- DGDb ‐ Digix DAO Badge
- DICE ‐ Etheroll
- EDG ‐ Edgeless
- EMV ‐ Ethereum Movie Venture
- ETB ‐ Ethbits
- GNO ‐ Gnosis Token
- GNT ‐ Golem Network Token
- GNTW ‐ Wrapped Golem Network Token
- GUP ‐ Matchpool Guppy
- HKG ‐ Hacker Gold
- HMQ ‐ Humaniq
- ICN ‐ Iconomi
- INC ‐ Incent
- LOVE - I Love You
- LUN ‐ Lunyr-Token
- MKR ‐ Maker DAO
- MLN ‐ Melon Token
- PLU ‐ Pluton
- RBX ‐ Ripto Bux
- REP ‐ Augur
- RLC ‐ iEx.ec Network Token
- SNGLS ‐ SingularDTV
- SWT ‐ Swarm City
- TAAS ‐ Token-as-a-Service
- TIME ‐ Chronobank
- TKN ‐ TokenCard
- TRST ‐ WeTrust
- UNI - Unicorn 🦄
- VSL - vSlice
- WAV ‐ Waves Token
- WBC ‐ Waves Bitcoin Token
- WCT ‐ Waves Community Token
- WINGS ‐ WINGS
- XAUR ‐ Xaurum