mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Merge remote-tracking branch 'upstream/develop' into stateTests
Conflicts: test/vm.cpp test/vmArithmeticTestFiller.json test/vmSha3TestFiller.json
This commit is contained in:
commit
8e6bfb1fb3
305
crypto.cpp
305
crypto.cpp
@ -28,6 +28,7 @@
|
|||||||
#include <libethereum/Transaction.h>
|
#include <libethereum/Transaction.h>
|
||||||
#include <boost/test/unit_test.hpp>
|
#include <boost/test/unit_test.hpp>
|
||||||
#include <libdevcrypto/EC.h>
|
#include <libdevcrypto/EC.h>
|
||||||
|
#include <libdevcrypto/SHA3MAC.h>
|
||||||
#include "TestHelperCrypto.h"
|
#include "TestHelperCrypto.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
@ -46,107 +47,220 @@ BOOST_AUTO_TEST_CASE(common_encrypt_decrypt)
|
|||||||
KeyPair k = KeyPair::create();
|
KeyPair k = KeyPair::create();
|
||||||
bytes cipher;
|
bytes cipher;
|
||||||
encrypt(k.pub(), bcr, cipher);
|
encrypt(k.pub(), bcr, cipher);
|
||||||
assert(cipher != asBytes(message) && cipher.size() > 0);
|
BOOST_REQUIRE(cipher != asBytes(message) && cipher.size() > 0);
|
||||||
|
|
||||||
bytes plain;
|
bytes plain;
|
||||||
decrypt(k.sec(), bytesConstRef(&cipher), plain);
|
decrypt(k.sec(), bytesConstRef(&cipher), plain);
|
||||||
|
|
||||||
assert(asString(plain) == message);
|
BOOST_REQUIRE(asString(plain) == message);
|
||||||
assert(plain == asBytes(message));
|
BOOST_REQUIRE(plain == asBytes(message));
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(cryptopp_vs_secp256k1)
|
BOOST_AUTO_TEST_CASE(cryptopp_vs_secp256k1)
|
||||||
{
|
{
|
||||||
ECIES<ECP>::Decryptor d(pp::PRNG(), pp::secp256k1());
|
ECIES<ECP>::Decryptor d(pp::PRNG, pp::secp256k1Curve);
|
||||||
ECIES<ECP>::Encryptor e(d.GetKey());
|
ECIES<ECP>::Encryptor e(d.GetKey());
|
||||||
|
|
||||||
Secret s;
|
Secret s;
|
||||||
pp::SecretFromDL_PrivateKey_EC(d.GetKey(), s);
|
pp::exportPrivateKey(d.GetKey(), s);
|
||||||
|
|
||||||
Public p;
|
Public p;
|
||||||
pp::PublicFromDL_PublicKey_EC(e.GetKey(), p);
|
pp::exportPublicKey(e.GetKey(), p);
|
||||||
|
|
||||||
assert(dev::toAddress(s) == right160(dev::sha3(p.ref())));
|
BOOST_REQUIRE(dev::toAddress(s) == right160(dev::sha3(p.ref())));
|
||||||
|
|
||||||
Secret previous = s;
|
Secret previous = s;
|
||||||
for (auto i = 0; i < 30; i++)
|
for (auto i = 0; i < 2; i++)
|
||||||
{
|
{
|
||||||
ECIES<ECP>::Decryptor d(pp::PRNG(), pp::secp256k1());
|
ECIES<ECP>::Decryptor d(pp::PRNG, pp::secp256k1Curve);
|
||||||
ECIES<ECP>::Encryptor e(d.GetKey());
|
ECIES<ECP>::Encryptor e(d.GetKey());
|
||||||
|
|
||||||
Secret s;
|
Secret s;
|
||||||
pp::SecretFromDL_PrivateKey_EC(d.GetKey(), s);
|
pp::exportPrivateKey(d.GetKey(), s);
|
||||||
assert(s != previous);
|
BOOST_REQUIRE(s != previous);
|
||||||
|
|
||||||
Public p;
|
Public p;
|
||||||
pp::PublicFromDL_PublicKey_EC(e.GetKey(), p);
|
pp::exportPublicKey(e.GetKey(), p);
|
||||||
|
|
||||||
assert(dev::toAddress(s) == right160(dev::sha3(p.ref())));
|
h160 secp256k1Addr = dev::toAddress(s);
|
||||||
|
h160 cryptoppAddr = right160(dev::sha3(p.ref()));
|
||||||
|
if (secp256k1Addr != cryptoppAddr)
|
||||||
|
{
|
||||||
|
BOOST_REQUIRE(secp256k1Addr == cryptoppAddr);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(cryptopp_keys_cryptor_sipaseckp256k1)
|
BOOST_AUTO_TEST_CASE(cryptopp_cryptopp_secp256k1libport)
|
||||||
{
|
{
|
||||||
KeyPair k = KeyPair::create();
|
// cryptopp implementation of secp256k1lib sign_compact w/recid parameter and recovery of public key from signature
|
||||||
Secret s = k.sec();
|
|
||||||
|
|
||||||
// Convert secret to exponent used by pp
|
// base secret
|
||||||
Integer e = pp::ExponentFromSecret(s);
|
Secret secret(sha3("privacy"));
|
||||||
|
|
||||||
// Test that exported DL_EC private is same as exponent from Secret
|
// we get ec params from signer
|
||||||
CryptoPP::DL_PrivateKey_EC<CryptoPP::ECP> privatek;
|
const CryptoPP::DL_GroupParameters_EC<CryptoPP::ECP> params = pp::secp256k1Params;
|
||||||
privatek.AccessGroupParameters().Initialize(pp::secp256k1());
|
ECDSA<ECP, SHA3_256>::Signer signer;
|
||||||
privatek.SetPrivateExponent(e);
|
|
||||||
assert(e == privatek.GetPrivateExponent());
|
|
||||||
|
|
||||||
// Test that exported secret is same as decryptor(privatek) secret
|
// e := sha3(msg)
|
||||||
ECIES<ECP>::Decryptor d;
|
bytes e(fromHex("0x01"));
|
||||||
d.AccessKey().AccessGroupParameters().Initialize(pp::secp256k1());
|
e.resize(32);
|
||||||
d.AccessKey().SetPrivateExponent(e);
|
int tests = 2; // Oct 29: successful @ 1500
|
||||||
assert(d.AccessKey().GetPrivateExponent() == e);
|
while (sha3(&e, &e), secret = sha3(secret.asBytes()), tests--)
|
||||||
|
{
|
||||||
|
KeyPair key(secret);
|
||||||
|
Public pkey = key.pub();
|
||||||
|
pp::initializeDLScheme(secret, signer);
|
||||||
|
|
||||||
// Test that decryptor->encryptor->public == private->makepublic->public
|
h256 he(sha3(e));
|
||||||
CryptoPP::DL_PublicKey_EC<CryptoPP::ECP> pubk;
|
Integer heInt(he.asBytes().data(), 32);
|
||||||
pubk.AccessGroupParameters().Initialize(pp::secp256k1());
|
h256 k(crypto::kdf(secret, he));
|
||||||
privatek.MakePublicKey(pubk);
|
Integer kInt(k.asBytes().data(), 32);
|
||||||
|
kInt %= params.GetSubgroupOrder()-1;
|
||||||
|
|
||||||
ECIES<ECP>::Encryptor enc(d);
|
ECP::Point rp = params.ExponentiateBase(kInt);
|
||||||
assert(pubk.GetPublicElement() == enc.AccessKey().GetPublicElement());
|
Integer const& q = params.GetGroupOrder();
|
||||||
|
Integer r = params.ConvertElementToInteger(rp);
|
||||||
|
int recid = ((r >= q) ? 2 : 0) | (rp.y.IsOdd() ? 1 : 0);
|
||||||
|
|
||||||
// Test against sipa/seckp256k1
|
Integer kInv = kInt.InverseMod(q);
|
||||||
Public p;
|
Integer s = (kInv * (Integer(secret.asBytes().data(), 32)*r + heInt)) % q;
|
||||||
pp::PublicFromExponent(pp::ExponentFromSecret(s), p);
|
BOOST_REQUIRE(!!r && !!s);
|
||||||
assert(toAddress(s) == dev::right160(dev::sha3(p.ref())));
|
|
||||||
assert(k.pub() == p);
|
/*
|
||||||
|
// For future reference:
|
||||||
|
// According to maths, this codepath can't be reached, however, it's in secp256k1.
|
||||||
|
// Commenting this out diverges from codebase implementation.
|
||||||
|
// To be removed after upstream PR and proof are evaulated.
|
||||||
|
|
||||||
|
if (s > params.GetSubgroupOrder())
|
||||||
|
{
|
||||||
|
// note: this rarely happens
|
||||||
|
s = params.GetGroupOrder() - s;
|
||||||
|
if (recid)
|
||||||
|
recid ^= 1;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
Signature sig;
|
||||||
|
r.Encode(sig.data(), 32);
|
||||||
|
s.Encode(sig.data() + 32, 32);
|
||||||
|
sig[64] = recid;
|
||||||
|
|
||||||
|
Public p = dev::recover(sig, he);
|
||||||
|
BOOST_REQUIRE(p == pkey);
|
||||||
|
|
||||||
|
// verify w/cryptopp
|
||||||
|
BOOST_REQUIRE(crypto::verify(pkey, sig, bytesConstRef(&e)));
|
||||||
|
|
||||||
|
// verify with secp256k1lib
|
||||||
|
byte encpub[65] = {0x04};
|
||||||
|
memcpy(&encpub[1], pkey.data(), 64);
|
||||||
|
byte dersig[72];
|
||||||
|
size_t cssz = DSAConvertSignatureFormat(dersig, 72, DSA_DER, sig.data(), 64, DSA_P1363);
|
||||||
|
BOOST_CHECK(cssz <= 72);
|
||||||
|
BOOST_REQUIRE(1 == secp256k1_ecdsa_verify(he.data(), sizeof(he), dersig, cssz, encpub, 65));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
BOOST_AUTO_TEST_CASE(cryptopp_ecdsa_sipaseckp256k1)
|
||||||
|
{
|
||||||
|
// cryptopp integer encoding
|
||||||
|
Integer nHex("f2ee15ea639b73fa3db9b34a245bdfa015c260c598b211bf05a1ecc4b3e3b4f2H");
|
||||||
|
Integer nB(fromHex("f2ee15ea639b73fa3db9b34a245bdfa015c260c598b211bf05a1ecc4b3e3b4f2").data(), 32);
|
||||||
|
BOOST_REQUIRE(nHex == nB);
|
||||||
|
|
||||||
|
bytes sbytes(fromHex("0x01"));
|
||||||
|
Secret secret(sha3(sbytes)); // 5fe7f977e71dba2ea1a68e21057beebb9be2ac30c6410aa38d4f3fbe41dcffd2
|
||||||
|
KeyPair key(secret);
|
||||||
|
|
||||||
|
bytes m(fromHex("0x01"));
|
||||||
|
int tests = 2;
|
||||||
|
while (m[0]++, tests--)
|
||||||
|
{
|
||||||
|
h256 hm(sha3(m));
|
||||||
|
Integer hInt(hm.asBytes().data(), 32);
|
||||||
|
h256 k(hm ^ key.sec());
|
||||||
|
Integer kInt(k.asBytes().data(), 32);
|
||||||
|
|
||||||
|
// raw sign w/cryptopp (doesn't pass through cryptopp hash filter)
|
||||||
|
ECDSA<ECP, SHA3_256>::Signer signer;
|
||||||
|
pp::initializeDLScheme(key.sec(), signer);
|
||||||
|
Integer r, s;
|
||||||
|
signer.RawSign(kInt, hInt, r, s);
|
||||||
|
|
||||||
|
// verify cryptopp raw-signature w/cryptopp
|
||||||
|
ECDSA<ECP, SHA3_256>::Verifier verifier;
|
||||||
|
pp::initializeDLScheme(key.pub(), verifier);
|
||||||
|
Signature sigppraw;
|
||||||
|
r.Encode(sigppraw.data(), 32);
|
||||||
|
s.Encode(sigppraw.data() + 32, 32);
|
||||||
|
BOOST_REQUIRE(verifier.VerifyMessage(m.data(), m.size(), sigppraw.data(), 64));
|
||||||
|
BOOST_REQUIRE(crypto::verify(key.pub(), sigppraw, bytesConstRef(&m)));
|
||||||
|
BOOST_REQUIRE(dev::verify(key.pub(), sigppraw, hm));
|
||||||
|
|
||||||
|
// sign with cryptopp, verify, recover w/sec256lib
|
||||||
|
Signature seclibsig(dev::sign(key.sec(), hm));
|
||||||
|
BOOST_REQUIRE(verifier.VerifyMessage(m.data(), m.size(), seclibsig.data(), 64));
|
||||||
|
BOOST_REQUIRE(crypto::verify(key.pub(), seclibsig, bytesConstRef(&m)));
|
||||||
|
BOOST_REQUIRE(dev::verify(key.pub(), seclibsig, hm));
|
||||||
|
BOOST_REQUIRE(dev::recover(seclibsig, hm) == key.pub());
|
||||||
|
|
||||||
|
// sign with cryptopp (w/hash filter?), verify with cryptopp
|
||||||
|
bytes sigppb(signer.MaxSignatureLength());
|
||||||
|
size_t ssz = signer.SignMessage(pp::PRNG, m.data(), m.size(), sigppb.data());
|
||||||
|
Signature sigpp;
|
||||||
|
memcpy(sigpp.data(), sigppb.data(), 64);
|
||||||
|
BOOST_REQUIRE(verifier.VerifyMessage(m.data(), m.size(), sigppb.data(), ssz));
|
||||||
|
BOOST_REQUIRE(crypto::verify(key.pub(), sigpp, bytesConstRef(&m)));
|
||||||
|
BOOST_REQUIRE(dev::verify(key.pub(), sigpp, hm));
|
||||||
|
|
||||||
|
// sign with cryptopp and stringsource hash filter
|
||||||
|
string sigstr;
|
||||||
|
StringSource ssrc(asString(m), true, new SignerFilter(pp::PRNG, signer, new StringSink(sigstr)));
|
||||||
|
FixedHash<sizeof(Signature)> retsig((byte const*)sigstr.data(), Signature::ConstructFromPointer);
|
||||||
|
BOOST_REQUIRE(verifier.VerifyMessage(m.data(), m.size(), retsig.data(), 64));
|
||||||
|
BOOST_REQUIRE(crypto::verify(key.pub(), retsig, bytesConstRef(&m)));
|
||||||
|
BOOST_REQUIRE(dev::verify(key.pub(), retsig, hm));
|
||||||
|
|
||||||
|
/// verification w/sec256lib
|
||||||
|
// requires public key and sig in standard format
|
||||||
|
byte encpub[65] = {0x04};
|
||||||
|
memcpy(&encpub[1], key.pub().data(), 64);
|
||||||
|
byte dersig[72];
|
||||||
|
|
||||||
|
// verify sec256lib sig w/sec256lib
|
||||||
|
size_t cssz = DSAConvertSignatureFormat(dersig, 72, DSA_DER, seclibsig.data(), 64, DSA_P1363);
|
||||||
|
BOOST_CHECK(cssz <= 72);
|
||||||
|
BOOST_REQUIRE(1 == secp256k1_ecdsa_verify(hm.data(), sizeof(hm), dersig, cssz, encpub, 65));
|
||||||
|
|
||||||
|
// verify cryptopp-raw sig w/sec256lib
|
||||||
|
cssz = DSAConvertSignatureFormat(dersig, 72, DSA_DER, sigppraw.data(), 64, DSA_P1363);
|
||||||
|
BOOST_CHECK(cssz <= 72);
|
||||||
|
BOOST_REQUIRE(1 == secp256k1_ecdsa_verify(hm.data(), sizeof(hm), dersig, cssz, encpub, 65));
|
||||||
|
|
||||||
|
// verify cryptopp sig w/sec256lib
|
||||||
|
cssz = DSAConvertSignatureFormat(dersig, 72, DSA_DER, sigppb.data(), 64, DSA_P1363);
|
||||||
|
BOOST_CHECK(cssz <= 72);
|
||||||
|
BOOST_REQUIRE(1 == secp256k1_ecdsa_verify(hm.data(), sizeof(hm), dersig, cssz, encpub, 65));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(cryptopp_public_export_import)
|
BOOST_AUTO_TEST_CASE(cryptopp_public_export_import)
|
||||||
{
|
{
|
||||||
ECIES<ECP>::Decryptor d(pp::PRNG(), pp::secp256k1());
|
ECIES<ECP>::Decryptor d(pp::PRNG, pp::secp256k1Curve);
|
||||||
ECIES<ECP>::Encryptor e(d.GetKey());
|
ECIES<ECP>::Encryptor e(d.GetKey());
|
||||||
|
|
||||||
Secret s;
|
Secret s;
|
||||||
pp::SecretFromDL_PrivateKey_EC(d.GetKey(), s);
|
pp::exportPrivateKey(d.GetKey(), s);
|
||||||
Public p;
|
Public p;
|
||||||
pp::PublicFromDL_PublicKey_EC(e.GetKey(), p);
|
pp::exportPublicKey(e.GetKey(), p);
|
||||||
Address addr = right160(dev::sha3(p.ref()));
|
Address addr = right160(dev::sha3(p.ref()));
|
||||||
assert(toAddress(s) == addr);
|
BOOST_REQUIRE(toAddress(s) == addr);
|
||||||
|
|
||||||
KeyPair l(s);
|
KeyPair l(s);
|
||||||
assert(l.address() == addr);
|
BOOST_REQUIRE(l.address() == addr);
|
||||||
|
|
||||||
DL_PublicKey_EC<ECP> pub;
|
|
||||||
pub.Initialize(pp::secp256k1(), pp::PointFromPublic(p));
|
|
||||||
assert(pub.GetPublicElement() == e.GetKey().GetPublicElement());
|
|
||||||
|
|
||||||
KeyPair k = KeyPair::create();
|
|
||||||
Public p2;
|
|
||||||
pp::PublicFromExponent(pp::ExponentFromSecret(k.sec()), p2);
|
|
||||||
assert(k.pub() == p2);
|
|
||||||
|
|
||||||
Address a = k.address();
|
|
||||||
Address a2 = toAddress(k.sec());
|
|
||||||
assert(a2 == a);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(ecies_eckeypair)
|
BOOST_AUTO_TEST_CASE(ecies_eckeypair)
|
||||||
@ -158,10 +272,10 @@ BOOST_AUTO_TEST_CASE(ecies_eckeypair)
|
|||||||
|
|
||||||
bytes b = asBytes(message);
|
bytes b = asBytes(message);
|
||||||
encrypt(k.pub(), b);
|
encrypt(k.pub(), b);
|
||||||
assert(b != asBytes(original));
|
BOOST_REQUIRE(b != asBytes(original));
|
||||||
|
|
||||||
decrypt(k.sec(), b);
|
decrypt(k.sec(), b);
|
||||||
assert(b == asBytes(original));
|
BOOST_REQUIRE(b == asBytes(original));
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(ecdhe_aes128_ctr_sha3mac)
|
BOOST_AUTO_TEST_CASE(ecdhe_aes128_ctr_sha3mac)
|
||||||
@ -172,9 +286,6 @@ BOOST_AUTO_TEST_CASE(ecdhe_aes128_ctr_sha3mac)
|
|||||||
// All connections should share seed for PRF (or PRNG) for nonces
|
// All connections should share seed for PRF (or PRNG) for nonces
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(cryptopp_ecies_message)
|
BOOST_AUTO_TEST_CASE(cryptopp_ecies_message)
|
||||||
@ -183,7 +294,7 @@ BOOST_AUTO_TEST_CASE(cryptopp_ecies_message)
|
|||||||
|
|
||||||
string const message("Now is the time for all good persons to come to the aide of humanity.");
|
string const message("Now is the time for all good persons to come to the aide of humanity.");
|
||||||
|
|
||||||
ECIES<ECP>::Decryptor localDecryptor(pp::PRNG(), pp::secp256k1());
|
ECIES<ECP>::Decryptor localDecryptor(pp::PRNG, pp::secp256k1Curve);
|
||||||
SavePrivateKey(localDecryptor.GetPrivateKey());
|
SavePrivateKey(localDecryptor.GetPrivateKey());
|
||||||
|
|
||||||
ECIES<ECP>::Encryptor localEncryptor(localDecryptor);
|
ECIES<ECP>::Encryptor localEncryptor(localDecryptor);
|
||||||
@ -191,43 +302,43 @@ BOOST_AUTO_TEST_CASE(cryptopp_ecies_message)
|
|||||||
|
|
||||||
ECIES<ECP>::Decryptor futureDecryptor;
|
ECIES<ECP>::Decryptor futureDecryptor;
|
||||||
LoadPrivateKey(futureDecryptor.AccessPrivateKey());
|
LoadPrivateKey(futureDecryptor.AccessPrivateKey());
|
||||||
futureDecryptor.GetPrivateKey().ThrowIfInvalid(pp::PRNG(), 3);
|
futureDecryptor.GetPrivateKey().ThrowIfInvalid(pp::PRNG, 3);
|
||||||
|
|
||||||
ECIES<ECP>::Encryptor futureEncryptor;
|
ECIES<ECP>::Encryptor futureEncryptor;
|
||||||
LoadPublicKey(futureEncryptor.AccessPublicKey());
|
LoadPublicKey(futureEncryptor.AccessPublicKey());
|
||||||
futureEncryptor.GetPublicKey().ThrowIfInvalid(pp::PRNG(), 3);
|
futureEncryptor.GetPublicKey().ThrowIfInvalid(pp::PRNG, 3);
|
||||||
|
|
||||||
// encrypt/decrypt with local
|
// encrypt/decrypt with local
|
||||||
string cipherLocal;
|
string cipherLocal;
|
||||||
StringSource ss1 (message, true, new PK_EncryptorFilter(pp::PRNG(), localEncryptor, new StringSink(cipherLocal) ) );
|
StringSource ss1 (message, true, new PK_EncryptorFilter(pp::PRNG, localEncryptor, new StringSink(cipherLocal) ) );
|
||||||
string plainLocal;
|
string plainLocal;
|
||||||
StringSource ss2 (cipherLocal, true, new PK_DecryptorFilter(pp::PRNG(), localDecryptor, new StringSink(plainLocal) ) );
|
StringSource ss2 (cipherLocal, true, new PK_DecryptorFilter(pp::PRNG, localDecryptor, new StringSink(plainLocal) ) );
|
||||||
|
|
||||||
// encrypt/decrypt with future
|
// encrypt/decrypt with future
|
||||||
string cipherFuture;
|
string cipherFuture;
|
||||||
StringSource ss3 (message, true, new PK_EncryptorFilter(pp::PRNG(), futureEncryptor, new StringSink(cipherFuture) ) );
|
StringSource ss3 (message, true, new PK_EncryptorFilter(pp::PRNG, futureEncryptor, new StringSink(cipherFuture) ) );
|
||||||
string plainFuture;
|
string plainFuture;
|
||||||
StringSource ss4 (cipherFuture, true, new PK_DecryptorFilter(pp::PRNG(), futureDecryptor, new StringSink(plainFuture) ) );
|
StringSource ss4 (cipherFuture, true, new PK_DecryptorFilter(pp::PRNG, futureDecryptor, new StringSink(plainFuture) ) );
|
||||||
|
|
||||||
// decrypt local w/future
|
// decrypt local w/future
|
||||||
string plainFutureFromLocal;
|
string plainFutureFromLocal;
|
||||||
StringSource ss5 (cipherLocal, true, new PK_DecryptorFilter(pp::PRNG(), futureDecryptor, new StringSink(plainFutureFromLocal) ) );
|
StringSource ss5 (cipherLocal, true, new PK_DecryptorFilter(pp::PRNG, futureDecryptor, new StringSink(plainFutureFromLocal) ) );
|
||||||
|
|
||||||
// decrypt future w/local
|
// decrypt future w/local
|
||||||
string plainLocalFromFuture;
|
string plainLocalFromFuture;
|
||||||
StringSource ss6 (cipherFuture, true, new PK_DecryptorFilter(pp::PRNG(), localDecryptor, new StringSink(plainLocalFromFuture) ) );
|
StringSource ss6 (cipherFuture, true, new PK_DecryptorFilter(pp::PRNG, localDecryptor, new StringSink(plainLocalFromFuture) ) );
|
||||||
|
|
||||||
|
|
||||||
assert(plainLocal == message);
|
BOOST_REQUIRE(plainLocal == message);
|
||||||
assert(plainFuture == plainLocal);
|
BOOST_REQUIRE(plainFuture == plainLocal);
|
||||||
assert(plainFutureFromLocal == plainLocal);
|
BOOST_REQUIRE(plainFutureFromLocal == plainLocal);
|
||||||
assert(plainLocalFromFuture == plainLocal);
|
BOOST_REQUIRE(plainLocalFromFuture == plainLocal);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(cryptopp_aes128_ctr)
|
BOOST_AUTO_TEST_CASE(cryptopp_aes128_ctr)
|
||||||
{
|
{
|
||||||
const int aesKeyLen = 16;
|
const int aesKeyLen = 16;
|
||||||
assert(sizeof(char) == sizeof(byte));
|
BOOST_REQUIRE(sizeof(char) == sizeof(byte));
|
||||||
|
|
||||||
// generate test key
|
// generate test key
|
||||||
AutoSeededRandomPool rng;
|
AutoSeededRandomPool rng;
|
||||||
@ -250,7 +361,7 @@ BOOST_AUTO_TEST_CASE(cryptopp_aes128_ctr)
|
|||||||
CTR_Mode<AES>::Encryption e;
|
CTR_Mode<AES>::Encryption e;
|
||||||
e.SetKeyWithIV(key, key.size(), ctr);
|
e.SetKeyWithIV(key, key.size(), ctr);
|
||||||
e.ProcessData(out, in, text.size());
|
e.ProcessData(out, in, text.size());
|
||||||
assert(text != original);
|
BOOST_REQUIRE(text != original);
|
||||||
cipherCopy = text;
|
cipherCopy = text;
|
||||||
}
|
}
|
||||||
catch(CryptoPP::Exception& e)
|
catch(CryptoPP::Exception& e)
|
||||||
@ -263,7 +374,7 @@ BOOST_AUTO_TEST_CASE(cryptopp_aes128_ctr)
|
|||||||
CTR_Mode< AES >::Decryption d;
|
CTR_Mode< AES >::Decryption d;
|
||||||
d.SetKeyWithIV(key, key.size(), ctr);
|
d.SetKeyWithIV(key, key.size(), ctr);
|
||||||
d.ProcessData(out, in, text.size());
|
d.ProcessData(out, in, text.size());
|
||||||
assert(text == original);
|
BOOST_REQUIRE(text == original);
|
||||||
}
|
}
|
||||||
catch(CryptoPP::Exception& e)
|
catch(CryptoPP::Exception& e)
|
||||||
{
|
{
|
||||||
@ -274,7 +385,7 @@ BOOST_AUTO_TEST_CASE(cryptopp_aes128_ctr)
|
|||||||
// reencrypt ciphertext...
|
// reencrypt ciphertext...
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
assert(cipherCopy != text);
|
BOOST_REQUIRE(cipherCopy != text);
|
||||||
in = (unsigned char*)&cipherCopy[0];
|
in = (unsigned char*)&cipherCopy[0];
|
||||||
out = (unsigned char*)&cipherCopy[0];
|
out = (unsigned char*)&cipherCopy[0];
|
||||||
|
|
||||||
@ -283,7 +394,7 @@ BOOST_AUTO_TEST_CASE(cryptopp_aes128_ctr)
|
|||||||
e.ProcessData(out, in, text.size());
|
e.ProcessData(out, in, text.size());
|
||||||
|
|
||||||
// yep, ctr mode.
|
// yep, ctr mode.
|
||||||
assert(cipherCopy == original);
|
BOOST_REQUIRE(cipherCopy == original);
|
||||||
}
|
}
|
||||||
catch(CryptoPP::Exception& e)
|
catch(CryptoPP::Exception& e)
|
||||||
{
|
{
|
||||||
@ -295,7 +406,7 @@ BOOST_AUTO_TEST_CASE(cryptopp_aes128_ctr)
|
|||||||
BOOST_AUTO_TEST_CASE(cryptopp_aes128_cbc)
|
BOOST_AUTO_TEST_CASE(cryptopp_aes128_cbc)
|
||||||
{
|
{
|
||||||
const int aesKeyLen = 16;
|
const int aesKeyLen = 16;
|
||||||
assert(sizeof(char) == sizeof(byte));
|
BOOST_REQUIRE(sizeof(char) == sizeof(byte));
|
||||||
|
|
||||||
AutoSeededRandomPool rng;
|
AutoSeededRandomPool rng;
|
||||||
SecByteBlock key(0x00, aesKeyLen);
|
SecByteBlock key(0x00, aesKeyLen);
|
||||||
@ -310,11 +421,11 @@ BOOST_AUTO_TEST_CASE(cryptopp_aes128_cbc)
|
|||||||
|
|
||||||
CryptoPP::CBC_Mode<Rijndael>::Encryption cbcEncryption(key, key.size(), iv);
|
CryptoPP::CBC_Mode<Rijndael>::Encryption cbcEncryption(key, key.size(), iv);
|
||||||
cbcEncryption.ProcessData((byte*)&string128[0], (byte*)&string128[0], string128.size());
|
cbcEncryption.ProcessData((byte*)&string128[0], (byte*)&string128[0], string128.size());
|
||||||
assert(string128 != plainOriginal);
|
BOOST_REQUIRE(string128 != plainOriginal);
|
||||||
|
|
||||||
CBC_Mode<Rijndael>::Decryption cbcDecryption(key, key.size(), iv);
|
CBC_Mode<Rijndael>::Decryption cbcDecryption(key, key.size(), iv);
|
||||||
cbcDecryption.ProcessData((byte*)&string128[0], (byte*)&string128[0], string128.size());
|
cbcDecryption.ProcessData((byte*)&string128[0], (byte*)&string128[0], string128.size());
|
||||||
assert(plainOriginal == string128);
|
BOOST_REQUIRE(plainOriginal == string128);
|
||||||
|
|
||||||
|
|
||||||
// plaintext whose size isn't divisible by block size must use stream filter for padding
|
// plaintext whose size isn't divisible by block size must use stream filter for padding
|
||||||
@ -324,10 +435,10 @@ BOOST_AUTO_TEST_CASE(cryptopp_aes128_cbc)
|
|||||||
string cipher;
|
string cipher;
|
||||||
StreamTransformationFilter* aesStream = new StreamTransformationFilter(cbcEncryption, new StringSink(cipher));
|
StreamTransformationFilter* aesStream = new StreamTransformationFilter(cbcEncryption, new StringSink(cipher));
|
||||||
StringSource source(string192, true, aesStream);
|
StringSource source(string192, true, aesStream);
|
||||||
assert(cipher.size() == 32);
|
BOOST_REQUIRE(cipher.size() == 32);
|
||||||
|
|
||||||
cbcDecryption.ProcessData((byte*)&cipher[0], (byte*)&string192[0], cipher.size());
|
cbcDecryption.ProcessData((byte*)&cipher[0], (byte*)&string192[0], cipher.size());
|
||||||
assert(string192 == plainOriginal);
|
BOOST_REQUIRE(string192 == plainOriginal);
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOST_AUTO_TEST_CASE(eth_keypairs)
|
BOOST_AUTO_TEST_CASE(eth_keypairs)
|
||||||
@ -340,14 +451,14 @@ BOOST_AUTO_TEST_CASE(eth_keypairs)
|
|||||||
BOOST_REQUIRE(p.address() == Address(fromHex("8a40bfaa73256b60764c1bf40675a99083efb075")));
|
BOOST_REQUIRE(p.address() == Address(fromHex("8a40bfaa73256b60764c1bf40675a99083efb075")));
|
||||||
{
|
{
|
||||||
eth::Transaction t(1000, 0, 0, h160(fromHex("944400f4b88ac9589a0f17ed4671da26bddb668b")), bytes(), 0, p.secret());
|
eth::Transaction t(1000, 0, 0, h160(fromHex("944400f4b88ac9589a0f17ed4671da26bddb668b")), bytes(), 0, p.secret());
|
||||||
auto rlp = t.rlp(false);
|
auto rlp = t.rlp(eth::WithoutSignature);
|
||||||
cnote << RLP(rlp);
|
cnote << RLP(rlp);
|
||||||
cnote << toHex(rlp);
|
cnote << toHex(rlp);
|
||||||
cnote << t.sha3(false);
|
cnote << t.sha3(eth::WithoutSignature);
|
||||||
rlp = t.rlp(true);
|
rlp = t.rlp(eth::WithSignature);
|
||||||
cnote << RLP(rlp);
|
cnote << RLP(rlp);
|
||||||
cnote << toHex(rlp);
|
cnote << toHex(rlp);
|
||||||
cnote << t.sha3(true);
|
cnote << t.sha3(eth::WithSignature);
|
||||||
BOOST_REQUIRE(t.sender() == p.address());
|
BOOST_REQUIRE(t.sender() == p.address());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -360,18 +471,18 @@ int cryptoTest()
|
|||||||
secp256k1_start();
|
secp256k1_start();
|
||||||
|
|
||||||
KeyPair p(Secret(fromHex("3ecb44df2159c26e0f995712d4f39b6f6e499b40749b1cf1246c37f9516cb6a4")));
|
KeyPair p(Secret(fromHex("3ecb44df2159c26e0f995712d4f39b6f6e499b40749b1cf1246c37f9516cb6a4")));
|
||||||
assert(p.pub() == Public(fromHex("97466f2b32bc3bb76d4741ae51cd1d8578b48d3f1e68da206d47321aec267ce78549b514e4453d74ef11b0cd5e4e4c364effddac8b51bcfc8de80682f952896f")));
|
BOOST_REQUIRE(p.pub() == Public(fromHex("97466f2b32bc3bb76d4741ae51cd1d8578b48d3f1e68da206d47321aec267ce78549b514e4453d74ef11b0cd5e4e4c364effddac8b51bcfc8de80682f952896f")));
|
||||||
assert(p.address() == Address(fromHex("8a40bfaa73256b60764c1bf40675a99083efb075")));
|
BOOST_REQUIRE(p.address() == Address(fromHex("8a40bfaa73256b60764c1bf40675a99083efb075")));
|
||||||
{
|
{
|
||||||
eth::Transaction t(1000, 0, 0, h160(fromHex("944400f4b88ac9589a0f17ed4671da26bddb668b")), bytes(), 0, p.secret());
|
eth::Transaction t(1000, 0, 0, h160(fromHex("944400f4b88ac9589a0f17ed4671da26bddb668b")), bytes(), 0, p.secret());
|
||||||
auto rlp = t.rlp(false);
|
auto rlp = t.rlp(eth::WithoutSignature);
|
||||||
cnote << RLP(rlp);
|
cnote << RLP(rlp);
|
||||||
cnote << toHex(rlp);
|
cnote << toHex(rlp);
|
||||||
cnote << t.sha3(false);
|
cnote << t.sha3(eth::WithoutSignature);
|
||||||
rlp = t.rlp(true);
|
rlp = t.rlp(eth::WithSignature);
|
||||||
cnote << RLP(rlp);
|
cnote << RLP(rlp);
|
||||||
cnote << toHex(rlp);
|
cnote << toHex(rlp);
|
||||||
cnote << t.sha3(true);
|
cnote << t.sha3(eth::WithSignature);
|
||||||
assert(t.sender() == p.address());
|
assert(t.sender() == p.address());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -397,8 +508,8 @@ int cryptoTest()
|
|||||||
|
|
||||||
auto msg = t.rlp(false);
|
auto msg = t.rlp(false);
|
||||||
cout << "TX w/o SIG: " << RLP(msg) << endl;
|
cout << "TX w/o SIG: " << RLP(msg) << endl;
|
||||||
cout << "RLP(TX w/o SIG): " << toHex(t.rlpString(false)) << endl;
|
cout << "RLP(TX w/o SIG): " << toHex(t.rlp(false)) << endl;
|
||||||
std::string hmsg = sha3(t.rlpString(false), false);
|
std::string hmsg = sha3(t.rlp(false), false);
|
||||||
cout << "SHA256(RLP(TX w/o SIG)): 0x" << toHex(hmsg) << endl;
|
cout << "SHA256(RLP(TX w/o SIG)): 0x" << toHex(hmsg) << endl;
|
||||||
|
|
||||||
bytes privkey = sha3Bytes("123");
|
bytes privkey = sha3Bytes("123");
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -12,7 +12,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x6002600360045057",
|
"code" : "0x6002600360045055",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -40,7 +40,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x5060026003600457",
|
"code" : "0x5060026003600455",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -68,7 +68,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x600260035157",
|
"code" : "0x600260035155",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -96,7 +96,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x600260035257",
|
"code" : "0x600260035255",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -488,7 +488,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x6023600058",
|
"code" : "0x600056",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -516,7 +516,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x60236007586001600257",
|
"code" : "0x60236007566001600255",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -543,7 +543,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x602360085860015d600257",
|
"code" : "0x602360075660015b600255",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -571,7 +571,63 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x602360075860015d600257",
|
"code" : "0x602360085660015b600255",
|
||||||
|
"storage": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"exec" : {
|
||||||
|
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
||||||
|
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
|
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
|
"value" : "1000000000000000000",
|
||||||
|
"data" : "",
|
||||||
|
"gasPrice" : "100000000000000",
|
||||||
|
"gas" : "10000"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"jump0_jumpdest2": {
|
||||||
|
"env" : {
|
||||||
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
|
||||||
|
"currentNumber" : "0",
|
||||||
|
"currentGasLimit" : "1000000",
|
||||||
|
"currentDifficulty" : "256",
|
||||||
|
"currentTimestamp" : 1,
|
||||||
|
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba"
|
||||||
|
},
|
||||||
|
"pre" : {
|
||||||
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
|
"balance" : "1000000000000000000",
|
||||||
|
"nonce" : 0,
|
||||||
|
"code" : "0x6023600a6008505660015b600255",
|
||||||
|
"storage": {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"exec" : {
|
||||||
|
"address" : "0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6",
|
||||||
|
"origin" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
|
"caller" : "cd1722f3947def4cf144679da39c4c32bdc35681",
|
||||||
|
"value" : "1000000000000000000",
|
||||||
|
"data" : "",
|
||||||
|
"gasPrice" : "100000000000000",
|
||||||
|
"gas" : "10000"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
"jump0_jumpdest3": {
|
||||||
|
"env" : {
|
||||||
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
|
||||||
|
"currentNumber" : "0",
|
||||||
|
"currentGasLimit" : "1000000",
|
||||||
|
"currentDifficulty" : "256",
|
||||||
|
"currentTimestamp" : 1,
|
||||||
|
"currentCoinbase" : "2adc25665018aa1fe0e6bc666dac8fc2697ff9ba"
|
||||||
|
},
|
||||||
|
"pre" : {
|
||||||
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
|
"balance" : "1000000000000000000",
|
||||||
|
"nonce" : 0,
|
||||||
|
"code" : "0x6023600b6008505660015b600255",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -599,7 +655,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x602360016009596001600257",
|
"code" : "0x602360016009576001600255",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -627,7 +683,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x60236001600a5960015d600257",
|
"code" : "0x60236001600a5760015b600255",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -655,7 +711,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x602360006009596001600257",
|
"code" : "0x602360006009576001600255",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -683,7 +739,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff596002600357",
|
"code" : "0x60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff576002600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x60ff600357",
|
"code" : "0x60ff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -68,7 +68,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x61eeff600357",
|
"code" : "0x61eeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -96,7 +96,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x62ddeeff600357",
|
"code" : "0x62ddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -124,7 +124,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x63ccddeeff600357",
|
"code" : "0x63ccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -152,7 +152,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x64bbccddeeff600357",
|
"code" : "0x64bbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -180,7 +180,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x65aabbccddeeff600357",
|
"code" : "0x65aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -208,7 +208,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x6699aabbccddeeff600357",
|
"code" : "0x6699aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -236,7 +236,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x678899aabbccddeeff600357",
|
"code" : "0x678899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -264,7 +264,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x68778899aabbccddeeff600357",
|
"code" : "0x68778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -292,7 +292,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x6966778899aabbccddeeff600357",
|
"code" : "0x6966778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -320,7 +320,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x6a5566778899aabbccddeeff600357",
|
"code" : "0x6a5566778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -348,7 +348,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x6b445566778899aabbccddeeff600357",
|
"code" : "0x6b445566778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -376,7 +376,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x6c33445566778899aabbccddeeff600357",
|
"code" : "0x6c33445566778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -404,7 +404,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x6d2233445566778899aabbccddeeff600357",
|
"code" : "0x6d2233445566778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -432,7 +432,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x6e112233445566778899aabbccddeeff600357",
|
"code" : "0x6e112233445566778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -460,7 +460,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x6f10112233445566778899aabbccddeeff600357",
|
"code" : "0x6f10112233445566778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -488,7 +488,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x70ff00112233445566778899aabbccddeeff600357",
|
"code" : "0x70ff00112233445566778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -516,7 +516,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x71eeff00112233445566778899aabbccddeeff600357",
|
"code" : "0x71eeff00112233445566778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -544,7 +544,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x72ddeeff00112233445566778899aabbccddeeff600357",
|
"code" : "0x72ddeeff00112233445566778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -572,7 +572,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x73ccddeeff00112233445566778899aabbccddeeff600357",
|
"code" : "0x73ccddeeff00112233445566778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -600,7 +600,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x74bbccddeeff00112233445566778899aabbccddeeff600357",
|
"code" : "0x74bbccddeeff00112233445566778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -628,7 +628,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x75aabbccddeeff00112233445566778899aabbccddeeff600357",
|
"code" : "0x75aabbccddeeff00112233445566778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -656,7 +656,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x7699aabbccddeeff00112233445566778899aabbccddeeff600357",
|
"code" : "0x7699aabbccddeeff00112233445566778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -684,7 +684,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x778899aabbccddeeff00112233445566778899aabbccddeeff600357",
|
"code" : "0x778899aabbccddeeff00112233445566778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -712,7 +712,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x78778899aabbccddeeff00112233445566778899aabbccddeeff600357",
|
"code" : "0x78778899aabbccddeeff00112233445566778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -740,7 +740,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x7966778899aabbccddeeff00112233445566778899aabbccddeeff600357",
|
"code" : "0x7966778899aabbccddeeff00112233445566778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -769,7 +769,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x7a5566778899aabbccddeeff00112233445566778899aabbccddeeff600357",
|
"code" : "0x7a5566778899aabbccddeeff00112233445566778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -797,7 +797,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x7b445566778899aabbccddeeff00112233445566778899aabbccddeeff600357",
|
"code" : "0x7b445566778899aabbccddeeff00112233445566778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -825,7 +825,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x7c33445566778899aabbccddeeff00112233445566778899aabbccddeeff600357",
|
"code" : "0x7c33445566778899aabbccddeeff00112233445566778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -853,7 +853,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x7d2233445566778899aabbccddeeff00112233445566778899aabbccddeeff600357",
|
"code" : "0x7d2233445566778899aabbccddeeff00112233445566778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -881,7 +881,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x7e112233445566778899aabbccddeeff00112233445566778899aabbccddeeff600357",
|
"code" : "0x7e112233445566778899aabbccddeeff00112233445566778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -909,7 +909,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x7f10112233445566778899aabbccddeeff00112233445566778899aabbccddeeff600357",
|
"code" : "0x7f10112233445566778899aabbccddeeff00112233445566778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -937,7 +937,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x7fff10112233445566778899aabbccddeeff00112233445566778899aabbccddeeff600357",
|
"code" : "0x7fff10112233445566778899aabbccddeeff00112233445566778899aabbccddeeff600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -965,7 +965,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x7f10112233445566778899aabbccddeeff00112233445566778899aabbccddeeff80600357",
|
"code" : "0x7f10112233445566778899aabbccddeeff00112233445566778899aabbccddeeff80600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -993,7 +993,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x7f10112233445566778899aabbccddeeff00112233445566778899aabbccddeeff81600357",
|
"code" : "0x7f10112233445566778899aabbccddeeff00112233445566778899aabbccddeeff81600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1021,7 +1021,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x6002600181600357",
|
"code" : "0x6002600181600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1049,7 +1049,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x60036002600182600357",
|
"code" : "0x60036002600182600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1077,7 +1077,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x600460036002600183600357",
|
"code" : "0x600460036002600183600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1105,7 +1105,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x6005600460036002600184600357",
|
"code" : "0x6005600460036002600184600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1133,7 +1133,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x60066005600460036002600185600357",
|
"code" : "0x60066005600460036002600185600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1161,7 +1161,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x600760066005600460036002600186600357",
|
"code" : "0x600760066005600460036002600186600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1189,7 +1189,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x6008600760066005600460036002600187600357",
|
"code" : "0x6008600760066005600460036002600187600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1217,7 +1217,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x60096008600760066005600460036002600188600357",
|
"code" : "0x60096008600760066005600460036002600188600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1245,7 +1245,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x600a60096008600760066005600460036002600189600357",
|
"code" : "0x600a60096008600760066005600460036002600189600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1273,7 +1273,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x600b600a6009600860076006600560046003600260018a600357",
|
"code" : "0x600b600a6009600860076006600560046003600260018a600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1301,7 +1301,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x600c600b600a6009600860076006600560046003600260018b600357",
|
"code" : "0x600c600b600a6009600860076006600560046003600260018b600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1329,7 +1329,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x600d600c600b600a6009600860076006600560046003600260018c600357",
|
"code" : "0x600d600c600b600a6009600860076006600560046003600260018c600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1357,7 +1357,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x600e600d600c600b600a6009600860076006600560046003600260018d600357",
|
"code" : "0x600e600d600c600b600a6009600860076006600560046003600260018d600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1385,7 +1385,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x600f600e600d600c600b600a6009600860076006600560046003600260018e600357",
|
"code" : "0x600f600e600d600c600b600a6009600860076006600560046003600260018e600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1413,7 +1413,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x6010600f600e600d600c600b600a6009600860076006600560046003600260018f600357",
|
"code" : "0x6010600f600e600d600c600b600a6009600860076006600560046003600260018f600355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1441,7 +1441,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x7f10112233445566778899aabbccddeeff00112233445566778899aabbccddeeff60039057",
|
"code" : "0x7f10112233445566778899aabbccddeeff00112233445566778899aabbccddeeff60039055",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1469,7 +1469,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x7f10112233445566778899aabbccddeeff00112233445566778899aabbccddeeff60039157",
|
"code" : "0x7f10112233445566778899aabbccddeeff00112233445566778899aabbccddeeff60039155",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1497,7 +1497,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x6002600160039157",
|
"code" : "0x6002600160039155",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1525,7 +1525,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x60036002600160039257",
|
"code" : "0x60036002600160039255",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1553,7 +1553,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x600460036002600160039357",
|
"code" : "0x600460036002600160039355",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1581,7 +1581,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x6005600460036002600160039457",
|
"code" : "0x6005600460036002600160039455",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1609,7 +1609,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x60066005600460036002600160039557",
|
"code" : "0x60066005600460036002600160039555",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1637,7 +1637,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x600760066005600460036002600160039657",
|
"code" : "0x600760066005600460036002600160039655",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1665,7 +1665,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x6008600760066005600460036002600160039757",
|
"code" : "0x6008600760066005600460036002600160039755",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1693,7 +1693,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x60096008600760066005600460036002600160039857",
|
"code" : "0x60096008600760066005600460036002600160039855",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1721,7 +1721,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x600a60096008600760066005600460036002600160039957",
|
"code" : "0x600a60096008600760066005600460036002600160039955",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1749,7 +1749,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x600b600a60096008600760066005600460036002600160039a57",
|
"code" : "0x600b600a60096008600760066005600460036002600160039a55",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1777,7 +1777,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x600c600b600a60096008600760066005600460036002600160039b57",
|
"code" : "0x600c600b600a60096008600760066005600460036002600160039b55",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1805,7 +1805,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x600d600c600b600a60096008600760066005600460036002600160039c57",
|
"code" : "0x600d600c600b600a60096008600760066005600460036002600160039c55",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1833,7 +1833,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x600e600d600c600b600a60096008600760066005600460036002600160039d57",
|
"code" : "0x600e600d600c600b600a60096008600760066005600460036002600160039d55",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1861,7 +1861,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x600f600e600d600c600b600a60096008600760066005600460036002600160039e57",
|
"code" : "0x600f600e600d600c600b600a60096008600760066005600460036002600160039e55",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1889,7 +1889,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "0x6010600f600e600d600c600b600a60096008600760066005600460036002600160039f57",
|
"code" : "0x6010600f600e600d600c600b600a60096008600760066005600460036002600160039f55",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -111,7 +111,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"sha3_3": {
|
"sha3_4": {
|
||||||
"env" : {
|
"env" : {
|
||||||
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
|
||||||
"currentNumber" : "0",
|
"currentNumber" : "0",
|
||||||
@ -139,7 +139,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"sha3_4": {
|
"sha3_5": {
|
||||||
"env" : {
|
"env" : {
|
||||||
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
|
||||||
"currentNumber" : "0",
|
"currentNumber" : "0",
|
||||||
@ -152,7 +152,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "{ [[ 0 ]] (SHA3 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 100)}",
|
"code" : "{ [[ 0 ]] (SHA3 10000 0xfffffffff )}",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -167,7 +167,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
"sha3_5": {
|
"sha3_6": {
|
||||||
"env" : {
|
"env" : {
|
||||||
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
|
"previousHash" : "5e20a0453cecd065ea59c37ac63e079ee08998b6045136a8ce6635c7912ec0b6",
|
||||||
"currentNumber" : "0",
|
"currentNumber" : "0",
|
||||||
@ -180,7 +180,7 @@
|
|||||||
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
"0f572e5295c57f15886f9b263e2f6d2d6c7b5ec6" : {
|
||||||
"balance" : "1000000000000000000",
|
"balance" : "1000000000000000000",
|
||||||
"nonce" : 0,
|
"nonce" : 0,
|
||||||
"code" : "{ [[ 0 ]] (SHA3 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)}",
|
"code" : "{ [[ 0 ]] (SHA3 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)}",
|
||||||
"storage": {}
|
"storage": {}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -193,5 +193,5 @@
|
|||||||
"gasPrice" : "100000000000000",
|
"gasPrice" : "100000000000000",
|
||||||
"gas" : "10000"
|
"gas" : "10000"
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user