Beispiel #1
0
def geb(web3) -> GfDeployment:
    # for local dockerized parity testchain
    deployment = GfDeployment.from_node(web3=web3, system_coin='rai')
    validate_contracts_loaded(deployment)
    return deployment
Beispiel #2
0
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
Beispiel #3
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()
Beispiel #4
0
 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')
Beispiel #6
0
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(