PlaywoPosition Lifecycle
    Updated 2024-05-28
    WITH position_open AS (
    SELECT a__contract_address.tx_id, a__contract_address.block_timestamp,
    a__contract_address.attribute_value AS contract,
    a_pos_owner.attribute_value AS trader,
    a_notional_size.attribute_value AS notional_size,
    a_deposit_collateral_usd.attribute_value AS collateral_usd,
    a_leverage.attribute_value AS leverage,
    a_pos_id.attribute_value AS position,
    a_trading_fee_usd.attribute_value AS trade_fee_usd
    FROM
    osmosis.core.fact_msg_attributes AS a__contract_address,
    osmosis.core.fact_msg_attributes AS a_pos_owner,
    osmosis.core.fact_msg_attributes AS a_notional_size,
    osmosis.core.fact_msg_attributes AS a_deposit_collateral_usd,
    osmosis.core.fact_msg_attributes AS a_leverage,
    osmosis.core.fact_msg_attributes AS a_pos_id,
    osmosis.core.fact_msg_attributes AS a_trading_fee_usd
    WHERE a__contract_address.msg_type ILIKE 'wasm-position-open%'
    AND a__contract_address.attribute_key = '_contract_address'
    AND a_pos_owner.attribute_key = 'pos-owner' AND a__contract_address.tx_id = a_pos_owner.tx_id AND a__contract_address.msg_index = a_pos_owner.msg_index AND (a__contract_address.msg_group = a_pos_owner.msg_group OR a__contract_address.msg_group IS NULL AND a_pos_owner.msg_group IS NULL)
    AND a_notional_size.attribute_key = 'notional-size' AND a__contract_address.tx_id = a_notional_size.tx_id AND a__contract_address.msg_index = a_notional_size.msg_index AND (a__contract_address.msg_group = a_notional_size.msg_group OR a__contract_address.msg_group IS NULL AND a_notional_size.msg_group IS NULL)
    AND a_deposit_collateral_usd.attribute_key = 'deposit-collateral-usd' AND a__contract_address.tx_id = a_deposit_collateral_usd.tx_id AND a__contract_address.msg_index = a_deposit_collateral_usd.msg_index AND (a__contract_address.msg_group = a_deposit_collateral_usd.msg_group OR a__contract_address.msg_group IS NULL AND a_deposit_collateral_usd.msg_group IS NULL)
    AND a_leverage.attribute_key = 'leverage' AND a__contract_address.tx_id = a_leverage.tx_id AND a__contract_address.msg_index = a_leverage.msg_index AND (a__contract_address.msg_group = a_leverage.msg_group OR a__contract_address.msg_group IS NULL AND a_leverage.msg_group IS NULL)
    AND a_pos_id.attribute_key = 'pos-id' AND a__contract_address.tx_id = a_pos_id.tx_id AND a__contract_address.msg_index = a_pos_id.msg_index AND (a__contract_address.msg_group = a_pos_id.msg_group OR a__contract_address.msg_group IS NULL AND a_pos_id.msg_group IS NULL)
    AND a_trading_fee_usd.attribute_key = 'trading-fee-usd' AND a__contract_address.tx_id = a_trading_fee_usd.tx_id AND a__contract_address.msg_index = a_trading_fee_usd.msg_index AND (a__contract_address.msg_group = a_trading_fee_usd.msg_group OR a__contract_address.msg_group IS NULL AND a_trading_fee_usd.msg_group IS NULL)
    AND TRY_TO_NUMERIC(leverage) IS NOT NULL AND TRY_TO_NUMERIC(collateral_usd) IS NOT NULL AND TRY_TO_NUMERIC(trade_fee_usd) IS NOT NULL
    AND contract = 'osmo1gprafrgxx0tlf4u3dxnxcvvmsg2yl4hgqxc68xmkq07h2n0lk9zqycckgc'
    ),
    position_updates AS (
    SELECT a__contract_address.tx_id, a__contract_address.block_timestamp,
    a__contract_address.attribute_value AS contract,
    a_pos_owner.attribute_value AS trader,
    a_notional_size.attribute_value AS notional_size,
    a_notional_size_abs_delta_usd.attribute_value AS notional_size_abs_delta_usd,
    a_pos_id.attribute_value AS pos_id,
    a_trading_fee_delta_usd.attribute_value AS trading_fee_delta_usd
    QueryRunArchived: QueryRun has been archived