A python SDK to help interacting with Crab v2.
It's possible to install the package via pip,
having also git installed.
# Latest version
python3 -m pip install \
"git+https://github.com/opynfinance/crab-v2-sdk-python.git#egg=crab_v2_sdk_python"There are different things you are able to do with this package.
fromcrab_v2_sdk_python.definitionsimportChains, ContractConfig, Domainfromcrab_v2_sdk_python.settlementimportSettlementContract, asdict# Define the following variables:crab_contract_address="0x..."domain=Domain("CrabOTC", "2", 3, crab_contract_address)
print(asdict(domain))This will output something similar to:
{'name': 'CrabOTC', 'version': '2', 'chainId': 3, 'verifyingContract': '0x3B960E47784150F5a63777201ee2B15253D713e8'}fromdotenvimportload_dotenvfromdatetimeimportdatetimefromdataclassesimportasdictfromcrab_v2_sdk_python.definitionsimport*fromcrab_v2_sdk_python.walletimportWalletosqth_token_address="0xa4222f78d23593e82Aa74742d25D06720DCa4ab7"maker_public=0x0...
maker_private=0x012...
maker_wallet=Wallet(maker_public, maker_private)
maker_message=MessageToSign(
bidId=1,
trader=maker_wallet.public_key,
quantity=int(10**18),
price=int(0.5*10**18),
isBuying=True,
expiry=int(datetime.timestamp(datetime.now()) +3600),
nonce=1,
)
signed_maker_order=maker_wallet.sign_bid_data(domain, maker_message)This will output something similar to:
signed_maker_orderBidData(bidId=1, trader='0x5599b4EAdDd319e2F462b27fC8378B0BFaD309CA', quantity=1000000000000000000, price=500000000000000000, isBuying=True, expiry=1660738176, nonce=1, v=27, r='0x818976080a8f886be93277d70c8e7b141d6ec65266ff837dde3d6bca31e6dfb5', s='0x52b4c51d59cea64a3e11c1c0440010638bae899fcbcbeadd5214f8856151262a')fromdotenvimportload_dotenvfromdatetimeimportdatetimefromdataclassesimportasdictfromcrab_v2_sdk_python.definitionsimport*fromcrab_v2_sdk_python.walletimportWalletosqth_token_address="0xa4222f78d23593e82Aa74742d25D06720DCa4ab7"crab_contract_address="0x3B960E47784150F5a63777201ee2B15253D713e8"crab_config=ContractConfig(crab_contract_address, rpc_uri, current_chain)
token_address="0x..."#token address to check allowance formaker_public=0x0...
maker_private=0x012...
maker_wallet=Wallet(maker_public, maker_private)
check=wallet.verify_allowance(crab_config, token_address)
print(check)
# True- Make sure to have poetry installed
- Install dependencies using poetry by running
poetry install
- Make sure to have the following environment variables in
.envfile:
RPC_TOKEN=
RPC_URL=
MAKER_PubKEY=
MAKER_PrivKEY=
- Build the crab_v2_sdk_python package by running
poetry build - Run
pip3 install -I dist/crab_v2_sdk_python-0.1.0-py3-none-any.whl - Run python3 scripts/crab_v2_sdk_script.py
- Mainnet: 0x3B960E47784150F5a63777201ee2B15253D713e8
- Ropsten: