Merge pull request #54 from bugout-dev/add-transferability-burnability-methods

Added methods to view and change pool transferability/burnability
pull/56/head v0.0.6
Neeraj Kashyap 2022-07-05 06:06:23 -07:00 zatwierdzone przez GitHub
commit c2f67793cf
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 4AEE18F83AFDEB23
4 zmienionych plików z 375 dodań i 46 usunięć

Wyświetl plik

@ -176,6 +176,26 @@ contract TerminusFacet is ERC1155WithTerminusStorage {
return LibTerminus.terminusStorage().poolSupply[poolID];
}
function poolIsTransferable(uint256 poolID) external view returns (bool) {
return !LibTerminus.terminusStorage().poolNotTransferable[poolID];
}
function poolIsBurnable(uint256 poolID) external view returns (bool) {
return LibTerminus.terminusStorage().poolBurnable[poolID];
}
function setPoolTransferable(uint256 poolID, bool transferable) external {
LibTerminus.enforcePoolIsController(poolID, msg.sender);
LibTerminus.TerminusStorage storage ts = LibTerminus.terminusStorage();
ts.poolNotTransferable[poolID] = !transferable;
}
function setPoolBurnable(uint256 poolID, bool burnable) external {
LibTerminus.enforcePoolIsController(poolID, msg.sender);
LibTerminus.TerminusStorage storage ts = LibTerminus.terminusStorage();
ts.poolBurnable[poolID] = burnable;
}
function createSimplePool(uint256 _capacity) external returns (uint256) {
LibTerminus.enforceIsController();
LibTerminus.TerminusStorage storage ts = LibTerminus.terminusStorage();

Wyświetl plik

@ -1,5 +1,5 @@
# Code generated by moonworm : https://github.com/bugout-dev/moonworm
# Moonworm version : 0.1.14
# Moonworm version : 0.2.4
import argparse
import json
@ -30,8 +30,8 @@ def boolean_argument_type(raw_value: str) -> bool:
)
def bytes_argument_type(raw_value: str) -> bytes:
return raw_value.encode()
def bytes_argument_type(raw_value: str) -> str:
return raw_value
def get_abi_json(abi_name: str) -> List[Dict[str, Any]]:
@ -85,6 +85,7 @@ class TerminusFacet:
deployed_contract = contract_class.deploy(transaction_config)
self.address = deployed_contract.address
self.contract = deployed_contract
return deployed_contract.tx
def assert_contract_is_instantiated(self) -> None:
if self.contract is None:
@ -101,13 +102,25 @@ class TerminusFacet:
self.assert_contract_is_instantiated()
return self.contract.approveForPool(pool_id, operator, transaction_config)
def balance_of(self, account: ChecksumAddress, id: int) -> Any:
def balance_of(
self,
account: ChecksumAddress,
id: int,
block_number: Optional[Union[str, int]] = "latest",
) -> Any:
self.assert_contract_is_instantiated()
return self.contract.balanceOf.call(account, id)
return self.contract.balanceOf.call(account, id, block_identifier=block_number)
def balance_of_batch(self, accounts: List, ids: List) -> Any:
def balance_of_batch(
self,
accounts: List,
ids: List,
block_number: Optional[Union[str, int]] = "latest",
) -> Any:
self.assert_contract_is_instantiated()
return self.contract.balanceOfBatch.call(accounts, ids)
return self.contract.balanceOfBatch.call(
accounts, ids, block_identifier=block_number
)
def burn(
self, from_: ChecksumAddress, pool_id: int, amount: int, transaction_config
@ -115,9 +128,9 @@ class TerminusFacet:
self.assert_contract_is_instantiated()
return self.contract.burn(from_, pool_id, amount, transaction_config)
def contract_uri(self) -> Any:
def contract_uri(self, block_number: Optional[Union[str, int]] = "latest") -> Any:
self.assert_contract_is_instantiated()
return self.contract.contractURI.call()
return self.contract.contractURI.call(block_identifier=block_number)
def create_pool_v1(
self, _capacity: int, _transferable: bool, _burnable: bool, transaction_config
@ -132,14 +145,26 @@ class TerminusFacet:
return self.contract.createSimplePool(_capacity, transaction_config)
def is_approved_for_all(
self, account: ChecksumAddress, operator: ChecksumAddress
self,
account: ChecksumAddress,
operator: ChecksumAddress,
block_number: Optional[Union[str, int]] = "latest",
) -> Any:
self.assert_contract_is_instantiated()
return self.contract.isApprovedForAll.call(account, operator)
return self.contract.isApprovedForAll.call(
account, operator, block_identifier=block_number
)
def is_approved_for_pool(self, pool_id: int, operator: ChecksumAddress) -> Any:
def is_approved_for_pool(
self,
pool_id: int,
operator: ChecksumAddress,
block_number: Optional[Union[str, int]] = "latest",
) -> Any:
self.assert_contract_is_instantiated()
return self.contract.isApprovedForPool.call(pool_id, operator)
return self.contract.isApprovedForPool.call(
pool_id, operator, block_identifier=block_number
)
def mint(
self,
@ -163,13 +188,29 @@ class TerminusFacet:
self.assert_contract_is_instantiated()
return self.contract.mintBatch(to, pool_i_ds, amounts, data, transaction_config)
def payment_token(self) -> Any:
def payment_token(self, block_number: Optional[Union[str, int]] = "latest") -> Any:
self.assert_contract_is_instantiated()
return self.contract.paymentToken.call()
return self.contract.paymentToken.call(block_identifier=block_number)
def pool_base_price(self) -> Any:
def pool_base_price(
self, block_number: Optional[Union[str, int]] = "latest"
) -> Any:
self.assert_contract_is_instantiated()
return self.contract.poolBasePrice.call()
return self.contract.poolBasePrice.call(block_identifier=block_number)
def pool_is_burnable(
self, pool_id: int, block_number: Optional[Union[str, int]] = "latest"
) -> Any:
self.assert_contract_is_instantiated()
return self.contract.poolIsBurnable.call(pool_id, block_identifier=block_number)
def pool_is_transferable(
self, pool_id: int, block_number: Optional[Union[str, int]] = "latest"
) -> Any:
self.assert_contract_is_instantiated()
return self.contract.poolIsTransferable.call(
pool_id, block_identifier=block_number
)
def pool_mint_batch(
self, id: int, to_addresses: List, amounts: List, transaction_config
@ -233,6 +274,12 @@ class TerminusFacet:
self.assert_contract_is_instantiated()
return self.contract.setPoolBasePrice(new_base_price, transaction_config)
def set_pool_burnable(
self, pool_id: int, burnable: bool, transaction_config
) -> Any:
self.assert_contract_is_instantiated()
return self.contract.setPoolBurnable(pool_id, burnable, transaction_config)
def set_pool_controller(
self, pool_id: int, new_controller: ChecksumAddress, transaction_config
) -> Any:
@ -241,37 +288,65 @@ class TerminusFacet:
pool_id, new_controller, transaction_config
)
def set_pool_transferable(
self, pool_id: int, transferable: bool, transaction_config
) -> Any:
self.assert_contract_is_instantiated()
return self.contract.setPoolTransferable(
pool_id, transferable, transaction_config
)
def set_uri(self, pool_id: int, pool_uri: str, transaction_config) -> Any:
self.assert_contract_is_instantiated()
return self.contract.setURI(pool_id, pool_uri, transaction_config)
def supports_interface(self, interface_id: bytes) -> Any:
def supports_interface(
self, interface_id: bytes, block_number: Optional[Union[str, int]] = "latest"
) -> Any:
self.assert_contract_is_instantiated()
return self.contract.supportsInterface.call(interface_id)
return self.contract.supportsInterface.call(
interface_id, block_identifier=block_number
)
def terminus_controller(self) -> Any:
def terminus_controller(
self, block_number: Optional[Union[str, int]] = "latest"
) -> Any:
self.assert_contract_is_instantiated()
return self.contract.terminusController.call()
return self.contract.terminusController.call(block_identifier=block_number)
def terminus_pool_capacity(self, pool_id: int) -> Any:
def terminus_pool_capacity(
self, pool_id: int, block_number: Optional[Union[str, int]] = "latest"
) -> Any:
self.assert_contract_is_instantiated()
return self.contract.terminusPoolCapacity.call(pool_id)
return self.contract.terminusPoolCapacity.call(
pool_id, block_identifier=block_number
)
def terminus_pool_controller(self, pool_id: int) -> Any:
def terminus_pool_controller(
self, pool_id: int, block_number: Optional[Union[str, int]] = "latest"
) -> Any:
self.assert_contract_is_instantiated()
return self.contract.terminusPoolController.call(pool_id)
return self.contract.terminusPoolController.call(
pool_id, block_identifier=block_number
)
def terminus_pool_supply(self, pool_id: int) -> Any:
def terminus_pool_supply(
self, pool_id: int, block_number: Optional[Union[str, int]] = "latest"
) -> Any:
self.assert_contract_is_instantiated()
return self.contract.terminusPoolSupply.call(pool_id)
return self.contract.terminusPoolSupply.call(
pool_id, block_identifier=block_number
)
def total_pools(self) -> Any:
def total_pools(self, block_number: Optional[Union[str, int]] = "latest") -> Any:
self.assert_contract_is_instantiated()
return self.contract.totalPools.call()
return self.contract.totalPools.call(block_identifier=block_number)
def uri(self, pool_id: int) -> Any:
def uri(
self, pool_id: int, block_number: Optional[Union[str, int]] = "latest"
) -> Any:
self.assert_contract_is_instantiated()
return self.contract.uri.call(pool_id)
return self.contract.uri.call(pool_id, block_identifier=block_number)
def withdraw_payments(
self, to_address: ChecksumAddress, amount: int, transaction_config
@ -304,6 +379,12 @@ def add_default_arguments(parser: argparse.ArgumentParser, transact: bool) -> No
"--address", required=False, help="Address of deployed contract to connect to"
)
if not transact:
parser.add_argument(
"--block-number",
required=False,
type=int,
help="Call at the given block number, defaults to latest",
)
return
parser.add_argument(
"--sender", required=True, help="Path to keystore file for transaction sender"
@ -335,6 +416,10 @@ def add_default_arguments(parser: argparse.ArgumentParser, transact: bool) -> No
parser.add_argument(
"--nonce", type=int, default=None, help="Nonce for the transaction (optional)"
)
parser.add_argument(
"--value", default=None, help="Value of the transaction in wei(optional)"
)
parser.add_argument("--verbose", action="store_true", help="Print verbose output")
def handle_deploy(args: argparse.Namespace) -> None:
@ -343,6 +428,8 @@ def handle_deploy(args: argparse.Namespace) -> None:
contract = TerminusFacet(None)
result = contract.deploy(transaction_config=transaction_config)
print(result)
if args.verbose:
print(result.info())
def handle_verify_contract(args: argparse.Namespace) -> None:
@ -362,19 +449,25 @@ def handle_approve_for_pool(args: argparse.Namespace) -> None:
transaction_config=transaction_config,
)
print(result)
if args.verbose:
print(result.info())
def handle_balance_of(args: argparse.Namespace) -> None:
network.connect(args.network)
contract = TerminusFacet(args.address)
result = contract.balance_of(account=args.account, id=args.id)
result = contract.balance_of(
account=args.account, id=args.id, block_number=args.block_number
)
print(result)
def handle_balance_of_batch(args: argparse.Namespace) -> None:
network.connect(args.network)
contract = TerminusFacet(args.address)
result = contract.balance_of_batch(accounts=args.accounts, ids=args.ids)
result = contract.balance_of_batch(
accounts=args.accounts, ids=args.ids, block_number=args.block_number
)
print(result)
@ -389,12 +482,14 @@ def handle_burn(args: argparse.Namespace) -> None:
transaction_config=transaction_config,
)
print(result)
if args.verbose:
print(result.info())
def handle_contract_uri(args: argparse.Namespace) -> None:
network.connect(args.network)
contract = TerminusFacet(args.address)
result = contract.contract_uri()
result = contract.contract_uri(block_number=args.block_number)
print(result)
@ -409,6 +504,8 @@ def handle_create_pool_v1(args: argparse.Namespace) -> None:
transaction_config=transaction_config,
)
print(result)
if args.verbose:
print(result.info())
def handle_create_simple_pool(args: argparse.Namespace) -> None:
@ -419,19 +516,25 @@ def handle_create_simple_pool(args: argparse.Namespace) -> None:
_capacity=args.capacity_arg, transaction_config=transaction_config
)
print(result)
if args.verbose:
print(result.info())
def handle_is_approved_for_all(args: argparse.Namespace) -> None:
network.connect(args.network)
contract = TerminusFacet(args.address)
result = contract.is_approved_for_all(account=args.account, operator=args.operator)
result = contract.is_approved_for_all(
account=args.account, operator=args.operator, block_number=args.block_number
)
print(result)
def handle_is_approved_for_pool(args: argparse.Namespace) -> None:
network.connect(args.network)
contract = TerminusFacet(args.address)
result = contract.is_approved_for_pool(pool_id=args.pool_id, operator=args.operator)
result = contract.is_approved_for_pool(
pool_id=args.pool_id, operator=args.operator, block_number=args.block_number
)
print(result)
@ -447,6 +550,8 @@ def handle_mint(args: argparse.Namespace) -> None:
transaction_config=transaction_config,
)
print(result)
if args.verbose:
print(result.info())
def handle_mint_batch(args: argparse.Namespace) -> None:
@ -461,19 +566,39 @@ def handle_mint_batch(args: argparse.Namespace) -> None:
transaction_config=transaction_config,
)
print(result)
if args.verbose:
print(result.info())
def handle_payment_token(args: argparse.Namespace) -> None:
network.connect(args.network)
contract = TerminusFacet(args.address)
result = contract.payment_token()
result = contract.payment_token(block_number=args.block_number)
print(result)
def handle_pool_base_price(args: argparse.Namespace) -> None:
network.connect(args.network)
contract = TerminusFacet(args.address)
result = contract.pool_base_price()
result = contract.pool_base_price(block_number=args.block_number)
print(result)
def handle_pool_is_burnable(args: argparse.Namespace) -> None:
network.connect(args.network)
contract = TerminusFacet(args.address)
result = contract.pool_is_burnable(
pool_id=args.pool_id, block_number=args.block_number
)
print(result)
def handle_pool_is_transferable(args: argparse.Namespace) -> None:
network.connect(args.network)
contract = TerminusFacet(args.address)
result = contract.pool_is_transferable(
pool_id=args.pool_id, block_number=args.block_number
)
print(result)
@ -488,6 +613,8 @@ def handle_pool_mint_batch(args: argparse.Namespace) -> None:
transaction_config=transaction_config,
)
print(result)
if args.verbose:
print(result.info())
def handle_safe_batch_transfer_from(args: argparse.Namespace) -> None:
@ -503,6 +630,8 @@ def handle_safe_batch_transfer_from(args: argparse.Namespace) -> None:
transaction_config=transaction_config,
)
print(result)
if args.verbose:
print(result.info())
def handle_safe_transfer_from(args: argparse.Namespace) -> None:
@ -518,6 +647,8 @@ def handle_safe_transfer_from(args: argparse.Namespace) -> None:
transaction_config=transaction_config,
)
print(result)
if args.verbose:
print(result.info())
def handle_set_approval_for_all(args: argparse.Namespace) -> None:
@ -530,6 +661,8 @@ def handle_set_approval_for_all(args: argparse.Namespace) -> None:
transaction_config=transaction_config,
)
print(result)
if args.verbose:
print(result.info())
def handle_set_contract_uri(args: argparse.Namespace) -> None:
@ -540,6 +673,8 @@ def handle_set_contract_uri(args: argparse.Namespace) -> None:
_contract_uri=args.contract_uri_arg, transaction_config=transaction_config
)
print(result)
if args.verbose:
print(result.info())
def handle_set_controller(args: argparse.Namespace) -> None:
@ -550,6 +685,8 @@ def handle_set_controller(args: argparse.Namespace) -> None:
new_controller=args.new_controller, transaction_config=transaction_config
)
print(result)
if args.verbose:
print(result.info())
def handle_set_payment_token(args: argparse.Namespace) -> None:
@ -560,6 +697,8 @@ def handle_set_payment_token(args: argparse.Namespace) -> None:
new_payment_token=args.new_payment_token, transaction_config=transaction_config
)
print(result)
if args.verbose:
print(result.info())
def handle_set_pool_base_price(args: argparse.Namespace) -> None:
@ -570,6 +709,22 @@ def handle_set_pool_base_price(args: argparse.Namespace) -> None:
new_base_price=args.new_base_price, transaction_config=transaction_config
)
print(result)
if args.verbose:
print(result.info())
def handle_set_pool_burnable(args: argparse.Namespace) -> None:
network.connect(args.network)
contract = TerminusFacet(args.address)
transaction_config = get_transaction_config(args)
result = contract.set_pool_burnable(
pool_id=args.pool_id,
burnable=args.burnable,
transaction_config=transaction_config,
)
print(result)
if args.verbose:
print(result.info())
def handle_set_pool_controller(args: argparse.Namespace) -> None:
@ -582,6 +737,22 @@ def handle_set_pool_controller(args: argparse.Namespace) -> None:
transaction_config=transaction_config,
)
print(result)
if args.verbose:
print(result.info())
def handle_set_pool_transferable(args: argparse.Namespace) -> None:
network.connect(args.network)
contract = TerminusFacet(args.address)
transaction_config = get_transaction_config(args)
result = contract.set_pool_transferable(
pool_id=args.pool_id,
transferable=args.transferable,
transaction_config=transaction_config,
)
print(result)
if args.verbose:
print(result.info())
def handle_set_uri(args: argparse.Namespace) -> None:
@ -594,54 +765,64 @@ def handle_set_uri(args: argparse.Namespace) -> None:
transaction_config=transaction_config,
)
print(result)
if args.verbose:
print(result.info())
def handle_supports_interface(args: argparse.Namespace) -> None:
network.connect(args.network)
contract = TerminusFacet(args.address)
result = contract.supports_interface(interface_id=args.interface_id)
result = contract.supports_interface(
interface_id=args.interface_id, block_number=args.block_number
)
print(result)
def handle_terminus_controller(args: argparse.Namespace) -> None:
network.connect(args.network)
contract = TerminusFacet(args.address)
result = contract.terminus_controller()
result = contract.terminus_controller(block_number=args.block_number)
print(result)
def handle_terminus_pool_capacity(args: argparse.Namespace) -> None:
network.connect(args.network)
contract = TerminusFacet(args.address)
result = contract.terminus_pool_capacity(pool_id=args.pool_id)
result = contract.terminus_pool_capacity(
pool_id=args.pool_id, block_number=args.block_number
)
print(result)
def handle_terminus_pool_controller(args: argparse.Namespace) -> None:
network.connect(args.network)
contract = TerminusFacet(args.address)
result = contract.terminus_pool_controller(pool_id=args.pool_id)
result = contract.terminus_pool_controller(
pool_id=args.pool_id, block_number=args.block_number
)
print(result)
def handle_terminus_pool_supply(args: argparse.Namespace) -> None:
network.connect(args.network)
contract = TerminusFacet(args.address)
result = contract.terminus_pool_supply(pool_id=args.pool_id)
result = contract.terminus_pool_supply(
pool_id=args.pool_id, block_number=args.block_number
)
print(result)
def handle_total_pools(args: argparse.Namespace) -> None:
network.connect(args.network)
contract = TerminusFacet(args.address)
result = contract.total_pools()
result = contract.total_pools(block_number=args.block_number)
print(result)
def handle_uri(args: argparse.Namespace) -> None:
network.connect(args.network)
contract = TerminusFacet(args.address)
result = contract.uri(pool_id=args.pool_id)
result = contract.uri(pool_id=args.pool_id, block_number=args.block_number)
print(result)
@ -655,6 +836,8 @@ def handle_withdraw_payments(args: argparse.Namespace) -> None:
transaction_config=transaction_config,
)
print(result)
if args.verbose:
print(result.info())
def generate_cli() -> argparse.ArgumentParser:
@ -784,6 +967,20 @@ def generate_cli() -> argparse.ArgumentParser:
add_default_arguments(pool_base_price_parser, False)
pool_base_price_parser.set_defaults(func=handle_pool_base_price)
pool_is_burnable_parser = subcommands.add_parser("pool-is-burnable")
add_default_arguments(pool_is_burnable_parser, False)
pool_is_burnable_parser.add_argument(
"--pool-id", required=True, help="Type: uint256", type=int
)
pool_is_burnable_parser.set_defaults(func=handle_pool_is_burnable)
pool_is_transferable_parser = subcommands.add_parser("pool-is-transferable")
add_default_arguments(pool_is_transferable_parser, False)
pool_is_transferable_parser.add_argument(
"--pool-id", required=True, help="Type: uint256", type=int
)
pool_is_transferable_parser.set_defaults(func=handle_pool_is_transferable)
pool_mint_batch_parser = subcommands.add_parser("pool-mint-batch")
add_default_arguments(pool_mint_batch_parser, True)
pool_mint_batch_parser.add_argument(
@ -871,6 +1068,16 @@ def generate_cli() -> argparse.ArgumentParser:
)
set_pool_base_price_parser.set_defaults(func=handle_set_pool_base_price)
set_pool_burnable_parser = subcommands.add_parser("set-pool-burnable")
add_default_arguments(set_pool_burnable_parser, True)
set_pool_burnable_parser.add_argument(
"--pool-id", required=True, help="Type: uint256", type=int
)
set_pool_burnable_parser.add_argument(
"--burnable", required=True, help="Type: bool", type=boolean_argument_type
)
set_pool_burnable_parser.set_defaults(func=handle_set_pool_burnable)
set_pool_controller_parser = subcommands.add_parser("set-pool-controller")
add_default_arguments(set_pool_controller_parser, True)
set_pool_controller_parser.add_argument(
@ -881,6 +1088,16 @@ def generate_cli() -> argparse.ArgumentParser:
)
set_pool_controller_parser.set_defaults(func=handle_set_pool_controller)
set_pool_transferable_parser = subcommands.add_parser("set-pool-transferable")
add_default_arguments(set_pool_transferable_parser, True)
set_pool_transferable_parser.add_argument(
"--pool-id", required=True, help="Type: uint256", type=int
)
set_pool_transferable_parser.add_argument(
"--transferable", required=True, help="Type: bool", type=boolean_argument_type
)
set_pool_transferable_parser.set_defaults(func=handle_set_pool_transferable)
set_uri_parser = subcommands.add_parser("set-uri")
add_default_arguments(set_uri_parser, True)
set_uri_parser.add_argument(

Wyświetl plik

@ -658,6 +658,98 @@ class TestCreatePoolV1(TestPoolOperations):
self.assertEqual(final_sender_balance, initial_sender_balance)
self.assertEqual(final_receiver_balance, initial_receiver_balance)
def test_pool_state_view_methods(self):
self.diamond_terminus.create_pool_v1(10, False, False, {"from": accounts[1]})
nontransferable_nonburnable_pool_id = self.diamond_terminus.total_pools()
self.assertFalse(
self.diamond_terminus.pool_is_transferable(
nontransferable_nonburnable_pool_id
)
)
self.assertFalse(
self.diamond_terminus.pool_is_burnable(nontransferable_nonburnable_pool_id)
)
self.diamond_terminus.create_pool_v1(10, True, False, {"from": accounts[1]})
transferable_nonburnable_pool_id = self.diamond_terminus.total_pools()
self.assertTrue(
self.diamond_terminus.pool_is_transferable(transferable_nonburnable_pool_id)
)
self.assertFalse(
self.diamond_terminus.pool_is_burnable(transferable_nonburnable_pool_id)
)
self.diamond_terminus.create_pool_v1(10, True, True, {"from": accounts[1]})
transferable_burnable_pool_id = self.diamond_terminus.total_pools()
self.assertTrue(
self.diamond_terminus.pool_is_transferable(transferable_burnable_pool_id)
)
self.assertTrue(
self.diamond_terminus.pool_is_burnable(transferable_burnable_pool_id)
)
self.diamond_terminus.create_pool_v1(10, False, True, {"from": accounts[1]})
nontransferable_burnable_pool_id = self.diamond_terminus.total_pools()
self.assertFalse(
self.diamond_terminus.pool_is_transferable(nontransferable_burnable_pool_id)
)
self.assertTrue(
self.diamond_terminus.pool_is_burnable(nontransferable_burnable_pool_id)
)
def test_pool_state_setters(self):
self.diamond_terminus.create_pool_v1(10, False, False, {"from": accounts[1]})
pool_id = self.diamond_terminus.total_pools()
self.assertEqual(
self.diamond_terminus.terminus_pool_controller(pool_id), accounts[1].address
)
self.assertFalse(self.diamond_terminus.pool_is_transferable(pool_id))
self.assertFalse(self.diamond_terminus.pool_is_burnable(pool_id))
self.diamond_terminus.set_pool_transferable(
pool_id, True, {"from": accounts[1]}
)
self.assertTrue(self.diamond_terminus.pool_is_transferable(pool_id))
self.assertFalse(self.diamond_terminus.pool_is_burnable(pool_id))
self.diamond_terminus.set_pool_burnable(pool_id, True, {"from": accounts[1]})
self.assertTrue(self.diamond_terminus.pool_is_transferable(pool_id))
self.assertTrue(self.diamond_terminus.pool_is_burnable(pool_id))
self.diamond_terminus.set_pool_transferable(
pool_id, False, {"from": accounts[1]}
)
self.assertFalse(self.diamond_terminus.pool_is_transferable(pool_id))
self.assertTrue(self.diamond_terminus.pool_is_burnable(pool_id))
self.diamond_terminus.set_pool_burnable(pool_id, False, {"from": accounts[1]})
self.assertFalse(self.diamond_terminus.pool_is_transferable(pool_id))
self.assertFalse(self.diamond_terminus.pool_is_burnable(pool_id))
def test_pool_state_setters_do_not_allow_noncontroller_to_set_parameters(self):
self.diamond_terminus.create_pool_v1(10, False, False, {"from": accounts[1]})
pool_id = self.diamond_terminus.total_pools()
self.assertEqual(
self.diamond_terminus.terminus_pool_controller(pool_id), accounts[1].address
)
self.assertFalse(self.diamond_terminus.pool_is_transferable(pool_id))
self.assertFalse(self.diamond_terminus.pool_is_burnable(pool_id))
with self.assertRaises(VirtualMachineError):
self.diamond_terminus.set_pool_transferable(
pool_id, True, {"from": accounts[2]}
)
with self.assertRaises(VirtualMachineError):
self.diamond_terminus.set_pool_burnable(
pool_id, True, {"from": accounts[2]}
)
self.assertFalse(self.diamond_terminus.pool_is_transferable(pool_id))
self.assertFalse(self.diamond_terminus.pool_is_burnable(pool_id))
def test_burnable_pool_burn_as_token_owner(self):
self.diamond_terminus.create_pool_v1(10, True, True, {"from": accounts[1]})
pool_id = self.diamond_terminus.total_pools()

Wyświetl plik

@ -6,7 +6,7 @@ with open("README.md") as ifp:
setup(
name="moonstream-dao",
version="0.0.5",
version="0.0.6",
packages=find_packages(),
install_requires=["eth-brownie", "tqdm"],
extras_require={