예제 #1
0
def deposit_contract(
    DepositContract: ContractContainer,
    deposit_token_contract: Any,
    owner: Account,
) -> Any:
    deposit_contract = owner.deploy(DepositContract, deposit_token_contract)
    return deposit_contract
예제 #2
0
def executor_contract(
    ExecutorContract: ContractContainer,
    config_contract: Any,
    mock_batcher_contract: Any,
    owner: Account,
) -> Any:
    executor_contract = owner.deploy(ExecutorContract, config_contract, mock_batcher_contract)
    return executor_contract
예제 #3
0
def batcher_contract(
    BatcherContract: ContractContainer,
    config_contract: Any,
    fee_bank_contract: Any,
    owner: Account,
) -> Any:
    config_contract = owner.deploy(BatcherContract, config_contract, fee_bank_contract)
    return config_contract
예제 #4
0
def executor_contract(
    ExecutorContract: ContractContainer,
    config_contract: Any,
    batcher_contract: Any,
    owner: Account,
) -> Any:
    # overrides executor_contract fixture in tests/conftest.py which uses mock_batcher_contract
    executor_contract = owner.deploy(ExecutorContract, config_contract,
                                     batcher_contract)
    return executor_contract
예제 #5
0
def keyper_slasher(
    KeyperSlasher: ContractContainer,
    config_contract: Any,
    executor_contract: Any,
    deposit_contract: Any,
    owner: Account,
    appeal_blocks: int,
) -> Any:
    keyper_slasher = owner.deploy(
        KeyperSlasher, appeal_blocks, config_contract, executor_contract, deposit_contract
    )
    return keyper_slasher
예제 #6
0
    def __init__(cls, alice: Account, ERC721: ContractContainer,
                 xhibit: Contract):
        cls.alice = alice
        cls.xhibit = xhibit

        # create 10 mock ERC721 contracts
        for _ in range(10):
            instance = alice.deploy(ERC721)
            # create 10 xhibit NFTs as well
            xhibit.mint(alice, {"from": alice})
            # create 10 NFTs in this contract instance
            for _ in range(10):
                instance._mint_for_testing(alice, {"from": alice})
    def __init__(cls, alice: Account, ERC20: ContractContainer,
                 xhibit: Contract):
        cls.alice = alice
        cls.xhibit = xhibit

        # create 10 mock ERC20 contracts
        for i in range(10):
            instance = alice.deploy(ERC20, f"Test Token {i}", f"TST{i}", 18)
            # mint a s#!t ton of tokens :)
            instance._mint_for_testing(alice, 2**256 - 1, {"from": alice})
            # approve ahead of time
            instance.approve(xhibit, 2**256 - 1, {"from": alice})
            # create 10 xhibit NFTs as well
            xhibit.mint(alice, {"from": alice})
예제 #8
0
def diamond(
    adam: Account,
    diamond_cut_facet: ProjectContract,
    diamond_loupe_facet: ProjectContract,
    Diamond: ContractContainer,
    DiamondCut: ContractContainer,
    DiamondLoupe: ContractContainer,
    facet_cut_action: FacetCutAction,
) -> ProjectContract:
    """Deploy the Diamond contract with Cut and Loupe facets."""
    init_facet_cuts = [
        (
            diamond_cut_facet.address,
            facet_cut_action.ADD,
            tuple(DiamondCut.selectors.keys()),
        ),
        (
            diamond_loupe_facet.address,
            facet_cut_action.ADD,
            tuple(DiamondLoupe.selectors.keys()),
        ),
    ]
    return adam.deploy(Diamond, init_facet_cuts)
예제 #9
0
def xhibit(alice: Account, callproxy: Contract, Xhibit: ContractContainer) -> Contract:
    """Instance of the Xhibit contract."""
    return alice.deploy(Xhibit, callproxy)
예제 #10
0
def callproxy(alice: Account, CallProxy: ContractContainer) -> Contract:
    """Instance of the CallProxy contract."""
    return alice.deploy(CallProxy)
예제 #11
0
def nft(alice: Account, ERC721: ContractContainer) -> Contract:
    """Instance of the Xhibit contract."""
    return alice.deploy(ERC721)
예제 #12
0
def diamond_loupe_facet(adam: Account,
                        DiamondLoupe: ContractContainer) -> ProjectContract:
    """Deploy the DiamondLoupe contract."""
    return adam.deploy(DiamondLoupe)
예제 #13
0
def diamond_cut_facet(adam: Account,
                      DiamondCut: ContractContainer) -> ProjectContract:
    """Deploy the DiamondCut contract."""
    return adam.deploy(DiamondCut)
예제 #14
0
def deposit_token_contract(
    TestDepositTokenContract: ContractContainer,
    owner: Account,
    erc_1820_registry: None,
) -> Any:
    return owner.deploy(TestDepositTokenContract)
예제 #15
0
def mock_target_contract(MockTargetContract: ContractContainer, owner: Account) -> Any:
    mock_target_contract = owner.deploy(MockTargetContract)
    return mock_target_contract
예제 #16
0
def config_contract(
    ConfigContract: ContractContainer, owner: Account, config_change_heads_up_blocks: int
) -> Any:
    config_contract = owner.deploy(ConfigContract, config_change_heads_up_blocks)
    return config_contract
예제 #17
0
def mock_batcher_contract(MockBatcherContract: ContractContainer, owner: Account) -> Any:
    mock_batcher_contract = owner.deploy(MockBatcherContract)
    return mock_batcher_contract