Skip to content

Latest commit

 

History

History
39 lines (33 loc) · 979 Bytes

encoding.md

File metadata and controls

39 lines (33 loc) · 979 Bytes

Encoding userData

There are some arguments that need to be encoded when interacting with Balancer V2 Smart Contracts. For convenience, this page provides an example of how to encode arguments.

{% tabs %} {% tab title="Solidity" %}

uint256 joinKind = 0;
uint256[] memory initBalances = new uint256[](2);
initBalances[0] = 1e18;
initBalances[1] = 2e18;
bytes memory userDataEncoded = abi.encode(joinKind, initBalances);

{% endtab %}

{% tab title="js" %}

import { defaultAbiCoder } from '@ethersproject/abi';

const joinKind = 0;
const initBalances = [1e18, 2e18];
const abi = ['uint256', 'uint256[]'];
const data = [joinKind, initBalances];
const userDataEncoded = defaultAbiCoder.encode(abi,data);

{% endtab %}

{% tab title="Python" %}

import eth_abi

joinKind = 0
initBalances = [1e18, 2e18]
abi = ['uint256', 'uint256[]']
data = [joinKind, initBalances]
userDataEncoded = eth_abi.encode_abi(abi, data)

{% endtab %} {% endtabs %}