diff --git a/tests/integration_test.go b/tests/integration_test.go index d07e5f8..61bd887 100644 --- a/tests/integration_test.go +++ b/tests/integration_test.go @@ -64,6 +64,10 @@ func TestIntegration(t *testing.T) { name: "sol-transactions", stateFile: "./sol-transactions/generator.json", }, + { + name: "starknet-events", + stateFile: "./starknet-events/generator.json", + }, } ctx := context.Background() diff --git a/tests/starknet-events/generator.json b/tests/starknet-events/generator.json new file mode 100644 index 0000000..1bf695e --- /dev/null +++ b/tests/starknet-events/generator.json @@ -0,0 +1,1338 @@ +{ + "generator": "starknet-events", + "state": { + "name": "my_project", + "chainName": "starknet-mainnet", + "contracts": [ + { + "name": "ekubo", + "address": "0x2e0af29598b407c8716b17f6d2795eca1b471413fa03fb145a5e33722184067", + "initialBlock": 213, + "aliases": [ + { + "OldName": "ekubo::positions::Positions::Event", + "NewName": "PositionsEvent" + }, + { + "OldName": "ekubo::components::upgradeable::Upgradeable::Event", + "NewName": "UpgradeableEvent" + } + ], + "rawAbi": [ + { + "type": "impl", + "name": "PositionsHasInterface", + "interface_name": "ekubo::components::upgradeable::IHasInterface" + }, + { + "type": "interface", + "name": "ekubo::components::upgradeable::IHasInterface", + "items": [ + { + "type": "function", + "name": "get_primary_interface_id", + "inputs": [], + "outputs": [ + { + "type": "core::felt252" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "ILockerImpl", + "interface_name": "ekubo::interfaces::core::ILocker" + }, + { + "type": "struct", + "name": "core::array::Span::\u003ccore::felt252\u003e", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::\u003ccore::felt252\u003e" + } + ] + }, + { + "type": "interface", + "name": "ekubo::interfaces::core::ILocker", + "items": [ + { + "type": "function", + "name": "locked", + "inputs": [ + { + "name": "id", + "type": "core::integer::u32" + }, + { + "name": "data", + "type": "core::array::Span::\u003ccore::felt252\u003e" + } + ], + "outputs": [ + { + "type": "core::array::Span::\u003ccore::felt252\u003e" + } + ], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "PositionsImpl", + "interface_name": "ekubo::interfaces::positions::IPositions" + }, + { + "type": "struct", + "name": "ekubo::types::keys::PoolKey", + "members": [ + { + "name": "token0", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "token1", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "fee", + "type": "core::integer::u128" + }, + { + "name": "tick_spacing", + "type": "core::integer::u128" + }, + { + "name": "extension", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "enum", + "name": "core::bool", + "variants": [ + { + "name": "False", + "type": "()" + }, + { + "name": "True", + "type": "()" + } + ] + }, + { + "type": "struct", + "name": "ekubo::types::i129::i129", + "members": [ + { + "name": "mag", + "type": "core::integer::u128" + }, + { + "name": "sign", + "type": "core::bool" + } + ] + }, + { + "type": "struct", + "name": "ekubo::types::bounds::Bounds", + "members": [ + { + "name": "lower", + "type": "ekubo::types::i129::i129" + }, + { + "name": "upper", + "type": "ekubo::types::i129::i129" + } + ] + }, + { + "type": "struct", + "name": "ekubo::interfaces::positions::GetTokenInfoRequest", + "members": [ + { + "name": "id", + "type": "core::integer::u64" + }, + { + "name": "pool_key", + "type": "ekubo::types::keys::PoolKey" + }, + { + "name": "bounds", + "type": "ekubo::types::bounds::Bounds" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::\u003cekubo::interfaces::positions::GetTokenInfoRequest\u003e", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::\u003cekubo::interfaces::positions::GetTokenInfoRequest\u003e" + } + ] + }, + { + "type": "struct", + "name": "core::integer::u256", + "members": [ + { + "name": "low", + "type": "core::integer::u128" + }, + { + "name": "high", + "type": "core::integer::u128" + } + ] + }, + { + "type": "struct", + "name": "ekubo::types::pool_price::PoolPrice", + "members": [ + { + "name": "sqrt_ratio", + "type": "core::integer::u256" + }, + { + "name": "tick", + "type": "ekubo::types::i129::i129" + } + ] + }, + { + "type": "struct", + "name": "ekubo::interfaces::positions::GetTokenInfoResult", + "members": [ + { + "name": "pool_price", + "type": "ekubo::types::pool_price::PoolPrice" + }, + { + "name": "liquidity", + "type": "core::integer::u128" + }, + { + "name": "amount0", + "type": "core::integer::u128" + }, + { + "name": "amount1", + "type": "core::integer::u128" + }, + { + "name": "fees0", + "type": "core::integer::u128" + }, + { + "name": "fees1", + "type": "core::integer::u128" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::\u003cekubo::interfaces::positions::GetTokenInfoResult\u003e", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::\u003cekubo::interfaces::positions::GetTokenInfoResult\u003e" + } + ] + }, + { + "type": "struct", + "name": "ekubo::extensions::interfaces::twamm::OrderKey", + "members": [ + { + "name": "sell_token", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "buy_token", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "fee", + "type": "core::integer::u128" + }, + { + "name": "start_time", + "type": "core::integer::u64" + }, + { + "name": "end_time", + "type": "core::integer::u64" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::\u003c(core::integer::u64, ekubo::extensions::interfaces::twamm::OrderKey)\u003e", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::\u003c(core::integer::u64, ekubo::extensions::interfaces::twamm::OrderKey)\u003e" + } + ] + }, + { + "type": "struct", + "name": "ekubo::extensions::interfaces::twamm::OrderInfo", + "members": [ + { + "name": "sale_rate", + "type": "core::integer::u128" + }, + { + "name": "remaining_sell_amount", + "type": "core::integer::u128" + }, + { + "name": "purchased_amount", + "type": "core::integer::u128" + } + ] + }, + { + "type": "struct", + "name": "core::array::Span::\u003cekubo::extensions::interfaces::twamm::OrderInfo\u003e", + "members": [ + { + "name": "snapshot", + "type": "@core::array::Array::\u003cekubo::extensions::interfaces::twamm::OrderInfo\u003e" + } + ] + }, + { + "type": "interface", + "name": "ekubo::interfaces::positions::IPositions", + "items": [ + { + "type": "function", + "name": "get_nft_address", + "inputs": [], + "outputs": [ + { + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "upgrade_nft", + "inputs": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "set_twamm", + "inputs": [ + { + "name": "twamm_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "get_twamm_address", + "inputs": [], + "outputs": [ + { + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "get_tokens_info", + "inputs": [ + { + "name": "params", + "type": "core::array::Span::\u003cekubo::interfaces::positions::GetTokenInfoRequest\u003e" + } + ], + "outputs": [ + { + "type": "core::array::Span::\u003cekubo::interfaces::positions::GetTokenInfoResult\u003e" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "get_token_info", + "inputs": [ + { + "name": "id", + "type": "core::integer::u64" + }, + { + "name": "pool_key", + "type": "ekubo::types::keys::PoolKey" + }, + { + "name": "bounds", + "type": "ekubo::types::bounds::Bounds" + } + ], + "outputs": [ + { + "type": "ekubo::interfaces::positions::GetTokenInfoResult" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "get_orders_info", + "inputs": [ + { + "name": "params", + "type": "core::array::Span::\u003c(core::integer::u64, ekubo::extensions::interfaces::twamm::OrderKey)\u003e" + } + ], + "outputs": [ + { + "type": "core::array::Span::\u003cekubo::extensions::interfaces::twamm::OrderInfo\u003e" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "get_order_info", + "inputs": [ + { + "name": "id", + "type": "core::integer::u64" + }, + { + "name": "order_key", + "type": "ekubo::extensions::interfaces::twamm::OrderKey" + } + ], + "outputs": [ + { + "type": "ekubo::extensions::interfaces::twamm::OrderInfo" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "mint", + "inputs": [ + { + "name": "pool_key", + "type": "ekubo::types::keys::PoolKey" + }, + { + "name": "bounds", + "type": "ekubo::types::bounds::Bounds" + } + ], + "outputs": [ + { + "type": "core::integer::u64" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "mint_with_referrer", + "inputs": [ + { + "name": "pool_key", + "type": "ekubo::types::keys::PoolKey" + }, + { + "name": "bounds", + "type": "ekubo::types::bounds::Bounds" + }, + { + "name": "referrer", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "core::integer::u64" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "mint_v2", + "inputs": [ + { + "name": "referrer", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "core::integer::u64" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "check_liquidity_is_zero", + "inputs": [ + { + "name": "id", + "type": "core::integer::u64" + }, + { + "name": "pool_key", + "type": "ekubo::types::keys::PoolKey" + }, + { + "name": "bounds", + "type": "ekubo::types::bounds::Bounds" + } + ], + "outputs": [], + "state_mutability": "view" + }, + { + "type": "function", + "name": "unsafe_burn", + "inputs": [ + { + "name": "id", + "type": "core::integer::u64" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "deposit_last", + "inputs": [ + { + "name": "pool_key", + "type": "ekubo::types::keys::PoolKey" + }, + { + "name": "bounds", + "type": "ekubo::types::bounds::Bounds" + }, + { + "name": "min_liquidity", + "type": "core::integer::u128" + } + ], + "outputs": [ + { + "type": "core::integer::u128" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "deposit_amounts_last", + "inputs": [ + { + "name": "pool_key", + "type": "ekubo::types::keys::PoolKey" + }, + { + "name": "bounds", + "type": "ekubo::types::bounds::Bounds" + }, + { + "name": "amount0", + "type": "core::integer::u128" + }, + { + "name": "amount1", + "type": "core::integer::u128" + }, + { + "name": "min_liquidity", + "type": "core::integer::u128" + } + ], + "outputs": [ + { + "type": "core::integer::u128" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "deposit", + "inputs": [ + { + "name": "id", + "type": "core::integer::u64" + }, + { + "name": "pool_key", + "type": "ekubo::types::keys::PoolKey" + }, + { + "name": "bounds", + "type": "ekubo::types::bounds::Bounds" + }, + { + "name": "min_liquidity", + "type": "core::integer::u128" + } + ], + "outputs": [ + { + "type": "core::integer::u128" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "deposit_amounts", + "inputs": [ + { + "name": "id", + "type": "core::integer::u64" + }, + { + "name": "pool_key", + "type": "ekubo::types::keys::PoolKey" + }, + { + "name": "bounds", + "type": "ekubo::types::bounds::Bounds" + }, + { + "name": "amount0", + "type": "core::integer::u128" + }, + { + "name": "amount1", + "type": "core::integer::u128" + }, + { + "name": "min_liquidity", + "type": "core::integer::u128" + } + ], + "outputs": [ + { + "type": "core::integer::u128" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "mint_and_deposit", + "inputs": [ + { + "name": "pool_key", + "type": "ekubo::types::keys::PoolKey" + }, + { + "name": "bounds", + "type": "ekubo::types::bounds::Bounds" + }, + { + "name": "min_liquidity", + "type": "core::integer::u128" + } + ], + "outputs": [ + { + "type": "(core::integer::u64, core::integer::u128)" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "mint_and_deposit_with_referrer", + "inputs": [ + { + "name": "pool_key", + "type": "ekubo::types::keys::PoolKey" + }, + { + "name": "bounds", + "type": "ekubo::types::bounds::Bounds" + }, + { + "name": "min_liquidity", + "type": "core::integer::u128" + }, + { + "name": "referrer", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "(core::integer::u64, core::integer::u128)" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "mint_and_deposit_and_clear_both", + "inputs": [ + { + "name": "pool_key", + "type": "ekubo::types::keys::PoolKey" + }, + { + "name": "bounds", + "type": "ekubo::types::bounds::Bounds" + }, + { + "name": "min_liquidity", + "type": "core::integer::u128" + } + ], + "outputs": [ + { + "type": "(core::integer::u64, core::integer::u128, core::integer::u256, core::integer::u256)" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "collect_fees", + "inputs": [ + { + "name": "id", + "type": "core::integer::u64" + }, + { + "name": "pool_key", + "type": "ekubo::types::keys::PoolKey" + }, + { + "name": "bounds", + "type": "ekubo::types::bounds::Bounds" + } + ], + "outputs": [ + { + "type": "(core::integer::u128, core::integer::u128)" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "withdraw", + "inputs": [ + { + "name": "id", + "type": "core::integer::u64" + }, + { + "name": "pool_key", + "type": "ekubo::types::keys::PoolKey" + }, + { + "name": "bounds", + "type": "ekubo::types::bounds::Bounds" + }, + { + "name": "liquidity", + "type": "core::integer::u128" + }, + { + "name": "min_token0", + "type": "core::integer::u128" + }, + { + "name": "min_token1", + "type": "core::integer::u128" + }, + { + "name": "collect_fees", + "type": "core::bool" + } + ], + "outputs": [ + { + "type": "(core::integer::u128, core::integer::u128)" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "withdraw_v2", + "inputs": [ + { + "name": "id", + "type": "core::integer::u64" + }, + { + "name": "pool_key", + "type": "ekubo::types::keys::PoolKey" + }, + { + "name": "bounds", + "type": "ekubo::types::bounds::Bounds" + }, + { + "name": "liquidity", + "type": "core::integer::u128" + }, + { + "name": "min_token0", + "type": "core::integer::u128" + }, + { + "name": "min_token1", + "type": "core::integer::u128" + } + ], + "outputs": [ + { + "type": "(core::integer::u128, core::integer::u128)" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "get_pool_price", + "inputs": [ + { + "name": "pool_key", + "type": "ekubo::types::keys::PoolKey" + } + ], + "outputs": [ + { + "type": "ekubo::types::pool_price::PoolPrice" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "mint_and_increase_sell_amount", + "inputs": [ + { + "name": "order_key", + "type": "ekubo::extensions::interfaces::twamm::OrderKey" + }, + { + "name": "amount", + "type": "core::integer::u128" + } + ], + "outputs": [ + { + "type": "(core::integer::u64, core::integer::u128)" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "increase_sell_amount_last", + "inputs": [ + { + "name": "order_key", + "type": "ekubo::extensions::interfaces::twamm::OrderKey" + }, + { + "name": "amount", + "type": "core::integer::u128" + } + ], + "outputs": [ + { + "type": "core::integer::u128" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "increase_sell_amount", + "inputs": [ + { + "name": "id", + "type": "core::integer::u64" + }, + { + "name": "order_key", + "type": "ekubo::extensions::interfaces::twamm::OrderKey" + }, + { + "name": "amount", + "type": "core::integer::u128" + } + ], + "outputs": [ + { + "type": "core::integer::u128" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "decrease_sale_rate", + "inputs": [ + { + "name": "id", + "type": "core::integer::u64" + }, + { + "name": "order_key", + "type": "ekubo::extensions::interfaces::twamm::OrderKey" + }, + { + "name": "sale_rate_delta", + "type": "core::integer::u128" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "decrease_sale_rate_to", + "inputs": [ + { + "name": "id", + "type": "core::integer::u64" + }, + { + "name": "order_key", + "type": "ekubo::extensions::interfaces::twamm::OrderKey" + }, + { + "name": "sale_rate_delta", + "type": "core::integer::u128" + }, + { + "name": "recipient", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "core::integer::u128" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "decrease_sale_rate_to_self", + "inputs": [ + { + "name": "id", + "type": "core::integer::u64" + }, + { + "name": "order_key", + "type": "ekubo::extensions::interfaces::twamm::OrderKey" + }, + { + "name": "sale_rate_delta", + "type": "core::integer::u128" + } + ], + "outputs": [ + { + "type": "core::integer::u128" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "withdraw_proceeds_from_sale", + "inputs": [ + { + "name": "id", + "type": "core::integer::u64" + }, + { + "name": "order_key", + "type": "ekubo::extensions::interfaces::twamm::OrderKey" + } + ], + "outputs": [], + "state_mutability": "external" + }, + { + "type": "function", + "name": "withdraw_proceeds_from_sale_to_self", + "inputs": [ + { + "name": "id", + "type": "core::integer::u64" + }, + { + "name": "order_key", + "type": "ekubo::extensions::interfaces::twamm::OrderKey" + } + ], + "outputs": [ + { + "type": "core::integer::u128" + } + ], + "state_mutability": "external" + }, + { + "type": "function", + "name": "withdraw_proceeds_from_sale_to", + "inputs": [ + { + "name": "id", + "type": "core::integer::u64" + }, + { + "name": "order_key", + "type": "ekubo::extensions::interfaces::twamm::OrderKey" + }, + { + "name": "recipient", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "core::integer::u128" + } + ], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "Owned", + "interface_name": "ekubo::components::owned::IOwned" + }, + { + "type": "interface", + "name": "ekubo::components::owned::IOwned", + "items": [ + { + "type": "function", + "name": "get_owner", + "inputs": [], + "outputs": [ + { + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "transfer_ownership", + "inputs": [ + { + "name": "new_owner", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "Upgradeable", + "interface_name": "ekubo::interfaces::upgradeable::IUpgradeable" + }, + { + "type": "interface", + "name": "ekubo::interfaces::upgradeable::IUpgradeable", + "items": [ + { + "type": "function", + "name": "replace_class_hash", + "inputs": [ + { + "name": "class_hash", + "type": "core::starknet::class_hash::ClassHash" + } + ], + "outputs": [], + "state_mutability": "external" + } + ] + }, + { + "type": "impl", + "name": "Clear", + "interface_name": "ekubo::components::clear::IClear" + }, + { + "type": "struct", + "name": "ekubo::interfaces::erc20::IERC20Dispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "interface", + "name": "ekubo::components::clear::IClear", + "items": [ + { + "type": "function", + "name": "clear", + "inputs": [ + { + "name": "token", + "type": "ekubo::interfaces::erc20::IERC20Dispatcher" + } + ], + "outputs": [ + { + "type": "core::integer::u256" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "clear_minimum", + "inputs": [ + { + "name": "token", + "type": "ekubo::interfaces::erc20::IERC20Dispatcher" + }, + { + "name": "minimum", + "type": "core::integer::u256" + } + ], + "outputs": [ + { + "type": "core::integer::u256" + } + ], + "state_mutability": "view" + }, + { + "type": "function", + "name": "clear_minimum_to_recipient", + "inputs": [ + { + "name": "token", + "type": "ekubo::interfaces::erc20::IERC20Dispatcher" + }, + { + "name": "minimum", + "type": "core::integer::u256" + }, + { + "name": "recipient", + "type": "core::starknet::contract_address::ContractAddress" + } + ], + "outputs": [ + { + "type": "core::integer::u256" + } + ], + "state_mutability": "view" + } + ] + }, + { + "type": "impl", + "name": "Expires", + "interface_name": "ekubo::components::expires::IExpires" + }, + { + "type": "interface", + "name": "ekubo::components::expires::IExpires", + "items": [ + { + "type": "function", + "name": "expires", + "inputs": [ + { + "name": "at", + "type": "core::integer::u64" + } + ], + "outputs": [], + "state_mutability": "view" + } + ] + }, + { + "type": "struct", + "name": "ekubo::interfaces::core::ICoreDispatcher", + "members": [ + { + "name": "contract_address", + "type": "core::starknet::contract_address::ContractAddress" + } + ] + }, + { + "type": "constructor", + "name": "constructor", + "inputs": [ + { + "name": "owner", + "type": "core::starknet::contract_address::ContractAddress" + }, + { + "name": "core", + "type": "ekubo::interfaces::core::ICoreDispatcher" + }, + { + "name": "nft_class_hash", + "type": "core::starknet::class_hash::ClassHash" + }, + { + "name": "token_uri_base", + "type": "core::felt252" + } + ] + }, + { + "type": "event", + "name": "ekubo::components::upgradeable::Upgradeable::ClassHashReplaced", + "kind": "struct", + "members": [ + { + "name": "new_class_hash", + "type": "core::starknet::class_hash::ClassHash", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "ekubo::components::upgradeable::Upgradeable::Event", + "kind": "enum", + "variants": [ + { + "name": "ClassHashReplaced", + "type": "ekubo::components::upgradeable::Upgradeable::ClassHashReplaced", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "ekubo::components::owned::Owned::OwnershipTransferred", + "kind": "struct", + "members": [ + { + "name": "old_owner", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + }, + { + "name": "new_owner", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "ekubo::components::owned::Owned::Event", + "kind": "enum", + "variants": [ + { + "name": "OwnershipTransferred", + "type": "ekubo::components::owned::Owned::OwnershipTransferred", + "kind": "nested" + } + ] + }, + { + "type": "event", + "name": "ekubo::positions::Positions::PositionMintedWithReferrer", + "kind": "struct", + "members": [ + { + "name": "id", + "type": "core::integer::u64", + "kind": "data" + }, + { + "name": "referrer", + "type": "core::starknet::contract_address::ContractAddress", + "kind": "data" + } + ] + }, + { + "type": "event", + "name": "ekubo::positions::Positions::Event", + "kind": "enum", + "variants": [ + { + "name": "UpgradeableEvent", + "type": "ekubo::components::upgradeable::Upgradeable::Event", + "kind": "flat" + }, + { + "name": "OwnedEvent", + "type": "ekubo::components::owned::Owned::Event", + "kind": "nested" + }, + { + "name": "PositionMintedWithReferrer", + "type": "ekubo::positions::Positions::PositionMintedWithReferrer", + "kind": "nested" + } + ] + } + ], + "Abi": {}, + "PaddedAddress": "0x02e0af29598b407c8716b17f6d2795eca1b471413fa03fb145a5e33722184067" + } + ], + "confirmEnoughContracts": true + } +} \ No newline at end of file