Releases: leapdao/leap-contracts
v1.4.0
Added
- (operator): heartbeat challenge game (#258)
As described here (alternative link). - (governance) new parameters:
heartbeatColor
andminimumPulse
- (governance) token voting contract (#262)
- (ops) migration to update contracts on the running network (#259)
- revert messages for all
require
s (#256) - simple HeartbeatToken contract (#276)
Changed
v1.3.1
v1.3.0 - breaking changes
Added
- PoaOperator: CAS challenge game. Start a challenge with
challengeCas
. Operator is expected to provide a proof viarespondCas
, otherwisetimeoutCas
removes challenged period. #225 - ExitHandler: support exiting for challenged periods. Exit stake is transfered to MinGov, exit is deleted #239
- PoaOperator: public
getChallenge(period, slotId)
function - PoaOperator: new governable parameter:
casChallengeDuration
. Default is 3600 seconds for new instances #225 - MinGov:
withdrawTax
transfers ether as well #239
Changed
- 💥 [BREAKING] ExitHandler: added
periodRoot
toExitStarted
event #239 - 💥 [BREAKING] PoaOperator:
Submission
event was changed.casRoot
was renamed tocasBitmap
for clarity. #241 - PoaOperator: added
casChallengeDuration
toinitilize
#225 - ExitHandler:
exits(utxoId)
function now returnsperiodRoot
as well #240
Fixed
- ERC1948/ERC1949: minting is restricted only for minters #241
Breaking Changes
v1.2.0
ℹ️ Changes marked with ⚗️affect Plasma Bridge contracts.
Added
- ⚗️
submitPeriodWithCas
for CAS submissions #224 #227 - receipt way of writing NST data #226
- ⚗️check challenger to prevent blind front-running #231 #235
- ⚗️challenge exit with Spending Condition inclusion #232
- ⚗️expose contract implementations via
implementation()
function #234
Changed
- ⚗️ [BREAKING] unified interface for register tokens (
registerToken
) #222 - [BREAKING] change 1948 reference implementation in accordance to ERC1948 standard #213
- make ERC1948 implementation to be enumerable and ERC1949 to be named (with metadata) #233
Fixed
- increase gas limit for ExitHandler in deployment scripts #216
Dependencies:
- bumped Solium and Babel versions
testnet
mainnet v2
Root network: Mainnet
JSON RPC:
- https://mainnet-node.leapdao.org
- wss://mainnet-node.leapdao.org
Bridge UI: https://mainnet.leapdao.org
Contracts
Code version: 1.2.0
Name | Proxy | Implementation |
---|---|---|
Bridge | 0x3dC3f79596AF8666C2bc27e1A565Dee01dcb55c8⎆ | |
ExitHandler | 0x495AeB6FD65D39AA49482a938b85f7A70b075750⎆ | |
PoaOperator | 0xa47F5664e95830Bb952ef7Fb3d52996c3A8a2cA6⎆ | |
SwapRegistry | 0x8bddaAbFEb17bFC71cAf5BC84F8C059b2953a1d1⎆ | 0xf103c7D7f5b9dbaC8A2510D6aE850875BB985D04⎆ |
MinGov | ||
LEAP Token | 0x78230E69d6e6449dB1E11904e0bD81C018454d7A⎆ |
Deployment parameters
⚠️ May be changed since deployment via governance proposals. Get actual values from the live contracts
DEPLOYED_TOKEN=0x78230E69d6e6449dB1E11904e0bD81C018454d7A
POA_REWARD=778000000000000000000
EPOCH_LENGTH=4
TAX_RATE=1000
EXIT_DURATION=151200
EXIT_STAKE=100000000000000000
PARENT_BLOCK_INTERVAL=7
PROPOSAL_TIME=604800
GOV_ADDR=0x2A224e87b56Eec82B744F2af3BbE753231cE3D87
Config
{
"exitHandlerAddr": "0x495AeB6FD65D39AA49482a938b85f7A70b075750",
"bridgeAddr": "0x3dC3f79596AF8666C2bc27e1A565Dee01dcb55c8",
"operatorAddr": "0xa47F5664e95830Bb952ef7Fb3d52996c3A8a2cA6",
"rootNetworkId": 1,
"network": "leap-mainnet",
"networkId": 448747062,
"eventsDelay": 2,
"bridgeDelay": 6,
"genesis": {
"genesis_time": "2019-07-01T17:00:44.599891617Z",
"chain_id": "test-chain-UY6Lil",
"consensus_params": {
"block": {
"max_bytes": "22020096",
"max_gas": "-1",
"time_iota_ms": "1000"
},
"evidence": {
"max_age": "100000"
},
"validator": {
"pub_key_types": [
"ed25519"
]
}
},
"validators": [
{
"address": "ED6A83843685A62325F35797A56C8C9490FB6938",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "UkMNDJwtSUOAnIyMgh8cZrqYfn9ChIM/Ua4oELKO4ZY="
},
"power": "10",
"name": ""
}
],
"app_hash": ""
},
"peers": [
"67ba0283135d7a5e80c1b523c13268f714a02457@sen1.mainnet.leapdao.org:46691",
"b25cfb1b324a03337bd59d273efd50b708fb33b4@sen2.mainnet.leapdao.org:46691",
"4e0af20a7936b5eea96822c34328d811073d0cfb@val1.mainnet.leapdao.org:46691"
]
}
Live version of the config: https://github.com/leapdao/leap-node/blob/master/presets/leap-mainnet.json
v1.1.0
(OUTDATED) v1.0.0 — testnet Theta
Root network: Rinkeby
JSON RPC:
- https://testnet-node.leapdao.org
- wss://testnet-node.leapdao.org
Bridge UI: https://testnet.leapdao.org
Contracts
Bridge
Proxy: 0xC449D4CD1dEc611d8cA5Fd8167Bf46d6e6d345b9
Implementation:
0xDcCc5b16102c8BfE0356Be979Ca93A2D5167849B- 0xc5D81fDEe89EeD1B7F7E3881A32D3Afcd1E59d0e)
Operator(PoaOperator)
Proxy: 0xb3356900d56F39c79Bfdc2b625d15B1b5b9262a9
Implementation:
- 0xAB2c02d49Ccc900301bCA16DB06A3eBF17AA69b0
ExitHandler
Proxy: 0x26a937302cc6A0A7334B210de06136C8C61BA885
Implementation:
0x95D6B9754745b7Fc8A89797DD1e73AA7ee6eE442- 0xFd96542514B703e51Bd83911445a2a55A419FEd2)
SwapRegistry: 0xc02150cBA7a06CeBD57CCdF66e0872B674479684 0x282764334d03181dd836e893b45f7cece18a2151
PriorityQueue: 0xb3E96b9735ef601c85884DD2A8FDb57EB9983538
MinGov: 0xf3B4111c6CdAf82062A6e5EB65e12B76f2E881E8 (owned by Rinkeby multisig)
LEAP token: 0xD2D0F8a6ADfF16C2098101087f9548465EC96C98
Config
{
"exitHandlerAddr": "0x26a937302cc6A0A7334B210de06136C8C61BA885",
"bridgeAddr": "0xC449D4CD1dEc611d8cA5Fd8167Bf46d6e6d345b9",
"operatorAddr": "0xb3356900d56F39c79Bfdc2b625d15B1b5b9262a9",
"rootNetworkId": 4,
"network": "leap-testnet-theta",
"networkId": 218508104,
"eventsDelay": 2,
"bridgeDelay": 6,
"genesis": {
"genesis_time": "2019-05-23T12:23:22.546083464Z",
"chain_id": "test-chain-H5Ijd9",
"consensus_params": {
"block": {
"max_bytes": "22020096",
"max_gas": "-1",
"time_iota_ms": "1000"
},
"evidence": {
"max_age": "100000"
},
"validator": {
"pub_key_types": [
"ed25519"
]
}
},
"validators": [
{
"address": "4881A447F30F484F046859530083FD27C5F7A70B",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "Su7amMRUBc+MinqO026cuI3Q4jinwx0KJRdjXDp4Rao="
},
"power": "10",
"name": ""
}
],
"app_hash": ""
},
"peers": [
"cc30db6d116ca6ff440277c8e13e3ca253a774e7@sen1.testnet.leapdao.org:46691",
"[email protected]:46691",
"deb472911a7a0ff3867b39c6ffa375ddbb42db5d@sen2.testnet.leapdao.org:46691",
"[email protected]:46691"
]
}
Live version of the config: https://github.com/leapdao/leap-node/blob/master/presets/leap-testnet.json
staging-testnet-v1
deployed from leapdao/leap-contracts#d0fb8c7530ecb960c960e6298517e2985d0e34df
first validator
slotId
0x99b1Ba7BA5AD02204Ca33a3cf7B650655B7E3383000000000000000000000000
validator address
0x8B0De931bE8815C2ddBc6C67DA92B0fbe718599b
validator id
0xf4acdf2895338b7e589325bb2dfb2650ebd8a949294d8a9b2b3736d3976061fb
bridge-ui: https://staging-testnet.leapdao.org
rpc: https://staging-testnet.leapdao.org/rpc
rpc websocket: wss://staging-testnet.leapdao.org/rpc/ws
Compiling your contracts...
===========================
> Everything is up to date, there is nothing to compile.
Starting migrations...
======================
> Network name: 'rinkeby'
> Network id: 4
> Block gas limit: 0x6ad1c2
1_initial_migration.js
======================
Replacing 'Migrations'
----------------------
> transaction hash: 0x9eff9744aee0b5774b8f0b9b10bfdf78b6de76c24405b42194728f74b8adc0c8
> Blocks: 0 Seconds: 8
> contract address: 0xd12ed10dEEa99ed98d6C002eE30D1d5A5E956E40
> block number: 4255150
> block timestamp: 1555956673
> account: 0x9D4F8216808F7dFbB919cF5e579c1894a1E197C3
> balance: 0.376126914
> gas used: 221171
> gas price: 3 gwei
> value sent: 0 ETH
> total cost: 0.000663513 ETH
> Saving migration to chain.
> Saving artifacts
-------------------------------------
> Total cost: 0.000663513 ETH
2_deploy_token.js
=================
Replacing 'NativeToken'
-----------------------
> transaction hash: 0xe410aac3bc5101cabd40820b39d19d40e41b694051c8ccb0c73fbfb4577d858d
> Blocks: 0 Seconds: 12
> contract address: 0xE75daa33cfFF530aed259A309099eD2cF3904568
> block number: 4255153
> block timestamp: 1555956718
> account: 0x9D4F8216808F7dFbB919cF5e579c1894a1E197C3
> balance: 0.372877281
> gas used: 1041282
> gas price: 3 gwei
> value sent: 0 ETH
> total cost: 0.003123846 ETH
Deployed LEAP Token at 0xE75daa33cfFF530aed259A309099eD2cF3904568
> Saving migration to chain.
> Saving artifacts
-------------------------------------
> Total cost: 0.003123846 ETH
3_deploy_plasma.js
==================
♻️ Reusing existing Native Token: 0xE75daa33cfFF530aed259A309099eD2cF3904568
Deploying 'Bridge'
------------------
> transaction hash: 0x4d90e63003193247f964644472146e5ab7e96baba2d12cb3ad931bcc6a77f546
> Blocks: 1 Seconds: 24
> contract address: 0x49dd99E4EA108cc67C1359fb66B4844265B50439
> block number: 4255156
> block timestamp: 1555956763
> account: 0x9D4F8216808F7dFbB919cF5e579c1894a1E197C3
> balance: 0.371068908
> gas used: 575862
> gas price: 3 gwei
> value sent: 0 ETH
> total cost: 0.001727586 ETH
Deploying 'BridgeProxy'
-----------------------
> transaction hash: 0x995e22899cd4b2f5195887eab00fbc4c4ad26b65faf76105c6aa84815e607d15
> Blocks: 3 Seconds: 56
> contract address: 0x91eDfA74F069341b17003845ad943d8abc386C81
> block number: 4255160
> block timestamp: 1555956823
> account: 0x683Ac672940EBc3742db7a60EbeD25B77B34269D
> balance: 0.474613843
> gas used: 791219
> gas price: 3 gwei
> value sent: 0 ETH
> total cost: 0.002373657 ETH
Deploying 'PriorityQueue'
-------------------------
> transaction hash: 0xe89751eabe5d63830fe06be40710a0e4096b24e3eb222f7a70f8422603769590
> Blocks: 0 Seconds: 8
> contract address: 0x6e0C7F243c2822113D9dcC7042bc7909D2841eCc
> block number: 4255161
> block timestamp: 1555956838
> account: 0x9D4F8216808F7dFbB919cF5e579c1894a1E197C3
> balance: 0.369708714
> gas used: 453398
> gas price: 3 gwei
> value sent: 0 ETH
> total cost: 0.001360194 ETH
🕐 Exit duration: 2 minutes, 30 seconds
💰 Exit stake: 100000000000000000
Deploying 'FastExitHandler'
---------------------------
> transaction hash: 0xb2351fd655e3147352f4df917619afb8d65e0d57d4f0244e79843b8dae7bcec6
> Blocks: 0 Seconds: 12
> contract address: 0xE26d84bFc2F4d62a1C3CBcE2ED2B018f794722f5
> block number: 4255162
> block timestamp: 1555956853
> account: 0x9D4F8216808F7dFbB919cF5e579c1894a1E197C3
> balance: 0.352122222
> gas used: 5862164
> gas price: 3 gwei
> value sent: 0 ETH
> total cost: 0.017586492 ETH
Deploying 'ExitHandlerProxy'
----------------------------
> transaction hash: 0xecbd1a49fc575c7f81ff718680b8f78338f6f8e71f447caf7410b7d61ea226b4
> Blocks: 0 Seconds: 8
> contract address: 0xFF5Fd5Cf5405b53790E198A083f05eA73939f6EB
> block number: 4255163
> block timestamp: 1555956868
> account: 0x683Ac672940EBc3742db7a60EbeD25B77B34269D
> balance: 0.472349224
> gas used: 754873
> gas price: 3 gwei
> value sent: 0 ETH
> total cost: 0.002264619 ETH
Deploying 'PoaOperator'
-----------------------
> transaction hash: 0x452812cd13258c2a2e72232cb4bf029e59713daadfdba95458b7ebac449b1d1e
> Blocks: 0 Seconds: 8
> contract address: 0x450240aAa57ad4A78645026013bF547034Df45b5
> block number: 4255164
> block timestamp: 1555956883
> account: 0x9D4F8216808F7dFbB919cF5e579c1894a1E197C3
> balance: 0.349401393
> gas used: 906943
> gas price: 3 gwei
> value sent: 0 ETH
> total cost: 0.002720829 ETH
Deploying 'OperatorProxy'
-------------------------
> transaction hash: 0xb7aa4b33d06164d376188cb7662b9a71665c0a036ffe3e30ef650be0d56b5b6e
> Blocks: 0 Seconds: 8
> contract address: 0x99b1Ba7BA5AD02204Ca33a3cf7B650655B7E3383
> block number: 4255165
> block timestamp: 1555956898
> account: 0x683Ac672940EBc3742db7a60EbeD25B77B34269D
> balance: 0.470084005
> gas used: 755073
> gas price: 3 gwei
> value sent: 0 ETH
> total cost: 0.002265219 ETH
Deploying 'SwapRegistry'
------------------------
> transaction hash: 0xbfce1f10ede6d6d81cd750c7a9749870ed1c418b9823982c0cf962f1fb96389f
> Blocks: 0 Seconds: 8
> contract address: 0x848d50EAC3366139FFe9F271a0db73F702BB9780
> block number: 4255166
> block timestamp: 1555956913
> account: 0x9D4F8216808F7dFbB919cF5e579c1894a1E197C3
> balance: 0.345267684
> gas used: 1377903
> gas price: 3 gwei
> value sent: 0 ETH
> total cost: 0.004133709 ETH
Deploying 'AdminableProxy'
--------------------------
> transaction hash: 0x3adf01292f280a92df1e545866c3e89c1244391d739299f0c116585cbed5d05d
> Blocks: 0 Seconds: 8
> contract address: 0x18400C44FfC8a927920A55B6028B62a326568C56
> block number: 4255167
> block timestamp: 1555956928
> account: 0x683Ac672940EBc3742db7a60EbeD25B77B34269D
> balance: 0.467700685
> gas used: 794440
> gas price: 3 gwei
> value sent: 0 ETH
> total cost: 0.00238332 ETH
Generated node files in /build/nodeFiles
> Saving migration to chain.
> Saving artifacts
-------------------------------------
> Total cost: 0.036815625 ETH
4_deploy_governance.js
======================
🕐 Deploying Governance with proposal time: 10 minutes
Deploying 'MinGov'
------------------
> transaction hash: 0xec0bf9ec2768a164efa91cf01ac6681e98f5dde97b5ec5ad35a7e46927ce54b7
> Blocks: 0 Seconds: 8
> contract address: 0xBD901980b023730C8179CE87949D0E7a879EC8f3
> block number: 4255176
> block timestamp: 1555957063
> account: 0x9D4F8216808F7dFbB919cF5e579c1894a1E197C3
> balance: 0.340978506
> gas used: 1356936
> gas price: 3 gwei
> value sent: 0 ETH
> total cost: 0.004070808 ETH
🔄 Transferring ownership for Bridge: 0x91eDfA74F069341b17003845ad943d8abc386C81
🔄 Transferring ownership for Operator: 0x99b1Ba7BA5AD02204Ca33a3cf7B650655B7E3383
🔄 Transferring ownership for ExitHandler: 0xFF5Fd5Cf5405b53790E198A083f05eA73939f6EB
🔄 Transferring ownership for SwapRegistry: 0x18400C44FfC8a927920A55B6028B62a326568C56
🔄 Transferring ownership for Governance: 0x03caa70d57c9e98c0ceaf1ef95f9c9459b89f1bf
init supply.
🔄 Transferring minting right for token: 0xE75daa33cfFF530aed259A309099eD2cF3904568
> Saving migration to chain.
> Saving artifacts
-------------------------------------
> Total cost: 0.004070808 ETH
Summary
=======
> Total deployments: 12
> Final cost: 0.044673792 ETH
Testnet Eta
Root network: Rinkeby
JSON RPC:
- https://testnet-node.leapdao.org
- wss://testnet-node.leapdao.org:1433
Bridge UI: https://testnet.leapdao.org
Contracts
Bridge: 0xEB13cc8F0904398d01D7faD8B98bff1FA2977470
Operator(PoaOperator): 0x02f2330CCB5Ce770EeFE0A4066BA1Ca03eC70c74
ExitHandler: 0x2c2a3b359edbCFE3c3Ac0cD9f9F1349A96C02530
MinGov: 0x6436eB09f65cA65aE46CD2F8B22aBf9E61B14d23 (owner by Rinkeby multisig)
PriorityQueue: 0xb3E96b9735ef601c85884DD2A8FDb57EB9983538
Config
{
"bridgeAddr": "0xEB13cc8F0904398d01D7faD8B98bff1FA2977470",
"operatorAddr": "0x02f2330CCB5Ce770EeFE0A4066BA1Ca03eC70c74",
"exitHandlerAddr": "0x2c2a3b359edbCFE3c3Ac0cD9f9F1349A96C02530",
"rootNetwork": "https://rinkeby.infura.io/v3/f039330d8fb747e48a7ce98f51400d65",
"rootNetworkId": 4,
"network": "leap-testnet-eta",
"networkId": 955601066,
"eventsDelay": 2,
"bridgeDelay": 6,
"genesis": {
"app_hash": "68154a516d6821b07e6b25f76310faeae1d24d1c0a6cf3152ccba90f1fcb9db9",
"chain_id": "test-chain-RlQzTu",
"consensus_params": {
"block": {
"max_bytes": "22020096",
"max_gas": "-1",
"time_iota_ms": "1000"
},
"evidence": { "max_age": "100000" },
"validator": { "pub_key_types": ["ed25519"] }
},
"genesis_time": "2019-03-26T11:46:25.02713796Z",
"validators": [
{
"address": "4881A447F30F484F046859530083FD27C5F7A70B",
"name": "",
"power": "10",
"pub_key": {
"type": "tendermint/PubKeyEd25519",
"value": "Su7amMRUBc+MinqO026cuI3Q4jinwx0KJRdjXDp4Rao="
}
}
]
},
"peers": [
"[email protected]:46691",
"[email protected]:46691",
"0c3bca7abf72190feea432e6715c48b2ee21d3fd@sen1.testnet.leapdao.org:46691",
"c247bb928c8b5d1ee9777ddbc1260475c9c88286@sen2.testnet.leapdao.org:46691",
"[email protected]:46691",
"[email protected]:46691"
]
}
Live version here: https://github.com/leapdao/leap-node/blob/master/presets/leap-testnet.json