Exemple #1
0
 // TODO: auto create ecdsa here
 public TransactionBuilder <T> SignedAndResolved(IEthereumEcdsa ecdsa, PrivateKey privateKey, bool isEip155Enabled = true)
 {
     // make sure that you do not change anything in the tx after signing as this will lead to a different recovered address
     ecdsa.Sign(privateKey, TestObjectInternal, isEip155Enabled);
     TestObjectInternal.SenderAddress = privateKey.Address;
     return(this);
 }
        private void TimerOnElapsed(object sender, ElapsedEventArgs elapsedEventArgs)
        {
            _timer.Interval = RandomizeDelay().TotalMilliseconds;
            _logger.Debug($"Generating a test transaction for testing ({_count}).");

            Transaction tx = new Transaction();

            tx.GasPrice      = 1;
            tx.GasLimit      = 21000;
            tx.To            = new Address(0x0f.ToBigEndianByteArray().PadLeft(20));
            tx.Nonce         = _nonce++;
            tx.Value         = 1;
            tx.Data          = new byte[0];
            tx.Nonce         = _count++;
            tx.SenderAddress = SenderAddress;
            _ecdsa.Sign(_privateKey, tx, 1);
            Address address = _ecdsa.RecoverAddress(tx, 1);

            if (address != tx.SenderAddress)
            {
                throw new InvalidDataException($"{nameof(TestTransactionsGenerator)} producing invalid transactions");
            }

            tx.Hash = Transaction.CalculateHash(tx);

            _transactionPool.AddTransaction(tx, 1);
            _logger.Debug($"Generated a test transaction for testing ({_count - 1}).");
        }
Exemple #3
0
            private Transaction[] SignTransactions(IEthereumEcdsa ecdsa, PrivateKey key, UInt256 baseNonce, params Transaction[] transactions)
            {
                for (var index = 0; index < transactions.Length; index++)
                {
                    Transaction transaction = transactions[index];
                    ecdsa.Sign(key, transaction, true);
                    transaction.SenderAddress = key.Address;
                    transaction.Nonce         = (UInt256)index + baseNonce;
                    transaction.Hash          = transaction.CalculateHash();
                }

                return(transactions);
            }
        private void TestEncodeDecode(IEthereumEcdsa ecdsa)
        {
            AuthEip8Message authMessage = new AuthEip8Message();

            authMessage.Nonce     = new byte[AuthMessageSerializer.NonceLength]; // sic!
            authMessage.Signature = ecdsa.Sign(_privateKey, Keccak.Compute("anything"));
            authMessage.PublicKey = _privateKey.PublicKey;
            _random.NextBytes(authMessage.Nonce);
            byte[]          data  = _serializer.Serialize(authMessage);
            AuthEip8Message after = _serializer.Deserialize(data);

            Assert.AreEqual(authMessage.Signature, after.Signature);
            Assert.AreEqual(authMessage.PublicKey, after.PublicKey);
            Assert.True(Bytes.AreEqual(authMessage.Nonce, after.Nonce));
            Assert.AreEqual(authMessage.Version, after.Version);
        }
        private void TestEncodeDecode(IEthereumEcdsa ecdsa)
        {
            AuthMessage authMessage = new AuthMessage();

            authMessage.EphemeralPublicHash = new Keccak(new byte[AuthMessageSerializer.EphemeralHashLength]);
            authMessage.Nonce     = new byte[AuthMessageSerializer.NonceLength];
            authMessage.Signature = ecdsa.Sign(_privateKey, Keccak.Compute("anything"));
            _random.NextBytes(authMessage.EphemeralPublicHash.Bytes);
            authMessage.PublicKey = _privateKey.PublicKey;
            _random.NextBytes(authMessage.Nonce);
            authMessage.IsTokenUsed = true;
            byte[]      bytes = _serializer.Serialize(authMessage);
            AuthMessage after = _serializer.Deserialize(bytes);

            Assert.AreEqual(authMessage.Signature, after.Signature);
            Assert.AreEqual(authMessage.EphemeralPublicHash, after.EphemeralPublicHash);
            Assert.AreEqual(authMessage.PublicKey, after.PublicKey);
            Assert.True(Bytes.AreEqual(authMessage.Nonce, after.Nonce));
            Assert.AreEqual(authMessage.IsTokenUsed, after.IsTokenUsed);
        }
Exemple #6
0
 public TransactionBuilder <T> Signed(IEthereumEcdsa ecdsa, PrivateKey privateKey, bool isEip155Enabled = true)
 {
     ecdsa.Sign(privateKey, TestObjectInternal, isEip155Enabled);
     return(this);
 }
Exemple #7
0
 // TODO: auto create ecdsa here
 public TransactionBuilder SignedAndResolved(IEthereumEcdsa ecdsa, PrivateKey privateKey, long blockNumber)
 {
     ecdsa.Sign(privateKey, TestObjectInternal, blockNumber);
     TestObjectInternal.SenderAddress = privateKey.Address;
     return(this);
 }
Exemple #8
0
 public TransactionBuilder Signed(IEthereumEcdsa ecdsa, PrivateKey privateKey, long blockNumber)
 {
     ecdsa.Sign(privateKey, TestObjectInternal, blockNumber);
     return(this);
 }