Skip to main content

Prototype and wrappers to work with Ensuro Smart Contracts

Project description

Project generated with PyScaffold

ensuro

Prototype and wrappers to work with Ensuro Smart Contracts

This package is for working with the Ensuro Protocol (https://github.com/ensuro/ensuro) from Python.

It includes the prototype written in pure-python that can be used for simulation of Ensuro. Also includes the wrappers that together with the compiled contracts can be used to deploy or use contracts deployed on the blockchain.

Getting information from Ensuro objects

PremiumsAccount
  • .active_pure_premiums

  • .surplus: balance of pure premiums of finalized policies.

  • .won_pure_premiums: accumulated pure premiums of expired/not defaulted policies.

  • .borrowed_active_pp: pure premiums of active policies that were used for payouts. Always <= active_pure_premiums` and always = 0 if won_pure_premiums != 0.

  • .pure_premiums: it’s a property that computes the total pure premiums as self.active_pure_premiums + self.won_pure_premiums - self.borrowed_active_pp

EToken
  • .total_supply(): total amount in dollars in the pool.

  • .scr: amount that it’s locked as solvency capital of active policies

  • .scr_interest_rate: weighted average of the interest rate paid by the active policies

  • .utilization_rate: percentage of utilization of the eToken. Property calculated as scr / total_supply

  • .token_interest_rate: interest rate for the EToken, it’s calculated as scr_interest_rate * utilization_rate

  • .funds_available: available capital (total_supply - scr)

  • .funds_available_to_lock: available capital that can be used as scr, (total_supply - scr) * max_utilization_rate

  • .total_withdrawable(): amount that can be withdrawn, considering the liquidity_requirement.

  • .get_loan(): current debt of the pool with this eToken

RiskModule
  • .active_exposure: total exposure currently allocated for this module

  • .get_minimum_premium(payout, loss_prob, expiration): minimum premium

Copying files from Ensuro main repository

Instructions to copy files from ensuro repository:

for x in `find ../ensuro/artifacts/contracts/ -maxdepth 2 -name "*.json" -not -name "*.dbg.json" `; do
    cp $x src/ensuro/contracts/ ;
done
for x in `find ../ensuro/artifacts/contracts/interfaces/ -maxdepth 2 -name "*.json" -not -name "*.dbg.json" `; do
    cp $x src/ensuro/contracts/ ;
done
for x in ERC1967Proxy.json IERC20Metadata.json IERC20.json IERC721.json ; do
    cp `find ~/repo/ensuro/artifacts/@openzeppelin/ -name $x` src/ensuro/contracts/$x ;
done
cp ../ensuro/prototype/ensuro.py src/ensuro/prototype.py
cp ../ensuro/prototype/wrappers.py src/ensuro/wrappers.py
cp ../ensuro/prototype/utils.py src/ensuro/utils.py

Note

This project has been set up using PyScaffold 4.1.1. For details and usage information on PyScaffold see https://pyscaffold.org/.

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

ensuro-2.1.0b1.tar.gz (169.3 kB view details)

Uploaded Source

Built Distribution

ensuro-2.1.0b1-py3-none-any.whl (165.6 kB view details)

Uploaded Python 3

File details

Details for the file ensuro-2.1.0b1.tar.gz.

File metadata

  • Download URL: ensuro-2.1.0b1.tar.gz
  • Upload date:
  • Size: 169.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for ensuro-2.1.0b1.tar.gz
Algorithm Hash digest
SHA256 6edc44d7cadd106a8b1631c57a3667a0babae3b3e3628d496fd516a10c96c4fb
MD5 af8a7d99fbd8a54dbd0d2869327720f0
BLAKE2b-256 3ca23afd2e5c5fbdf36d82a154f821669f0de02032e28ea062389563798b77d2

See more details on using hashes here.

File details

Details for the file ensuro-2.1.0b1-py3-none-any.whl.

File metadata

  • Download URL: ensuro-2.1.0b1-py3-none-any.whl
  • Upload date:
  • Size: 165.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for ensuro-2.1.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 6ed8926c5182175f1cd1ae2eb3fed432b7d652d2f09604e63bdce20b4ec7b4d5
MD5 9f0967427a4c69588defb5c016e93a97
BLAKE2b-256 c899f505690ba3e238c486a650d9c66d636eaa1fd28e94acf6eddfd2020fcc6b

See more details on using hashes here.

Supported by

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