New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Not stable Transaction verifing #7
Comments
I am able to reproduce this and looking into it. |
|
Status update: This issue is resolved in the AIP11 branch. #include <cstdint>
#include "identities/address.hpp"
#include "identities/keys.hpp"
#include "transactions/serializer.hpp"
#include "transactions/deserializer.hpp"
#include "transactions/transaction.hpp"
#include "transactions/builders/transfer.hpp"
#include "utils/hex.hpp"
using namespace Ark::Crypto::identities;
using namespace Ark::Crypto::transactions;
int main() {
const auto passphrase = "this is a top secret passphrase";
const auto senderPublicKey = Keys::fromPassphrase(passphrase).publicKey;
const auto anotherPassphrase = "this is a top secret passphrase too";
const auto recipientId = Address::fromPassphrase(anotherPassphrase, 30).toString();
size_t j = 0UL;
size_t i;
for (i = 0UL; i < 1000UL; ++i) {
auto transaction = builder::Transfer()
.nonce(1ULL)
.fee(10000000)
.senderPublicKey(senderPublicKey.data())
.vendorField("vendorField")
.amount(24ULL)
.expiration(0)
.recipientId(recipientId)
.sign(passphrase)
.build();
auto verified = transaction.verify();
printf("\niter %zu transaction.verify: %d\n", i, verified);
if (verified) {
j++;
}
const auto serialized = Serializer::serialize(transaction.data);
printf("iter %zu serialized: %s\n", i, BytesToHex(serialized).c_str());
memset(&transaction.data, 0, sizeof(transaction.data));
Deserializer::deserialize(&transaction.data, serialized);
printf("iter %zu transaction.verify: %d\n", i, transaction.verify());
}
printf("\nsuccess verify %zu out of %zu\n\n", j, i);
}
}
iter 0 transaction.verify: 1
iter 0 serialized: ff021e0100000000000100000000000000034151a3ec46b5670a682b0a63394f863587d1bc97483b1b6c70eb58e7f0aed19280969800000000000b76656e646f724669656c641800000000000000000000001ee04f5be8d462a0a0509a3e7b9853e1d9724bb16c3045022100cd3816e5eef9eb8b5cc136970ac8e3ba73cad82ee77439c26ddd40074b6194ab02203d629a42006e939ce39b2435db346cb6a3d27d2025188f51e5d63bdb9aa0514b
iter 0 transaction.verify: 1
...
iter 999 transaction.verify: 1
iter 999 serialized: ff021e0100000000000100000000000000034151a3ec46b5670a682b0a63394f863587d1bc97483b1b6c70eb58e7f0aed19280969800000000000b76656e646f724669656c641800000000000000000000001ee04f5be8d462a0a0509a3e7b9853e1d9724bb16c3045022100cd3816e5eef9eb8b5cc136970ac8e3ba73cad82ee77439c26ddd40074b6194ab02203d629a42006e939ce39b2435db346cb6a3d27d2025188f51e5d63bdb9aa0514b
iter 999 transaction.verify: 1
success verify 1000 out of 1000 Thank you again for finding this, @officefish 👍 |
#198 merged to develop. |
This issue has been closed. If you wish to re-open it please provide additional information. |
// output 4 of 10 was success
The text was updated successfully, but these errors were encountered: