diff --git a/bmv/bsc2/build.gradle b/bmv/bsc2/build.gradle index 52a5494..a4caf03 100644 --- a/bmv/bsc2/build.gradle +++ b/bmv/bsc2/build.gradle @@ -1,4 +1,4 @@ -version = '0.6.0' +version = '0.6.1' dependencies { compileOnly("foundation.icon:javaee-api:$javaeeVersion") diff --git a/bmv/bsc2/src/main/java/foundation/icon/btp/bmv/bsc2/BTPMessageVerifier.java b/bmv/bsc2/src/main/java/foundation/icon/btp/bmv/bsc2/BTPMessageVerifier.java index e59c3e3..ad2be5b 100644 --- a/bmv/bsc2/src/main/java/foundation/icon/btp/bmv/bsc2/BTPMessageVerifier.java +++ b/bmv/bsc2/src/main/java/foundation/icon/btp/bmv/bsc2/BTPMessageVerifier.java @@ -302,7 +302,7 @@ private void verify(ChainConfig config, Header head) { Context.require(head.getGasUsed().compareTo(head.getGasLimit()) < 0, "Invalid gas used"); Context.require(head.getSigner(BigInteger.valueOf(config.ChainID)).equals(head.getCoinbase()), "Coinbase mismatch"); - if (config.isTycho(head.getNumber())) { + if (config.isTycho(head.getTime())) { Context.require(head.getWithdrawalsHash().equals(EMPTY_WITHDRAWALS_HASH), "Invalid withdrawals hash"); } } diff --git a/bmv/bsc2/src/main/java/foundation/icon/btp/bmv/bsc2/ChainConfig.java b/bmv/bsc2/src/main/java/foundation/icon/btp/bmv/bsc2/ChainConfig.java index d4020ca..55ca19c 100644 --- a/bmv/bsc2/src/main/java/foundation/icon/btp/bmv/bsc2/ChainConfig.java +++ b/bmv/bsc2/src/main/java/foundation/icon/btp/bmv/bsc2/ChainConfig.java @@ -50,11 +50,12 @@ public static ChainConfig getInstance() { public static ChainConfig fromChainID(BigInteger cid) { if (cid.longValue() == 56L) { // BSC Mainnet - return new ChainConfig(56L, 200L, 3L, BigInteger.valueOf(31302048L), null); + return new ChainConfig(56L, 200L, 3L, BigInteger.valueOf(31302048L), + BigInteger.valueOf(1718863500L)); } else if (cid.longValue() == 97L) { // BSC Testnet return new ChainConfig(97L, 200L, 3L, BigInteger.valueOf(31103030L), - BigInteger.valueOf(39539137L)); + BigInteger.valueOf(1713330442L)); } else if (cid.longValue() == 99L) { // Private BSC Testnet return new ChainConfig(99L, 200L, 3L, BigInteger.valueOf(8), null); @@ -72,8 +73,8 @@ public boolean isHertz(BigInteger number) { return Hertz != null && Hertz.compareTo(number) <= 0; } - public boolean isTycho(BigInteger number) { - return Tycho != null && Tycho.compareTo(number) <= 0; + public boolean isTycho(long time) { + return Tycho != null && Tycho.longValue() <= time; } } diff --git a/bmv/bsc2/src/main/java/foundation/icon/btp/bmv/bsc2/Header.java b/bmv/bsc2/src/main/java/foundation/icon/btp/bmv/bsc2/Header.java index 5ec549e..efcaccd 100644 --- a/bmv/bsc2/src/main/java/foundation/icon/btp/bmv/bsc2/Header.java +++ b/bmv/bsc2/src/main/java/foundation/icon/btp/bmv/bsc2/Header.java @@ -122,7 +122,7 @@ public static Header readObject(ObjectReader r) { Hash withdrawalsHash = Hash.EMPTY; BigInteger blobGasUsed = null; BigInteger excessBlobGas = null; - if (ChainConfig.getInstance().isTycho(number)) { + if (ChainConfig.getInstance().isTycho(time)) { withdrawalsHash = r.read(Hash.class); blobGasUsed = r.readBigInteger(); excessBlobGas = r.readBigInteger(); @@ -135,7 +135,7 @@ public static Header readObject(ObjectReader r) { } public static void writeObject(ObjectWriter w, Header o) { - if (ChainConfig.getInstance().isTycho(o.number)) { + if (ChainConfig.getInstance().isTycho(o.time)) { w.beginList(19); } else if (ChainConfig.getInstance().isHertz(o.number)) { w.beginList(16); @@ -161,7 +161,7 @@ public static void writeObject(ObjectWriter w, Header o) { Context.require(o.baseFee != null, "no fields for hertz"); w.write(o.baseFee); } - if (ChainConfig.getInstance().isTycho(o.number)) { + if (ChainConfig.getInstance().isTycho(o.time)) { Context.require(o.withdrawalsHash != Hash.EMPTY && o.blobGasUsed != null && o.excessBlobGas != null, "no fields for tycho"); w.write(o.withdrawalsHash);