52 lines
1.6 KiB
Python
52 lines
1.6 KiB
Python
from core.models.evm.ethereum_token import EthereumToken
|
|
from propeller_swap_encoders.balancer import BalancerSwapStructEncoder
|
|
from core.encoding.interface import EncodingContext
|
|
|
|
|
|
def test_encode_balancer():
|
|
WETH = EthereumToken(
|
|
symbol="WETH",
|
|
address="0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2",
|
|
decimals=18,
|
|
gas=0,
|
|
)
|
|
DAI = EthereumToken(
|
|
symbol="DAI", address="0x6b175474e89094c44da98b954eedeac495271d0f", decimals=18
|
|
)
|
|
bob = "0x000000000000000000000000000000000000007B"
|
|
swap = {
|
|
"pool_id": "0x06df3b2bbb68adc8b0e302443692037ed9f91b42000000000000000000000063",
|
|
"sell_token": DAI,
|
|
"buy_token": WETH,
|
|
"split": 0,
|
|
"sell_amount": 0,
|
|
"buy_amount": 100,
|
|
"token_approval_needed": False,
|
|
"pool_tokens": (),
|
|
"pool_type": "BalancerStablePoolState",
|
|
"curve_v2_pool_type": None,
|
|
"is_curve_tricrypto": None,
|
|
"quote": None,
|
|
"pool_fee": None,
|
|
}
|
|
balancer_encoder = BalancerSwapStructEncoder()
|
|
encoded = balancer_encoder.encode_swap_struct(
|
|
swap, receiver=bob, encoding_context=EncodingContext(exact_out=False)
|
|
)
|
|
assert (
|
|
encoded.hex()
|
|
==
|
|
# sell token
|
|
"6b175474e89094c44da98b954eedeac495271d0f"
|
|
# buy token
|
|
"c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2"
|
|
# pool address
|
|
"06df3b2bbb68adc8b0e302443692037ed9f91b42000000000000000000000063"
|
|
# receiver
|
|
"000000000000000000000000000000000000007b"
|
|
# exact_out
|
|
"00"
|
|
# token_approval_needed
|
|
"00"
|
|
)
|