Пример #1
0
def accept_pending_delegation(delegation_id, pk_file: str) -> None:
    skale = init_skale_w_wallet_from_config(pk_file)
    if not skale:
        return
    with yaspin(text='Accepting delegation request', color=SPIN_COLOR) as sp:
        tx_res = skale.delegation_service.accept_pending_delegation(
            delegation_id=delegation_id)
        if not check_tx_result(tx_res.hash, skale.web3):
            sp.write(f'Transaction failed: {tx_res.hash}')
            return
        sp.write(f'✔ Delegation request with ID {delegation_id} accepted')
Пример #2
0
def cancel_pending_delegation(delegation_id: int, pk_file: str) -> None:
    skale = init_skale_w_wallet_from_config(pk_file)
    if not skale:
        return
    with yaspin(text='Canceling delegation request', color=SPIN_COLOR) as sp:
        tx_res = skale.delegation_service.cancel_pending_delegation(
            delegation_id=delegation_id)
        receipt = wait_receipt(skale.web3, tx_res.hash)
        if not check_receipt(receipt, raise_error=False):
            sp.write(f'Transaction failed, check receipt: {tx_res.hash}')
            return
        sp.write("✔ Delegation request canceled")
Пример #3
0
def link_node_address(node_address: str, pk_file: str) -> None:
    skale = init_skale_w_wallet_from_config(pk_file)
    if not skale:
        return
    with yaspin(text='Linking node address', color=SPIN_COLOR) as sp:
        tx_res = skale.delegation_service.link_node_address(
            node_address=node_address)
        if not check_tx_result(tx_res.hash, skale.web3):
            sp.write(f'Transaction failed: {tx_res.hash}')
            return
        sp.write(
            f'✔ Node address {node_address} linked to your validator address')
Пример #4
0
def delegate(validator_id, amount, delegation_period, info, pk_file):
    skale = init_skale_w_wallet_from_config(pk_file)
    if not skale:
        return
    with yaspin(text='Sending delegation request', color=SPIN_COLOR) as sp:
        tx_res = skale.delegation_service.delegate(
            validator_id=validator_id,
            amount=amount,
            delegation_period=delegation_period,
            info=info)
        receipt = wait_receipt(skale.web3, tx_res.hash)
        if not check_receipt(receipt, raise_error=False):
            sp.write(f'Transaction failed, check receipt: {tx_res.hash}')
            return
        sp.write("✔ Delegation request sent")
Пример #5
0
def register(name: str, description: str, commission_rate: int,
             min_delegation: int, pk_file: str):
    skale = init_skale_w_wallet_from_config(pk_file)
    if not skale:
        return
    with yaspin(text='Registering new validator', color=SPIN_COLOR) as sp:
        tx_res = skale.delegation_service.register_validator(
            name=name,
            description=description,
            fee_rate=commission_rate,
            min_delegation_amount=min_delegation)
        if not check_tx_result(tx_res.hash, skale.web3):
            sp.write(f'Transaction failed: {tx_res.hash}')
            return
        sp.write("✔ New validator registered")
Пример #6
0
        amount=get_test_delegation_amount(skale),
        delegation_period=D_DELEGATION_PERIOD,
        info=D_DELEGATION_INFO,
        wait_for=True
    )
    check_receipt(tx_res.receipt)


def enable_validator(skale):
    print(f'Enabling validator ID: {D_VALIDATOR_ID}')
    tx_res = skale.validator_service._enable_validator(D_VALIDATOR_ID, wait_for=True)
    check_receipt(tx_res.receipt)


def create_validator(skale):
    print('Creating default validator')
    tx_res = skale.delegation_service.register_validator(
        name=D_VALIDATOR_NAME,
        description=D_VALIDATOR_DESC,
        fee_rate=D_VALIDATOR_FEE,
        min_delegation_amount=D_VALIDATOR_MIN_DEL,
        wait_for=True
    )
    check_receipt(tx_res.receipt)


if __name__ == "__main__":
    init_default_logger()
    skale = init_skale_w_wallet_from_config(pk_file=TEST_PK_FILE)
    setup_validator(skale)