Last active
July 17, 2022 22:26
-
-
Save JTraversa/a19b90e9bc54b1df902c8500a312f7b1 to your computer and use it in GitHub Desktop.
vault-balances
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| from web3._utils.events import get_event_data | |
| from web3._utils.filters import construct_event_filter_params | |
| import requests | |
| import json | |
| from web3 import Web3 | |
| import math | |
| _cache = dict() | |
| def truncate(number, digits) -> float: | |
| stepper = 10.0 ** digits | |
| return math.trunc(stepper * number) / stepper | |
| def find_str(s, char): | |
| index = 0 | |
| if char in s: | |
| c = char[0] | |
| for ch in s: | |
| if ch == c: | |
| if s[index:index+len(char)] == char: | |
| return index | |
| index += 1 | |
| return -1 | |
| def get_cached_abi(abi_url): | |
| """Per process over-the-network ABI file retriever""" | |
| spec = _cache.get(abi_url) | |
| if not spec: | |
| spec = _cache[abi_url] = requests.get(abi_url).json() | |
| return spec['result'] | |
| def create_contract(web3, isURL, abi, address,): | |
| if isURL == True: | |
| spec = get_cached_abi(abi) | |
| contract = web3.eth.contract(address, abi=spec) | |
| else: | |
| contract = web3.eth.contract(address, abi=abi) | |
| return contract | |
| def fetch_events( | |
| event, | |
| argument_filters=None, | |
| from_block=None, | |
| to_block="latest", | |
| address=None, | |
| topics=None): | |
| """Get events using eth_getLogs API. | |
| This is a stateless method, as opposite to createFilter and works with | |
| stateless nodes like QuikNode and Infura. | |
| :param event: Event instance from your contract.events | |
| :param argument_filters: | |
| :param from_block: Start block. Use 0 for all history/ | |
| :param to_block: Fetch events until this contract | |
| :param address: | |
| :param topics: | |
| :return: | |
| """ | |
| if from_block is None: | |
| raise TypeError("Missing mandatory keyword argument to getLogs: from_Block") | |
| abi = event._get_event_abi() | |
| abi_codec = event.web3.codec | |
| # Set up any indexed event filters if needed | |
| argument_filters = dict() | |
| _filters = dict(**argument_filters) | |
| data_filter_set, event_filter_params = construct_event_filter_params( | |
| abi, | |
| abi_codec, | |
| contract_address=event.address, | |
| argument_filters=_filters, | |
| fromBlock=from_block, | |
| toBlock=to_block, | |
| address=address, | |
| topics=topics, | |
| ) | |
| # Call node over JSON-RPC API | |
| logs = event.web3.eth.getLogs(event_filter_params) | |
| # Convert raw binary event data to easily manipulable Python objects | |
| for entry in logs: | |
| data = get_event_data(abi_codec, abi, entry) | |
| yield data | |
| #SETUP | |
| swivelAddresses = [] | |
| feiAddresses =[] | |
| swivel='0x3b983B701406010866bD68331aAed374fb9f50C9' | |
| contract_abi = '[{"inputs":[{"internalType":"address","name":"m","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"}],"name":"BlockWithdrawal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"hash","type":"bytes32"}],"name":"Cancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"hash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"maker","type":"address"},{"indexed":false,"internalType":"bool","name":"vault","type":"bool"},{"indexed":false,"internalType":"bool","name":"exit","type":"bool"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"filled","type":"uint256"}],"name":"Exit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"key","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"hash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"maker","type":"address"},{"indexed":false,"internalType":"bool","name":"vault","type":"bool"},{"indexed":false,"internalType":"bool","name":"exit","type":"bool"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"filled","type":"uint256"}],"name":"Initiate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":false,"internalType":"uint256","name":"hold","type":"uint256"}],"name":"ScheduleWithdrawal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"index","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"feenominator","type":"uint256"}],"name":"SetFee","type":"event"},{"inputs":[],"name":"HOLD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_FEENOMINATOR","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NAME","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"u","type":"address[]"},{"internalType":"address[]","name":"c","type":"address[]"}],"name":"approveUnderlying","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"e","type":"address"}],"name":"blockWithdrawal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"address","name":"maker","type":"address"},{"internalType":"address","name":"underlying","type":"address"},{"internalType":"bool","name":"vault","type":"bool"},{"internalType":"bool","name":"exit","type":"bool"},{"internalType":"uint256","name":"principal","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"maturity","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"}],"internalType":"struct Hash.Order","name":"o","type":"tuple"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct Sig.Components","name":"c","type":"tuple"}],"name":"cancel","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"cancelled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"},{"internalType":"uint256","name":"m","type":"uint256"},{"internalType":"uint256","name":"a","type":"uint256"}],"name":"combineTokens","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"domain","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"address","name":"maker","type":"address"},{"internalType":"address","name":"underlying","type":"address"},{"internalType":"bool","name":"vault","type":"bool"},{"internalType":"bool","name":"exit","type":"bool"},{"internalType":"uint256","name":"principal","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"maturity","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"}],"internalType":"struct Hash.Order[]","name":"o","type":"tuple[]"},{"internalType":"uint256[]","name":"a","type":"uint256[]"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct Sig.Components[]","name":"c","type":"tuple[]"}],"name":"exit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"feenominators","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"filled","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"key","type":"bytes32"},{"internalType":"address","name":"maker","type":"address"},{"internalType":"address","name":"underlying","type":"address"},{"internalType":"bool","name":"vault","type":"bool"},{"internalType":"bool","name":"exit","type":"bool"},{"internalType":"uint256","name":"principal","type":"uint256"},{"internalType":"uint256","name":"premium","type":"uint256"},{"internalType":"uint256","name":"maturity","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"}],"internalType":"struct Hash.Order[]","name":"o","type":"tuple[]"},{"internalType":"uint256[]","name":"a","type":"uint256[]"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct Sig.Components[]","name":"c","type":"tuple[]"}],"name":"initiate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketPlace","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"},{"internalType":"uint256","name":"m","type":"uint256"}],"name":"redeemVaultInterest","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"},{"internalType":"uint256","name":"m","type":"uint256"},{"internalType":"uint256","name":"a","type":"uint256"}],"name":"redeemZcToken","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"e","type":"address"}],"name":"scheduleWithdrawal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"i","type":"uint16"},{"internalType":"uint16","name":"d","type":"uint16"}],"name":"setFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"},{"internalType":"uint256","name":"m","type":"uint256"},{"internalType":"uint256","name":"a","type":"uint256"}],"name":"splitUnderlying","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"transferAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"e","type":"address"}],"name":"withdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"withdrawals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]' | |
| infura = "https://mainnet.infura.io/v3/b58baa11e019484890eff1543c3dc78f" | |
| marketplace='0x998689650D4d55822b4bDd4B7DB5F596bf6b3570' | |
| marketplace_abi = '[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":true,"internalType":"uint256","name":"maturity","type":"uint256"},{"indexed":false,"internalType":"address","name":"cToken","type":"address"},{"indexed":false,"internalType":"address","name":"zcToken","type":"address"},{"indexed":false,"internalType":"address","name":"vaultTracker","type":"address"}],"name":"Create","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":true,"internalType":"uint256","name":"maturity","type":"uint256"},{"indexed":false,"internalType":"address","name":"zcTarget","type":"address"},{"indexed":false,"internalType":"address","name":"nTarget","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"CustodialExit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":true,"internalType":"uint256","name":"maturity","type":"uint256"},{"indexed":false,"internalType":"address","name":"zcTarget","type":"address"},{"indexed":false,"internalType":"address","name":"nTarget","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"CustodialInitiate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":true,"internalType":"uint256","name":"maturity","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"maturityRate","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"matured","type":"uint256"}],"name":"Mature","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":true,"internalType":"uint256","name":"maturity","type":"uint256"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"P2pVaultExchange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":true,"internalType":"uint256","name":"maturity","type":"uint256"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"P2pZcTokenExchange","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":true,"internalType":"uint256","name":"maturity","type":"uint256"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RedeemVaultInterest","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":true,"internalType":"uint256","name":"maturity","type":"uint256"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RedeemZcToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"underlying","type":"address"},{"indexed":true,"internalType":"uint256","name":"maturity","type":"uint256"},{"indexed":false,"internalType":"address","name":"from","type":"address"},{"indexed":false,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferVaultNotional","type":"event"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"},{"internalType":"uint256","name":"m","type":"uint256"},{"internalType":"address","name":"t","type":"address"},{"internalType":"uint256","name":"a","type":"uint256"}],"name":"burnZcTokenRemovingNotional","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"},{"internalType":"uint256","name":"m","type":"uint256"}],"name":"cTokenAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"m","type":"uint256"},{"internalType":"address","name":"c","type":"address"},{"internalType":"string","name":"n","type":"string"},{"internalType":"string","name":"s","type":"string"}],"name":"createMarket","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"},{"internalType":"uint256","name":"m","type":"uint256"},{"internalType":"address","name":"z","type":"address"},{"internalType":"address","name":"n","type":"address"},{"internalType":"uint256","name":"a","type":"uint256"}],"name":"custodialExit","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"},{"internalType":"uint256","name":"m","type":"uint256"},{"internalType":"address","name":"z","type":"address"},{"internalType":"address","name":"n","type":"address"},{"internalType":"uint256","name":"a","type":"uint256"}],"name":"custodialInitiate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"markets","outputs":[{"internalType":"address","name":"cTokenAddr","type":"address"},{"internalType":"address","name":"zcTokenAddr","type":"address"},{"internalType":"address","name":"vaultAddr","type":"address"},{"internalType":"uint256","name":"maturityRate","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"},{"internalType":"uint256","name":"m","type":"uint256"}],"name":"matureMarket","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"},{"internalType":"uint256","name":"m","type":"uint256"},{"internalType":"address","name":"t","type":"address"},{"internalType":"uint256","name":"a","type":"uint256"}],"name":"mintZcTokenAddingNotional","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"},{"internalType":"uint256","name":"m","type":"uint256"},{"internalType":"address","name":"f","type":"address"},{"internalType":"address","name":"t","type":"address"},{"internalType":"uint256","name":"a","type":"uint256"}],"name":"p2pVaultExchange","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"},{"internalType":"uint256","name":"m","type":"uint256"},{"internalType":"address","name":"f","type":"address"},{"internalType":"address","name":"t","type":"address"},{"internalType":"uint256","name":"a","type":"uint256"}],"name":"p2pZcTokenExchange","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"b","type":"bool"}],"name":"pause","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"},{"internalType":"uint256","name":"m","type":"uint256"},{"internalType":"address","name":"t","type":"address"}],"name":"redeemVaultInterest","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"},{"internalType":"uint256","name":"m","type":"uint256"},{"internalType":"address","name":"t","type":"address"},{"internalType":"uint256","name":"a","type":"uint256"}],"name":"redeemZcToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"s","type":"address"}],"name":"setSwivelAddress","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swivel","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"transferAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"},{"internalType":"uint256","name":"m","type":"uint256"},{"internalType":"address","name":"t","type":"address"},{"internalType":"uint256","name":"a","type":"uint256"}],"name":"transferVaultNotional","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"u","type":"address"},{"internalType":"uint256","name":"m","type":"uint256"},{"internalType":"address","name":"f","type":"address"},{"internalType":"uint256","name":"a","type":"uint256"}],"name":"transferVaultNotionalFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]' | |
| vaulttracker_abi = '[{"inputs":[{"internalType":"uint256","name":"m","type":"uint256"},{"internalType":"address","name":"c","type":"address"},{"internalType":"address","name":"s","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"o","type":"address"},{"internalType":"uint256","name":"a","type":"uint256"}],"name":"addNotional","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"o","type":"address"}],"name":"balancesOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cTokenAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"c","type":"uint256"}],"name":"matureVault","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maturity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maturityRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"o","type":"address"}],"name":"redeemInterest","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"o","type":"address"},{"internalType":"uint256","name":"a","type":"uint256"}],"name":"removeNotional","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swivel","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"f","type":"address"},{"internalType":"uint256","name":"a","type":"uint256"}],"name":"transferNotionalFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"f","type":"address"},{"internalType":"address","name":"t","type":"address"},{"internalType":"uint256","name":"a","type":"uint256"}],"name":"transferNotionalFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"vaults","outputs":[{"internalType":"uint256","name":"notional","type":"uint256"},{"internalType":"uint256","name":"redeemable","type":"uint256"},{"internalType":"uint256","name":"exchangeRate","type":"uint256"}],"stateMutability":"view","type":"function"}]' | |
| web3 = Web3(Web3.HTTPProvider(infura)) | |
| swivelcontract = create_contract(web3, False, contract_abi, swivel) | |
| marketplacecontract = create_contract(web3, False, marketplace_abi, marketplace) | |
| vault1 = marketplacecontract.functions.markets('0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',1648177200).call()[2] | |
| vault2 = marketplacecontract.functions.markets('0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',1656039600).call()[2] | |
| vault3 = marketplacecontract.functions.markets('0x956F47F50A910163D8BF957Cf5846D573E7f87CA',1656039600).call()[2] | |
| vault4 = marketplacecontract.functions.markets('0x6B175474E89094C44Da98b954EedeAC495271d0F',1664550000).call()[2] | |
| vault1contract = create_contract(web3, False, vaulttracker_abi, vault1) | |
| vault2contract = create_contract(web3, False, vaulttracker_abi, vault2) | |
| vault3contract = create_contract(web3, False, vaulttracker_abi, vault3) | |
| vault4contract = create_contract(web3, False, vaulttracker_abi, vault4) | |
| exits =[] | |
| initiates = [] | |
| both = [] | |
| exits = list(fetch_events(swivelcontract.events.Exit, from_block=13864924)) | |
| for i in exits: | |
| print(i) | |
| both.append(i) | |
| initiates = list(fetch_events(swivelcontract.events.Initiate, from_block=13864924)) | |
| for i in initiates: | |
| print(i) | |
| both.append(i) | |
| # combine initiates and exits | |
| for i in initiates: | |
| both.append(i) | |
| for i in exits: | |
| both.append(i) | |
| addresses = [] | |
| for i in both: | |
| if i['args']['maker'] not in addresses: | |
| addresses.append(i['args']['maker']) | |
| if i['args']['sender'] not in addresses: | |
| addresses.append(i['args']['sender']) | |
| market1 = {'market': {'underlying': '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', 'maturity': '1648177200'}, 'users': []} | |
| # check vault 1 balances for each address | |
| for i in addresses: | |
| user = {'user': '', 'amounts': {'notional': '', 'redeemable': ''}} | |
| balances = vault1contract.functions.balancesOf(i).call() | |
| notional = str(balances[0]) | |
| redeemable = str(balances[1]) | |
| user['user'] = i | |
| user['amounts'] = {'notional': notional, 'redeemable': redeemable} | |
| if notional != '0' or redeemable != '0': | |
| print(user) | |
| market1['users'].append(user) | |
| market2 = {'market': {'underlying': '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', 'maturity': '1656039600'}, 'users': []} | |
| users = [] | |
| # check vault 2 balances for each address | |
| for i in addresses: | |
| user = {'user': '', 'amounts': {'notional': '', 'redeemable': ''}} | |
| balances = vault2contract.functions.balancesOf(i).call() | |
| notional = str(balances[0]) | |
| redeemable = str(balances[1]) | |
| user['user'] = i | |
| user['amounts'] = {'notional': notional, 'redeemable': redeemable} | |
| if notional != '0' or redeemable != '0': | |
| print(user) | |
| market2['users'].append(user) | |
| market3 = {'market': {'underlying': '0x956F47F50A910163D8BF957Cf5846D573E7f87CA', 'maturity': '1656039600'}, 'users': []} | |
| users = [] | |
| # check vault 3 balances for each address | |
| for i in addresses: | |
| user = {'user': '', 'amounts': {'notional': '', 'redeemable': ''}} | |
| balances = vault3contract.functions.balancesOf(i).call() | |
| notional = str(balances[0]) | |
| redeemable = str(balances[1]) | |
| user['user'] = i | |
| user['amounts'] = {'notional': notional, 'redeemable': redeemable} | |
| if notional != '0' or redeemable != '0': | |
| print(user) | |
| market3['users'].append(user) | |
| market4 = {'market': {'underlying': '0x6B175474E89094C44Da98b954EedeAC495271d0F', 'maturity': '1664550000'}, 'users': []} | |
| users = [] | |
| # check vault 4 balances for each address | |
| for i in addresses: | |
| user = {'user': '', 'amounts': {'notional': '', 'redeemable': ''}} | |
| balances = vault4contract.functions.balancesOf(i).call() | |
| notional = str(balances[0]) | |
| redeemable = str(balances[1]) | |
| user['user'] = i | |
| user['amounts'] = {'notional': notional, 'redeemable': redeemable} | |
| if notional != '0' or redeemable != '0': | |
| print(user) | |
| market4['users'].append(user) | |
| markets = [market1, market2, market3, market4] | |
| with open("addressesMigration.json", "w", encoding="utf-8") as writeJsonfile: | |
| json.dump(addresses, writeJsonfile, indent=4,default=str) | |
| with open("comparison.json", "w", encoding="utf-8") as writeJsonfile: | |
| json.dump(markets, writeJsonfile, indent=4,default=str) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment