def maintain(polyswarmd_addr, keyfile, password, api_key, testing, insecure_transport, allow_key_over_http, denomination, maximum, withdraw_target, confirmations, minimum, refill_amount): """ Maintain min/max NCT balance in sidechain """ polyswarmd_addr = utils.finalize_polyswarmd_addr(polyswarmd_addr, api_key, allow_key_over_http, insecure_transport) logger.info( 'Maintaining the minimum balance by depositing %s %s when it falls below %s %s', refill_amount, denomination, minimum, denomination) if maximum > 0 > withdraw_target: logger.warning('Must set a withdraw target when using a maximum') return if maximum > 0 and 0 < withdraw_target < minimum: logger.warning('Withdraw-target must me more than minimum') return if 0 < maximum < minimum: logger.warning('Maximum must be more than minimum') return if maximum > 0 and withdraw_target > 0: logger.info( 'Maintaining the minimum balance by withdrawing to %s %s when it exceeds %s %s', withdraw_target, denomination, maximum, denomination) client = Client(polyswarmd_addr, keyfile, password, api_key, testing > 0) Maintainer(client, denomination, confirmations, minimum, refill_amount, maximum, withdraw_target, testing).run()
def connect(cls, polyswarmd_addr, keyfile, password, api_key=None, testing=0, insecure_transport=False, scanner=None, chains=None, artifact_types=None): """Connect the Arbiter to a Client. Args: polyswarmd_addr (str): URL of polyswarmd you are referring to. keyfile (str): Keyfile filename. password (str): Password associated with Keyfile. api_key (str): Your PolySwarm API key. testing (int): Number of testing bounties to use. insecure_transport (bool): Allow insecure transport such as HTTP? scanner (AbstractScanner): Scanner for scanning artifacts chains (set(str)): Set of chains you are acting on. artifact_types (list(ArtifactType)): List of artifact types you support Returns: AbstractArbiter: Arbiter instantiated with a Client. """ client = Client(polyswarmd_addr, keyfile, password, api_key, testing > 0, insecure_transport) return cls(client, testing, scanner, chains, artifact_types)
def view_stake(polyswarmd_addr, keyfile, password, api_key, testing, insecure_transport, denomination, chain): client = Client(polyswarmd_addr, keyfile, password, api_key, testing > 0, insecure_transport) balance = ViewStake(client, denomination, chain) balance.run_oneshot() sys.exit(balance.exit_code)
def connect(cls, polyswarmd_addr, keyfile, password, api_key=None, testing=0, insecure_transport=False, chains=None, watchdog=0, submission_rate=0): """Connect the Ambassador to a Client. Args: polyswarmd_addr (str): URL of polyswarmd you are referring to. keyfile (str): Keyfile filename. password (str): Password associated with Keyfile. api_key (str): Your PolySwarm API key. testing (int): Number of testing bounties to use. insecure_transport (bool): Allow insecure transport such as HTTP? chains (set(str)): Set of chains you are acting on. Returns: AbstractAmbassador: Ambassador instantiated with a Client. """ client = Client(polyswarmd_addr, keyfile, password, api_key, testing > 0, insecure_transport) return cls(client, testing, chains, watchdog, submission_rate)
def withdraw_stake(polyswarmd_addr, keyfile, password, api_key, testing, insecure_transport, denomination, all, chain, amount): """ Entrypoint to withdraw NCT from a sidechain into the homechain Args: polyswarmd_addr (str): Address for the polyswarmd server keyfile (str): Path to the keyfile password (str): Password to unlock keyfile api_key (str): ApiKey to access polyswarmd testing (int): Number of tests to run insecure_transport (bool): Flag to allow use of http instead of https denomination (str): Choose to interpret amount as nct, nct-gwei, or nct-wei all (bool): Choose to withdraw the entire sidechain balance amount (float): Amount of Nectar (NCT) to transfer (if not all) """ if amount is None and not all: raise click.BadArgumentUsage('Must specify either an amount or --all') client = Client(polyswarmd_addr, keyfile, password, api_key, testing > 0, insecure_transport) w = WithdrawStake(client, denomination, all, amount, testing=testing, chain=chain) w.run_oneshot() sys.exit(w.exit_code)
def view_stake(polyswarmd_addr, keyfile, password, api_key, testing, insecure_transport, allow_key_over_http, denomination, chain): polyswarmd_addr = utils.finalize_polyswarmd_addr(polyswarmd_addr, api_key, allow_key_over_http, insecure_transport) client = Client(polyswarmd_addr, keyfile, password, api_key, testing > 0) balance = ViewStake(client, denomination, chain) balance.run_oneshot() if balance.exit_code: raise FatalError('Error viewing stake', balance.exit_code)
def withdraw(polyswarmd_addr, keyfile, password, api_key, testing, insecure_transport, denomination, all, amount): """ Withdraw NCT from a sidechain """ if amount is None and not all: raise click.BadArgumentUsage('Must specify either an amount or --all') client = Client(polyswarmd_addr, keyfile, password, api_key, testing > 0, insecure_transport) w = Withdraw(client, denomination, all, amount, testing=testing) w.run_oneshot() sys.exit(w.exit_code)
def deposit(polyswarmd_addr, keyfile, password, api_key, testing, insecure_transport, denomination, all, amount): """ Deposit NCT into a sidechain """ if amount is None and not all: raise click.BadArgumentUsage('Must specify either an amount or --all') client = Client(polyswarmd_addr, keyfile, password, api_key, testing > 0, insecure_transport) d = Deposit(client, denomination, all, amount, testing=testing) d.run_oneshot() sys.exit(d.exit_code)
def withdraw(polyswarmd_addr, keyfile, password, api_key, testing, insecure_transport, allow_key_over_http, denomination, all, amount): """ Withdraw NCT from a sidechain """ polyswarmd_addr = utils.finalize_polyswarmd_addr(polyswarmd_addr, api_key, allow_key_over_http, insecure_transport) if amount is None and not all: raise click.BadArgumentUsage('Must specify either an amount or --all') client = Client(polyswarmd_addr, keyfile, password, api_key, testing > 0) w = Withdraw(client, denomination, all, amount, testing=testing) w.run_oneshot() if w.exit_code: raise FatalError('Error withdrawing NCT', w.exit_code)
def maintain(polyswarmd_addr, keyfile, password, api_key, testing, insecure_transport, denomination, maximum, withdraw_target, confirmations, minimum, refill_amount): """ Entrypoint to withdraw NCT from a sidechain into the homechain Args: polyswarmd_addr (str): Address for the polyswarmd server keyfile (str): Path to the keyfile password (str): Password to unlock keyfile api_key (str): ApiKey to access polyswarmd testing (int): Number of tests to run insecure_transport (bool): Flag to allow use of http instead of https denomination (str): Choose to interpret amount as nct, nct-gwei, or nct-wei maximum (int): Maximum balance to before starting a withdrawal from sidechain withdraw_target (int): Target value after performing a withdrawal confirmations (int): Number of confirmations to wait to confirm a transfer occurred minimum (float): Value of NCT on sidechain where you want to transfer more NCT refill_amount (float): Value of NCT to transfer anytime the balance falls below the minimum """ logger.info( 'Maintaining the minimum balance by depositing %s %s when it falls below %s %s', refill_amount, denomination, minimum, denomination) if maximum > 0 and withdraw_target < 0: logger.warning('Must set a withdraw target when using a maximum') return if maximum > 0 and 0 < withdraw_target < minimum: logger.warning('Withdraw-target must me more than minimum') return if 0 < maximum < minimum: logger.warning('Maximum must be more than minimum') return if maximum > 0 and withdraw_target > 0: logger.info( 'Maintaining the minimum balance by withdrawing to %s %s when it exceeds %s %s', withdraw_target, denomination, maximum, denomination) client = Client(polyswarmd_addr, keyfile, password, api_key, testing > 0, insecure_transport) Maintainer(client, denomination, confirmations, minimum, refill_amount, maximum, withdraw_target, testing).run()
def connect(cls, polyswarmd_addr, keyfile, password, api_key=None, testing=0, insecure_transport=False, scanner=None, chains=None, artifact_types=None, bid_strategy=None, bounty_filter=BountyFilter(None, None), confidence_modifier=ConfidenceModifier(None, None)): """Connect the Microengine to a Client. Args: polyswarmd_addr (str): URL of polyswarmd you are referring to. keyfile (str): Keyfile filename. password (str): Password associated with Keyfile. api_key (str): Your PolySwarm API key. testing (int): Number of testing bounties to use. insecure_transport (bool): Allow insecure transport such as HTTP? scanner (Scanner): `Scanner` instance to use. chains (set(str)): Set of chains you are acting on. artifact_types (list(ArtifactType)): List of artifact types you support bid_strategy (BidStrategyBase): Bid Strategy for bounties bounty_filter (BountyFilter): Filters to accept/reject artifacts confidence_modifier (ConfidenceModifier): Filters to adjust confidence based on metadata Returns: AbstractMicroengine: Microengine instantiated with a Client. """ client = Client(polyswarmd_addr, keyfile, password, api_key, testing > 0, insecure_transport) return cls(client, testing, scanner, chains, artifact_types, bid_strategy=bid_strategy, bounty_filter=bounty_filter, confidence_modifier=confidence_modifier)
def deposit_stake(polyswarmd_addr, keyfile, password, api_key, testing, insecure_transport, allow_key_over_http, denomination, all, chain, amount): """ Deposit NCT into the ArbiterStaking contract """ polyswarmd_addr = utils.finalize_polyswarmd_addr(polyswarmd_addr, api_key, allow_key_over_http, insecure_transport) if amount is None and not all: raise click.BadArgumentUsage('Must specify either an amount or --all') client = Client(polyswarmd_addr, keyfile, password, api_key, testing > 0) d = DepositStake(client, denomination, all, amount, testing=testing, chain=chain) d.run_oneshot() if d.exit_code: raise FatalError('Error depositing stake', d.exit_code)
def connect(cls, polyswarmd_addr, keyfile, password, api_key=None, testing=0, insecure_transport=False, scanner=None, chains=None, artifact_types=None, bid_strategy=None, accept=None, exclude=None): """Connect the Microengine to a Client. Args: polyswarmd_addr (str): URL of polyswarmd you are referring to. keyfile (str): Keyfile filename. password (str): Password associated with Keyfile. api_key (str): Your PolySwarm API key. testing (int): Number of testing bounties to use. insecure_transport (bool): Allow insecure transport such as HTTP? scanner (Scanner): `Scanner` instance to use. chains (set(str)): Set of chains you are acting on. artifact_types (list(ArtifactType)): List of artifact types you support bid_strategy (BidStrategyBase): Bid Strategy for bounties accept (list[tuple[str]]): List of accepted mimetypes exclude (list[tuple[str]]): List of excluded mimetypes Returns: AbstractMicroengine: Microengine instantiated with a Client. """ client = Client(polyswarmd_addr, keyfile, password, api_key, testing > 0, insecure_transport) return cls(client, testing, scanner, chains, artifact_types, bid_strategy=bid_strategy, accept=accept, exclude=exclude)