diff --git a/docker/genesis-testnet.json b/docker/genesis-testnet.json index 1512a6ec..5df32716 100644 --- a/docker/genesis-testnet.json +++ b/docker/genesis-testnet.json @@ -1,6 +1,6 @@ { "alloc": { - "0x1000000000000000000000000000000000000000": { + "0x0000000000000000000000000000000000006a7e": { "code": "0x60806040526004361061006e575f3560e01c806396f396c31161004c57806396f396c3146100e3578063c4a4326d14610105578063e984df0e1461011d578063fccc281314610131575f80fd5b806339dd5d1b146100725780637157405a146100b957806378338413146100ce575b5f80fd5b34801561007d575f80fd5b506100a161008c36600461059e565b5f6020819052908152604090205461ffff1681565b60405161ffff90911681526020015b60405180910390f35b3480156100c4575f80fd5b506100a161040081565b6100e16100dc3660046105b5565b61015c565b005b3480156100ee575f80fd5b506100f761044e565b6040519081526020016100b0565b348015610110575f80fd5b506100f76402540be40081565b348015610128575f80fd5b506100f7610468565b34801561013c575f80fd5b506101445f81565b6040516001600160a01b0390911681526020016100b0565b61016c6402540be40060016105fc565b34101561017834610478565b61019061018b6402540be40060016105fc565b610478565b6040516020016101a1929190610630565b604051602081830303815290604052906101d75760405162461bcd60e51b81526004016101ce9190610688565b60405180910390fd5b506101ef6402540be400677fffffffffffffff6105fc565b3411156101fb34610478565b61021561018b6402540be400677fffffffffffffff6105fc565b6040516020016102269291906106bd565b604051602081830303815290604052906102535760405162461bcd60e51b81526004016101ce9190610688565b50435f8181526020819052604090205461ffff166104009081119061027790610478565b604051602001610287919061070c565b604051602081830303815290604052906102b45760405162461bcd60e51b81526004016101ce9190610688565b505f818152602081905260408120805461ffff16916102d283610786565b91906101000a81548161ffff021916908361ffff160217905550505f6402540be400346102ff91906107a6565b9050346103116402540be400836105fc565b1461031b34610478565b6103296402540be400610478565b60405160200161033a9291906107c5565b604051602081830303815290604052906103675760405162461bcd60e51b81526004016101ce9190610688565b506040515f90819034908281818185825af1925050503d805f81146103a7576040519150601f19603f3d011682016040523d82523d5f602084013e6103ac565b606091505b50509050806103fd5760405162461bcd60e51b815260206004820152601e60248201527f4661696c656420746f2073656e6420746f206275726e2061646472657373000060448201526064016101ce565b604080516bffffffffffffffffffffffff1986168152600784900b60208201527ffeadaf04de8d7c2594453835b9a93b747e20e7a09a7fdb9280579a6dbaf131a8910160405180910390a150505050565b6104656402540be400677fffffffffffffff6105fc565b81565b6104656402540be40060016105fc565b6060815f0361049e5750506040805180820190915260018152600360fc1b602082015290565b815f5b81156104c757806104b181610814565b91506104c09050600a836107a6565b91506104a1565b5f8167ffffffffffffffff8111156104e1576104e161082c565b6040519080825280601f01601f19166020018201604052801561050b576020820181803683370190505b509050815b851561059557610521600182610840565b90505f61052f600a886107a6565b61053a90600a6105fc565b6105449088610840565b61054f906030610853565b90505f8160f81b90508084848151811061056b5761056b61086c565b60200101906001600160f81b03191690815f1a90535061058c600a896107a6565b97505050610510565b50949350505050565b5f602082840312156105ae575f80fd5b5035919050565b5f602082840312156105c5575f80fd5b81356bffffffffffffffffffffffff19811681146105e1575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610613576106136105e8565b92915050565b5f81518060208401855e5f93019283525090919050565b6a029b2b73a103b30b63ab2960ad1b81525f61064f600b830185610619565b7f206d7573742062652067726561746572206f7220657175616c20746f20000000815261067f601d820185610619565b95945050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6a029b2b73a103b30b63ab2960ad1b81525f6106dc600b830185610619565b7f206d757374206265206c657373206f7220657175616c20746f20000000000000815261067f601a820185610619565b7f4d6178207472616e7366657273206c696d6974206f662000000000000000000081525f61073d6017830184610619565b7f207265616368656420696e207468697320626c6f636b2e2054727920746f207381527232b732103a3930b739b332b9399030b3b0b4b760691b60208201526033019392505050565b5f61ffff821661ffff810361079d5761079d6105e8565b60010192915050565b5f826107c057634e487b7160e01b5f52601260045260245ffd5b500490565b6a029b2b73a103b30b63ab2960ad1b81525f6107e4600b830185610619565b7f206d7573742062652061206d756c7469706c65206f6620000000000000000000815261067f6017820185610619565b5f60018201610825576108256105e8565b5060010190565b634e487b7160e01b5f52604160045260245ffd5b81810381811115610613576106136105e8565b60ff8181168382160190811115610613576106136105e8565b634e487b7160e01b5f52603260045260245ffdfea2646970667358221220106399f534da089226c14e2f183f8421d059a924c65c97d7e4f3e931c54fe1bb64736f6c634300081a0033", "balance": "0x0" } diff --git a/local-network/configs/ec-common/genesis.json b/local-network/configs/ec-common/genesis.json index 6e586158..d9cbe0fe 100644 --- a/local-network/configs/ec-common/genesis.json +++ b/local-network/configs/ec-common/genesis.json @@ -36,7 +36,7 @@ "//": "private key and this comment are ignored. In a real chain, the private key should NOT be stored", "balance": "90000000000000000000000" }, - "0x1000000000000000000000000000000000000000": { + "0x0000000000000000000000000000000000006a7e": { "//1": "Bridge contract. To get new code, run: bridge-compile.sh", "//2": "To update get storage, see the storage layout and setup primitive fields. Or use 0xweb: https://stackoverflow.com/a/76490163", "code": "0x60806040526004361061006e575f3560e01c806396f396c31161004c57806396f396c3146100e3578063c4a4326d14610105578063e984df0e1461011d578063fccc281314610131575f80fd5b806339dd5d1b146100725780637157405a146100b957806378338413146100ce575b5f80fd5b34801561007d575f80fd5b506100a161008c36600461059e565b5f6020819052908152604090205461ffff1681565b60405161ffff90911681526020015b60405180910390f35b3480156100c4575f80fd5b506100a161040081565b6100e16100dc3660046105b5565b61015c565b005b3480156100ee575f80fd5b506100f761044e565b6040519081526020016100b0565b348015610110575f80fd5b506100f76402540be40081565b348015610128575f80fd5b506100f7610468565b34801561013c575f80fd5b506101445f81565b6040516001600160a01b0390911681526020016100b0565b61016c6402540be40060016105fc565b34101561017834610478565b61019061018b6402540be40060016105fc565b610478565b6040516020016101a1929190610630565b604051602081830303815290604052906101d75760405162461bcd60e51b81526004016101ce9190610688565b60405180910390fd5b506101ef6402540be400677fffffffffffffff6105fc565b3411156101fb34610478565b61021561018b6402540be400677fffffffffffffff6105fc565b6040516020016102269291906106bd565b604051602081830303815290604052906102535760405162461bcd60e51b81526004016101ce9190610688565b50435f8181526020819052604090205461ffff166104009081119061027790610478565b604051602001610287919061070c565b604051602081830303815290604052906102b45760405162461bcd60e51b81526004016101ce9190610688565b505f818152602081905260408120805461ffff16916102d283610786565b91906101000a81548161ffff021916908361ffff160217905550505f6402540be400346102ff91906107a6565b9050346103116402540be400836105fc565b1461031b34610478565b6103296402540be400610478565b60405160200161033a9291906107c5565b604051602081830303815290604052906103675760405162461bcd60e51b81526004016101ce9190610688565b506040515f90819034908281818185825af1925050503d805f81146103a7576040519150601f19603f3d011682016040523d82523d5f602084013e6103ac565b606091505b50509050806103fd5760405162461bcd60e51b815260206004820152601e60248201527f4661696c656420746f2073656e6420746f206275726e2061646472657373000060448201526064016101ce565b604080516bffffffffffffffffffffffff1986168152600784900b60208201527ffeadaf04de8d7c2594453835b9a93b747e20e7a09a7fdb9280579a6dbaf131a8910160405180910390a150505050565b6104656402540be400677fffffffffffffff6105fc565b81565b6104656402540be40060016105fc565b6060815f0361049e5750506040805180820190915260018152600360fc1b602082015290565b815f5b81156104c757806104b181610814565b91506104c09050600a836107a6565b91506104a1565b5f8167ffffffffffffffff8111156104e1576104e161082c565b6040519080825280601f01601f19166020018201604052801561050b576020820181803683370190505b509050815b851561059557610521600182610840565b90505f61052f600a886107a6565b61053a90600a6105fc565b6105449088610840565b61054f906030610853565b90505f8160f81b90508084848151811061056b5761056b61086c565b60200101906001600160f81b03191690815f1a90535061058c600a896107a6565b97505050610510565b50949350505050565b5f602082840312156105ae575f80fd5b5035919050565b5f602082840312156105c5575f80fd5b81356bffffffffffffffffffffffff19811681146105e1575f80fd5b9392505050565b634e487b7160e01b5f52601160045260245ffd5b8082028115828204841417610613576106136105e8565b92915050565b5f81518060208401855e5f93019283525090919050565b6a029b2b73a103b30b63ab2960ad1b81525f61064f600b830185610619565b7f206d7573742062652067726561746572206f7220657175616c20746f20000000815261067f601d820185610619565b95945050505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b6a029b2b73a103b30b63ab2960ad1b81525f6106dc600b830185610619565b7f206d757374206265206c657373206f7220657175616c20746f20000000000000815261067f601a820185610619565b7f4d6178207472616e7366657273206c696d6974206f662000000000000000000081525f61073d6017830184610619565b7f207265616368656420696e207468697320626c6f636b2e2054727920746f207381527232b732103a3930b739b332b9399030b3b0b4b760691b60208201526033019392505050565b5f61ffff821661ffff810361079d5761079d6105e8565b60010192915050565b5f826107c057634e487b7160e01b5f52601260045260245ffd5b500490565b6a029b2b73a103b30b63ab2960ad1b81525f6107e4600b830185610619565b7f206d7573742062652061206d756c7469706c65206f6620000000000000000000815261067f6017820185610619565b5f60018201610825576108256105e8565b5060010190565b634e487b7160e01b5f52604160045260245ffd5b81810381811115610613576106136105e8565b60ff8181168382160190811115610613576106136105e8565b634e487b7160e01b5f52603260045260245ffdfea2646970667358221220106399f534da089226c14e2f183f8421d059a924c65c97d7e4f3e931c54fe1bb64736f6c634300081a0033", diff --git a/local-network/deploy/src/common-settings.ts b/local-network/deploy/src/common-settings.ts index dbf00f01..a33ebbc1 100644 --- a/local-network/deploy/src/common-settings.ts +++ b/local-network/deploy/src/common-settings.ts @@ -21,7 +21,7 @@ function mkWavesAccount(seed: string, nonce: number): WavesAccount { } } -export const elBridgeContractAddress = '0x1000000000000000000000000000000000000000'; +export const elBridgeContractAddress = '0x0000000000000000000000000000000000006a7e'; export const chainContract = mkWavesAccount('devnet-1', 2); export const wavesMiner1 = mkWavesAccount('devnet-1', 0); export const wavesMiner2 = mkWavesAccount('devnet-2', 0); diff --git a/local-network/deploy/src/waves-txs.ts b/local-network/deploy/src/waves-txs.ts index 73688d9d..bb4a9275 100644 --- a/local-network/deploy/src/waves-txs.ts +++ b/local-network/deploy/src/waves-txs.ts @@ -35,12 +35,6 @@ export function ccSetup(elGenesisBlockHashHex: string) { // 2_000_000_000 Gwei = 2_000_000_000*10^9 Wei = 2*10^18 Wei = 2 UNIT0 for epoch, // see bridge.sol for conversion details value: 2_000_000_000 - }, - { - // elBridgeAddressHex - type: "string", - // npx tsx common-settings-show.ts and see elBridgeContractAddress. - value: s.elBridgeContractAddress.substring(2) } ] } diff --git a/src/test/resources/main.ride b/src/test/resources/main.ride index 090100e1..dc6efa6b 100644 --- a/src/test/resources/main.ride +++ b/src/test/resources/main.ride @@ -413,10 +413,10 @@ func startAltChain( @Callable(i) func extendAltChain( - chainId: Int, blockHashHex: String, referenceHex: String, vrf: ByteVector, + chainId: Int, elToClTransfersRootHashHex: String, lastClToElTransferIndex: Int ) = { @@ -656,19 +656,14 @@ func withdraw(blockHashHex: String, merkleProof: List[ByteVector], transferIndex } # genesisBlockHashHex without 0x -# elBridgeAddressHex without 0x @Callable(i) -func setup(genesisBlockHashHex: String, minerRewardInGwei: Int, elBridgeAddressHex: String) = { +func setup(genesisBlockHashHex: String, minerRewardInGwei: Int) = { if (isContractSetup()) then throw("The contract has been already set up") else if (minerRewardInGwei < 0) then throw("The miner reward must be nonnegative") else { let genesisBlockHash = genesisBlockHashHex.fromBase16String() strict checkGenesisBlockHashSize = if (genesisBlockHash.size() == BLOCK_HASH_SIZE) then true else throw("Wrong genesis block hash") - strict checkElBridgeAddress = if (elBridgeAddressHex.size() == ETH_ADDRESS_STR_SIZE) - then fromBase16String(elBridgeAddressHex) - else throw("Wrong bridge address") - let emptyPk = base58'11111111111111111111111111111111' let genesisMinerAddress = addressFromPublicKey(emptyPk) let genesisEthRewardAddress = base16'0000000000000000000000000000000000000000' @@ -696,7 +691,7 @@ func setup(genesisBlockHashHex: String, minerRewardInGwei: Int, elBridgeAddressH StringEntry(finalizedBlockKey, genesisBlockHashHex), issue, StringEntry(tokenIdKey, tokenId.toBase58String()), - StringEntry(elBridgeAddressKey, "0x" + elBridgeAddressHex) + StringEntry(elBridgeAddressKey, "0x0000000000000000000000000000000000006a7e") ] } } diff --git a/src/test/scala/units/BaseIntegrationTestSuite.scala b/src/test/scala/units/BaseIntegrationTestSuite.scala index 3463cebb..c94b4e42 100644 --- a/src/test/scala/units/BaseIntegrationTestSuite.scala +++ b/src/test/scala/units/BaseIntegrationTestSuite.scala @@ -29,7 +29,7 @@ trait BaseIntegrationTestSuite with CustomMatchers { protected def defaultSettings = TestSettings.Default protected val elMinerDefaultReward = Gwei.ofRawGwei(2_000_000_000L) - protected val elBridgeAddress = EthAddress.unsafeFrom("0x189643C45cC2782DFd42185d0cD86B71943D6315") + protected val elBridgeAddress = EthAddress.unsafeFrom("0x0000000000000000000000000000000000006a7e") protected def withExtensionDomain[R](settings: TestSettings = defaultSettings)(f: ExtensionDomain => R): R = withExtensionDomainUninitialized(settings) { d => diff --git a/src/test/scala/units/ExtensionDomain.scala b/src/test/scala/units/ExtensionDomain.scala index dbbb00c4..8db036a9 100644 --- a/src/test/scala/units/ExtensionDomain.scala +++ b/src/test/scala/units/ExtensionDomain.scala @@ -58,7 +58,7 @@ class ExtensionDomain( blockchainUpdater: BlockchainUpdaterImpl, rocksDBWriter: RocksDBWriter, settings: WavesSettings, - override val elBridgeAddress: EthAddress, + elBridgeAddress: EthAddress, elMinerDefaultReward: Gwei ) extends Domain(rdb, blockchainUpdater, rocksDBWriter, settings) with HasConsensusLayerDappTxHelpers diff --git a/src/test/scala/units/client/contract/HasConsensusLayerDappTxHelpers.scala b/src/test/scala/units/client/contract/HasConsensusLayerDappTxHelpers.scala index 4c3085c1..f7aba6db 100644 --- a/src/test/scala/units/client/contract/HasConsensusLayerDappTxHelpers.scala +++ b/src/test/scala/units/client/contract/HasConsensusLayerDappTxHelpers.scala @@ -16,8 +16,6 @@ import units.eth.{EthAddress, EthereumConstants} import units.util.HexBytesConverter trait HasConsensusLayerDappTxHelpers { - def elBridgeAddress: EthAddress - def currentHitSource: ByteStr def chainContractAccount: KeyPair @@ -31,8 +29,7 @@ trait HasConsensusLayerDappTxHelpers { func = "setup".some, args = List( Terms.CONST_STRING(genesisBlock.hash.drop(2)).explicitGet(), - Terms.CONST_LONG(elMinerReward), - Terms.CONST_STRING(elBridgeAddress.hexNoPrefix).explicitGet() + Terms.CONST_LONG(elMinerReward) ), fee = setupFee ) @@ -126,10 +123,10 @@ trait HasConsensusLayerDappTxHelpers { dApp = chainContractAddress, func = "extendAltChain".some, args = List( - Terms.CONST_LONG(chainId), Terms.CONST_STRING(block.hash.drop(2)).explicitGet(), Terms.CONST_STRING(block.parentHash.drop(2)).explicitGet(), Terms.CONST_BYTESTR(vrf).explicitGet(), + Terms.CONST_LONG(chainId), Terms.CONST_STRING(e2CTransfersRootHashHex.drop(2)).explicitGet(), Terms.CONST_LONG(lastC2ETransferIndex) ),