Search in sources :

Example 21 with LogInfo

use of org.ethereum.vm.LogInfo in project rskj by rsksmart.

the class BridgeEventLoggerImpl method logUpdateCollectionsInSolidityFormat.

private void logUpdateCollectionsInSolidityFormat(Transaction rskTx) {
    CallTransaction.Function event = BridgeEvents.UPDATE_COLLECTIONS.getEvent();
    byte[][] encodedTopicsInBytes = event.encodeEventTopics();
    List<DataWord> encodedTopics = LogInfo.byteArrayToList(encodedTopicsInBytes);
    byte[] encodedData = event.encodeEventData(rskTx.getSender().toString());
    this.logs.add(new LogInfo(BRIDGE_CONTRACT_ADDRESS, encodedTopics, encodedData));
}
Also used : LogInfo(org.ethereum.vm.LogInfo) CallTransaction(org.ethereum.core.CallTransaction) DataWord(org.ethereum.vm.DataWord)

Example 22 with LogInfo

use of org.ethereum.vm.LogInfo in project rskj by rsksmart.

the class BridgeEventLoggerImpl method logPeginBtc.

public void logPeginBtc(RskAddress receiver, BtcTransaction btcTx, Coin amount, int protocolVersion) {
    CallTransaction.Function event = BridgeEvents.PEGIN_BTC.getEvent();
    byte[][] encodedTopicsInBytes = event.encodeEventTopics(receiver.toString(), btcTx.getHash().getBytes());
    List<DataWord> encodedTopics = LogInfo.byteArrayToList(encodedTopicsInBytes);
    byte[] encodedData = event.encodeEventData(amount.getValue(), protocolVersion);
    this.logs.add(new LogInfo(BRIDGE_CONTRACT_ADDRESS, encodedTopics, encodedData));
}
Also used : LogInfo(org.ethereum.vm.LogInfo) CallTransaction(org.ethereum.core.CallTransaction) DataWord(org.ethereum.vm.DataWord)

Example 23 with LogInfo

use of org.ethereum.vm.LogInfo in project rskj by rsksmart.

the class BridgeEventLoggerImpl method logReleaseBtcRequestReceived.

@Override
public void logReleaseBtcRequestReceived(String sender, byte[] btcDestinationAddress, Coin amount) {
    CallTransaction.Function event = BridgeEvents.RELEASE_REQUEST_RECEIVED.getEvent();
    byte[][] encodedTopicsInBytes = event.encodeEventTopics(sender);
    List<DataWord> encodedTopics = LogInfo.byteArrayToList(encodedTopicsInBytes);
    byte[] encodedData = event.encodeEventData(btcDestinationAddress, amount.getValue());
    this.logs.add(new LogInfo(BRIDGE_CONTRACT_ADDRESS, encodedTopics, encodedData));
}
Also used : LogInfo(org.ethereum.vm.LogInfo) CallTransaction(org.ethereum.core.CallTransaction) DataWord(org.ethereum.vm.DataWord)

Example 24 with LogInfo

use of org.ethereum.vm.LogInfo in project rskj by rsksmart.

the class BridgeEventLoggerImpl method logReleaseBtcRequestRejected.

@Override
public void logReleaseBtcRequestRejected(String sender, Coin amount, RejectedPegoutReason reason) {
    CallTransaction.Function event = BridgeEvents.RELEASE_REQUEST_REJECTED.getEvent();
    byte[][] encodedTopicsInBytes = event.encodeEventTopics(sender);
    List<DataWord> encodedTopics = LogInfo.byteArrayToList(encodedTopicsInBytes);
    byte[] encodedData = event.encodeEventData(amount.getValue(), reason.getValue());
    this.logs.add(new LogInfo(BRIDGE_CONTRACT_ADDRESS, encodedTopics, encodedData));
}
Also used : LogInfo(org.ethereum.vm.LogInfo) CallTransaction(org.ethereum.core.CallTransaction) DataWord(org.ethereum.vm.DataWord)

Example 25 with LogInfo

use of org.ethereum.vm.LogInfo in project rskj by rsksmart.

the class BridgeEventLoggerImpl method logCommitFederationInSolidityFormat.

private void logCommitFederationInSolidityFormat(Block executionBlock, Federation oldFederation, Federation newFederation) {
    // Convert old federation public keys in bytes array
    byte[] oldFederationFlatPubKeys = flatKeysAsByteArray(oldFederation.getBtcPublicKeys());
    String oldFederationBtcAddress = oldFederation.getAddress().toBase58();
    byte[] newFederationFlatPubKeys = flatKeysAsByteArray(newFederation.getBtcPublicKeys());
    String newFederationBtcAddress = newFederation.getAddress().toBase58();
    long newFedActivationBlockNumber = executionBlock.getNumber() + this.bridgeConstants.getFederationActivationAge();
    CallTransaction.Function event = BridgeEvents.COMMIT_FEDERATION.getEvent();
    byte[][] encodedTopicsInBytes = event.encodeEventTopics();
    List<DataWord> encodedTopics = LogInfo.byteArrayToList(encodedTopicsInBytes);
    byte[] encodedData = event.encodeEventData(oldFederationFlatPubKeys, oldFederationBtcAddress, newFederationFlatPubKeys, newFederationBtcAddress, newFedActivationBlockNumber);
    this.logs.add(new LogInfo(BRIDGE_CONTRACT_ADDRESS, encodedTopics, encodedData));
}
Also used : LogInfo(org.ethereum.vm.LogInfo) CallTransaction(org.ethereum.core.CallTransaction) DataWord(org.ethereum.vm.DataWord)

Aggregations

LogInfo (org.ethereum.vm.LogInfo)74 DataWord (org.ethereum.vm.DataWord)36 Test (org.junit.Test)35 ArrayList (java.util.ArrayList)25 CallTransaction (org.ethereum.core.CallTransaction)23 Transaction (org.ethereum.core.Transaction)17 RskAddress (co.rsk.core.RskAddress)13 BridgeEventLoggerImpl (co.rsk.peg.utils.BridgeEventLoggerImpl)12 ActivationConfigsForTest (org.ethereum.config.blockchain.upgrades.ActivationConfigsForTest)11 InternalTransaction (org.ethereum.vm.program.InternalTransaction)11 Block (org.ethereum.core.Block)9 Repository (org.ethereum.core.Repository)9 RepositoryImpl (co.rsk.db.RepositoryImpl)8 Keccak256 (co.rsk.crypto.Keccak256)7 BigInteger (java.math.BigInteger)7 ActivationConfig (org.ethereum.config.blockchain.upgrades.ActivationConfig)7 RLPList (org.ethereum.util.RLPList)6 LinkedList (java.util.LinkedList)4 RLPElement (org.ethereum.util.RLPElement)4 Coin (co.rsk.core.Coin)3