Vault

Berachain

0x4be03f781c497a489e3cb0287833452ca9b9e80b

Solidity v0.7.1+commit.f4a555be

🤖
透過你的 AI 查詢此合約
參考: 0x4be03f781c497a489e3cb0287833452ca9b9e80b
範例提示詞: "Tell me the current state of berachain/0x4be03f781c497a489e3cb0287833452ca9b9e80b"
還沒有接入 AI?→ mcp.smarts.md
Berachain 在 Smarts 上是僅文件鏈:原始碼和 ABI 已索引,但目前不提供即時鏈上資料(狀態、最新事件、管理員概覽)。AI 代理仍可透過 MCP 呼叫 get_contract_info 和 get_contract_source。

概覽

讀取函式
12
寫入函式
14
事件
12

讀取函式

WETH() view

Return the address of the WETH token used by the vault.✨ AI

開發者: Returns the Vault's WETH instance.

回傳值

名稱 類型 描述
address The address of the wrapped Ether (WETH) token contract used by the vault.✨ AI
getActionId(selector: bytes4) view

Return the action ID associated with the given function selector.✨ AI

開發者: Returns the action identifier associated with the external function described by `selector`.

參數

名稱 類型 描述
selector bytes4 The 4-byte function selector to query the action ID for.✨ AI

回傳值

名稱 類型 描述
bytes32 The action ID (bytes32) corresponding to the provided selector.✨ AI
getAuthorizer() view

Returns the address of the contract's current authorizer.✨ AI

開發者: Returns the Vault's Authorizer.

回傳值

名稱 類型 描述
address Address of the current authorizer (contract or account) that controls access rules.✨ AI
getDomainSeparator() view

Returns the EIP-712 domain separator used for signing and verifying typed data.✨ AI

開發者: Returns the EIP712 domain separator.

回傳值

名稱 類型 描述
bytes32 The 32-byte EIP-712 domain separator (bytes32) for this contract instance.✨ AI
getInternalBalance(user: address, tokens: address[]) view

Returns the user's internal token balances for the specified tokens.✨ AI

開發者: Returns `user`'s Internal Balance for a set of tokens.

參數

名稱 類型 描述
user address Address whose internal balances to return.✨ AI
tokens address[] Array of token addresses to query; returned balances follow this order.✨ AI

回傳值

名稱 類型 描述
balances uint256[] Array of internal balances corresponding to each token in the input order, expressed in the token's smallest unit.✨ AI
getNextNonce(user: address) view

Return the next nonce the given user must use for on-chain operations.✨ AI

開發者: Returns the next nonce used by an address to sign messages.

參數

名稱 類型 描述
user address The address of the user whose next nonce is returned.✨ AI

回傳值

名稱 類型 描述
uint256 The next uint256 nonce that the user should use for their next transaction.✨ AI
getPausedState() view

Returns the vault's paused status and the end timestamps for the pause window and buffer period.✨ AI

開發者: Returns the current contract pause status, as well as the end times of the Pause Window and Buffer Period.

回傳值

名稱 類型 描述
paused bool paused: true if vault actions are currently paused, false otherwise.✨ AI
pauseWindowEndTime uint256 pauseWindowEndTime: unix timestamp when the pause window ends; 0 if not set.✨ AI
bufferPeriodEndTime uint256 bufferPeriodEndTime: unix timestamp when the buffer period ends; 0 if not set.✨ AI
getPool(poolId: bytes32) view

Return the pool contract address and its configuration index for the specified pool ID.✨ AI

開發者: Returns a Pool's contract address and specialization setting.

參數

名稱 類型 描述
poolId bytes32 Keccak-256 identifier of the pool to query.✨ AI

回傳值

名稱 類型 描述
address Address of the pool contract associated with the given poolId.✨ AI
uint8 Pool configuration index as a uint8 (e.g., fee tier or pool type).✨ AI
getPoolTokenInfo(poolId: bytes32, token: address) view

Returns the cash, managed balance, last change block, and asset manager for a token in a pool.✨ AI

開發者: Returns detailed information for a Pool's registered token. `cash` is the number of tokens the Vault currently holds for the Pool. `managed` is the number of tokens withdrawn and held outside the Vault by the Pool's token Asset Manager. The Pool's total balance for `token` equals the sum of `cash` and `managed`. Internally, `cash` and `managed` are stored using 112 bits. No action can ever cause a Pool's token `cash`, `managed` or `total` balance to be greater than 2^112 - 1. `lastChangeBlock` is the number of the block in which `token`'s total balance was last modified (via either a join, exit, swap, or Asset Manager update). This value is useful to avoid so-called 'sandwich attacks', for example when developing price oracles. A change of zero (e.g. caused by a swap with amount zero) is considered a change for this purpose, and will update `lastChangeBlock`. `assetManager` is the Pool's token Asset Manager.

參數

名稱 類型 描述
poolId bytes32 Identifier of the pool containing the token.✨ AI
token address Address of the token to query within the pool.✨ AI

回傳值

名稱 類型 描述
cash uint256 cash: Amount of tokens currently held in the pool (not managed by an external manager).✨ AI
managed uint256 managed: Amount of tokens currently managed by the pool's asset manager.✨ AI
lastChangeBlock uint256 lastChangeBlock: Block number when cash or managed balances were last updated.✨ AI
assetManager address assetManager: Address authorized to manage this token's assets for the pool.✨ AI
getPoolTokens(poolId: bytes32) view

Returns the current token list, their balances, and the block number of the last change for the specified pool.✨ AI

開發者: Returns a Pool's registered tokens, the total balance for each, and the latest block when *any* of the tokens' `balances` changed. The order of the `tokens` array is the same order that will be used in `joinPool`, `exitPool`, as well as in all Pool hooks (where applicable). Calls to `registerTokens` and `deregisterTokens` may change this order. If a Pool only registers tokens once, and these are sorted in ascending order, they will be stored in the same order as passed to `registerTokens`. Total balances include both tokens held by the Vault and those withdrawn by the Pool's Asset Managers. These are the amounts used by joins, exits and swaps. For a detailed breakdown of token balances, use `getPoolTokenInfo` instead.

參數

名稱 類型 描述
poolId bytes32 Pool identifier (bytes32) to query.✨ AI

回傳值

名稱 類型 描述
tokens address[] Array of token addresses registered in the pool.✨ AI
balances uint256[] Array of token balances matching the tokens array; values are in each token's smallest unit.✨ AI
lastChangeBlock uint256 Block number when the pool's token list or balances were last modified.✨ AI
getProtocolFeesCollector() view

Returns the address that collects the protocol fees.✨ AI

開發者: Returns the current protocol fee module.

回傳值

名稱 類型 描述
address The address of the protocol fees collector contract or account.✨ AI
hasApprovedRelayer(user: address, relayer: address) view

Checks whether a user has approved a relayer to act on their behalf.✨ AI

開發者: Returns true if `user` has approved `relayer` to act as a relayer for them.

參數

名稱 類型 描述
user address Address of the user who may have given approval.✨ AI
relayer address Address of the relayer to check for approval.✨ AI

回傳值

名稱 類型 描述
bool True if the relayer is approved by the user; otherwise false.✨ AI

寫入函式

batchSwap(kind: uint8, swaps: tuple[], assets: address[], funds: tuple, limits: int256[], deadline: uint256) payable

Perform multiple swaps across pools in a single transaction and settle net asset changes.✨ AI

開發者: Performs a series of swaps with one or multiple Pools. In each individual swap, the caller determines either the amount of tokens sent to or received from the Pool, depending on the `kind` value. Returns an array with the net Vault asset balance deltas. Positive amounts represent tokens (or ETH) sent to the Vault, and negative amounts represent tokens (or ETH) sent by the Vault. Each delta corresponds to the asset at the same index in the `assets` array. Swaps are executed sequentially, in the order specified by the `swaps` array. Each array element describes a Pool, the token to be sent to this Pool, the token to receive from it, and an amount that is either `amountIn` or `amountOut` depending on the swap kind. Multihop swaps can be executed by passing an `amount` value of zero for a swap. This will cause the amount in/out of the previous swap to be used as the amount in for the current one. In a 'given in' swap, 'tokenIn' must equal the previous swap's `tokenOut`. For a 'given out' swap, `tokenOut` must equal the previous swap's `tokenIn`. The `assets` array contains the addresses of all assets involved in the swaps. These are either token addresses, or the IAsset sentinel value for ETH (the zero address). Each entry in the `swaps` array specifies tokens in and out by referencing an index in `assets`. Note that Pools never interact with ETH directly: it will be wrapped to or unwrapped from WETH by the Vault. Internal Balance usage, sender, and recipient are determined by the `funds` struct. The `limits` array specifies the minimum or maximum amount of each token the vault is allowed to transfer. `batchSwap` can be used to make a single swap, like `swap` does, but doing so requires more gas than the equivalent `swap` call. Emits `Swap` events.

參數

名稱 類型 描述
kind uint8 Swap kind flag (uint8): 0 = GIVEN_IN, 1 = GIVEN_OUT; determines whether amounts are inputs or outputs.✨ AI
swaps tuple[] Array of swap instructions; each includes pool id, input/output asset indexes, amount, and optional userData.✨ AI
assets address[] Ordered list of asset addresses referenced by swaps; swap tuples use indexes into this array.✨ AI
funds tuple Fund management settings (sender, recipient and internal-balance flags) that control sources and recipients of assets.✨ AI
limits int256[] Signed per-asset limits corresponding to assets array; positive = max to receive, negative = max to send.✨ AI
deadline uint256 Unix timestamp by which the swap must complete or the call will revert.✨ AI

回傳值

名稱 類型 描述
assetDeltas int256[] Array of signed net asset deltas per asset in the same order as assets; positive = Vault sends to caller, negative = Vault receives.✨ AI
deregisterTokens(poolId: bytes32, tokens: address[]) nonpayable

Deregister one or more token addresses from the specified liquidity pool.✨ AI

開發者: Deregisters `tokens` for the `poolId` Pool. Must be called by the Pool's contract. Only registered tokens (via `registerTokens`) can be deregistered. Additionally, they must have zero total balance. For Pools with the Two Token specialization, `tokens` must have a length of two, that is, both tokens must be deregistered in the same `deregisterTokens` call. A deregistered token can be re-registered later on, possibly with a different Asset Manager. Emits a `TokensDeregistered` event.

參數

名稱 類型 描述
poolId bytes32 Identifier of the pool from which tokens will be removed.✨ AI
tokens address[] Array of token contract addresses to deregister from the pool.✨ AI
exitPool(poolId: bytes32, sender: address, recipient: address, request: tuple) nonpayable

Exit a pool to withdraw tokens for the recipient according to the provided exit request.✨ AI

開發者: Called by users to exit a Pool, which transfers tokens from the Pool's balance to `recipient`. This will trigger custom Pool behavior, which will typically ask for something in return from `sender` - often tokenized Pool shares. The amount of tokens that can be withdrawn is limited by the Pool's `cash` balance (see `getPoolTokenInfo`). If the caller is not `sender`, it must be an authorized relayer for them. The `tokens` and `minAmountsOut` arrays must have the same length, and each entry in these indicates the minimum token amount to receive for each token contract. The amounts to send are decided by the Pool and not the Vault: it just enforces these minimums. If exiting a Pool that holds WETH, it is possible to receive ETH directly: the Vault will do the unwrapping. To enable this mechanism, the IAsset sentinel value (the zero address) must be passed in the `assets` array instead of the WETH address. Note that it is not possible to combine ETH and WETH in the same exit. `assets` must have the same length and order as the array returned by `getPoolTokens`. This prevents issues when interacting with Pools that register and deregister tokens frequently. If receiving ETH however, the array must be sorted *before* replacing the WETH address with the ETH sentinel value (the zero address), which means the final `assets` array might not be sorted. Pools with no registered tokens cannot be exited. If `toInternalBalance` is true, the tokens will be deposited to `recipient`'s Internal Balance. Otherwise, an ERC20 transfer will be performed. Note that ETH cannot be deposited to Internal Balance: attempting to do so will trigger a revert. `minAmountsOut` is the minimum amount of tokens the user expects to get out of the Pool, for each token in the `tokens` array. This array must match the Pool's registered tokens. This causes the Vault to call the `IBasePool.onExitPool` hook on the Pool's contract, where Pools implement their own custom logic. This typically requires additional information from the user (such as the expected number of Pool shares to return). This can be encoded in the `userData` argument, which is ignored by the Vault and passed directly to the Pool's contract. Emits a `PoolBalanceChanged` event.

參數

名稱 類型 描述
poolId bytes32 Identifier of the pool to exit.✨ AI
sender address Address that initiated the exit and provided pool tokens.✨ AI
recipient address Address that will receive the withdrawn tokens.✨ AI
request tuple Exit request struct: assets, minAmountsOut, userData, and toInternalBalance flag.✨ AI
flashLoan(recipient: address, tokens: address[], amounts: uint256[], userData: bytes) nonpayable

Send specified token amounts as a flash loan to recipient; funds must be returned within the same transaction.✨ AI

開發者: Performs a 'flash loan', sending tokens to `recipient`, executing the `receiveFlashLoan` hook on it, and then reverting unless the tokens plus a proportional protocol fee have been returned. The `tokens` and `amounts` arrays must have the same length, and each entry in these indicates the loan amount for each token contract. `tokens` must be sorted in ascending order. The 'userData' field is ignored by the Vault, and forwarded as-is to `recipient` as part of the `receiveFlashLoan` call. Emits `FlashLoan` events.

參數

名稱 類型 描述
recipient address Address receiving the borrowed tokens and executing the flash loan callback.✨ AI
tokens address[] Array of token contract addresses to borrow (ERC-20).✨ AI
amounts uint256[] Array of amounts to borrow for each token; indices correspond to tokens.✨ AI
userData bytes Arbitrary data forwarded to the recipient's callback for custom logic.✨ AI
joinPool(poolId: bytes32, sender: address, recipient: address, request: tuple) payable

Join a liquidity pool by depositing the specified tokens using a JoinPoolRequest.✨ AI

開發者: Called by users to join a Pool, which transfers tokens from `sender` into the Pool's balance. This will trigger custom Pool behavior, which will typically grant something in return to `recipient` - often tokenized Pool shares. If the caller is not `sender`, it must be an authorized relayer for them. The `assets` and `maxAmountsIn` arrays must have the same length, and each entry indicates the maximum amount to send for each asset. The amounts to send are decided by the Pool and not the Vault: it just enforces these maximums. If joining a Pool that holds WETH, it is possible to send ETH directly: the Vault will do the wrapping. To enable this mechanism, the IAsset sentinel value (the zero address) must be passed in the `assets` array instead of the WETH address. Note that it is not possible to combine ETH and WETH in the same join. Any excess ETH will be sent back to the caller (not the sender, which is important for relayers). `assets` must have the same length and order as the array returned by `getPoolTokens`. This prevents issues when interacting with Pools that register and deregister tokens frequently. If sending ETH however, the array must be sorted *before* replacing the WETH address with the ETH sentinel value (the zero address), which means the final `assets` array might not be sorted. Pools with no registered tokens cannot be joined. If `fromInternalBalance` is true, the caller's Internal Balance will be preferred: ERC20 transfers will only be made for the difference between the requested amount and Internal Balance (if any). Note that ETH cannot be withdrawn from Internal Balance: attempting to do so will trigger a revert. This causes the Vault to call the `IBasePool.onJoinPool` hook on the Pool's contract, where Pools implement their own custom logic. This typically requires additional information from the user (such as the expected number of Pool shares). This can be encoded in the `userData` argument, which is ignored by the Vault and passed directly to the Pool's contract, as is `recipient`. Emits a `PoolBalanceChanged` event.

參數

名稱 類型 描述
poolId bytes32 ID of the pool to join.✨ AI
sender address Address supplying tokens or whose internal balance funds the join.✨ AI
recipient address Address that will receive the pool tokens (BPT).✨ AI
request tuple JoinPoolRequest tuple: assets, maxAmountsIn, userData, fromInternalBalance.✨ AI
managePoolBalance(ops: tuple[]) nonpayable

Update multiple pool balances and perform asset transfers according to a list of operations.✨ AI

開發者: Performs a set of Pool balance operations, which may be either withdrawals, deposits or updates. Pool Balance management features batching, which means a single contract call can be used to perform multiple operations of different kinds, with different Pools and tokens, at once. For each operation, the caller must be registered as the Asset Manager for `token` in `poolId`.

參數

名稱 類型 描述
ops tuple[] Array of operations; each tuple encodes poolId, token, amount delta, recipient, and flags controlling execution.✨ AI
manageUserBalance(ops: tuple[]) payable

Execute a batch of balance operations to update user balances, transfers, or deposits in the Vault.✨ AI

開發者: Performs a set of user balance operations, which involve Internal Balance (deposit, withdraw or transfer) and plain ERC20 transfers using the Vault's allowance. This last feature is particularly useful for relayers, as it lets integrators reuse a user's Vault allowance. For each operation, if the caller is not `sender`, it must be an authorized relayer for them.

參數

名稱 類型 描述
ops tuple[] Array of operation tuples specifying action type, user, token, amount, and optional metadata.✨ AI
queryBatchSwap(kind: uint8, swaps: tuple[], assets: address[], funds: tuple) nonpayable

Estimate net token flows for a batch swap without executing it.✨ AI

開發者: Simulates a call to `batchSwap`, returning an array of Vault asset deltas. Calls to `swap` cannot be simulated directly, but an equivalent `batchSwap` call can and will yield the exact same result. Each element in the array corresponds to the asset at the same index, and indicates the number of tokens (or ETH) the Vault would take from the sender (if positive) or send to the recipient (if negative). The arguments it receives are the same that an equivalent `batchSwap` call would receive. Unlike `batchSwap`, this function performs no checks on the sender or recipient field in the `funds` struct. This makes it suitable to be called by off-chain applications via eth_call without needing to hold tokens, approve them for the Vault, or even know a user's address. Note that this function is not 'view' (due to implementation details): the client code must explicitly execute eth_call instead of eth_sendTransaction.

參數

名稱 類型 描述
kind uint8 Swap kind enum: 0 = GIVEN_IN, 1 = GIVEN_OUT.✨ AI
swaps tuple[] Array of swap steps (poolId, assetInIndex, assetOutIndex, amount, userData).✨ AI
assets address[] Ordered list of token addresses referenced by the swap steps.✨ AI
funds tuple Fund management tuple (sender, recipient, fromInternalBalance, toInternalBalance).✨ AI

回傳值

名稱 類型 描述
int256[] Array of net asset deltas for each asset in assets; positive = Vault receives, negative = Vault sends.✨ AI
registerPool(specialization: uint8) nonpayable

Registers a new pool with the specified specialization and returns the pool's identifier.✨ AI

開發者: Registers the caller account as a Pool with a given specialization setting. Returns the Pool's ID, which is used in all Pool-related functions. Pools cannot be deregistered, nor can the Pool's specialization be changed. The caller is expected to be a smart contract that implements either `IGeneralPool` or `IMinimalSwapInfoPool`, depending on the chosen specialization setting. This contract is known as the Pool's contract. Note that the same contract may register itself as multiple Pools with unique Pool IDs, or in other words, multiple Pools may share the same contract. Emits a `PoolRegistered` event.

參數

名稱 類型 描述
specialization uint8 Numeric code selecting the pool specialization which configures pool behavior and hooks.✨ AI

回傳值

名稱 類型 描述
bytes32 A bytes32 value that uniquely identifies the newly registered pool (the Pool ID).✨ AI
registerTokens(poolId: bytes32, tokens: address[], assetManagers: address[]) nonpayable

Register a set of tokens and their asset managers for the specified pool.✨ AI

開發者: Registers `tokens` for the `poolId` Pool. Must be called by the Pool's contract. Pools can only interact with tokens they have registered. Users join a Pool by transferring registered tokens, exit by receiving registered tokens, and can only swap registered tokens. Each token can only be registered once. For Pools with the Two Token specialization, `tokens` must have a length of two, that is, both tokens must be registered in the same `registerTokens` call, and they must be sorted in ascending order. The `tokens` and `assetManagers` arrays must have the same length, and each entry in these indicates the Asset Manager for the corresponding token. Asset Managers can manage a Pool's tokens via `managePoolBalance`, depositing and withdrawing them directly, and can even set their balance to arbitrary amounts. They are therefore expected to be highly secured smart contracts with sound design principles, and the decision to register an Asset Manager should not be made lightly. Pools can choose not to assign an Asset Manager to a given token by passing in the zero address. Once an Asset Manager is set, it cannot be changed except by deregistering the associated token and registering again with a different Asset Manager. Emits a `TokensRegistered` event.

參數

名稱 類型 描述
poolId bytes32 Identifier of the liquidity pool to register tokens for.✨ AI
tokens address[] Addresses of tokens to register for the pool.✨ AI
assetManagers address[] Addresses of asset managers corresponding to each token.✨ AI
setAuthorizer(newAuthorizer: address) nonpayable

Set the Vault's authorizer to a new address, updating which contract controls access permissions.✨ AI

開發者: Sets a new Authorizer for the Vault. The caller must be allowed by the current Authorizer to do this. Emits an `AuthorizerChanged` event.

參數

名稱 類型 描述
newAuthorizer address Address of the new authorizer contract.✨ AI
setPaused(paused: bool) nonpayable

Set the contract's paused state to the provided boolean.✨ AI

開發者: Safety mechanism to pause most Vault operations in the event of an emergency - typically detection of an error in some part of the system. The Vault can only be paused during an initial time period, after which pausing is forever disabled. While the contract is paused, the following features are disabled: - depositing and transferring internal balance - transferring external balance (using the Vault's allowance) - swaps - joining Pools - Asset Manager interactions Internal Balance can still be withdrawn, and Pools exited.

參數

名稱 類型 描述
paused bool When true, disable paused actions; when false, enable them.✨ AI
setRelayerApproval(sender: address, relayer: address, approved: bool) nonpayable

Set approval for a relayer to act on behalf of a sender in the Vault.✨ AI

開發者: Allows `relayer` to act as a relayer for `sender` if `approved` is true, and disallows it otherwise. Emits a `RelayerApprovalChanged` event.

參數

名稱 類型 描述
sender address Address of the account granting or revoking relayer permission.✨ AI
relayer address Address being approved or revoked to act for the sender.✨ AI
approved bool True to approve the relayer, false to revoke approval.✨ AI
swap(singleSwap: tuple, funds: tuple, limit: uint256, deadline: uint256) payable

Execute a single token swap using provided swap details and fund permissions, returning the calculated amount.✨ AI

開發者: Performs a swap with a single Pool. If the swap is 'given in' (the number of tokens to send to the Pool is known), it returns the amount of tokens taken from the Pool, which must be greater than or equal to `limit`. If the swap is 'given out' (the number of tokens to take from the Pool is known), it returns the amount of tokens sent to the Pool, which must be less than or equal to `limit`. Internal Balance usage and the recipient are determined by the `funds` struct. Emits a `Swap` event.

參數

名稱 類型 描述
singleSwap tuple Struct describing the swap specifics: pool, assetIn, assetOut, amount, and any user data.✨ AI
funds tuple Struct specifying sender, recipient, and flags for internal balance usage and approvals.✨ AI
limit uint256 Slippage guard specifying the minimum (for exactIn) or maximum (for exactOut) acceptable amount.✨ AI
deadline uint256 Unix timestamp after which the call will revert if the swap has not been executed.✨ AI

回傳值

名稱 類型 描述
amountCalculated uint256 amountCalculated: The final amount computed by the swap (output or input based on swap kind), in token base units.✨ AI

事件

AuthorizerChanged(newAuthorizer: address)
名稱 類型 已索引 描述
newAuthorizer address
ExternalBalanceTransfer(token: address, sender: address, recipient: address, amount: uint256)
名稱 類型 已索引 描述
token address
sender address
recipient address
amount uint256
FlashLoan(recipient: address, token: address, amount: uint256, feeAmount: uint256)
名稱 類型 已索引 描述
recipient address
token address
amount uint256
feeAmount uint256
InternalBalanceChanged(user: address, token: address, delta: int256)
名稱 類型 已索引 描述
user address
token address
delta int256
PausedStateChanged(paused: bool)
名稱 類型 已索引 描述
paused bool
PoolBalanceChanged(poolId: bytes32, liquidityProvider: address, tokens: address[], deltas: int256[], protocolFeeAmounts: uint256[])
名稱 類型 已索引 描述
poolId bytes32
liquidityProvider address
tokens address[]
deltas int256[]
protocolFeeAmounts uint256[]
PoolBalanceManaged(poolId: bytes32, assetManager: address, token: address, cashDelta: int256, managedDelta: int256)
名稱 類型 已索引 描述
poolId bytes32
assetManager address
token address
cashDelta int256
managedDelta int256
PoolRegistered(poolId: bytes32, poolAddress: address, specialization: uint8)
名稱 類型 已索引 描述
poolId bytes32
poolAddress address
specialization uint8
RelayerApprovalChanged(relayer: address, sender: address, approved: bool)
名稱 類型 已索引 描述
relayer address
sender address
approved bool
Swap(poolId: bytes32, tokenIn: address, tokenOut: address, amountIn: uint256, amountOut: uint256)
名稱 類型 已索引 描述
poolId bytes32
tokenIn address
tokenOut address
amountIn uint256
amountOut uint256
TokensDeregistered(poolId: bytes32, tokens: address[])
名稱 類型 已索引 描述
poolId bytes32
tokens address[]
TokensRegistered(poolId: bytes32, tokens: address[], assetManagers: address[])
名稱 類型 已索引 描述
poolId bytes32
tokens address[]
assetManagers address[]