Python SDK for Flexvaults - manage deposits, withdrawals, locks, and transfers
Project description
flexvaults-sdk
Python SDK for Flexvaults - manage deposits, withdrawals, locks, and transfers on the accounting module.
Installation
pip install flexvaults-sdk
Quick Start
import asyncio
from flexvaults import FlexvaultsClient, DepositQuoteRequest
async def main():
async with FlexvaultsClient(base_url="https://api.example.com") as client:
# Get a deposit quote
quote = await client.get_deposit_quote(
DepositQuoteRequest(
user_address="0xYourAddress",
token_id="0xTokenId",
amount=1000000,
)
)
print(f"Deposit to: {quote.deposit_address}")
# Check balance
balance = await client.get_balance("0xYourAddress", "0xTokenId")
print(f"Balance: {balance.balance}")
asyncio.run(main())
EIP-712 Signing
from eth_account import Account
from flexvaults import (
sign_lock_message,
SignLockParams,
LockMessage,
get_accounting_contract,
create_lock_expiry,
)
account = Account.from_key("0xYourPrivateKey")
signature = sign_lock_message(
SignLockParams(
account=account,
network="testnet",
verifying_contract=get_accounting_contract("testnet"),
message=LockMessage(
user_address=account.address,
service_address="0xServiceAddress",
token_id="0xTokenId",
amount=1000000,
expiry=create_lock_expiry(60),
),
)
)
API Reference
Client
FlexvaultsClient(base_url, timeout=30.0, headers=None)- Main API clientget_deposit_quote(request)- Get deposit quoteinclude_deposit(request)- Include deposit proofget_balance(user_address, token_id)- Get token balanceget_batch_balances(request)- Get multiple token balancesget_token_info(token_id)- Get token informationlock_funds(request)- Lock funds for a servicemodify_lock(request)- Modify an existing lock (add funds and/or extend expiry)unlock_funds(request)- Unlock specific lockunlock_all_expired(request)- Unlock all expired locksget_locked_funds(user_address, service_address=None)- Get locked fundsget_total_locked_balance(user_address, token_id)- Get total locked balanceget_expired_locks(user_address)- Get expired lockstransfer_funds(request)- Transfer tokens (requires nonce)get_transfer_nonce(user_address)- Get next transfer noncetransfer_locked_funds(request)- Transfer locked tokensrequest_withdrawal(request)- Request withdrawalget_pending_withdrawals(user_address)- Get pending withdrawalsget_withdrawal_info(index)- Get withdrawal info
Signing
sign_lock_message(params)- Sign lock messagesign_modify_lock_message(params)- Sign modify lock messagesign_transfer_message(params)- Sign transfer messagesign_transfer_locked_message(params)- Sign transfer locked messagesign_withdraw_message(params)- Sign withdrawal messagecreate_lock_expiry(minutes_from_now=60)- Create expiry timestamp
Utilities
format_token_amount(amount, decimals=18)- Format wei to human-readableparse_token_amount(amount, decimals=18)- Parse human-readable to weishorten_address(address, chars=4)- Shorten Ethereum addressformat_timestamp(timestamp)- Format Unix timestamp to readable stringis_expired(expiry)- Check if timestamp is expiredformat_time_remaining(expiry_timestamp)- Format time remainingformat_relative_time(timestamp)- Format relative time (e.g., "5m ago")
License
Apache-2.0
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
flexvaults_sdk-0.1.6.tar.gz
(98.0 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file flexvaults_sdk-0.1.6.tar.gz.
File metadata
- Download URL: flexvaults_sdk-0.1.6.tar.gz
- Upload date:
- Size: 98.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d94b3bf488f3a0e02464076e130258052ed9d55f19c1e4ae95a3b7717840465e
|
|
| MD5 |
0eff4740962696ebb80d178b17cbdb19
|
|
| BLAKE2b-256 |
b512f4f167f31402515549f7fb96235a6fb4b7d4ac6ecb1a89b7b3861a372e69
|
File details
Details for the file flexvaults_sdk-0.1.6-py3-none-any.whl.
File metadata
- Download URL: flexvaults_sdk-0.1.6-py3-none-any.whl
- Upload date:
- Size: 18.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.18 {"installer":{"name":"uv","version":"0.9.18","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5972c0ce7c64e8ff7c90d24191de2b60673bccb45753f6d99bf2f1152e509b21
|
|
| MD5 |
b64bbf674dd8e917a07cdc264f2eaefc
|
|
| BLAKE2b-256 |
956fd3982a535a2e0ea85c5deadbbedb5499a4416b856c24d2f32391f05c7798
|