def geb(web3) -> GfDeployment: # for local dockerized parity testchain deployment = GfDeployment.from_node(web3=web3, system_coin='rai') validate_contracts_loaded(deployment) return deployment
new_collateral_amount = Wad.from_number(sys.argv[1]) new_debt_amount = Wad.from_number(sys.argv[2]) ETH_RPC_URL = os.environ['ETH_RPC_URL'] web3 = Web3( HTTPProvider(endpoint_uri=ETH_RPC_URL, request_kwargs={"timeout": 60})) while web3.eth.syncing: print("Node is syncing") time.sleep(5) print(f"Current block number: {web3.eth.blockNumber}") web3.eth.defaultAccount = os.environ['ETH_ACCOUNT'] register_keys(web3, [os.environ['ETH_KEYPASS']]) geb = GfDeployment.from_node(web3, 'rai') our_address = Address(web3.eth.defaultAccount) collateral = geb.collaterals['ETH-A'] collateral_type = geb.safe_engine.collateral_type( collateral.collateral_type.name) # Get SAFE status before modification safe = geb.safe_engine.safe(collateral_type, our_address) if safe.generated_debt > Wad(0): coll_ratio = (safe.locked_collateral * collateral_type.liquidation_price * geb.oracle_relayer.liquidation_c_ratio(collateral_type)) / ( safe.generated_debt * collateral_type.accumulated_rate) * 100 else: coll_ratio = 0
from pyflex.keys import register_keys from pyflex.numeric import Wad web3 = Web3( HTTPProvider(endpoint_uri=os.environ['ETH_RPC_URL'], request_kwargs={"timeout": 10})) web3.eth.defaultAccount = sys.argv[ 1] # ex: 0x0000000000000000000000000000000aBcdef123 if len(sys.argv) > 2: register_keys( web3, [sys.argv[2]] ) # ex: key_file=~keys/default-account.json,pass_file=~keys/default-account.pass run_transactions = True else: run_transactions = False geb = GfDeployment.from_node(web3) our_address = Address(web3.eth.defaultAccount) # Choose the desired collateral; in this case we'll wrap some Eth collateral = geb.collaterals['ETH-A'] collateral_type = collateral.collateral_type # Set an amount of collateral to join and an amount of system coin to draw collateral_amount = Wad.from_number(0.2) system_coin_amount = Wad.from_number(20.0) if collateral.collateral.balance_of(our_address) > collateral_amount: if run_transactions and collateral.collateral_type.name.startswith("ETH"): # Wrap ETH to produce WETH assert collateral.collateral.deposit(collateral_amount).transact()
def test_from_node(self, web3: Web3): geb_testnet = GfDeployment.from_node(web3, 'rai') validate_contracts_loaded(geb_testnet)
def get_geb(web3): return GfDeployment.from_node(web3, 'rai')
logging.basicConfig(format='%(asctime)-15s %(levelname)-8s %(message)s', level=logging.DEBUG) # reduce logspew logging.getLogger('urllib3').setLevel(logging.INFO) logging.getLogger("web3").setLevel(logging.INFO) logging.getLogger("asyncio").setLevel(logging.INFO) logging.getLogger("requests").setLevel(logging.INFO) web3 = web3_via_http(endpoint_uri=os.environ['ETH_RPC_URL']) web3.eth.defaultAccount = sys.argv[ 1] # ex: 0x0000000000000000000000000000000aBcdef123 register_keys( web3, [sys.argv[2]] ) # ex: key_file=~keys/default-account.json,pass_file=~keys/default-account.pass our_address = Address(web3.eth.defaultAccount) weth = GfDeployment.from_node(web3, 'rai').collaterals['ETH-A'].collateral stuck_txes_to_submit = int(sys.argv[3]) if len(sys.argv) > 3 else 1 GWEI = 1000000000 increasing_gas = GeometricGasPrice(initial_price=int(1 * GWEI), every_secs=30, coefficient=1.5, max_price=100 * GWEI) class TestApp: def main(self): self.startup() pending_txes = get_pending_transactions(web3) pprint(