Skip to main content

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 client
    • get_deposit_quote(request) - Get deposit quote
    • include_deposit(request) - Include deposit proof
    • get_balance(user_address, token_id) - Get token balance
    • get_batch_balances(request) - Get multiple token balances
    • get_token_info(token_id) - Get token information
    • lock_funds(request) - Lock funds for a service
    • modify_lock(request) - Modify an existing lock (add funds and/or extend expiry)
    • unlock_funds(request) - Unlock specific lock
    • unlock_all_expired(request) - Unlock all expired locks
    • get_locked_funds(user_address, service_address=None) - Get locked funds
    • get_total_locked_balance(user_address, token_id) - Get total locked balance
    • get_expired_locks(user_address) - Get expired locks
    • transfer_funds(request) - Transfer tokens (requires nonce)
    • get_transfer_nonce(user_address) - Get next transfer nonce
    • transfer_locked_funds(request) - Transfer locked tokens
    • request_withdrawal(request) - Request withdrawal
    • get_pending_withdrawals(user_address) - Get pending withdrawals
    • get_withdrawal_info(index) - Get withdrawal info

Signing

  • sign_lock_message(params) - Sign lock message
  • sign_modify_lock_message(params) - Sign modify lock message
  • sign_transfer_message(params) - Sign transfer message
  • sign_transfer_locked_message(params) - Sign transfer locked message
  • sign_withdraw_message(params) - Sign withdrawal message
  • create_lock_expiry(minutes_from_now=60) - Create expiry timestamp

Utilities

  • format_token_amount(amount, decimals=18) - Format wei to human-readable
  • parse_token_amount(amount, decimals=18) - Parse human-readable to wei
  • shorten_address(address, chars=4) - Shorten Ethereum address
  • format_timestamp(timestamp) - Format Unix timestamp to readable string
  • is_expired(expiry) - Check if timestamp is expired
  • format_time_remaining(expiry_timestamp) - Format time remaining
  • format_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)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flexvaults_sdk-0.1.6-py3-none-any.whl (18.7 kB view details)

Uploaded Python 3

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

Hashes for flexvaults_sdk-0.1.6.tar.gz
Algorithm Hash digest
SHA256 d94b3bf488f3a0e02464076e130258052ed9d55f19c1e4ae95a3b7717840465e
MD5 0eff4740962696ebb80d178b17cbdb19
BLAKE2b-256 b512f4f167f31402515549f7fb96235a6fb4b7d4ac6ecb1a89b7b3861a372e69

See more details on using hashes here.

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

Hashes for flexvaults_sdk-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 5972c0ce7c64e8ff7c90d24191de2b60673bccb45753f6d99bf2f1152e509b21
MD5 b64bbf674dd8e917a07cdc264f2eaefc
BLAKE2b-256 956fd3982a535a2e0ea85c5deadbbedb5499a4416b856c24d2f32391f05c7798

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page