This client enables to perform actions on Escrow contracts and obtain information from both the contracts and subgraph.
Internally, the SDK will use one network or another according to the network ID of the web3. To use this client, you need to create Web3 instance, and configure default account, as well as some middlewares.
Code Example
With Signer
from eth_typing import URI
from web3 import Web3
from web3.middleware import construct_sign_and_send_raw_middleware
from web3.providers.auto import load_provider_from_uri
from human_protocol_sdk.escrow import EscrowClient
def get_w3_with_priv_key(priv_key: str):
w3 = Web3(load_provider_from_uri(URI("http://localhost:8545")))
gas_payer = w3.eth.account.from_key(priv_key)
w3.eth.default_account = gas_payer.address
w3.middleware_onion.add(
construct_sign_and_send_raw_middleware(gas_payer),
"construct_sign_and_send_raw_middleware",
)
return (w3, gas_payer)
(w3, gas_payer) = get_w3_with_priv_key('YOUR_PRIVATE_KEY')
escrow_client = EscrowClient(w3)
Without Signer (For read operations only)
from eth_typing import URI
from web3 import Web3
from web3.providers.auto import load_provider_from_uri
from human_protocol_sdk.escrow import EscrowClient
w3 = Web3(load_provider_from_uri(URI("http://localhost:8545")))
escrow_client = EscrowClient(w3)
Module
class human_protocol_sdk.escrow.escrow_client.EscrowCancel(tx_hash, amount_refunded)
Bases: object
__init__(tx_hash, amount_refunded)
Represents the result of an escrow cancellation transaction. Args:
tx_hash (str): The hash of the transaction that cancelled the escrow. amount_refunded (Any): The amount refunded during the escrow cancellation.
class human_protocol_sdk.escrow.escrow_client.EscrowClient(web3)
Bases: object
A class used to manage escrow on the HUMAN network.
__init__(web3)
Initializes a Escrow instance.
Parameters:web3 (Web3) – The Web3 object
abort(escrow_address, tx_options=None)
Cancels the specified escrow, sends the balance to the canceler and selfdestructs the escrow contract.
Parameters:
escrow_address (str) – Address of the escrow to abort
Returns: EscrowCancel: An instance of the EscrowCancel class containing details of the cancellation transaction, including the transaction hash and the amount refunded.
Raises:
Example:
from eth_typing import URI
from web3 import Web3
from web3.middleware import construct_sign_and_send_raw_middleware
from web3.providers.auto import load_provider_from_uri
from human_protocol_sdk.escrow import EscrowClient
def get_w3_with_priv_key(priv_key: str):
w3 = Web3(load_provider_from_uri(URI("http://localhost:8545")))
gas_payer = w3.eth.account.from_key(priv_key)
w3.eth.default_account = gas_payer.address
w3.middleware_onion.add(
construct_sign_and_send_raw_middleware(gas_payer),
"construct_sign_and_send_raw_middleware",
)
return (w3, gas_payer)
(w3, gas_payer) = get_w3_with_priv_key('YOUR_PRIVATE_KEY')
escrow_client = EscrowClient(w3)
escrow_cancel_data = escrow_client.cancel(
"0x62dD51230A30401C455c8398d06F85e4EaB6309f"
)
complete(escrow_address, tx_options=None)
Sets the status of an escrow to completed.
Parameters:
escrow_address (str) – Address of the escrow to complete
from eth_typing import URI
from web3 import Web3
from web3.middleware import construct_sign_and_send_raw_middleware
from web3.providers.auto import load_provider_from_uri
from human_protocol_sdk.escrow import EscrowClient
def get_w3_with_priv_key(priv_key: str):
w3 = Web3(load_provider_from_uri(URI("http://localhost:8545")))
gas_payer = w3.eth.account.from_key(priv_key)
w3.eth.default_account = gas_payer.address
w3.middleware_onion.add(
construct_sign_and_send_raw_middleware(gas_payer),
"construct_sign_and_send_raw_middleware",
)
return (w3, gas_payer)
(w3, gas_payer) = get_w3_with_priv_key('YOUR_PRIVATE_KEY')
escrow_client = EscrowClient(w3)
amount = Web3.to_wei(5, 'ether') # convert from ETH to WEI
escrow_client.fund("0x62dD51230A30401C455c8398d06F85e4EaB6309f", amount)
get_balance(escrow_address)
Gets the balance for a specified escrow address.
Parameters:escrow_address (str) – Address of the escrow
Return type:Decimal
Returns: Value of the balance
Example:
from eth_typing import URI
from web3 import Web3
from web3.providers.auto import load_provider_from_uri
from human_protocol_sdk.escrow import EscrowClient
w3 = Web3(load_provider_from_uri(URI("http://localhost:8545")))
escrow_client = EscrowClient(w3)
balance = escrow_client.get_balance(
"0x62dD51230A30401C455c8398d06F85e4EaB6309f"
)
get_exchange_oracle_address(escrow_address)
Gets the exchange oracle address of the escrow.
Parameters:escrow_address (str) – Address of the escrow
Return type:str
Returns: Exchange oracle address
Example:
from eth_typing import URI
from web3 import Web3
from web3.providers.auto import load_provider_from_uri
from human_protocol_sdk.escrow import EscrowClient
w3 = Web3(load_provider_from_uri(URI("http://localhost:8545")))
escrow_client = EscrowClient(w3)
exchange_oracle = escrow_client.get_exchange_oracle_address(
"0x62dD51230A30401C455c8398d06F85e4EaB6309f"
)
get_factory_address(escrow_address)
Gets the escrow factory address of the escrow.
Parameters:escrow_address (str) – Address of the escrow
Return type:str
Returns: Escrow factory address
Example:
from eth_typing import URI
from web3 import Web3
from web3.providers.auto import load_provider_from_uri
from human_protocol_sdk.escrow import EscrowClient
w3 = Web3(load_provider_from_uri(URI("http://localhost:8545")))
escrow_client = EscrowClient(w3)
escrow_factory = escrow_client.get_factory_address(
"0x62dD51230A30401C455c8398d06F85e4EaB6309f"
)
get_intermediate_results_url(escrow_address)
Gets the intermediate results file URL.
Parameters:escrow_address (str) – Address of the escrow
Return type:str
Returns: Intermediate results file url
Example:
from eth_typing import URI
from web3 import Web3
from web3.providers.auto import load_provider_from_uri
from human_protocol_sdk.escrow import EscrowClient
w3 = Web3(load_provider_from_uri(URI("http://localhost:8545")))
escrow_client = EscrowClient(w3)
url = escrow_client.get_intermediate_results_url(
"0x62dD51230A30401C455c8398d06F85e4EaB6309f"
)
get_job_launcher_address(escrow_address)
Gets the job launcher address of the escrow.
Parameters:escrow_address (str) – Address of the escrow
Return type:str
Returns: Job launcher address
Example:
from eth_typing import URI
from web3 import Web3
from web3.providers.auto import load_provider_from_uri
from human_protocol_sdk.escrow import EscrowClient
w3 = Web3(load_provider_from_uri(URI("http://localhost:8545")))
escrow_client = EscrowClient(w3)
job_launcher = escrow_client.get_job_launcher_address(
"0x62dD51230A30401C455c8398d06F85e4EaB6309f"
)
get_manifest_hash(escrow_address)
Gets the manifest file hash.
Parameters:escrow_address (str) – Address of the escrow
Return type:str
Returns: Manifest file hash
Example:
from eth_typing import URI
from web3 import Web3
from web3.providers.auto import load_provider_from_uri
from human_protocol_sdk.escrow import EscrowClient
w3 = Web3(load_provider_from_uri(URI("http://localhost:8545")))
escrow_client = EscrowClient(w3)
manifest_hash = escrow_client.get_manifest_hash(
"0x62dD51230A30401C455c8398d06F85e4EaB6309f"
)
get_manifest_url(escrow_address)
Gets the manifest file URL.
Parameters:escrow_address (str) – Address of the escrow
Return str: Manifest file url
Example:
from eth_typing import URI
from web3 import Web3
from web3.providers.auto import load_provider_from_uri
from human_protocol_sdk.escrow import EscrowClient
w3 = Web3(load_provider_from_uri(URI("http://localhost:8545")))
escrow_client = EscrowClient(w3)
url = escrow_client.get_manifest_url(
"0x62dD51230A30401C455c8398d06F85e4EaB6309f"
)
Return type:str
get_recording_oracle_address(escrow_address)
Gets the recording oracle address of the escrow.
Parameters:escrow_address (str) – Address of the escrow
Return type:str
Returns: Recording oracle address
Example:
from eth_typing import URI
from web3 import Web3
from web3.providers.auto import load_provider_from_uri
from human_protocol_sdk.escrow import EscrowClient
w3 = Web3(load_provider_from_uri(URI("http://localhost:8545")))
escrow_client = EscrowClient(w3)
recording_oracle = escrow_client.get_recording_oracle_address(
"0x62dD51230A30401C455c8398d06F85e4EaB6309f"
)
get_reputation_oracle_address(escrow_address)
Gets the reputation oracle address of the escrow.
Parameters:escrow_address (str) – Address of the escrow
Return type:str
Returns: Reputation oracle address
Example:
from eth_typing import URI
from web3 import Web3
from web3.providers.auto import load_provider_from_uri
from human_protocol_sdk.escrow import EscrowClient
w3 = Web3(load_provider_from_uri(URI("http://localhost:8545")))
escrow_client = EscrowClient(w3)
reputation_oracle = escrow_client.get_reputation_oracle_address(
"0x62dD51230A30401C455c8398d06F85e4EaB6309f"
)
get_results_url(escrow_address)
Gets the results file URL.
Parameters:escrow_address (str) – Address of the escrow
Return type:str
Returns: Results file url
Example:
from eth_typing import URI
from web3 import Web3
from web3.providers.auto import load_provider_from_uri
from human_protocol_sdk.escrow import EscrowClient
w3 = Web3(load_provider_from_uri(URI("http://localhost:8545")))
escrow_client = EscrowClient(w3)
url = escrow_client.get_results_url(
"0x62dD51230A30401C455c8398d06F85e4EaB6309f"
)
get_status(escrow_address)
Gets the current status of the escrow.
Parameters:escrow_address (str) – Address of the escrow
Returns: Current escrow status
Example:
from eth_typing import URI
from web3 import Web3
from web3.providers.auto import load_provider_from_uri
from human_protocol_sdk.escrow import EscrowClient
w3 = Web3(load_provider_from_uri(URI("http://localhost:8545")))
escrow_client = EscrowClient(w3)
status = escrow_client.get_status(
"0x62dD51230A30401C455c8398d06F85e4EaB6309f"
)
get_token_address(escrow_address)
Gets the address of the token used to fund the escrow.
Parameters:escrow_address (str) – Address of the escrow
Return type:str
Returns: Address of the token
Example:
from eth_typing import URI
from web3 import Web3
from web3.providers.auto import load_provider_from_uri
from human_protocol_sdk.escrow import EscrowClient
w3 = Web3(load_provider_from_uri(URI("http://localhost:8545")))
escrow_client = EscrowClient(w3)
token_address = escrow_client.get_token_address(
"0x62dD51230A30401C455c8398d06F85e4EaB6309f"
)