Skip to content

Instantly share code, notes, and snippets.

@lucca65
Created September 5, 2018 20:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save lucca65/9776249a9c6c85d7afdd93716a263d55 to your computer and use it in GitHub Desktop.
Save lucca65/9776249a9c6c85d7afdd93716a263d55 to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash
# Throws error when using unset variable
set -ux
cleos='docker-compose -f /Users/lucca/Development/cpp/eos/Docker/docker-compose.yml exec keosd /opt/eosio/bin/cleos -u http://nodeosd:8888 --wallet-url http://localhost:8900'
eosiocpp='docker-compose -f /Users/lucca/Development/cpp/eos/Docker/docker-compose.yml exec nodeosd eosiocpp'
CONTRACTS_PATH='/contracts'
CONTRACT_PATH='/Users/lucca/Development/cpp/sc-bespiral'
WALLET_PASSWORD='PW5Jfd7DzcJmDrosoLcgVzoNCzkWtGHPXykJ6yWDFMEoKBamuHJTn'
ROOT_ACCOUNT='bespiral'
BESPIRAL_SYMBOL='BES'
# Keys
EOSIO_PRIVATE_KEY='5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3'
EOSIO_TOKEN_PRIVATE_KEY='5Jmsawgsp1tQ3GD6JyGCwy1dcvqKZgX6ugMVMdjirx85iv5VyPR'
ROOT_KEY_OWNER='EOS5DUkgCz2cvnrLZXEiRmt8kKNogJSnaQrFN4Tdbn6EPft6Hkutv'
ROOT_PRIVATE_KEY_OWNER='5KCoA6Dv3pJXFxWmeXk3pxPmSXSDPmXi3ppEF59HARzeAUwkizq'
ROOT_KEY_ACTIVE='EOS83E2pgz8fFXAgtRopujEs64HaQowWGsb4uhRr5ppkcLp8Gqyp2'
ROOT_PRIVATE_KEY_ACTIVE='5JBeuaChFMhR4gLmA7LGbSFGWAA2hVpXKZmTuKvZHmgAnkLJvMc'
LUCCA_KEY='EOS5wwF7kzqJnfmCnJAkpjjQipPBt5iVAncE735wzDe6oDnY2o7dQ'
RANULFO_KEY='EOS8meQcpWQyttdHcbfoBCViKkcbYhaKiBiXxQpQjRLgcxbT5N8yX'
KARLA_KEY='EOS7Nmd4DzUk65sF6nENzq5JhBG4jYTANtbkkMmHqXysQ9pFxWhxs'
CUDUCOS_KEY='EOS6hrN2eobdb35yeozi1SHzwWGvNQwnN1vUFZgQWR4m1qum5yCHT'
function create_eos_account () {
$cleos create account bespiral $1 $2 $2
$cleos push action eosio.token issue '[ "'$1'", "10.0000 EOS", "initial stake" ]' -p eosio
}
function unlock_wallet () {
echo "unlocking wallet..."
$cleos wallet unlock --password $WALLET_PASSWORD
sleep .5
}
function initialize () {
echo "setup wallet"
$cleos wallet import $EOSIO_PRIVATE_KEY
$cleos wallet import $EOSIO_TOKEN_PRIVATE_KEY
echo "deploy bios and token..."
$cleos set contract eosio $CONTRACTS_PATH/eosio.bios -p eosio
$cleos create account eosio eosio.token $ROOT_KEY_OWNER $ROOT_KEY_ACTIVE
$cleos set contract eosio.token $CONTRACTS_PATH/eosio.token -p eosio.token
$cleos push action eosio.token create '[ "eosio", "1000000000.0000 EOS", 0, 0, 0]' -p eosio.token
sleep .5
echo "creates bespiral account with stake..."
$cleos create account eosio $ROOT_ACCOUNT $ROOT_KEY_OWNER $ROOT_KEY_ACTIVE
$cleos push action eosio.token issue '[ "'$ROOT_ACCOUNT'", "1000.0000 EOS", "initial stake" ]' -p eosio
sleep .5
}
function team_accounts () {
echo "creates test accounts with stakes..."
create_eos_account 'ranulfo' $RANULFO_KEY $RANULFO_KEY
create_eos_account 'lucca' $LUCCA_KEY $LUCCA_KEY
create_eos_account 'karla' $KARLA_KEY $KARLA_KEY
create_eos_account 'cuducos' $CUDUCOS_KEY $CUDUCOS_KEY
}
function setup_bespiral () {
echo "compile, deploy and initialize data for bespiral contract"
$eosiocpp -o $BESPIRAL_CONTRACT_PATH/bespiral.wast $BESPIRAL_CONTRACT_PATH/bespiral.cpp
$cleos set contract $ROOT_ACCOUNT $CONTRACT_PATH
$cleos push action $ROOT_ACCOUNT createcmm '["bespiral","bespiral","BeSpiral", "We Rule!", "21000000 $BESPIRAL_SYMBOL","0 $BESPIRAL_SYMBOL", "100 $BESPIRAL_SYMBOL", "10 $BESPIRAL_SYMBOL","$BESPIRAL_SYMBOL",1,"1000 $BESPIRAL_SYMBOL"]' -p bespiral
$cleos push action $ROOT_ACCOUNT netlink \
'["0 $BESPIRAL_SYMBOL","leo","$ROOT_ACCOUNT", 0]' -p $ROOT_ACCOUNT
$cleos push action $ROOT_ACCOUNT netlink \
'["0 $BESPIRAL_SYMBOL","lucca","$ROOT_ACCOUNT", 0]' -p $ROOT_ACCOUNT
$cleos push action $ROOT_ACCOUNT netlink \
'["0 $BESPIRAL_SYMBOL","ranulfo","leo", 0]' -p $ROOT_ACCOUNT
$cleos push action $ROOT_ACCOUNT netlink \
'["0 $BESPIRAL_SYMBOL","karla","ranulfo", 0]' -p $ROOT_ACCOUNT
$cleos push action $ROOT_ACCOUNT netlink \
'["0 $BESPIRAL_SYMBOL","cuducos","karla", 0]' -p $ROOT_ACCOUNT
echo "verify error same link error..."
$cleos push action $ROOT_ACCOUNT netlink \
'["0 $BESPIRAL_SYMBOL","leo","$ROOT_ACCOUNT", 0]' -p $ROOT_ACCOUNT
echo "verify user already in network error..."
$cleos push action $ROOT_ACCOUNT netlink \
'["0 $BESPIRAL_SYMBOL","karla","leo", 0]' -p $ROOT_ACCOUNT
echo "verify invalid inviter error..."
$cleos push action $ROOT_ACCOUNT netlink \
'["0 $BESPIRAL_SYMBOL","john","ananias", 0]' -p $ROOT_ACCOUNT
}
function free_tokens () {
echo "initial supply and free tokens..."
$cleos push action $ROOT_ACCOUNT issue \
'["$ROOT_ACCOUNT", "1000000 $BESPIRAL_SYMBOL", "initial supply" ]' -p $ROOT_ACCOUNT
$cleos push action $ROOT_ACCOUNT issue \
'["ranulfo", "5000 $BESPIRAL_SYMBOL", "free tokens" ]' -p $ROOT_ACCOUNT
$cleos push action $ROOT_ACCOUNT issue \
'["leo", "5000 $BESPIRAL_SYMBOL", "free tokens" ]' -p $ROOT_ACCOUNT
$cleos push action $ROOT_ACCOUNT issue \
'["lucca", "5000 $BESPIRAL_SYMBOL", "free tokens" ]' -p $ROOT_ACCOUNT
$cleos push action $ROOT_ACCOUNT issue \
'["karla", "5000 $BESPIRAL_SYMBOL", "free tokens" ]' -p $ROOT_ACCOUNT
$cleos push action $ROOT_ACCOUNT issue \
'["cuducos", "5000 $BESPIRAL_SYMBOL", "free tokens" ]' -p $ROOT_ACCOUNT
}
# unlock_wallet
# initialize
# team_accounts
# setup_bespiral
free_tokens
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment