diff --git a/aiken.lock b/aiken.lock index 0a72eb3..017fbeb 100644 --- a/aiken.lock +++ b/aiken.lock @@ -3,12 +3,12 @@ [[requirements]] name = "aiken-lang/stdlib" -version = "1.7.0" +version = "2.1.0" source = "github" [[packages]] name = "aiken-lang/stdlib" -version = "1.7.0" +version = "2.1.0" requirements = [] source = "github" diff --git a/aiken.toml b/aiken.toml index 1219079..857db9a 100644 --- a/aiken.toml +++ b/aiken.toml @@ -1,5 +1,7 @@ name = "aiken/amm_dex_v2" version = "0.0.0" +compiler = "v1.1.9" +plutus = "v3" license = "Apache-2.0" description = "Aiken contracts for project 'aiken/amm_dex_v2'" @@ -10,5 +12,7 @@ platform = "github" [[dependencies]] name = "aiken-lang/stdlib" -version = "1.7.0" +version = "2.1.0" source = "github" + +[config] \ No newline at end of file diff --git a/lib/amm_dex_v2/math.ak b/lib/amm_dex_v2/math.ak index ff2875f..2a9d52c 100644 --- a/lib/amm_dex_v2/math.ak +++ b/lib/amm_dex_v2/math.ak @@ -1,4 +1,4 @@ -use aiken/list +use aiken/collection/list use amm_dex_v2/utils pub fn calculate_sqrt(x: Int) -> Int { diff --git a/lib/amm_dex_v2/order_validation.ak b/lib/amm_dex_v2/order_validation.ak index e317992..33540bf 100644 --- a/lib/amm_dex_v2/order_validation.ak +++ b/lib/amm_dex_v2/order_validation.ak @@ -1,13 +1,6 @@ use aiken/builtin -use aiken/hash -use aiken/list -use aiken/transaction.{Datum, DatumHash, InlineDatum, Input, NoDatum, Output} -use aiken/transaction/credential.{ - Address, ScriptCredential, VerificationKeyCredential, -} -use aiken/transaction/value.{ - AssetName, PolicyId, Value, ada_asset_name, ada_policy_id, -} +use aiken/collection/list +use aiken/crypto.{blake2b_256} use amm_dex_v2/math use amm_dex_v2/types.{ Asset, BatchingPool, DAOAll, DAOSpecificAmount, DatumMap, Deposit, @@ -18,11 +11,14 @@ use amm_dex_v2/types.{ Withdraw, WithdrawAmountOption, WithdrawImbalance, ZapOut, } use amm_dex_v2/utils +use cardano/address.{Address, Script, VerificationKey} +use cardano/assets.{AssetName, PolicyId, Value, ada_asset_name, ada_policy_id} +use cardano/transaction.{Datum, DatumHash, InlineDatum, Input, NoDatum, Output} // Construct the value when order is cancelled by the batcher // Only batcher fee is deducted from the order value fn get_returnable_value(order_in_value: Value, used_batcher_fee: Int) -> Value { - value.add( + assets.add( order_in_value, ada_policy_id, ada_asset_name, @@ -57,16 +53,12 @@ fn get_optimized_swap_output_value( if a_to_b { Some( [ - ( - ada_policy_id, - [ - ( - ada_asset_name, - asset_a_amount - ( used_batcher_fee + amount_in ), - ), - ], - ), - (asset_b_policy_id, [(asset_b_asset_name, amount_out)]), + Pair(ada_policy_id, + [ + Pair(ada_asset_name, + asset_a_amount - ( used_batcher_fee + amount_in )), + ]), + Pair(asset_b_policy_id, [Pair(asset_b_asset_name, amount_out)]), ], ) } else { @@ -74,7 +66,7 @@ fn get_optimized_swap_output_value( } // If the input value contains ADA and one additional asset, with Asset B being swapped for Asset A, // subtract the batcher fee and add the output amount to the ADA portion, then subtract the swap amount of Asset B. - [(asset_pid, [(asset_tn, asset_amount)])] -> + [Pair(asset_pid, [Pair(asset_tn, asset_amount)])] -> if !a_to_b && asset_pid == asset_b_policy_id && asset_tn == asset_b_asset_name{ @@ -82,31 +74,23 @@ fn get_optimized_swap_output_value( if asset_amount > amount_in { Some( [ - ( - ada_policy_id, - [ - ( - ada_asset_name, - asset_a_amount - used_batcher_fee + amount_out, - ), - ], - ), - (asset_pid, [(asset_tn, asset_amount - amount_in)]), + Pair(ada_policy_id, + [ + Pair(ada_asset_name, + asset_a_amount - used_batcher_fee + amount_out), + ]), + Pair(asset_pid, [Pair(asset_tn, asset_amount - amount_in)]), ], ) } else if asset_amount == amount_in { // Asset B have no change Some( [ - ( - ada_policy_id, - [ - ( - ada_asset_name, - asset_a_amount - used_batcher_fee + amount_out, - ), - ], - ), + Pair(ada_policy_id, + [ + Pair(ada_asset_name, + asset_a_amount - used_batcher_fee + amount_out), + ]), ], ) } else { @@ -134,17 +118,17 @@ fn get_swap_output_value( ) -> Value { if utils.is_ada_asset(asset_in_policy_id, asset_in_asset_name) { order_in_value - |> value.add(ada_policy_id, ada_asset_name, -(used_batcher_fee + amount_in)) - |> value.add(asset_out_policy_id, asset_out_asset_name, amount_out) + |> assets.add(ada_policy_id, ada_asset_name, -(used_batcher_fee + amount_in)) + |> assets.add(asset_out_policy_id, asset_out_asset_name, amount_out) } else if utils.is_ada_asset(asset_out_policy_id, asset_out_asset_name) { order_in_value - |> value.add(ada_policy_id, ada_asset_name, amount_out - used_batcher_fee) - |> value.add(asset_in_policy_id, asset_in_asset_name, -amount_in) + |> assets.add(ada_policy_id, ada_asset_name, amount_out - used_batcher_fee) + |> assets.add(asset_in_policy_id, asset_in_asset_name, -amount_in) } else { order_in_value - |> value.add(ada_policy_id, ada_asset_name, -used_batcher_fee) - |> value.add(asset_in_policy_id, asset_in_asset_name, -amount_in) - |> value.add(asset_out_policy_id, asset_out_asset_name, amount_out) + |> assets.add(ada_policy_id, ada_asset_name, -used_batcher_fee) + |> assets.add(asset_in_policy_id, asset_in_asset_name, -amount_in) + |> assets.add(asset_out_policy_id, asset_out_asset_name, amount_out) } } @@ -242,7 +226,7 @@ fn validate_swap_exact_in( SAOAll(deducted_amount) -> { // deducted amount must be non-negative expect deducted_amount >= 0 - value.quantity_of( + assets.quantity_of( order_in_value, asset_in_policy_id, asset_in_asset_name, @@ -385,7 +369,7 @@ fn validate_swap_exact_out( SAOAll(deducted_amount) -> { // deducted amount must be non-negative expect deducted_amount >= 0 - value.quantity_of( + assets.quantity_of( order_in_value, asset_in_policy_id, asset_in_asset_name, @@ -490,13 +474,13 @@ fn validate_deposit( deducted_amount_b >= 0, } let am_a = - value.quantity_of( + assets.quantity_of( order_in_value, asset_a_policy_id, asset_a_asset_name, ) - deducted_amount_a let am_b = - value.quantity_of( + assets.quantity_of( order_in_value, asset_b_policy_id, asset_b_asset_name, @@ -528,10 +512,10 @@ fn validate_deposit( if slippage_satisfied { let expect_order_value_out = order_in_value - |> value.add(ada_policy_id, ada_asset_name, -used_batcher_fee) - |> value.add(asset_a_policy_id, asset_a_asset_name, -deposit_amount_a) - |> value.add(asset_b_policy_id, asset_b_asset_name, -deposit_amount_b) - |> value.add(lp_asset_policy_id, lp_asset_asset_name, lp_amount) + |> assets.add(ada_policy_id, ada_asset_name, -used_batcher_fee) + |> assets.add(asset_a_policy_id, asset_a_asset_name, -deposit_amount_a) + |> assets.add(asset_b_policy_id, asset_b_asset_name, -deposit_amount_b) + |> assets.add(lp_asset_policy_id, lp_asset_asset_name, lp_amount) expect validate_order_output( receiver: success_receiver, @@ -598,7 +582,7 @@ fn validate_withdraw( WAOAll(deducted_amount) -> { // deducted amount must be non-negative expect deducted_amount >= 0 - value.quantity_of(order_in_value, lp_policy_id, lp_asset_name) - deducted_amount + assets.quantity_of(order_in_value, lp_policy_id, lp_asset_name) - deducted_amount } } @@ -618,10 +602,10 @@ fn validate_withdraw( if slippage_satisfied { let expect_order_value_out = order_in_value - |> value.add(ada_policy_id, ada_asset_name, -used_batcher_fee) - |> value.add(lp_policy_id, lp_asset_name, -withdrawal_lp_amount) - |> value.add(asset_a_policy_id, asset_a_asset_name, amount_a_out) - |> value.add(asset_b_policy_id, asset_b_asset_name, amount_b_out) + |> assets.add(ada_policy_id, ada_asset_name, -used_batcher_fee) + |> assets.add(lp_policy_id, lp_asset_name, -withdrawal_lp_amount) + |> assets.add(asset_a_policy_id, asset_a_asset_name, amount_a_out) + |> assets.add(asset_b_policy_id, asset_b_asset_name, amount_b_out) expect validate_order_output( receiver: success_receiver, @@ -695,7 +679,7 @@ fn validate_zap_out( WAOAll(deducted_amount) -> { // deducted amount must be non-negative expect deducted_amount >= 0 - value.quantity_of(order_in_value, lp_policy_id, lp_asset_name) - deducted_amount + assets.quantity_of(order_in_value, lp_policy_id, lp_asset_name) - deducted_amount } } @@ -716,9 +700,9 @@ fn validate_zap_out( if slippage_satisfied { let expect_order_value_out = order_in_value - |> value.add(ada_policy_id, ada_asset_name, -used_batcher_fee) - |> value.add(lp_policy_id, lp_asset_name, -withdrawal_lp_amount) - |> value.add(asset_out_policy_id, asset_out_asset_name, amount_out) + |> assets.add(ada_policy_id, ada_asset_name, -used_batcher_fee) + |> assets.add(lp_policy_id, lp_asset_name, -withdrawal_lp_amount) + |> assets.add(asset_out_policy_id, asset_out_asset_name, amount_out) expect validate_order_output( receiver: success_receiver, @@ -914,7 +898,7 @@ fn validate_withdraw_imbalance( WAOAll(deducted_amount) -> { // deducted amount must be non-negative expect deducted_amount >= 0 - value.quantity_of(order_in_value, lp_policy_id, lp_asset_name) - deducted_amount + assets.quantity_of(order_in_value, lp_policy_id, lp_asset_name) - deducted_amount } } // withdrawal amount must be positive @@ -935,10 +919,10 @@ fn validate_withdraw_imbalance( if slippage_satisfied { let expect_order_value_out = order_in_value - |> value.add(ada_policy_id, ada_asset_name, -used_batcher_fee) - |> value.add(lp_policy_id, lp_asset_name, -withdrawal_lp_amount) - |> value.add(asset_a_policy_id, asset_a_asset_name, amount_a_out) - |> value.add(asset_b_policy_id, asset_b_asset_name, amount_b_out) + |> assets.add(ada_policy_id, ada_asset_name, -used_batcher_fee) + |> assets.add(lp_policy_id, lp_asset_name, -withdrawal_lp_amount) + |> assets.add(asset_a_policy_id, asset_a_asset_name, amount_a_out) + |> assets.add(asset_b_policy_id, asset_b_asset_name, amount_b_out) expect validate_order_output( receiver: success_receiver, @@ -989,18 +973,18 @@ fn validate_donation( let Asset { policy_id: asset_b_policy_id, asset_name: asset_b_asset_name } = asset_b let temp_amount_a = - order_in_value |> value.quantity_of(asset_a_policy_id, asset_a_asset_name) + order_in_value |> assets.quantity_of(asset_a_policy_id, asset_a_asset_name) let amount_a = if utils.is_ada_asset(asset_a_policy_id, asset_a_asset_name) { temp_amount_a - used_batcher_fee } else { let ada_amount = - order_in_value |> value.quantity_of(ada_policy_id, ada_asset_name) + order_in_value |> assets.quantity_of(ada_policy_id, ada_asset_name) expect ada_amount >= used_batcher_fee temp_amount_a } let amount_b = - order_in_value |> value.quantity_of(asset_b_policy_id, asset_b_asset_name) + order_in_value |> assets.quantity_of(asset_b_policy_id, asset_b_asset_name) expect and { amount_a >= 0, @@ -1156,7 +1140,7 @@ pub fn validate_swap_multi_routing_order( SAOAll(deducted_amount) -> { // deducted amount must be non-negative expect deducted_amount >= 0 - value.quantity_of( + assets.quantity_of( order_in_value, asset_in_policy_id, asset_in_asset_name, @@ -1173,9 +1157,9 @@ pub fn validate_swap_multi_routing_order( ) let expect_order_value_out = order_in_value - |> value.add(ada_policy_id, ada_asset_name, -used_batcher_fee) - |> value.add(asset_in_policy_id, asset_in_asset_name, -swap_amount) - |> value.add(asset_out_policy_id, asset_out_asset_name, amount_out) + |> assets.add(ada_policy_id, ada_asset_name, -used_batcher_fee) + |> assets.add(asset_in_policy_id, asset_in_asset_name, -swap_amount) + |> assets.add(asset_out_policy_id, asset_out_asset_name, amount_out) and { amount_out >= minimum_receive, expect_order_value_out == order_out_value, @@ -1188,7 +1172,7 @@ fn is_valid_datum(raw_datum: Datum, extra_order_datum: ExtraOrderDatum) -> Bool NoDatum -> EODNoDatum DatumHash(dh) -> EODDatumHash(dh) InlineDatum(dat) -> - EODInlineDatum(hash.blake2b_256(builtin.serialise_data(dat))) + EODInlineDatum(blake2b_256(builtin.serialise_data(dat))) } extra_order_datum == expect_extra_order_datum } @@ -1203,8 +1187,8 @@ pub fn validate_order_receiver( let Address { payment_credential: receiver_payment_cred, .. } = receiver let is_correct_address = receiver == output_address when receiver_payment_cred is { - VerificationKeyCredential(_) -> is_correct_address - ScriptCredential(_) -> and { + VerificationKey(_) -> is_correct_address + Script(_) -> and { is_correct_address, is_valid_datum( raw_datum: raw_order_output_datum, @@ -1233,8 +1217,8 @@ fn validate_order_output( } let Address { payment_credential: receiver_payment_cred, .. } = receiver when receiver_payment_cred is { - VerificationKeyCredential(_) -> is_correct_address_and_value - ScriptCredential(_) -> and { + VerificationKey(_) -> is_correct_address_and_value + Script(_) -> and { is_correct_address_and_value, is_valid_datum( raw_datum: raw_order_output_datum, @@ -1254,8 +1238,8 @@ fn validate_order_output_except_value( let Address { payment_credential: receiver_payment_cred, .. } = receiver when receiver_payment_cred is { - VerificationKeyCredential(_) -> receiver == output_address - ScriptCredential(_) -> and { + VerificationKey(_) -> receiver == output_address + Script(_) -> and { receiver == output_address, is_valid_datum( raw_datum: raw_order_output_datum, @@ -1740,21 +1724,21 @@ pub fn validate_cancel_expired_orders( expect Some((expired_time, max_tip)) = expiry_setting_opt expect and { // the transaction must be created after expired time - expired_time < start_valid_time_range, + (expired_time < start_valid_time_range)?, // the output have to paid back to sender - refund_receiver == order_out_address, + (refund_receiver == order_out_address)?, // ADA in the order might be deducted for tipping a canceller // The tip must not exceed the maximum tip // Other tokens must be returned to sender - value.lovelace_of(order_out_value) >= value.lovelace_of(order_in_value) - max_tip, - value.without_lovelace(order_out_value) == value.without_lovelace( + (assets.lovelace_of(order_out_value) >= assets.lovelace_of(order_in_value) - max_tip)?, + (assets.without_lovelace(order_out_value) == assets.without_lovelace( order_in_value, - ), + ))?, // If sender is script address, the output have to attach the defined datum is_valid_datum( raw_datum: raw_order_output_datum, extra_order_datum: refund_receiver_datum, - ), + )?, } if rest_order_inputs == [] { True diff --git a/lib/amm_dex_v2/pool_validation.ak b/lib/amm_dex_v2/pool_validation.ak index c0ac2bf..73e77c3 100644 --- a/lib/amm_dex_v2/pool_validation.ak +++ b/lib/amm_dex_v2/pool_validation.ak @@ -1,18 +1,15 @@ -use aiken/list -use aiken/transaction.{Input, Output} -use aiken/transaction/credential.{ - Address, PaymentCredential, ScriptCredential, StakeCredential, - VerificationKeyCredential, -} -use aiken/transaction/value.{ - AssetName, PolicyId, Value, ada_asset_name, ada_policy_id, -} +use aiken/collection/list use amm_dex_v2/types.{ Asset, BatchingPool, GlobalSetting, PAMSpendScript, PAMWithdrawScript, PoolAuthorizationMethod, PoolDatum, UpdateDynamicFee, UpdatePoolFee, UpdatePoolParametersAction, UpdatePoolStakeCredential, } use amm_dex_v2/utils +use cardano/address.{ + Address, Credential, PaymentCredential, Script, VerificationKey, +} +use cardano/assets.{AssetName, PolicyId, Value, ada_asset_name, ada_policy_id} +use cardano/transaction.{Input, Output} // Global Setting must be provided through the @reference_inputs // and has to keep the Global Setting NFT in its value @@ -23,20 +20,20 @@ pub fn get_and_validate_global_setting( expect Some(global_input) = reference_inputs |> list.find( - fn(input) { - let Input { - output: Output { - address: Address { payment_credential: payment_cred, .. }, - .. - }, - .. - } = input - when payment_cred is { - ScriptCredential(hash) -> hash == authen_policy_id - _ -> False - } - }, - ) + fn(input) { + let Input { + output: Output { + address: Address { payment_credential: payment_cred, .. }, + .. + }, + .. + } = input + when payment_cred is { + Script(hash) -> hash == authen_policy_id + _ -> False + } + }, + ) let Input { output: Output { value: global_setting_value, @@ -48,7 +45,7 @@ pub fn get_and_validate_global_setting( expect ( global_setting_value - |> value.quantity_of(authen_policy_id, utils.global_setting_asset_name) + |> assets.quantity_of(authen_policy_id, utils.global_setting_asset_name) ) == 1 expect global_setting_datum: GlobalSetting = utils.must_find_script_inline_datum(global_setting_datum_raw) @@ -56,7 +53,7 @@ pub fn get_and_validate_global_setting( } pub fn get_batching_pool( - stake_credential: StakeCredential, + stake_credential: Credential, pool_input: Output, pool_output: Output, authen_policy_id: PolicyId, @@ -139,9 +136,9 @@ pub fn get_batching_pool( Asset { policy_id: authen_policy_id, asset_name: lp_asset_name } let estimate_value_reserve_a_in = - value.quantity_of(pool_in_value, asset_a_policy_id, asset_a_asset_name) + assets.quantity_of(pool_in_value, asset_a_policy_id, asset_a_asset_name) let estimate_value_reserve_a_out = - value.quantity_of(pool_out_value, asset_a_policy_id, asset_a_asset_name) + assets.quantity_of(pool_out_value, asset_a_policy_id, asset_a_asset_name) let (value_reserve_a_in, value_reserve_a_out) = if utils.is_ada_asset(asset_a_policy_id, asset_a_asset_name) { ( @@ -152,28 +149,32 @@ pub fn get_batching_pool( (estimate_value_reserve_a_in, estimate_value_reserve_a_out) } let value_reserve_b_in = - value.quantity_of(pool_in_value, asset_b_policy_id, asset_b_asset_name) + assets.quantity_of(pool_in_value, asset_b_policy_id, asset_b_asset_name) let value_reserve_b_out = - value.quantity_of(pool_out_value, asset_b_policy_id, asset_b_asset_name) + assets.quantity_of(pool_out_value, asset_b_policy_id, asset_b_asset_name) let remaining_liquidity_supply_in = - value.quantity_of(pool_in_value, authen_policy_id, lp_asset_name) + assets.quantity_of(pool_in_value, authen_policy_id, lp_asset_name) let remaining_liquidity_supply_out = - value.quantity_of(pool_out_value, authen_policy_id, lp_asset_name) + assets.quantity_of(pool_out_value, authen_policy_id, lp_asset_name) let estimate_pool_in_value = - value.zero() - |> value.add(authen_policy_id, utils.pool_auth_asset_name, 1) - |> value.add(asset_a_policy_id, asset_a_asset_name, value_reserve_a_in) - |> value.add(asset_b_policy_id, asset_b_asset_name, value_reserve_b_in) - |> value.add(authen_policy_id, lp_asset_name, remaining_liquidity_supply_in) - |> value.add(ada_policy_id, ada_asset_name, utils.min_pool_ada) + assets.zero + |> assets.add(authen_policy_id, utils.pool_auth_asset_name, 1) + |> assets.add(asset_a_policy_id, asset_a_asset_name, value_reserve_a_in) + |> assets.add(asset_b_policy_id, asset_b_asset_name, value_reserve_b_in) + |> assets.add(authen_policy_id, lp_asset_name, remaining_liquidity_supply_in) + |> assets.add(ada_policy_id, ada_asset_name, utils.min_pool_ada) let estimate_pool_out_value = - value.zero() - |> value.add(authen_policy_id, utils.pool_auth_asset_name, 1) - |> value.add(asset_a_policy_id, asset_a_asset_name, value_reserve_a_out) - |> value.add(asset_b_policy_id, asset_b_asset_name, value_reserve_b_out) - |> value.add(authen_policy_id, lp_asset_name, remaining_liquidity_supply_out) - |> value.add(ada_policy_id, ada_asset_name, utils.min_pool_ada) + assets.zero + |> assets.add(authen_policy_id, utils.pool_auth_asset_name, 1) + |> assets.add(asset_a_policy_id, asset_a_asset_name, value_reserve_a_out) + |> assets.add(asset_b_policy_id, asset_b_asset_name, value_reserve_b_out) + |> assets.add( + authen_policy_id, + lp_asset_name, + remaining_liquidity_supply_out, + ) + |> assets.add(ada_policy_id, ada_asset_name, utils.min_pool_ada) expect and { estimate_pool_in_value == pool_in_value, estimate_pool_out_value == pool_out_value, @@ -242,7 +243,7 @@ pub fn validate_update_pool_parameters( ) expect and { // Pool Input contains 1 valid Pool NFT Token - value.quantity_of( + assets.quantity_of( pool_in_value, authen_policy_id, utils.pool_auth_asset_name, @@ -376,7 +377,7 @@ pub fn validate_withdraw_fee_sharing( pool_in_address == pool_out_address, // Pool Datum must be unchanged pool_in_datum == pool_out_datum, - value.quantity_of( + assets.quantity_of( pool_in_value, authen_policy_id, utils.pool_auth_asset_name, @@ -394,7 +395,7 @@ pub fn validate_withdraw_fee_sharing( let Asset { policy_id: asset_b_policy_id, asset_name: asset_b_asset_name } = asset_b let temp_value_reserve_a_in = - value.quantity_of(pool_in_value, asset_a_policy_id, asset_a_asset_name) + assets.quantity_of(pool_in_value, asset_a_policy_id, asset_a_asset_name) let value_reserve_a_in = if utils.is_ada_asset(asset_a_policy_id, asset_a_asset_name) { temp_value_reserve_a_in - utils.min_pool_ada @@ -402,22 +403,22 @@ pub fn validate_withdraw_fee_sharing( temp_value_reserve_a_in } let value_reserve_b_in = - value.quantity_of(pool_in_value, asset_b_policy_id, asset_b_asset_name) + assets.quantity_of(pool_in_value, asset_b_policy_id, asset_b_asset_name) // validate Admin withdraws the exact earned Profit Sharing amount: // Earned Asset A: Reserve A in Value - Reserve A in Datum // Earned Asset B: Reserve B in Value - Reserve B in Datum let expected_pool_out_value = pool_in_value - |> value.add( - asset_a_policy_id, - asset_a_asset_name, - datum_reserve_a_in - value_reserve_a_in, - ) - |> value.add( - asset_b_policy_id, - asset_b_asset_name, - datum_reserve_b_in - value_reserve_b_in, - ) + |> assets.add( + asset_a_policy_id, + asset_a_asset_name, + datum_reserve_a_in - value_reserve_a_in, + ) + |> assets.add( + asset_b_policy_id, + asset_b_asset_name, + datum_reserve_b_in - value_reserve_b_in, + ) pool_out_value == expected_pool_out_value } @@ -428,10 +429,10 @@ pub fn get_pool_creation_expected_mint( authen_policy_id: PolicyId, lp_asset_name: AssetName, ) -> Value { - value.zero() - |> value.add(authen_policy_id, utils.factory_auth_asset_name, 1) - |> value.add(authen_policy_id, utils.pool_auth_asset_name, 1) - |> value.add(authen_policy_id, lp_asset_name, 9223372036854775807) + assets.zero + |> assets.add(authen_policy_id, utils.factory_auth_asset_name, 1) + |> assets.add(authen_policy_id, utils.pool_auth_asset_name, 1) + |> assets.add(authen_policy_id, lp_asset_name, 9223372036854775807) } // This function get Pool output from output list and make sure there's single Pool Output @@ -543,34 +544,34 @@ pub fn has_only_pool_and_author( expect [_] = inputs |> list.filter( - fn(input) { - let Input { - output: Output { - address: Address { payment_credential: payment_cred, .. }, - .. - }, - .. - } = input - pool_payment_cred == payment_cred - }, - ) + fn(input) { + let Input { + output: Output { + address: Address { payment_credential: payment_cred, .. }, + .. + }, + .. + } = input + pool_payment_cred == payment_cred + }, + ) // All inputs does not contain other scripts except for the Pool and Author inputs |> list.all( - fn(input) { - let Input { output: Output { address: addr, .. }, .. } = input - let Address { payment_credential: payment_cred, .. } = addr - when payment_cred is { - ScriptCredential(sh) -> or { - payment_cred == pool_payment_cred, - when pool_author is { - PAMSpendScript(author_hash) -> sh == author_hash - PAMWithdrawScript(author_hash) -> sh == author_hash - _ -> False - }, - } - VerificationKeyCredential(_) -> True - } - }, - ) + fn(input) { + let Input { output: Output { address: addr, .. }, .. } = input + let Address { payment_credential: payment_cred, .. } = addr + when payment_cred is { + Script(sh) -> or { + payment_cred == pool_payment_cred, + when pool_author is { + PAMSpendScript(author_hash) -> sh == author_hash + PAMWithdrawScript(author_hash) -> sh == author_hash + _ -> False + }, + } + VerificationKey(_) -> True + } + }, + ) } diff --git a/lib/amm_dex_v2/types.ak b/lib/amm_dex_v2/types.ak index 2763fad..e192110 100644 --- a/lib/amm_dex_v2/types.ak +++ b/lib/amm_dex_v2/types.ak @@ -1,21 +1,19 @@ -use aiken/dict.{Dict} -use aiken/hash.{Blake2b_224, Blake2b_256, Hash} -use aiken/transaction/credential.{ - Address, Script, StakeCredential, VerificationKey, -} -use aiken/transaction/value.{AssetName, PolicyId} +use aiken/collection/dict.{Dict} +use aiken/crypto.{DataHash, ScriptHash, VerificationKeyHash} +use cardano/address.{Address, Credential} +use cardano/assets.{AssetName, PolicyId} pub type CustomDatumHash = - Hash + DataHash pub type ValidatorHash = - Hash + ScriptHash pub type PubKeyHash = - Hash + VerificationKeyHash pub type SortedValueList = - List<(ByteArray, List<(ByteArray, Int)>)> + Pairs> pub type Asset { policy_id: PolicyId, @@ -23,11 +21,11 @@ pub type Asset { } pub type DatumMap = - Dict, Data> + Dict pub type PoolDatum { // Stake Credential of `Pool Batching` validator - pool_batching_stake_credential: StakeCredential, + pool_batching_stake_credential: Credential, // The Pool's Asset A asset_a: Asset, // The Pool's Asset B diff --git a/lib/amm_dex_v2/utils.ak b/lib/amm_dex_v2/utils.ak index 39e369a..d6cfb78 100644 --- a/lib/amm_dex_v2/utils.ak +++ b/lib/amm_dex_v2/utils.ak @@ -1,23 +1,22 @@ use aiken/builtin -use aiken/bytearray -use aiken/dict.{Dict} -use aiken/hash.{Blake2b_224, Hash} +use aiken/collection/dict +use aiken/collection/list +use aiken/collection/pairs +use aiken/crypto.{DataHash, VerificationKeyHash, sha3_256} use aiken/interval.{Finite, Interval, IntervalBound} -use aiken/list -use aiken/transaction.{ - Datum, DatumHash, InlineDatum, Input, NoDatum, Output, ValidityRange, -} -use aiken/transaction/credential.{ - Address, Inline, ScriptCredential, StakeCredential, VerificationKey, -} -use aiken/transaction/value.{ - AssetName, MintedValue, PolicyId, Value, ada_asset_name, ada_policy_id, -} +use aiken/primitive/bytearray use amm_dex_v2/types.{ Asset, DatumMap, OAMMintScript, OAMSignature, OAMSpendScript, OAMWithdrawScript, OrderAuthorizationMethod, PAMSignature, PAMSpendScript, PAMWithdrawScript, PoolAuthorizationMethod, SortedValueList, } +use cardano/address.{Address, Credential, Script} +use cardano/assets.{ + AssetName, Lovelace, PolicyId, Value, ada_asset_name, ada_policy_id, +} +use cardano/transaction.{ + Datum, DatumHash, InlineDatum, Input, NoDatum, Output, ValidityRange, +} // the legitimate Pool TokenName pub const pool_auth_asset_name = #"4d5350" @@ -99,11 +98,11 @@ pub fn compute_lp_asset_name( asset_b_asset_name: AssetName, ) -> AssetName { let asset_a_ident = - hash.sha3_256(bytearray.concat(asset_a_policy_id, asset_a_asset_name)) + sha3_256(bytearray.concat(asset_a_policy_id, asset_a_asset_name)) let asset_b_ident = - hash.sha3_256(bytearray.concat(asset_b_policy_id, asset_b_asset_name)) + sha3_256(bytearray.concat(asset_b_policy_id, asset_b_asset_name)) let pair_ident = bytearray.concat(asset_a_ident, asset_b_ident) - hash.sha3_256(pair_ident) + sha3_256(pair_ident) } test test_compute_lp_asset_name() { @@ -142,13 +141,13 @@ pub fn must_find_script_datum(datums: DatumMap, datum: Datum) -> Data { /// rewrite dict.get /// convert `Option` to `value` /// `None` -> `fail` -fn dict_must_get(self: dict.Dict, key: key) -> value { - dict_do_must_get(dict.to_list(self), key) +fn dict_must_get(self: dict.Dict, key: DataHash) -> value { + dict_do_must_get(dict.to_pairs(self), key) } -fn dict_do_must_get(self: List<(key, value)>, key k: key) -> value { +fn dict_do_must_get(self: Pairs, key k: DataHash) -> value { when self is { - [(k2, v), ..rest] -> + [Pair(k2, v), ..rest] -> if k == k2 { v } else { @@ -165,14 +164,14 @@ const bar = #"626172" const baz = #"62617a" test dict_must_get_1() fail { - dict_must_get(dict.new(), foo) == "" + dict_must_get(dict.empty, foo) == "" } test dict_must_get_2() { let m = - dict.new() - |> dict.insert(foo, "Aiken", bytearray.compare) - |> dict.insert(bar, "awesome", bytearray.compare) + dict.empty + |> dict.insert(foo, "Aiken") + |> dict.insert(bar, "awesome") and { Some(dict_must_get(m, key: foo)) == dict.get(m, key: foo), Some(dict_must_get(m, key: bar)) == dict.get(m, key: bar), @@ -181,9 +180,9 @@ test dict_must_get_2() { test dict_must_get_3() fail { let m = - dict.new() - |> dict.insert(foo, "Aiken", bytearray.compare) - |> dict.insert(bar, "awesome", bytearray.compare) + dict.empty + |> dict.insert(foo, "Aiken") + |> dict.insert(bar, "awesome") dict_must_get(m, key: baz) == "" } @@ -504,29 +503,24 @@ pub fn must_get_finite_start_validity(validity_range: ValidityRange) -> Int { pub fn value_to_list(val: Value) -> SortedValueList { val - |> value.to_dict - |> dict.to_list - |> list.map( - fn(e) { - let (k, v) = e - (k, dict.to_list(v)) - }, - ) + |> assets.to_dict + |> dict.to_pairs + |> pairs.map(fn(_k, v) { dict.to_pairs(v) }) } // Pool Author can be one of 3 authorization methods pub fn authorize_pool_license( author: PoolAuthorizationMethod, transaction_inputs: List, - withdrawals: Dict, - extra_signatories: List>, + withdrawals: Pairs, + extra_signatories: List, ) -> Bool { when author is { // If the authorization method is PubKey, validate using the provided signature. PAMSignature(pub_key_hash) -> list.has(extra_signatories, pub_key_hash) // If the authorization method is SpendScript, ensure the Utxo is present in the transaction inputs. PAMSpendScript(script_hash) -> { - let auth_cred = ScriptCredential(script_hash) + let auth_cred = Script(script_hash) list.any( transaction_inputs, fn(input) { @@ -539,10 +533,8 @@ pub fn authorize_pool_license( ) } // If the authorization method is WithdrawScript, validate the presence of a withdrawal in the transaction. - PAMWithdrawScript(script_hash) -> { - let credential = Inline(ScriptCredential(script_hash)) - dict.has_key(withdrawals, credential) - } + PAMWithdrawScript(script_hash) -> + pairs.has_key(withdrawals, Script(script_hash)) } } @@ -550,16 +542,16 @@ pub fn authorize_pool_license( pub fn authorize_order_license( author: OrderAuthorizationMethod, transaction_inputs: List, - withdrawals: Dict, - extra_signatories: List>, - transaction_mint: MintedValue, + withdrawals: Pairs, + extra_signatories: List, + transaction_mint: Value, ) -> Bool { when author is { // If the authorization method is PubKey, validate using the provided signature. OAMSignature(pub_key_hash) -> list.has(extra_signatories, pub_key_hash) // If the authorization method is SpendScript, ensure the Utxo is present in the transaction inputs. OAMSpendScript(script_hash) -> { - let auth_cred = ScriptCredential(script_hash) + let auth_cred = Script(script_hash) list.any( transaction_inputs, fn(input) { @@ -572,19 +564,14 @@ pub fn authorize_order_license( ) } // If the authorization method is WithdrawScript, validate the presence of a withdrawal in the transaction. - OAMWithdrawScript(script_hash) -> { - let credential = Inline(ScriptCredential(script_hash)) - dict.has_key(withdrawals, credential) - } + OAMWithdrawScript(script_hash) -> + pairs.has_key(withdrawals, Script(script_hash)) // If the authorization method is MintScript, ensure the minted tokens meet the policy ID requirements and have a non-zero quantity. OAMMintScript(script_hash) -> { - let fst_token_quantity = + expect [Pair(_, fst_token_quantity), ..] = transaction_mint - |> value.from_minted_value() - |> value.tokens(script_hash) - |> dict.to_list() - |> builtin.head_list - |> builtin.snd_pair + |> assets.tokens(script_hash) + |> dict.to_pairs fst_token_quantity != 0 } } diff --git a/plutus.json b/plutus.json index b888018..eae1392 100644 --- a/plutus.json +++ b/plutus.json @@ -3,16 +3,16 @@ "title": "aiken/amm_dex_v2", "description": "Aiken contracts for project 'aiken/amm_dex_v2'", "version": "0.0.0", - "plutusVersion": "v2", + "plutusVersion": "v3", "compiler": { "name": "Aiken", - "version": "v1.0.24-alpha+982eff4" + "version": "v1.1.9+2217206" }, "license": "Apache-2.0" }, "validators": [ { - "title": "always_success.spend", + "title": "always_success.always_success.spend", "datum": { "title": "_d", "schema": { @@ -25,11 +25,19 @@ "$ref": "#/definitions/Data" } }, - "compiledCode": "583c0100003232323232222533300432323253330073370e900118041baa00114a22c60120026012002600c6ea8004526136565734aae7555cf2ba157441", - "hash": "b2501c9e7fd3545b47071b5eb5e657eb121e99c442537defcd503889" + "compiledCode": "5857010100323232323225333002323232323253330073370e900118041baa00113233224a260160026016601800260126ea800458c024c02800cc020008c01c008c01c004c010dd50008a4c26cacae6955ceaab9e5742ae89", + "hash": "91f740da89f81ef5e99264e2c482f96be96ceab7f9e47907f414db9b" }, { - "title": "authen_minting_policy.validate_authen", + "title": "always_success.always_success.else", + "redeemer": { + "schema": {} + }, + "compiledCode": "5857010100323232323225333002323232323253330073370e900118041baa00113233224a260160026016601800260126ea800458c024c02800cc020008c01c008c01c004c010dd50008a4c26cacae6955ceaab9e5742ae89", + "hash": "91f740da89f81ef5e99264e2c482f96be96ceab7f9e47907f414db9b" + }, + { + "title": "authen_minting_policy.authen_minting_policy.mint", "redeemer": { "title": "redeemer", "schema": { @@ -40,15 +48,15 @@ { "title": "out_ref", "schema": { - "$ref": "#/definitions/aiken~1transaction~1OutputReference" + "$ref": "#/definitions/cardano~1transaction~1OutputReference" } } ], - "compiledCode": "5912280100003232323232323232323222253330063370e90001802800899299980399191919299980599b8748000c0280044c8c8c8c8c8c8c8c94ccc04ccdc3a400400c2646464646464646464646464646464a66604a6050004264646464a666052605800426464646464646464646464646464a6660686464646464646464a66607866e3c01c00c4cdc8002800899b90007003375c608000260800046eb8c0f8004c0d8034dd7181e000981e0011bae303a001303200b1323375e6e98c098070dd319199980099998009999800a5eb7bdb1800a9221034d534600480080a92201034d535000480080a800920feffffffffffffffff01222253330393370e00290000802099191980080080311299981f80089982019bb0375200c6e9800d2f5bded8c0264646464a66608066ebccc0b802800930103d8798000133044337606ea4028dd30038028a99982019b8f00a0021323253330423370e900000089982319bb03752018608e608000400a200a608000264a666082a66608800229445280a60103d87a800013374a9000198229ba60014bd70191980080080111299982280089982319bb037520166ea00292f5bded8c0264646464a66608c66ebccc0d003c00930103d879800013304a337606ea403cdd40070028a99982319b8f00f0021323253330483370e900000089982619bb03752022609a608c00400a200a608c00264a66608e66e1c005200014c103d87a800013374a9000198259ba80014bd7019b8000100e13304a337606ea4008dd4000998030030019bad3047003375c608a0046092004608e00226608866ec0dd48011ba600133006006003375660820066eb8c0fc008c10c008c104004c8c8008c8cc004004008894ccc0fc004526132533304000114984c8c8c8c8c8c8c94ccc110cdc3a40000022660140146609000c00a2c6084002660600040026eb8c10800cdd7182080198228019821801182100118210009981e99bb037520046ea00052f5bded8c0646460046600260046600201200e60046600200a0064466e280080048dc98008b1bae30380013038002375c606c002605c00a6eb8c0d0004c0d0008dd71819000981500198180009818001181700098130011919299981499b87480000044c8c8c8c94ccc0c0c0cc0084c8c926300700230060031630310013031002302f001302700316302700223253330293370e9000000899191919299981818198010a4c2c6eb8c0c4004c0c4008dd7181780098138010b181380098140008b181500099198008008031129998148008a5eb7bdb1804c8c94ccc0a0c8c94ccc0a8cdc3a4004002266ebc01cc0bcc0a0008528181400098148010998160011980200200089980200200098168011815800981400098100008b181300099807806119b873330113756604c604e603e604c604e603e00202a911034d53460048008dd59812000981200098118009811000981080098100011bab301e001301e001301d001301c001301b0023758603200260220162646464646464646464a66603e6044002264a66603aa66603a66e1ccc8c004004894ccc08800452000133700900119801001181280099198008008011129998110008a5eb804c8ccc888c8cc00400400c894ccc0a0004400c4c8cc0a8dd3998151ba90063302a37526eb8c09c004cc0a8dd41bad30280014bd7019801801981600118150009bae30210013756604400266006006604c004604800290020a99980e99b8733300d0010114881044d53475300480084cdc3999806800808a441034d534600480085280a50132323232533302430270021323232323232323232323232325333031303400213232323232323253330353371e0189101010000153330353371e014910121ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000015333035323232323232323232323232325333042300d00915333042300d00715333042300d00515333042300d00315333042300d00115333042333042304900b4a09444c8cc004004030894ccc11c00452889919299982318088010998020020008a50304b002304900114a029405280a5014a02940c118004c118008c110004c110008c108004c108008c100004c100008c0f8004c0f8008dd6181e000981a001919b87371a64a66606e66e1d20000011375c6078606a0042a66606e66e1d20020011375c6078606a00426eb8c0f0c0d4008c0d4005203813375e6e98c05c014dd319980c014a441044d53475300480085280a5014a06464a66606c66e1d20000011323232323232323232323232533304530480021323232323232498c04c018c04801cc044020c040024c03c028c8cc004004030894ccc11c00452613233003003304b002301030490011630460013046002304400130440023042001304200230400013040002303e001303e0023758607800260680062c6068004464a66606c66e1d200000113232533303b303e002149858dd7181e000981a0010a99981b19b87480080044c8c94ccc0ecc0f800852616375c607800260680042a66606c66e1d200400113232533303b303e002149858dd7181e000981a0010b181a0009807000981b800981b8011bab30350013035001302c0011630320013301b0152323232323253330323370e9001000899b8f375c606e606000404c2940c0c0004c0d4004c0b4004c0cc004c0ac004dd7181800098180011bae302e00130260023253330283370e9000000899191919299981798190010a4c2c6eb8c0c0004c0c0008dd7181700098130010b18130009800801119299981399b87480100044c0b0c09400858c094004c0a4004c0a4004c0a0004c07c00458c094004cc0380208cdd79ba630023756604a604c603c0026e98ccc00c051221034d534600480088cc04400522010022253330203370e00290000a5eb7bdb1804c8c8cc0040052f5bded8c044a66604c00226604e66ec0dd48031ba60034bd6f7b630099191919299981399baf3301500a0024c103d879800013302b337606ea4028dd30038028a99981399b8f00a00213302b337606ea4028dd300380189981599bb037520046e98004cc01801800cdd598140019bae3026002302a002302800132330010014bd6f7b63011299981280089981319bb037520086ea000d2f5bded8c0264646464a66604c66ebccc05002000930103d879800013302a337606ea4020dd40038028a99981319b8f00800213302a337606ea4020dd400380189981519bb037520046ea0004cc01801800cdd698138019bae30250023029002302700116300d002163300a00723375e604260340020326eacc07c004c07c004c078008dd6180e000980e000980d8011bac3019001301100b22533301433720004002298103d8798000153330143371e0040022980103d87a800014c103d87b800022323300100100322533301800114bd7009919299980b980280109980d80119802002000899802002000980e001180d000911191919299980b19b8748008004520001375a60366028004602800264a66602a66e1d200200114c103d87a8000132323300100100222533301b00114c103d87a8000132323232533301c3371e014004266e95200033020375000297ae0133006006003375a603a0066eb8c06c008c07c008c074004dd5980d18098011809800991980080080211299980c0008a6103d87a800013232323253330193371e010004266e9520003301d374c00297ae0133006006003375660340066eb8c060008c070008c0680048cc0080052210022323300100100322533301500114bd6f7b630099191919299980b19b8f007002100313301a337606ea4008dd3000998030030019bab3017003375c602a0046032004602e00260180126eb8c044004c02400458c03c004c03c008c034004c014008526136563253330073370e90000008a99980518028018a4c2c2a66600e66e1d20020011533300a300500314985858c0140084c88c8c8c94ccc02cc8c8c8c94ccc03ccdc3a4004601c00226464646464646464646464646464646464a66604066e1d2000301f00113232323232323232323232533302b3370e9001181500089919191919191919191919191919191919191919299981f99299982019b87480000044c8c8cc004004090894ccc11800452809919299982299b8f00200514a226600800800260940046eb8c120004dd71822981f0068a99982019b87480080044c8c8c8c8cc0040040c8894ccc12000452809919299982399baf304c3045304c3045304c304d304500200514a22660080080026098004609400266e95200233046375200297ae0375c608c002607c01a264646600200204e44a66608c00229404c8c8c94ccc118cdd78030008a511330050050023046002304a00230480013374a90001982219ba548008cc110c114c0f80352f5c097ae0303e00c1533303f3370e646464a66608466e1d20020011480004dd698239820001182000099299982099b8748008004530103d87a8000132323300100100222533304700114c103d87a800013232323253330483371e911044d5347530000213374a9000198261ba80014bd700998030030019bad3049003375c608e004609600460920026eacc118c0fc008c0fc004c8cc004004060894ccc1100045300103d87a800013232323253330453371e032004266e95200033049374c00297ae01330060060033756608c0066eb8c110008c120008c118005200213253330403375e6e98cc00402122100374c64a66608266e1d20024800052f5bded8c0264646600200297adef6c60225333047001133048337606ea4060dd3001a5eb7bdb1804c8c8c8c94ccc120cdd79980400e00126103d879800013304c337606ea4070dd30038028a99982419b8f01c00213304c337606ea4070dd300380189982619bb037520046e98004cc01801800cdd598248019bae3047002304b002304900132330010014bd6f7b63011299982300089982399bb04c105444d534753004c010101004bd6f7b630099191919299982399baf330074881044d534753000024c103d879800013304b3376098105444d534753004c01010100005153330473371e9101044d5347530000213304b33760980105444d534753004c0101010000313304b337606ea4008dd4000998030030019bad3048003375c608c0046094004609000244a66608466e40008004530103d8798000153330423371e0040022980103d87a800014c103d87b8000153330403375e00802c2a66608066ebcdd319800814245004c0101a000132323232323232323232323232533304d300d0091533304d300d0071533304d300d0051533304d300d0031533304d300d0011533304d33304d305400b4a09444c8cc004004030894ccc14800452889919299982898088010998020020008a503056002305400114a029405280a5014a02940c144004c144008c13c004c13c008c134004c134008c12c004c12c008c124004c124008dd61823800981f802119b87371a64a66608466e1d20000011375c608e60800042a66608466e1d20020011375c608e608000426eb8c11cc100008c100005203814a029405281119198008008019129998230008a5eb7bdb1804c8c8c8c94ccc11ccdc7803801080189982599bb037520046e98004cc01801800cdd598240019bae3046002304a002304800114a02940c0d4004c94ccc0f8cdc3a40080022608660780082c60780066082002607200a607e002607e0046eacc0f4004c0f4008c0ec004c0cc004c0e407cc0e0004c0e0004c0dc004c0d8004c0d4004c0d0004c0ac0a4dd7181880098148008b181780098138019bab302d001302d002302b00130230013029001302900130200013026001301e00116323300100100e22533302400114c0103d87a80001323253330233375e60506042004026266e952000330270024bd70099802002000981400118130009bac302300130230013022002375660400026040002603e0046eacc074004c074004c070008dd6180d000980d000980c8011bac3017001300f0053015001300d00116301300130130023011001300900414984d958c0040188c94ccc02ccdc3a40000022646464646464646464646464a666034603a004264646464646493180a0031809803980900418088049808005191980080080611299980e0008a4c2646600600660400046022603c0022c6036002603600460320026032004602e002602e004602a002602a004602600260260046eb0c044004c02400858c0240048c94ccc028cdc3a400000226464a66601e60240042930b1bae301000130080021533300a3370e900100089919299980798090010a4c2c6eb8c040004c02000854ccc028cdc3a400800226464a66601e60240042930b1bae30100013008002163008001300b3004001230053754002460066ea80055cd2ab9d5573caae7d5d02ba15744ae8c1", - "hash": "c91bb7e2a9d24359b49377d34cc06bcca5b522681b039e6e8805104f" + "compiledCode": "590d0001010032323232323232322253330033232323232323232323232323232323232325333015300c00d13232325333018300f0011533301b301a37540240042c2a666030601c0022a66603660346ea80480085858c060dd5008899299980b9806980c1baa011132323232323253330203023002132323253330233026002132325333022301930233754004264646464a666052605800426600a00626600a0022646464646464646464a66605e646464646464a66606a66e3c0140084cdc8002000899b90005002375c607260740046eb8c0e0004c0d0dd50051bae30363037002375c606a00260626ea80204cdd79ba6016374c64646466660026666002666600297adef6c6001d4881034d534600480080752201034d53500048008074dc999b8a372666e2802001cdc999b8a005004483fbfffffffffffffffc0488894ccc0d4c0b000440104c8c8cc004004018894ccc0ec0044cc0f0cdd81ba9006374c00697adef6c60132333222533303c3372001400626608066ec0dd48051ba60070051533303c3371e014006264a66607a6068607c6ea80044cc104cdd81ba900b3042303f3754002004200464a66607aa66608000229445280a60103d87a80001302a33041374c00297ae03233001001003225333041001133042337606ea402cdd400525eb7bdb1804c8ccc8894ccc108cdc800780189982319bb0375201e6ea003801454ccc108cdc78078018992999821981d18221baa001133047337606ea4040c120c114dd50008010801192999821981d0008a6103d87a80001303033047375000297ae03370000401c26608c66ec0dd48019ba800233006006001375c60800026eb4c104004c114008c10c0044cc100cdd81ba9003374c0046600c00c0026eb8c0e8004dd5981d800981f801181e800991900118030009981c99bb037520046ea00052f5bded8c0600200244a666068002293099299981a8008a4c264666444a66606c66e4000c0084cc01c01ccc0e801000458dd7181a181c0019bae303400130390023037001303700116375c606660680046eb8c0c8004c0b8dd50021bae30303031002375c605e00260566ea8008c0b4c0b8008c0b0004c0a0dd50030b18150009815001181400098121baa00216225333023301a30243754004264646464a666054605a00400a2c6eb8c0ac004c0ac008dd7181480098129baa002163022001163024001323300100100522533302300114bd6f7b630099912999811192999811980c98121baa00113375e00c6050604a6ea8004528181180109981300119802002000899802002000981280098130009811180f9baa0011630210013300537586040008460246660106eacc084c088c078dd518109811180f1baa0010074881034d5346003756603e604060406040604060400046eacc078004c078c078c078c078004c064dd5009099191919299980f1810998029bac302000423375e6042603c6ea800406c54ccc06d4ccc06cc038cc8c004004894ccc08000452000133700900119801001181180099198008008011129998100008a5eb804c8ccc888c8cc00400400c894ccc098004400c4c8cc0a0dd3998141ba90063302830250013302830260014bd7019801801981500118140009bae301f0013756604000266006006604800460440022a666036602266600e00200c9101044d5347530013011333007001006489034d53460014a029404c8c94ccc080c08c0084c94ccc078c054c07cdd500089919191929998129814001099191919192999815181680109919191980d8008a99981519b8f00748810100001533302a3371e00c910121ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001533302a301e00113375e6e98c060008dd319980c80aa441044d53475300480085280a5014a06032605c605e0046eacc0b4004c0b4c0a4dd50008b1815800998078061192999813980e98141baa00113371e6eb8c0b0c0a4dd50008090a50302b30283754605660506ea8004dd7181498150011bae30280013024375400a2c6eb8c098004c098008dd7181200098101baa00116300d302230233023301f37540022c60420026600a004466ebcdd318051bab30213022301e37540026e98ccc02c01d2201034d534600480085858dd5980f981018100011bac301e001301e301e0013019375402444646600200200644a66603a002297ae013322533301c300500213302000233004004001133004004001301f0013020001375c6034602e6ea803854ccc054c02c0344c8cc88c8c8c8c8c8c8c8c8c8c94ccc088c064c08cdd500089919192999812980d98131baa0021325333026301d3027375401e26464646464646603a0022a66605864a66605a6048002264646600200201e44a66606600229404cc894ccc0c8cdc78010028a51133004004001375c606a002606c0026eb8c0c8c0bcdd50038a999816981180089919198008008099129998198008a501332253330323375e606e60686ea8c0dcc0d0dd5181b981c181a1baa00200514a2266008008002606a002606c00266e952002330313032302f375400e97ae0132323300100101022533303300114a026644a66606466ebc0140085288998020020009818981a800981b00099ba548008cc0c4c0c8c0bcdd5003a5eb80c0b4dd50030a999816181119980c004003a45044d534753001533302c3375e6e98c068008dd319980d803a441044d534753004800854ccc0b0cdd78018048a99981619baf374c01c98101a0001302000114a029405280a5014a06036606060620066eacc0bc008c0b8c0acdd51817001181700098149baa302c00a302b302c302c302c302c302c30283754605660506ea803c58dd7181518139baa002163756605260540046050604a6ea8c0a0004c090dd51813981418121baa3027302437540022c646600200200c44a66604c0022980103d87a80001332253330253375e6054604e6ea800803c4c048cc0a40092f5c0266008008002605000260520026eb0c094c098c098014dd598120021bab3023004375860440086eb0c084010c084c084004c080c080004c07cc07c004c068dd5009980d800980d980e000980b9baa00e16222325333018300e301937540022900009bad301d301a375400264a666030601c60326ea80045300103d87a8000132330010013756603c60366ea8008894ccc074004530103d87a8000132333222533301e337220100062a66603c66e3c02000c4c02ccc088dd400125eb80530103d87a8000133006006001375c60380026eb4c074004c084008c07c004c8cc004004010894ccc0700045300103d87a8000132333222533301d337220100062a66603a66e3c02000c4c028cc084dd300125eb80530103d87a8000133006006001375c60360026eacc070004c080008c078004dd2a40004646600200200444a666030002297adef6c60132333222533301933722910100003153330193371e9101000031001100513301d337606ea400cdd3001198030030009bae30170013756603000260380046034002444a6660286016002297adef6c6013232330010014bd6f7b63011299980d00089980d99bb0375200c6e9800d2f5bded8c0264666444a66603666e4002800c4cc07ccdd81ba900a374c00e00a2a66603666e3c02800c4cc07ccdd81ba900a374c00e00226603e66ec0dd48019ba600233006006001375c60320026eacc068004c078008c070004c8cc0040052f5bded8c044a66603200226603466ec0dd48021ba80034bd6f7b630099199911299980d19b9000800313301e337606ea4020dd40038028a99980d19b8f00800313301e337606ea4020dd400380089980f19bb037520066ea0008cc018018004dd7180c0009bad3019001301d002301b001253330113004301237540022602c60266ea800458894ccc044c020c048dd50010991919191919191919191919299981018118010991980080080611192999811801099809006099809005099809004099809003099809002008099809181280109800981300118010010b18108009810801180f800980f801180e800980e801180d800980d801180c800980c8011bac3017001301337540042c4464a666022601000226464a66602c60320040082c6eb8c05c004c04cdd50018a999808980380089919299980b180c8010020b1bae3017001301337540062a666022600800226464a66602c60320040082c6eb8c05c004c04cdd50018b18089baa002370e9002119191919191919191919299980b9806180e0048a99980b98060020a99980b98060018a99980b98060010a99980b98060008a99980b99980b980f002a504a22646600200200c44a66603800229444cc894ccc06cc0400084cc010010004528180f000980f8008a5014a029405280a5014a06036603800a6034008603200860300086eb0c05c014c05c004c058004c054004c050004c03cdd5000919b87371a64a66601a600800226eb8c048c03cdd50010a999806980180089bae3012300f375400426eb8c048c03cdd500118069baa001480e0dc3a40046e1d2000300937540026018601a006601600460140046014002600a6ea8004526136565734aae7555cf2ab9f5740ae855d12ba301", + "hash": "ceecd24b6004dbcb55468906d65dce232ac7375a49ee5b970dba2aaa" }, { - "title": "authen_minting_policy.validate_spend_global_setting", + "title": "authen_minting_policy.authen_minting_policy.spend", "datum": { "title": "datum", "schema": { @@ -58,22 +66,38 @@ "redeemer": { "title": "_redeemer", "schema": { - "$ref": "#/definitions/RedeemerWrapper$Data" + "$ref": "#/definitions/Data" + } + }, + "parameters": [ + { + "title": "out_ref", + "schema": { + "$ref": "#/definitions/cardano~1transaction~1OutputReference" + } } + ], + "compiledCode": "590d0001010032323232323232322253330033232323232323232323232323232323232325333015300c00d13232325333018300f0011533301b301a37540240042c2a666030601c0022a66603660346ea80480085858c060dd5008899299980b9806980c1baa011132323232323253330203023002132323253330233026002132325333022301930233754004264646464a666052605800426600a00626600a0022646464646464646464a66605e646464646464a66606a66e3c0140084cdc8002000899b90005002375c607260740046eb8c0e0004c0d0dd50051bae30363037002375c606a00260626ea80204cdd79ba6016374c64646466660026666002666600297adef6c6001d4881034d534600480080752201034d53500048008074dc999b8a372666e2802001cdc999b8a005004483fbfffffffffffffffc0488894ccc0d4c0b000440104c8c8cc004004018894ccc0ec0044cc0f0cdd81ba9006374c00697adef6c60132333222533303c3372001400626608066ec0dd48051ba60070051533303c3371e014006264a66607a6068607c6ea80044cc104cdd81ba900b3042303f3754002004200464a66607aa66608000229445280a60103d87a80001302a33041374c00297ae03233001001003225333041001133042337606ea402cdd400525eb7bdb1804c8ccc8894ccc108cdc800780189982319bb0375201e6ea003801454ccc108cdc78078018992999821981d18221baa001133047337606ea4040c120c114dd50008010801192999821981d0008a6103d87a80001303033047375000297ae03370000401c26608c66ec0dd48019ba800233006006001375c60800026eb4c104004c114008c10c0044cc100cdd81ba9003374c0046600c00c0026eb8c0e8004dd5981d800981f801181e800991900118030009981c99bb037520046ea00052f5bded8c0600200244a666068002293099299981a8008a4c264666444a66606c66e4000c0084cc01c01ccc0e801000458dd7181a181c0019bae303400130390023037001303700116375c606660680046eb8c0c8004c0b8dd50021bae30303031002375c605e00260566ea8008c0b4c0b8008c0b0004c0a0dd50030b18150009815001181400098121baa00216225333023301a30243754004264646464a666054605a00400a2c6eb8c0ac004c0ac008dd7181480098129baa002163022001163024001323300100100522533302300114bd6f7b630099912999811192999811980c98121baa00113375e00c6050604a6ea8004528181180109981300119802002000899802002000981280098130009811180f9baa0011630210013300537586040008460246660106eacc084c088c078dd518109811180f1baa0010074881034d5346003756603e604060406040604060400046eacc078004c078c078c078c078004c064dd5009099191919299980f1810998029bac302000423375e6042603c6ea800406c54ccc06d4ccc06cc038cc8c004004894ccc08000452000133700900119801001181180099198008008011129998100008a5eb804c8ccc888c8cc00400400c894ccc098004400c4c8cc0a0dd3998141ba90063302830250013302830260014bd7019801801981500118140009bae301f0013756604000266006006604800460440022a666036602266600e00200c9101044d5347530013011333007001006489034d53460014a029404c8c94ccc080c08c0084c94ccc078c054c07cdd500089919191929998129814001099191919192999815181680109919191980d8008a99981519b8f00748810100001533302a3371e00c910121ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001533302a301e00113375e6e98c060008dd319980c80aa441044d53475300480085280a5014a06032605c605e0046eacc0b4004c0b4c0a4dd50008b1815800998078061192999813980e98141baa00113371e6eb8c0b0c0a4dd50008090a50302b30283754605660506ea8004dd7181498150011bae30280013024375400a2c6eb8c098004c098008dd7181200098101baa00116300d302230233023301f37540022c60420026600a004466ebcdd318051bab30213022301e37540026e98ccc02c01d2201034d534600480085858dd5980f981018100011bac301e001301e301e0013019375402444646600200200644a66603a002297ae013322533301c300500213302000233004004001133004004001301f0013020001375c6034602e6ea803854ccc054c02c0344c8cc88c8c8c8c8c8c8c8c8c8c94ccc088c064c08cdd500089919192999812980d98131baa0021325333026301d3027375401e26464646464646603a0022a66605864a66605a6048002264646600200201e44a66606600229404cc894ccc0c8cdc78010028a51133004004001375c606a002606c0026eb8c0c8c0bcdd50038a999816981180089919198008008099129998198008a501332253330323375e606e60686ea8c0dcc0d0dd5181b981c181a1baa00200514a2266008008002606a002606c00266e952002330313032302f375400e97ae0132323300100101022533303300114a026644a66606466ebc0140085288998020020009818981a800981b00099ba548008cc0c4c0c8c0bcdd5003a5eb80c0b4dd50030a999816181119980c004003a45044d534753001533302c3375e6e98c068008dd319980d803a441044d534753004800854ccc0b0cdd78018048a99981619baf374c01c98101a0001302000114a029405280a5014a06036606060620066eacc0bc008c0b8c0acdd51817001181700098149baa302c00a302b302c302c302c302c302c30283754605660506ea803c58dd7181518139baa002163756605260540046050604a6ea8c0a0004c090dd51813981418121baa3027302437540022c646600200200c44a66604c0022980103d87a80001332253330253375e6054604e6ea800803c4c048cc0a40092f5c0266008008002605000260520026eb0c094c098c098014dd598120021bab3023004375860440086eb0c084010c084c084004c080c080004c07cc07c004c068dd5009980d800980d980e000980b9baa00e16222325333018300e301937540022900009bad301d301a375400264a666030601c60326ea80045300103d87a8000132330010013756603c60366ea8008894ccc074004530103d87a8000132333222533301e337220100062a66603c66e3c02000c4c02ccc088dd400125eb80530103d87a8000133006006001375c60380026eb4c074004c084008c07c004c8cc004004010894ccc0700045300103d87a8000132333222533301d337220100062a66603a66e3c02000c4c028cc084dd300125eb80530103d87a8000133006006001375c60360026eacc070004c080008c078004dd2a40004646600200200444a666030002297adef6c60132333222533301933722910100003153330193371e9101000031001100513301d337606ea400cdd3001198030030009bae30170013756603000260380046034002444a6660286016002297adef6c6013232330010014bd6f7b63011299980d00089980d99bb0375200c6e9800d2f5bded8c0264666444a66603666e4002800c4cc07ccdd81ba900a374c00e00a2a66603666e3c02800c4cc07ccdd81ba900a374c00e00226603e66ec0dd48019ba600233006006001375c60320026eacc068004c078008c070004c8cc0040052f5bded8c044a66603200226603466ec0dd48021ba80034bd6f7b630099199911299980d19b9000800313301e337606ea4020dd40038028a99980d19b8f00800313301e337606ea4020dd400380089980f19bb037520066ea0008cc018018004dd7180c0009bad3019001301d002301b001253330113004301237540022602c60266ea800458894ccc044c020c048dd50010991919191919191919191919299981018118010991980080080611192999811801099809006099809005099809004099809003099809002008099809181280109800981300118010010b18108009810801180f800980f801180e800980e801180d800980d801180c800980c8011bac3017001301337540042c4464a666022601000226464a66602c60320040082c6eb8c05c004c04cdd50018a999808980380089919299980b180c8010020b1bae3017001301337540062a666022600800226464a66602c60320040082c6eb8c05c004c04cdd50018b18089baa002370e9002119191919191919191919299980b9806180e0048a99980b98060020a99980b98060018a99980b98060010a99980b98060008a99980b99980b980f002a504a22646600200200c44a66603800229444cc894ccc06cc0400084cc010010004528180f000980f8008a5014a029405280a5014a06036603800a6034008603200860300086eb0c05c014c05c004c058004c054004c050004c03cdd5000919b87371a64a66601a600800226eb8c048c03cdd50010a999806980180089bae3012300f375400426eb8c048c03cdd500118069baa001480e0dc3a40046e1d2000300937540026018601a006601600460140046014002600a6ea8004526136565734aae7555cf2ab9f5740ae855d12ba301", + "hash": "ceecd24b6004dbcb55468906d65dce232ac7375a49ee5b970dba2aaa" + }, + { + "title": "authen_minting_policy.authen_minting_policy.else", + "redeemer": { + "schema": {} }, "parameters": [ { "title": "out_ref", "schema": { - "$ref": "#/definitions/aiken~1transaction~1OutputReference" + "$ref": "#/definitions/cardano~1transaction~1OutputReference" } } ], - "compiledCode": "5912280100003232323232323232323222253330063370e90001802800899299980399191919299980599b8748000c0280044c8c8c8c8c8c8c8c94ccc04ccdc3a400400c2646464646464646464646464646464a66604a6050004264646464a666052605800426464646464646464646464646464a6660686464646464646464a66607866e3c01c00c4cdc8002800899b90007003375c608000260800046eb8c0f8004c0d8034dd7181e000981e0011bae303a001303200b1323375e6e98c098070dd319199980099998009999800a5eb7bdb1800a9221034d534600480080a92201034d535000480080a800920feffffffffffffffff01222253330393370e00290000802099191980080080311299981f80089982019bb0375200c6e9800d2f5bded8c0264646464a66608066ebccc0b802800930103d8798000133044337606ea4028dd30038028a99982019b8f00a0021323253330423370e900000089982319bb03752018608e608000400a200a608000264a666082a66608800229445280a60103d87a800013374a9000198229ba60014bd70191980080080111299982280089982319bb037520166ea00292f5bded8c0264646464a66608c66ebccc0d003c00930103d879800013304a337606ea403cdd40070028a99982319b8f00f0021323253330483370e900000089982619bb03752022609a608c00400a200a608c00264a66608e66e1c005200014c103d87a800013374a9000198259ba80014bd7019b8000100e13304a337606ea4008dd4000998030030019bad3047003375c608a0046092004608e00226608866ec0dd48011ba600133006006003375660820066eb8c0fc008c10c008c104004c8c8008c8cc004004008894ccc0fc004526132533304000114984c8c8c8c8c8c8c94ccc110cdc3a40000022660140146609000c00a2c6084002660600040026eb8c10800cdd7182080198228019821801182100118210009981e99bb037520046ea00052f5bded8c0646460046600260046600201200e60046600200a0064466e280080048dc98008b1bae30380013038002375c606c002605c00a6eb8c0d0004c0d0008dd71819000981500198180009818001181700098130011919299981499b87480000044c8c8c8c94ccc0c0c0cc0084c8c926300700230060031630310013031002302f001302700316302700223253330293370e9000000899191919299981818198010a4c2c6eb8c0c4004c0c4008dd7181780098138010b181380098140008b181500099198008008031129998148008a5eb7bdb1804c8c94ccc0a0c8c94ccc0a8cdc3a4004002266ebc01cc0bcc0a0008528181400098148010998160011980200200089980200200098168011815800981400098100008b181300099807806119b873330113756604c604e603e604c604e603e00202a911034d53460048008dd59812000981200098118009811000981080098100011bab301e001301e001301d001301c001301b0023758603200260220162646464646464646464a66603e6044002264a66603aa66603a66e1ccc8c004004894ccc08800452000133700900119801001181280099198008008011129998110008a5eb804c8ccc888c8cc00400400c894ccc0a0004400c4c8cc0a8dd3998151ba90063302a37526eb8c09c004cc0a8dd41bad30280014bd7019801801981600118150009bae30210013756604400266006006604c004604800290020a99980e99b8733300d0010114881044d53475300480084cdc3999806800808a441034d534600480085280a50132323232533302430270021323232323232323232323232325333031303400213232323232323253330353371e0189101010000153330353371e014910121ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000015333035323232323232323232323232325333042300d00915333042300d00715333042300d00515333042300d00315333042300d00115333042333042304900b4a09444c8cc004004030894ccc11c00452889919299982318088010998020020008a50304b002304900114a029405280a5014a02940c118004c118008c110004c110008c108004c108008c100004c100008c0f8004c0f8008dd6181e000981a001919b87371a64a66606e66e1d20000011375c6078606a0042a66606e66e1d20020011375c6078606a00426eb8c0f0c0d4008c0d4005203813375e6e98c05c014dd319980c014a441044d53475300480085280a5014a06464a66606c66e1d20000011323232323232323232323232533304530480021323232323232498c04c018c04801cc044020c040024c03c028c8cc004004030894ccc11c00452613233003003304b002301030490011630460013046002304400130440023042001304200230400013040002303e001303e0023758607800260680062c6068004464a66606c66e1d200000113232533303b303e002149858dd7181e000981a0010a99981b19b87480080044c8c94ccc0ecc0f800852616375c607800260680042a66606c66e1d200400113232533303b303e002149858dd7181e000981a0010b181a0009807000981b800981b8011bab30350013035001302c0011630320013301b0152323232323253330323370e9001000899b8f375c606e606000404c2940c0c0004c0d4004c0b4004c0cc004c0ac004dd7181800098180011bae302e00130260023253330283370e9000000899191919299981798190010a4c2c6eb8c0c0004c0c0008dd7181700098130010b18130009800801119299981399b87480100044c0b0c09400858c094004c0a4004c0a4004c0a0004c07c00458c094004cc0380208cdd79ba630023756604a604c603c0026e98ccc00c051221034d534600480088cc04400522010022253330203370e00290000a5eb7bdb1804c8c8cc0040052f5bded8c044a66604c00226604e66ec0dd48031ba60034bd6f7b630099191919299981399baf3301500a0024c103d879800013302b337606ea4028dd30038028a99981399b8f00a00213302b337606ea4028dd300380189981599bb037520046e98004cc01801800cdd598140019bae3026002302a002302800132330010014bd6f7b63011299981280089981319bb037520086ea000d2f5bded8c0264646464a66604c66ebccc05002000930103d879800013302a337606ea4020dd40038028a99981319b8f00800213302a337606ea4020dd400380189981519bb037520046ea0004cc01801800cdd698138019bae30250023029002302700116300d002163300a00723375e604260340020326eacc07c004c07c004c078008dd6180e000980e000980d8011bac3019001301100b22533301433720004002298103d8798000153330143371e0040022980103d87a800014c103d87b800022323300100100322533301800114bd7009919299980b980280109980d80119802002000899802002000980e001180d000911191919299980b19b8748008004520001375a60366028004602800264a66602a66e1d200200114c103d87a8000132323300100100222533301b00114c103d87a8000132323232533301c3371e014004266e95200033020375000297ae0133006006003375a603a0066eb8c06c008c07c008c074004dd5980d18098011809800991980080080211299980c0008a6103d87a800013232323253330193371e010004266e9520003301d374c00297ae0133006006003375660340066eb8c060008c070008c0680048cc0080052210022323300100100322533301500114bd6f7b630099191919299980b19b8f007002100313301a337606ea4008dd3000998030030019bab3017003375c602a0046032004602e00260180126eb8c044004c02400458c03c004c03c008c034004c014008526136563253330073370e90000008a99980518028018a4c2c2a66600e66e1d20020011533300a300500314985858c0140084c88c8c8c94ccc02cc8c8c8c94ccc03ccdc3a4004601c00226464646464646464646464646464646464a66604066e1d2000301f00113232323232323232323232533302b3370e9001181500089919191919191919191919191919191919191919299981f99299982019b87480000044c8c8cc004004090894ccc11800452809919299982299b8f00200514a226600800800260940046eb8c120004dd71822981f0068a99982019b87480080044c8c8c8c8cc0040040c8894ccc12000452809919299982399baf304c3045304c3045304c304d304500200514a22660080080026098004609400266e95200233046375200297ae0375c608c002607c01a264646600200204e44a66608c00229404c8c8c94ccc118cdd78030008a511330050050023046002304a00230480013374a90001982219ba548008cc110c114c0f80352f5c097ae0303e00c1533303f3370e646464a66608466e1d20020011480004dd698239820001182000099299982099b8748008004530103d87a8000132323300100100222533304700114c103d87a800013232323253330483371e911044d5347530000213374a9000198261ba80014bd700998030030019bad3049003375c608e004609600460920026eacc118c0fc008c0fc004c8cc004004060894ccc1100045300103d87a800013232323253330453371e032004266e95200033049374c00297ae01330060060033756608c0066eb8c110008c120008c118005200213253330403375e6e98cc00402122100374c64a66608266e1d20024800052f5bded8c0264646600200297adef6c60225333047001133048337606ea4060dd3001a5eb7bdb1804c8c8c8c94ccc120cdd79980400e00126103d879800013304c337606ea4070dd30038028a99982419b8f01c00213304c337606ea4070dd300380189982619bb037520046e98004cc01801800cdd598248019bae3047002304b002304900132330010014bd6f7b63011299982300089982399bb04c105444d534753004c010101004bd6f7b630099191919299982399baf330074881044d534753000024c103d879800013304b3376098105444d534753004c01010100005153330473371e9101044d5347530000213304b33760980105444d534753004c0101010000313304b337606ea4008dd4000998030030019bad3048003375c608c0046094004609000244a66608466e40008004530103d8798000153330423371e0040022980103d87a800014c103d87b8000153330403375e00802c2a66608066ebcdd319800814245004c0101a000132323232323232323232323232533304d300d0091533304d300d0071533304d300d0051533304d300d0031533304d300d0011533304d33304d305400b4a09444c8cc004004030894ccc14800452889919299982898088010998020020008a503056002305400114a029405280a5014a02940c144004c144008c13c004c13c008c134004c134008c12c004c12c008c124004c124008dd61823800981f802119b87371a64a66608466e1d20000011375c608e60800042a66608466e1d20020011375c608e608000426eb8c11cc100008c100005203814a029405281119198008008019129998230008a5eb7bdb1804c8c8c8c94ccc11ccdc7803801080189982599bb037520046e98004cc01801800cdd598240019bae3046002304a002304800114a02940c0d4004c94ccc0f8cdc3a40080022608660780082c60780066082002607200a607e002607e0046eacc0f4004c0f4008c0ec004c0cc004c0e407cc0e0004c0e0004c0dc004c0d8004c0d4004c0d0004c0ac0a4dd7181880098148008b181780098138019bab302d001302d002302b00130230013029001302900130200013026001301e00116323300100100e22533302400114c0103d87a80001323253330233375e60506042004026266e952000330270024bd70099802002000981400118130009bac302300130230013022002375660400026040002603e0046eacc074004c074004c070008dd6180d000980d000980c8011bac3017001300f0053015001300d00116301300130130023011001300900414984d958c0040188c94ccc02ccdc3a40000022646464646464646464646464a666034603a004264646464646493180a0031809803980900418088049808005191980080080611299980e0008a4c2646600600660400046022603c0022c6036002603600460320026032004602e002602e004602a002602a004602600260260046eb0c044004c02400858c0240048c94ccc028cdc3a400000226464a66601e60240042930b1bae301000130080021533300a3370e900100089919299980798090010a4c2c6eb8c040004c02000854ccc028cdc3a400800226464a66601e60240042930b1bae30100013008002163008001300b3004001230053754002460066ea80055cd2ab9d5573caae7d5d02ba15744ae8c1", - "hash": "c91bb7e2a9d24359b49377d34cc06bcca5b522681b039e6e8805104f" + "compiledCode": "590d0001010032323232323232322253330033232323232323232323232323232323232325333015300c00d13232325333018300f0011533301b301a37540240042c2a666030601c0022a66603660346ea80480085858c060dd5008899299980b9806980c1baa011132323232323253330203023002132323253330233026002132325333022301930233754004264646464a666052605800426600a00626600a0022646464646464646464a66605e646464646464a66606a66e3c0140084cdc8002000899b90005002375c607260740046eb8c0e0004c0d0dd50051bae30363037002375c606a00260626ea80204cdd79ba6016374c64646466660026666002666600297adef6c6001d4881034d534600480080752201034d53500048008074dc999b8a372666e2802001cdc999b8a005004483fbfffffffffffffffc0488894ccc0d4c0b000440104c8c8cc004004018894ccc0ec0044cc0f0cdd81ba9006374c00697adef6c60132333222533303c3372001400626608066ec0dd48051ba60070051533303c3371e014006264a66607a6068607c6ea80044cc104cdd81ba900b3042303f3754002004200464a66607aa66608000229445280a60103d87a80001302a33041374c00297ae03233001001003225333041001133042337606ea402cdd400525eb7bdb1804c8ccc8894ccc108cdc800780189982319bb0375201e6ea003801454ccc108cdc78078018992999821981d18221baa001133047337606ea4040c120c114dd50008010801192999821981d0008a6103d87a80001303033047375000297ae03370000401c26608c66ec0dd48019ba800233006006001375c60800026eb4c104004c114008c10c0044cc100cdd81ba9003374c0046600c00c0026eb8c0e8004dd5981d800981f801181e800991900118030009981c99bb037520046ea00052f5bded8c0600200244a666068002293099299981a8008a4c264666444a66606c66e4000c0084cc01c01ccc0e801000458dd7181a181c0019bae303400130390023037001303700116375c606660680046eb8c0c8004c0b8dd50021bae30303031002375c605e00260566ea8008c0b4c0b8008c0b0004c0a0dd50030b18150009815001181400098121baa00216225333023301a30243754004264646464a666054605a00400a2c6eb8c0ac004c0ac008dd7181480098129baa002163022001163024001323300100100522533302300114bd6f7b630099912999811192999811980c98121baa00113375e00c6050604a6ea8004528181180109981300119802002000899802002000981280098130009811180f9baa0011630210013300537586040008460246660106eacc084c088c078dd518109811180f1baa0010074881034d5346003756603e604060406040604060400046eacc078004c078c078c078c078004c064dd5009099191919299980f1810998029bac302000423375e6042603c6ea800406c54ccc06d4ccc06cc038cc8c004004894ccc08000452000133700900119801001181180099198008008011129998100008a5eb804c8ccc888c8cc00400400c894ccc098004400c4c8cc0a0dd3998141ba90063302830250013302830260014bd7019801801981500118140009bae301f0013756604000266006006604800460440022a666036602266600e00200c9101044d5347530013011333007001006489034d53460014a029404c8c94ccc080c08c0084c94ccc078c054c07cdd500089919191929998129814001099191919192999815181680109919191980d8008a99981519b8f00748810100001533302a3371e00c910121ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001533302a301e00113375e6e98c060008dd319980c80aa441044d53475300480085280a5014a06032605c605e0046eacc0b4004c0b4c0a4dd50008b1815800998078061192999813980e98141baa00113371e6eb8c0b0c0a4dd50008090a50302b30283754605660506ea8004dd7181498150011bae30280013024375400a2c6eb8c098004c098008dd7181200098101baa00116300d302230233023301f37540022c60420026600a004466ebcdd318051bab30213022301e37540026e98ccc02c01d2201034d534600480085858dd5980f981018100011bac301e001301e301e0013019375402444646600200200644a66603a002297ae013322533301c300500213302000233004004001133004004001301f0013020001375c6034602e6ea803854ccc054c02c0344c8cc88c8c8c8c8c8c8c8c8c8c94ccc088c064c08cdd500089919192999812980d98131baa0021325333026301d3027375401e26464646464646603a0022a66605864a66605a6048002264646600200201e44a66606600229404cc894ccc0c8cdc78010028a51133004004001375c606a002606c0026eb8c0c8c0bcdd50038a999816981180089919198008008099129998198008a501332253330323375e606e60686ea8c0dcc0d0dd5181b981c181a1baa00200514a2266008008002606a002606c00266e952002330313032302f375400e97ae0132323300100101022533303300114a026644a66606466ebc0140085288998020020009818981a800981b00099ba548008cc0c4c0c8c0bcdd5003a5eb80c0b4dd50030a999816181119980c004003a45044d534753001533302c3375e6e98c068008dd319980d803a441044d534753004800854ccc0b0cdd78018048a99981619baf374c01c98101a0001302000114a029405280a5014a06036606060620066eacc0bc008c0b8c0acdd51817001181700098149baa302c00a302b302c302c302c302c302c30283754605660506ea803c58dd7181518139baa002163756605260540046050604a6ea8c0a0004c090dd51813981418121baa3027302437540022c646600200200c44a66604c0022980103d87a80001332253330253375e6054604e6ea800803c4c048cc0a40092f5c0266008008002605000260520026eb0c094c098c098014dd598120021bab3023004375860440086eb0c084010c084c084004c080c080004c07cc07c004c068dd5009980d800980d980e000980b9baa00e16222325333018300e301937540022900009bad301d301a375400264a666030601c60326ea80045300103d87a8000132330010013756603c60366ea8008894ccc074004530103d87a8000132333222533301e337220100062a66603c66e3c02000c4c02ccc088dd400125eb80530103d87a8000133006006001375c60380026eb4c074004c084008c07c004c8cc004004010894ccc0700045300103d87a8000132333222533301d337220100062a66603a66e3c02000c4c028cc084dd300125eb80530103d87a8000133006006001375c60360026eacc070004c080008c078004dd2a40004646600200200444a666030002297adef6c60132333222533301933722910100003153330193371e9101000031001100513301d337606ea400cdd3001198030030009bae30170013756603000260380046034002444a6660286016002297adef6c6013232330010014bd6f7b63011299980d00089980d99bb0375200c6e9800d2f5bded8c0264666444a66603666e4002800c4cc07ccdd81ba900a374c00e00a2a66603666e3c02800c4cc07ccdd81ba900a374c00e00226603e66ec0dd48019ba600233006006001375c60320026eacc068004c078008c070004c8cc0040052f5bded8c044a66603200226603466ec0dd48021ba80034bd6f7b630099199911299980d19b9000800313301e337606ea4020dd40038028a99980d19b8f00800313301e337606ea4020dd400380089980f19bb037520066ea0008cc018018004dd7180c0009bad3019001301d002301b001253330113004301237540022602c60266ea800458894ccc044c020c048dd50010991919191919191919191919299981018118010991980080080611192999811801099809006099809005099809004099809003099809002008099809181280109800981300118010010b18108009810801180f800980f801180e800980e801180d800980d801180c800980c8011bac3017001301337540042c4464a666022601000226464a66602c60320040082c6eb8c05c004c04cdd50018a999808980380089919299980b180c8010020b1bae3017001301337540062a666022600800226464a66602c60320040082c6eb8c05c004c04cdd50018b18089baa002370e9002119191919191919191919299980b9806180e0048a99980b98060020a99980b98060018a99980b98060010a99980b98060008a99980b99980b980f002a504a22646600200200c44a66603800229444cc894ccc06cc0400084cc010010004528180f000980f8008a5014a029405280a5014a06036603800a6034008603200860300086eb0c05c014c05c004c058004c054004c050004c03cdd5000919b87371a64a66601a600800226eb8c048c03cdd50010a999806980180089bae3012300f375400426eb8c048c03cdd500118069baa001480e0dc3a40046e1d2000300937540026018601a006601600460140046014002600a6ea8004526136565734aae7555cf2ab9f5740ae855d12ba301", + "hash": "ceecd24b6004dbcb55468906d65dce232ac7375a49ee5b970dba2aaa" }, { - "title": "factory_validator.validate_factory", + "title": "factory_validator.factory_validator.spend", "datum": { "title": "datum", "schema": { @@ -90,42 +114,59 @@ { "title": "authen_policy_id", "schema": { - "$ref": "#/definitions/ByteArray" + "$ref": "#/definitions/PolicyId" } }, { "title": "pool_address", "schema": { - "$ref": "#/definitions/aiken~1transaction~1credential~1Address" + "$ref": "#/definitions/cardano~1address~1Address" } }, { "title": "pool_batching_stake_credential", "schema": { - "$ref": "#/definitions/aiken~1transaction~1credential~1Referenced$aiken~1transaction~1credential~1Credential" + "$ref": "#/definitions/cardano~1address~1Credential" } } ], - "compiledCode": "590c9f0100003232323232323232322322222232323232533300e3232323253330123370e900118080008991919191919191919191919191919191919191919191919191929998161919191919191919299981a19b8f00700313372000a002266e4001c00cdd7181c000981c0011bae3036001302f011375c606800260680046eb8c0c8004c0ac03c4c8c94ccc0b8cdc3a40006058002264646464646464646464646464a66607c6082002264646464a66607e66ebcdd318008049ba633300303b4881034d534600480084c8c8c8c94ccc118c1240084c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc1614ccc160cdc80038028a99982c19b90003001153330583371e00e06e2a6660b066e3c0040d454ccc160cdc7816002899b8f02c00314a029405280a5014a02646464a6660bc60c2004264646464646464646464646464646464646464646464646464646464646464646464a6660fa66ebc0681dc54ccc1f4cdd780c0300a99983e99baf01605e1533307d3370e0280082a6660fa66e1c04801854ccc1f4cdc38080028a99983e99b884800001854ccc1f4cdc42400000a2a6660fa66e2120140041533307d3370e01c0182a6660faa6660fa66e2403920a01f13371290050070a501533307d533307d00814a026660fa941282511533307d3375e01498103d87a80001533307d3375e6e98cc10018922100374c66660046666004666600497adef6c600794881034d534600480081e52201034d535000480081e414520feffffffffffffffff0113375e6e98004dd30100a5014a029405280a5014a029405280a5014a029405280a5014a06666002666600266660026666002666600297adef6c6048810048810048302a2941015c15401414c1440101e01400081e1221034d5350004800888894ccc1fccdc3800a40002008264646600200200c44a66610a0200226610c0266ec0dd48031ba60034bd6f7b63009919191929998430099baf3304b00a0024c0103d879800013308a01337606ea4028dd30038028a9998430099b8f00a002132325333088013370e90000008998460099bb03752018611a02610e0200400a200a610a0200264a66610e02a6661140200229445280a60103d87a800013374a900019845809ba60014bd701919800800801112999845808008998460099bb037520166ea00292f5bded8c0264646464a6661180266ebccc14403c00930103d879800013309001337606ea403cdd40070028a9998460099b8f00f00213232533308e013370e90000008998490099bb03752022612602611a0200400a200a61160200264a66611a0266e1c005200014c103d87a800013374a900019848809ba80014bd7019b8000100e13309001337606ea4008dd4000998030030019bad308d01003375c611602004611e02004611a020022661140266ec0dd48011ba6001330060060033756610e020066eb8c21404008c22404008c21c04004c8c8008c8cc004004008894ccc2140400452613253330860100114984c8c8c8c8c8c8c94ccc22804cdc3a40000022660140146611c0200c00a2c610e020026609a0040026eb8c2200400cdd7184380801984580801984480801184400801184400800998418099bb037520046ea00052f5bded8c066e0520feffffffffffffffff0133702002900a1919299983d99b8833704002002004266e0000520021001533307a3371000290000b0a99983d19b8700148000520001533307a3370e00290010a40042a6660f466e1c00520041480084c8c8ccc00400400c0088894ccc1f8cdc4000801099980180180099b833370066e0c014004005200410023370066e0c005200448008cdc100100099981000d827826a99983ba99983b99b8f05248810013371e0a09110014a0266e0400520c0a8a504100133301e01905104f3370e9001183b1baa307a001307a00230780013078002375a60ec00260ec0046eb4c1d0004c1d0008dd6983900098390011bad30700013070002375a60dc00260dc00460d800260d800460d400260d400460d000260c200464a6660c466e1d2000001132323232323232323232323232323232323232325333079307c002132323232498c94ccc1e8cdc3a400000226464a6660fe6104020042930b1bad30800100130790071533307a3370e90010008a99983e983c8038a4c2c2c60ee00c60d802260d602464a6660ee66e1d200000113232533307c307f002132498c94ccc1e8cdc3a400000226464a6660fe6104020042930b1bae30800100130790021533307a3370e900100089919299983f9841008010a4c2c6eb8c20004004c1e400858c1dc00458c1f4004c1d805054ccc1dccdc3a40040022646464646464a666100026106020042930b1bad308101001308101002375a60fe00260fe0046eb4c1f4004c1d805058c1d004c58cdc3a400460ec6ea8c1e8004c1e8008c1e0004c1e0008dd6983b000983b0011bad30740013074002375a60e400260e40046eb4c1c0004c1c0008dd6983700098370011836000983600118350009835001183400098308010b182f800980a800983200098320011bab30620013062001305a00116305f0013302004123232323232323253330613370e90010008a99983099baf05c00613370e6660120080ba911034d535000480085280a50305e0013064001305d003375660c400260c400460c000260b2002444646464a6660bc66e1d20020011480004dd69831982e801182d80099299982e99b87480080045300103d87a8000132323300100100222533306300114c103d87a800013232323253330643371e014004266e95200033068375000297ae0133006006003375a60ca0066eb8c18c008c19c008c194004dd59831182e001182d00099198008008021129998300008a6103d87a800013232323253330613371e010004266e95200033065374c00297ae0133006006003375660c40066eb8c180008c190008c18800458dd7182e000982e0011bae305a0013053006375c60b000260b00046eb8c158004c13c010c114004c00c010c10c004c0040188c94ccc134cdc3a4008002260a460980042c6094002609e002609e002609c002608c00a60960026096002609400260840062c608e002608e004608a0026600c04e4646464646464a66608c66ebc0380044cdd79ba63008003374c666014084911034d53460048008528182500098218019bab304800130480023046001303f001162330020014890022323300100100322533304400114bd6f7b630099191919299982299b8f0070021003133049337606ea4008dd3000998030030019bab3046003375c60880046090004608c002444a66607e66e1c005200014bd6f7b6300991919800800a5eb7bdb180894ccc1140044cc118cdd81ba9006374c00697adef6c6013232323253330463375e6601601400498103d879800013304a337606ea4028dd30038028a99982319b8f00a00213304a337606ea4028dd300380189982519bb037520046e98004cc01801800cdd598238019bae30450023049002304700132330010014bd6f7b63011299982200089982299bb037520086ea000d2f5bded8c0264646464a66608a66ebccc02802000930103d8798000133049337606ea4020dd40038028a99982299b8f008002133049337606ea4020dd400380189982499bb037520046ea0004cc01801800cdd698230019bae30440023048002304600122533303d33720004002298103d87980001533303d3371e0040022980103d87a800014c103d87b8000163300102523375e006608060746080607460806082607400244646600200200644a666080002297ae013232533303f30050021330430023300400400113300400400130440023042001303d001303600337566076002607600460720026064002606e002606e002605e0026068002605a0022c646600200203244a666064002298103d87a80001323253330313375e606c606000403c266e952000330350024bd70099802002000981b001181a00099191801198009801198008048039801198008028019119b8a002001237260022c6eb8c0c0004c0c0008dd7181700098138049bae302c001302c002375c6054002604600e6eb8c0a0004c0a0008dd71813000980f80c981200098120011811000980d80a1bab30200013020001301f0023758603a002603a00260380046eb0c068004c04c014c060004c04400458c058004c058008c050004c0340145261365632533300e3370e9000000899191919299980a980c0010991924c600e004600c0062c602c002602c0046028002601a00c2c601600a464a66601c66e1d200000113232323253330153018002149858dd7180b000980b0011bae3014001300d00216300b0013001004232533300c3370e90000008991919192999809980b0010a4c2c6eb8c050004c050008dd7180900098058010b18048009bae001230043754002460086ea80055cd2ab9d5573caae7d5d02ba15745", - "hash": "05097567549acb519229a85d2332cb50c20907096affc91d35e58b49" + "compiledCode": "590b8e010100323232323232322322225333006323232323253323300c3001300d375400426466446464a666022600460246ea80204c8c8c8c94ccc060c06c0084cc01400c4cc0140044c8c8c8c8c8c8c8c94ccc074c038c078dd500789919191919191919192999813191919191919299981619b8f005002133720008002266e40014008dd7181818188011bae302f001302b375401a6eb8c0b4c0b8008dd7181600098141baa00b13232325333029301a302a3754002264646464a66606060666600202c466ebc00cc0ccc0c0dd5181998181baa30333034303037540022646464a66606066ebcdd318008031ba633300302e489034d534600480084c8c8c8c94ccc0dcc0e80084c8c8c8c8cc0040084c8cc0080044c8c8c8c8c8c94ccc0fd4ccc0fccdc80028020a99981f99b900020011533303f3371e00a0422a66607e66e3c00408054ccc0fccdc780c802099b8f01900214a029405280a5014a02646464a66608a6090004264646464a66608c606e608e6ea80084c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc174c1800084c8c94ccc170c1340044c8c94ccc184c19000801058dd71831000982f1baa0151533305c3051001132325333061306400200416375c60c400260bc6ea805458c170dd500a099825008899825007899299982d9826000899192999830183180100c0b1bad3061001305d37540082a6660b660a00022a6660bc60ba6ea80100585858c16cdd50018b19299982e982e0008a99982d19b8948010c16c004584c13cc16c00458dd5182f000982f001182e000982e0011bad305a001305a002375a60b000260b00046eb4c158004c158008dd6982a000982a0011bad3052001305200230500013050002304e001304e002304c001304837540042c26464646464646464646464646464646464646464646464646464a6660be66ebcc19006816c54ccc17ccdd78088220a99982f99baf0100431533305f3370e01e00a2a6660be66e1c03801c54ccc17ccdc38068030a99982f99b884800001c54ccc17ccdc42400000c2a6660be66e2120140051533305f3370e0180162a6660bea6660be66e2403120a01f13371290050060a501533305f533305f00914a026660be941282511533305f3375e01498103d87a80001533305f3375e6e98118dd319998011999801199980125eb7bdb1801752201034d534600480081752201034d535000480081740e520feffffffffffffffff0113375e6e98004dd300e0a5014a029405280a5014a029405280a5014a029405280a5014a06666002666600266660026666002666600297adef6c6048810048810048302a294100f40f00180e80e40141700e0cdc0a41fdfffffffffffffffe0266e00011201305c489034d5350004800888894ccc184c14800440104c8c8cc004004018894ccc19c0044cc1a0cdd81ba9006374c00697adef6c601323332225333068337200140062660d866ec0dd48051ba6007005153330683371e014006264a6660d260b460d46ea80044cc1b4cdd81ba900b306e306b3754002004200464a6660d2a6660d800229445280a6103d87a8000130423306d374c00297ae0323300100100322533306d00113306e337606ea402cdd400525eb7bdb1804c8ccc8894ccc1b8cdc800780189983919bb0375201e6ea003801454ccc1b8cdc78078018992999837983018381baa001133073337606ea4040c1d0c1c4dd5000801080119299983798300008a6103d87a80001304833073375000297ae03370000401c2660e466ec0dd48019ba800233006006001375c60d80026eb4c1b4004c1c4008c1bc0044cc1b0cdd81ba9003374c0046600c00c0026eb8c198004dd5983380098358011834800991900118030009983299bb037520046ea00052f5bded8c0600200244a6660c000229309929998308008a4c264666444a6660c466e4000c0084cc01c01ccc19801000458dd7183018320019bae30600013065002306300130630013232533305c3371066e080040040084cdc0000a40042002a6660b666e200052000161533305b304c00114800054ccc16cc140004520021533305b3370e00290020a400426466600200200466e00cdc1801240089001111299982f19b8800100213330030030013370666e00cdc1802000800a4008200466e08008004ccc0680580d40d14ccc1614ccc160c0a80dc4c0a80d8528099b80001482fea294104004ccc0600500d80d4c12cc15cdd5182d982e004982d0041bad3059008375a60b00106eb4c15c020dd6982b0041bad3055008305400830530083053001305200130510013050001304f001304e001304d001304c00130473754002601e609260940046eacc120004c120c110dd50008b18230009980a01411919192999822181c98229baa3049304637540042a66608866ebc1040084c0e4ccc0140041092201034d53500014a02940dd598241824801182380098219baa0012223253330433038304437540022900009bad30483045375400264a666086607060886ea8004530103d87a80001323300100137566092608c6ea8008894ccc120004530103d87a80001323332225333049337220100062a66609266e3c02000c4c088cc134dd400125eb80530103d87a8000133006006001375c608e0026eb4c120004c130008c128004c8cc004004010894ccc11c0045300103d87a80001323332225333048337220100062a66609066e3c02000c4c084cc130dd300125eb80530103d87a8000133006006001375c608c0026eacc11c004c12c008c12400458dd7182198220011bae3042001303e37540086eb8c100c104008dd7181f800981d9baa0033003004225333039302a303a3754004264646464a666080608600400a2c6eb8c104004c104008dd7181f800981d9baa002163001303b303c303c3038375400a4a66606c66e1d2004303737540022607660706ea800458c0e4c0e8c0e8c0d8dd50008b181c000981c001181b0009980200c11919299981999baf0083038303537546070004266ebcdd318020009ba63330060314881034d534600480085281bab30373038001303337540022c4646600200200444a66606a002297adef6c601323332225333036337229101000031533303630080031001100513303a337606ea400cdd3001198030030009bae30340013756606a0026072004606e0026e3d221002225333030302100114bd6f7b6300991919800800a5eb7bdb180894ccc0d80044cc0dccdd81ba9006374c00697adef6c6013233322253330373372001400626607666ec0dd48051ba6007005153330373371e01400626607666ec0dd48051ba600700113303b337606ea400cdd3001198030030009bae30350013756606c00260740046070002646600200297adef6c60225333035001133036337606ea4010dd4001a5eb7bdb1804c8ccc8894ccc0d8cdc800400189981d19bb037520106ea001c01454ccc0d8cdc780400189981d19bb037520106ea001c0044cc0e8cdd81ba900337500046600c00c0026eb8c0d0004dd6981a800981c801181b8008b1119198008008019129998198008a5eb804cc894ccc0c8c0140084cc0d8008cc0100100044cc010010004c0d4004c0d8004c0c0c0b4dd518180011bab302f3030001302b3754605c605e60566ea8c0b8c0acdd50008b19198008008091129998168008a60103d87a800013322533302c3375e6062605c6ea800807c4c014cc0c00092f5c0266008008002605e00260600026e952000372666e28dc999b8a005004372666e2800800458dd7181518158011bae30290013025375400e6eb8c09cc0a0008dd7181300098111baa005375c6048604a0046eb8c08c004c07cdd51811180f9baa00f16302130220023020001301c37540226eacc078c07cc07c00cdd6180e8011bac301c002301c301c0013017375401a2c60320026032004602e00260266ea802058894ccc048c00cc04cdd5001099191919299980c980e0010028b1bae301a001301a002375c603000260286ea800858dc3a4000602400260246026002601c6ea8008dc3a40042c601e6020006601c004601a004601a00260106ea800452613656375c002ae6955ceaab9e5573eae815d0aba21", + "hash": "ee17b357a095a53295b2ae566feaa8b07102edac112e462974185732" }, { - "title": "order_validator.validate_expired_order_cancel", + "title": "factory_validator.factory_validator.else", "redeemer": { - "title": "_redeemer", - "schema": { - "$ref": "#/definitions/Data" - } + "schema": {} }, - "compiledCode": "590b230100003232323232323232322253330053232323253330093370e900218040008991919191919191919191919191919191919191919191919191919980080080580b1111919191919191919191919191919191919191919191919191919191919191919299982299b8748000c1100044c8c8c8c94ccc1254ccc124cdc40010180a99982499baf00e017153330493371266e04c0a406c004c0a405454ccc124cdd79ba63028015374c6050036266ebc030c94ccc128cdc3a4000002298103d87980001533304a3370e9001000899ba548008cc138c13cc1200512f5c0266e9520043304e37526e50dd99827982400a25eb80c12004c5280a5014a0294054ccc124cdd79ba70234c0101800014a2266604e04e0460422c6eb4c128008dd698240009919bb0304c001304c304d0013758609600260860022c609200260920026090002608e002608c002608a00260880046084002608400460800026080002606e00464a66607266e1d20000011323232323232323232323232323232323232533304e305100213232323232323232498c94ccc14ccdc3a400000226464a6660b060b600426493191bad3058002375a60ac0022c6466ec0c168004c168c16c004dd6182c80098288048a99982999b874800800454ccc158c144024526161630510083253330523370e900000089919191919191919299982e983000109924c607a00a2c66e1d2002305a375460bc00260bc0046eb4c170004c170008c168004c168008cdc3a400460a86ea8c160004c14003054ccc148cdc3a40040022646464646464a6660b660bc00426493181d8018b1bad305c001305c002305a001305a0023370e9001182a1baa3058001305000c153330523370e900200089919191919191919299982e983000109924c607a00a2c6eb4c178004c178008dd6982e000982e001182d000982d00119b8748008c150dd5182c00098280060a99982919b87480180044c8c8c8c8c8c8c8c94ccc174c1800084c926303d005163370e9001182d1baa305e001305e002375a60b800260b800460b400260b400466e1d20023054375460b000260a00182a6660a466e1d20080011323232323232533305b305e002132498c94ccc164cdc3a4000002264646464a6660c060c60042930b1bad30610013061002375a60be00260ae00c2a6660b266e1d200200113232323253330603063002149858dd6983080098308011bad305f0013057006163057005163370e9001182c1baa305c001305c002375a60b400260b400460b000260a00182a6660a466e1d200a00113232323232323232533305d3060002132498c0f801c58cdc3a400460b46ea8c178004c178008dd6982e000982e0011bad305a001305a0023058001305000c153330523370e900600089919191919191919299982e983000109924c607c00a2c66e1d2002305a375460bc00260bc0046eb4c170004c170008c168004c168008cdc3a400460a86ea8c160004c14003054ccc148cdc3a401c00226464646464646464646464646464a6660c660cc0042930b1bad30640013064002375a60c400260c40046eb4c180004c180008dd6982f000982f0011bad305c001305c002375a60b400260b400466e1d20023054375460b000260a00182a6660a466e1d2010001132323232323232323232533305f3062002132498c10002458cdc3a400460b86ea8c180004c180008dd6982f000982f0011bad305c001305c002375a60b400260b400460b000260a00182a6660a466e1d20120011323232323232533305b305e00213232498c0f0010c8cc004004018894ccc1740045261323300300330610023232533305c3370e90000008991919192999831983300109924c608a0062c66e1d20023060375460c800260c800460c400260b40042c60b400260be0022c6eb4c170004c170008c168004c168008dd6182c00098280060a99982919b874805000454ccc154c1400305261616305000b303500c303100d302f00e302f00f302d01032533304c3370e9000000899192999828982a0010a4c2c6eb8c148004c12804854ccc130cdc3a400400226464a6660a260a80042930b1bae3052001304a0121533304c3370e9002000899192999828982a0010a4c2c6eb8c148004c12804854ccc130cdc3a400c00226464a6660a260a80042930b1bae3052001304a01216304a01116304f001304f002375a609a002609a0046096002609600460920026092004608e002608e004608a002608a0046086002608600460820026082004607e002606e0042c606e00264a66607066e1d20040011303d3036008153330383370e9001000899191980080081191299981f0008b099191919299981f99b8f00700210011330060060033040003375c607c004608400460800026eb8c0f4c0d802058c0d801cc0ec004c0ec008dd5981c800981c801181b8009817805181a800981a8011bab30330013033001302a001303000130300013027004302e004302c003302c003302a0022323300100100222533302700114bd6f7b630099191919299981419b8f488100002100313302c337606ea4008dd3000998030030019bab3029003375c604e004605600460520024646464a66604866e1d20020011480004dd698149811001181100099299981199b8748008004530103d87a8000132323300100100222533302900114c103d87a8000132323232533302a3371e9110000213374a9000198171ba80014bd700998030030019bad302b003375c6052004605a00460560026eacc0a0c084008c084004c8cc004004008894ccc0980045300103d87a800013232323253330273371e9110000213374a9000198159ba60014bd700998030030019bab3028003375c604c00460540046050002464a66604266e1d20000011323232325333028302b00213232498c94ccc09ccdc3a400000226464a666058605e0042649319299981519b87480000044c8c94ccc0bcc0c80084c926301200116303000130280021533302a3370e900100089919191919192999819981b0010a4c2c6eb4c0d0004c0d0008dd6981900098190011bad3030001302800216302800116302d0013025003153330273370e90010008a99981518128018a4c2c2c604a00460160062c60520026052004604e002603e0042c603e002464a66604066e1d200000115333023301e00214985854ccc080cdc3a400400226464a66604a60500042930b1bae3026001301e002153330203370e900200089919299981298140010a4c2c6eb8c098004c07800858c0780048c94ccc07ccdc3a400000226464a666048604e0042930b1bad3025001301d0021533301f3370e900100089919299981218138010a4c2c6eb4c094004c07400858c0740048c94ccc078cdc3a400000226464a666046604c0042930b1bad3024001301c0021533301e3370e900100089919299981198130010a4c2c6eb4c090004c07000858c0700048c94ccc074cdc3a4000002264646464a666048604e0042930b1bae30250013025002375c604600260360042c6036002464a66603866e1d20000011323253330213024002149858dd71811000980d0010a99980e19b87480080044c8c94ccc084c09000852616375c604400260340042c603400264646464a66603a66e1d2002301c0011375a604460360022c60420026032002603e002602e00c646600200201e44a66603a002297ae013232533301c323232323232323253330243370e90010008a5114a06044002604e002603e002604a002603a002604600260460026034004266040004660080080022660080080026042004603e0026eacc070004c070004c06c004c068008c060004c060004c05c004c058004c054004c050008dd61809000980900098088011bac300f001300700316300d001300d002300b001300300114984d9588c014dd5000918019baa0015734aae7555cf2ab9f5740ae855d101", - "hash": "c8b0cc61374d409ff9c8512317003e7196a3e4d48553398c656cc124" + "parameters": [ + { + "title": "authen_policy_id", + "schema": { + "$ref": "#/definitions/PolicyId" + } + }, + { + "title": "pool_address", + "schema": { + "$ref": "#/definitions/cardano~1address~1Address" + } + }, + { + "title": "pool_batching_stake_credential", + "schema": { + "$ref": "#/definitions/cardano~1address~1Credential" + } + } + ], + "compiledCode": "590b8e010100323232323232322322225333006323232323253323300c3001300d375400426466446464a666022600460246ea80204c8c8c8c94ccc060c06c0084cc01400c4cc0140044c8c8c8c8c8c8c8c94ccc074c038c078dd500789919191919191919192999813191919191919299981619b8f005002133720008002266e40014008dd7181818188011bae302f001302b375401a6eb8c0b4c0b8008dd7181600098141baa00b13232325333029301a302a3754002264646464a66606060666600202c466ebc00cc0ccc0c0dd5181998181baa30333034303037540022646464a66606066ebcdd318008031ba633300302e489034d534600480084c8c8c8c94ccc0dcc0e80084c8c8c8c8cc0040084c8cc0080044c8c8c8c8c8c94ccc0fd4ccc0fccdc80028020a99981f99b900020011533303f3371e00a0422a66607e66e3c00408054ccc0fccdc780c802099b8f01900214a029405280a5014a02646464a66608a6090004264646464a66608c606e608e6ea80084c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc174c1800084c8c94ccc170c1340044c8c94ccc184c19000801058dd71831000982f1baa0151533305c3051001132325333061306400200416375c60c400260bc6ea805458c170dd500a099825008899825007899299982d9826000899192999830183180100c0b1bad3061001305d37540082a6660b660a00022a6660bc60ba6ea80100585858c16cdd50018b19299982e982e0008a99982d19b8948010c16c004584c13cc16c00458dd5182f000982f001182e000982e0011bad305a001305a002375a60b000260b00046eb4c158004c158008dd6982a000982a0011bad3052001305200230500013050002304e001304e002304c001304837540042c26464646464646464646464646464646464646464646464646464a6660be66ebcc19006816c54ccc17ccdd78088220a99982f99baf0100431533305f3370e01e00a2a6660be66e1c03801c54ccc17ccdc38068030a99982f99b884800001c54ccc17ccdc42400000c2a6660be66e2120140051533305f3370e0180162a6660bea6660be66e2403120a01f13371290050060a501533305f533305f00914a026660be941282511533305f3375e01498103d87a80001533305f3375e6e98118dd319998011999801199980125eb7bdb1801752201034d534600480081752201034d535000480081740e520feffffffffffffffff0113375e6e98004dd300e0a5014a029405280a5014a029405280a5014a029405280a5014a06666002666600266660026666002666600297adef6c6048810048810048302a294100f40f00180e80e40141700e0cdc0a41fdfffffffffffffffe0266e00011201305c489034d5350004800888894ccc184c14800440104c8c8cc004004018894ccc19c0044cc1a0cdd81ba9006374c00697adef6c601323332225333068337200140062660d866ec0dd48051ba6007005153330683371e014006264a6660d260b460d46ea80044cc1b4cdd81ba900b306e306b3754002004200464a6660d2a6660d800229445280a6103d87a8000130423306d374c00297ae0323300100100322533306d00113306e337606ea402cdd400525eb7bdb1804c8ccc8894ccc1b8cdc800780189983919bb0375201e6ea003801454ccc1b8cdc78078018992999837983018381baa001133073337606ea4040c1d0c1c4dd5000801080119299983798300008a6103d87a80001304833073375000297ae03370000401c2660e466ec0dd48019ba800233006006001375c60d80026eb4c1b4004c1c4008c1bc0044cc1b0cdd81ba9003374c0046600c00c0026eb8c198004dd5983380098358011834800991900118030009983299bb037520046ea00052f5bded8c0600200244a6660c000229309929998308008a4c264666444a6660c466e4000c0084cc01c01ccc19801000458dd7183018320019bae30600013065002306300130630013232533305c3371066e080040040084cdc0000a40042002a6660b666e200052000161533305b304c00114800054ccc16cc140004520021533305b3370e00290020a400426466600200200466e00cdc1801240089001111299982f19b8800100213330030030013370666e00cdc1802000800a4008200466e08008004ccc0680580d40d14ccc1614ccc160c0a80dc4c0a80d8528099b80001482fea294104004ccc0600500d80d4c12cc15cdd5182d982e004982d0041bad3059008375a60b00106eb4c15c020dd6982b0041bad3055008305400830530083053001305200130510013050001304f001304e001304d001304c00130473754002601e609260940046eacc120004c120c110dd50008b18230009980a01411919192999822181c98229baa3049304637540042a66608866ebc1040084c0e4ccc0140041092201034d53500014a02940dd598241824801182380098219baa0012223253330433038304437540022900009bad30483045375400264a666086607060886ea8004530103d87a80001323300100137566092608c6ea8008894ccc120004530103d87a80001323332225333049337220100062a66609266e3c02000c4c088cc134dd400125eb80530103d87a8000133006006001375c608e0026eb4c120004c130008c128004c8cc004004010894ccc11c0045300103d87a80001323332225333048337220100062a66609066e3c02000c4c084cc130dd300125eb80530103d87a8000133006006001375c608c0026eacc11c004c12c008c12400458dd7182198220011bae3042001303e37540086eb8c100c104008dd7181f800981d9baa0033003004225333039302a303a3754004264646464a666080608600400a2c6eb8c104004c104008dd7181f800981d9baa002163001303b303c303c3038375400a4a66606c66e1d2004303737540022607660706ea800458c0e4c0e8c0e8c0d8dd50008b181c000981c001181b0009980200c11919299981999baf0083038303537546070004266ebcdd318020009ba63330060314881034d534600480085281bab30373038001303337540022c4646600200200444a66606a002297adef6c601323332225333036337229101000031533303630080031001100513303a337606ea400cdd3001198030030009bae30340013756606a0026072004606e0026e3d221002225333030302100114bd6f7b6300991919800800a5eb7bdb180894ccc0d80044cc0dccdd81ba9006374c00697adef6c6013233322253330373372001400626607666ec0dd48051ba6007005153330373371e01400626607666ec0dd48051ba600700113303b337606ea400cdd3001198030030009bae30350013756606c00260740046070002646600200297adef6c60225333035001133036337606ea4010dd4001a5eb7bdb1804c8ccc8894ccc0d8cdc800400189981d19bb037520106ea001c01454ccc0d8cdc780400189981d19bb037520106ea001c0044cc0e8cdd81ba900337500046600c00c0026eb8c0d0004dd6981a800981c801181b8008b1119198008008019129998198008a5eb804cc894ccc0c8c0140084cc0d8008cc0100100044cc010010004c0d4004c0d8004c0c0c0b4dd518180011bab302f3030001302b3754605c605e60566ea8c0b8c0acdd50008b19198008008091129998168008a60103d87a800013322533302c3375e6062605c6ea800807c4c014cc0c00092f5c0266008008002605e00260600026e952000372666e28dc999b8a005004372666e2800800458dd7181518158011bae30290013025375400e6eb8c09cc0a0008dd7181300098111baa005375c6048604a0046eb8c08c004c07cdd51811180f9baa00f16302130220023020001301c37540226eacc078c07cc07c00cdd6180e8011bac301c002301c301c0013017375401a2c60320026032004602e00260266ea802058894ccc048c00cc04cdd5001099191919299980c980e0010028b1bae301a001301a002375c603000260286ea800858dc3a4000602400260246026002601c6ea8008dc3a40042c601e6020006601c004601a004601a00260106ea800452613656375c002ae6955ceaab9e5573eae815d0aba21", + "hash": "ee17b357a095a53295b2ae566feaa8b07102edac112e462974185732" }, { - "title": "order_validator.validate_order", + "title": "order_validator.order_validator.spend", "datum": { - "title": "raw_datum", + "title": "raw_datum_opt", "schema": { - "$ref": "#/definitions/Data" + "$ref": "#/definitions/amm_dex_v2~1types~1OrderDatum" } }, "redeemer": { @@ -138,82 +179,161 @@ { "title": "pool_batching_credential", "schema": { - "$ref": "#/definitions/aiken~1transaction~1credential~1Referenced$aiken~1transaction~1credential~1Credential" + "$ref": "#/definitions/cardano~1address~1Credential" } }, { "title": "expired_order_cancel_credential", "schema": { - "$ref": "#/definitions/aiken~1transaction~1credential~1Referenced$aiken~1transaction~1credential~1Credential" + "$ref": "#/definitions/cardano~1address~1Credential" } } ], - "compiledCode": "590a0b01000032323232323232323222222533300832323232533300c3370e900118058008991919299980799b87480000084cc004dd5980a180a980a980a980a980a980a98068030060a99980799b87480080084c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc080cdc3a4000002264646600200200e44a66604c00229404c8c94ccc094cdc78010028a51133004004001302a002375c60500026eb8c094c07800854ccc080cdc3a40040022646464646600200202844a66605000229404c8c94ccc09ccdd798161812981618129816181698128010028a51133004004001302c002302a0013374a9001198131ba90014bd701bae3026001301e002153330203370e900200089980900419ba548000cc090cdd2a400466048604a603c00497ae04bd70099981019b87375a6044604a66446464a66604866e1d200200114bd6f7b63009bab302930220023022001323300100100322533302700114c103d87a800013232323253330283371e00e004266e9520003302c374c00297ae0133006006003375660520066eb8c09c008c0ac008c0a4004c8cc004004030894ccc09400452f5bded8c0264646464a66604c66e3d22100002100313302a337606ea4008dd3000998030030019bab3027003375c604a0046052004604e0026eb8c094c07800920004a0944c078004c08c004c06c060c8c8c8c8c8c8c94ccc08ccdc3a40000022646464646464646464646464646464646464a6660706076004264646464646464649319299981e99b87480000044c8c94ccc108c1140084c92632375a60840046eb4c10000458c8cdd81822000982218228009bac3043001303b0091533303d3370e90010008a999820181d8048a4c2c2c607601064a66607866e1d2000001132323232323232325333047304a002132498c09401458cdc3a400460886ea8c120004c120008dd6982300098230011822000982200119b8748008c0f8dd51821000981d0060a99981e19b87480080044c8c8c8c8c8c94ccc114c1200084c926302300316375a608c002608c0046088002608800466e1d2002303e3754608400260740182a66607866e1d2004001132323232323232325333047304a002132498c09401458dd6982400098240011bad30460013046002304400130440023370e9001181f1baa3042001303a00c1533303c3370e9003000899191919191919192999823982500109924c604a00a2c66e1d200230443754609000260900046eb4c118004c118008c110004c110008cdc3a4004607c6ea8c108004c0e803054ccc0f0cdc3a40100022646464646464a66608a60900042649319299982199b87480000044c8c8c8c94ccc128c13400852616375a609600260960046eb4c124004c10401854ccc10ccdc3a4004002264646464a666094609a0042930b1bad304b001304b002375a6092002608200c2c608200a2c66e1d200230423754608c002608c0046eb4c110004c110008c108004c0e803054ccc0f0cdc3a401400226464646464646464a66608e60940042649318130038b19b8748008c110dd5182400098240011bad30460013046002375a60880026088004608400260740182a66607866e1d200c001132323232323232325333047304a002132498c09801458cdc3a400460886ea8c120004c120008dd6982300098230011822000982200119b8748008c0f8dd51821000981d0060a99981e19b87480380044c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc134c14000852616375a609c002609c0046eb4c130004c130008dd6982500098250011bad30480013048002375a608c002608c0046eb4c110004c110008cdc3a4004607c6ea8c108004c0e803054ccc0f0cdc3a4020002264646464646464646464a66609260980042649318140048b19b8748008c118dd5182500098250011bad30480013048002375a608c002608c0046eb4c110004c110008c108004c0e803054ccc0f0cdc3a40240022646464646464a66608a60900042646493181200219198008008031129998238008a4c2646600600660960046464a66608c66e1d2000001132323232533304d3050002132498c0b400c58cdc3a400460946ea8c138004c138008c130004c11000858c110004c12400458dd698230009823001182200098220011bac3042001303a00c1533303c3370e900a0008a99981f981d0060a4c2c2c6074016603a018603001a603001c602c01e602c02064a66606c66e1d200000113232533303b303e002149858dd7181e000981a0090a99981b19b87480080044c8c94ccc0ecc0f800852616375c607800260680242a66606c66e1d200400113232533303b303e002149858dd7181e000981a0090a99981b19b87480180044c8c94ccc0ecc0f800852616375c607800260680242c60680222c607200260720046eb4c0dc004c0dc008c0d4004c0d4008c0cc004c0cc008c0c4004c0c4008c0bc004c0bc008c0b4004c0b4008c0ac004c0ac008c0a4004c08407858c0840748c94ccc08ccdc3a40000022a66604c60420042930b0a99981199b87480080044c8c94ccc0a0c0ac00852616375c605200260420042a66604666e1d2004001132325333028302b002149858dd7181480098108010b1810800919299981119b87480000044c8c8c8c94ccc0a4c0b00084c8c9263253330283370e9000000899192999816981800109924c64a66605666e1d20000011323253330303033002132498c04400458c0c4004c0a400854ccc0accdc3a40040022646464646464a666068606e0042930b1bad30350013035002375a606600260660046eb4c0c4004c0a400858c0a400458c0b8004c09800c54ccc0a0cdc3a40040022a666056604c0062930b0b181300118050018b18150009815001181400098100010b1810000919299981099b87480000044c8c94ccc098c0a400852616375a604e002603e0042a66604266e1d20020011323253330263029002149858dd69813800980f8010b180f800919299981019b87480000044c8c94ccc094c0a000852616375a604c002603c0042a66604066e1d20020011323253330253028002149858dd69813000980f0010b180f000919299980f99b87480000044c8c8c8c94ccc098c0a400852616375c604e002604e0046eb8c094004c07400858c0740048c94ccc078cdc3a400000226464a666046604c0042930b1bae3024001301c0021533301e3370e900100089919299981198130010a4c2c6eb8c090004c07000858c070004dd618100009810000980f8011bab301d001301d001301c00237566034002603400260320026030002602e0046eb0c054004c0340184cc004dd5980a180a980a980a980a980a980a980680300591191980080080191299980a8008a50132323253330153375e00c00229444cc014014008c054008c064008c05c004c03001cc94ccc034cdc3a40000022a666020601600e2930b0a99980699b874800800454ccc040c02c01c526161533300d3370e90020008a99980818058038a4c2c2c601600c2c60200026020004601c002600c00229309b2b118029baa001230033754002ae6955ceaab9e5573eae815d0aba21", - "hash": "9fc0facf1f5d8af87989089b6f105d8cdf301c359039a1288f44f428" + "compiledCode": "5902b5010100323232323232322225333004323232323253323300a3001300b37540042646644a6646601c6002601e6ea80084c8c8c94ccc044c01000454ccc050c04cdd50050010b0a99980898040008a99980a18099baa00a00216153330113370e90020008a99980a18099baa00a00216163011375401226464a66602260080022660046eacc058c05cc05cc05cc05cc05cc05cc04cdd50058080a99980898040008991919199999111119299980d180680089919198008008029129998100008a5013322533301f3371e00400a29444cc010010004dd7181100098118009bae301f301c375400c2a6660346022002264646600200200e44a66604000229404cc894ccc07ccdd7981218109baa3024302137546048604a60426ea80080145288998020020009811000981180099ba548008cc078c07cc070dd500325eb8054ccc068cdc3a400800226601600866e9520023301e301f301c375400c97ae013233301b300e375a603a604064a6660386026603a6ea800452f5bded8c026eacc084c078dd500099198008008021129998100008a6103d87a800013233322253330213372200e0062a66604266e3c01c00c4cdd2a40006604a6e980092f5c02980103d87a8000133006006001375c603e0026eacc080004c090008c08800528251375c603e60386ea8018c068dd5002980c980b1baa006375860320066eacc064004dd6180c980d180d0009bab3019002301930190013018301830183018001301337540162660046eacc058c05cc05cc05cc05cc05cc05cc04cdd500580798089baa00922323300100100322533301600114a026644a66602a66ebc014008528899802002000980a180c000980c800980998081baa002370e90000b18080009808180880098061baa002370e90010b1806980700198060011805801180580098031baa00114984d9595cd2ab9d5573caae7d5d02ba157441", + "hash": "6f440168aa135f1c3d3842389532219daae008175efe0003c172ff23" }, { - "title": "pool_validator.validate_pool", - "datum": { - "title": "datum", + "title": "order_validator.order_validator.else", + "redeemer": { + "schema": {} + }, + "parameters": [ + { + "title": "pool_batching_credential", + "schema": { + "$ref": "#/definitions/cardano~1address~1Credential" + } + }, + { + "title": "expired_order_cancel_credential", + "schema": { + "$ref": "#/definitions/cardano~1address~1Credential" + } + } + ], + "compiledCode": "5902b5010100323232323232322225333004323232323253323300a3001300b37540042646644a6646601c6002601e6ea80084c8c8c94ccc044c01000454ccc050c04cdd50050010b0a99980898040008a99980a18099baa00a00216153330113370e90020008a99980a18099baa00a00216163011375401226464a66602260080022660046eacc058c05cc05cc05cc05cc05cc05cc04cdd50058080a99980898040008991919199999111119299980d180680089919198008008029129998100008a5013322533301f3371e00400a29444cc010010004dd7181100098118009bae301f301c375400c2a6660346022002264646600200200e44a66604000229404cc894ccc07ccdd7981218109baa3024302137546048604a60426ea80080145288998020020009811000981180099ba548008cc078c07cc070dd500325eb8054ccc068cdc3a400800226601600866e9520023301e301f301c375400c97ae013233301b300e375a603a604064a6660386026603a6ea800452f5bded8c026eacc084c078dd500099198008008021129998100008a6103d87a800013233322253330213372200e0062a66604266e3c01c00c4cdd2a40006604a6e980092f5c02980103d87a8000133006006001375c603e0026eacc080004c090008c08800528251375c603e60386ea8018c068dd5002980c980b1baa006375860320066eacc064004dd6180c980d180d0009bab3019002301930190013018301830183018001301337540162660046eacc058c05cc05cc05cc05cc05cc05cc04cdd500580798089baa00922323300100100322533301600114a026644a66602a66ebc014008528899802002000980a180c000980c800980998081baa002370e90000b18080009808180880098061baa002370e90010b1806980700198060011805801180580098031baa00114984d9595cd2ab9d5573caae7d5d02ba157441", + "hash": "6f440168aa135f1c3d3842389532219daae008175efe0003c172ff23" + }, + { + "title": "order_validator.validate_expired_order_cancel.withdraw", + "redeemer": { + "title": "_redeemer", "schema": { - "$ref": "#/definitions/amm_dex_v2~1types~1PoolDatum" + "$ref": "#/definitions/Data" } }, + "compiledCode": "590bfe01010032323232323232253330023232323232533233008300130093754004264646464646666646464646464646464646444446466600200200a0084446464646464646464646464a666054603a60566ea80084c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc0fcc1080084c8c94ccc0f8c0c40044c8c94ccc10cc11800801058dd7182200098201baa0131533303e3032001132325333043304600200416375c608800260806ea804c54ccc0f8c0dc0044c8c94ccc10cc11800801058dd7182200098201baa0131533303e3370e900300089919299982198230010020b1bae3044001304037540262c607c6ea80484cc0a403c4cc0a80344cc0a402c4cc0a80244cc0b401c4c8c94c8ccc0fcc0c80084c8c8c8c8c8c8c8c94ccc128c1340084cc0d801402c58c94ccc128c12400454ccc11cc024c120004584c0ecc12000458dd5182580098258011bad30490013049002304700130470023253330443043001153330413003304200116130353042001163754608a00260826ea802054ccc0fcc0cc0084c8c8c8c8c8c94ccc120c12c0084cc0d000c02458dd6982480098248011823800982380119299982218218008a999820980198210008b0981a98210008b1baa3045001304137540102a66607e607000426464646464646464a666094609a00426606c00a0162c6eb4c12c004c12c008dd6982480098248011823800982380119299982218218008a999820980198210008b0981a98210008b1baa3045001304137540102a66607e66e1d200600213232323232323232533304a304d00213303600500b1632533304a30490011533304730093048001161303b3048001163754609600260960046eb4c124004c124008c11c004c11c008c94ccc110c10c00454ccc104c00cc108004584c0d4c10800458dd5182280098209baa0081533303f3370e90040010991919191919299982418258010992999823181c800899191919299982698280010070b1bad304e001304e002375a609800260906ea801854ccc118c0e80044c8c8c8c94ccc134c14000803858dd6982700098270011bad304c0013048375400c2c608c6ea801458c94ccc120c11c00454ccc114c01cc118004584c0e4c11800458dd5182480098248011bad304700130470023045001304137540102a66607e66e1d200a00213232323232323232533304a304d00213303700700b1632533304a30490011533304730093048001161303b3048001163754609600260960046eb4c124004c124008dd698238009823801182280098209baa0081533303f3370e9006001099191919191919192999825182680109981b8028058b19299982518248008a999823980498240008b0981d98240008b1baa304b001304b002375a60920026092004608e002608e00464a66608860860022a666082600660840022c2606a60840022c6ea8c114004c104dd50040a99981f99b87480380084c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc140c14c00804458dd6982880098288011bad304f001304f002375a609a002609a0046eb4c12c004c12c008dd6982480098248011bad304700130470023253330443043001153330413003304200116130353042001163754608a00260826ea802054ccc0fccdc3a4020004264646464646464646464a666098609e00426607201201a2c64a66609860960022a666092601660940022c2607a60940022c6ea8c134004c134008dd6982580098258011bad30490013049002375a608e002608e004608a00260826ea802054ccc0fccdc3a40240042646464646464a66609060960042646600200200c4464a66609600426606e00c018264a666092607860946ea80044c8c8c8c94ccc140c14c0084cc0f800c4c018c14c01c58c94ccc140c13c00454ccc134c03cc138004584c104c13800458dd518288009828801182780098259baa00116304d002300200216375a60920026092004608e002608e0046eb0c114004c104dd50040a99981f99b874805000854ccc108c104dd50040018b0b1b8948010c0f8dd5003099299981e9818000899192999821182280109919192999822982400100c8b1bad30460013046002375a60880022c6eb0c10c004c0fcdd50010a99981e98188008a999820181f9baa0020141616303d37540022c608000260800046eb4c0f8004c0f8008c0f0004c0f0008c0e8004c0e8008c0e0004c0e0008c0d8004c0d8008c0d0004c0d0008c0c8004c0c8008c0c0004c0b0dd50010b099191919192999817181098179baa0011323253330305333030337106eb4c0d400805454ccc0c0cdd78028058a99981819b8933702603401c00260340142a66606066ebcdd3180c8051ba6301900e13375e00864a66606260480022980103d879800015333031302500113374a90011981a981b18199baa00a4bd70099ba548010cc0d4dd49b943766606c60666ea80292f5c060626ea80245280a5014a0294054ccc0c0cdd79ba70114c0101800014a226660280280220202c6eb4c0d0c0d4004dd6181998181baa001163032303330333033303330333033003303100230300023030001302f302b37540026464a66605460460022605e60586ea800854ccc0a8c0780044c8c8cc004004048894ccc0c0004584c8ccc8894ccc0c4cdc780380188010998030030009bae302f001303000130340023032001375c605e60586ea800858c0a8dd500098169817003981618168019bab302b002302a002302a00130253754605000a6eacc09c004c09cc08cdd51813181398119baa3026004302600230250022323300100100222533301d00114bd6f7b630099199911299980f18050018a99980f18048018800880289981119bb037520066e98008cc018018004dd7180e0009bab301d0013021002301f0012325333018300c301937540022900009bad301d301a375400264a666030601860326ea80045300103d87a8000132330010013756603c60366ea8008894ccc074004530103d87a8000132333222533301e300a0031533301e300900313374a9000198111ba80024bd700a60103d87a8000133006006001375c60380026eb4c074004c084008c07c004c8cc004004008894ccc0700045300103d87a8000132333222533301d30090031533301d300800313374a9000198109ba60024bd700a60103d87a8000133006006001375c60360026eacc070004c080008c078004dc7a45003722910100225333015300830163754004264646464a666038603e004266016006264a666034601a00226464a66603e6044004264a66603a602000226464a666044604a0042660220020162c6046002603e6ea800854ccc074c0440044c8c8c8c8c8c94ccc098c0a400803c58dd6981380098138011bad30250013025002375a6046002603e6ea800858c074dd50008b1810000980e1baa0021533301a300e0011533301d301c375400400c2c2c60346ea800458c074004c074008c06c004c05cdd50010b1119299980a98040008a99980c180b9baa0030021615333015300900113232533301a301d00200416375c6036002602e6ea800c54ccc054c0380044c8c94ccc068c07400801058dd7180d800980b9baa00316301537540044464a666028600e00226464a66603260380040082c6eb4c068004c058dd50018a99980a180400089919299980c980e0010020b1bad301a001301637540062c60286ea800888c94ccc04cc0180044c8c94ccc060c06c00801058dd6980c800980a9baa003153330133007001132325333018301b00200416375a6032002602a6ea800c58c04cdd5001112999808980218091baa0021323232325333018301b00200516375c603200260320046eb8c05c004c04cdd50010b11192999808980200089919299980b180c8010020b1bae3017001301337540062a666022600a00226464a66602c60320040082c6eb8c05c004c04cdd50018b18089baa002370e900019198008009bac301300522533301200114bd70099912999808a999808980298091baa301630133754602c60266ea8c058c05cc04cdd50010a5114a026602a004660080080022660080080026028002602a0026eb0c04800cdd59809180998099809801192999807180118079baa0011375a602660206ea800458c048c03cdd5180918079baa3012002370e9001180898089808980898088009808180800098059baa005300d300a37540046e1d200416300b300c003300a002300900230090013004375400229309b2b2b9a5573aaae7955cfaba05742ae89", + "hash": "4e163d55bd3bf70f384220e0d9620b67b5e386801053325783bd887b" + }, + { + "title": "order_validator.validate_expired_order_cancel.else", + "redeemer": { + "schema": {} + }, + "compiledCode": "590bfe01010032323232323232253330023232323232533233008300130093754004264646464646666646464646464646464646444446466600200200a0084446464646464646464646464a666054603a60566ea80084c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc0fcc1080084c8c94ccc0f8c0c40044c8c94ccc10cc11800801058dd7182200098201baa0131533303e3032001132325333043304600200416375c608800260806ea804c54ccc0f8c0dc0044c8c94ccc10cc11800801058dd7182200098201baa0131533303e3370e900300089919299982198230010020b1bae3044001304037540262c607c6ea80484cc0a403c4cc0a80344cc0a402c4cc0a80244cc0b401c4c8c94c8ccc0fcc0c80084c8c8c8c8c8c8c8c94ccc128c1340084cc0d801402c58c94ccc128c12400454ccc11cc024c120004584c0ecc12000458dd5182580098258011bad30490013049002304700130470023253330443043001153330413003304200116130353042001163754608a00260826ea802054ccc0fcc0cc0084c8c8c8c8c8c94ccc120c12c0084cc0d000c02458dd6982480098248011823800982380119299982218218008a999820980198210008b0981a98210008b1baa3045001304137540102a66607e607000426464646464646464a666094609a00426606c00a0162c6eb4c12c004c12c008dd6982480098248011823800982380119299982218218008a999820980198210008b0981a98210008b1baa3045001304137540102a66607e66e1d200600213232323232323232533304a304d00213303600500b1632533304a30490011533304730093048001161303b3048001163754609600260960046eb4c124004c124008c11c004c11c008c94ccc110c10c00454ccc104c00cc108004584c0d4c10800458dd5182280098209baa0081533303f3370e90040010991919191919299982418258010992999823181c800899191919299982698280010070b1bad304e001304e002375a609800260906ea801854ccc118c0e80044c8c8c8c94ccc134c14000803858dd6982700098270011bad304c0013048375400c2c608c6ea801458c94ccc120c11c00454ccc114c01cc118004584c0e4c11800458dd5182480098248011bad304700130470023045001304137540102a66607e66e1d200a00213232323232323232533304a304d00213303700700b1632533304a30490011533304730093048001161303b3048001163754609600260960046eb4c124004c124008dd698238009823801182280098209baa0081533303f3370e9006001099191919191919192999825182680109981b8028058b19299982518248008a999823980498240008b0981d98240008b1baa304b001304b002375a60920026092004608e002608e00464a66608860860022a666082600660840022c2606a60840022c6ea8c114004c104dd50040a99981f99b87480380084c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc140c14c00804458dd6982880098288011bad304f001304f002375a609a002609a0046eb4c12c004c12c008dd6982480098248011bad304700130470023253330443043001153330413003304200116130353042001163754608a00260826ea802054ccc0fccdc3a4020004264646464646464646464a666098609e00426607201201a2c64a66609860960022a666092601660940022c2607a60940022c6ea8c134004c134008dd6982580098258011bad30490013049002375a608e002608e004608a00260826ea802054ccc0fccdc3a40240042646464646464a66609060960042646600200200c4464a66609600426606e00c018264a666092607860946ea80044c8c8c8c94ccc140c14c0084cc0f800c4c018c14c01c58c94ccc140c13c00454ccc134c03cc138004584c104c13800458dd518288009828801182780098259baa00116304d002300200216375a60920026092004608e002608e0046eb0c114004c104dd50040a99981f99b874805000854ccc108c104dd50040018b0b1b8948010c0f8dd5003099299981e9818000899192999821182280109919192999822982400100c8b1bad30460013046002375a60880022c6eb0c10c004c0fcdd50010a99981e98188008a999820181f9baa0020141616303d37540022c608000260800046eb4c0f8004c0f8008c0f0004c0f0008c0e8004c0e8008c0e0004c0e0008c0d8004c0d8008c0d0004c0d0008c0c8004c0c8008c0c0004c0b0dd50010b099191919192999817181098179baa0011323253330305333030337106eb4c0d400805454ccc0c0cdd78028058a99981819b8933702603401c00260340142a66606066ebcdd3180c8051ba6301900e13375e00864a66606260480022980103d879800015333031302500113374a90011981a981b18199baa00a4bd70099ba548010cc0d4dd49b943766606c60666ea80292f5c060626ea80245280a5014a0294054ccc0c0cdd79ba70114c0101800014a226660280280220202c6eb4c0d0c0d4004dd6181998181baa001163032303330333033303330333033003303100230300023030001302f302b37540026464a66605460460022605e60586ea800854ccc0a8c0780044c8c8cc004004048894ccc0c0004584c8ccc8894ccc0c4cdc780380188010998030030009bae302f001303000130340023032001375c605e60586ea800858c0a8dd500098169817003981618168019bab302b002302a002302a00130253754605000a6eacc09c004c09cc08cdd51813181398119baa3026004302600230250022323300100100222533301d00114bd6f7b630099199911299980f18050018a99980f18048018800880289981119bb037520066e98008cc018018004dd7180e0009bab301d0013021002301f0012325333018300c301937540022900009bad301d301a375400264a666030601860326ea80045300103d87a8000132330010013756603c60366ea8008894ccc074004530103d87a8000132333222533301e300a0031533301e300900313374a9000198111ba80024bd700a60103d87a8000133006006001375c60380026eb4c074004c084008c07c004c8cc004004008894ccc0700045300103d87a8000132333222533301d30090031533301d300800313374a9000198109ba60024bd700a60103d87a8000133006006001375c60360026eacc070004c080008c078004dc7a45003722910100225333015300830163754004264646464a666038603e004266016006264a666034601a00226464a66603e6044004264a66603a602000226464a666044604a0042660220020162c6046002603e6ea800854ccc074c0440044c8c8c8c8c8c94ccc098c0a400803c58dd6981380098138011bad30250013025002375a6046002603e6ea800858c074dd50008b1810000980e1baa0021533301a300e0011533301d301c375400400c2c2c60346ea800458c074004c074008c06c004c05cdd50010b1119299980a98040008a99980c180b9baa0030021615333015300900113232533301a301d00200416375c6036002602e6ea800c54ccc054c0380044c8c94ccc068c07400801058dd7180d800980b9baa00316301537540044464a666028600e00226464a66603260380040082c6eb4c068004c058dd50018a99980a180400089919299980c980e0010020b1bad301a001301637540062c60286ea800888c94ccc04cc0180044c8c94ccc060c06c00801058dd6980c800980a9baa003153330133007001132325333018301b00200416375a6032002602a6ea800c58c04cdd5001112999808980218091baa0021323232325333018301b00200516375c603200260320046eb8c05c004c04cdd50010b11192999808980200089919299980b180c8010020b1bae3017001301337540062a666022600a00226464a66602c60320040082c6eb8c05c004c04cdd50018b18089baa002370e900019198008009bac301300522533301200114bd70099912999808a999808980298091baa301630133754602c60266ea8c058c05cc04cdd50010a5114a026602a004660080080022660080080026028002602a0026eb0c04800cdd59809180998099809801192999807180118079baa0011375a602660206ea800458c048c03cdd5180918079baa3012002370e9001180898089808980898088009808180800098059baa005300d300a37540046e1d200416300b300c003300a002300900230090013004375400229309b2b2b9a5573aaae7955cfaba05742ae89", + "hash": "4e163d55bd3bf70f384220e0d9620b67b5e386801053325783bd887b" + }, + { + "title": "pool_validator.pool_batching_validator.withdraw", "redeemer": { "title": "redeemer", "schema": { - "$ref": "#/definitions/amm_dex_v2~1types~1PoolRedeemer" + "$ref": "#/definitions/amm_dex_v2~1types~1PoolBatchingRedeemer" + } + }, + "parameters": [ + { + "title": "authen_policy_id", + "schema": { + "$ref": "#/definitions/PolicyId" + } + }, + { + "title": "pool_payment_cred", + "schema": { + "$ref": "#/definitions/cardano~1address~1Credential" + } } + ], + "compiledCode": "593b0301010032323232323232232225333005323232323253323300b3001300c375400426464646464a666020600860226ea80204c8c8c8c8c8c8c8c8c8c94ccc074c0800084cc02c01c894ccc07c0084c8c94ccc078c0480044c8c94ccc08cc09800801058dd7181200098101baa0071533301e3011001153330213020375400e0042c2c603c6ea80184cc03400c894ccc0840084c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94cc8cc0fd4ccc0fccc88c94ccc108c0d80044c8c8cc004004010894ccc12000452809991299982399b8f00200514a22660080080026eb8c128004c12c004dd7182398221baa008153330423035001132323300100101f22533304800114a026644a66608e66ebcc130c124dd5182618249baa304c304d3049375400400a29444cc010010004c128004c12c004c010cc118c11cc110dd500425eb804c8c8cc004004014894ccc12000452809991299982399baf00500214a2266008008002608c6094002609600260086608c608e60886ea80212f5c060846ea801cdd5982200e9bac304401b1533303f300201113375e6e98061300101a00014a029404c8c8c8c8c8c8c8c8c8c8c8c94ccc12d4ccc12ccdc39b8d01d300100913300300b00a14a02646464646464646464646464646464646464646464646464a6660cc046294054c8c8ccc1a0c1ac0944c8c8c94ccc1acc1b80e04c8c8c8c8c8c8c8cdd7983a183a8009ba7333333323232323232323232323232222222323333300100103d05c0553758610e020284444464646464646464646606200226464646464646464646464646464646464a6646614002a6661400260ca0062a6661400260ca0322a6661400260020062a6661400266ebc08c01454ccc28004c24c04c28404dd50010a511337120d86eb4c29404dd61852809851009baa00214a029405280a50132323253330a60101d100213333302202201d00101b0023758614e026150020046eb0c29804004c94ccc28404c254040044c8c8c8cccc8888c8c94ccc2a804c1bc0104cc2b804dd39999999999999999981800f001009809008808003002817817011816015815012801919b89005001330ae01374e00297ae01630af0102630ad0102530970130a50137546152020066152020046eb4c2a404004c25c04c29404dd51854809855008009854808009854008009851809baa005153330a10130940100113232333222323253330a801306d0031330ac01374e6666666666666666605c03800402202001e01c00a00805a0580420540520500469408cdc480080219856009ba70014bd700b185680812185580811984b009852009baa30a80100230a801001375a6150026152020026150020026146026ea801454ccc28404c25c040044c8c8c8cccc8888c8c94ccc2a8054ccc2a804c1bc0104c1bc00c528099857009ba73333333333333333303001e00201301201101000600502f02e02302c02b02a0254a04a6661560266e24014004528899b89001004330ae01374e00297ae01630af0102630ad0102530970130a50137546152020066152020046eb4c2a404004dd69854809855008009854808009854008009851809baa005153330a1013045001132323233332222323253330aa01306f0041330ae01374e64646464646464646464646464646464646464646464a66618002610a020022a6661800266e2400c00454ccc30004cccc11c09c098cccccccc1280d00e402001c01401000c06806054ccc300040704cc31004dd419b813370002600600466188026ea0cdc080900d19862009ba83370002200666188026ea0cdc080800d19862009ba800f4bd70099862009ba83370202603466188026ea0cdc099b80012003002330c401375066e04044068cc31004dd419b80010003330c401375001e97ae016153330c00153330c001019133330470290283304803403901814a020762c2ca66617e026166026180026ea80684dd69862009860809baa01a13253330c001305c00113370266611c0206801000e0022c6eb4c31004c30404dd500d19982e00080401f1991299985f8099b8801900113083013370660c066e08008064cdc119b81001019305f00916375a6184020126eb4c30804020dd71860809861008011bae30c00100130bc013754617e0200e6eb8c2f804c2fc04008dd7185e80800985c809baa30bc01005375a617602617802002617602002617402002617202002a6661640201c26616c0206e6616c0206c6616c026ea0014cc2d804dd40021985b009ba80344bd7009985b0081b1985b0081b9985b009ba8004330b601375000a6616c026ea00cd2f5c06eb4c2d804c2dc04014dd6985a808021bad30b401004375a6166020086eb4c2c8040a0c2c804004c2c404004c2c004094cc2b804dd3800a5eb8058c2bc04098c2b404094c25c04c29404dd51854808019854808011bad30a90100130970130a50137546152026154020026152020026150020026146026ea801454ccc28404cdc3a4010002264646664446464a6661500260da008266158026e9cc8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc2f0054ccc2f004c16000854ccc2f004c1600044c20404cdc00010008a5014a026464646464a6661820266e2407400454ccc30404cccc1200a009ccccc1b8cccc1b8cccc1b8cccc1b80d522100488100305e03a01000f305e00700d00c305e00600a00900101b1330c501375066e04cdc000b00380199862809ba83370266e00054018008cc31404dd419b80014007330c501375066e0004c018cc31404dd419b800120014bd700b0a99986080a9998608080e099998240150149982481a81d00d8a50103c16375a618a02618c020066eb4c31004008dd69861808011861808009919299985f0099b880010021323232330c5013750666609e0040020860826618a02981010000330c501375066e0ccdc119b813370400e00200402466e00cdc100b00080125eb80dd69862809863008011bad30c4010013333304b004003013012040153330be013371000400226464646618a02981010000330c5013750666609e0040020840826618a026ea0cdc199b823370266e08018004008048cdc019b820150010024bd701bad30c50130c601002375a6188020026666609600600802402607e266184029801010000330c2014c1010000330c201375000497ae03370666e08008038044cdc199b8200200d01116375a6180026182020046eb4c2fc040054ccc2e404c2b404c2e804dd500b0991985f00985f808009985f00985f80986000800a5eb80c2ec04dd500b0991991299985e00a99985e00982c0010982c0008a501330c001375066e04ccc228040c002c028008cc30004dd419b8133308a010300080070014bd700b1bad30bf01001375a617e026180020026176026ea8058dd7185e80985f008011bae30bc0100130b80137540726eb8c2e804c2ec04008dd7185c80800985a809baa037375c616e026170020046eb8c2d804004c2c804dd501a9bad30b40130b501005375a6166020086eb4c2c804010dd69858808021bad30b00102630b00100130af0100130ae01023330ac01374e00297ae01630ad0102430ab0102330a801002375a615002002612c026148026ea8c2a004c2a404004c2a004004c28c04dd50028a9998508099b87480280044c8c8c8cccc8888c8c94ccc2a8054ccc2a804c1bc0144c1bc010528099857009ba732323232323232323232323232323232323253330bc01308101001132323253330bf0153330bf0133712034004266e240640045280a99985f8099998230130129999836199983619998361999836019a4500488100305c038006005305c00400c00b0020090080010171330c301375066e04048008cc30c04dd419b81011001330c301375066e04040008cc30c04dd419b8100f001330c301375066e040380112f5c02c2a66617e02a66617e020302666608c05004e6608e06607002e294040e858dd69861809862008011bad30c201001333304700f00e00100b1653330bb0130af0130bc01375402e26eb4c30004c2f404dd500b899299985e00982c000899b8133308a0103000300200116375a618002617a026ea805cdd7185f809860008011bae30be0100130ba0137540766eb8c2f004c2f404008dd7185d80800985b809baa039375c6172026174020046eb8c2e004004c2d004dd501b9bad30b60130b701005375a616a020086eb4c2d004010dd69859808021bad30b20102830b20100130b10100130b001025330ae01374e00297ae01630af0102630ad0102530a901003375a6152020046eb4c2a404004c25c04c29404dd51854809855008009854808009854008009851809baa005153330a1013370e900600089919191999911119192999855009837802099857009ba732323232323232323232323232323253330b901307e00113232323232323253330c001337120340022a66618002666608e04e04c66660da66660da66660da06891100488100305d03900a009305d00800d00c001018153330c00101c1330c4013750600c00666188026ea0cdc0980380100099862009ba8011330c401375066e04040004cc31004dd419b8100f0084bd70099862009ba833702600c00200666188026ea0c01c008cc31004dd419b81011001330c401375002066188026ea0cdc080780425eb805854ccc300054ccc300040644cccc11c0a40a0cc1200d00e4060528081d8b1bad30c40130c501003375a6186020046eb4c30804008c30804004c8c8c8c8c94ccc300040704cc31004dd419982f0020210201986200a601010000330c401375066e0000ccccc17c0080040101092f5c026618802981010000330c40137506660bc00608208066188026ea0cdc0002199982f800801001820a5eb80c018008c010008dd69861009861808011bad30c101001333304600e00d00300a370201a6e0402c594ccc2e004c2b004c2e404dd500989bad30bd0130ba013754026264a6661720260aa002266e04ccc21c040b400c00800458dd6985e80985d009baa013375c617802617a020046eb8c2ec04004c2dc04dd501c1bae30b90130ba01002375c6170020026168026ea94ccc2c80403840d840dcdd6985b00985b808029bad30b501004375a6168020086eb4c2cc04010dd698590081418590080098588080098580081299857009ba70014bd700b185780813185680812984b809852809baa30a90100330a901002375a615202002612e02614a026ea8c2a404c2a804004c2a404004c2a004004c28c04dd50028a9998508099b87480380044c8c8c8c8c8c8ccccccc8888888c8c8c94cc8cc2c8054ccc2c804c1dc02454ccc2c804c1dc02054ccc2c804c1dc01c54ccc2c804c1dc01854ccc2c804c0040284c04c0145280a5014a029405280991919191919191919191919299985f00a99985f00985880985f809baa30c30130c401007132323233064001153330c1013375e6120026618a020566618a020546618a020526618a020506618a0204e6618a0204c6618a0266e95200e330c5013330c10101a4c103d87a80004c0103d8798000330c50137500086618a026ea0060cc31404dd400b99862809ba8308c01016330c501375002a6618a026ea00512f5c06618a026ea0cdc081201d1986280811a5eb800044cdd781b0010a50330620980130c50130c60130c60100230c40100130c001375402026660ce04a048020266184026e9ccc30804dd400319861009ba8005330c201375000866184026ea000ccc30804dd400125eb80cc30804dd3807a5eb8058dd69861008031bad30c101006375a61800200c6eb4c2fc04018dd6985f008031bad30bd0100630bd0100130bc0100130bb0100130ba0100130b901001323232323232323232323232323232323232323232323253330c90153330c901308e01005153330c901301800513375e6e98004dd300c8a5014a0264a6661940204626619c026ea0cdc099b80015006003330ce01375066e04050010cc33804dd419b80013006330ce01375066e04048010cc33804dd400899867009ba8005330ce013330ca010014c0103d87a80004c0103d87980004bd70099867009ba83370202a0086619c026ea0cdc099b80014006003330ce01375066e0404c010cc33804dd419b80012006330ce0137500226619c026ea0014cc33804ccc32804005300103d87a80004c0103d87980004bd7029998648099b88480080784c0600105280b1999999982901e0209bae30cd01007375c619a02619c0200e6eb8c33404018dd7186680986700803002001199832801803823999983280400380100319b8101d00153330c40133712038002203820026464a66618a0261140200220022c66e0ccdc099b823370403600200a66e08c194068018cdc100d00098318019862009baa30c70100730c3013754618c0200e6eb4c31404c3180400cdd69862008011bad30c30100230c30100130c20100130c10100153330ba010131330be0103f330be0103e330be01375000a6617c026ea0010cc2f804dd401e25eb804cc2f8040f8cc2f8040fccc2f804dd40021985f009ba8005330be01375007697ae0375a617c02617e0200a6eb4c2f404010dd6985e008021bad30bb01004375a61740206061740200261720200261700205a6e2401458dd5985a80985b009859009baa00230b50102c30b30102b309a0130a801375461580200c6eb4c2b004014dd69856008021bad30ac01003375a6158020046eb4c2b004004dd69856009856808009856008009855808009855008009854808009854008009851809baa005153330a1013370e900800089919191919999911111919299985600a9998560098388030a999856009838802898388020a5014a0266160026e9cc8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc2f804c20c040044c8c8c8c8c8c8c94ccc31404cdc480e8010a999862809999826016015999983919998391999839199983901ca4500488100306203e00a009306200801000f00200d00c00101b1330c901375066e04cdc080b00100219864809ba83370266e0405400400ccc32404dd419b81014002330c901375066e0404c004cc32404dd419b810120084bd700b0a99986280a9998628080e099998260170169982681c81f00d8a50104016375a6192026194020086eb4c3200400cdd69863808019bad30c60100330c60100130c5010013232323232323253330c5013371000200426466194026ea0ccc190004120118cc32805301010000330ca01375066e0401c004cc32804dd419b8000633330650050040010484bd70199999982880300280200180f80f0238a9998628099b88002001132330ca014c01010000330ca0137506660c800208e08c66194026ea0cdc0003999983280200280082399865009ba83370200c00297ae0333333305100500600300401e01f0461330c9014c1010000330c9014c1010000330c901375000c66192026ea00152f5c066e08010078cdc100200e19b81012002337020240046eb4c31404c31804008dd698620080099998248078070008058b299985e80985880985f009baa0181375a618402617e026ea80604c94ccc2f804c1680044cdc0999846008190018010008b1bad30c20130bf0137540306eb8c30404c30804008dd7186000800985e009baa03d375c617c02617e020046eb8c2f404004c2e404dd501d9bae30bb0130bc01002375c617402002616c026ea80e4dd6985c00985c808029bad30b701004375a616c020086eb4c2d404010dd6985a00815185a0080098598080098590081399858009ba70014bd700b1858808141857808139855008021bad30aa01003375a6154020046eb4c2a804004c26004c29804dd51855009855808009855008009854808009854008009851809baa005153330a1013370e900a000899852809ba732323232323232323232323232323253330b00153330b001304c002153330b001304c0011307533700004002294052809985a009ba83370001800466168026ea0cdc00058009985a009ba83370001400466168026ea0cdc00048009985a009ba80084bd700b19983e8119bae30b401003375c616802616a02006a66615c02660b8008006266e0400409c54ccc2b804c03cccc1f008922010048810010011633307b02100300230ae0137540606eb8c2c004c2c404008dd71857808009855809baa02e375a615a02615c0200a6eb4c2b004010dd69855808021bad30aa01004375a61520203e615202002615002002614e020386614a026e9c0792f5c02c6142026ea8010dc480c0b1851809852008049bad30a20100830a10100830a001008309f01008309e01008309d01008309c01008309b01008309b01001309a0100130990100130980100130970100130960100130950100130900137540026605e0ca6124026126020066eacc24404008c24004008c24004004c22c04dd51847009847809845809baa308e01007308e01004375a61180200661180200844444444444444444646464646464646464646464646464646464a66613a0260c400226464a66613e02602a0042a66613e02a66613e02646464a66614402612c026146026ea8c29c04c29004dd5012099baf024002153330a2013375e0480042660980020462940c29804c29c04c29c04008c29404004c28404dd501209919299985080984a809851009baa00113375e614c026146026ea8004dd31818801099191919baf374c00a6e98cccccccc0b80a8080dd71854808011bae30a90130aa01002375c6152020026eb8c2a404c2a80400402001cc29404dd51854009854808011852009baa30a70100153330a1010211330a50101f330a50101e4bd700998528080f198528080fa5eb80cccc88894ccc29004cc14801000c4c8c8c94c8ccc2ac0400854ccc2a0040a04c1dccc2b004dd3198560099bb04c01014000374c661580266ec130010140003750600266e000900312f5bded8c0661580266ec0dd48031ba6330ac01337606ea4014dd4005a5eb7bdb1812f5bded8c097ae016153330ab0130ae010021323253330ad01001005153330ad0130b00100113233322253330ae0153330ae013330ae0102e4a094454ccc2b804cdc7801806099b8f00200b14a0294054ccc2b804cdc40090008983e99859009ba6330b201337609801014000374c661640266ec13001014000375066e00c01c0a80452f5bded8c0661640266ec0dd48019ba6330b201337606ea4008dd419b810010124bd6f7b63025eb7bdb1812f5c02a66615c0266e1c0040484c1f4cc2c804dd3198590099bb04c01014000374c661640266ec13001014000375066e00c01c0a80452f5bded8c097adef6c604bd700b0a6103d87a8000375c6158020066eb8c2b004004dd69856808009857808008029bab30ab0100130ad0100200337026eb4c2a404c2b004dd59854809856008019856008010a6103d87a8000303402a14c0103d87a8000375c605e6144026ea8078dd718149851009baa01e375c605e6144026ea8074dd718149851009baa01d375660506142026ea80905280a99984f8080f899851809ba83370266e0004400c004cc28c04dd419b81010002330a301375066e0003c00ccc28c04dd419b8100e002330a301375001a97ae01330a301375066e04044008cc28c04dd419b813370002000600266146026ea0cdc080780119851809ba83370001c00666146026ea00352f5c02c2a66613e02a66613e0202c2666604c0460446604e04a0360482940405c58ccc0f000801805ccccc0f001c018004014594ccc27004c24004c27404dd500d89bad30a101309e013754036264a66613a026072002266e04ccc1ac08c00c00800458dd6985080984f009baa01b375c6140026142020046eb8c27c04004c26c04dd5184f008031bad309d01309e01003375a6138020046eb4c26c04008c26c04004c268040054ccc24c0404c4cc25c04044cc25c04dd40029984b809ba80043309701375001c97ae013309701010330970137500086612e026ea0014cc25c04dd4006a5eb80dd6984b80984c008029bad309601004375a612a020086eb4c25004010dd698498080318498080098490080098488080191111919191919299984100983b1841809baa308701308401375401220022a6661040200226605800401029414ccc20404cdd7804184300802099baf374c00c6e980085281842809843008011bab308401001308401001307f375400244666604e0049101004881003370400290009183e983f00091111111299983f19816003002899998159999815804244100488100301b3370000e0040080060022a6660fc66058008006266660566666056010911004881003370200200e00c00a6036004266660566666056666605601091100488100301b007006005301b00200400300122223307d375066e0ccdc10010020009983e9ba83370666e0800800c0052f5c044444446464646466e0ccdc0980819b813370400200266e08cdc12401000466e08c080024cdc099b8200700a300300b00133704900200119b803370466e0801800ccdc0003804980119b81301f0083370400601460020046e0800cc06c00488888c8c8cc1f8dd419b81300b3370266e08004004cdc1180d99b82337049004180100219b813370400c66e08014014cdc119b82007005004301a0030013307e375066e08cdc1240086004008603400697ae03370466e0520c0b8020023370460020060086e0001088894ccc1d8c1a4c1dcdd50008a4000266e0ccdc119b82004002375a60f660f06ea8004c05cc05c00c8c1dc0048c8cc004004008894ccc1d800452f5bded8c0264660f066ec0c1d4004c1d8004cc00c00cc1e8008c1e000494ccc1c0cdc4000a40002c2a6660e060c8002290000a99983818318008a40042a6660e060cc00229001099199800800801181a99b83002480108894ccc1cccdc4000801099980180180099b833370066e0c01000400520041002307400730740063074005375a60e80086eb4c1d000cc1d0008c1d0004c1cc004c1c8004c1c4004c1c0004c1bc004c1a8dd519999980982e9836983718351baa0030020664a00022c60d806e60d604a60d404a264a6660d260d804226464a6660d660dc0762646464646601e00226464646464646464646464a6660ee66e1d2012307837540022646464646464a6660fa60e260fc6ea81384c94ccc1f94ccc1f8c10c02854ccc1f8c10c05c54ccc1f8cdc480b8050a99983f19981380680600c0a99983f299983f1838983f9baa00914a2266e24128dd69841809bac30830130800137540122a6660fc66ebc02c00854ccc1f8c10c00c54ccc1f8cc0d80f801454ccc1f8c1040044cdc49b8d001480185280a5014a029405280a5014a0294052809991911919191919191919191919191929998470098298008991929998480099b8901500213375e6e98004dd30130a50333303c333303c333303c02648900488100302c028007006302c00200400300133300f00100e01516533308d01308101308e01375402626eb4c24804c23c04dd50098992999847009815000899b8133305c02500600500116375a612402611e026ea804cdd71848809849008011bae309001001308c013754a6661140260fa6116026ea8c23c04c24004c23004dd519828808982a9820008880208029bae308e01308f01002375c611a020026112026ea94ccc21c04c1e8c22004dd51846009846809844809baa308c0100e10051004308b01308c01002308a01001308601375466096008609e6074008611002611202004610e020026106026ea8c21804004c0040048888c8c8c94ccc2200400c40044cccc01c01c00400c008c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc27004cdd798508080c1850808010991919191929998508098330110991929998518098340010a99985180a999851808040a9998518099b873370266e0005009000403454ccc28c04cdc399b8101300200c153330a3013370e66e0004809002c4cdc399b8101100200a14a029405280a9998518099b873370202800401a2a6661460266e1ccdc099b8001302400100c153330a3013370e66e0404800802c4cdc399b8001102400a14a0294052808010b0b19982001180100b99998200018010110008b1bad30a50130a601003375a6148020046eb4c28c04008c28c040054ccc270040044cc28004dd400699850009ba800c330a001375002697ae01330a001375001866140026ea0034cc28004dd400925eb8058c23804c27004dd5185000985080800984e009baa309f01019375a613c02613e020086eb4c2740400cdd6984e008019bad309b01003309b01001309a0100137586130026132020166eb4c25c04c26004010dd6984b008019bad309501003375a6128020066128020026126020026eb0c24404010c24004010dd69847808021bad308e01004308e01001308d01001308c01001308b01001308a01308a01308601375461120200861120200461100200466446466660020020060800a24444646464646464a6661140260886e9c01454ccc228054ccc22804c110dd3801898221ba700114a026611c0266601600c00800497ae01613308e0133300b006004002333300a00a005003001308f01006308d01005308d01005308b01004308b0100430890100333303a0014bd70111981e8009982382000111119999981603b1843009843809841809baa00300207f4a20022c6eb8c20804c1fcdd50270b184080983f1baa308101003375a61000261020200660fe0046eb0c1f8008c1f8004c1e4dd50008b183d803983d183d8029bad30790043078005307700530760053076001307500130740013073001307230723072306e37540026601a08660e060e20066eacc1bcc1c0c1b0dd50021bab306e001306e306a375460da60dc60d46ea800c58dd6983601d18358200b18350101b8948000dc0a4000444a6660ca60b060cc6ea80045200013370666e08cdc10018011bad306a3067375400290404257af91111919b833370400200866e00c01c014004cdc118028008011b81482827004dc12414138024464a6660c260ae002260cc60c66ea800854ccc184c1500044c8c8cc004004014894ccc19c004584c8ccc8894ccc1a0cdc780380188010998030030009bae30660013067001306b0023069001375c60cc60c66ea800858c184dd500091299982f982998301baa0021323232323232323232323232323232323232533307430770021323253330733067001132325333078307b00200416375c60f200260ea6ea804c54ccc1ccc1980044c8c94ccc1e0c1ec00801058dd7183c800983a9baa013153330733069001132325333078307b00200416375c60f200260ea6ea804c54ccc1ccc05c0044c8c94ccc1e0c1ec00801058dd7183c800983a9baa013163073375402426602e01e26602c01a26602e01626602c01226604800e26464a6660e660ce00226464646464646464a6660fc61020200426604400a0142c64a6660fc60fa0022a6660f6605660f80022c260dc60f80022c6ea8c1fc004c1fc008dd6983e800983e801183d800983d80119299983c183b8008a99983a9812983b0008b09834183b0008b1baa30790013075375400e2a6660e660cc0022646464646464a6660f860fe0042660400060102c6eb4c1f4004c1f4008c1ec004c1ec008c94ccc1e0c1dc00454ccc1d4c094c1d8004584c1a0c1d800458dd5183c800983a9baa00715333073306900113232323232323232533307e30810100213302200500a16375a60fe00260fe0046eb4c1f4004c1f4008c1ec004c1ec008c94ccc1e0c1dc00454ccc1d4c094c1d8004584c1a0c1d800458dd5183c800983a9baa00715333073301700113232323232323232533307e30810100213302200500a1632533307e307d0011533307b302b307c001161306e307c00116375460fe00260fe0046eb4c1f4004c1f4008c1ec004c1ec008c94ccc1e0c1dc00454ccc1d4c094c1d8004584c1a0c1d800458dd5183c800983a9baa007153330733370e90040008991919191919299983e183f801099299983d18370008991919192999840809842008010068b1bad308201001308201002375a61000200260f86ea801854ccc1e8c1b40044c8c8c8c94ccc20404c2100400803458dd69841008009841008011bad308001001307c375400c2c60f46ea801458c94ccc1f0c1ec00454ccc1e4c0a4c1e8004584c1b0c1e800458dd5183e800983e8011bad307b001307b00230790013075375400e2a6660e666e1d200a00113232323232323232533307e30810100213302300700a1632533307e307d0011533307b302b307c001161306e307c00116375460fe00260fe0046eb4c1f4004c1f4008dd6983d800983d801183c800983a9baa007153330733370e900600089919191919191919299983f1840808010998118028050b19299983f183e8008a99983d9815983e0008b09837183e0008b1baa307f001307f002375a60fa00260fa00460f600260f600464a6660f060ee0022a6660ea604a60ec0022c260d060ec0022c6ea8c1e4004c1d4dd50038a99983999b87480380044c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc21004c21c0400804058dd69842808009842808011bad308301001308301002375a6102020026102020046eb4c1fc004c1fc008dd6983e800983e8011bad307b001307b002325333078307700115333075302530760011613068307600116375460f200260ea6ea801c54ccc1cccdc3a4020002264646464646464646464a6661000261060200426604a0120182c64a6661000260fe0022a6660fa605a60fc0022c260e060fc0022c6ea8c20404004c20404008dd6983f800983f8011bad307d001307d002375a60f600260f600460f200260ea6ea801c54ccc1cccdc3a40240022646464646464a6660f860fe0042660d400a44a6660fc00426604400a014264a6660f860e060fa6ea80044c8c8c8c94ccc20c04c218040084cc0cc00c4c018c2180401c58c94ccc20c04c2080400454ccc20004c0c0c20404004584c1ccc2040400458dd5184200800984200801184100800983f1baa0011630800100216375a60fa00260fa00460f600260f60046eb0c1e4004c1d4dd50038a99983999b874805000454ccc1d8c1d4dd50038010b0b18399baa00613253330723066001132325333077307a0021323232533307a307d00201916375a60f600260f60046eb4c1e400458dd6183c000983a1baa00215333072306500115333075307437540040282c2c60e46ea800458c1d4004c1d4008dd698398009839801183880098388011837800983780118368009836801183580098358011834800983480118338009833801183280098309baa00216370e90031119299982f18290008a99983098301baa003002161533305e3051001132325333063306600200416375c60c800260c06ea800c54ccc178c1500044c8c94ccc18cc19800801058dd7183200098301baa00316305e375400444a6660b860a060ba6ea80084c8c8c8c94ccc18cc1980084cc04800c4c94ccc184c1540044c8c94ccc198c1a40084c94ccc190c1600044c8c94ccc1a4c1b00084cc06000402c58c1a8004c198dd50010a999832182b8008991919191919299983698380010078b1bad306e001306e002375a60d800260d80046eb4c1a8004c198dd50010b18321baa001163067001306337540042a6660c260a80022a6660c860c66ea80080185858c184dd50008b183200098320011831000982f1baa002162232533305c3050001132325333061306400200416375a60c400260bc6ea800c54ccc170c13c0044c8c94ccc184c19000801058dd69831000982f1baa00316305c37540044464a6660b6609e00226464a6660c060c60040082c6eb4c184004c174dd50018a99982d982700089919299983018318010020b1bad3061001305d37540062c60b66ea8008888c8c8c94ccc174c144c178dd51831182f9baa00610011533305d00113300700200514a066ebc014c184008c180c184c184004c170dd50009119baf001325333059304d00114c0103d879800015333059304c0011301b3305d305e305b375400697ae013374a90021982e9ba937286eccc178c16cdd5001a5eb80c164dd5001111111191919191919191919191980a0008991919191919191919191919191919191919191919814000899191919191919191919191919191919191919299984600a99984600819899b8701b00714a22a66611802a6661180266ebc07802854ccc23004cdd780f01b8a9998460099baf02f02b1533308c013375e03a0122a6661180266ebc07002054ccc23004cdc380c0020a9998460099b870170031533308c013375e02c0042a6661180202a2002266611802002941288a5014a029405280a5014a029405280991919191919191919191919191919191919299984f00a99984f0099baf374c6666096666609666660966666096666609697adef6c600464881034d5350004800804404001c03803401411803000d22010048810048302a29410dd30200a99984f0099baf374c0026e980f04cdc399b810020033370205a03229405280983699851008179985100817198510080599851009ba833304a02a044027330a201375066609405208804e661440205066144026e9ccc28804dd401619851009ba802b330a201375000e66144026ea0014cc28804dd4016a5eb80cc28804dd399851009ba8018330a201375002e66144026ea0018cc28804dd400219851009ba80194bd7025eb8058cccc128cccc128cccc128cccc128cccc1292f5bded8c008a9101034d5350004800804003c01403403000c11402c00522010048810048302a29410ccc1a80e8110028ccc1a40f410c024ccc1a00e0028024ccc19c0ec024020dd6984e80984f008011bad309c010015333096013304400900813309a01375066e0000920bfa8a5043309a01375066e0000520bfa8a5044bd7009984d009ba80023309a01375000297ae03330630330080073330620360070063062330970137520766612e026ea40052f5c06e4ccdc51b933371400a0086e4ccdc50010009bae309601309701002375c612a020026122026ea807cdd7184980984a008011bae309201001308e01375403a2c2c60fc6118026ea8c24004c24404028c23c04024dd69847008049bad308d01009375a6118020126eb4c22c04024dd6984500804984480804984400804984380804984380800984300800984280800984200800984180800984100800984080800984000800983d9baa0013045015306a3078375460f860fa01460f60126eb4c1e8024dd6983c8049bad3078009375a60ee0126eb4c1d8024c1d4024c1d0024c1cc024c1cc004c1c8004c1c4004c1c0004c1bc004c1b8004c1b4004c1b0004c19cdd5000981898349835004183418348019bab306700230660023066001306137540106eacc18c008c188008c188004c174dd500291119299982c199804800a41403e900508008b299982b8008a99982b9825182c1baa00210031325333058333009001482400d20001337000020082c6eb4c170c164dd500108019111299982b98258008802099191980080080311299982e80089982f19bb0375200c6e9800d2f5bded8c0264666444a6660bc66e4002800c4cc188cdd81ba900a374c00e00a2a6660bc66e3c02800c4c94ccc17cc14cc180dd500089983199bb0375201660c860c26ea80040084008c94ccc17d4ccc1880045288a5014c103d87a80001302e33063374c00297ae03233001001003225333063001133064337606ea402cdd400525eb7bdb1804c8ccc8894ccc190cdc800780189983419bb0375201e6ea003801454ccc190cdc78078018992999832982c98331baa001133069337606ea4040c1a8c19cdd50008010801192999832982c8008a6103d87a80001303433069375000297ae03370000401c2660d066ec0dd48019ba800233006006001375c60c40026eb4c18c004c19c008c1940044cc188cdd81ba9003374c0046600c00c0026eb8c170004dd5982e8009830801182f800991900118060009982d99bb037520046ea00052f5bded8c044a6660a866e3c0092210013371e0029110014a044a6660a6608e60a86ea80084c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc1a8c1b40084cc06404c4cc0680444cc06803c4cc16400c05458c94ccc1a8c1a400454ccc19cc05cc1a0004584c168c1a000458dd518358009835801183480098348011bad30670013067002375a60ca00260ca0046eb4c18c004c18c008dd6983080098308011bad305f001305f002305d001305d002305b001305b0023059001305537540042c6e252004222533305233712006004266e2400400c52811192999828982280089919299982b182c8010020b1bae3057001305337540062a6660a2608800226464a6660ac60b20040082c6eb8c15c004c14cdd50018b18289baa00222533304f304330503754004264646464a6660ac60b200400a2c6eb8c15c004c15c008dd7182a80098289baa00216300100122533305000114984c94ccc14400452613233322253330523372000600426600e00e660ac0080022c6eb8c140c15000cdd71828000982a801182980098298008b18008009129998270008a40002601e6600400460a20026002002444a66609a004260086e9c00454ccc1340045280999801801982800118280009baf4c010180003330010174bd701119802000998070028011111919980080080198099b8d004222533304a337100029000080109998018019980219b8e006001002301500122330490010023300301d253323304433304430010414a09444c94ccc114c0e40044ccc114c008c050cc124c128c11cdd5005a5eb812825115333045303800113330453002300733049304a3047375401697ae04a09444ccc114c008c01ccc124c128c11cdd5005a5eb8128251304537540146ebcc120c114dd5182418229baa30483049304537540022940cc00806c8cdd7982398221baa30473044375400207e66002036466ebcc118c10cdd5182318219baa304630473043375400207c44646600200200644a66608c002297ae013322533304530050021330490023300400400113300400400130480013049001374a90010b119299981f9802000899199800800a45400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480008894ccc108cdc48020008a51132533304330363371c00600229404ccc010010cdc5199b8c4800000400ccdc5a4004666e30c01c00520800100330070023371c00a0022940dc68009b8048008dc424000660026eb0c0fcc0f0dd51919299981e1818181e9baa00113232533303e303133300c37566086004078911044d53475300132533303f3033304037540022646464646464646464646464a66609c60a200426607801644a6660a000426602601626602601226602600e26602600a266026006201e26602660a40042600260a60042c609e002609e004609a002609a0046096002609600460920026092004608e002608e0046eb0c114004c104dd50008b18058008b182118218009821181f1baa30413042303e37546082607c6ea800458c8cc004004dd6182080e9129998200008a60103d87a800013322533303f325333040303330413754002266e3cdd7182298211baa00103e14a0608860826ea8c110c104dd51822182298209baa0021300e330430024bd70099802002000982100098218009119299981e981880089919299982118228010020b1bae3043001303f37540062a66607a606000226464a666084608a0040082c6eb8c10c004c0fcdd50018a99981e981980089919299982118228010020b1bae3043001303f37540062c607a6ea8008dd6981f8089800800911299981d99b89480500044ccc00c00cc104c104c104c104c104c104c104c104c104c104008cdc0000a40262660080040026002002444a66607266e2400520001303e0021333003003303f002300400137009000991919299981b9815181c1baa0011325333038302b30393754006264a66607266e24cdc0800801241013e92266e00cdc199b810010024801000858dd6981e981d1baa00316375a607860726ea800458c0ecc0e0dd5181d801181d181b9baa303a303b0013036375460720224a6660686054606a6ea80044c0e4c0d8dd50008b11119299981b1814981b9baa0011480004dd6981d981c1baa001325333036302930373754002298103d87a8000132330010013756607860726ea8008894ccc0ec004530103d87a8000132333222533303c337220100062a66607866e3c02000c4c02ccc100dd400125eb80530103d87a8000133006006001375c60740026eb4c0ec004c0fc008c0f4004c8cc004004010894ccc0e80045300103d87a8000132333222533303b337220100062a66607666e3c02000c4c028cc0fcdd300125eb80530103d87a8000133006006001375c60720026eacc0e8004c0f8008c0f0004dd2a40006eb0c0d4c0d8010c0d000cdd718198019bac3032003303200130310013030001302b37540426eacc0b4c0b8c0b8010dd598160031bac302b0063758605400e6054002605200260506050002604e604e002604c002604a00260406ea805c4cc040c08c0084c004c0900084c8c008c08c00cdd698108010b1bac301e001301e002301c001301c002375c603400260340046eb0c060004c060008dd6980b00098091baa0081622323300100100322330030013002002223253330113005001132325333016301900200416375a602e00260266ea800c54ccc044c01000454ccc050c04cdd50018010b0b18089baa002370e90011b8748000c040c034dd50011b874801058c038c03c00cc034008c030008c030004c01cdd50008a4c26cac6eb80055cd2ab9d5573caae7d5d02ba157441", + "hash": "778885474b63ca35132a2851124ac242986842c41fe271ae8c17b3a6" + }, + { + "title": "pool_validator.pool_batching_validator.else", + "redeemer": { + "schema": {} }, "parameters": [ { "title": "authen_policy_id", "schema": { - "$ref": "#/definitions/ByteArray" + "$ref": "#/definitions/PolicyId" + } + }, + { + "title": "pool_payment_cred", + "schema": { + "$ref": "#/definitions/cardano~1address~1Credential" } } ], - "compiledCode": "590f5801000032323232323232323223222232323232533300c3232323253330103370e90011807800899191919299980a19b87480000084cc004dd5980c980d180d180d180d180d180d1809003980c98090078991919191919191919191919299981019b87480080384c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc0c8cdc3a4000606200226464646464646464646464646464646464a666086666605600204002c0262a6660866660580400160022a666086605c605e032264646464646464646464646464646464a6660a6a6660a666e1cccc0e002413d2201034d535000480084cdd79ba6009374c00629404c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc1f8cdc3a4000002264a6660fe66ebc0a405454ccc1fccdd78138098a99983f99baf0250111533307f3370e04601e2a6660fe66e1c08403454ccc1fccdc380f8058a99983fa99983f80b8801899983f801a504a22a6660fe66ebc0dc0c454ccc1fcccc0f002520a01f4802854ccc1fcccc0f001d20a01f4802840045280a5014a029405280a5014a029405280a5032533307f3370e90010008a51133303c375a61080260fa00a904827241083460fa0082a6660fc66e1d20020011533307e3375e0500282a6660fc66ebc09804854ccc1f8cdd78120080a99983f19b8702200e1533307e3370e0400182a6660fc66e1c07802854ccc1f8cdc380e0040a99983f19b8701a0061533307e3375e030008266ebc0d80c05280a5014a029405280a5014a02940528099baf07902b307c05c3370e9001183e9baa308101001308101002307f001307f002375a60fa00260fa0046eb4c1ec004c1ec008dd6983c800983c8011bad30770013077002375a60ea00260ea00460e600260e600460e200260e200460de00260ce02c66e1d20023069375460da00260da00460d600260d60046eb4c1a4004c1a4008dd6983380098338011bad30650013065002375a60c600260c60046eb4c184004c184008c17c004c17c008c174004c174008c16c004c14c140c12c004c0dc00458c15c004c15c008dd5982a800982a8011829800982599817013000982880098248019bab304f001304f002304d0013045001304b001304b0013042011222533304633712006004266e2400400c5280a5014a02940c94ccc10ccdc3a4000002200e2a66608666e1d2002001100210043041021304600130460023044001304400130430023041001304100130380013301c014035303d0013035001303b001303b001303200130380013030001163301300e0203758606a002606a00260680046eacc0c8004c0c8004c0c4008dd59817800981780098170011bac302c001302c0023758605400260540046eb0c0a0004c080054c098004c0780684c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc0c0cdc3a4000605e0022646464646464646464646464a666078666604800203602201c2a66607866604a03600c0022a666078604e6050028264646464646464646464646464646464646464a66609ea66609e66ebc03401c54ccc13ccdd7825001099b8733303400b04b4881034d535000480085280a501323232323232323232323232323232323232323375e6e98060dd31999812999981280f00400319b8100c533306253330623371e0109110013371e00c9110014a0266e0400520c0a8a50410010040023370201466608e03c00800466608c03a00e00a6eb8c194004c194008dd71831800982d8051bae30610013061002375c60be00260ae0106eb4c174004c174008dd6982d800982d800982d001182c000982c001182b000982b00098268250b18228009818800982880098288011bab304f001304f002304d001304533028022001304b0013043003375660920026092004608e002607e002608a002608a002607801a4444a66608266e1c005200010041323233001001006225333047001133048337606ea4018dd3001a5eb7bdb1804c8c8c8c94ccc120cdd79980600500126103d879800013304c337606ea4028dd30038028a99982419b8f00a00213232533304a3370e900000089982719bb03752018609e609000400a200a609000264a666092a66609800229445280a60103d87a800013374a9000198269ba60014bd70191980080080111299982680089982719bb037520166ea00292f5bded8c0264646464a66609c66ebccc04803c00930103d8798000133052337606ea403cdd40070028a99982719b8f00f0021323253330503370e900000089982a19bb0375202260aa609c00400a200a609c00264a66609e66e1c005200014c103d87a800013374a9000198299ba80014bd7019b8000100e133052337606ea4008dd4000998030030019bad304f003375c609a00460a2004609e00226609866ec0dd48011ba600133006006003375660920066eb8c11c008c12c008c124004c8c8008c8cc004004008894ccc11c004526132533304800114984c8c8c8c8c8c8c94ccc130cdc3a4000002266014014660a000c00a2c60940026601c0040026eb8c12800cdd7182480198268019825801182500118250009982299bb037520046ea00052f5bded8c044a66607c66e400080045300103d87980001533303e3371e0040022980103d87a800014c103d87b800014a0294052818200009820000981f800981b0009980d00a019981d8009819800981c800981c8009818000981b00098170008b1980880700f1bac303300130330013032002375660600026060002605e0046eacc0b4004c0b4004c0b0008dd6181500098150011bac302800130280023758604c002603c026446464a66604c605200420022c604e00266016004466ebcc09cc080c09cc08000400888cc0180088cdd79813180f8008011119299981019b8748000c07c0044c8c8c8c8c8c8c8c8c8c94ccc0a8cdc39998078018062441044d53475300480084c8c8008c94ccc0b0cdc3a40000022646464646464646464646464a666076607c00426464646464649318120031811803981100418108049810005191980080080611299981e8008a4c2646600600660820046042607e0022c607800260780046074002607400460700026070004606c002606c004606800260680046eb0c0c8004c0a800858c0a8004c03800458c0b8004c0b8008dd59816000981600098118009814800981480098100009813000980f0008b1980280111919191919191919299981419b87480080044cdc79bae302d302600200a14a0604c0026056002604600260520026042002604e002604e002603c002464a66603c66e1d200400113023301c00216301c00122232323253330213370e90010008a400026eb4c098c07c008c07c004c94ccc080cdc3a40040022980103d87a8000132323300100100222533302600114c103d87a800013232323253330273371e014004266e9520003302b375000297ae0133006006003375a60500066eb8c098008c0a8008c0a0004dd59812980f001180f00099198008008021129998118008a6103d87a800013232323253330243371e010004266e95200033028374c00297ae01330060060033756604a0066eb8c08c008c09c008c09400488c8cc00400400c894ccc0840045300103d87a8000132325333020300500213374a90001981200125eb804cc010010004c094008c08c0048c94ccc06ccdc3a400000226464a66604060460042930b1bae302100130190021533301b3370e900100089919299981018118010a4c2c6eb8c084004c06400854ccc06ccdc3a400800226464a66604060460042930b1bae30210013019002163019001222232533301d3370e900000089919198008008021129998118008a501323253330223371e00400a29444cc010010004c09c008dd718128009bae3022301b0051533301d3370e9001000899191919198008008041129998128008a501323253330243375e605260446052604460526054604400400a29444cc010010004c0a4008c09c004cdd2a4004660466ea40052f5c06eb8c08c004c06c0144cc02800ccdd2a40006604266e952002330213022301b0054bd7025eb80c06c010888c8c8c94ccc080c08c0044c8cc00400401c894ccc0880045288991929998109919191919191919299981499b87480080044c8c94ccc0accdd78020080a51132533302c3370e9001000899b8f002375c606260540262a66605866e1d200400113371e0046eb8c0c4c0a804c52818150091bae302f001302700214a2604e002605800260480026054002604400260500026050002603e0042660080080022940c098008c09000458cc0180148cdd78011811180d9811180d98111811980d8009810000980c00111191980080080191299980e8008a5eb804c8c94ccc070c0140084cc080008cc0100100044cc010010004c084008c07c0048cdd79ba60014c0101a0002323300100100222533301a00114bd6f7b630099191919299980d99b8f488100002100313301f337606ea4008dd3000998030030019bab301c003375c6034004603c004603800244646600200200644a66603400229404c8c8c94ccc068cdd78030008a51133005005002301a002301e002301c001301100c3016001300e00116301400130140023012001300a00514984d958c94ccc030cdc3a40000022a66601e601400c2930b0a99980619b87480080044c8c94ccc044c0500084c92632533300f3370e90000008a99980918068010a4c2c2a66601e66e1d200200115333012300d00214985854ccc03ccdc3a40080022a666024601a0042930b0b18068008b180900098050030a99980619b874801000454ccc03cc0280185261616300a0053001005232533300b3370e9000000899191919191919191919191919191919191919192999811181280109919191924c64a66604666e1d2000001132325333028302b002149858dd6981480098108038a99981199b874800800454ccc098c08401c52616163021006301901130180123253330203370e9000000899192999812981400109924c64a66604666e1d2000001132325333028302b002149858dd7181480098108010a99981199b87480080044c8c94ccc0a0c0ac00852616375c605200260420042c60420022c604c002603c0282a66604066e1d200200113232323232325333029302c002149858dd6981500098150011bad30280013028002375a604c002603c0282c603c0262c66e1d2002301f375460460026046004604200260420046eb4c07c004c07c008dd6980e800980e8011bad301b001301b002375a603200260320046eb4c05c004c05c008c054004c054008c04c004c04c008c044004c02400858c0240048c94ccc028cdc3a4000002264646464a66602260280042930b1bae30120013012002375c602000260100042c60100026eb80048c014dd5000918019baa0015734aae7555cf2ab9f5740ae855d101", - "hash": "6df8eb9630eed869470a59289e22870998949b745642e52cb126f15d" + "compiledCode": "593b0301010032323232323232232225333005323232323253323300b3001300c375400426464646464a666020600860226ea80204c8c8c8c8c8c8c8c8c8c94ccc074c0800084cc02c01c894ccc07c0084c8c94ccc078c0480044c8c94ccc08cc09800801058dd7181200098101baa0071533301e3011001153330213020375400e0042c2c603c6ea80184cc03400c894ccc0840084c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94cc8cc0fd4ccc0fccc88c94ccc108c0d80044c8c8cc004004010894ccc12000452809991299982399b8f00200514a22660080080026eb8c128004c12c004dd7182398221baa008153330423035001132323300100101f22533304800114a026644a66608e66ebcc130c124dd5182618249baa304c304d3049375400400a29444cc010010004c128004c12c004c010cc118c11cc110dd500425eb804c8c8cc004004014894ccc12000452809991299982399baf00500214a2266008008002608c6094002609600260086608c608e60886ea80212f5c060846ea801cdd5982200e9bac304401b1533303f300201113375e6e98061300101a00014a029404c8c8c8c8c8c8c8c8c8c8c8c94ccc12d4ccc12ccdc39b8d01d300100913300300b00a14a02646464646464646464646464646464646464646464646464a6660cc046294054c8c8ccc1a0c1ac0944c8c8c94ccc1acc1b80e04c8c8c8c8c8c8c8cdd7983a183a8009ba7333333323232323232323232323232222222323333300100103d05c0553758610e020284444464646464646464646606200226464646464646464646464646464646464a6646614002a6661400260ca0062a6661400260ca0322a6661400260020062a6661400266ebc08c01454ccc28004c24c04c28404dd50010a511337120d86eb4c29404dd61852809851009baa00214a029405280a50132323253330a60101d100213333302202201d00101b0023758614e026150020046eb0c29804004c94ccc28404c254040044c8c8c8cccc8888c8c94ccc2a804c1bc0104cc2b804dd39999999999999999981800f001009809008808003002817817011816015815012801919b89005001330ae01374e00297ae01630af0102630ad0102530970130a50137546152020066152020046eb4c2a404004c25c04c29404dd51854809855008009854808009854008009851809baa005153330a10130940100113232333222323253330a801306d0031330ac01374e6666666666666666605c03800402202001e01c00a00805a0580420540520500469408cdc480080219856009ba70014bd700b185680812185580811984b009852009baa30a80100230a801001375a6150026152020026150020026146026ea801454ccc28404c25c040044c8c8c8cccc8888c8c94ccc2a8054ccc2a804c1bc0104c1bc00c528099857009ba73333333333333333303001e00201301201101000600502f02e02302c02b02a0254a04a6661560266e24014004528899b89001004330ae01374e00297ae01630af0102630ad0102530970130a50137546152020066152020046eb4c2a404004dd69854809855008009854808009854008009851809baa005153330a1013045001132323233332222323253330aa01306f0041330ae01374e64646464646464646464646464646464646464646464a66618002610a020022a6661800266e2400c00454ccc30004cccc11c09c098cccccccc1280d00e402001c01401000c06806054ccc300040704cc31004dd419b813370002600600466188026ea0cdc080900d19862009ba83370002200666188026ea0cdc080800d19862009ba800f4bd70099862009ba83370202603466188026ea0cdc099b80012003002330c401375066e04044068cc31004dd419b80010003330c401375001e97ae016153330c00153330c001019133330470290283304803403901814a020762c2ca66617e026166026180026ea80684dd69862009860809baa01a13253330c001305c00113370266611c0206801000e0022c6eb4c31004c30404dd500d19982e00080401f1991299985f8099b8801900113083013370660c066e08008064cdc119b81001019305f00916375a6184020126eb4c30804020dd71860809861008011bae30c00100130bc013754617e0200e6eb8c2f804c2fc04008dd7185e80800985c809baa30bc01005375a617602617802002617602002617402002617202002a6661640201c26616c0206e6616c0206c6616c026ea0014cc2d804dd40021985b009ba80344bd7009985b0081b1985b0081b9985b009ba8004330b601375000a6616c026ea00cd2f5c06eb4c2d804c2dc04014dd6985a808021bad30b401004375a6166020086eb4c2c8040a0c2c804004c2c404004c2c004094cc2b804dd3800a5eb8058c2bc04098c2b404094c25c04c29404dd51854808019854808011bad30a90100130970130a50137546152026154020026152020026150020026146026ea801454ccc28404cdc3a4010002264646664446464a6661500260da008266158026e9cc8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc2f0054ccc2f004c16000854ccc2f004c1600044c20404cdc00010008a5014a026464646464a6661820266e2407400454ccc30404cccc1200a009ccccc1b8cccc1b8cccc1b8cccc1b80d522100488100305e03a01000f305e00700d00c305e00600a00900101b1330c501375066e04cdc000b00380199862809ba83370266e00054018008cc31404dd419b80014007330c501375066e0004c018cc31404dd419b800120014bd700b0a99986080a9998608080e099998240150149982481a81d00d8a50103c16375a618a02618c020066eb4c31004008dd69861808011861808009919299985f0099b880010021323232330c5013750666609e0040020860826618a02981010000330c501375066e0ccdc119b813370400e00200402466e00cdc100b00080125eb80dd69862809863008011bad30c4010013333304b004003013012040153330be013371000400226464646618a02981010000330c5013750666609e0040020840826618a026ea0cdc199b823370266e08018004008048cdc019b820150010024bd701bad30c50130c601002375a6188020026666609600600802402607e266184029801010000330c2014c1010000330c201375000497ae03370666e08008038044cdc199b8200200d01116375a6180026182020046eb4c2fc040054ccc2e404c2b404c2e804dd500b0991985f00985f808009985f00985f80986000800a5eb80c2ec04dd500b0991991299985e00a99985e00982c0010982c0008a501330c001375066e04ccc228040c002c028008cc30004dd419b8133308a010300080070014bd700b1bad30bf01001375a617e026180020026176026ea8058dd7185e80985f008011bae30bc0100130b80137540726eb8c2e804c2ec04008dd7185c80800985a809baa037375c616e026170020046eb8c2d804004c2c804dd501a9bad30b40130b501005375a6166020086eb4c2c804010dd69858808021bad30b00102630b00100130af0100130ae01023330ac01374e00297ae01630ad0102430ab0102330a801002375a615002002612c026148026ea8c2a004c2a404004c2a004004c28c04dd50028a9998508099b87480280044c8c8c8cccc8888c8c94ccc2a8054ccc2a804c1bc0144c1bc010528099857009ba732323232323232323232323232323232323253330bc01308101001132323253330bf0153330bf0133712034004266e240640045280a99985f8099998230130129999836199983619998361999836019a4500488100305c038006005305c00400c00b0020090080010171330c301375066e04048008cc30c04dd419b81011001330c301375066e04040008cc30c04dd419b8100f001330c301375066e040380112f5c02c2a66617e02a66617e020302666608c05004e6608e06607002e294040e858dd69861809862008011bad30c201001333304700f00e00100b1653330bb0130af0130bc01375402e26eb4c30004c2f404dd500b899299985e00982c000899b8133308a0103000300200116375a618002617a026ea805cdd7185f809860008011bae30be0100130ba0137540766eb8c2f004c2f404008dd7185d80800985b809baa039375c6172026174020046eb8c2e004004c2d004dd501b9bad30b60130b701005375a616a020086eb4c2d004010dd69859808021bad30b20102830b20100130b10100130b001025330ae01374e00297ae01630af0102630ad0102530a901003375a6152020046eb4c2a404004c25c04c29404dd51854809855008009854808009854008009851809baa005153330a1013370e900600089919191999911119192999855009837802099857009ba732323232323232323232323232323253330b901307e00113232323232323253330c001337120340022a66618002666608e04e04c66660da66660da66660da06891100488100305d03900a009305d00800d00c001018153330c00101c1330c4013750600c00666188026ea0cdc0980380100099862009ba8011330c401375066e04040004cc31004dd419b8100f0084bd70099862009ba833702600c00200666188026ea0c01c008cc31004dd419b81011001330c401375002066188026ea0cdc080780425eb805854ccc300054ccc300040644cccc11c0a40a0cc1200d00e4060528081d8b1bad30c40130c501003375a6186020046eb4c30804008c30804004c8c8c8c8c94ccc300040704cc31004dd419982f0020210201986200a601010000330c401375066e0000ccccc17c0080040101092f5c026618802981010000330c40137506660bc00608208066188026ea0cdc0002199982f800801001820a5eb80c018008c010008dd69861009861808011bad30c101001333304600e00d00300a370201a6e0402c594ccc2e004c2b004c2e404dd500989bad30bd0130ba013754026264a6661720260aa002266e04ccc21c040b400c00800458dd6985e80985d009baa013375c617802617a020046eb8c2ec04004c2dc04dd501c1bae30b90130ba01002375c6170020026168026ea94ccc2c80403840d840dcdd6985b00985b808029bad30b501004375a6168020086eb4c2cc04010dd698590081418590080098588080098580081299857009ba70014bd700b185780813185680812984b809852809baa30a90100330a901002375a615202002612e02614a026ea8c2a404c2a804004c2a404004c2a004004c28c04dd50028a9998508099b87480380044c8c8c8c8c8c8ccccccc8888888c8c8c94cc8cc2c8054ccc2c804c1dc02454ccc2c804c1dc02054ccc2c804c1dc01c54ccc2c804c1dc01854ccc2c804c0040284c04c0145280a5014a029405280991919191919191919191919299985f00a99985f00985880985f809baa30c30130c401007132323233064001153330c1013375e6120026618a020566618a020546618a020526618a020506618a0204e6618a0204c6618a0266e95200e330c5013330c10101a4c103d87a80004c0103d8798000330c50137500086618a026ea0060cc31404dd400b99862809ba8308c01016330c501375002a6618a026ea00512f5c06618a026ea0cdc081201d1986280811a5eb800044cdd781b0010a50330620980130c50130c60130c60100230c40100130c001375402026660ce04a048020266184026e9ccc30804dd400319861009ba8005330c201375000866184026ea000ccc30804dd400125eb80cc30804dd3807a5eb8058dd69861008031bad30c101006375a61800200c6eb4c2fc04018dd6985f008031bad30bd0100630bd0100130bc0100130bb0100130ba0100130b901001323232323232323232323232323232323232323232323253330c90153330c901308e01005153330c901301800513375e6e98004dd300c8a5014a0264a6661940204626619c026ea0cdc099b80015006003330ce01375066e04050010cc33804dd419b80013006330ce01375066e04048010cc33804dd400899867009ba8005330ce013330ca010014c0103d87a80004c0103d87980004bd70099867009ba83370202a0086619c026ea0cdc099b80014006003330ce01375066e0404c010cc33804dd419b80012006330ce0137500226619c026ea0014cc33804ccc32804005300103d87a80004c0103d87980004bd7029998648099b88480080784c0600105280b1999999982901e0209bae30cd01007375c619a02619c0200e6eb8c33404018dd7186680986700803002001199832801803823999983280400380100319b8101d00153330c40133712038002203820026464a66618a0261140200220022c66e0ccdc099b823370403600200a66e08c194068018cdc100d00098318019862009baa30c70100730c3013754618c0200e6eb4c31404c3180400cdd69862008011bad30c30100230c30100130c20100130c10100153330ba010131330be0103f330be0103e330be01375000a6617c026ea0010cc2f804dd401e25eb804cc2f8040f8cc2f8040fccc2f804dd40021985f009ba8005330be01375007697ae0375a617c02617e0200a6eb4c2f404010dd6985e008021bad30bb01004375a61740206061740200261720200261700205a6e2401458dd5985a80985b009859009baa00230b50102c30b30102b309a0130a801375461580200c6eb4c2b004014dd69856008021bad30ac01003375a6158020046eb4c2b004004dd69856009856808009856008009855808009855008009854808009854008009851809baa005153330a1013370e900800089919191919999911111919299985600a9998560098388030a999856009838802898388020a5014a0266160026e9cc8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc2f804c20c040044c8c8c8c8c8c8c94ccc31404cdc480e8010a999862809999826016015999983919998391999839199983901ca4500488100306203e00a009306200801000f00200d00c00101b1330c901375066e04cdc080b00100219864809ba83370266e0405400400ccc32404dd419b81014002330c901375066e0404c004cc32404dd419b810120084bd700b0a99986280a9998628080e099998260170169982681c81f00d8a50104016375a6192026194020086eb4c3200400cdd69863808019bad30c60100330c60100130c5010013232323232323253330c5013371000200426466194026ea0ccc190004120118cc32805301010000330ca01375066e0401c004cc32804dd419b8000633330650050040010484bd70199999982880300280200180f80f0238a9998628099b88002001132330ca014c01010000330ca0137506660c800208e08c66194026ea0cdc0003999983280200280082399865009ba83370200c00297ae0333333305100500600300401e01f0461330c9014c1010000330c9014c1010000330c901375000c66192026ea00152f5c066e08010078cdc100200e19b81012002337020240046eb4c31404c31804008dd698620080099998248078070008058b299985e80985880985f009baa0181375a618402617e026ea80604c94ccc2f804c1680044cdc0999846008190018010008b1bad30c20130bf0137540306eb8c30404c30804008dd7186000800985e009baa03d375c617c02617e020046eb8c2f404004c2e404dd501d9bae30bb0130bc01002375c617402002616c026ea80e4dd6985c00985c808029bad30b701004375a616c020086eb4c2d404010dd6985a00815185a0080098598080098590081399858009ba70014bd700b1858808141857808139855008021bad30aa01003375a6154020046eb4c2a804004c26004c29804dd51855009855808009855008009854808009854008009851809baa005153330a1013370e900a000899852809ba732323232323232323232323232323253330b00153330b001304c002153330b001304c0011307533700004002294052809985a009ba83370001800466168026ea0cdc00058009985a009ba83370001400466168026ea0cdc00048009985a009ba80084bd700b19983e8119bae30b401003375c616802616a02006a66615c02660b8008006266e0400409c54ccc2b804c03cccc1f008922010048810010011633307b02100300230ae0137540606eb8c2c004c2c404008dd71857808009855809baa02e375a615a02615c0200a6eb4c2b004010dd69855808021bad30aa01004375a61520203e615202002615002002614e020386614a026e9c0792f5c02c6142026ea8010dc480c0b1851809852008049bad30a20100830a10100830a001008309f01008309e01008309d01008309c01008309b01008309b01001309a0100130990100130980100130970100130960100130950100130900137540026605e0ca6124026126020066eacc24404008c24004008c24004004c22c04dd51847009847809845809baa308e01007308e01004375a61180200661180200844444444444444444646464646464646464646464646464646464a66613a0260c400226464a66613e02602a0042a66613e02a66613e02646464a66614402612c026146026ea8c29c04c29004dd5012099baf024002153330a2013375e0480042660980020462940c29804c29c04c29c04008c29404004c28404dd501209919299985080984a809851009baa00113375e614c026146026ea8004dd31818801099191919baf374c00a6e98cccccccc0b80a8080dd71854808011bae30a90130aa01002375c6152020026eb8c2a404c2a80400402001cc29404dd51854009854808011852009baa30a70100153330a1010211330a50101f330a50101e4bd700998528080f198528080fa5eb80cccc88894ccc29004cc14801000c4c8c8c94c8ccc2ac0400854ccc2a0040a04c1dccc2b004dd3198560099bb04c01014000374c661580266ec130010140003750600266e000900312f5bded8c0661580266ec0dd48031ba6330ac01337606ea4014dd4005a5eb7bdb1812f5bded8c097ae016153330ab0130ae010021323253330ad01001005153330ad0130b00100113233322253330ae0153330ae013330ae0102e4a094454ccc2b804cdc7801806099b8f00200b14a0294054ccc2b804cdc40090008983e99859009ba6330b201337609801014000374c661640266ec13001014000375066e00c01c0a80452f5bded8c0661640266ec0dd48019ba6330b201337606ea4008dd419b810010124bd6f7b63025eb7bdb1812f5c02a66615c0266e1c0040484c1f4cc2c804dd3198590099bb04c01014000374c661640266ec13001014000375066e00c01c0a80452f5bded8c097adef6c604bd700b0a6103d87a8000375c6158020066eb8c2b004004dd69856808009857808008029bab30ab0100130ad0100200337026eb4c2a404c2b004dd59854809856008019856008010a6103d87a8000303402a14c0103d87a8000375c605e6144026ea8078dd718149851009baa01e375c605e6144026ea8074dd718149851009baa01d375660506142026ea80905280a99984f8080f899851809ba83370266e0004400c004cc28c04dd419b81010002330a301375066e0003c00ccc28c04dd419b8100e002330a301375001a97ae01330a301375066e04044008cc28c04dd419b813370002000600266146026ea0cdc080780119851809ba83370001c00666146026ea00352f5c02c2a66613e02a66613e0202c2666604c0460446604e04a0360482940405c58ccc0f000801805ccccc0f001c018004014594ccc27004c24004c27404dd500d89bad30a101309e013754036264a66613a026072002266e04ccc1ac08c00c00800458dd6985080984f009baa01b375c6140026142020046eb8c27c04004c26c04dd5184f008031bad309d01309e01003375a6138020046eb4c26c04008c26c04004c268040054ccc24c0404c4cc25c04044cc25c04dd40029984b809ba80043309701375001c97ae013309701010330970137500086612e026ea0014cc25c04dd4006a5eb80dd6984b80984c008029bad309601004375a612a020086eb4c25004010dd698498080318498080098490080098488080191111919191919299984100983b1841809baa308701308401375401220022a6661040200226605800401029414ccc20404cdd7804184300802099baf374c00c6e980085281842809843008011bab308401001308401001307f375400244666604e0049101004881003370400290009183e983f00091111111299983f19816003002899998159999815804244100488100301b3370000e0040080060022a6660fc66058008006266660566666056010911004881003370200200e00c00a6036004266660566666056666605601091100488100301b007006005301b00200400300122223307d375066e0ccdc10010020009983e9ba83370666e0800800c0052f5c044444446464646466e0ccdc0980819b813370400200266e08cdc12401000466e08c080024cdc099b8200700a300300b00133704900200119b803370466e0801800ccdc0003804980119b81301f0083370400601460020046e0800cc06c00488888c8c8cc1f8dd419b81300b3370266e08004004cdc1180d99b82337049004180100219b813370400c66e08014014cdc119b82007005004301a0030013307e375066e08cdc1240086004008603400697ae03370466e0520c0b8020023370460020060086e0001088894ccc1d8c1a4c1dcdd50008a4000266e0ccdc119b82004002375a60f660f06ea8004c05cc05c00c8c1dc0048c8cc004004008894ccc1d800452f5bded8c0264660f066ec0c1d4004c1d8004cc00c00cc1e8008c1e000494ccc1c0cdc4000a40002c2a6660e060c8002290000a99983818318008a40042a6660e060cc00229001099199800800801181a99b83002480108894ccc1cccdc4000801099980180180099b833370066e0c01000400520041002307400730740063074005375a60e80086eb4c1d000cc1d0008c1d0004c1cc004c1c8004c1c4004c1c0004c1bc004c1a8dd519999980982e9836983718351baa0030020664a00022c60d806e60d604a60d404a264a6660d260d804226464a6660d660dc0762646464646601e00226464646464646464646464a6660ee66e1d2012307837540022646464646464a6660fa60e260fc6ea81384c94ccc1f94ccc1f8c10c02854ccc1f8c10c05c54ccc1f8cdc480b8050a99983f19981380680600c0a99983f299983f1838983f9baa00914a2266e24128dd69841809bac30830130800137540122a6660fc66ebc02c00854ccc1f8c10c00c54ccc1f8cc0d80f801454ccc1f8c1040044cdc49b8d001480185280a5014a029405280a5014a0294052809991911919191919191919191919191929998470098298008991929998480099b8901500213375e6e98004dd30130a50333303c333303c333303c02648900488100302c028007006302c00200400300133300f00100e01516533308d01308101308e01375402626eb4c24804c23c04dd50098992999847009815000899b8133305c02500600500116375a612402611e026ea804cdd71848809849008011bae309001001308c013754a6661140260fa6116026ea8c23c04c24004c23004dd519828808982a9820008880208029bae308e01308f01002375c611a020026112026ea94ccc21c04c1e8c22004dd51846009846809844809baa308c0100e10051004308b01308c01002308a01001308601375466096008609e6074008611002611202004610e020026106026ea8c21804004c0040048888c8c8c94ccc2200400c40044cccc01c01c00400c008c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc27004cdd798508080c1850808010991919191929998508098330110991929998518098340010a99985180a999851808040a9998518099b873370266e0005009000403454ccc28c04cdc399b8101300200c153330a3013370e66e0004809002c4cdc399b8101100200a14a029405280a9998518099b873370202800401a2a6661460266e1ccdc099b8001302400100c153330a3013370e66e0404800802c4cdc399b8001102400a14a0294052808010b0b19982001180100b99998200018010110008b1bad30a50130a601003375a6148020046eb4c28c04008c28c040054ccc270040044cc28004dd400699850009ba800c330a001375002697ae01330a001375001866140026ea0034cc28004dd400925eb8058c23804c27004dd5185000985080800984e009baa309f01019375a613c02613e020086eb4c2740400cdd6984e008019bad309b01003309b01001309a0100137586130026132020166eb4c25c04c26004010dd6984b008019bad309501003375a6128020066128020026126020026eb0c24404010c24004010dd69847808021bad308e01004308e01001308d01001308c01001308b01001308a01308a01308601375461120200861120200461100200466446466660020020060800a24444646464646464a6661140260886e9c01454ccc228054ccc22804c110dd3801898221ba700114a026611c0266601600c00800497ae01613308e0133300b006004002333300a00a005003001308f01006308d01005308d01005308b01004308b0100430890100333303a0014bd70111981e8009982382000111119999981603b1843009843809841809baa00300207f4a20022c6eb8c20804c1fcdd50270b184080983f1baa308101003375a61000261020200660fe0046eb0c1f8008c1f8004c1e4dd50008b183d803983d183d8029bad30790043078005307700530760053076001307500130740013073001307230723072306e37540026601a08660e060e20066eacc1bcc1c0c1b0dd50021bab306e001306e306a375460da60dc60d46ea800c58dd6983601d18358200b18350101b8948000dc0a4000444a6660ca60b060cc6ea80045200013370666e08cdc10018011bad306a3067375400290404257af91111919b833370400200866e00c01c014004cdc118028008011b81482827004dc12414138024464a6660c260ae002260cc60c66ea800854ccc184c1500044c8c8cc004004014894ccc19c004584c8ccc8894ccc1a0cdc780380188010998030030009bae30660013067001306b0023069001375c60cc60c66ea800858c184dd500091299982f982998301baa0021323232323232323232323232323232323232533307430770021323253330733067001132325333078307b00200416375c60f200260ea6ea804c54ccc1ccc1980044c8c94ccc1e0c1ec00801058dd7183c800983a9baa013153330733069001132325333078307b00200416375c60f200260ea6ea804c54ccc1ccc05c0044c8c94ccc1e0c1ec00801058dd7183c800983a9baa013163073375402426602e01e26602c01a26602e01626602c01226604800e26464a6660e660ce00226464646464646464a6660fc61020200426604400a0142c64a6660fc60fa0022a6660f6605660f80022c260dc60f80022c6ea8c1fc004c1fc008dd6983e800983e801183d800983d80119299983c183b8008a99983a9812983b0008b09834183b0008b1baa30790013075375400e2a6660e660cc0022646464646464a6660f860fe0042660400060102c6eb4c1f4004c1f4008c1ec004c1ec008c94ccc1e0c1dc00454ccc1d4c094c1d8004584c1a0c1d800458dd5183c800983a9baa00715333073306900113232323232323232533307e30810100213302200500a16375a60fe00260fe0046eb4c1f4004c1f4008c1ec004c1ec008c94ccc1e0c1dc00454ccc1d4c094c1d8004584c1a0c1d800458dd5183c800983a9baa00715333073301700113232323232323232533307e30810100213302200500a1632533307e307d0011533307b302b307c001161306e307c00116375460fe00260fe0046eb4c1f4004c1f4008c1ec004c1ec008c94ccc1e0c1dc00454ccc1d4c094c1d8004584c1a0c1d800458dd5183c800983a9baa007153330733370e90040008991919191919299983e183f801099299983d18370008991919192999840809842008010068b1bad308201001308201002375a61000200260f86ea801854ccc1e8c1b40044c8c8c8c94ccc20404c2100400803458dd69841008009841008011bad308001001307c375400c2c60f46ea801458c94ccc1f0c1ec00454ccc1e4c0a4c1e8004584c1b0c1e800458dd5183e800983e8011bad307b001307b00230790013075375400e2a6660e666e1d200a00113232323232323232533307e30810100213302300700a1632533307e307d0011533307b302b307c001161306e307c00116375460fe00260fe0046eb4c1f4004c1f4008dd6983d800983d801183c800983a9baa007153330733370e900600089919191919191919299983f1840808010998118028050b19299983f183e8008a99983d9815983e0008b09837183e0008b1baa307f001307f002375a60fa00260fa00460f600260f600464a6660f060ee0022a6660ea604a60ec0022c260d060ec0022c6ea8c1e4004c1d4dd50038a99983999b87480380044c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc21004c21c0400804058dd69842808009842808011bad308301001308301002375a6102020026102020046eb4c1fc004c1fc008dd6983e800983e8011bad307b001307b002325333078307700115333075302530760011613068307600116375460f200260ea6ea801c54ccc1cccdc3a4020002264646464646464646464a6661000261060200426604a0120182c64a6661000260fe0022a6660fa605a60fc0022c260e060fc0022c6ea8c20404004c20404008dd6983f800983f8011bad307d001307d002375a60f600260f600460f200260ea6ea801c54ccc1cccdc3a40240022646464646464a6660f860fe0042660d400a44a6660fc00426604400a014264a6660f860e060fa6ea80044c8c8c8c94ccc20c04c218040084cc0cc00c4c018c2180401c58c94ccc20c04c2080400454ccc20004c0c0c20404004584c1ccc2040400458dd5184200800984200801184100800983f1baa0011630800100216375a60fa00260fa00460f600260f60046eb0c1e4004c1d4dd50038a99983999b874805000454ccc1d8c1d4dd50038010b0b18399baa00613253330723066001132325333077307a0021323232533307a307d00201916375a60f600260f60046eb4c1e400458dd6183c000983a1baa00215333072306500115333075307437540040282c2c60e46ea800458c1d4004c1d4008dd698398009839801183880098388011837800983780118368009836801183580098358011834800983480118338009833801183280098309baa00216370e90031119299982f18290008a99983098301baa003002161533305e3051001132325333063306600200416375c60c800260c06ea800c54ccc178c1500044c8c94ccc18cc19800801058dd7183200098301baa00316305e375400444a6660b860a060ba6ea80084c8c8c8c94ccc18cc1980084cc04800c4c94ccc184c1540044c8c94ccc198c1a40084c94ccc190c1600044c8c94ccc1a4c1b00084cc06000402c58c1a8004c198dd50010a999832182b8008991919191919299983698380010078b1bad306e001306e002375a60d800260d80046eb4c1a8004c198dd50010b18321baa001163067001306337540042a6660c260a80022a6660c860c66ea80080185858c184dd50008b183200098320011831000982f1baa002162232533305c3050001132325333061306400200416375a60c400260bc6ea800c54ccc170c13c0044c8c94ccc184c19000801058dd69831000982f1baa00316305c37540044464a6660b6609e00226464a6660c060c60040082c6eb4c184004c174dd50018a99982d982700089919299983018318010020b1bad3061001305d37540062c60b66ea8008888c8c8c94ccc174c144c178dd51831182f9baa00610011533305d00113300700200514a066ebc014c184008c180c184c184004c170dd50009119baf001325333059304d00114c0103d879800015333059304c0011301b3305d305e305b375400697ae013374a90021982e9ba937286eccc178c16cdd5001a5eb80c164dd5001111111191919191919191919191980a0008991919191919191919191919191919191919191919814000899191919191919191919191919191919191919299984600a99984600819899b8701b00714a22a66611802a6661180266ebc07802854ccc23004cdd780f01b8a9998460099baf02f02b1533308c013375e03a0122a6661180266ebc07002054ccc23004cdc380c0020a9998460099b870170031533308c013375e02c0042a6661180202a2002266611802002941288a5014a029405280a5014a029405280991919191919191919191919191919191919299984f00a99984f0099baf374c6666096666609666660966666096666609697adef6c600464881034d5350004800804404001c03803401411803000d22010048810048302a29410dd30200a99984f0099baf374c0026e980f04cdc399b810020033370205a03229405280983699851008179985100817198510080599851009ba833304a02a044027330a201375066609405208804e661440205066144026e9ccc28804dd401619851009ba802b330a201375000e66144026ea0014cc28804dd4016a5eb80cc28804dd399851009ba8018330a201375002e66144026ea0018cc28804dd400219851009ba80194bd7025eb8058cccc128cccc128cccc128cccc128cccc1292f5bded8c008a9101034d5350004800804003c01403403000c11402c00522010048810048302a29410ccc1a80e8110028ccc1a40f410c024ccc1a00e0028024ccc19c0ec024020dd6984e80984f008011bad309c010015333096013304400900813309a01375066e0000920bfa8a5043309a01375066e0000520bfa8a5044bd7009984d009ba80023309a01375000297ae03330630330080073330620360070063062330970137520766612e026ea40052f5c06e4ccdc51b933371400a0086e4ccdc50010009bae309601309701002375c612a020026122026ea807cdd7184980984a008011bae309201001308e01375403a2c2c60fc6118026ea8c24004c24404028c23c04024dd69847008049bad308d01009375a6118020126eb4c22c04024dd6984500804984480804984400804984380804984380800984300800984280800984200800984180800984100800984080800984000800983d9baa0013045015306a3078375460f860fa01460f60126eb4c1e8024dd6983c8049bad3078009375a60ee0126eb4c1d8024c1d4024c1d0024c1cc024c1cc004c1c8004c1c4004c1c0004c1bc004c1b8004c1b4004c1b0004c19cdd5000981898349835004183418348019bab306700230660023066001306137540106eacc18c008c188008c188004c174dd500291119299982c199804800a41403e900508008b299982b8008a99982b9825182c1baa00210031325333058333009001482400d20001337000020082c6eb4c170c164dd500108019111299982b98258008802099191980080080311299982e80089982f19bb0375200c6e9800d2f5bded8c0264666444a6660bc66e4002800c4cc188cdd81ba900a374c00e00a2a6660bc66e3c02800c4c94ccc17cc14cc180dd500089983199bb0375201660c860c26ea80040084008c94ccc17d4ccc1880045288a5014c103d87a80001302e33063374c00297ae03233001001003225333063001133064337606ea402cdd400525eb7bdb1804c8ccc8894ccc190cdc800780189983419bb0375201e6ea003801454ccc190cdc78078018992999832982c98331baa001133069337606ea4040c1a8c19cdd50008010801192999832982c8008a6103d87a80001303433069375000297ae03370000401c2660d066ec0dd48019ba800233006006001375c60c40026eb4c18c004c19c008c1940044cc188cdd81ba9003374c0046600c00c0026eb8c170004dd5982e8009830801182f800991900118060009982d99bb037520046ea00052f5bded8c044a6660a866e3c0092210013371e0029110014a044a6660a6608e60a86ea80084c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc1a8c1b40084cc06404c4cc0680444cc06803c4cc16400c05458c94ccc1a8c1a400454ccc19cc05cc1a0004584c168c1a000458dd518358009835801183480098348011bad30670013067002375a60ca00260ca0046eb4c18c004c18c008dd6983080098308011bad305f001305f002305d001305d002305b001305b0023059001305537540042c6e252004222533305233712006004266e2400400c52811192999828982280089919299982b182c8010020b1bae3057001305337540062a6660a2608800226464a6660ac60b20040082c6eb8c15c004c14cdd50018b18289baa00222533304f304330503754004264646464a6660ac60b200400a2c6eb8c15c004c15c008dd7182a80098289baa00216300100122533305000114984c94ccc14400452613233322253330523372000600426600e00e660ac0080022c6eb8c140c15000cdd71828000982a801182980098298008b18008009129998270008a40002601e6600400460a20026002002444a66609a004260086e9c00454ccc1340045280999801801982800118280009baf4c010180003330010174bd701119802000998070028011111919980080080198099b8d004222533304a337100029000080109998018019980219b8e006001002301500122330490010023300301d253323304433304430010414a09444c94ccc114c0e40044ccc114c008c050cc124c128c11cdd5005a5eb812825115333045303800113330453002300733049304a3047375401697ae04a09444ccc114c008c01ccc124c128c11cdd5005a5eb8128251304537540146ebcc120c114dd5182418229baa30483049304537540022940cc00806c8cdd7982398221baa30473044375400207e66002036466ebcc118c10cdd5182318219baa304630473043375400207c44646600200200644a66608c002297ae013322533304530050021330490023300400400113300400400130480013049001374a90010b119299981f9802000899199800800a45400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480008894ccc108cdc48020008a51132533304330363371c00600229404ccc010010cdc5199b8c4800000400ccdc5a4004666e30c01c00520800100330070023371c00a0022940dc68009b8048008dc424000660026eb0c0fcc0f0dd51919299981e1818181e9baa00113232533303e303133300c37566086004078911044d53475300132533303f3033304037540022646464646464646464646464a66609c60a200426607801644a6660a000426602601626602601226602600e26602600a266026006201e26602660a40042600260a60042c609e002609e004609a002609a0046096002609600460920026092004608e002608e0046eb0c114004c104dd50008b18058008b182118218009821181f1baa30413042303e37546082607c6ea800458c8cc004004dd6182080e9129998200008a60103d87a800013322533303f325333040303330413754002266e3cdd7182298211baa00103e14a0608860826ea8c110c104dd51822182298209baa0021300e330430024bd70099802002000982100098218009119299981e981880089919299982118228010020b1bae3043001303f37540062a66607a606000226464a666084608a0040082c6eb8c10c004c0fcdd50018a99981e981980089919299982118228010020b1bae3043001303f37540062c607a6ea8008dd6981f8089800800911299981d99b89480500044ccc00c00cc104c104c104c104c104c104c104c104c104c104008cdc0000a40262660080040026002002444a66607266e2400520001303e0021333003003303f002300400137009000991919299981b9815181c1baa0011325333038302b30393754006264a66607266e24cdc0800801241013e92266e00cdc199b810010024801000858dd6981e981d1baa00316375a607860726ea800458c0ecc0e0dd5181d801181d181b9baa303a303b0013036375460720224a6660686054606a6ea80044c0e4c0d8dd50008b11119299981b1814981b9baa0011480004dd6981d981c1baa001325333036302930373754002298103d87a8000132330010013756607860726ea8008894ccc0ec004530103d87a8000132333222533303c337220100062a66607866e3c02000c4c02ccc100dd400125eb80530103d87a8000133006006001375c60740026eb4c0ec004c0fc008c0f4004c8cc004004010894ccc0e80045300103d87a8000132333222533303b337220100062a66607666e3c02000c4c028cc0fcdd300125eb80530103d87a8000133006006001375c60720026eacc0e8004c0f8008c0f0004dd2a40006eb0c0d4c0d8010c0d000cdd718198019bac3032003303200130310013030001302b37540426eacc0b4c0b8c0b8010dd598160031bac302b0063758605400e6054002605200260506050002604e604e002604c002604a00260406ea805c4cc040c08c0084c004c0900084c8c008c08c00cdd698108010b1bac301e001301e002301c001301c002375c603400260340046eb0c060004c060008dd6980b00098091baa0081622323300100100322330030013002002223253330113005001132325333016301900200416375a602e00260266ea800c54ccc044c01000454ccc050c04cdd50018010b0b18089baa002370e90011b8748000c040c034dd50011b874801058c038c03c00cc034008c030008c030004c01cdd50008a4c26cac6eb80055cd2ab9d5573caae7d5d02ba157441", + "hash": "778885474b63ca35132a2851124ac242986842c41fe271ae8c17b3a6" }, { - "title": "pool_validator.validate_pool_batching", + "title": "pool_validator.pool_validator.spend", + "datum": { + "title": "datum_opt", + "schema": { + "$ref": "#/definitions/amm_dex_v2~1types~1PoolDatum" + } + }, "redeemer": { "title": "redeemer", "schema": { - "$ref": "#/definitions/amm_dex_v2~1types~1PoolBatchingRedeemer" + "$ref": "#/definitions/amm_dex_v2~1types~1PoolRedeemer" } }, "parameters": [ { "title": "authen_policy_id", "schema": { - "$ref": "#/definitions/ByteArray" + "$ref": "#/definitions/PolicyId" } - }, + } + ], + "compiledCode": "590e040101003232323232323223225333004323232323253323300a3001300b3754004264664464646464a66602260080022a66602860266ea80280085854ccc044c0200044c8c94ccc058c0640084c94ccc050c01c00454ccc05cc058dd50010028b0a99980a18058008a99980b980b1baa00200516153330143006001153330173016375400400a2c2c60286ea800458c05c004c04cdd50050a99980898018008a99980a18099baa00a0021616301137540122a66601e600460206ea800c4c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc080c04c0044cc034dd5981298131813181318131813181318111baa01a3025302237540222a666040602e002264646464646464646464646464a66605a6040605c6ea80044c8c8c8c8c8c8c8c94ccc0d4cccc08400403c02c02854ccc0d4ccc08c03c01c00454ccc0d4c0940304c8c8c8c8c8c8c8c8c94ccc0f94ccc0f8c0d4ccc0980180f1221034d53500013375e6e98018dd30010a501323302100113232323232323232323232323232323232323232323232323232323232323232323232323232325333066305900113253330673375e03e0182a6660ce66ebc07802c54ccc19ccdd780e8050a99983399b8701c009153330673370e0360102a6660ce66e1c06801c54ccc19d4ccc19c058400c4ccc19c00d28251153330673375e0600582a6660ce66606400c90500fa40142a6660ce66606400a90500fa4014200229405280a5014a029405280a5014a029405282999833182e98339baa00314a226660626eb4c1acc1a0dd5001a41209c90420d0a999833182e8008a99983319baf01e00b153330663375e03a0142a6660cc66ebc07002454ccc198cdc380d8040a99983319b8701a007153330663370e03200c2a6660cc66e1c06001454ccc198cdc380b8020a99983319baf01600313375e05e05629405280a5014a029405280a5014a029404cdd782b81418331baa045305b3065375460d260d401460d00126eb4c19c024dd698330049bad3065009375a60c80126eb4c18c024c188024c184024c180024c180004c17c004c178004c174004c170004c16c004c168004c164004c150dd500a182418291baa3056305700a3055009375a60a80126eb4c14c024dd698290049bad3051009375a60a0012609e012609c012609a012609a00260980026096002609400260920026090002608e002608c00260826ea80c0c09400458c108c10c00cdd5982080118200011820000981d9baa3301d011303e303b37540046eacc0f4c0f8008c0f0004c0e0dd5181d981e181c1baa009222533303833712006004266e2400400c5280a5014a02940c94ccc0d4c0a0004401054ccc0d4c0b00044008400cc0d4dd500a181c181c801981b801181b001181b181b000981a98189baa3301500802d3033303037546066606860606ea8004c0c8c0bcdd50008b198088030109bac3030303130310063756605e00a6eacc0b8014dd618168029bac302c0053758605600a60566056002605460540026052002605000260466ea806cc094c088dd500c89919191919191919191919192999816180f98169baa0011323232533302f333301b00100a0060051533302f33301d00a0020011533302f301f007132323232323232323232323301c0011533303a533303a3375e00e0062a66607466ebc0ac0044c0c4ccc0880180e12201034d53500014a029404c8c8c8c8c8c8c8c8c8c8cdd79ba600c374c6666026666602602000c00a66e04dd698248042999822299982219b8f00648810013371e00a9110014a0266e0000520bfa8a5041001003002337026eb4c124c128020ccc0b004000c008ccc0ac03c014010dd7182398240011bae304600130423754608a00a6eb8c110c114008dd71821800981f9baa30420033042304200130410013040303c37540562c6040607c607e0066eacc0f4008c0f0008c0f0004c0dcdd51980c807181d181b9baa002375660726074004607000260686ea8c0dcc0e0c0d0dd50031111299981a98140008802099191980080080311299981d80089981e19bb0375200c6e9800d2f5bded8c0264666444a66607866e4002800c4cc100cdd81ba900a374c00e00a2a66607866e3c02800c4c94ccc0f4c0c0c0f8dd500089982099bb037520166084607e6ea80040084008c94ccc0f54ccc1000045288a5014c103d87a80001302733041374c00297ae03233001001003225333041001133042337606ea402cdd400525eb7bdb1804c8ccc8894ccc108cdc800780189982319bb0375201e6ea003801454ccc108cdc78078018992999821981b18221baa001133047337606ea4040c120c114dd50008010801192999821981b0008a6103d87a80001302d33047375000297ae03370000401c26608c66ec0dd48019ba800233006006001375c60800026eb4c104004c114008c10c0044cc100cdd81ba9003374c0046600c00c0026eb8c0e8004dd5981d800981f801181e800991900118030009981c99bb037520046ea00052f5bded8c0600200244a666068002293099299981a8008a4c264666444a66606c66e4000c0084cc01c01ccc0e801000458dd7181a181c0019bae303400130390023037001303700114a029405281819981a181a18181baa3301400802c3032302f375460646066605e6ea8004c0c4c0b8dd50008b198080030101bac302f303030300063756605c00a6eacc0b4014dd618160029bac302b0053758605400a60546054002605260520026050002604e00260446ea8068c080dd500c112999810180998109baa002132323232323232323232323232323232323232325333037303a002132325333036302900113232533303b303e00200416375c607800260706ea805454ccc0d8c0b40044c8c94ccc0ecc0f800801058dd7181e000981c1baa015163036375402826602e02226602e01e264a66606a605000226464a666074607a0040302c6eb4c0ec004c0dcdd50020a99981a98160008a99981c181b9baa0040161616303537540062c64a66606e606c0022a66606866e2520043035001161302b303500116375460700026070004606c002606c0046eb4c0d0004c0d0008dd6981900098190011bad30300013030002375a605c002605c0046eb4c0b0004c0b0008c0a8004c0a8008c0a0004c0a0008c098004c088dd50010b11299980f980918101baa0021323232325333026302900200516375c604e002604e0046eb8c094004c084dd50010b1119192999811981300108008b181200099806801119baf302430213754604860426ea800400888cc0180088cdd7981198101baa0010022232533301d3010301e375400226464a66603e602c66600e6eacc0900080112201044d5347530013253330203013302137540022646464646464646464646464a66605e6064004264660020020184464a66606400426603401826603401426603401026603400c2660340082020266034606800426002606a00460040042c60600026060004605c002605c0046058002605800460540026054004605000260500046eb0c098004c088dd50008b18030008b181198120009811980f9baa30223023301f37546044603e6ea800458cc0140088c94ccc078c054c07cdd5000899b8f375c604660406ea800400c5281811180f9baa3022301f375460446046603e6ea800494ccc068c030c06cdd50008980f980e1baa0011622232533301c3013301d37540022900009bad3021301e375400264a6660386026603a6ea80045300103d87a80001323300100137566044603e6ea8008894ccc084004530103d87a80001323332225333022337220100062a66604466e3c02000c4c030cc098dd400125eb80530103d87a8000133006006001375c60400026eb4c084004c094008c08c004c8cc004004010894ccc0800045300103d87a80001323332225333021337220100062a66604266e3c02000c4c02ccc094dd300125eb80530103d87a8000133006006001375c603e0026eacc080004c090008c08800488c8cc00400400c894ccc0780045300103d87a800013322533301d300500213007330210024bd70099802002000981000098108009ba54800088c94ccc060c02c0044c8c94ccc074c08000801058dd7180f000980d1baa00315333018300f00113232533301d302000200416375c603c00260346ea800c54ccc060c0280044c8c94ccc074c08000801058dd7180f000980d1baa0031630183754004444464a6660326018002264646600200200844a66603e00229404cc894ccc078cdc78010028a51133004004001375c604200260440026eb8c078c06cdd50028a99980c9808000899191980080080311299980f8008a5013322533301e3375e604660406ea8c08cc080dd51811981218101baa00200514a22660080080026042002604400266e9520023301d301e301b375400a97ae01330060033374a90011980e980f180d9baa0054bd70180c9baa00422323300100100322533301a00114a026644a66603266ebc014008528899802002000980c180e000980e80091119299980c980e19802802119baf002301c30193754603860326ea8c070c074c064dd50008991980080080291299980d8008a5113322533301a32533301b3012301c3754002264a66603866ebc00801c528899299980e980a000899b8f002375c6044603e6ea802454ccc074c03c0044cdc78011bae3022301f37540122940c074dd50041bae3020301d37540022944c07cc070dd5180f980e1baa301f3020301c37540042660080080022940c074004c07800458c068c05cdd500111191980080080191299980c0008a5eb804cc894ccc05cc0140084cc06c008cc0100100044cc010010004c068004c06c0048cdd79ba60014c101a0003014301137540062c6e1d2004370e900018080009808180880098061baa002370e90010b1806980700198060011805801180580098031baa00114984d958dd7000ab9a5573aaae7955cfaba05742ae89", + "hash": "a63aaffe880f7aa3f18c909fb3bf26b268a0a07f646316041ae3b6cf" + }, + { + "title": "pool_validator.pool_validator.else", + "redeemer": { + "schema": {} + }, + "parameters": [ { - "title": "pool_payment_cred", + "title": "authen_policy_id", "schema": { - "$ref": "#/definitions/aiken~1transaction~1credential~1Credential" + "$ref": "#/definitions/PolicyId" } } ], - "compiledCode": "593cca010000323232323232323232232222323232533300b32323232533300f3370e90021807000899191919191919191919191919191919191919191919191919191919191919191919191919191919191919299981d299981d19299981d99b87480000044c8c8cc004004074894ccc10400452809919299982019b8f00200514a2266008008002608a0046eb8c10c004dd71820181c8018a99981d99b87480080044c8c8c8c8cc0040040b4894ccc10c00452809919299982119baf304730403047304030473048304000200514a2266008008002608e004608a00266e95200233041375200297ae0375c60820026072006264646600200204244a66608200229404c8c8c94ccc104cdd78030008a511330050050023041002304500230430013374a90001981f99ba548008cc0fcc100c0e400d2f5c097ae030390021533303a300101113375e6e98c8cc004004088894ccc0fc00452f5bded8c0264646464a66608066e3d2201000021003133044337606ea4008dd3000998030030019bab3041003375c607e00460860046082002980101a00014a029404c8c8c8c8c8c8c8c8c8c8c94ccc1154ccc114cdc39b8d01c300100813300300a00914a02a66609001429404c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc17c05c4c8c8c94ccc188c1940c84c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8cdd79ba7001374e6464646464646464646464646464666660020020800d40b202244444646464646464646464646464646464646464646464646464646464646464646464a66614a02a66614a0266e212000003153330a50133710900000f8a9998528099b8901f003153330a5013375e07c00e264a66614c0266e1d200200114a226466e241d0dd69854009919bb030ad0100130ad0130ae01001375861580200261480200461480200229405280a5014a02646464a6661560204620042666660520520460020420046eb0c2a404008dd61853808009929998530099b87480000044c8c8c8c8c8c8c8c8c8c94ccc2c004cdc42400000a266ec0dd39999999999999999981901100100d00c00b00a004803826825815023822821816801919b89006001374e0022c616a0205c61660205a66e1d200230ae0137546164020026164020046eb4c2c004004c2c004008c2b804004c2b804008cdc3a40046150026ea8c2b004004c2900401854ccc29804cdc3a400400226464646464646464a66615c0266e2120000031337606e9cccccccccccccccccc0c008000806005805004801c01412c1240a011410c1040ad28119b89001004374e0022c6166020586162020566eb4c2c004004c2c004008c2b804004c2b804008cdc3a40046150026ea8c2b004004c2900401854ccc29804cdc3a4008002264646464646464646464a66616002a6661600266e21200000513371090000018a501337606e9cccccccccccccccccc0c808800806806005805002401c13412c0a811c11410c0b528129998588099b8900600114a2266e24004010dd38008b185a808171859808169bad30b20100130b201002375a616002002616002004615c02002615c0200466e1d200230a801375461580200261480200c2a66614c0266e1d200600113232323232323232323253330b001337109000002899bb0374e646464646464646464646464646464646464646464646464646464646464a66619c0266e21200000113253330cf0100113253330d0013333053036034001022153330d0010291330d401375066e04cdc00100028021986a009ba83370203c04a661a8026ea0cdc000e0029986a009ba83370203404a661a8026ea00612f5c02661a8026ea0cdc08100129986a009ba83370266e00078014010cc35004dd419b8101c025330d401375066e00068014cc35004dd400c25eb8058cccccccc15410412402c02401c01401009054ccc33c054ccc33c040884cccc1480e40dccc14c10412408452808260b19b89003001163253330ce013370e900000089bad30d30130cc010251323253330d001337129000000899b813330a10104200c00a00116375a61a80200261980204a6198020486660e20020140bea6661960266e2008002c4cdc019b833370466e0803408120a09c013370466e0402c080cdc0a4141380201290010b1bae30cf0100130cf01002375c619a02002618a020166eb8c32c04004c32c04008dd71864808009860808049bad30c70100130c701002375a618a02002618a020046eb4c30c04004c30c04008c30404004c30404008c2fc040054ccc2e4040484cc2f404158cc2f404150cc2f404dd40049985e809ba8007330bd0137500a097ae01330bd01054330bd01056330bd01375000e6617a026ea0024cc2f404dd402725eb80dd6985e80800985e808011bad30bb0100130bb01002375a6172020026172020046eb4c2dc04004c2dc040b8dd6985a808169ba70011630b50102e30b30102d3370e90011857009baa30b20100130b201002375a616002002616002004615c02002615c0200466e1d200230a801375461580200261480200c2a66614c0266e1d20080011323232323232323253330ae01337109000002899bb0374e646464646464646464646464646464646464646464646464a66618c02a66618c0266e252000002153330c601337129000000899b8848000cdc00010008a5014a0264646464646464a66619a02002264a66619c0266660a20680640020442661a4026ea0cdc099b8002000a007330d201375066e04cdc000f00480299869009ba833700038014661a4026ea0cdc000d00499869009ba83370003000697ae016333307e333307e333307e333307e03f4890048810033702900002380a80999b814800002404403ccdc0a400001001a0160042a66619a02a66619a02044266660a006e06a660a207e08e0422940412858cdc48118009bad30d00100130d001002375a619c02002619c020046eb4c33004004c8c94ccc32004cdc4000801099191919867809ba8333305500200106205e330cf014c01010000330cf01375066e0ccdc119b813370400e00200402a66e00cdc100e80080125eb80dd69866008011bad30ca010013333305100400301a01805f153330c8013371000400226464646619e02981010000330cf01375066660aa0040020c00bc6619e026ea0cdc199b823370266e08018004008054cdc019b8201b0010024bd701bad30cc01002375a619402002666660a20060080300340ba266198029801010000330cc014c1010000330cc01375000497ae03370666e0800804405ccdc199b8200201001816375a618e020046eb4c31404004c94ccc31004cdc3a400000226466ec0c32804004c32804c32c04004c308040744c8c8c8c94ccc320054ccc32004cdc4a4000006266e25200000114a0266ec0dd419b813330990103a01000e003375066e04ccc264040e803002800458dd69866008009866008011bad30ca0100130c20101d30c20101c375c618e02002618e020046eb8c31404004c2f404160dd71861808009861808011bae30c10100130b901056375c617e02002617e020046eb8c2f404004c2d404150dd6985d80800985d808011bad30b90100130b901002375a616e02002616e020046eb4c2d404004c2d4040b0dd69859808159ba70011630b30102c30b10102b3370e90011856009baa30b00100130b001002375a615c02002615c0200461580200261480200c2a66614c0266e1d200a00113232323232323232323253330b00153330b001337109000003899b8848000014528099bb0374e64646464646464646464646464646464646464646464a66618c0266e21200000113232323253330ca0100113253330cb01333304e03102f00101d1330cf01375066e0406c010cc33c04dd419b81019003330cf01375066e0405c010cc33c04dd419b81015003330cf01375066e0404c0192f5c02c66660f666660f666660f666660f60789110048810033702900002200400319b814800001404003800c03002800854ccc328054ccc328040744cccc1340d00c8cc1380f011007052808238b29998648099b8902000213371203c0022940dd69865008011bad30c801001333304d01601400100e163253330c6013370e900000089bad30cb0130c40101f1323253330c801337129000000899b813330990103a00600400116375a61980200261880203e61880203c6eb8c32404004c32404008dd7186380800985f8082d1bae30c50100130c501002375c6186020026176020b06eb8c30404004c30404008dd7185f80800985b8082b1bad30bd0100130bd01002375a6176020026176020046eb4c2e404004c2e404008dd6985b80800985b808171bad30b50102d374e0022c616a0205c61660205a66e1d200230ae0137546164020026164020046eb4c2c004004c2c004008dd69857008009857008011856008009852008030a9998530099b87480300044c8c8c8c8c8c8c8c8c8c94ccc2c004cdc42400000a266ec0dd39919191919191919191919191919191919191929998618099b88480000044c8c8c8c8c8c8c94ccc328040044c94ccc32c04cccc1380c40bc00407454ccc32c040904cc33c04dd419b8101b007330cf01375066e04cdc080c80280199867809ba8017330cf01375066e0405400ccc33c04dd419b810130094bd70099867809ba83370266e0406c00c01ccc33c04dd419b81019005330cf01375066e0405c00ccc33c04dd400a99867809ba83370202601297ae016333307b333307b333307b03c4890048810033702900002200580499b814800002003c03400854ccc328054ccc328040744cccc1340d00c8cc1380f011007052808238b19b8901e001375a619a02002619a020046eb4c32c04004c32c04008dd69864808009919191919299986400810899866009ba833306d00405f05b330cc014c01010000330cc01375066e0000ccccc1b800800401017d2f5c026619802981010000330cc0137506660da0060ba0b666198026ea0cdc0002199983700080100182ea5eb80cdc080a80119b81016002375a618e020046eb4c31404004cccc12804c04400402c58c94ccc30c04cdc3a400000226eb4c32004c304040684c8c94ccc31404cdc4a4000002266e04ccc258040dc01801000458dd698648080098608080d18608080c9bae30c60100130c601002375c6188020026178020ae6eb8c30804004c30804008dd7186000800985c00800a99985c80809082a082b1bad30bd0100130bd01002375a6176020026176020046eb4c2e404004c2e404008dd6985b80800985b808171bad30b50102d374e0022c616a0205c61660205a66e1d200230ae0137546164020026164020046eb4c2c004004c2c004008c2b804004c2b804008cdc3a40046150026ea8c2b004004c2900401854ccc29804cdc3a401c002264646464646464646464646464646464646464a66617202a6661720266e21200000e153330b9013371090000060a99985c8099b884800002854ccc2e404cdc4240000102a6661720266e240200404cdc48198030a5014a029405280a501323232323232323232323232323253330c70153330c7010011323232323232323253330cf013375e002006266ebc10c01c52819ba548000cc348040e8cc348040e0cc348040d8cc348040d0cc348040c8cc348040c0cc34804cdd2a401c661a40266619c0204e98103d87a80004c0103d8798000330d2013750014661a4026ea008ccc34804dd401099869009ba83370203e900119869009ba801d330d201375003697ae0330d201375066e040b0120cc348040a92f5c060ec002660f41520200261a00200261a002002619e02004619a02002618a0202626660dc05a056026266ec0dd399865809ba800d330cb01375001666196026ea0024cc32c04dd400399865809ba80054bd701ba7012163370e90011863809baa30cb0100130cb01002375a6192020026192020046eb4c31c04004c31c04008dd69862808009862808011bad30c30100130c301002375a6182020026182020046eb4c2fc04004c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc368054ccc36804cdc42400000a2a6661b40266e240a40144cdd79ba6001374c0442940528099299986d8081a09986f809ba83370266e0008801800ccc37c04dd419b81020004330df01375066e00078018cc37c04dd419b8101c004330df013750034661be026ea0014cc37c04ccc36c0400530103d87a80004c0103d87980004bd7009986f809ba833702044008661be026ea0cdc099b80020006003330df01375066e04078010cc37c04dd419b8001c006330df013750034661be026ea0014cc37c04ccc36c04005300103d87a80004c0103d87980004bd70299986d0099b88480080ac4cdc48148020a50163333333305f04b05300c00a00800600400233307d00300d06b333307d01000e00200c3370205a002a6661aa0266e240b000440b04004c8c8c8c94ccc36004cdc42400000220022c66e0c008004cdc101480119b813370466e080a8004030cdc119b82028482827004038cdc0a414138020126eb8c36004004c36004008dd7186b008009867008059bae30d40100130d401002375c61a4020026194020126eb4c34004004c34004008dd69867008009867008011bad30cc0100130cc0100230ca0100130ca0100230c80100153330c20101b1330c60105f330c60105d330c60137500126618c026ea001ccc31804dd402ca5eb804cc31804174cc3180417ccc31804dd400399863009ba8009330c60137500ae97ae0375a618c02002618c020046eb4c31004004c31004008dd69861008009861008011bad30c00100130c001037375a617c0206c2c6eacc2f404004c2f404004c2d004008c2ec040d0c2e4040ccdd6985c00800985c008011bad30b60100130b601002375a6168020026168020046eb4c2c804004c2c804008dd69858008009858008011bad30ae0100130ae010023370e90011854009baa30ac0100130a401006153330a6013370e90080008991919191919191919191919299985900a9998590099b884800002454ccc2c804cdc42400000e266e21200000514a029404cdd81ba73232323232323232323232323232323232323232323253330c8013371090000008991919191919191919299986880800899299986900999982a81c01b00081109986b009ba83370266e04080014024cc35804dd419b813370203c00600e661ac026ea0cdc080e0029986b009ba833702034006661ac026ea0cdc080c005a5eb8058cccc20804cccc20804cccc20804cccc2080410d22010048810033702900002580680599b814800002805404c01004403c00854ccc344054ccc344040884cccc1500ec0e4cc15410c12c08452808270b19b89023003375a61a80200261a8020046eb4c34804004c34804008dd69868008009868008011bad30ce010013232323232323253330cf0133710002004264661a8026ea0ccc1d400419c18ccc35005301010000330d401375066e0401c004cc35004dd419b8000633330760050040010674bd70199999982b8030028020018130120330a9998678099b88002001132330d4014c01010000330d40137506660ea0020ca0c6661a8026ea0cdc0003999983b0020028008329986a009ba83370200c00297ae033333330570050060030040240260641330d3014c1010000330d3014c1010000330d301375000c661a6026ea00152f5c066e08010094cdc100201119b81018002337020320046eb4c33004008dd6986500800999982780b00a0008070b1929998640099b87480000044dd69866809863008108991929998650099b89480000044cdc099984d8081e0030020008b1bad30ce0100130c60102130c601020375c6196020026196020046eb8c32404004c30404170dd71863808009863808011bae30c50100130bd0105a375c6186020026186020046eb8c30404004c2e404160dd6985f80800985f808011bad30bd0100130bd01002375a6176020026176020046eb4c2e404004c2e4040c0dd6985b808179ba70011630b70103030b50102f3370e90011858009baa30b40100130b401002375a6164020026164020046eb4c2c004004c2c004008dd69857008009857008011856008009852008030a9998530099b87480500044cdd81ba7323232323232323232323232323232323232323253330ba0153330ba013371290000010a99985d0099b89480000044cdc42400066e000080045280a501330be01375066e00050008cc2f804dd419b80012001330be01375066e00040008cc2f804dd419b8000e001330be01375001897ae01633308a0102b00500353330b8013306a008006133702002064264a6661720266e240cc004400858ccc224040a92210048810033308801029007005375c6176020026176020046eb8c2e404004c2c404138dd7185b80800985b808011bae30b50100130ad0104c375a6166020026166020046eb4c2c404004c2c404008dd69857808009857808011bad30ad0100130ad01024375a6156020466e9c09458c2900401458c2a404004c2a404008dd6985380800985380801185280800985280801185180800985180801185080800985080801184f80800984f80801184e80800984e80801184d80800984d80801184c80800984880801181d8009981f837000984a80800984a808011bab309301001309301002309101001308901001308f01001308f01001308601004308d01005375a61160200861160200a6112020084444444444444444464646464646464646464646464646464646464646464a66614a0266e212000001132323253330a801001153330a80153330a801323232323232323253330b0013370e9000000899baf02e007153330b0013375e05c00e2660b000805a2940c2b804004c2cc04004c2ac040acc2c404004c2c404004c2c004008c2b804004c298040a44c8c8c94ccc2ac04cdc3a4000002266ebcc2c004c2a404008dd3181b8018991919191919191919baf374c0166e98cccccccc0e40d40ac010008dd7185c008009bae30b80130b90100100f00e30b001005375c616c02002616c020046eb8c2d004004c2b004008c2bc04008c2b4040054ccc2ac0409c4cdd8012812099bb002402530a9010013333222253330ad013305f00400313232323253330b401002153330b10102d13374a90001985a809ba6330b501337609801014000374c6616a0266ec13001014000375066e04004cdc0014806a5eb7bdb180cc2d404cdd81ba9006374c6616a0266ec0dd48029ba800c4bd6f7b63025eb7bdb1812f5c02c26464a66616c020042646464a66617202004008264a666174020022646464a66617402a66617402a666174026661740206c94128899b8f00500f14a0266e3c0040385280a99985d0099b8801600213374a90001985f009ba6330be0133760981014000374c6617c0266ec13001014000375066e00cdc080501900aa5eb7bdb180cc2f804cdd81ba9005374c6617c0266ec0dd48009ba83370200402c97adef6c604bd6f7b63025eb8054ccc2e804cdc380100b099ba548000cc2f804dd31985f0099bb04c1014000374c6617c0266ec13001014000375066e00cdc080501900aa5eb7bdb1812f5bded8c097ae01614c103d87a8000375c6174020046eb4c2e804004c2f00400c014c2f004008dd7185b008011bab30b60100130b80100400114c103d87a800030b701002375a616402616a026eacc2c804008c2d404008c2cc04004c0e40bc5300103d87a8000375c6068614e020466eb8c0b8c29c0408cdd7181a1853808111bae302e30a7010223756605a614c02052294054ccc2a0040904cc2b004dd419b813370003200800466158026ea0cdc080b80199856009ba83370002a00866158026ea0cdc080980199856009ba80114bd70099856009ba83370203200666158026ea0cdc099b80017004002330ac01375066e0405400ccc2b004dd419b80013004330ac01375002297ae016153330a80153330a80101b1333302b0280273302c02a02002914a020382c603200466609600400e036666609601401000200c2c64a66614a0266e1d20000011375a61540261460204026464a66614e0266e2520000011337026660f005200c0080022c6eb4c2ac04004c28c04080c28c0407cdd71854008009854008011bae30a601001309e01007375a6148020026148020046eb4c28804004c28804008dd6985000800985000801184f00800a99984c0080a09984e008091984e009ba80093309c01375000e66138026ea003d2f5c02661380202266138026ea001ccc27004dd40049984e009ba800e4bd701bad309c01001309c01002375a6134020026134020046eb4c26004004c26004008dd6984b00800984b008021bad309401003222232323232323232323232533308b013370e900000088020a999845808020998198028068a50308901001308e0100130860100b5333087013375e01400a266ebcdd30041ba600314a06116020026116020046eacc22404004c22404008c21c04004c1fc00488cccc0bc009221004881003370400290009184080984100800911111112999841009981a00300289999819999981980424410048810033702900019b800070020040030011533308201330340040031333303333330330084881004881003370200200e00c00a66e052000002133330333333033333303300848810048810033702900000380300299b814800000801000c0048888cdd81ba83370666e08008010004dd419b8333704004006002444444464646466e0ccdc0980799b813370400200266e08cdc12401000466e08cdc124141380201066e04cdc100300499b8200500a00133704900200119b803370466e08014008cdc000300419b820043370266e0801d20a09c013370400401266e0800c004cdc0a41413802002444446464646466ec0dd419b81300d33702601c00266e08cdc1001a4141380266e0520a09c01005001375066e08008cdc0a4141380200a66e08cdc099b824801120a09c0100400333704900219b800060043370466e0920083370000a00666e04cdc1002980580219b823370400c00800666e08cdc0002001001911119299983d99b87480080045200013370666e08cdc10028019bad30800130790023370466e0801120a09c01482827004c1e40048c1ec0048c8cc004004008894ccc1e800452f5bded8c02660f66466ec0c1e4004c1e8004c1f0004cc008008c1f400494ccc1d0cdc4000a40002c2a6660e866e1c005200014800054ccc1d0cdc3800a4004290010a99983a19b87001480105200213232333001001003002222533307833710002004266600600600266e0ccdc019b83005001001480104008cdc019b830014801120022337040020026eb0c1d8004c1d8008dd6183a000983a001183900098390011bad30700013070002375a60dc00260dc00460d800260d800460d400260d400460d000260c06666660220a400200a0bc940010c198004c198004c17400c58c18c0c4c188084c1840844c94ccc180c18c0744c8c94ccc188c1940e04c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc1eccdc3a402460f400a26464646464646464a6661060266e1d2000308201058132325333085015333085013371090000068a9998428099b884800009c54ccc21404cdc48138068a9998428099981600a8098140a999842809929998430099b874800800452889919b89054375a6110026466ec0c23404004c23404c23804004dd61846008009842008061842008058a9998428099baf01100315333085013371090000028a99984280998218250048a999842809826000899b89371a00290030a5014a029405280a5014a029405280a50132323232323232323232323232323232323232323232323232323232323232323253330a6013371090000008991929998540099b8902800213375e6e98004dd301f8a503333058333305833330580434890048810033702900002480480399b814800000801400c004ccc0780040800a858c94ccc29804cdc3a400000226eb4c2ac04c290040a04c8c94ccc2a004cdc4a4000002266e04ccc1e411002802000458dd69856008009852008141852008139bae30a90100130a901002375c614e02002613e0200a6eb8c29404004c29404008dd7185180800984d80801299984e0080508010802299984d8080608038802984f80800984f80801184e80800984a80805984d80800984d80801184c8080098488080419b8748008c24c04dd5184b80800984b8080098470080319b8748008c24004dd5184a00800984a008009845808021982a80319b81304800648008c24004014cc14c038cdc0982300724004611c0201a600200244446464646464a666126020082002266660120120020080046464646464646464646464646464646464646464646464646464646464646464a66615e0266ebc07400c4c8c8c8c8c8c94ccc2d404cdc42400005a26464a66616e0266e212000002153330b70153330b701009153330b7013370e66e04cdc000d0178008098a99985b8099b87337020300040222a66616e0266e1ccdc000b017807899b873370202800401a29405280a50153330b7013370e66e0406800804c54ccc2dc04cdc399b813370003005e0020222a66616e0266e1ccdc080b001007899b873370002805e01a29405280a501002161633305b02e00201e333305b00500302d00116375a6172020026172020046eb4c2dc04004c2dc04008dd6985a80800a99985780800899859809ba8012330b301375002066166026ea006d2f5c0266166026ea0040cc2cc04dd400919859809ba80194bd700b19b8748008c2bc04dd518598080098598080118588080098548080f1bad30af0100130af01002375a615a02002615a020046eb4c2ac04004c2ac04024dd69854808041bad30a80100130a801002375a614c02002614c020046eb4c29004004c29004010dd69851008019bac30a10100130a1010023758613e02002613e02004613a02002613a020046eb4c26c04004c26c04008dd6984c80800984c80801184b80800984b80800984b00800984680802184a008021849008019849008019848008011919199980080080182602d911119191919191929998488099baf374e00a980101800015333091015333091013375e9801018000374e006266ebd301018000374e00229404cc25404ccc02c0180100092f5c02c26612a0266601600c008004666601401400a006002612c0200c61280200a61280200a6124020086124020086120020064446666660700f2611c02611e02610e0200600410a02944004ccc1180052f5c04466092002660a00980042c6eb8c22404004c2040416058c21c04004c1fcc21804014dd69842808009842808011841808009841808011bac308101001307900516307f001307f002375a60fa00260fa00460f600260f600460f200260f200460ee00260ee00460ea00260ea00260e800260e600260d400460280026603008e0086eacc1b8004c1b8004c194028c1ac004c1ac008dd598348009834800983000098330009833000982e8018b1bad3063037306204716306101c22232533305f3370e90010008a4000266e0ccdc119b82004003375a60c860ba00466e0920a09c01482827004c1740048888c8c8cdc199b820010053370066e0920a09c010060013370400200666e0520a09c0100122232323232323232323253330653370e900000088010a9998328010998068028058a5030630023375e01400c60ce00260be01060ca00260ca00260c800460c400260b40024466ebc004c94ccc16ccdc3a40000022980103d87980001533305b3370e9001000899ba548008cc17cc180c16400d2f5c0266e9520043305f37526e50dd99830182c801a5eb80c1640088c94ccc164cdc3a40000022646464646464646464646464646464646464a6660dc60e2004264646464646464649319299983999b87480000044c8c94ccc1e0c1ec0084c92632375a60f00046eb4c1d800458c8cdd8183d000983d183d8009bac30790013071009153330733370e90010008a99983b18388048a4c2c2c60e201064a6660e466e1d200000113232323232323232533307d308001002132498c09801458cdc3a400460f46ea8c1f8004c1f8008dd6983e000983e001183d000983d00119b8748008c1d0dd5183c00098380060a99983919b87480080044c8c8c8c8c8c94ccc1ecc1f80084c926302400316375a60f800260f800460f400260f400466e1d20023074375460f000260e00182a6660e466e1d200400113232323232323232533307d308001002132498c09801458dd6983f000983f0011bad307c001307c002307a001307a0023370e9001183a1baa3078001307000c153330723370e900300089919191919191919299983e98400080109924c604c00a2c66e1d2002307a375460fc00260fc0046eb4c1f0004c1f0008c1e8004c1e8008cdc3a400460e86ea8c1e0004c1c003054ccc1c8cdc3a40100022646464646464a6660f660fc0042649319299983c99b87480000044c8c8c8c94ccc20004c20c0400852616375a6102020026102020046eb4c1fc004c1dc01854ccc1e4cdc3a4004002264646464a666100026106020042930b1bad308101001308101002375a60fe00260ee00c2c60ee00a2c66e1d20023078375460f800260f80046eb4c1e8004c1e8008c1e0004c1c003054ccc1c8cdc3a401400226464646464646464a6660fa6100020042649318138038b19b8748008c1e8dd5183f000983f0011bad307c001307c002375a60f400260f400460f000260e00182a6660e466e1d200c00113232323232323232533307d308001002132498c09c01458cdc3a400460f46ea8c1f8004c1f8008dd6983e000983e001183d000983d00119b8748008c1d0dd5183c00098380060a99983919b87480380044c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc20c04c2180400852616375a6108020026108020046eb4c20804004c20804008dd69840008009840008011bad307e001307e002375a60f800260f80046eb4c1e8004c1e8008cdc3a400460e86ea8c1e0004c1c003054ccc1c8cdc3a4020002264646464646464646464a6660fe6104020042649318148048b19b8748008c1f0dd51840008009840008011bad307e001307e002375a60f800260f80046eb4c1e8004c1e8008c1e0004c1c003054ccc1c8cdc3a40240022646464646464a6660f660fc0042646493181280219837802919299983d19b87480000044c8c8c8c94ccc20404c210040084c9263037003163370e9001183f1baa308201001308201002308001001307800216307800116375a60f800260f800460f400260f40046eb0c1e0004c1c003054ccc1c8cdc3a40280022a6660ea60e00182930b0b18380059814806180c806980c807180b807980b80819299983619b87480000044c8c94ccc1c4c1d000852616375c60e400260d40242a6660d866e1d20020011323253330713074002149858dd7183900098350090a99983619b87480100044c8c94ccc1c4c1d000852616375c60e400260d40242a6660d866e1d20060011323253330713074002149858dd7183900098350090b18350088b183780098378011bad306d001306d002306b001306b0023069001306900230670013067002306500130650023063001306300230610013061002305f001305700216305700123253330583370e90000008a99982d982b0010a4c2c2a6660b066e1d200200113232533305d3060002149858dd7182f000982b0010a99982c19b87480100044c8c94ccc174c18000852616375c60bc00260ac0042c60ac002464a6660ae66e1d2000001132323232533305e306100213232498c94ccc174cdc3a400000226464a6660c460ca00426493180b8008b1831800982d8018a99982e99b874800800454ccc180c16c00c5261616305b002301500316305f001305f002305d001305500216305500123253330563370e900000089919299982d982f0010a4c2c6eb4c170004c15000854ccc158cdc3a400400226464a6660b660bc0042930b1bad305c001305400216305400123253330553370e900000089919299982d182e8010a4c2c6eb4c16c004c14c00854ccc154cdc3a400400226464a6660b460ba0042930b1bad305b0013053002163053001223253330553370e90020008982d18298010a99982a99b87480080044c8c8cc004004014894ccc16c004584c8c8c8c94ccc170cdc78038010800899803003001982e8019bae305b002305f002305d001375c60b460a60042c60a60024444446464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464646464a66611e02a66611e02074266e1c08c0345288a99984780a9998478099baf0290131533308f013375e05207c2a66611e0266ebc0dc0c454ccc23c04cdd78138088a9998478099baf02500f1533308f013370e03a00e2a66611e0266e1c06c01454ccc23c04cdd780c8018a9998478080b8800899984780800a504a229405280a5014a029405280a5014a02646464646464646464646464646464646464646464a66614802a6661480266ebcdd30011ba604a153330a4013375e6e98004dd3022099b873370200600866e040e00885280a5013374a9000198540081e198540081d198540080619854009ba833305403204e02c330a80137506660a806009c058661500205c66150026e9ccc2a004dd401b19854009ba8034330a801375001066150026ea0018cc2a004dd401c25eb80cc2a004dd399854009ba8020330a801375003c66150026ea001ccc2a004dd400299854009ba80224bd7025eb8058cccc150cccc150cccc150cccc150cccc1512f5bded8c009e9101034d5350004800804c04401803c03401013c03000922010048810048302a29410cccc14ccccc14ccccc14ccccc14ccccc14d2f5bded8c009c911034d5350004800804804001803803001013802c00922010048810048302a29410ccc1c8104134028ccc1c4118130024ccc1c00fc02c024ccc1bc110028020dd6984f808011bad309d01001533309b013304d00b0091337606ea0cdc080124181514a086ea0cdc0800a4181514a08266ec0dd40011ba800133306b03a00a00833306a03f0090073374a90001984e009ba90443309c01375200297ae0304d3304e304d3304e007005304d3304e003001375c6136020026136020046eb8c26404004c244040a4dd7184b80800984b808011bae309501001308d0102716163370e90011847809baa309301001309301002309101001309101002375a611e02002611e020046eb4c23404004c23404008dd69845808009845808011bad308901001308901002375a610e02002610e02004610a02002610a0200461060200261060200461020200260f2004605a002609602e66e1d20023079375460fa00260fa00460f600260f60046eb4c1e4004c1e4008dd6983b800983b8011bad30750013075002375a60e600260e60046eb4c1c4004c1c4008c1bc004c1bc008c1b4004c1b4008c1ac004c18c008c05c004c0d401cc19c004c19c008dd5983280098328011831800982d805183080098308011bab305f001305f002305d0013055005222325333054333008001482807d200a100116533305300113253330543370e9001000880209919299982b199805000a4120069000099b8000100616375a60b400260a400660a400420064444a6660a666e1c00520001004132323300100100622533305900113305a337606ea4018dd3001a5eb7bdb1804c8c8c8c94ccc168cdd799807805001260103d879800013305e337606ea4028dd30038028a99982d19b8f00a00213232533305c3370e900000089983019bb0375201860c260b400400a200a60b400264a6660b6a6660bc00229445280a60103d87a800013374a90001982f9ba60014bd70191980080080111299982f80089983019bb037520166ea00292f5bded8c0264646464a6660c066ebccc05403c00930103d8798000133064337606ea403cdd40070028a99983019b8f00f0021323253330623370e900000089983319bb0375202260ce60c000400a200a60c000264a6660c266e1c005200014c103d87a800013374a9000198329ba80014bd7019b8000100e133064337606ea4008dd4000998030030019bad3061003375c60be00460c600460c20022660bc66ec0dd48011ba600133006006003375660b60066eb8c164008c174008c16c004c8c8008c8cc004004008894ccc164004526132533305a00114984c8c8c8c8c8c8c94ccc178cdc3a4000002266014014660c400c00a2c60b8002660220040026eb8c17000cdd7182d801982f801982e801182e001182e0009982b99bb037520046ea00052f5bded8c044a6660a066e3c00922010013371e0029110014a0464a66609e66e1d20000011323232323232323232323232323232323232323253330663069002132323232498c178018c078044c074048c06c04c58cdc3a400460c66ea8c19c004c19c008c194004c194008dd6983180098318011bad30610013061002375a60be00260be0046eb4c174004c174008dd6982d800982d801182c800982c801182b800982b801182a80098268010b1826800911299982799b890030021337120020062940894ccc134cdc80010008a60103d87980001533304d3371e0040022980103d87a800014c103d87b8000237260024466e280080048c94ccc128cdc3a400000226464a66609e60a40042649318030008b182800098240010a99982519b87480080044c8c8c8c8c8c94ccc14cc15800852616375a60a800260a80046eb4c148004c148008dd6982800098240010b1824000919299982499b87480000044c8c8c8c94ccc140c14c00852616375c60a200260a20046eb8c13c004c11c00858c11c0048c94ccc120cdc3a400000226464a66609a60a00042930b1bae304e0013046002153330483370e900100089919299982698280010a4c2c6eb8c138004c11800858c118004c12c02858c004004894ccc12000452000133700900119801001182580098008009112999823801099baf374e00298010180001533304700114a026660060066094004609400266600202e97ae022330040013300b00500222232323330010010040022225333046337100029000080109998018019980299b8e00700100233702002900119b81371a0069001111982200080119801815919191919191919299982299982299baf0010404a09444c94ccc118cdc3a4000002266608c66ebc008cdd2a4000660946096608801c97ae04a094454ccc118cdc3a4004002266608c66ebc008cdd2a4004660946096608801c97ae04a09444ccc118cdd780119ba548008cc128c12cc1100392f5c09412898220068a50304900130410013047001303f00130450013045001303c0013300202623375e608460766084607600207066002052466ebcc104c0e8c104c0e8c104c108c0e80040dc88c8cc00400400c894ccc10400452f5c026464a666080600a00426608800466008008002266008008002608a00460860022c464a66607666e212000001132333001001489400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000480008894ccc0f8cdc48020008a511323253330403370e00290010a50133300500533714666e312000002004337169001199b8c337000049001241000200866e0000d20023371c00600266e380140045281b8d001330010060133001001222533303933712900a0008999801801981f981f981f981f981f981f981f981f981f981f80119b81001480504cc010008004c0040048894ccc0dccdc4800a4000260780042666006006607a00466e0400520023232323232323232533303b3370e9001181d00189919299981e99b8748008c0f000c4c8c94ccc0fccdc499b810010033370466e092014481e120d00f13370066e0ccdc0800801a40080062c6eb4c10c004c0ec00c58dd69820800981c8018b181f800981b801981e800981a801981d800981d801181c800981880a9bac3037001302f001323253330323370e90001818800899191919191919191919299981e19b8733300d003038489044d53475300480084c8c8008c94ccc0f8cdc3a40000022646464646464646464646464a66609a60a0004264646464646493180f803180f003980e804180e004980d805198208059180d8008b18270009827001182600098260011825000982500118240009824001182300098230011bac3044001303c00216303c001300e00116304000130400023756607c002607c002606a002607600260760026064002607000260600022c646600200203c44a66606c002298103d87a80001323253330353232323232323232533303d3370e9001000899b8f375c608460760040722940c0ec004c100004c0e0004c0f8004c0d8004c0f0004c0f0004c0cc0084cdd2a40006607200497ae0133004004001303a002303800123253330323370e900000089919299981b981d0010a4c2c6eb8c0e0004c0c000854ccc0c8cdc3a400400226464a66606e60740042930b1bae30380013030002153330323370e900200089919299981b981d0010a4c2c6eb8c0e0004c0c000858c0c0004888c8c8c94ccc0d4cdc3a40040022900009bad303a303300230330013253330343370e90010008a6103d87a8000132323300100100222533303a00114c103d87a8000132323232533303b3371e014004266e9520003303f375000297ae0133006006003375a60780066eb8c0e8008c0f8008c0f0004dd5981c98190011819000991980080080211299981b8008a6103d87a800013232323253330383371e010004266e9520003303c374c00297ae0133006006003375660720066eb8c0dc008c0ec008c0e40048c94ccc0c0cdc3a40080022606a605c0042c605c0026eb0c0c8004c0c8008c0c0004c0c0008dd7181700098170011bac302c001302c002375a6054002604403c6eacc0a0004c0a0004c09c008dd618128009812801181180098118011bab3021001302100130200023756603c002603c002603a0046eb0c06c004c06c008dd6180c800980c8011bac3017001300f0053015001300d00116301300130130023011001300900414984d958c94ccc02ccdc3a4000002264646464646464646464a6660306036004264646493198070019180800099299980b99b87480000044c8c94ccc070c07c00852616375c603a002602a00a2a66602e66e1d20020011533301a301500514985858c054010cc03001c8dd68008b1bac3019001301900230170013017002375c602a002602a0046eb0c04c004c04c008dd6980880098048028b18048021119198008008019129998080008a4c26466006006602800460066024002464a66601466e1d200000113232533300f3012002149858dd6980800098040010a99980519b874800800454ccc034c02000852616163008001375c0024600a6ea80048c00cdd5000ab9a5573aaae7955cfaba05742ae89", - "hash": "5e2a216f484e1552583178570daccc6f0265410eed8ca5be99e1aa7e" + "compiledCode": "590e040101003232323232323223225333004323232323253323300a3001300b3754004264664464646464a66602260080022a66602860266ea80280085854ccc044c0200044c8c94ccc058c0640084c94ccc050c01c00454ccc05cc058dd50010028b0a99980a18058008a99980b980b1baa00200516153330143006001153330173016375400400a2c2c60286ea800458c05c004c04cdd50050a99980898018008a99980a18099baa00a0021616301137540122a66601e600460206ea800c4c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c94ccc080c04c0044cc034dd5981298131813181318131813181318111baa01a3025302237540222a666040602e002264646464646464646464646464a66605a6040605c6ea80044c8c8c8c8c8c8c8c94ccc0d4cccc08400403c02c02854ccc0d4ccc08c03c01c00454ccc0d4c0940304c8c8c8c8c8c8c8c8c94ccc0f94ccc0f8c0d4ccc0980180f1221034d53500013375e6e98018dd30010a501323302100113232323232323232323232323232323232323232323232323232323232323232323232323232325333066305900113253330673375e03e0182a6660ce66ebc07802c54ccc19ccdd780e8050a99983399b8701c009153330673370e0360102a6660ce66e1c06801c54ccc19d4ccc19c058400c4ccc19c00d28251153330673375e0600582a6660ce66606400c90500fa40142a6660ce66606400a90500fa4014200229405280a5014a029405280a5014a029405282999833182e98339baa00314a226660626eb4c1acc1a0dd5001a41209c90420d0a999833182e8008a99983319baf01e00b153330663375e03a0142a6660cc66ebc07002454ccc198cdc380d8040a99983319b8701a007153330663370e03200c2a6660cc66e1c06001454ccc198cdc380b8020a99983319baf01600313375e05e05629405280a5014a029405280a5014a029404cdd782b81418331baa045305b3065375460d260d401460d00126eb4c19c024dd698330049bad3065009375a60c80126eb4c18c024c188024c184024c180024c180004c17c004c178004c174004c170004c16c004c168004c164004c150dd500a182418291baa3056305700a3055009375a60a80126eb4c14c024dd698290049bad3051009375a60a0012609e012609c012609a012609a00260980026096002609400260920026090002608e002608c00260826ea80c0c09400458c108c10c00cdd5982080118200011820000981d9baa3301d011303e303b37540046eacc0f4c0f8008c0f0004c0e0dd5181d981e181c1baa009222533303833712006004266e2400400c5280a5014a02940c94ccc0d4c0a0004401054ccc0d4c0b00044008400cc0d4dd500a181c181c801981b801181b001181b181b000981a98189baa3301500802d3033303037546066606860606ea8004c0c8c0bcdd50008b198088030109bac3030303130310063756605e00a6eacc0b8014dd618168029bac302c0053758605600a60566056002605460540026052002605000260466ea806cc094c088dd500c89919191919191919191919192999816180f98169baa0011323232533302f333301b00100a0060051533302f33301d00a0020011533302f301f007132323232323232323232323301c0011533303a533303a3375e00e0062a66607466ebc0ac0044c0c4ccc0880180e12201034d53500014a029404c8c8c8c8c8c8c8c8c8c8cdd79ba600c374c6666026666602602000c00a66e04dd698248042999822299982219b8f00648810013371e00a9110014a0266e0000520bfa8a5041001003002337026eb4c124c128020ccc0b004000c008ccc0ac03c014010dd7182398240011bae304600130423754608a00a6eb8c110c114008dd71821800981f9baa30420033042304200130410013040303c37540562c6040607c607e0066eacc0f4008c0f0008c0f0004c0dcdd51980c807181d181b9baa002375660726074004607000260686ea8c0dcc0e0c0d0dd50031111299981a98140008802099191980080080311299981d80089981e19bb0375200c6e9800d2f5bded8c0264666444a66607866e4002800c4cc100cdd81ba900a374c00e00a2a66607866e3c02800c4c94ccc0f4c0c0c0f8dd500089982099bb037520166084607e6ea80040084008c94ccc0f54ccc1000045288a5014c103d87a80001302733041374c00297ae03233001001003225333041001133042337606ea402cdd400525eb7bdb1804c8ccc8894ccc108cdc800780189982319bb0375201e6ea003801454ccc108cdc78078018992999821981b18221baa001133047337606ea4040c120c114dd50008010801192999821981b0008a6103d87a80001302d33047375000297ae03370000401c26608c66ec0dd48019ba800233006006001375c60800026eb4c104004c114008c10c0044cc100cdd81ba9003374c0046600c00c0026eb8c0e8004dd5981d800981f801181e800991900118030009981c99bb037520046ea00052f5bded8c0600200244a666068002293099299981a8008a4c264666444a66606c66e4000c0084cc01c01ccc0e801000458dd7181a181c0019bae303400130390023037001303700114a029405281819981a181a18181baa3301400802c3032302f375460646066605e6ea8004c0c4c0b8dd50008b198080030101bac302f303030300063756605c00a6eacc0b4014dd618160029bac302b0053758605400a60546054002605260520026050002604e00260446ea8068c080dd500c112999810180998109baa002132323232323232323232323232323232323232325333037303a002132325333036302900113232533303b303e00200416375c607800260706ea805454ccc0d8c0b40044c8c94ccc0ecc0f800801058dd7181e000981c1baa015163036375402826602e02226602e01e264a66606a605000226464a666074607a0040302c6eb4c0ec004c0dcdd50020a99981a98160008a99981c181b9baa0040161616303537540062c64a66606e606c0022a66606866e2520043035001161302b303500116375460700026070004606c002606c0046eb4c0d0004c0d0008dd6981900098190011bad30300013030002375a605c002605c0046eb4c0b0004c0b0008c0a8004c0a8008c0a0004c0a0008c098004c088dd50010b11299980f980918101baa0021323232325333026302900200516375c604e002604e0046eb8c094004c084dd50010b1119192999811981300108008b181200099806801119baf302430213754604860426ea800400888cc0180088cdd7981198101baa0010022232533301d3010301e375400226464a66603e602c66600e6eacc0900080112201044d5347530013253330203013302137540022646464646464646464646464a66605e6064004264660020020184464a66606400426603401826603401426603401026603400c2660340082020266034606800426002606a00460040042c60600026060004605c002605c0046058002605800460540026054004605000260500046eb0c098004c088dd50008b18030008b181198120009811980f9baa30223023301f37546044603e6ea800458cc0140088c94ccc078c054c07cdd5000899b8f375c604660406ea800400c5281811180f9baa3022301f375460446046603e6ea800494ccc068c030c06cdd50008980f980e1baa0011622232533301c3013301d37540022900009bad3021301e375400264a6660386026603a6ea80045300103d87a80001323300100137566044603e6ea8008894ccc084004530103d87a80001323332225333022337220100062a66604466e3c02000c4c030cc098dd400125eb80530103d87a8000133006006001375c60400026eb4c084004c094008c08c004c8cc004004010894ccc0800045300103d87a80001323332225333021337220100062a66604266e3c02000c4c02ccc094dd300125eb80530103d87a8000133006006001375c603e0026eacc080004c090008c08800488c8cc00400400c894ccc0780045300103d87a800013322533301d300500213007330210024bd70099802002000981000098108009ba54800088c94ccc060c02c0044c8c94ccc074c08000801058dd7180f000980d1baa00315333018300f00113232533301d302000200416375c603c00260346ea800c54ccc060c0280044c8c94ccc074c08000801058dd7180f000980d1baa0031630183754004444464a6660326018002264646600200200844a66603e00229404cc894ccc078cdc78010028a51133004004001375c604200260440026eb8c078c06cdd50028a99980c9808000899191980080080311299980f8008a5013322533301e3375e604660406ea8c08cc080dd51811981218101baa00200514a22660080080026042002604400266e9520023301d301e301b375400a97ae01330060033374a90011980e980f180d9baa0054bd70180c9baa00422323300100100322533301a00114a026644a66603266ebc014008528899802002000980c180e000980e80091119299980c980e19802802119baf002301c30193754603860326ea8c070c074c064dd50008991980080080291299980d8008a5113322533301a32533301b3012301c3754002264a66603866ebc00801c528899299980e980a000899b8f002375c6044603e6ea802454ccc074c03c0044cdc78011bae3022301f37540122940c074dd50041bae3020301d37540022944c07cc070dd5180f980e1baa301f3020301c37540042660080080022940c074004c07800458c068c05cdd500111191980080080191299980c0008a5eb804cc894ccc05cc0140084cc06c008cc0100100044cc010010004c068004c06c0048cdd79ba60014c101a0003014301137540062c6e1d2004370e900018080009808180880098061baa002370e90010b1806980700198060011805801180580098031baa00114984d958dd7000ab9a5573aaae7955cfaba05742ae89", + "hash": "a63aaffe880f7aa3f18c909fb3bf26b268a0a07f646316041ae3b6cf" }, { - "title": "sample_multi_sign.withdraw", + "title": "sample_multi_sign.sample_multi_sign.withdraw", "redeemer": { "title": "_redeemer", "schema": { "$ref": "#/definitions/Data" } }, - "compiledCode": "5903170100003232323232323232322253330053370e900018020008a999802991919191919191919191919191919299980a19b8748010c04c0304c8c94ccc058cdc3a4000602a00226464a66603066e1d200230170011323232533301b3370e9000180d0008991919191919191919299981219b8748010c08c0044c8c8c8c8c8cc004004008894ccc0b4004528899192999816191980080080d1129998188008a501323253330303371e00400c29444cc010010004c0d4008dd718198008998020020008a503031002375c605e0026eb0c0b0c094008c94ccc09ccdc3a400000226464a666058605e0042649319198008008011129998170008a4c2646600600660640046eb8c0c000458dd6181680098128010b1812800981500098110008b181400098140009813800980f00098120009812000980d8009810800980c8008b191980080080811299980f8008a6103d87a800013232533301e323232323232323253330263370e9001000899b8f375c6056604800401a2940c090004c0a4004c084004c09c004c07c004c094004c094004c0700084cdd2a40006604400497ae013300400400130230023021001375c603c002602c0022c603800260280022c603400260240182c6eb0c060004c060004c05c004c058004c054004c050004c04c004c048008dd618080009808000980380198068009806801180580098018008a4c26cac264464a6660106464646464646464646464646464a66602c66e1d2002301500b13232323300100100222533301d00114a226464a666038646600200201044a66604200229404c8c94ccc080cdc78010030a511330040040013025002375c60460022660080080022940c084008dd7180f8009bac301c00130140131637586034002603400260320026030002602e002602c002602a00260280026026002601400660200026020004601c002600c00429309b2b19299980419b87480000044c8c94ccc034c0400084c926323300100100222533300f00114984c8cc00c00cc04c008dd718088008b1bac300e0013006005163006004300a3003001230053754002460066ea80055cd2ab9d5573caae7d5d02ba157441", - "hash": "128cacae8708a0f45d04b6b15e7b72b7ee76013704bbfaf4b91503c2" + "compiledCode": "59023b010100323232323232322533300232323232323232325323233300c3370e90020028991919192999808180318089baa004132325333012300730133754002264a66602666e1d200430143754002264a6660286012602a6ea80044c8c94ccc064c0700084c8cc00400400888c94ccc0700084cc040dd6180f180d9baa00623301200b00113230023020003375c603c00460040042c6eb0c068004c058dd50008b180c180a9baa0011630173018301830143754602e603060286ea8c05cc050dd50008b191980080080211299980b0008a6103d87a8000133225333015325333016300c30173754002266e3cdd7180d980c1baa00100614a06034602e6ea8c068c05cdd5180d180d980b9baa00213374a90001980c80125eb804cc010010004c060004c064004dd7180a98091baa0041637586028602a602a602a602a602a602a602a0046eb0c04c004c04cc03cdd5004980898071baa0061533300c3002005132332232533301030053011375400426600e6eb0c054c048dd5180a98091baa0022330090020011637586028602a602a602a602a602a602a602a602a60226ea802cc048004c048c04c004c038dd50030b1b8748000dc3a400444646600200200644a66602000229444cc894ccc03cc0140084cc0100100045281bae3012001301300122323300100100322533300f00114a026644a66601c66e3c0080145288998020020009bae30110013012001300837540026016601800660140046012004601200260086ea8004526136565734aae7555cf2ab9f5740ae855d11", + "hash": "4e7c09cb808ad3497466c02511ce5807dcfa1b6868605601ec29b851" }, { - "title": "sample_multi_sign.spend", + "title": "sample_multi_sign.sample_multi_sign.spend", "datum": { "title": "datum", "schema": { @@ -223,14 +343,26 @@ "redeemer": { "title": "_redeemer", "schema": { - "$ref": "#/definitions/RedeemerWrapper$Data" + "$ref": "#/definitions/Data" } }, - "compiledCode": "5903170100003232323232323232322253330053370e900018020008a999802991919191919191919191919191919299980a19b8748010c04c0304c8c94ccc058cdc3a4000602a00226464a66603066e1d200230170011323232533301b3370e9000180d0008991919191919191919299981219b8748010c08c0044c8c8c8c8c8cc004004008894ccc0b4004528899192999816191980080080d1129998188008a501323253330303371e00400c29444cc010010004c0d4008dd718198008998020020008a503031002375c605e0026eb0c0b0c094008c94ccc09ccdc3a400000226464a666058605e0042649319198008008011129998170008a4c2646600600660640046eb8c0c000458dd6181680098128010b1812800981500098110008b181400098140009813800980f00098120009812000980d8009810800980c8008b191980080080811299980f8008a6103d87a800013232533301e323232323232323253330263370e9001000899b8f375c6056604800401a2940c090004c0a4004c084004c09c004c07c004c094004c094004c0700084cdd2a40006604400497ae013300400400130230023021001375c603c002602c0022c603800260280022c603400260240182c6eb0c060004c060004c05c004c058004c054004c050004c04c004c048008dd618080009808000980380198068009806801180580098018008a4c26cac264464a6660106464646464646464646464646464a66602c66e1d2002301500b13232323300100100222533301d00114a226464a666038646600200201044a66604200229404c8c94ccc080cdc78010030a511330040040013025002375c60460022660080080022940c084008dd7180f8009bac301c00130140131637586034002603400260320026030002602e002602c002602a00260280026026002601400660200026020004601c002600c00429309b2b19299980419b87480000044c8c94ccc034c0400084c926323300100100222533300f00114984c8cc00c00cc04c008dd718088008b1bac300e0013006005163006004300a3003001230053754002460066ea80055cd2ab9d5573caae7d5d02ba157441", - "hash": "128cacae8708a0f45d04b6b15e7b72b7ee76013704bbfaf4b91503c2" + "compiledCode": "59023b010100323232323232322533300232323232323232325323233300c3370e90020028991919192999808180318089baa004132325333012300730133754002264a66602666e1d200430143754002264a6660286012602a6ea80044c8c94ccc064c0700084c8cc00400400888c94ccc0700084cc040dd6180f180d9baa00623301200b00113230023020003375c603c00460040042c6eb0c068004c058dd50008b180c180a9baa0011630173018301830143754602e603060286ea8c05cc050dd50008b191980080080211299980b0008a6103d87a8000133225333015325333016300c30173754002266e3cdd7180d980c1baa00100614a06034602e6ea8c068c05cdd5180d180d980b9baa00213374a90001980c80125eb804cc010010004c060004c064004dd7180a98091baa0041637586028602a602a602a602a602a602a602a0046eb0c04c004c04cc03cdd5004980898071baa0061533300c3002005132332232533301030053011375400426600e6eb0c054c048dd5180a98091baa0022330090020011637586028602a602a602a602a602a602a602a602a60226ea802cc048004c048c04c004c038dd50030b1b8748000dc3a400444646600200200644a66602000229444cc894ccc03cc0140084cc0100100045281bae3012001301300122323300100100322533300f00114a026644a66601c66e3c0080145288998020020009bae30110013012001300837540026016601800660140046012004601200260086ea8004526136565734aae7555cf2ab9f5740ae855d11", + "hash": "4e7c09cb808ad3497466c02511ce5807dcfa1b6868605601ec29b851" + }, + { + "title": "sample_multi_sign.sample_multi_sign.else", + "redeemer": { + "schema": {} + }, + "compiledCode": "59023b010100323232323232322533300232323232323232325323233300c3370e90020028991919192999808180318089baa004132325333012300730133754002264a66602666e1d200430143754002264a6660286012602a6ea80044c8c94ccc064c0700084c8cc00400400888c94ccc0700084cc040dd6180f180d9baa00623301200b00113230023020003375c603c00460040042c6eb0c068004c058dd50008b180c180a9baa0011630173018301830143754602e603060286ea8c05cc050dd50008b191980080080211299980b0008a6103d87a8000133225333015325333016300c30173754002266e3cdd7180d980c1baa00100614a06034602e6ea8c068c05cdd5180d180d980b9baa00213374a90001980c80125eb804cc010010004c060004c064004dd7180a98091baa0041637586028602a602a602a602a602a602a602a0046eb0c04c004c04cc03cdd5004980898071baa0061533300c3002005132332232533301030053011375400426600e6eb0c054c048dd5180a98091baa0022330090020011637586028602a602a602a602a602a602a602a602a60226ea802cc048004c048c04c004c038dd50030b1b8748000dc3a400444646600200200644a66602000229444cc894ccc03cc0140084cc0100100045281bae3012001301300122323300100100322533300f00114a026644a66601c66e3c0080145288998020020009bae30110013012001300837540026016601800660140046012004601200260086ea8004526136565734aae7555cf2ab9f5740ae855d11", + "hash": "4e7c09cb808ad3497466c02511ce5807dcfa1b6868605601ec29b851" } ], "definitions": { + "AssetName": { + "title": "AssetName", + "dataType": "bytes" + }, "Bool": { "title": "Bool", "anyOf": [ @@ -251,6 +383,10 @@ "ByteArray": { "dataType": "bytes" }, + "CustomDatumHash": { + "title": "CustomDatumHash", + "dataType": "bytes" + }, "Data": { "title": "Data", "description": "Any Plutus data." @@ -258,12 +394,6 @@ "Int": { "dataType": "integer" }, - "List$ByteArray": { - "dataType": "list", - "items": { - "$ref": "#/definitions/ByteArray" - } - }, "List$Int": { "dataType": "list", "items": { @@ -276,14 +406,26 @@ "$ref": "#/definitions/Option$Int" } }, + "List$VerificationKeyHash": { + "dataType": "list", + "items": { + "$ref": "#/definitions/VerificationKeyHash" + } + }, "List$amm_dex_v2/types/PoolAuthorizationMethod": { "dataType": "list", "items": { "$ref": "#/definitions/amm_dex_v2~1types~1PoolAuthorizationMethod" } }, + "List$amm_dex_v2/types/SwapRouting": { + "dataType": "list", + "items": { + "$ref": "#/definitions/amm_dex_v2~1types~1SwapRouting" + } + }, "Option$ByteArray": { - "title": "Optional", + "title": "Option", "anyOf": [ { "title": "Some", @@ -306,7 +448,7 @@ ] }, "Option$Int": { - "title": "Optional", + "title": "Option", "anyOf": [ { "title": "Some", @@ -328,8 +470,8 @@ } ] }, - "Option$aiken/transaction/credential/Referenced$aiken/transaction/credential/Credential": { - "title": "Optional", + "Option$StakeCredential": { + "title": "Option", "anyOf": [ { "title": "Some", @@ -338,7 +480,7 @@ "index": 0, "fields": [ { - "$ref": "#/definitions/aiken~1transaction~1credential~1Referenced$aiken~1transaction~1credential~1Credential" + "$ref": "#/definitions/StakeCredential" } ] }, @@ -351,108 +493,69 @@ } ] }, - "RedeemerWrapper$Data": { - "title": "Wrapped Redeemer", - "description": "A redeemer wrapped in an extra constructor to make multi-validator detection possible on-chain.", - "anyOf": [ - { - "dataType": "constructor", - "index": 1, - "fields": [ - { - "$ref": "#/definitions/Data" - } - ] - } - ] - }, - "aiken/transaction/OutputReference": { - "title": "OutputReference", - "description": "An `OutputReference` is a unique reference to an output on-chain. The `output_index`\n corresponds to the position in the output list of the transaction (identified by its id)\n that produced that output", - "anyOf": [ - { - "title": "OutputReference", - "dataType": "constructor", - "index": 0, - "fields": [ - { - "title": "transaction_id", - "$ref": "#/definitions/aiken~1transaction~1TransactionId" - }, - { - "title": "output_index", - "$ref": "#/definitions/Int" - } - ] - } - ] - }, - "aiken/transaction/TransactionId": { - "title": "TransactionId", - "description": "A unique transaction identifier, as the hash of a transaction body. Note that the transaction id\n isn't a direct hash of the `Transaction` as visible on-chain. Rather, they correspond to hash\n digests of transaction body as they are serialized on the network.", + "Option$Tuple$Int_Int": { + "title": "Option", "anyOf": [ { - "title": "TransactionId", + "title": "Some", + "description": "An optional value.", "dataType": "constructor", "index": 0, "fields": [ { - "title": "hash", - "$ref": "#/definitions/ByteArray" + "$ref": "#/definitions/Tuple$Int_Int" } ] - } - ] - }, - "aiken/transaction/credential/Address": { - "title": "Address", - "description": "A Cardano `Address` typically holding one or two credential references.\n\n Note that legacy bootstrap addresses (a.k.a. 'Byron addresses') are\n completely excluded from Plutus contexts. Thus, from an on-chain\n perspective only exists addresses of type 00, 01, ..., 07 as detailed\n in [CIP-0019 :: Shelley Addresses](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0019/#shelley-addresses).", - "anyOf": [ + }, { - "title": "Address", + "title": "None", + "description": "Nothing.", "dataType": "constructor", - "index": 0, - "fields": [ - { - "title": "payment_credential", - "$ref": "#/definitions/aiken~1transaction~1credential~1Credential" - }, - { - "title": "stake_credential", - "$ref": "#/definitions/Option$aiken~1transaction~1credential~1Referenced$aiken~1transaction~1credential~1Credential" - } - ] + "index": 1, + "fields": [] } ] }, - "aiken/transaction/credential/Credential": { - "title": "Credential", + "PaymentCredential": { + "title": "PaymentCredential", "description": "A general structure for representing an on-chain `Credential`.\n\n Credentials are always one of two kinds: a direct public/private key\n pair, or a script (native or Plutus).", "anyOf": [ { - "title": "VerificationKeyCredential", + "title": "VerificationKey", "dataType": "constructor", "index": 0, "fields": [ { - "$ref": "#/definitions/ByteArray" + "$ref": "#/definitions/VerificationKeyHash" } ] }, { - "title": "ScriptCredential", + "title": "Script", "dataType": "constructor", "index": 1, "fields": [ { - "$ref": "#/definitions/ByteArray" + "$ref": "#/definitions/ScriptHash" } ] } ] }, - "aiken/transaction/credential/Referenced$aiken/transaction/credential/Credential": { - "title": "Referenced", + "PolicyId": { + "title": "PolicyId", + "dataType": "bytes" + }, + "PubKeyHash": { + "title": "PubKeyHash", + "dataType": "bytes" + }, + "ScriptHash": { + "title": "ScriptHash", + "dataType": "bytes" + }, + "StakeCredential": { + "title": "StakeCredential", "description": "Represent a type of object that can be represented either inline (by hash)\n or via a reference (i.e. a pointer to an on-chain location).\n\n This is mainly use for capturing pointers to a stake credential\n registration certificate in the case of so-called pointer addresses.", "anyOf": [ { @@ -461,7 +564,7 @@ "index": 0, "fields": [ { - "$ref": "#/definitions/aiken~1transaction~1credential~1Credential" + "$ref": "#/definitions/cardano~1address~1Credential" } ] }, @@ -486,6 +589,26 @@ } ] }, + "Tuple$Int_Int": { + "title": "Tuple", + "dataType": "list", + "items": [ + { + "$ref": "#/definitions/Int" + }, + { + "$ref": "#/definitions/Int" + } + ] + }, + "ValidatorHash": { + "title": "ValidatorHash", + "dataType": "bytes" + }, + "VerificationKeyHash": { + "title": "VerificationKeyHash", + "dataType": "bytes" + }, "amm_dex_v2/types/Asset": { "title": "Asset", "anyOf": [ @@ -496,11 +619,11 @@ "fields": [ { "title": "policy_id", - "$ref": "#/definitions/ByteArray" + "$ref": "#/definitions/PolicyId" }, { "title": "asset_name", - "$ref": "#/definitions/ByteArray" + "$ref": "#/definitions/AssetName" } ] } @@ -523,58 +646,126 @@ } ] }, - "amm_dex_v2/types/FactoryDatum": { - "title": "FactoryDatum", + "amm_dex_v2/types/DepositAmountOption": { + "title": "DepositAmountOption", "anyOf": [ { - "title": "FactoryDatum", + "title": "DAOSpecificAmount", "dataType": "constructor", "index": 0, "fields": [ { - "title": "head", - "$ref": "#/definitions/ByteArray" + "title": "deposit_amount_a", + "$ref": "#/definitions/Int" }, { - "title": "tail", - "$ref": "#/definitions/ByteArray" + "title": "deposit_amount_b", + "$ref": "#/definitions/Int" + } + ] + }, + { + "title": "DAOAll", + "dataType": "constructor", + "index": 1, + "fields": [ + { + "title": "deducted_amount_a", + "$ref": "#/definitions/Int" + }, + { + "title": "deducted_amount_b", + "$ref": "#/definitions/Int" } ] } ] }, - "amm_dex_v2/types/FactoryRedeemer": { - "title": "FactoryRedeemer", + "amm_dex_v2/types/ExtraOrderDatum": { + "title": "ExtraOrderDatum", "anyOf": [ { - "title": "FactoryRedeemer", + "title": "EODNoDatum", "dataType": "constructor", "index": 0, + "fields": [] + }, + { + "title": "EODDatumHash", + "dataType": "constructor", + "index": 1, "fields": [ { - "title": "asset_a", - "$ref": "#/definitions/amm_dex_v2~1types~1Asset" - }, + "title": "hash", + "$ref": "#/definitions/CustomDatumHash" + } + ] + }, + { + "title": "EODInlineDatum", + "dataType": "constructor", + "index": 2, + "fields": [ { - "title": "asset_b", - "$ref": "#/definitions/amm_dex_v2~1types~1Asset" + "title": "hash", + "$ref": "#/definitions/CustomDatumHash" } ] } ] }, - "amm_dex_v2/types/GlobalSetting": { - "title": "GlobalSetting", + "amm_dex_v2/types/FactoryDatum": { + "title": "FactoryDatum", "anyOf": [ { - "title": "GlobalSetting", + "title": "FactoryDatum", "dataType": "constructor", "index": 0, "fields": [ { - "title": "batchers", - "$ref": "#/definitions/List$amm_dex_v2~1types~1PoolAuthorizationMethod" - }, + "title": "head", + "$ref": "#/definitions/ByteArray" + }, + { + "title": "tail", + "$ref": "#/definitions/ByteArray" + } + ] + } + ] + }, + "amm_dex_v2/types/FactoryRedeemer": { + "title": "FactoryRedeemer", + "anyOf": [ + { + "title": "FactoryRedeemer", + "dataType": "constructor", + "index": 0, + "fields": [ + { + "title": "asset_a", + "$ref": "#/definitions/amm_dex_v2~1types~1Asset" + }, + { + "title": "asset_b", + "$ref": "#/definitions/amm_dex_v2~1types~1Asset" + } + ] + } + ] + }, + "amm_dex_v2/types/GlobalSetting": { + "title": "GlobalSetting", + "anyOf": [ + { + "title": "GlobalSetting", + "dataType": "constructor", + "index": 0, + "fields": [ + { + "title": "batchers", + "$ref": "#/definitions/List$amm_dex_v2~1types~1PoolAuthorizationMethod" + }, { "title": "pool_fee_updater", "$ref": "#/definitions/amm_dex_v2~1types~1PoolAuthorizationMethod" @@ -599,6 +790,348 @@ } ] }, + "amm_dex_v2/types/OrderAuthorizationMethod": { + "title": "OrderAuthorizationMethod", + "anyOf": [ + { + "title": "OAMSignature", + "dataType": "constructor", + "index": 0, + "fields": [ + { + "title": "pub_key_hash", + "$ref": "#/definitions/PubKeyHash" + } + ] + }, + { + "title": "OAMSpendScript", + "dataType": "constructor", + "index": 1, + "fields": [ + { + "title": "script_hash", + "$ref": "#/definitions/ValidatorHash" + } + ] + }, + { + "title": "OAMWithdrawScript", + "dataType": "constructor", + "index": 2, + "fields": [ + { + "title": "script_hash", + "$ref": "#/definitions/ValidatorHash" + } + ] + }, + { + "title": "OAMMintScript", + "dataType": "constructor", + "index": 3, + "fields": [ + { + "title": "script_hash", + "$ref": "#/definitions/ValidatorHash" + } + ] + } + ] + }, + "amm_dex_v2/types/OrderDatum": { + "title": "OrderDatum", + "anyOf": [ + { + "title": "OrderDatum", + "dataType": "constructor", + "index": 0, + "fields": [ + { + "title": "canceller", + "$ref": "#/definitions/amm_dex_v2~1types~1OrderAuthorizationMethod" + }, + { + "title": "refund_receiver", + "$ref": "#/definitions/cardano~1address~1Address" + }, + { + "title": "refund_receiver_datum", + "$ref": "#/definitions/amm_dex_v2~1types~1ExtraOrderDatum" + }, + { + "title": "success_receiver", + "$ref": "#/definitions/cardano~1address~1Address" + }, + { + "title": "success_receiver_datum", + "$ref": "#/definitions/amm_dex_v2~1types~1ExtraOrderDatum" + }, + { + "title": "lp_asset", + "$ref": "#/definitions/amm_dex_v2~1types~1Asset" + }, + { + "title": "step", + "$ref": "#/definitions/amm_dex_v2~1types~1OrderStep" + }, + { + "title": "max_batcher_fee", + "$ref": "#/definitions/Int" + }, + { + "title": "expiry_setting_opt", + "$ref": "#/definitions/Option$Tuple$Int_Int" + } + ] + } + ] + }, + "amm_dex_v2/types/OrderStep": { + "title": "OrderStep", + "anyOf": [ + { + "title": "SwapExactIn", + "dataType": "constructor", + "index": 0, + "fields": [ + { + "title": "a_to_b_direction", + "$ref": "#/definitions/Bool" + }, + { + "title": "swap_amount_option", + "$ref": "#/definitions/amm_dex_v2~1types~1SwapAmountOption" + }, + { + "title": "minimum_receive", + "$ref": "#/definitions/Int" + }, + { + "title": "killable", + "$ref": "#/definitions/Bool" + } + ] + }, + { + "title": "StopLoss", + "dataType": "constructor", + "index": 1, + "fields": [ + { + "title": "a_to_b_direction", + "$ref": "#/definitions/Bool" + }, + { + "title": "swap_amount_option", + "$ref": "#/definitions/amm_dex_v2~1types~1SwapAmountOption" + }, + { + "title": "stop_loss_receive", + "$ref": "#/definitions/Int" + } + ] + }, + { + "title": "OCO", + "dataType": "constructor", + "index": 2, + "fields": [ + { + "title": "a_to_b_direction", + "$ref": "#/definitions/Bool" + }, + { + "title": "swap_amount_option", + "$ref": "#/definitions/amm_dex_v2~1types~1SwapAmountOption" + }, + { + "title": "minimum_receive", + "$ref": "#/definitions/Int" + }, + { + "title": "stop_loss_receive", + "$ref": "#/definitions/Int" + } + ] + }, + { + "title": "SwapExactOut", + "dataType": "constructor", + "index": 3, + "fields": [ + { + "title": "a_to_b_direction", + "$ref": "#/definitions/Bool" + }, + { + "title": "maximum_swap_amount_option", + "$ref": "#/definitions/amm_dex_v2~1types~1SwapAmountOption" + }, + { + "title": "expected_receive", + "$ref": "#/definitions/Int" + }, + { + "title": "killable", + "$ref": "#/definitions/Bool" + } + ] + }, + { + "title": "Deposit", + "dataType": "constructor", + "index": 4, + "fields": [ + { + "title": "deposit_amount_option", + "$ref": "#/definitions/amm_dex_v2~1types~1DepositAmountOption" + }, + { + "title": "minimum_lp", + "$ref": "#/definitions/Int" + }, + { + "title": "killable", + "$ref": "#/definitions/Bool" + } + ] + }, + { + "title": "Withdraw", + "dataType": "constructor", + "index": 5, + "fields": [ + { + "title": "withdrawal_amount_option", + "$ref": "#/definitions/amm_dex_v2~1types~1WithdrawAmountOption" + }, + { + "title": "minimum_asset_a", + "$ref": "#/definitions/Int" + }, + { + "title": "minimum_asset_b", + "$ref": "#/definitions/Int" + }, + { + "title": "killable", + "$ref": "#/definitions/Bool" + } + ] + }, + { + "title": "ZapOut", + "dataType": "constructor", + "index": 6, + "fields": [ + { + "title": "a_to_b_direction", + "$ref": "#/definitions/Bool" + }, + { + "title": "withdrawal_amount_option", + "$ref": "#/definitions/amm_dex_v2~1types~1WithdrawAmountOption" + }, + { + "title": "minimum_receive", + "$ref": "#/definitions/Int" + }, + { + "title": "killable", + "$ref": "#/definitions/Bool" + } + ] + }, + { + "title": "PartialSwap", + "dataType": "constructor", + "index": 7, + "fields": [ + { + "title": "a_to_b_direction", + "$ref": "#/definitions/Bool" + }, + { + "title": "total_swap_amount", + "$ref": "#/definitions/Int" + }, + { + "title": "io_ratio_numerator", + "$ref": "#/definitions/Int" + }, + { + "title": "io_ratio_denominator", + "$ref": "#/definitions/Int" + }, + { + "title": "hops", + "$ref": "#/definitions/Int" + }, + { + "title": "minimum_swap_amount_required", + "$ref": "#/definitions/Int" + }, + { + "title": "max_batcher_fee_each_time", + "$ref": "#/definitions/Int" + } + ] + }, + { + "title": "WithdrawImbalance", + "dataType": "constructor", + "index": 8, + "fields": [ + { + "title": "withdrawal_amount_option", + "$ref": "#/definitions/amm_dex_v2~1types~1WithdrawAmountOption" + }, + { + "title": "ratio_asset_a", + "$ref": "#/definitions/Int" + }, + { + "title": "ratio_asset_b", + "$ref": "#/definitions/Int" + }, + { + "title": "minimum_asset_a", + "$ref": "#/definitions/Int" + }, + { + "title": "killable", + "$ref": "#/definitions/Bool" + } + ] + }, + { + "title": "SwapMultiRouting", + "dataType": "constructor", + "index": 9, + "fields": [ + { + "title": "routings", + "$ref": "#/definitions/List$amm_dex_v2~1types~1SwapRouting" + }, + { + "title": "swap_amount_option", + "$ref": "#/definitions/amm_dex_v2~1types~1SwapAmountOption" + }, + { + "title": "minimum_receive", + "$ref": "#/definitions/Int" + } + ] + }, + { + "title": "Donation", + "dataType": "constructor", + "index": 10, + "fields": [] + } + ] + }, "amm_dex_v2/types/PoolAuthorizationMethod": { "title": "PoolAuthorizationMethod", "anyOf": [ @@ -609,7 +1142,7 @@ "fields": [ { "title": "pub_key_hash", - "$ref": "#/definitions/ByteArray" + "$ref": "#/definitions/PubKeyHash" } ] }, @@ -620,7 +1153,7 @@ "fields": [ { "title": "script_hash", - "$ref": "#/definitions/ByteArray" + "$ref": "#/definitions/ValidatorHash" } ] }, @@ -631,7 +1164,7 @@ "fields": [ { "title": "script_hash", - "$ref": "#/definitions/ByteArray" + "$ref": "#/definitions/ValidatorHash" } ] } @@ -679,7 +1212,7 @@ "fields": [ { "title": "pool_batching_stake_credential", - "$ref": "#/definitions/aiken~1transaction~1credential~1Referenced$aiken~1transaction~1credential~1Credential" + "$ref": "#/definitions/cardano~1address~1Credential" }, { "title": "asset_a", @@ -749,6 +1282,53 @@ } ] }, + "amm_dex_v2/types/SwapAmountOption": { + "title": "SwapAmountOption", + "anyOf": [ + { + "title": "SAOSpecificAmount", + "dataType": "constructor", + "index": 0, + "fields": [ + { + "title": "swap_amount", + "$ref": "#/definitions/Int" + } + ] + }, + { + "title": "SAOAll", + "dataType": "constructor", + "index": 1, + "fields": [ + { + "title": "deducted_amount", + "$ref": "#/definitions/Int" + } + ] + } + ] + }, + "amm_dex_v2/types/SwapRouting": { + "title": "SwapRouting", + "anyOf": [ + { + "title": "SwapRouting", + "dataType": "constructor", + "index": 0, + "fields": [ + { + "title": "lp_asset", + "$ref": "#/definitions/amm_dex_v2~1types~1Asset" + }, + { + "title": "a_to_b_direction", + "$ref": "#/definitions/Bool" + } + ] + } + ] + }, "amm_dex_v2/types/UpdatePoolParametersAction": { "title": "UpdatePoolParametersAction", "anyOf": [ @@ -772,6 +1352,101 @@ } ] }, + "amm_dex_v2/types/WithdrawAmountOption": { + "title": "WithdrawAmountOption", + "anyOf": [ + { + "title": "WAOSpecificAmount", + "dataType": "constructor", + "index": 0, + "fields": [ + { + "title": "withdrawal_lp_amount", + "$ref": "#/definitions/Int" + } + ] + }, + { + "title": "WAOAll", + "dataType": "constructor", + "index": 1, + "fields": [ + { + "title": "deducted_amount_lp", + "$ref": "#/definitions/Int" + } + ] + } + ] + }, + "cardano/address/Address": { + "title": "Address", + "description": "A Cardano `Address` typically holding one or two credential references.\n\n Note that legacy bootstrap addresses (a.k.a. 'Byron addresses') are\n completely excluded from Plutus contexts. Thus, from an on-chain\n perspective only exists addresses of type 00, 01, ..., 07 as detailed\n in [CIP-0019 :: Shelley Addresses](https://github.com/cardano-foundation/CIPs/tree/master/CIP-0019/#shelley-addresses).", + "anyOf": [ + { + "title": "Address", + "dataType": "constructor", + "index": 0, + "fields": [ + { + "title": "payment_credential", + "$ref": "#/definitions/PaymentCredential" + }, + { + "title": "stake_credential", + "$ref": "#/definitions/Option$StakeCredential" + } + ] + } + ] + }, + "cardano/address/Credential": { + "title": "Credential", + "description": "A general structure for representing an on-chain `Credential`.\n\n Credentials are always one of two kinds: a direct public/private key\n pair, or a script (native or Plutus).", + "anyOf": [ + { + "title": "VerificationKey", + "dataType": "constructor", + "index": 0, + "fields": [ + { + "$ref": "#/definitions/VerificationKeyHash" + } + ] + }, + { + "title": "Script", + "dataType": "constructor", + "index": 1, + "fields": [ + { + "$ref": "#/definitions/ScriptHash" + } + ] + } + ] + }, + "cardano/transaction/OutputReference": { + "title": "OutputReference", + "description": "An `OutputReference` is a unique reference to an output on-chain. The `output_index`\n corresponds to the position in the output list of the transaction (identified by its id)\n that produced that output", + "anyOf": [ + { + "title": "OutputReference", + "dataType": "constructor", + "index": 0, + "fields": [ + { + "title": "transaction_id", + "$ref": "#/definitions/ByteArray" + }, + { + "title": "output_index", + "$ref": "#/definitions/Int" + } + ] + } + ] + }, "sample_multi_sign/MultiSignDatum": { "title": "MultiSignDatum", "anyOf": [ @@ -782,7 +1457,7 @@ "fields": [ { "title": "pub_key_hashes", - "$ref": "#/definitions/List$ByteArray" + "$ref": "#/definitions/List$VerificationKeyHash" } ] } diff --git a/validators/always_success.ak b/validators/always_success.ak index 11d6dad..cb7411f 100644 --- a/validators/always_success.ak +++ b/validators/always_success.ak @@ -1,8 +1,11 @@ -use aiken/transaction.{ScriptContext, Spend} +use cardano/transaction.{OutputReference, Transaction} -validator { - fn spend(_d: Data, _r: Data, ctx: ScriptContext) { - expect ScriptContext { purpose: Spend(_), .. } = ctx +validator always_success { + spend(_d: Option, _r: Data, _o: OutputReference, _self: Transaction) { True } + + else(_) { + fail + } } diff --git a/validators/authen_minting_policy.ak b/validators/authen_minting_policy.ak index 834706f..36e6bbe 100644 --- a/validators/authen_minting_policy.ak +++ b/validators/authen_minting_policy.ak @@ -1,11 +1,5 @@ use aiken/builtin -use aiken/dict -use aiken/list -use aiken/transaction.{ - Input, Mint, Output, OutputReference, ScriptContext, Spend, Transaction, -} -use aiken/transaction/credential.{Address, ScriptCredential} -use aiken/transaction/value +use aiken/collection/list use amm_dex_v2/pool_validation use amm_dex_v2/types.{ Asset, AuthenRedeemer, CreatePool, DexInitialization, FactoryDatum, @@ -13,15 +7,20 @@ use amm_dex_v2/types.{ PAMWithdrawScript, PoolAuthorizationMethod, } use amm_dex_v2/utils +use cardano/address.{Address, Script} +use cardano/assets.{PolicyId} +use cardano/transaction.{Input, Output, OutputReference, Spend, Transaction} -validator( +validator authen_minting_policy( // @out_ref is a Reference of an Unspent Transaction Output, // which will only be spent on `MintFactoryAuthen` redeemer to make sure this redeemer can only be called once out_ref: OutputReference, ) { - fn validate_authen(redeemer: AuthenRedeemer, context: ScriptContext) { - let ScriptContext { transaction, purpose } = context - expect Mint(authen_policy_id) = purpose + mint( + redeemer: AuthenRedeemer, + authen_policy_id: PolicyId, + transaction: Transaction, + ) { when redeemer is { CreatePool -> { let Transaction { inputs, mint, redeemers, .. } = transaction @@ -33,7 +32,7 @@ validator( fn(input) { let Input { output, .. } = input let Output { value: out_value, .. } = output - value.quantity_of( + assets.quantity_of( out_value, authen_policy_id, utils.factory_auth_asset_name, @@ -41,12 +40,12 @@ validator( }, ) let Input { output_reference: factory_input_ref, .. } = factory_input - let redeemer_list = dict.to_list(redeemers) - expect [(_, raw_factory_redeemer)] = + let redeemer_list = redeemers + expect [Pair(_, raw_factory_redeemer)] = list.filter( redeemer_list, fn(r) { - let (p, _) = r + let Pair(p, _) = r when p is { Spend(ref) -> factory_input_ref == ref _ -> False @@ -71,7 +70,7 @@ validator( asset_b_policy_id, asset_b_asset_name, ) - value.from_minted_value(mint) == pool_validation.get_pool_creation_expected_mint( + mint == pool_validation.get_pool_creation_expected_mint( authen_policy_id: authen_policy_id, lp_asset_name: lp_asset_name, ) @@ -95,15 +94,15 @@ validator( // and token name is defined in @factory_auth_asset_name // - 1 Global Setting NFT that have the same policy id with the own script hash // and token name is defined in @global_setting_asset_name - let mint_value = value.from_minted_value(mint) + let mint_value = mint expect and { - list.length(value.flatten(mint_value)) == 2, - value.quantity_of( + list.length(assets.flatten(mint_value)) == 2, + assets.quantity_of( mint_value, authen_policy_id, utils.global_setting_asset_name, ) == 1, - value.quantity_of( + assets.quantity_of( mint_value, authen_policy_id, utils.factory_auth_asset_name, @@ -116,7 +115,7 @@ validator( outputs, fn(output) { let Output { value: out_value, .. } = output - value.without_lovelace(out_value) == value.from_asset( + assets.without_lovelace(out_value) == assets.from_asset( authen_policy_id, utils.factory_auth_asset_name, 1, @@ -139,7 +138,7 @@ validator( .. } = output when payment_cred is { - ScriptCredential(h) -> h == authen_policy_id + Script(h) -> h == authen_policy_id _ -> False } }, @@ -156,7 +155,7 @@ validator( tail == #"ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00", validate_global_setting(global_setting), // The Global Setting UTxO must contain 1 Global Setting Token in the value - value.without_lovelace(global_setting_value) == value.from_asset( + assets.without_lovelace(global_setting_value) == assets.from_asset( authen_policy_id, utils.global_setting_asset_name, 1, @@ -166,13 +165,12 @@ validator( } } - fn validate_spend_global_setting( - datum: GlobalSetting, + spend( + datum: Option, _redeemer: Data, - context: ScriptContext, + global_setting_input_ref: OutputReference, + transaction: Transaction, ) { - let ScriptContext { transaction, purpose } = context - expect Spend(global_setting_input_ref) = purpose let Transaction { inputs, outputs, @@ -194,10 +192,10 @@ validator( }, .. } = global_setting_input - expect ScriptCredential(global_setting_script_hash) = + expect Script(global_setting_script_hash) = global_setting_payment_credential - let GlobalSetting { admin, .. } = datum + expect Some(GlobalSetting { admin, .. }) = datum let global_setting_output = outputs |> builtin.head_list let Output { value: global_setting_value_out, @@ -221,22 +219,26 @@ validator( ), // Both Global Setting input and output must have the same payment credential // and keep the Global Setting Token - value.quantity_of( + assets.quantity_of( global_setting_value_input, global_setting_script_hash, utils.global_setting_asset_name, ) == 1, - value.without_lovelace(global_setting_value_out) == value.from_asset( + assets.without_lovelace(global_setting_value_out) == assets.from_asset( global_setting_script_hash, utils.global_setting_asset_name, 1, ), global_setting_payment_credential_out == global_setting_payment_credential, // transaction won't mint anything - value.is_zero(value.from_minted_value(mint)), + assets.is_zero(mint), validate_global_setting(global_setting_out_datum), } } + + else(_) { + fail + } } fn validate_global_setting(global_setting: GlobalSetting) -> Bool { diff --git a/validators/factory_validator.ak b/validators/factory_validator.ak index 60b9a0a..48a9c2d 100644 --- a/validators/factory_validator.ak +++ b/validators/factory_validator.ak @@ -1,32 +1,31 @@ use aiken/builtin -use aiken/list -use aiken/transaction.{Input, Output, ScriptContext, Spend, Transaction} -use aiken/transaction/credential.{Address, ScriptCredential, StakeCredential} -use aiken/transaction/value.{PolicyId, ada_asset_name, ada_policy_id} +use aiken/collection/list use amm_dex_v2/math use amm_dex_v2/pool_validation use amm_dex_v2/types.{Asset, FactoryDatum, FactoryRedeemer, PoolDatum} use amm_dex_v2/utils +use cardano/address.{Address, Credential, Script} +use cardano/assets.{PolicyId, ada_asset_name, ada_policy_id} +use cardano/transaction.{Input, Output, OutputReference, Transaction} -validator( +validator factory_validator( // The PolicyID of Authen Minting Policy authen_policy_id: PolicyId, // Address of Pool Contract // This address has Pool Validator Hash as Payment Credential and Stake Credential is controlled by Minswap Labs pool_address: Address, // Stake Credential of Pool Batching Contract - pool_batching_stake_credential: StakeCredential, + pool_batching_stake_credential: Credential, ) { - fn validate_factory( - datum: FactoryDatum, + spend( + datum: Option, redeemer: FactoryRedeemer, - context: ScriptContext, + factory_ref: OutputReference, + transaction: Transaction, ) { - let ScriptContext { transaction, purpose } = context - expect Spend(factory_ref) = purpose let Transaction { inputs, mint, outputs, .. } = transaction let FactoryRedeemer { asset_a, asset_b } = redeemer - let FactoryDatum { head: current_head, tail: current_tail } = datum + expect Some(FactoryDatum { head: current_head, tail: current_tail }) = datum let Asset { policy_id: asset_a_policy_id, asset_name: asset_a_asset_name } = asset_a let Asset { policy_id: asset_b_policy_id, asset_name: asset_b_asset_name } = @@ -77,14 +76,15 @@ validator( // Transaction must have a Factory Asset in the Spending Script expect - value.without_lovelace(factory_input_value) == value.from_asset( + assets.without_lovelace(factory_input_value) == assets.from_asset( authen_policy_id, utils.factory_auth_asset_name, 1, ) // validate that there are only 2 Factory UTxOs in Transaction Outputs, // they must contain single legitimate Factory NFT Token. - expect [factory_output_1, factory_output_2] = + expect [factory_output_1, + factory_output_2] = list.filter( outputs, fn(output) { @@ -95,7 +95,7 @@ validator( } = output and { factory_payment_credential == payment_cred, - value.without_lovelace(out_value) == value.from_asset( + assets.without_lovelace(out_value) == assets.from_asset( authen_policy_id, utils.factory_auth_asset_name, 1, @@ -117,12 +117,12 @@ validator( // (old head, old tail) -> (old head, Pool LP Token Name) and (Pool LP Token Name, old tail) // old head < Pool LP Token Name < old tail expect and { - builtin.less_than_bytearray(new_head_1, new_tail_1), - builtin.less_than_bytearray(new_head_2, new_tail_2), - new_head_1 == current_head, - new_tail_2 == current_tail, - lp_asset_name == new_tail_1, - lp_asset_name == new_head_2, + builtin.less_than_bytearray(new_head_1, new_tail_1)?, + builtin.less_than_bytearray(new_head_2, new_tail_2)?, + (new_head_1 == current_head)?, + (new_tail_2 == current_tail)?, + (lp_asset_name == new_tail_1)?, + (lp_asset_name == new_head_2)?, } // validate that there is a new Pool UTxO in Transaction Outputs. // Pool UTxO must contain single Pool NFT Token @@ -134,9 +134,9 @@ validator( let Address { payment_credential: out_addr_payment_credential, .. } = out_addr when out_addr_payment_credential is { - ScriptCredential(_) -> and { + Script(_) -> and { pool_address == out_addr, - value.quantity_of( + assets.quantity_of( out_value, authen_policy_id, utils.pool_auth_asset_name, @@ -163,7 +163,7 @@ validator( allow_dynamic_fee: pool_allow_dynamic_fee, } = pool_out_datum let estimated_amount_a = - value.quantity_of( + assets.quantity_of( pool_output_value, asset_a_policy_id, asset_a_asset_name, @@ -175,7 +175,7 @@ validator( estimated_amount_a } let amount_b = - value.quantity_of( + assets.quantity_of( pool_output_value, asset_b_policy_id, asset_b_asset_name, @@ -184,51 +184,55 @@ validator( let remaining_liquidity = 9223372036854775807 - ( total_liquidity - utils.default_burn_liquidity ) let expected_pool_out_value = - value.zero() - |> value.add(ada_policy_id, ada_asset_name, utils.min_pool_ada) - |> value.add(asset_a_policy_id, asset_a_asset_name, amount_a) - |> value.add(asset_b_policy_id, asset_b_asset_name, amount_b) - |> value.add(authen_policy_id, lp_asset_name, remaining_liquidity) - |> value.add(authen_policy_id, utils.pool_auth_asset_name, 1) + assets.zero + |> assets.add(ada_policy_id, ada_asset_name, utils.min_pool_ada) + |> assets.add(asset_a_policy_id, asset_a_asset_name, amount_a) + |> assets.add(asset_b_policy_id, asset_b_asset_name, amount_b) + |> assets.add(authen_policy_id, lp_asset_name, remaining_liquidity) + |> assets.add(authen_policy_id, utils.pool_auth_asset_name, 1) and { // stake_credential must be the same with configured credential - pool_stake_credential == pool_batching_stake_credential, + (pool_stake_credential == pool_batching_stake_credential)?, // asset_a and asset_b must be the same with Factory Redeemer - pool_datum_asset_a == asset_a, - pool_datum_asset_b == asset_b, + (pool_datum_asset_a == asset_a)?, + (pool_datum_asset_b == asset_b)?, // Total Liquidity in PoolDatum must be sqrt(amount_a * amount_b) - pool_datum_total_liquidity == total_liquidity, + (pool_datum_total_liquidity == total_liquidity)?, // Pool Reserve must be the same between datum and value - pool_datum_reserve_a == amount_a, - pool_datum_reserve_b == amount_b, + (pool_datum_reserve_a == amount_a)?, + (pool_datum_reserve_b == amount_b)?, // Initial Pool Reserves must be positive and the liquditiy must be greater than the burn liquidity - amount_a > 0, - amount_b > 0, - total_liquidity > utils.default_burn_liquidity, + (amount_a > 0)?, + (amount_b > 0)?, + (total_liquidity > utils.default_burn_liquidity)?, // base_fee_a_numerator and base_fee_b_numerator must be the same - pool_datum_base_fee_a_numerator == pool_datum_base_fee_b_numerator, + (pool_datum_base_fee_a_numerator == pool_datum_base_fee_b_numerator)?, // base_fee_a_numerator and base_fee_b_numerator must be between **5** and **2000** pool_validation.validate_fee_percent( fee_num: pool_datum_base_fee_a_numerator, max_fee_num: utils.max_base_fee_numerator, min_fee_num: utils.min_base_fee_numerator, - ), + )?, // Dynamic Fee is not allowed in Pool Creation - pool_allow_dynamic_fee == False, + (pool_allow_dynamic_fee == False)?, // fee_sharing_numerator_opt must be empty - pool_datum_fee_sharing_numerator_opt == None, + (pool_datum_fee_sharing_numerator_opt == None)?, // Transaction must mint necessary assets - value.from_minted_value(mint) == pool_validation.get_pool_creation_expected_mint( + (mint == pool_validation.get_pool_creation_expected_mint( authen_policy_id: authen_policy_id, lp_asset_name: lp_asset_name, - ), + ))?, // Pool Value must only have necessary Token: // - Asset A // - Asset B // - remaining LP Token (_MAX_INT64_ - _total_liquidity_) // - 1 Pool NFT Token // - 3 ADA (required ADA for an UTxO) - expected_pool_out_value == pool_output_value, + (expected_pool_out_value == pool_output_value)?, } } + + else(_) { + fail + } } diff --git a/validators/order_validator.ak b/validators/order_validator.ak index 730c4b9..9472a61 100644 --- a/validators/order_validator.ak +++ b/validators/order_validator.ak @@ -1,36 +1,38 @@ -use aiken/dict -use aiken/list -use aiken/transaction.{ - Input, Output, ScriptContext, Spend, Transaction, WithdrawFrom, -} -use aiken/transaction/credential.{Address, ScriptCredential, StakeCredential} +use aiken/collection/list +use aiken/collection/pairs use amm_dex_v2/order_validation use amm_dex_v2/types.{ ApplyOrder, CancelExpiredOrderByAnyone, CancelOrderByOwner, OrderDatum, OrderRedeemer, } use amm_dex_v2/utils +use cardano/address.{Address, Credential, Script} +use cardano/transaction.{Input, Output, OutputReference, Transaction} -validator( +validator order_validator( // the Stake Credential of Pool Batching Validator - pool_batching_credential: StakeCredential, + pool_batching_credential: Credential, // the Stake Credential of Expired Order Cancellation Validator - expired_order_cancel_credential: StakeCredential, + expired_order_cancel_credential: Credential, ) { - fn validate_order(raw_datum: Data, raw_redeemer: Data, context: ScriptContext) { - let ScriptContext { transaction, purpose } = context - expect Spend(_) = purpose + // fn validate_order + spend( + raw_datum_opt: Option, + raw_redeemer: Data, + _own_ref: OutputReference, + transaction: Transaction, + ) { + expect Some(order_datum) = raw_datum_opt expect redeemer: OrderRedeemer = raw_redeemer when redeemer is { ApplyOrder -> { let Transaction { withdrawals, .. } = transaction // validate that an Order can be spent if there's a `Order Batching` validator in the `withdrawals` - dict.has_key(withdrawals, pool_batching_credential) + pairs.has_key(withdrawals, pool_batching_credential) } CancelOrderByOwner -> { let Transaction { inputs, extra_signatories, withdrawals, mint, .. } = transaction - expect order_datum: OrderDatum = raw_datum let OrderDatum { canceller, .. } = order_datum // Canceller can be one of 4 authorization methods utils.authorize_order_license( @@ -44,18 +46,18 @@ validator( CancelExpiredOrderByAnyone -> { let Transaction { withdrawals, .. } = transaction // validate that an Order can be spent if there's a `Order Batching` validator in the `withdrawals` - dict.has_key(withdrawals, expired_order_cancel_credential) + pairs.has_key(withdrawals, expired_order_cancel_credential) } } } + + else(_) { + fail + } } -validator { - fn validate_expired_order_cancel( - _redeemer: Data, - context: ScriptContext, - ) -> Bool { - expect ScriptContext { transaction, purpose: WithdrawFrom(_) } = context +validator validate_expired_order_cancel { + withdraw(_redeemer: Data, _account: Credential, transaction: Transaction) { let Transaction { inputs, outputs, validity_range, datums, .. } = transaction // Assume all script inputs are order scripts. @@ -69,7 +71,7 @@ validator { .. } = input when payment_credential is { - ScriptCredential(_) -> True + Script(_) -> True _ -> False } }, @@ -84,4 +86,8 @@ validator { start_valid_time_range: start_valid_time_range, ) } + + else(_) { + fail + } } diff --git a/validators/pool_validator.ak b/validators/pool_validator.ak index 6aa9c35..a4ef6e0 100644 --- a/validators/pool_validator.ak +++ b/validators/pool_validator.ak @@ -1,14 +1,7 @@ use aiken/builtin -use aiken/bytearray -use aiken/dict -use aiken/list -use aiken/transaction.{ - Input, Output, ScriptContext, Spend, Transaction, WithdrawFrom, -} -use aiken/transaction/credential.{ - Address, Credential, ScriptCredential, VerificationKeyCredential, -} -use aiken/transaction/value.{PolicyId} +use aiken/collection/list +use aiken/collection/pairs +use aiken/primitive/bytearray use amm_dex_v2/order_validation use amm_dex_v2/pool_validation use amm_dex_v2/types.{ @@ -18,23 +11,26 @@ use amm_dex_v2/types.{ UpdatePoolParameters, UpdatePoolStakeCredential, WithdrawFeeSharing, } use amm_dex_v2/utils +use cardano/address.{Address, Credential, Script, VerificationKey} +use cardano/assets.{PolicyId} +use cardano/transaction.{Input, Output, OutputReference, Transaction} -validator( +validator pool_validator( // The PolicyID of Authen Minting Policy authen_policy_id: PolicyId, ) { - fn validate_pool( - datum: PoolDatum, + spend( + datum_opt: Option, redeemer: PoolRedeemer, - context: ScriptContext, + pool_input_ref: OutputReference, + transaction: Transaction, ) { - expect ScriptContext { transaction, purpose: Spend(pool_input_ref) } = - context + expect Some(datum) = datum_opt when redeemer is { Batching -> { let Transaction { withdrawals, .. } = transaction let PoolDatum { pool_batching_stake_credential, .. } = datum - dict.has_key(withdrawals, pool_batching_stake_credential) + pairs.has_key(withdrawals, pool_batching_stake_credential) } UpdatePoolParameters(action) -> { let Transaction { @@ -81,7 +77,7 @@ validator( pool_author: authorizer, ), // This Redeemer won't mint anything - value.is_zero(value.from_minted_value(mint)), + assets.is_zero(mint), pool_validation.validate_update_pool_parameters( action: action, authen_policy_id: authen_policy_id, @@ -125,7 +121,7 @@ validator( pool_author: fee_sharing_taker, ), // This Redeemer won't mint anything - value.is_zero(value.from_minted_value(mint)), + assets.is_zero(mint), pool_validation.validate_withdraw_fee_sharing( authen_policy_id: authen_policy_id, pool_input: pool_input, @@ -136,22 +132,23 @@ validator( } } } + + else(_) { + fail + } } -validator( +validator pool_batching_validator( // The PolicyID of Authen Minting Policy authen_policy_id: PolicyId, // The Payment Credential of Pool Validator pool_payment_cred: Credential, ) { - fn validate_pool_batching( + withdraw( redeemer: PoolBatchingRedeemer, - context: ScriptContext, + stake_credential: Credential, + transaction: Transaction, ) { - expect ScriptContext { - transaction, - purpose: WithdrawFrom(stake_credential), - } = context let Transaction { inputs, outputs, @@ -193,7 +190,7 @@ validator( // Input indexes must not be empty list and be unique utils.is_unique_bytearray_unsorted(input_indexes), // validate Transaction won't mint any assets - value.is_zero(value.from_minted_value(mint)), + assets.is_zero(mint), } let pool_inputs = @@ -228,10 +225,9 @@ validator( and { payment_cred != pool_payment_cred, when batcher_address is { - PAMSignature(pkh) -> - payment_cred != VerificationKeyCredential(pkh) - PAMSpendScript(sh) -> payment_cred != ScriptCredential(sh) - PAMWithdrawScript(sh) -> payment_cred != ScriptCredential(sh) + PAMSignature(pkh) -> payment_cred != VerificationKey(pkh) + PAMSpendScript(sh) -> payment_cred != Script(sh) + PAMWithdrawScript(sh) -> payment_cred != Script(sh) }, } }, @@ -388,4 +384,8 @@ validator( } } } + + else(_) { + fail + } } diff --git a/validators/sample_multi_sign.ak b/validators/sample_multi_sign.ak index a25e723..e8cc8d4 100644 --- a/validators/sample_multi_sign.ak +++ b/validators/sample_multi_sign.ak @@ -1,53 +1,53 @@ -use aiken/hash.{Blake2b_224, Hash} -use aiken/list -use aiken/transaction.{ - InlineDatum, Input, Output, ScriptContext, Spend, Transaction, WithdrawFrom, -} -use aiken/transaction/credential.{ - Address, Inline, ScriptCredential, VerificationKey, +use aiken/collection/list +use aiken/crypto.{VerificationKeyHash} +use cardano/address.{Address, Credential, Script} +use cardano/transaction.{ + InlineDatum, Input, Output, OutputReference, Transaction, } -type MultiSignDatum { - pub_key_hashes: List>, +pub type MultiSignDatum { + pub_key_hashes: List, } -validator { - fn withdraw(_redeemer: Data, context: ScriptContext) { - expect ScriptContext { - transaction: Transaction { reference_inputs, extra_signatories, .. }, - purpose: WithdrawFrom(stake_credential), - } = context - expect Inline(own_cred) = stake_credential - expect ScriptCredential(own_hash) = own_cred +validator sample_multi_sign { + withdraw(_redeemer: Data, own_cred: Credential, transaction: Transaction) { + let Transaction { reference_inputs, extra_signatories, .. } = transaction + expect Script(own_hash) = own_cred expect Some(multi_sign_input) = reference_inputs |> list.find( - fn(input) { - let Input { - output: Output { - address: Address { payment_credential: payment_cred, .. }, - .. - }, - .. - } = input - when payment_cred is { - ScriptCredential(hash) -> hash == own_hash - _ -> False - } - }, - ) + fn(input) { + let Input { + output: Output { + address: Address { payment_credential: payment_cred, .. }, + .. + }, + .. + } = input + when payment_cred is { + Script(hash) -> hash == own_hash + _ -> False + } + }, + ) expect Input { output: Output { datum: InlineDatum(raw_datum), .. }, .. } = multi_sign_input expect ref_datum: MultiSignDatum = raw_datum list.all(ref_datum.pub_key_hashes, fn(h) { list.has(extra_signatories, h) }) } - fn spend(datum: MultiSignDatum, _redeemer: Data, context: ScriptContext) { - expect ScriptContext { - transaction: Transaction { extra_signatories, .. }, - purpose: Spend(_), - } = context - let MultiSignDatum { pub_key_hashes } = datum + spend( + datum: Option, + _redeemer: Data, + _o: OutputReference, + transaction: Transaction, + ) { + let Transaction { extra_signatories, .. } = transaction + expect Some(MultiSignDatum { pub_key_hashes }) = datum list.all(pub_key_hashes, fn(h) { list.has(extra_signatories, h) }) } + + else(_) { + fail + } }