Created
August 16, 2017 03:41
-
-
Save sithu/a05bfc0af4ac73a6642c5cc7bbbb2683 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
chain: ropsten | |
# Use automated Chrome to verify all contracts on etherscan.io | |
# You need to install Splinter package: | |
# pip install splinter | |
verify_on_etherscan: no | |
browser_driver: chrome | |
contracts: | |
# This is the address of the multisig wallet where the paymnts eventually land | |
team_multisig: | |
contract_name: MultiSigWallet | |
contract_file: GnosisWallet.sol | |
address: '0x40f381b3bd8a4693a56f18984adfc4dd3322650e' | |
# | |
# Token contract | |
# | |
# This contract represents ERC-20 token. | |
# It has transfer lock up functionality to prevent the token to be transferable | |
# until the ICO is over. | |
# | |
# We create the whole token supply upfront and no more token minting | |
# happens ever. | |
# | |
# Token has 18 decimals. | |
# | |
# Token supply is one billion tokens. | |
# | |
# Name and symbol are not set yet. They are set later. In | |
# the case of the deployment fails and we need redeploy | |
# we do not create unnecessary entries in token explorers. | |
# | |
token: !!omap | |
- contract_name: BurnableCrowdsaleToken | |
- contract_file: BurnableCrowdsaleToken.sol | |
- arguments: !!omap | |
- _name: MooToken | |
- _symbol: MOO | |
- _initialSupply: 100000000000000000000000000000 | |
- _decimals: 18 | |
- _mintable: false | |
- address: '0x9ebc7a13f8909a3e778ffeaf478f29e3192f7694' | |
- constructor_args: '0x00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000001431e0fae6d7217caa00000000000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000084d6f6f546f6b656e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034d4f4f0000000000000000000000000000000000000000000000000000000000' | |
- libraries: | |
SafeMathLib: '0x0f69edbab9f65197888f49eba552b8efbe6b18a2' | |
# | |
# Pricing strategy. | |
# | |
# We use ETH tranches. People who buy in in the first | |
# tranches get 20% and 10% bonus tokens. | |
# | |
pricing_strategy: !!omap | |
- contract_name: EthTranchePricing | |
- contract_file: EthTranchePricing.sol | |
- arguments: !!omap | |
- _tranches: | |
- 0 | |
- 2272727272727 | |
- 45000000000000000000000 | |
- 2380952380952 | |
- 90000000000000000000000 | |
- 2500000000000 | |
- 999999999999999000000000000000000 | |
- 0 | |
- address: '0x38732bf1fb0477ba4cbbb5bad56af18eb5905d1f' | |
- constructor_args: '0x00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000211291a0d1700000000000000000000000000000000000000000000098774738bc8222000000000000000000000000000000000000000000000000000000000022a5bd2261800000000000000000000000000000000000000000000130ee8e717904440000000000000000000000000000000000000000000000000000000000246139ca800000000000000000000000000000000000000314dc6448d932ae0a456589c00000000000000000000000000000000000000000000000000000000000000000000' | |
- libraries: | |
SafeMathLib: '0x17cec37f169f8a34f28d4807602d7d1cfbaaa3a0' | |
crowdsale: !!omap | |
- contract_name: AllocatedCrowdsale | |
- contract_file: AllocatedCrowdsale.sol | |
- arguments: !!omap | |
- _token: '0x9ebc7a13f8909a3e778ffeaf478f29e3192f7694' | |
- _pricingStrategy: '0x38732bf1fb0477ba4cbbb5bad56af18eb5905d1f' | |
- _multisigWallet: '0x40f381b3bd8a4693a56f18984adfc4dd3322650e' | |
- _start: 1505221200 | |
- _end: 1509022800 | |
- _minimumFundingGoal: 15000000000000000000000 | |
- _beneficiary: '0x40f381b3bd8a4693a56f18984adfc4dd3322650e' | |
- address: '0x44840f373e354badc39bd9baf1ed6594a3021be1' | |
- constructor_args: '0x0000000000000000000000006fda29059e37528f0b6975328c87eacb3c8bfe990000000000000000000000008ed546b4a61192286b8d9e967152911289b8445b00000000000000000000000082b7fdf7d900c1752c663432f4d252b6854b1a960000000000000000000000000000000000000000000000000000000059b7da500000000000000000000000000000000000000000000000000000000059f1dc5000000000000000000000000000000000000000000000032d26d12e980b60000000000000000000000000000082b7fdf7d900c1752c663432f4d252b6854b1a96' | |
- libraries: | |
SafeMathLib: '0x4b93484222b861d453bc818dfda2cb8d390815dd' | |
# | |
# Because deploy_address controls whole supply, | |
# we do not create any supply dynamically, | |
# we do not need a finalizer. | |
# | |
finalize_agent: !!omap | |
- contract_name: NullFinalizeAgent | |
- contract_file: NullFinalizeAgent.sol | |
- arguments: !!omap | |
- _crowdsale: '0x44840f373e354badc39bd9baf1ed6594a3021be1' | |
- address: '0x4607c8c17e8cbd2210be900746715a3cf7f617d1' | |
- constructor_args: '0x0000000000000000000000002eb2f363716f2617cd7924e748c8279be4a33f3b' | |
- libraries: {} | |
# Post-deployment actions connect contracts together. | |
post_actions: |2 | |
# Allow crowdsale contract to sell its token | |
token.transact({"from": deploy_address}).approve(crowdsale.address, 70000000000*10**8) | |
# Make sure crowdsale contract and these accounts | |
# can transfer tokens despite transfer lock up | |
token.transact({"from": deploy_address}).setTransferAgent(team_multisig.address, True) | |
token.transact({"from": deploy_address}).setTransferAgent(crowdsale.address, True) | |
token.transact({"from": deploy_address}).setTransferAgent(finalize_agent.address, True) | |
token.transact({"from": deploy_address}).setTransferAgent(deploy_address, True) | |
# Do not do nothing at the end of the crowdsale | |
confirm_tx(crowdsale.transact({"from": deploy_address}).setFinalizeAgent(finalize_agent.address)) | |
# Owner can release the token transfer when they fel its the time | |
confirm_tx(token.transact({"from": deploy_address}).setReleaseAgent(deploy_address)) | |
# Set token upgrade master to team multisig to give the new token path | |
confirm_tx(token.transact({"from": deploy_address}).setUpgradeMaster(team_multisig.address)) | |
# Allow test buys from these accounts before token sale begins. | |
# The latter one is a presale contract address. | |
# Presale contract (PreICOProxyBuyer) can move in funds | |
# and get tokens before the actual start time. | |
confirm_multiple_txs( \ | |
crowdsale.transact({"from": deploy_address}).setEarlyParicipantWhitelist(deploy_address, True), \ | |
crowdsale.transact({"from": deploy_address}).setEarlyParicipantWhitelist("0x6d997eDcA04282950416FA380d834f360fC36eBb", True) \ | |
) | |
# We set a special price, outside ETH tranches, for a presale contract | |
confirm_tx(pricing_strategy.transact({"from": deploy_address}).setPreicoAddress("0x6d997eDcA04282950416FA380d834f360fC36eBb", 2083333333333)) | |
# Sanity check | |
verify_actions: | | |
assert token.call().owner().lower() == deploy_address.lower() | |
assert token.call().released() == False | |
assert crowdsale.call().owner().lower() == deploy_address.lower() | |
assert crowdsale.call().multisigWallet().lower() == team_multisig.address.lower() | |
assert finalize_agent.call().isSane() | |
assert crowdsale.call().getState() == CrowdsaleState.PreFunding # PreFunding for the final, as it is deployed pre-opening | |
# Do a test buy using a test address. | |
# This ensures are variables are set and the | |
# funds flow in the multisig wallet. | |
#confirm_tx(crowdsale.transact({"from": deploy_address, "value": to_wei("0.02", "ether")}).buy()) | |
# As the last action, after successful deployment, set the right token symbol and name so that it shows in a blockchain explorer | |
confirm_tx(token.transact({"from": deploy_address}).setTokenInformation("MooToken", "MOO")) | |
deploy_address: '0x7bce9a8d57bd2a4e95accd5bd14676f4a8c08ae8' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Error