kopia lustrzana https://github.com/bugout-dev/dao
Added fix for "safeBatchTransferFrom" issue
rodzic
dfa1cc5bcb
commit
f8df47b5ce
|
@ -275,6 +275,11 @@ contract ERC1155WithTerminusStorage is
|
|||
uint256 id = ids[i];
|
||||
uint256 amount = amounts[i];
|
||||
|
||||
require(
|
||||
!ts.poolNotTransferable[id],
|
||||
"ERC1155WithTerminusStorage: _safeBatchTransferFrom -- pool is not transferable"
|
||||
);
|
||||
|
||||
uint256 fromBalance = ts.poolBalances[id][from];
|
||||
require(
|
||||
fromBalance >= amount,
|
||||
|
|
|
@ -742,6 +742,58 @@ class TestCreatePoolV1(TestPoolOperations):
|
|||
self.assertEqual(final_pool_supply, initial_pool_supply)
|
||||
self.assertEqual(final_owner_balance, initial_owner_balance)
|
||||
|
||||
def test_nontransferable_pool_safe_transfer_from(self):
|
||||
self.diamond_terminus.create_pool_v1(10, False, False, {"from": accounts[1]})
|
||||
pool_id = self.diamond_terminus.total_pools()
|
||||
self.diamond_terminus.mint(accounts[2], pool_id, 1, b"", {"from": accounts[1]})
|
||||
|
||||
initial_pool_supply = self.diamond_terminus.terminus_pool_supply(pool_id)
|
||||
initial_owner_balance = self.diamond_terminus.balance_of(
|
||||
accounts[2].address, pool_id
|
||||
)
|
||||
with self.assertRaises(Exception):
|
||||
self.diamond_terminus.safe_transfer_from(
|
||||
accounts[2].address,
|
||||
accounts[3].address,
|
||||
pool_id,
|
||||
1,
|
||||
b"",
|
||||
{"from": accounts[2]},
|
||||
)
|
||||
|
||||
final_pool_supply = self.diamond_terminus.terminus_pool_supply(pool_id)
|
||||
final_owner_balance = self.diamond_terminus.balance_of(
|
||||
accounts[2].address, pool_id
|
||||
)
|
||||
self.assertEqual(final_pool_supply, initial_pool_supply)
|
||||
self.assertEqual(final_owner_balance, initial_owner_balance)
|
||||
|
||||
def test_nontransferable_pool_safe_batch_transfer_from(self):
|
||||
self.diamond_terminus.create_pool_v1(10, False, False, {"from": accounts[1]})
|
||||
pool_id = self.diamond_terminus.total_pools()
|
||||
self.diamond_terminus.mint(accounts[2], pool_id, 1, b"", {"from": accounts[1]})
|
||||
|
||||
initial_pool_supply = self.diamond_terminus.terminus_pool_supply(pool_id)
|
||||
initial_owner_balance = self.diamond_terminus.balance_of(
|
||||
accounts[2].address, pool_id
|
||||
)
|
||||
with self.assertRaises(Exception):
|
||||
self.diamond_terminus.safe_batch_transfer_from(
|
||||
accounts[2].address,
|
||||
accounts[3].address,
|
||||
[pool_id],
|
||||
[1],
|
||||
b"",
|
||||
{"from": accounts[2]},
|
||||
)
|
||||
|
||||
final_pool_supply = self.diamond_terminus.terminus_pool_supply(pool_id)
|
||||
final_owner_balance = self.diamond_terminus.balance_of(
|
||||
accounts[2].address, pool_id
|
||||
)
|
||||
self.assertEqual(final_pool_supply, initial_pool_supply)
|
||||
self.assertEqual(final_owner_balance, initial_owner_balance)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
|
Ładowanie…
Reference in New Issue