diff --git a/bindings/generated/ccip/ccip_token_pools/lock_release_token_pool/lock_release_token_pool.go b/bindings/generated/ccip/ccip_token_pools/lock_release_token_pool/lock_release_token_pool.go index 91fe45d59..a7f323778 100644 --- a/bindings/generated/ccip/ccip_token_pools/lock_release_token_pool/lock_release_token_pool.go +++ b/bindings/generated/ccip/ccip_token_pools/lock_release_token_pool/lock_release_token_pool.go @@ -19,7 +19,7 @@ var ( _ = big.NewInt ) -const FunctionInfo = `[{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"accept_ownership","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"accept_ownership_from_object","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"from","type":"sui::object::UID"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"add_remote_pool","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"owner_cap","type":"OwnerCap"},{"name":"remote_chain_selector","type":"u64"},{"name":"remote_pool_address","type":"vector"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"apply_allowlist_updates","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"owner_cap","type":"OwnerCap"},{"name":"removes","type":"vector
"},{"name":"adds","type":"vector
"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"apply_chain_updates","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"owner_cap","type":"OwnerCap"},{"name":"remote_chain_selectors_to_remove","type":"vector"},{"name":"remote_chain_selectors_to_add","type":"vector"},{"name":"remote_pool_addresses_to_add","type":"vector>>"},{"name":"remote_token_addresses_to_add","type":"vector>"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"destroy_token_pool","parameters":[{"name":"ref","type":"CCIPObjectRef"},{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"owner_cap","type":"OwnerCap"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"execute_ownership_transfer","parameters":[{"name":"owner_cap","type":"OwnerCap"},{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"to","type":"address"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"execute_ownership_transfer_to_mcms","parameters":[{"name":"owner_cap","type":"OwnerCap"},{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"registry","type":"Registry"},{"name":"to","type":"address"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"get_allowlist","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"get_allowlist_enabled","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"get_balance","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"get_rebalancer","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"get_remote_pools","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"remote_chain_selector","type":"u64"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"get_remote_token","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"remote_chain_selector","type":"u64"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"get_supported_chains","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"get_token","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"get_token_decimals","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"has_pending_transfer","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"initialize","parameters":[{"name":"ref","type":"CCIPObjectRef"},{"name":"coin_metadata","type":"CoinMetadata"},{"name":"treasury_cap","type":"TreasuryCap"},{"name":"token_pool_administrator","type":"address"},{"name":"rebalancer","type":"address"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"is_remote_pool","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"remote_chain_selector","type":"u64"},{"name":"remote_pool_address","type":"vector"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"is_supported_chain","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"remote_chain_selector","type":"u64"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"lock_or_burn","parameters":[{"name":"ref","type":"CCIPObjectRef"},{"name":"token_transfer_params","type":"onramp_sh::TokenTransferParams"},{"name":"c","type":"Coin"},{"name":"remote_chain_selector","type":"u64"},{"name":"clock","type":"Clock"},{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"owner","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"pending_transfer_accepted","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"pending_transfer_from","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"pending_transfer_to","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"provide_liquidity","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"c","type":"Coin"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"release_or_mint","parameters":[{"name":"ref","type":"CCIPObjectRef"},{"name":"receiver_params","type":"offramp_sh::ReceiverParams"},{"name":"clock","type":"Clock"},{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"remove_remote_pool","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"owner_cap","type":"OwnerCap"},{"name":"remote_chain_selector","type":"u64"},{"name":"remote_pool_address","type":"vector"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"set_allowlist_enabled","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"owner_cap","type":"OwnerCap"},{"name":"enabled","type":"bool"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"set_chain_rate_limiter_config","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"owner_cap","type":"OwnerCap"},{"name":"clock","type":"Clock"},{"name":"remote_chain_selector","type":"u64"},{"name":"outbound_is_enabled","type":"bool"},{"name":"outbound_capacity","type":"u64"},{"name":"outbound_rate","type":"u64"},{"name":"inbound_is_enabled","type":"bool"},{"name":"inbound_capacity","type":"u64"},{"name":"inbound_rate","type":"u64"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"set_chain_rate_limiter_configs","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"owner_cap","type":"OwnerCap"},{"name":"clock","type":"Clock"},{"name":"remote_chain_selectors","type":"vector"},{"name":"outbound_is_enableds","type":"vector"},{"name":"outbound_capacities","type":"vector"},{"name":"outbound_rates","type":"vector"},{"name":"inbound_is_enableds","type":"vector"},{"name":"inbound_capacities","type":"vector"},{"name":"inbound_rates","type":"vector"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"set_pool","parameters":[{"name":"ref","type":"CCIPObjectRef"},{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"owner_cap","type":"OwnerCap"},{"name":"coin_metadata_address","type":"address"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"set_rebalancer","parameters":[{"name":"owner_cap","type":"OwnerCap"},{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"rebalancer","type":"address"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"transfer_ownership","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"owner_cap","type":"OwnerCap"},{"name":"new_owner","type":"address"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"type_and_version","parameters":null},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"withdraw_liquidity","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"amount","type":"u64"}]}]` +const FunctionInfo = `[{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"accept_ownership","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"accept_ownership_from_object","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"from","type":"sui::object::UID"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"add_remote_pool","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"owner_cap","type":"OwnerCap"},{"name":"remote_chain_selector","type":"u64"},{"name":"remote_pool_address","type":"vector"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"apply_allowlist_updates","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"owner_cap","type":"OwnerCap"},{"name":"removes","type":"vector
"},{"name":"adds","type":"vector
"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"apply_chain_updates","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"owner_cap","type":"OwnerCap"},{"name":"remote_chain_selectors_to_remove","type":"vector"},{"name":"remote_chain_selectors_to_add","type":"vector"},{"name":"remote_pool_addresses_to_add","type":"vector>>"},{"name":"remote_token_addresses_to_add","type":"vector>"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"destroy_token_pool","parameters":[{"name":"ref","type":"CCIPObjectRef"},{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"owner_cap","type":"OwnerCap"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"execute_ownership_transfer","parameters":[{"name":"owner_cap","type":"OwnerCap"},{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"to","type":"address"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"execute_ownership_transfer_to_mcms","parameters":[{"name":"owner_cap","type":"OwnerCap"},{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"registry","type":"Registry"},{"name":"to","type":"address"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"get_allowlist","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"get_allowlist_enabled","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"get_balance","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"get_rebalancer","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"get_remote_pools","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"remote_chain_selector","type":"u64"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"get_remote_token","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"remote_chain_selector","type":"u64"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"get_supported_chains","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"get_token","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"get_token_decimals","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"has_pending_transfer","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"initialize","parameters":[{"name":"ref","type":"CCIPObjectRef"},{"name":"coin_metadata","type":"CoinMetadata"},{"name":"treasury_cap","type":"TreasuryCap"},{"name":"token_pool_administrator","type":"address"},{"name":"rebalancer","type":"address"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"is_remote_pool","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"remote_chain_selector","type":"u64"},{"name":"remote_pool_address","type":"vector"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"is_supported_chain","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"remote_chain_selector","type":"u64"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"lock_or_burn","parameters":[{"name":"ref","type":"CCIPObjectRef"},{"name":"token_transfer_params","type":"onramp_sh::TokenTransferParams"},{"name":"c","type":"Coin"},{"name":"remote_chain_selector","type":"u64"},{"name":"clock","type":"Clock"},{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"owner","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"pending_transfer_accepted","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"pending_transfer_from","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"pending_transfer_to","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"provide_liquidity","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"rebalancer_cap","type":"RebalancerCap"},{"name":"c","type":"Coin"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"release_or_mint","parameters":[{"name":"ref","type":"CCIPObjectRef"},{"name":"receiver_params","type":"offramp_sh::ReceiverParams"},{"name":"clock","type":"Clock"},{"name":"state","type":"LockReleaseTokenPoolState"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"remove_remote_pool","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"owner_cap","type":"OwnerCap"},{"name":"remote_chain_selector","type":"u64"},{"name":"remote_pool_address","type":"vector"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"set_allowlist_enabled","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"owner_cap","type":"OwnerCap"},{"name":"enabled","type":"bool"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"set_chain_rate_limiter_config","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"owner_cap","type":"OwnerCap"},{"name":"clock","type":"Clock"},{"name":"remote_chain_selector","type":"u64"},{"name":"outbound_is_enabled","type":"bool"},{"name":"outbound_capacity","type":"u64"},{"name":"outbound_rate","type":"u64"},{"name":"inbound_is_enabled","type":"bool"},{"name":"inbound_capacity","type":"u64"},{"name":"inbound_rate","type":"u64"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"set_chain_rate_limiter_configs","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"owner_cap","type":"OwnerCap"},{"name":"clock","type":"Clock"},{"name":"remote_chain_selectors","type":"vector"},{"name":"outbound_is_enableds","type":"vector"},{"name":"outbound_capacities","type":"vector"},{"name":"outbound_rates","type":"vector"},{"name":"inbound_is_enableds","type":"vector"},{"name":"inbound_capacities","type":"vector"},{"name":"inbound_rates","type":"vector"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"set_pool","parameters":[{"name":"ref","type":"CCIPObjectRef"},{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"owner_cap","type":"OwnerCap"},{"name":"coin_metadata_address","type":"address"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"transfer_ownership","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"owner_cap","type":"OwnerCap"},{"name":"new_owner","type":"address"}]},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"type_and_version","parameters":null},{"package":"lock_release_token_pool","module":"lock_release_token_pool","name":"withdraw_liquidity","parameters":[{"name":"state","type":"LockReleaseTokenPoolState"},{"name":"rebalancer_cap","type":"RebalancerCap"},{"name":"amount","type":"u64"}]}]` type ILockReleaseTokenPool interface { TypeAndVersion(ctx context.Context, opts *bind.CallOpts) (*models.SuiTransactionBlockResponse, error) @@ -43,11 +43,10 @@ type ILockReleaseTokenPool interface { ReleaseOrMint(ctx context.Context, opts *bind.CallOpts, typeArgs []string, ref bind.Object, receiverParams bind.Object, clock bind.Object, state bind.Object) (*models.SuiTransactionBlockResponse, error) SetChainRateLimiterConfigs(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object, ownerCap bind.Object, clock bind.Object, remoteChainSelectors []uint64, outboundIsEnableds []bool, outboundCapacities []uint64, outboundRates []uint64, inboundIsEnableds []bool, inboundCapacities []uint64, inboundRates []uint64) (*models.SuiTransactionBlockResponse, error) SetChainRateLimiterConfig(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object, ownerCap bind.Object, clock bind.Object, remoteChainSelector uint64, outboundIsEnabled bool, outboundCapacity uint64, outboundRate uint64, inboundIsEnabled bool, inboundCapacity uint64, inboundRate uint64) (*models.SuiTransactionBlockResponse, error) - ProvideLiquidity(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object, c_ bind.Object) (*models.SuiTransactionBlockResponse, error) - WithdrawLiquidity(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object, amount uint64) (*models.SuiTransactionBlockResponse, error) - SetRebalancer(ctx context.Context, opts *bind.CallOpts, typeArgs []string, ownerCap bind.Object, state bind.Object, rebalancer string) (*models.SuiTransactionBlockResponse, error) - GetRebalancer(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object) (*models.SuiTransactionBlockResponse, error) + ProvideLiquidity(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object, rebalancerCap bind.Object, c_ bind.Object) (*models.SuiTransactionBlockResponse, error) + WithdrawLiquidity(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object, rebalancerCap bind.Object, amount uint64) (*models.SuiTransactionBlockResponse, error) GetBalance(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object) (*models.SuiTransactionBlockResponse, error) + GetRebalancer(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object) (*models.SuiTransactionBlockResponse, error) Owner(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object) (*models.SuiTransactionBlockResponse, error) HasPendingTransfer(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object) (*models.SuiTransactionBlockResponse, error) PendingTransferFrom(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object) (*models.SuiTransactionBlockResponse, error) @@ -60,7 +59,6 @@ type ILockReleaseTokenPool interface { ExecuteOwnershipTransfer(ctx context.Context, opts *bind.CallOpts, typeArgs []string, ownerCap bind.Object, state bind.Object, to string) (*models.SuiTransactionBlockResponse, error) ExecuteOwnershipTransferToMcms(ctx context.Context, opts *bind.CallOpts, typeArgs []string, ownerCap bind.Object, state bind.Object, registry bind.Object, to string) (*models.SuiTransactionBlockResponse, error) McmsRegisterUpgradeCap(ctx context.Context, opts *bind.CallOpts, upgradeCap bind.Object, registry bind.Object, state bind.Object) (*models.SuiTransactionBlockResponse, error) - McmsSetRebalancer(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object, registry bind.Object, params bind.Object) (*models.SuiTransactionBlockResponse, error) McmsSetAllowlistEnabled(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object, registry bind.Object, params bind.Object) (*models.SuiTransactionBlockResponse, error) McmsApplyAllowlistUpdates(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object, registry bind.Object, params bind.Object) (*models.SuiTransactionBlockResponse, error) McmsApplyChainUpdates(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object, registry bind.Object, params bind.Object) (*models.SuiTransactionBlockResponse, error) @@ -90,9 +88,9 @@ type ILockReleaseTokenPoolDevInspect interface { GetSupportedChains(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object) ([]uint64, error) GetAllowlistEnabled(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object) (bool, error) GetAllowlist(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object) ([]string, error) - WithdrawLiquidity(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object, amount uint64) (any, error) - GetRebalancer(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object) (string, error) + WithdrawLiquidity(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object, rebalancerCap bind.Object, amount uint64) (any, error) GetBalance(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object) (uint64, error) + GetRebalancer(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object) (string, error) Owner(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object) (string, error) HasPendingTransfer(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object) (bool, error) PendingTransferFrom(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object) (*string, error) @@ -144,16 +142,14 @@ type LockReleaseTokenPoolEncoder interface { SetChainRateLimiterConfigsWithArgs(typeArgs []string, args ...any) (*bind.EncodedCall, error) SetChainRateLimiterConfig(typeArgs []string, state bind.Object, ownerCap bind.Object, clock bind.Object, remoteChainSelector uint64, outboundIsEnabled bool, outboundCapacity uint64, outboundRate uint64, inboundIsEnabled bool, inboundCapacity uint64, inboundRate uint64) (*bind.EncodedCall, error) SetChainRateLimiterConfigWithArgs(typeArgs []string, args ...any) (*bind.EncodedCall, error) - ProvideLiquidity(typeArgs []string, state bind.Object, c_ bind.Object) (*bind.EncodedCall, error) + ProvideLiquidity(typeArgs []string, state bind.Object, rebalancerCap bind.Object, c_ bind.Object) (*bind.EncodedCall, error) ProvideLiquidityWithArgs(typeArgs []string, args ...any) (*bind.EncodedCall, error) - WithdrawLiquidity(typeArgs []string, state bind.Object, amount uint64) (*bind.EncodedCall, error) + WithdrawLiquidity(typeArgs []string, state bind.Object, rebalancerCap bind.Object, amount uint64) (*bind.EncodedCall, error) WithdrawLiquidityWithArgs(typeArgs []string, args ...any) (*bind.EncodedCall, error) - SetRebalancer(typeArgs []string, ownerCap bind.Object, state bind.Object, rebalancer string) (*bind.EncodedCall, error) - SetRebalancerWithArgs(typeArgs []string, args ...any) (*bind.EncodedCall, error) - GetRebalancer(typeArgs []string, state bind.Object) (*bind.EncodedCall, error) - GetRebalancerWithArgs(typeArgs []string, args ...any) (*bind.EncodedCall, error) GetBalance(typeArgs []string, state bind.Object) (*bind.EncodedCall, error) GetBalanceWithArgs(typeArgs []string, args ...any) (*bind.EncodedCall, error) + GetRebalancer(typeArgs []string, state bind.Object) (*bind.EncodedCall, error) + GetRebalancerWithArgs(typeArgs []string, args ...any) (*bind.EncodedCall, error) Owner(typeArgs []string, state bind.Object) (*bind.EncodedCall, error) OwnerWithArgs(typeArgs []string, args ...any) (*bind.EncodedCall, error) HasPendingTransfer(typeArgs []string, state bind.Object) (*bind.EncodedCall, error) @@ -178,8 +174,6 @@ type LockReleaseTokenPoolEncoder interface { ExecuteOwnershipTransferToMcmsWithArgs(typeArgs []string, args ...any) (*bind.EncodedCall, error) McmsRegisterUpgradeCap(upgradeCap bind.Object, registry bind.Object, state bind.Object) (*bind.EncodedCall, error) McmsRegisterUpgradeCapWithArgs(args ...any) (*bind.EncodedCall, error) - McmsSetRebalancer(typeArgs []string, state bind.Object, registry bind.Object, params bind.Object) (*bind.EncodedCall, error) - McmsSetRebalancerWithArgs(typeArgs []string, args ...any) (*bind.EncodedCall, error) McmsSetAllowlistEnabled(typeArgs []string, state bind.Object, registry bind.Object, params bind.Object) (*bind.EncodedCall, error) McmsSetAllowlistEnabledWithArgs(typeArgs []string, args ...any) (*bind.EncodedCall, error) McmsApplyAllowlistUpdates(typeArgs []string, state bind.Object, registry bind.Object, params bind.Object) (*bind.EncodedCall, error) @@ -248,47 +242,27 @@ func (c *LockReleaseTokenPoolContract) DevInspect() ILockReleaseTokenPoolDevInsp } type LockReleaseTokenPoolState struct { - Id string `move:"sui::object::UID"` - TokenPoolState bind.Object `move:"TokenPoolState"` - Reserve bind.Object `move:"Coin"` - Rebalancer string `move:"address"` - OwnableState bind.Object `move:"OwnableState"` -} - -type TypeProof struct { + Id string `move:"sui::object::UID"` + TokenPoolState bind.Object `move:"TokenPoolState"` + Reserve bind.Object `move:"Coin"` + RebalancerCapId bind.Object `move:"ID"` + OwnableState bind.Object `move:"OwnableState"` } -type McmsCallback struct { +type RebalancerCap struct { + Id string `move:"sui::object::UID"` } -type bcsLockReleaseTokenPoolState struct { - Id string - TokenPoolState bind.Object - Reserve bind.Object - Rebalancer [32]byte - OwnableState bind.Object +type TypeProof struct { } -func convertLockReleaseTokenPoolStateFromBCS(bcs bcsLockReleaseTokenPoolState) (LockReleaseTokenPoolState, error) { - - return LockReleaseTokenPoolState{ - Id: bcs.Id, - TokenPoolState: bcs.TokenPoolState, - Reserve: bcs.Reserve, - Rebalancer: fmt.Sprintf("0x%x", bcs.Rebalancer), - OwnableState: bcs.OwnableState, - }, nil +type McmsCallback struct { } func init() { bind.RegisterStructDecoder("lock_release_token_pool::lock_release_token_pool::LockReleaseTokenPoolState", func(data []byte) (interface{}, error) { - var temp bcsLockReleaseTokenPoolState - _, err := mystenbcs.Unmarshal(data, &temp) - if err != nil { - return nil, err - } - - result, err := convertLockReleaseTokenPoolStateFromBCS(temp) + var result LockReleaseTokenPoolState + _, err := mystenbcs.Unmarshal(data, &result) if err != nil { return nil, err } @@ -296,19 +270,27 @@ func init() { }) // Register vector decoder for LockReleaseTokenPoolState bind.RegisterStructDecoder("vector", func(data []byte) (interface{}, error) { - var temps []bcsLockReleaseTokenPoolState - _, err := mystenbcs.Unmarshal(data, &temps) + var results []LockReleaseTokenPoolState + _, err := mystenbcs.Unmarshal(data, &results) if err != nil { return nil, err } - - results := make([]LockReleaseTokenPoolState, len(temps)) - for i, temp := range temps { - result, err := convertLockReleaseTokenPoolStateFromBCS(temp) - if err != nil { - return nil, fmt.Errorf("failed to convert element %d: %w", i, err) - } - results[i] = result + return results, nil + }) + bind.RegisterStructDecoder("lock_release_token_pool::lock_release_token_pool::RebalancerCap", func(data []byte) (interface{}, error) { + var result RebalancerCap + _, err := mystenbcs.Unmarshal(data, &result) + if err != nil { + return nil, err + } + return result, nil + }) + // Register vector decoder for RebalancerCap + bind.RegisterStructDecoder("vector", func(data []byte) (interface{}, error) { + var results []RebalancerCap + _, err := mystenbcs.Unmarshal(data, &results) + if err != nil { + return nil, err } return results, nil }) @@ -559,8 +541,8 @@ func (c *LockReleaseTokenPoolContract) SetChainRateLimiterConfig(ctx context.Con } // ProvideLiquidity executes the provide_liquidity Move function. -func (c *LockReleaseTokenPoolContract) ProvideLiquidity(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object, c_ bind.Object) (*models.SuiTransactionBlockResponse, error) { - encoded, err := c.lockReleaseTokenPoolEncoder.ProvideLiquidity(typeArgs, state, c_) +func (c *LockReleaseTokenPoolContract) ProvideLiquidity(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object, rebalancerCap bind.Object, c_ bind.Object) (*models.SuiTransactionBlockResponse, error) { + encoded, err := c.lockReleaseTokenPoolEncoder.ProvideLiquidity(typeArgs, state, rebalancerCap, c_) if err != nil { return nil, fmt.Errorf("failed to encode function call: %w", err) } @@ -569,8 +551,8 @@ func (c *LockReleaseTokenPoolContract) ProvideLiquidity(ctx context.Context, opt } // WithdrawLiquidity executes the withdraw_liquidity Move function. -func (c *LockReleaseTokenPoolContract) WithdrawLiquidity(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object, amount uint64) (*models.SuiTransactionBlockResponse, error) { - encoded, err := c.lockReleaseTokenPoolEncoder.WithdrawLiquidity(typeArgs, state, amount) +func (c *LockReleaseTokenPoolContract) WithdrawLiquidity(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object, rebalancerCap bind.Object, amount uint64) (*models.SuiTransactionBlockResponse, error) { + encoded, err := c.lockReleaseTokenPoolEncoder.WithdrawLiquidity(typeArgs, state, rebalancerCap, amount) if err != nil { return nil, fmt.Errorf("failed to encode function call: %w", err) } @@ -578,9 +560,9 @@ func (c *LockReleaseTokenPoolContract) WithdrawLiquidity(ctx context.Context, op return c.ExecuteTransaction(ctx, opts, encoded) } -// SetRebalancer executes the set_rebalancer Move function. -func (c *LockReleaseTokenPoolContract) SetRebalancer(ctx context.Context, opts *bind.CallOpts, typeArgs []string, ownerCap bind.Object, state bind.Object, rebalancer string) (*models.SuiTransactionBlockResponse, error) { - encoded, err := c.lockReleaseTokenPoolEncoder.SetRebalancer(typeArgs, ownerCap, state, rebalancer) +// GetBalance executes the get_balance Move function. +func (c *LockReleaseTokenPoolContract) GetBalance(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object) (*models.SuiTransactionBlockResponse, error) { + encoded, err := c.lockReleaseTokenPoolEncoder.GetBalance(typeArgs, state) if err != nil { return nil, fmt.Errorf("failed to encode function call: %w", err) } @@ -598,16 +580,6 @@ func (c *LockReleaseTokenPoolContract) GetRebalancer(ctx context.Context, opts * return c.ExecuteTransaction(ctx, opts, encoded) } -// GetBalance executes the get_balance Move function. -func (c *LockReleaseTokenPoolContract) GetBalance(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object) (*models.SuiTransactionBlockResponse, error) { - encoded, err := c.lockReleaseTokenPoolEncoder.GetBalance(typeArgs, state) - if err != nil { - return nil, fmt.Errorf("failed to encode function call: %w", err) - } - - return c.ExecuteTransaction(ctx, opts, encoded) -} - // Owner executes the owner Move function. func (c *LockReleaseTokenPoolContract) Owner(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object) (*models.SuiTransactionBlockResponse, error) { encoded, err := c.lockReleaseTokenPoolEncoder.Owner(typeArgs, state) @@ -728,16 +700,6 @@ func (c *LockReleaseTokenPoolContract) McmsRegisterUpgradeCap(ctx context.Contex return c.ExecuteTransaction(ctx, opts, encoded) } -// McmsSetRebalancer executes the mcms_set_rebalancer Move function. -func (c *LockReleaseTokenPoolContract) McmsSetRebalancer(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object, registry bind.Object, params bind.Object) (*models.SuiTransactionBlockResponse, error) { - encoded, err := c.lockReleaseTokenPoolEncoder.McmsSetRebalancer(typeArgs, state, registry, params) - if err != nil { - return nil, fmt.Errorf("failed to encode function call: %w", err) - } - - return c.ExecuteTransaction(ctx, opts, encoded) -} - // McmsSetAllowlistEnabled executes the mcms_set_allowlist_enabled Move function. func (c *LockReleaseTokenPoolContract) McmsSetAllowlistEnabled(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object, registry bind.Object, params bind.Object) (*models.SuiTransactionBlockResponse, error) { encoded, err := c.lockReleaseTokenPoolEncoder.McmsSetAllowlistEnabled(typeArgs, state, registry, params) @@ -1091,8 +1053,8 @@ func (d *LockReleaseTokenPoolDevInspect) GetAllowlist(ctx context.Context, opts // WithdrawLiquidity executes the withdraw_liquidity Move function using DevInspect to get return values. // // Returns: Coin -func (d *LockReleaseTokenPoolDevInspect) WithdrawLiquidity(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object, amount uint64) (any, error) { - encoded, err := d.contract.lockReleaseTokenPoolEncoder.WithdrawLiquidity(typeArgs, state, amount) +func (d *LockReleaseTokenPoolDevInspect) WithdrawLiquidity(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object, rebalancerCap bind.Object, amount uint64) (any, error) { + encoded, err := d.contract.lockReleaseTokenPoolEncoder.WithdrawLiquidity(typeArgs, state, rebalancerCap, amount) if err != nil { return nil, fmt.Errorf("failed to encode function call: %w", err) } @@ -1106,46 +1068,46 @@ func (d *LockReleaseTokenPoolDevInspect) WithdrawLiquidity(ctx context.Context, return results[0], nil } -// GetRebalancer executes the get_rebalancer Move function using DevInspect to get return values. +// GetBalance executes the get_balance Move function using DevInspect to get return values. // -// Returns: address -func (d *LockReleaseTokenPoolDevInspect) GetRebalancer(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object) (string, error) { - encoded, err := d.contract.lockReleaseTokenPoolEncoder.GetRebalancer(typeArgs, state) +// Returns: u64 +func (d *LockReleaseTokenPoolDevInspect) GetBalance(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object) (uint64, error) { + encoded, err := d.contract.lockReleaseTokenPoolEncoder.GetBalance(typeArgs, state) if err != nil { - return "", fmt.Errorf("failed to encode function call: %w", err) + return 0, fmt.Errorf("failed to encode function call: %w", err) } results, err := d.contract.Call(ctx, opts, encoded) if err != nil { - return "", err + return 0, err } if len(results) == 0 { - return "", fmt.Errorf("no return value") + return 0, fmt.Errorf("no return value") } - result, ok := results[0].(string) + result, ok := results[0].(uint64) if !ok { - return "", fmt.Errorf("unexpected return type: expected string, got %T", results[0]) + return 0, fmt.Errorf("unexpected return type: expected uint64, got %T", results[0]) } return result, nil } -// GetBalance executes the get_balance Move function using DevInspect to get return values. +// GetRebalancer executes the get_rebalancer Move function using DevInspect to get return values. // -// Returns: u64 -func (d *LockReleaseTokenPoolDevInspect) GetBalance(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object) (uint64, error) { - encoded, err := d.contract.lockReleaseTokenPoolEncoder.GetBalance(typeArgs, state) +// Returns: address +func (d *LockReleaseTokenPoolDevInspect) GetRebalancer(ctx context.Context, opts *bind.CallOpts, typeArgs []string, state bind.Object) (string, error) { + encoded, err := d.contract.lockReleaseTokenPoolEncoder.GetRebalancer(typeArgs, state) if err != nil { - return 0, fmt.Errorf("failed to encode function call: %w", err) + return "", fmt.Errorf("failed to encode function call: %w", err) } results, err := d.contract.Call(ctx, opts, encoded) if err != nil { - return 0, err + return "", err } if len(results) == 0 { - return 0, fmt.Errorf("no return value") + return "", fmt.Errorf("no return value") } - result, ok := results[0].(uint64) + result, ok := results[0].(string) if !ok { - return 0, fmt.Errorf("unexpected return type: expected uint64, got %T", results[0]) + return "", fmt.Errorf("unexpected return type: expected string, got %T", results[0]) } return result, nil } @@ -2105,16 +2067,18 @@ func (c lockReleaseTokenPoolEncoder) SetChainRateLimiterConfigWithArgs(typeArgs } // ProvideLiquidity encodes a call to the provide_liquidity Move function. -func (c lockReleaseTokenPoolEncoder) ProvideLiquidity(typeArgs []string, state bind.Object, c_ bind.Object) (*bind.EncodedCall, error) { +func (c lockReleaseTokenPoolEncoder) ProvideLiquidity(typeArgs []string, state bind.Object, rebalancerCap bind.Object, c_ bind.Object) (*bind.EncodedCall, error) { typeArgsList := typeArgs typeParamsList := []string{ "T", } return c.EncodeCallArgsWithGenerics("provide_liquidity", typeArgsList, typeParamsList, []string{ "&mut LockReleaseTokenPoolState", + "&RebalancerCap", "Coin", }, []any{ state, + rebalancerCap, c_, }, nil) } @@ -2124,6 +2088,7 @@ func (c lockReleaseTokenPoolEncoder) ProvideLiquidity(typeArgs []string, state b func (c lockReleaseTokenPoolEncoder) ProvideLiquidityWithArgs(typeArgs []string, args ...any) (*bind.EncodedCall, error) { expectedParams := []string{ "&mut LockReleaseTokenPoolState", + "&RebalancerCap", "Coin", } @@ -2138,16 +2103,18 @@ func (c lockReleaseTokenPoolEncoder) ProvideLiquidityWithArgs(typeArgs []string, } // WithdrawLiquidity encodes a call to the withdraw_liquidity Move function. -func (c lockReleaseTokenPoolEncoder) WithdrawLiquidity(typeArgs []string, state bind.Object, amount uint64) (*bind.EncodedCall, error) { +func (c lockReleaseTokenPoolEncoder) WithdrawLiquidity(typeArgs []string, state bind.Object, rebalancerCap bind.Object, amount uint64) (*bind.EncodedCall, error) { typeArgsList := typeArgs typeParamsList := []string{ "T", } return c.EncodeCallArgsWithGenerics("withdraw_liquidity", typeArgsList, typeParamsList, []string{ "&mut LockReleaseTokenPoolState", + "&RebalancerCap", "u64", }, []any{ state, + rebalancerCap, amount, }, []string{ "Coin", @@ -2159,6 +2126,7 @@ func (c lockReleaseTokenPoolEncoder) WithdrawLiquidity(typeArgs []string, state func (c lockReleaseTokenPoolEncoder) WithdrawLiquidityWithArgs(typeArgs []string, args ...any) (*bind.EncodedCall, error) { expectedParams := []string{ "&mut LockReleaseTokenPoolState", + "&RebalancerCap", "u64", } @@ -2174,30 +2142,26 @@ func (c lockReleaseTokenPoolEncoder) WithdrawLiquidityWithArgs(typeArgs []string }) } -// SetRebalancer encodes a call to the set_rebalancer Move function. -func (c lockReleaseTokenPoolEncoder) SetRebalancer(typeArgs []string, ownerCap bind.Object, state bind.Object, rebalancer string) (*bind.EncodedCall, error) { +// GetBalance encodes a call to the get_balance Move function. +func (c lockReleaseTokenPoolEncoder) GetBalance(typeArgs []string, state bind.Object) (*bind.EncodedCall, error) { typeArgsList := typeArgs typeParamsList := []string{ "T", } - return c.EncodeCallArgsWithGenerics("set_rebalancer", typeArgsList, typeParamsList, []string{ - "&OwnerCap", - "&mut LockReleaseTokenPoolState", - "address", + return c.EncodeCallArgsWithGenerics("get_balance", typeArgsList, typeParamsList, []string{ + "&LockReleaseTokenPoolState", }, []any{ - ownerCap, state, - rebalancer, - }, nil) + }, []string{ + "u64", + }) } -// SetRebalancerWithArgs encodes a call to the set_rebalancer Move function using arbitrary arguments. +// GetBalanceWithArgs encodes a call to the get_balance Move function using arbitrary arguments. // This method allows passing both regular values and transaction.Argument values for PTB chaining. -func (c lockReleaseTokenPoolEncoder) SetRebalancerWithArgs(typeArgs []string, args ...any) (*bind.EncodedCall, error) { +func (c lockReleaseTokenPoolEncoder) GetBalanceWithArgs(typeArgs []string, args ...any) (*bind.EncodedCall, error) { expectedParams := []string{ - "&OwnerCap", - "&mut LockReleaseTokenPoolState", - "address", + "&LockReleaseTokenPoolState", } if len(args) != len(expectedParams) { @@ -2207,7 +2171,9 @@ func (c lockReleaseTokenPoolEncoder) SetRebalancerWithArgs(typeArgs []string, ar typeParamsList := []string{ "T", } - return c.EncodeCallArgsWithGenerics("set_rebalancer", typeArgsList, typeParamsList, expectedParams, args, nil) + return c.EncodeCallArgsWithGenerics("get_balance", typeArgsList, typeParamsList, expectedParams, args, []string{ + "u64", + }) } // GetRebalancer encodes a call to the get_rebalancer Move function. @@ -2244,40 +2210,6 @@ func (c lockReleaseTokenPoolEncoder) GetRebalancerWithArgs(typeArgs []string, ar }) } -// GetBalance encodes a call to the get_balance Move function. -func (c lockReleaseTokenPoolEncoder) GetBalance(typeArgs []string, state bind.Object) (*bind.EncodedCall, error) { - typeArgsList := typeArgs - typeParamsList := []string{ - "T", - } - return c.EncodeCallArgsWithGenerics("get_balance", typeArgsList, typeParamsList, []string{ - "&LockReleaseTokenPoolState", - }, []any{ - state, - }, []string{ - "u64", - }) -} - -// GetBalanceWithArgs encodes a call to the get_balance Move function using arbitrary arguments. -// This method allows passing both regular values and transaction.Argument values for PTB chaining. -func (c lockReleaseTokenPoolEncoder) GetBalanceWithArgs(typeArgs []string, args ...any) (*bind.EncodedCall, error) { - expectedParams := []string{ - "&LockReleaseTokenPoolState", - } - - if len(args) != len(expectedParams) { - return nil, fmt.Errorf("expected %d arguments, got %d", len(expectedParams), len(args)) - } - typeArgsList := typeArgs - typeParamsList := []string{ - "T", - } - return c.EncodeCallArgsWithGenerics("get_balance", typeArgsList, typeParamsList, expectedParams, args, []string{ - "u64", - }) -} - // Owner encodes a call to the owner Move function. func (c lockReleaseTokenPoolEncoder) Owner(typeArgs []string, state bind.Object) (*bind.EncodedCall, error) { typeArgsList := typeArgs @@ -2690,42 +2622,6 @@ func (c lockReleaseTokenPoolEncoder) McmsRegisterUpgradeCapWithArgs(args ...any) return c.EncodeCallArgsWithGenerics("mcms_register_upgrade_cap", typeArgsList, typeParamsList, expectedParams, args, nil) } -// McmsSetRebalancer encodes a call to the mcms_set_rebalancer Move function. -func (c lockReleaseTokenPoolEncoder) McmsSetRebalancer(typeArgs []string, state bind.Object, registry bind.Object, params bind.Object) (*bind.EncodedCall, error) { - typeArgsList := typeArgs - typeParamsList := []string{ - "T", - } - return c.EncodeCallArgsWithGenerics("mcms_set_rebalancer", typeArgsList, typeParamsList, []string{ - "&mut LockReleaseTokenPoolState", - "&mut Registry", - "ExecutingCallbackParams", - }, []any{ - state, - registry, - params, - }, nil) -} - -// McmsSetRebalancerWithArgs encodes a call to the mcms_set_rebalancer Move function using arbitrary arguments. -// This method allows passing both regular values and transaction.Argument values for PTB chaining. -func (c lockReleaseTokenPoolEncoder) McmsSetRebalancerWithArgs(typeArgs []string, args ...any) (*bind.EncodedCall, error) { - expectedParams := []string{ - "&mut LockReleaseTokenPoolState", - "&mut Registry", - "ExecutingCallbackParams", - } - - if len(args) != len(expectedParams) { - return nil, fmt.Errorf("expected %d arguments, got %d", len(expectedParams), len(args)) - } - typeArgsList := typeArgs - typeParamsList := []string{ - "T", - } - return c.EncodeCallArgsWithGenerics("mcms_set_rebalancer", typeArgsList, typeParamsList, expectedParams, args, nil) -} - // McmsSetAllowlistEnabled encodes a call to the mcms_set_allowlist_enabled Move function. func (c lockReleaseTokenPoolEncoder) McmsSetAllowlistEnabled(typeArgs []string, state bind.Object, registry bind.Object, params bind.Object) (*bind.EncodedCall, error) { typeArgsList := typeArgs diff --git a/contracts/ccip/ccip_token_pools/lock_release_token_pool/sources/lock_release_token_pool.move b/contracts/ccip/ccip_token_pools/lock_release_token_pool/sources/lock_release_token_pool.move index e4087e09b..f9adc4c65 100644 --- a/contracts/ccip/ccip_token_pools/lock_release_token_pool/sources/lock_release_token_pool.move +++ b/contracts/ccip/ccip_token_pools/lock_release_token_pool/sources/lock_release_token_pool.move @@ -20,18 +20,21 @@ public struct LockReleaseTokenPoolState has key { id: UID, token_pool_state: TokenPoolState, reserve: Coin, - /// the rebalancer is the address that can manage liquidity of the token pool - rebalancer: address, + rebalancer_cap_id: ID, ownable_state: OwnableState, } +public struct RebalancerCap has key, store { + id: UID, +} + const CLOCK_ADDRESS: address = @0x6; const EInvalidArguments: u64 = 1; const ETokenPoolBalanceTooLow: u64 = 2; -const EUnauthorized: u64 = 3; -const EInvalidOwnerCap: u64 = 4; -const EInvalidFunction: u64 = 5; +const EInvalidOwnerCap: u64 = 3; +const EInvalidFunction: u64 = 4; +const EInvalidRebalancerCap: u64 = 5; const EPoolStillRegistered: u64 = 6; // ================================================================ @@ -76,7 +79,11 @@ fun initialize_internal( let coin_metadata_address: address = object::id_to_address(&object::id(coin_metadata)); let (ownable_state, owner_cap) = ownable::new(ctx); - let mut lock_release_token_pool = LockReleaseTokenPoolState { + let rebalancer_cap = RebalancerCap { + id: object::new(ctx), + }; + + let lock_release_token_pool = LockReleaseTokenPoolState { id: object::new(ctx), token_pool_state: token_pool::initialize( coin_metadata_address, @@ -85,14 +92,14 @@ fun initialize_internal( ctx, ), reserve: coin::zero(ctx), - rebalancer: @0x0, + rebalancer_cap_id: object::id(&rebalancer_cap), ownable_state, }; - set_rebalancer_internal(&mut lock_release_token_pool, rebalancer); let token_pool_state_address = object::uid_to_address(&lock_release_token_pool.id); transfer::share_object(lock_release_token_pool); transfer::public_transfer(owner_cap, ctx.sender()); + transfer::public_transfer(rebalancer_cap, rebalancer); token_pool_state_address } @@ -445,58 +452,53 @@ public fun set_chain_rate_limiter_config( public fun provide_liquidity( state: &mut LockReleaseTokenPoolState, + rebalancer_cap: &RebalancerCap, c: Coin, - ctx: &mut TxContext, + _: &mut TxContext, ) { - assert!(ctx.sender() == state.rebalancer, EUnauthorized); + assert!(object::id(rebalancer_cap) == state.rebalancer_cap_id, EInvalidRebalancerCap); let amount = c.value(); coin::join(&mut state.reserve, c); token_pool::emit_liquidity_added( &state.token_pool_state, - state.rebalancer, + object::id_to_address(&state.rebalancer_cap_id), amount, ); } public fun withdraw_liquidity( state: &mut LockReleaseTokenPoolState, + rebalancer_cap: &RebalancerCap, amount: u64, ctx: &mut TxContext, ): Coin { - assert!(ctx.sender() == state.rebalancer, EUnauthorized); + assert!(object::id(rebalancer_cap) == state.rebalancer_cap_id, EInvalidRebalancerCap); assert!(state.reserve.value() >= amount, ETokenPoolBalanceTooLow); - token_pool::emit_liquidity_removed(&state.token_pool_state, state.rebalancer, amount); + token_pool::emit_liquidity_removed( + &state.token_pool_state, + object::id_to_address(&state.rebalancer_cap_id), + amount, + ); coin::split(&mut state.reserve, amount, ctx) } -public fun set_rebalancer( - owner_cap: &OwnerCap, - state: &mut LockReleaseTokenPoolState, - rebalancer: address, -) { - assert!(object::id(owner_cap) == ownable::owner_cap_id(&state.ownable_state), EInvalidOwnerCap); - set_rebalancer_internal(state, rebalancer); -} - -fun set_rebalancer_internal(state: &mut LockReleaseTokenPoolState, rebalancer: address) { - token_pool::emit_rebalancer_set( - &state.token_pool_state, - state.rebalancer, - rebalancer, - ); - state.rebalancer = rebalancer; +public fun get_balance(state: &LockReleaseTokenPoolState): u64 { + state.reserve.value() } public fun get_rebalancer(state: &LockReleaseTokenPoolState): address { - state.rebalancer + object::id_to_address(&state.rebalancer_cap_id) } -public fun get_balance(state: &LockReleaseTokenPoolState): u64 { - state.reserve.value() +#[test_only] +public fun create_fake_rebalancer_cap(ctx: &mut TxContext): RebalancerCap { + RebalancerCap { + id: object::new(ctx), + } } // ================================================================ @@ -612,33 +614,6 @@ public fun mcms_register_upgrade_cap( public struct McmsCallback has drop {} -public fun mcms_set_rebalancer( - state: &mut LockReleaseTokenPoolState, - registry: &mut Registry, - params: ExecutingCallbackParams, -) { - let (owner_cap, function, data) = mcms_registry::get_callback_params_with_caps< - McmsCallback, - OwnerCap, - >( - registry, - McmsCallback {}, - params, - ); - assert!(function == string::utf8(b"set_rebalancer"), EInvalidFunction); - - let mut stream = bcs_stream::new(data); - bcs_stream::validate_obj_addrs( - vector[object::id_address(owner_cap), object::id_address(state)], - &mut stream, - ); - - let rebalancer = bcs_stream::deserialize_address(&mut stream); - bcs_stream::assert_is_consumed(&stream); - - set_rebalancer(owner_cap, state, rebalancer); -} - public fun mcms_set_allowlist_enabled( state: &mut LockReleaseTokenPoolState, registry: &mut Registry, @@ -1082,7 +1057,7 @@ public fun destroy_token_pool( id: state_id, token_pool_state, reserve, - rebalancer: _, + rebalancer_cap_id: _, ownable_state, } = state; token_pool::destroy_token_pool(token_pool_state); diff --git a/contracts/ccip/ccip_token_pools/lock_release_token_pool/tests/lock_release_token_pool_ownable_test.move b/contracts/ccip/ccip_token_pools/lock_release_token_pool/tests/lock_release_token_pool_ownable_test.move index 469444907..2ef5c3a83 100644 --- a/contracts/ccip/ccip_token_pools/lock_release_token_pool/tests/lock_release_token_pool_ownable_test.move +++ b/contracts/ccip/ccip_token_pools/lock_release_token_pool/tests/lock_release_token_pool_ownable_test.move @@ -256,10 +256,7 @@ public fun test_accept_ownership_already_accepted() { public fun test_ownable_functions_with_owner_cap_validation() { let (mut env, owner_cap) = setup(); - // Test that owner cap validation works in other functions - // These should succeed because we have the correct owner cap - lock_release_token_pool::set_rebalancer(&owner_cap, &mut env.state, @0x999); - assert!(lock_release_token_pool::get_rebalancer(&env.state) == @0x999); + assert!(lock_release_token_pool::get_rebalancer(&env.state) != @0x0); lock_release_token_pool::set_allowlist_enabled(&mut env.state, &owner_cap, true); assert!(lock_release_token_pool::get_allowlist_enabled(&env.state) == true); diff --git a/contracts/ccip/ccip_token_pools/lock_release_token_pool/tests/lock_release_token_pool_tests.move b/contracts/ccip/ccip_token_pools/lock_release_token_pool/tests/lock_release_token_pool_tests.move index d60489099..17cf0a3e5 100644 --- a/contracts/ccip/ccip_token_pools/lock_release_token_pool/tests/lock_release_token_pool_tests.move +++ b/contracts/ccip/ccip_token_pools/lock_release_token_pool/tests/lock_release_token_pool_tests.move @@ -8,7 +8,11 @@ use ccip::rmn_remote; use ccip::state_object::{Self, CCIPObjectRef}; use ccip::token_admin_registry; use ccip::upgrade_registry; -use lock_release_token_pool::lock_release_token_pool::{Self, LockReleaseTokenPoolState}; +use lock_release_token_pool::lock_release_token_pool::{ + Self, + LockReleaseTokenPoolState, + RebalancerCap +}; use lock_release_token_pool::ownable::OwnerCap; use std::ascii; use std::bcs; @@ -111,7 +115,7 @@ public fun test_initialize_and_basic_functionality() { // Test basic getters assert!(lock_release_token_pool::get_token_decimals(&pool_state) == Decimals); - assert!(lock_release_token_pool::get_rebalancer(&pool_state) == REBALANCER); + assert!(lock_release_token_pool::get_rebalancer(&pool_state) != @0x0); assert!( lock_release_token_pool::get_balance(&pool_state) == 0, ); @@ -285,6 +289,7 @@ public fun test_liquidity_management() { LockReleaseTokenPoolState, >(); let liquidity_coin = scenario.take_from_sender>(); + let rebalancer_cap = scenario.take_from_sender(); let initial_balance = lock_release_token_pool::get_balance( &pool_state, @@ -292,7 +297,12 @@ public fun test_liquidity_management() { let liquidity_amount = coin::value(&liquidity_coin); // Provide liquidity - lock_release_token_pool::provide_liquidity(&mut pool_state, liquidity_coin, scenario.ctx()); + lock_release_token_pool::provide_liquidity( + &mut pool_state, + &rebalancer_cap, + liquidity_coin, + scenario.ctx(), + ); // Verify balance increased let new_balance = lock_release_token_pool::get_balance( @@ -300,6 +310,7 @@ public fun test_liquidity_management() { ); assert!(new_balance == initial_balance + liquidity_amount); + transfer::public_transfer(rebalancer_cap, REBALANCER); test_scenario::return_shared(pool_state); }; @@ -309,6 +320,7 @@ public fun test_liquidity_management() { let mut pool_state = scenario.take_shared< LockReleaseTokenPoolState, >(); + let rebalancer_cap = scenario.take_from_sender(); let withdraw_amount = 500000; let initial_balance = lock_release_token_pool::get_balance( @@ -320,6 +332,7 @@ public fun test_liquidity_management() { LOCK_RELEASE_TOKEN_POOL_TESTS, >( &mut pool_state, + &rebalancer_cap, withdraw_amount, scenario.ctx(), ); @@ -332,6 +345,7 @@ public fun test_liquidity_management() { assert!(new_balance == initial_balance - withdraw_amount); transfer::public_transfer(withdrawn_coin, scenario.ctx().sender()); + transfer::public_transfer(rebalancer_cap, REBALANCER); test_scenario::return_shared(pool_state); }; @@ -375,29 +389,12 @@ public fun test_rebalancer_management() { transfer::public_transfer(treasury_cap, ctx.sender()); }; - scenario.next_tx(TOKEN_ADMIN); + // Verify that the rebalancer cap was transferred to the rebalancer address + scenario.next_tx(REBALANCER); { - let mut pool_state = scenario.take_shared< - LockReleaseTokenPoolState, - >(); - let owner_cap = scenario.take_from_sender(); - - // Verify initial rebalancer - assert!(lock_release_token_pool::get_rebalancer(&pool_state) == REBALANCER); - - // Set new rebalancer - let new_rebalancer = @0x999; - lock_release_token_pool::set_rebalancer( - &owner_cap, - &mut pool_state, - new_rebalancer, - ); - - // Verify rebalancer was updated - assert!(lock_release_token_pool::get_rebalancer(&pool_state) == new_rebalancer); - - scenario.return_to_sender(owner_cap); - test_scenario::return_shared(pool_state); + let rebalancer_cap = scenario.take_from_sender(); + // Return the cap to the rebalancer to keep state consistent + transfer::public_transfer(rebalancer_cap, REBALANCER); }; transfer::public_transfer(ccip_owner_cap, @0x0); @@ -599,7 +596,7 @@ public fun test_allowlist_management() { } #[test] -#[expected_failure(abort_code = lock_release_token_pool::EUnauthorized)] +#[expected_failure(abort_code = lock_release_token_pool::EInvalidRebalancerCap)] public fun test_unauthorized_liquidity_provision() { let mut scenario = create_test_scenario(TOKEN_ADMIN); @@ -646,8 +643,17 @@ public fun test_unauthorized_liquidity_provision() { >(); let liquidity_coin = scenario.take_from_sender>(); - // This should fail with EUnauthorized - lock_release_token_pool::provide_liquidity(&mut pool_state, liquidity_coin, scenario.ctx()); + // This should fail with EInvalidRebalancerCap using a fake cap + let fake_rebalancer_cap = lock_release_token_pool::create_fake_rebalancer_cap(scenario.ctx()); + lock_release_token_pool::provide_liquidity( + &mut pool_state, + &fake_rebalancer_cap, + liquidity_coin, + scenario.ctx(), + ); + + // Consume the fake cap to avoid linear resource leak + transfer::public_transfer(fake_rebalancer_cap, @0x0); test_scenario::return_shared(pool_state); }; @@ -705,7 +711,14 @@ public fun test_withdraw_exceeds_balance() { >(); let liquidity_coin = scenario.take_from_sender>(); - lock_release_token_pool::provide_liquidity(&mut pool_state, liquidity_coin, scenario.ctx()); + let rebalancer_cap = scenario.take_from_sender(); + lock_release_token_pool::provide_liquidity( + &mut pool_state, + &rebalancer_cap, + liquidity_coin, + scenario.ctx(), + ); + transfer::public_transfer(rebalancer_cap, REBALANCER); test_scenario::return_shared(pool_state); }; @@ -716,17 +729,20 @@ public fun test_withdraw_exceeds_balance() { let mut pool_state = scenario.take_shared< LockReleaseTokenPoolState, >(); + let rebalancer_cap = scenario.take_from_sender(); // Try to withdraw 200k tokens when only 100k are available let withdrawn_coin = lock_release_token_pool::withdraw_liquidity< LOCK_RELEASE_TOKEN_POOL_TESTS, >( &mut pool_state, + &rebalancer_cap, 200000, // More than available scenario.ctx(), ); transfer::public_transfer(withdrawn_coin, scenario.ctx().sender()); + transfer::public_transfer(rebalancer_cap, REBALANCER); test_scenario::return_shared(pool_state); }; @@ -736,7 +752,7 @@ public fun test_withdraw_exceeds_balance() { } #[test] -#[expected_failure(abort_code = lock_release_token_pool::EUnauthorized)] +#[expected_failure(abort_code = lock_release_token_pool::EInvalidRebalancerCap)] public fun test_unauthorized_withdrawal() { let mut scenario = create_test_scenario(TOKEN_ADMIN); @@ -783,7 +799,14 @@ public fun test_unauthorized_withdrawal() { >(); let liquidity_coin = scenario.take_from_sender>(); - lock_release_token_pool::provide_liquidity(&mut pool_state, liquidity_coin, scenario.ctx()); + let rebalancer_cap = scenario.take_from_sender(); + lock_release_token_pool::provide_liquidity( + &mut pool_state, + &rebalancer_cap, + liquidity_coin, + scenario.ctx(), + ); + transfer::public_transfer(rebalancer_cap, REBALANCER); test_scenario::return_shared(pool_state); }; @@ -795,11 +818,13 @@ public fun test_unauthorized_withdrawal() { LockReleaseTokenPoolState, >(); - // This should fail with EUnauthorized + // This should fail with EInvalidRebalancerCap using a fake cap + let fake_rebalancer_cap = lock_release_token_pool::create_fake_rebalancer_cap(scenario.ctx()); let withdrawn_coin = lock_release_token_pool::withdraw_liquidity< LOCK_RELEASE_TOKEN_POOL_TESTS, >( &mut pool_state, + &fake_rebalancer_cap, 100000, scenario.ctx(), ); @@ -807,6 +832,8 @@ public fun test_unauthorized_withdrawal() { // Transfer the coin to consume it transfer::public_transfer(withdrawn_coin, scenario.ctx().sender()); + // Consume the fake cap to avoid linear resource leak + transfer::public_transfer(fake_rebalancer_cap, @0x0); test_scenario::return_shared(pool_state); }; @@ -861,8 +888,15 @@ public fun test_destroy_token_pool() { LockReleaseTokenPoolState, >(); let liquidity_coin = scenario.take_from_sender>(); + let rebalancer_cap = scenario.take_from_sender(); - lock_release_token_pool::provide_liquidity(&mut pool_state, liquidity_coin, scenario.ctx()); + lock_release_token_pool::provide_liquidity( + &mut pool_state, + &rebalancer_cap, + liquidity_coin, + scenario.ctx(), + ); + transfer::public_transfer(rebalancer_cap, REBALANCER); test_scenario::return_shared(pool_state); }; @@ -1304,7 +1338,14 @@ public fun test_release_or_mint_functionality() { >(); let liquidity_coin = scenario.take_from_sender>(); - lock_release_token_pool::provide_liquidity(&mut pool_state, liquidity_coin, scenario.ctx()); + let rebalancer_cap = scenario.take_from_sender(); + lock_release_token_pool::provide_liquidity( + &mut pool_state, + &rebalancer_cap, + liquidity_coin, + scenario.ctx(), + ); + transfer::public_transfer(rebalancer_cap, REBALANCER); test_scenario::return_shared(pool_state); }; diff --git a/deployment/ops/ccip_lock_release_token_pool/op_lock_release_token_pool.go b/deployment/ops/ccip_lock_release_token_pool/op_lock_release_token_pool.go index 2e2bf77b7..ca965f9a3 100644 --- a/deployment/ops/ccip_lock_release_token_pool/op_lock_release_token_pool.go +++ b/deployment/ops/ccip_lock_release_token_pool/op_lock_release_token_pool.go @@ -15,8 +15,9 @@ import ( // LRTP -- INITIALIZE type LockReleaseTokenPoolInitializeObjects struct { - OwnerCapObjectId string - StateObjectId string + OwnerCapObjectId string + StateObjectId string + RebalancerCapObjectId string } type LockReleaseTokenPoolInitializeInput struct { @@ -53,8 +54,9 @@ var initLRTPHandler = func(b cld_ops.Bundle, deps sui_ops.OpTxDeps, input LockRe obj1, err1 := bind.FindObjectIdFromPublishTx(*tx, "ownable", "OwnerCap") obj2, err2 := bind.FindObjectIdFromPublishTx(*tx, "lock_release_token_pool", "LockReleaseTokenPoolState") + obj3, err3 := bind.FindObjectIdFromPublishTx(*tx, "lock_release_token_pool", "RebalancerCap") - if err1 != nil || err2 != nil { + if err1 != nil || err2 != nil || err3 != nil { return sui_ops.OpTxResult[LockReleaseTokenPoolInitializeObjects]{}, fmt.Errorf("failed to find object IDs in tx: %w", err) } @@ -62,8 +64,9 @@ var initLRTPHandler = func(b cld_ops.Bundle, deps sui_ops.OpTxDeps, input LockRe Digest: tx.Digest, PackageId: input.LockReleasePackageId, Objects: LockReleaseTokenPoolInitializeObjects{ - OwnerCapObjectId: obj1, - StateObjectId: obj2, + OwnerCapObjectId: obj1, + StateObjectId: obj2, + RebalancerCapObjectId: obj3, }, }, err } @@ -253,14 +256,15 @@ var LockReleaseTokenPoolSetChainRateLimiterOp = cld_ops.NewOperation( ) // LRTP -- provide_liquidity -type LockReleaseTokenPoolProviderLiquidityInput struct { +type LockReleaseTokenPoolProvideLiquidityInput struct { LockReleaseTokenPoolPackageId string CoinObjectTypeArg string StateObjectId string + RebalancerCapObjectId string Coin string } -var providerLiquidityHandler = func(b cld_ops.Bundle, deps sui_ops.OpTxDeps, input LockReleaseTokenPoolProviderLiquidityInput) (output sui_ops.OpTxResult[NoObjects], err error) { +var provideLiquidityHandler = func(b cld_ops.Bundle, deps sui_ops.OpTxDeps, input LockReleaseTokenPoolProvideLiquidityInput) (output sui_ops.OpTxResult[NoObjects], err error) { contract, err := module_lock_release_token_pool.NewLockReleaseTokenPool(input.LockReleaseTokenPoolPackageId, deps.Client) if err != nil { return sui_ops.OpTxResult[NoObjects]{}, fmt.Errorf("failed to create lock release contract: %w", err) @@ -273,6 +277,7 @@ var providerLiquidityHandler = func(b cld_ops.Bundle, deps sui_ops.OpTxDeps, inp opts, []string{input.CoinObjectTypeArg}, bind.Object{Id: input.StateObjectId}, + bind.Object{Id: input.RebalancerCapObjectId}, bind.Object{Id: input.Coin}, ) if err != nil { @@ -286,11 +291,11 @@ var providerLiquidityHandler = func(b cld_ops.Bundle, deps sui_ops.OpTxDeps, inp }, err } -var LockReleaseTokenPoolProviderLiquidityOp = cld_ops.NewOperation( +var LockReleaseTokenPoolProvideLiquidityOp = cld_ops.NewOperation( sui_ops.NewSuiOperationName("ccip", "lock_release_token_pool", "provide_liquidity"), semver.MustParse("0.1.0"), "Provide liquidity CCIP Lock Release Token Pool contract", - providerLiquidityHandler, + provideLiquidityHandler, ) // LRTP -- add_remote_pool @@ -429,72 +434,6 @@ var LockReleaseTokenPoolSetPoolOp = cld_ops.NewOperation( setPoolHandler, ) -// LRTP -- set_rebalancer -type LockReleaseTokenPoolSetRebalancerInput struct { - LockReleaseTokenPoolPackageId string - CoinObjectTypeArg string - StateObjectId string - OwnerCap string - Rebalancer string -} - -var setRebalancerHandler = func(b cld_ops.Bundle, deps sui_ops.OpTxDeps, input LockReleaseTokenPoolSetRebalancerInput) (output sui_ops.OpTxResult[NoObjects], err error) { - contract, err := module_lock_release_token_pool.NewLockReleaseTokenPool(input.LockReleaseTokenPoolPackageId, deps.Client) - if err != nil { - return sui_ops.OpTxResult[NoObjects]{}, fmt.Errorf("failed to create lock release token pool contract: %w", err) - } - - encodedCall, err := contract.Encoder().SetRebalancer( - []string{input.CoinObjectTypeArg}, - bind.Object{Id: input.OwnerCap}, - bind.Object{Id: input.StateObjectId}, - input.Rebalancer, - ) - if err != nil { - return sui_ops.OpTxResult[NoObjects]{}, fmt.Errorf("failed to encode SetRebalancer call: %w", err) - } - call, err := sui_ops.ToTransactionCallWithTypeArgs(encodedCall, input.StateObjectId, []string{input.CoinObjectTypeArg}) - if err != nil { - return sui_ops.OpTxResult[NoObjects]{}, fmt.Errorf("failed to convert encoded call to TransactionCall: %w", err) - } - if deps.Signer == nil { - b.Logger.Infow("Skipping execution of SetRebalancer on LockReleaseTokenPool as per no Signer provided") - return sui_ops.OpTxResult[NoObjects]{ - Digest: "", - PackageId: input.LockReleaseTokenPoolPackageId, - Objects: NoObjects{}, - Call: call, - }, nil - } - - opts := deps.GetCallOpts() - opts.Signer = deps.Signer - tx, err := contract.Bound().ExecuteTransaction( - b.GetContext(), - opts, - encodedCall, - ) - if err != nil { - return sui_ops.OpTxResult[NoObjects]{}, fmt.Errorf("failed to execute lock release token pool set rebalancer: %w", err) - } - - b.Logger.Infow("SetRebalancer on LockReleaseTokenPool", "LockReleaseTokenPool PackageId:", input.LockReleaseTokenPoolPackageId, "Rebalancer:", input.Rebalancer) - - return sui_ops.OpTxResult[NoObjects]{ - Digest: tx.Digest, - PackageId: input.LockReleaseTokenPoolPackageId, - Objects: NoObjects{}, - Call: call, - }, err -} - -var LockReleaseTokenPoolSetRebalancerOp = cld_ops.NewOperation( - sui_ops.NewSuiOperationName("ccip", "lock_release_token_pool", "set_rebalancer"), - semver.MustParse("0.1.0"), - "Sets the rebalancer in the CCIP LockRelease Token Pool contract", - setRebalancerHandler, -) - // LRTP -- set_allowlist_enabled type LockReleaseTokenPoolSetAllowlistEnabledInput struct { LockReleaseTokenPoolPackageId string diff --git a/deployment/ops/ccip_lock_release_token_pool/op_registry.go b/deployment/ops/ccip_lock_release_token_pool/op_registry.go index f91b595be..448975a83 100644 --- a/deployment/ops/ccip_lock_release_token_pool/op_registry.go +++ b/deployment/ops/ccip_lock_release_token_pool/op_registry.go @@ -14,10 +14,9 @@ var AllOperationsLockReleaseTP = []cld_ops.Operation[any, any, any]{ *LockReleaseTokenPoolInitializeOp.AsUntyped(), *LockReleaseTokenPoolApplyChainUpdatesOp.AsUntyped(), *LockReleaseTokenPoolSetChainRateLimiterOp.AsUntyped(), - *LockReleaseTokenPoolProviderLiquidityOp.AsUntyped(), + *LockReleaseTokenPoolProvideLiquidityOp.AsUntyped(), *LockReleaseTokenPoolAddRemotePoolOp.AsUntyped(), *LockReleaseTokenPoolSetPoolOp.AsUntyped(), - *LockReleaseTokenPoolSetRebalancerOp.AsUntyped(), *LockReleaseTokenPoolSetAllowlistEnabledOp.AsUntyped(), *LockReleaseTokenPoolApplyAllowlistUpdatesOp.AsUntyped(), *LockReleaseTokenPoolRemoveRemotePoolOp.AsUntyped(), diff --git a/deployment/ops/ccip_lock_release_token_pool/seq_deploy_and_init.go b/deployment/ops/ccip_lock_release_token_pool/seq_deploy_and_init.go index 160861f2f..ac922f0f6 100644 --- a/deployment/ops/ccip_lock_release_token_pool/seq_deploy_and_init.go +++ b/deployment/ops/ccip_lock_release_token_pool/seq_deploy_and_init.go @@ -9,8 +9,9 @@ import ( ) type DeployLockReleaseTokenPoolObjects struct { - OwnerCapObjectId string - StateObjectId string + OwnerCapObjectId string + StateObjectId string + RebalancerCapObjectId string } type DeployLockReleaseTokenPoolOutput struct { @@ -128,8 +129,9 @@ var DeployAndInitLockReleaseTokenPoolSequence = cld_ops.NewSequence( return DeployLockReleaseTokenPoolOutput{ LockReleaseTPPackageID: deployReport.Output.PackageId, Objects: DeployLockReleaseTokenPoolObjects{ - OwnerCapObjectId: initReport.Output.Objects.OwnerCapObjectId, - StateObjectId: initReport.Output.Objects.StateObjectId, + OwnerCapObjectId: initReport.Output.Objects.OwnerCapObjectId, + StateObjectId: initReport.Output.Objects.StateObjectId, + RebalancerCapObjectId: initReport.Output.Objects.RebalancerCapObjectId, }, }, nil }, diff --git a/integration-tests/mcms/token_pool_test.go b/integration-tests/mcms/token_pool_test.go index a6edc55f6..15a8c0c08 100644 --- a/integration-tests/mcms/token_pool_test.go +++ b/integration-tests/mcms/token_pool_test.go @@ -297,7 +297,6 @@ func RunLnRConfigOpsTokenPoolProposal(s *TokenPoolTestSuite) { lnrProposalInput := mcmsops.ProposalGenerateInput{ Defs: []cld_ops.Definition{ // lnr config ops - lockreleasetokenpoolops.LockReleaseTokenPoolSetRebalancerOp.Def(), lockreleasetokenpoolops.LockReleaseTokenPoolSetAllowlistEnabledOp.Def(), lockreleasetokenpoolops.LockReleaseTokenPoolApplyAllowlistUpdatesOp.Def(), lockreleasetokenpoolops.LockReleaseTokenPoolApplyChainUpdatesOp.Def(), @@ -308,13 +307,6 @@ func RunLnRConfigOpsTokenPoolProposal(s *TokenPoolTestSuite) { }, Inputs: []any{ // lnr config ops - lockreleasetokenpoolops.LockReleaseTokenPoolSetRebalancerInput{ - LockReleaseTokenPoolPackageId: s.lnrPackageId, - CoinObjectTypeArg: fmt.Sprintf("%s::link::LINK", s.lnrTokenPackageId), - StateObjectId: s.lnrObjects.StateObjectId, - OwnerCap: s.lnrObjects.OwnerCapObjectId, - Rebalancer: "0x9999000011112222333344445555666677778888", - }, lockreleasetokenpoolops.LockReleaseTokenPoolSetAllowlistEnabledInput{ LockReleaseTokenPoolPackageId: s.lnrPackageId, CoinObjectTypeArg: fmt.Sprintf("%s::link::LINK", s.lnrTokenPackageId), diff --git a/integration-tests/onramp/environment/token_pools.go b/integration-tests/onramp/environment/token_pools.go index aa42c5eb5..71366d499 100644 --- a/integration-tests/onramp/environment/token_pools.go +++ b/integration-tests/onramp/environment/token_pools.go @@ -391,14 +391,15 @@ func SetupTokenPool( lggr.Debugw("Minted coin ID", "mintedCoinId", mintedCoinId) // Provide the minted tokens as liquidity to the pool - provideLiquidityInput := lockreleaseops.LockReleaseTokenPoolProviderLiquidityInput{ + provideLiquidityInput := lockreleaseops.LockReleaseTokenPoolProvideLiquidityInput{ LockReleaseTokenPoolPackageId: tokenPoolLockReleaseReport.Output.LockReleaseTPPackageID, StateObjectId: tokenPoolLockReleaseReport.Output.Objects.StateObjectId, + RebalancerCapObjectId: tokenPoolLockReleaseReport.Output.Objects.RebalancerCapObjectId, Coin: mintedCoinId, CoinObjectTypeArg: linkTokenType, } - _, err = cld_ops.ExecuteOperation(bundle, lockreleaseops.LockReleaseTokenPoolProviderLiquidityOp, deps, provideLiquidityInput) + _, err = cld_ops.ExecuteOperation(bundle, lockreleaseops.LockReleaseTokenPoolProvideLiquidityOp, deps, provideLiquidityInput) require.NoError(t, err, "failed to provide liquidity to Lock Release Token Pool") lggr.Debugw("Provided liquidity to Lock Release Token Pool", "amount", liquidityAmount)