Curve
Examples
Note
These examples are crafted as a Jupyter notebook. You can download the original notebook file here.
Also note that inside Jupyter notebooks, await
can be used freely outside of asyncio.run()
.
In [1]:
from ctc.protocols import curve_utils
In [2]:
factory_pool = '0x06cb22615ba53e60d67bf6c341a0fd5e718e1655'
Get pool metadata¶
In [3]:
await curve_utils.async_get_pool_metadata(pool=factory_pool)
Out[3]:
{'token_addresses': ['0x956f47f50a910163d8bf957cf5846d573e7f87ca', '0x6c3f90f043a72fa612cbac8115ee7e52bde6e490'], 'token_symbols': ['FEI', '3Crv'], 'token_decimals': [18, 18], 'A': 100}
Get pool state¶
In [4]:
await curve_utils.async_get_pool_state(pool=factory_pool)
Out[4]:
{'lp_total_supply': 1545685.4540038493, 'token_balances': [782894.7941072898, 754331.3786528307], 'A': 100}
Get pool state in a specific block¶
In [5]:
await curve_utils.async_get_pool_state(pool=factory_pool, block=14000000)
Out[5]:
{'lp_total_supply': 253036543.47482586, 'token_balances': [126538335.35590503, 124462159.0647215], 'A': 10}
Get virtual price¶
In [6]:
await curve_utils.async_get_virtual_price(pool=factory_pool)
Out[6]:
1005085631967785180
Get base pools¶
In [7]:
await curve_utils.async_get_base_pools()
Out[7]:
factory | transaction_hash | pool | |||
---|---|---|---|---|---|
block_number | transaction_index | log_index | |||
12904539 | 152 | 213 | 0xb9fc157394af804a3578134a6585c0dc9cc990d4 | 0xedfeb49642fb5c9f2220bbf3eddca5a3ef50a68713b8... | 0xbebc44782c7db0a1a60cb6fe97d0b483032ff1c7 |
12904585 | 85 | 220 | 0xb9fc157394af804a3578134a6585c0dc9cc990d4 | 0xcb6be4a26a2c224a32bad4fc9ba88652be0235dc82d5... | 0x7fc77b5c7614e1533320ea6ddc2eb61fa00a9714 |
13495769 | 105 | 194 | 0xb9fc157394af804a3578134a6585c0dc9cc990d4 | 0xad288f471da6aca0625173e19030d80f3e02e4d736da... | 0x93054188d876f558f4a66b2ef1d97d16edf0895b |
15038268 | 13 | 26 | 0xb9fc157394af804a3578134a6585c0dc9cc990d4 | 0x7396aaa9548e8b67e85d9c39bac86becdd0f6bcb80d2... | 0xdcef968d416a41cdac0ed8702fac8128a64241a2 |
Get meta pools¶
In [8]:
await curve_utils.async_get_meta_pools()
Out[8]:
transaction_hash | factory | coin | base_pool | A | fee | deployer | |||
---|---|---|---|---|---|---|---|---|---|
block_number | transaction_index | log_index | |||||||
11955325 | 16 | 25 | 0xfcf2e192b7fe9e094a111e7df4c00bef20af78056278... | 0x0959158b6040d32d04c301a72cbfd6b39e21c9ae | 0x865377367054516e17014ccded1e7d814edc9ce4 | 0xbebc44782c7db0a1a60cb6fe97d0b483032ff1c7 | 10 | 4000000 | 0x3fcb35a1cbfb6007f9bc638d388958bc4550cb28 |
11955333 | 61 | 73 | 0x298f34b7b6c496352effba8fdb91f5249e1cfbee24d9... | 0x0959158b6040d32d04c301a72cbfd6b39e21c9ae | 0xbc6da0fe9ad5f3b0d58160288917aa56653660e9 | 0xbebc44782c7db0a1a60cb6fe97d0b483032ff1c7 | 60 | 4000000 | 0xef422dbbf46120de627ffb913c9afad44c735618 |
11968730 | 110 | 187 | 0x1f2a0d4e1c1eca594bd7f27f9952480ccda422c3453e... | 0x0959158b6040d32d04c301a72cbfd6b39e21c9ae | 0x853d955acef822db058eb8505911ed77f175b99e | 0xbebc44782c7db0a1a60cb6fe97d0b483032ff1c7 | 100 | 4000000 | 0x234d953a9404bf9dbc3b526271d440cd2870bcd2 |
11975574 | 213 | 33 | 0x4aeacf4bf11becac10f2bfbe3319e182af520927c91f... | 0x0959158b6040d32d04c301a72cbfd6b39e21c9ae | 0xa774ffb4af6b0a91331c084e1aebae6ad535e6f3 | 0xbebc44782c7db0a1a60cb6fe97d0b483032ff1c7 | 200 | 4000000 | 0x60cc20c5ff95cc46b4ed606d940f657ad054c309 |
11976084 | 132 | 152 | 0xd1db8f97364aed51707e7ec7abf158d43627b75decdc... | 0x0959158b6040d32d04c301a72cbfd6b39e21c9ae | 0x71df9dd3e658f0136c40e2e8ec3988a5226e9a67 | 0xbebc44782c7db0a1a60cb6fe97d0b483032ff1c7 | 200 | 4000000 | 0x60cc20c5ff95cc46b4ed606d940f657ad054c309 |
... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
15533460 | 103 | 158 | 0x8a22bb0e79e20ce8df95ffe8a1aa139042c1f990d88a... | 0xb9fc157394af804a3578134a6585c0dc9cc990d4 | 0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e | 0xbebc44782c7db0a1a60cb6fe97d0b483032ff1c7 | 10 | 4000000 | 0x3ad578af2e96aad62088dc0b4350e1e3a7c7c1c3 |
15533481 | 45 | 64 | 0x84e9ab1f02821166c92643c1bf040b4de249c491af5d... | 0xb9fc157394af804a3578134a6585c0dc9cc990d4 | 0x0bc529c00c6401aef6d220be8c6ea1667f6ad93e | 0xbebc44782c7db0a1a60cb6fe97d0b483032ff1c7 | 10 | 4000000 | 0x3ad578af2e96aad62088dc0b4350e1e3a7c7c1c3 |
15563580 | 58 | 104 | 0x1b3c187bbca6f8e7857d8a9485438705854e84c47ff5... | 0xb9fc157394af804a3578134a6585c0dc9cc990d4 | 0x3236a63c21fc524a51001ea2627697fdca86e897 | 0xbebc44782c7db0a1a60cb6fe97d0b483032ff1c7 | 10 | 98000000 | 0x34e2f0c6775afd9e8daf1dbc05194884e22721cd |
15567683 | 128 | 138 | 0x939fb60fb569f88d0a692b148616c6e600a3699f6f12... | 0xb9fc157394af804a3578134a6585c0dc9cc990d4 | 0x3236a63c21fc524a51001ea2627697fdca86e897 | 0xbebc44782c7db0a1a60cb6fe97d0b483032ff1c7 | 10 | 100000000 | 0x34e2f0c6775afd9e8daf1dbc05194884e22721cd |
15567841 | 236 | 446 | 0x3428bd9d19faaa9cc9719d42348b35077ab47a07f6be... | 0xb9fc157394af804a3578134a6585c0dc9cc990d4 | 0x3236a63c21fc524a51001ea2627697fdca86e897 | 0xbebc44782c7db0a1a60cb6fe97d0b483032ff1c7 | 10 | 100000000 | 0x34e2f0c6775afd9e8daf1dbc05194884e22721cd |
199 rows × 7 columns
Get plain pools¶
In [9]:
await curve_utils.async_get_plain_pools()
Out[9]:
transaction_hash | factory | coins | A | fee | deployer | |||
---|---|---|---|---|---|---|---|---|
block_number | transaction_index | log_index | ||||||
12913531 | 22 | 37 | 0x024843f829ec485c27acb115f94d5374c19f14301ceb... | 0xb9fc157394af804a3578134a6585c0dc9cc990d4 | ('0x96e61422b6a9ba0e068b6c5add4ffabc6a4aae27',... | 100 | 4000000 | 0xb424338eaa86953d82b5fabf042ce2eac544c043 |
12914704 | 169 | 31 | 0x471bb1cbfbca89c98ecc0eb3e00328c41c7e5d5d8490... | 0xb9fc157394af804a3578134a6585c0dc9cc990d4 | ('0xc581b735a1688071a1746c968e0798d642ede491',... | 100 | 4000000 | 0x7eeac6cddbd1d0b8af061742d41877d7f707289a |
12925098 | 158 | 233 | 0x177b4b07b92004c80b773e66ea3257c12ded04df5311... | 0xb9fc157394af804a3578134a6585c0dc9cc990d4 | ('0x95dfdc8161832e4ff7816ac4b6367ce201538253',... | 100 | 4000000 | 0x2d407ddb06311396fe14d4b49da5f0471447d45c |
12931794 | 112 | 106 | 0x2aa30ad95aa6b05c09c82320844d515a76bb5575639c... | 0xb9fc157394af804a3578134a6585c0dc9cc990d4 | ('0x96e61422b6a9ba0e068b6c5add4ffabc6a4aae27',... | 100 | 4000000 | 0x2d407ddb06311396fe14d4b49da5f0471447d45c |
12983315 | 221 | 310 | 0x0c9d012f02f83046b4556fe7e2d4d9a90888c4e966e2... | 0xb9fc157394af804a3578134a6585c0dc9cc990d4 | ('0xd38aeb759891882e78e957c80656572503d8c1b1',... | 100 | 4000000 | 0xd3b74abc95169b9c183409218c3d0fbff4ae67ee |
... | ... | ... | ... | ... | ... | ... | ... | ... |
15415514 | 314 | 634 | 0xc80f1a8b853b54ed9eb73e879df9459b8aa0a14c6914... | 0xb9fc157394af804a3578134a6585c0dc9cc990d4 | ('0x4104b135dbc9609fc1a9490e61369036497660c8',... | 10 | 4000000 | 0x22169e0694de4a74133bd06f01857556408f2ba2 |
15459059 | 214 | 267 | 0x2beeb915f6bfea7cc68722034694ebf813ceb1410f37... | 0xb9fc157394af804a3578134a6585c0dc9cc990d4 | ('0x0ec9f76202a7061eb9b3a7d6b59d36215a7e37da',... | 10 | 4000000 | 0xb46bc1f36fc6482b540a3fc810c7dc7dd8ef512b |
15499736 | 198 | 327 | 0x5951cb96a72043fe4be9632591bc706c9a7edb4569b6... | 0xb9fc157394af804a3578134a6585c0dc9cc990d4 | ('0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee',... | 100 | 4000000 | 0x5180db0237291a6449dda9ed33ad90a38787621c |
15528387 | 123 | 210 | 0xdd3619f6a6ab1243db8683ab2d4685c0a3395e027d46... | 0xb9fc157394af804a3578134a6585c0dc9cc990d4 | ('0xd533a949740bb3306d119cc777fa900ba034cd52',... | 50 | 15000000 | 0x0b634a8d61b09820e9f72f79cdcbc8a4d0aad26b |
15532321 | 37 | 35 | 0xffd44e65bce7d268a793d06ff62a9aa31e2f606c174b... | 0xb9fc157394af804a3578134a6585c0dc9cc990d4 | ('0x8d6cebd76f18e1558d4db88138e2defb3909fad6',... | 500 | 4000000 | 0xad95a5fe898679b927c266eb2edfabc7fe268c27 |
87 rows × 6 columns
Reference
- async ctc.protocols.curve_utils.async_get_base_pools(*, start_block=None, end_block=None, start_time=None, end_time=None, factory=None, provider=None, verbose=False)
- async ctc.protocols.curve_utils.async_get_meta_pools(*, start_block=None, end_block=None, start_time=None, end_time=None, factory=None, provider=None, verbose=False)
- async ctc.protocols.curve_utils.async_get_plain_pools(*, factory=None, start_block=None, end_block=None, start_time=None, end_time=None, provider=None, verbose=False)
- async ctc.protocols.curve_utils.async_get_pool_metadata(pool, *, n_tokens=None, provider=None)
- async ctc.protocols.curve_utils.async_get_pool_state(pool, *, n_tokens=None, block=None, provider=None, normalize=True)
- async ctc.protocols.curve_utils.async_get_virtual_price(pool, *, provider=None, block=None)