mirror of
https://github.com/Xahau/xahaud.git
synced 2025-11-26 21:45:50 +00:00
state_foreign_set unit test passing
This commit is contained in:
@@ -5836,6 +5836,7 @@ public:
|
|||||||
uint32_t, uint32_t, uint32_t, uint32_t,
|
uint32_t, uint32_t, uint32_t, uint32_t,
|
||||||
uint32_t, uint32_t, uint32_t, uint32_t
|
uint32_t, uint32_t, uint32_t, uint32_t
|
||||||
);
|
);
|
||||||
|
#define DOESNT_EXIST (-5)
|
||||||
#define ASSERT(x)\
|
#define ASSERT(x)\
|
||||||
if (!(x))\
|
if (!(x))\
|
||||||
rollback((uint32_t)#x, sizeof(#x), __LINE__);
|
rollback((uint32_t)#x, sizeof(#x), __LINE__);
|
||||||
@@ -5863,7 +5864,8 @@ public:
|
|||||||
uint8_t one[32]; one[31] = 1U;
|
uint8_t one[32]; one[31] = 1U;
|
||||||
uint8_t zero[32];
|
uint8_t zero[32];
|
||||||
// we can use state_foreign_set to do the deletion, a concise way to test this functionality too
|
// we can use state_foreign_set to do the deletion, a concise way to test this functionality too
|
||||||
ASSERT(state_foreign_set(0,0, SBUF(one), SBUF(zero), SBUF(hookacc) == 0));
|
int64_t y = state_foreign_set(0,0, SBUF(one), SBUF(zero), SBUF(hookacc));
|
||||||
|
ASSERT(y == 0 || y == DOESNT_EXIST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -5896,7 +5898,6 @@ public:
|
|||||||
|
|
||||||
// invoice ID contains the grantor account
|
// invoice ID contains the grantor account
|
||||||
Json::Value json = ripple::test::jtx::hook(bob, {{hso(grantee_wasm, overrideFlag)}}, 0);
|
Json::Value json = ripple::test::jtx::hook(bob, {{hso(grantee_wasm, overrideFlag)}}, 0);
|
||||||
json[jss::InvoiceID] = std::string(24, '0') + strHex(alice.id());
|
|
||||||
env(json,
|
env(json,
|
||||||
M("set state_foreign_set 2"),
|
M("set state_foreign_set 2"),
|
||||||
HSFEE);
|
HSFEE);
|
||||||
@@ -5919,7 +5920,7 @@ public:
|
|||||||
auto const state1 = env.le(ripple::keylet::hookState(aliceid, one, beast::zero));
|
auto const state1 = env.le(ripple::keylet::hookState(aliceid, one, beast::zero));
|
||||||
BEAST_REQUIRE(!state1);
|
BEAST_REQUIRE(!state1);
|
||||||
|
|
||||||
BEAST_EXPECT((*env.le("alice"))[sfOwnerCount] == 1);
|
BEAST_EXPECT((*env.le("alice"))[sfOwnerCount] == 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
// inovke the grantee hook but supply an account to foreign_set (through invoiceid)
|
// inovke the grantee hook but supply an account to foreign_set (through invoiceid)
|
||||||
@@ -5965,7 +5966,7 @@ public:
|
|||||||
auto const state1 = env.le(ripple::keylet::hookState(aliceid, one, beast::zero));
|
auto const state1 = env.le(ripple::keylet::hookState(aliceid, one, beast::zero));
|
||||||
BEAST_REQUIRE(!!state1);
|
BEAST_REQUIRE(!!state1);
|
||||||
|
|
||||||
BEAST_EXPECT((*env.le("alice"))[sfOwnerCount] == 2);
|
BEAST_EXPECT((*env.le("alice"))[sfOwnerCount] == 3);
|
||||||
|
|
||||||
BEAST_EXPECT(state1->getFieldH256(sfHookStateKey) == one);
|
BEAST_EXPECT(state1->getFieldH256(sfHookStateKey) == one);
|
||||||
|
|
||||||
@@ -5986,7 +5987,7 @@ public:
|
|||||||
auto const state1 = env.le(ripple::keylet::hookState(aliceid, one, beast::zero));
|
auto const state1 = env.le(ripple::keylet::hookState(aliceid, one, beast::zero));
|
||||||
BEAST_REQUIRE(!state1);
|
BEAST_REQUIRE(!state1);
|
||||||
|
|
||||||
BEAST_EXPECT((*env.le("alice"))[sfOwnerCount] == 1);
|
BEAST_EXPECT((*env.le("alice"))[sfOwnerCount] == 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
// install grantee hook on david
|
// install grantee hook on david
|
||||||
@@ -6041,7 +6042,7 @@ public:
|
|||||||
auto const state1 = env.le(ripple::keylet::hookState(aliceid, one, beast::zero));
|
auto const state1 = env.le(ripple::keylet::hookState(aliceid, one, beast::zero));
|
||||||
BEAST_REQUIRE(!!state1);
|
BEAST_REQUIRE(!!state1);
|
||||||
|
|
||||||
BEAST_EXPECT((*env.le("alice"))[sfOwnerCount] == 2);
|
BEAST_EXPECT((*env.le("alice"))[sfOwnerCount] == 3);
|
||||||
|
|
||||||
BEAST_EXPECT(state1->getFieldH256(sfHookStateKey) == one);
|
BEAST_EXPECT(state1->getFieldH256(sfHookStateKey) == one);
|
||||||
|
|
||||||
@@ -6050,12 +6051,10 @@ public:
|
|||||||
BEAST_EXPECT(uint256::fromVoid(data1.data()) == env.txid());
|
BEAST_EXPECT(uint256::fromVoid(data1.data()) == env.txid());
|
||||||
}
|
}
|
||||||
|
|
||||||
// change david's namespace
|
// change alice's namespace
|
||||||
{
|
{
|
||||||
|
|
||||||
// invoice ID contains the grantor account
|
Json::Value json = ripple::test::jtx::hook(alice, {{hso(grantor_wasm, overrideFlag)}}, 0);
|
||||||
Json::Value json = ripple::test::jtx::hook(david, {{hso(grantee_wasm, overrideFlag)}}, 0);
|
|
||||||
json[jss::InvoiceID] = std::string(24, '0') + strHex(alice.id());
|
|
||||||
json[jss::Hooks][0U][jss::Hook][jss::HookNamespace] =
|
json[jss::Hooks][0U][jss::Hook][jss::HookNamespace] =
|
||||||
"7777777777777777777777777777777777777777777777777777777777777777";
|
"7777777777777777777777777777777777777777777777777777777777777777";
|
||||||
env(json,
|
env(json,
|
||||||
@@ -6066,8 +6065,13 @@ public:
|
|||||||
|
|
||||||
|
|
||||||
// invoke david again, expect failure
|
// invoke david again, expect failure
|
||||||
env(pay(cho, david, XRP(1)), M("test state_foreign_set 10"), fee(XRP(1)), ter(tecHOOK_REJECTED));
|
{
|
||||||
|
Json::Value json = pay(cho, david, XRP(1));
|
||||||
|
json[jss::InvoiceID] = invid;
|
||||||
|
env(json, fee(XRP(1)),
|
||||||
|
M("test state_foreign_set 10"),
|
||||||
|
ter(tecHOOK_REJECTED));
|
||||||
|
}
|
||||||
// RH TODO: check reserve exhaustion
|
// RH TODO: check reserve exhaustion
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user