Skip to content

Releases: leapdao/leap-contracts

v1.4.0

15 Feb 04:23
v1.4.0
c81c65f
Compare
Choose a tag to compare

Added

  • (operator): heartbeat challenge game (#258)
    As described here (alternative link).
  • (governance) new parameters: heartbeatColor and minimumPulse
  • (governance) token voting contract (#262)
  • (ops) migration to update contracts on the running network (#259)
  • revert messages for all requires (#256)
  • simple HeartbeatToken contract (#276)

Changed

  • (operator) use bitmap to store taken slots, so that we can calculate how many slots taken for CAS (#267, #269)
    Slot bitmap can be rebuild by calling rebuildTakenSlots()
  • (operator) challengeExit checks period and prevPeriod for inclusion in Bridge (#270)

v1.3.1

19 Nov 10:59
Compare
Choose a tag to compare

Fixed

  • wrong parsing of a spending condition tx. #252

Changed

  • it is not allowed anymore to set Epoch Length smaller then highest taken validator slot #250

v1.3.0 - breaking changes

30 Aug 10:28
Compare
Choose a tag to compare

Added

  • PoaOperator: CAS challenge game. Start a challenge with challengeCas. Operator is expected to provide a proof via respondCas, otherwise timeoutCas 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 to ExitStarted event #239
  • 💥 [BREAKING] PoaOperator: Submission event was changed. casRoot was renamed to casBitmap for clarity. #241
  • PoaOperator: added casChallengeDuration to initilize #225
  • ExitHandler: exits(utxoId) function now returns periodRoot as well #240

Fixed

  • ERC1948/ERC1949: minting is restricted only for minters #241

Breaking Changes

  • ExitStarted event was changed: periodRoot added. Clients need to update ABI #239
  • Submission event was changed: casRoot was renamed to casBitmap. Clients need to update ABI #241

v1.2.0

09 Aug 08:50
e2f7693
Compare
Choose a tag to compare

ℹ️ 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

09 Aug 10:58
e2f7693
Compare
Choose a tag to compare

mainnet v2

29 Jun 07:23
0ea60e4
Compare
Choose a tag to compare

Root network: Mainnet

JSON RPC:

Bridge UI: https://mainnet.leapdao.org

Contracts

Code version: 1.2.0

Name Proxy Implementation
Bridge 0x3dC3f79596AF8666C2bc27e1A565Dee01dcb55c8 0x6fDA8091d9AEe2182DCb39d786E8faDEe4B4A91e (till 17.08.19) 0xb567930450B78D0C1Bda82BdE363ABE2FDC3102D
ExitHandler 0x495AeB6FD65D39AA49482a938b85f7A70b075750 0x61f36397503A79D7b66B16Ba5309a49f93277b51 (till 17.08.19) 0x208bE5C980e2DC3cCbc6D4fC3c604beb66ede6b2
PoaOperator 0xa47F5664e95830Bb952ef7Fb3d52996c3A8a2cA6 0x51aE4c7ae2EB722c9523f45d0De68708Cc4418f7 (till 17.08.19) 0xe80757244a15C5Bd45b7FC1a053e135F4D163D94
SwapRegistry 0x8bddaAbFEb17bFC71cAf5BC84F8C059b2953a1d1 0xf103c7D7f5b9dbaC8A2510D6aE850875BB985D04
MinGov 0x2a224e87b56eec82b744f2af3bbe753231ce3d87 (till 17.08.19) 0x17Bcf59D273f7C58735ed80Ea001a69f80DF92fc
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

25 Jun 14:15
v1.1.0
1bba3d1
Compare
Choose a tag to compare

Added

  • allow spending conditions to exit #192
  • added simple sparse merkle tree implementation #193 #201

Changed

  • always emit NewHeight #205
  • more data in Period storage: parentBlockNumber, parentBlockHash #204
  • drop ExitStartedV2 event #206
  • add NST tokenData to Exit storage #206

(OUTDATED) v1.0.0 — testnet Theta

16 May 14:04
v1.0.0
dcd4cc6
Compare
Choose a tag to compare
Pre-release

⚠️DEPRECATED in favour of https://github.com/leapdao/leap-contracts/releases/tag/testnet ⚠️

Root network: Rinkeby

JSON RPC:

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

22 Apr 22:05
d0fb8c7
Compare
Choose a tag to compare

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

12 Apr 17:30
c92ef99
Compare
Choose a tag to compare

Root network: Rinkeby

JSON RPC:

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