Skip to content

verifiably/vfunctions-sdk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vFunctions SDK

This package offers tools to develop vFunctions inside a secure enclave.

For an use case example visit the Verifiably documentation page.

Installation

To install this library run:

pip install vfunctions_sdk

Mercury Bank example

import json
import requests

from vfunctions_sdk import vFunction
from vfunctions_sdk import connection

def mercury_balance_check(account_id, mercury_token, params):

    # Set the url for the mercury API to get the account information
    # Use the account id
    mercury_bank_url = "https://api.mercury.com/api/v1/account/{}".format(account_id)

    # Use the mercury token for the API
    headers = {
        "Accept": "application/json",
        "Content-Type": "application/json",
        "Authorization": "Bearer {}".format(mercury_token)
    }

    response = requests.request("GET", mercury_bank_url, headers=headers)
    mercury_data = json.loads(response.text)

    if "errors" in mercury_data:
        return False

    if mercury_data["currentBalance"] > params["balance_threshold"]:
        return True

    return False


def main():

    function_params = vFunction.FunctionParams()

    # Get the secrets from the provider
    secrets_bundle = connection.WsockSecretsProvider(function_params).get_secrets()

    # Get the necessary secrets
    account_id = secrets_bundle["mercuryBank"]["accountId"]
    mercury_token = secrets_bundle["mercuryBank"]["mercuryToken"]

    recipient_email = secrets_bundle["email"]
    balance_threshold = secrets_bundle["threshold_balance"]

    # Get the information from the mercury account
    result_value = mercury_balance_check(account_id, mercury_token, balance_threshold)

    result_dict = {
            "result": result_value,
            "balance": balance_threshold
    }

    # Send the email with the results
    function_params.email_results(recipient_email, result_dict)


if __name__ == '__main__':
    main()

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages