;; SPDX-License-Identifier: BUSL-1.1
(impl-trait 'SP2XD7417HGPRTREMKF748VNEQPDRR0RMANB7X1NK.proposal-trait.proposal-trait)
(define-constant err-unauthorised (err u1000))
(define-constant MAX_UINT u240282366920938463463374607431768211455)
(define-constant ONE_8 u100000000)
(define-constant requests (list u2397 u2398 u2399 u2400 u2401 u2402 u2403 u2404 u2405 u2406 u2407 u2408 u2409 u2410 u2411 u2412 u2413 u2414 u2415 u2416 u2417 u2418 u2419 u2420 u2421 u2422 u2423 u2424 u2425 u2426 u2427 u2428 u2429 u2430 u2431 u2432 u2433 u2434 u2435 u2436 u2437 u2438 u2439 u2440 u2441 u2442 u2443 u2444 u2445 u2446 u2447 u2448 u2449 u2450 u2451 u2452 u2453 u2454 u2455 u2456 u2457 u2458 u2459 u2460 u2461 u2462 u2463 u2464 u2465 u2466 u2467 u2468 u2469 u2470 u2471 u2472 u2473 u2474 u2475 u2476 u2477 u2478 u2479 u2480 u2481 u2482 u2483 u2484 u2485 u2486 u2487 u2488 u2489 u2490 u2491 u2492 u2493 u2494 u2495 u2496 u2497 u2498 u2499 u2500 u2501 u2502 u2503 u2504 u2505 u2506 u2507 u2508 u2509 u2510 u2511 u2512 u2513 u2514 u2515 u2516 u2517 u2518 u2519 u2520 u2521 u2522 u2523 u2524 u2525 u2526 u2527 u2528 u2529 u2530 u2531 u2532 u2533 u2534 u2535 u2536 u2537 u2538 u2539 u2540 u2541 u2542 u2543 u2544 u2545 u2546 u2547 u2548 u2549 u2550 u2551 u2552 u2553 u2554 u2555 u2556 u2557 u2558 u2559 u2560 u2561 u2562 u2563 u2564 u2565 u2566 u2567 u2568 u2569 u2570 u2571 u2572 u2573 u2574 u2575 u2576 u2577 u2578 u2579 u2580 u2581 u2582 u2583 u2584 u2585 u2586 u2587 u2588 u2589 u2590 u2591 u2592 u2593 u2594 u2595 u2596 u2597 u2598 u2599 u2600 u2601 u2602 u2603 u2604 u2605 u2606 u2607 u2608 u2609 u2610 u2611 u2612 u2613 u2614 u2615 u2616 u2617 u2618 u2619 u2620 u2621 u2622 u2623 u2624 u2625 u2626 u2627 u2628 u2629 u2630 u2631 u2632 u2633 u2634 u2635 u2636 u2637 u2638 u2639 u2640 u2641 u2642 u2643 u2644 u2645 u2646 u2647 u2648 u2649 u2650 u2651 u2652 u2653 u2654 u2655 u2656 u2657 u2658 u2659 u2660 u2661 u2662 u2663 u2664 u2665 u2666 u2667 u2668 u2669 u2670 u2671 u2672 u2673 u2674 u2675 u2676 u2677 u2678 u2679 u2680 u2681 u2682 u2683 u2684 u2685 u2686 u2687 u2688 u2689 u2690 u2691 u2692 u2693 u2694 u2695 u2696 u2697 u2698 u2699 u2700 u2701 u2702 u2703 u2704 u2705 u2706 u2707 u2708 u2709 u2710 u2711 u2712 u2713 u2714 u2715 u2716 u2717 u2718 u2719 u2720 u2721 u2722 u2723 u2724 u2725 u2726 u2727 u2728 u2729 u2730 u2731 u2732 u2733 u2734 u2735 u2736 u2737 u2738 u2739 u2740 u2741 u2742 u2743 u2744 u2745 u2746 u2747 u2748 u2749 u2750 u2751 u2752 u2753 u2754 u2755 u2756 u2757 u2758 u2759 u2760 u2761 u2762 u2763 u2764 u2765 u2766 u2767 u2768 u2769 u2770 u2771 u2772 u2773 u2774 u2775 u2776 u2777 u2778 u2779 u2780 u2781 u2782 u2783 u2784 u2785 u2786 u2787 u2788 u2789 u2790 u2791 u2792 u2793 u2794 u2795 u2796 u2797 u2798 u2799 u2800 u2801 u2802 u2803 u2804 u2805 u2806 u2807 u2808 u2809 u2810 u2811 u2812 u2813 u2814 u2815 u2816 u2817 u2818 u2819 u2820 u2821 u2822 u2823 u2824 u2825 u2826 u2827 u2828 u2829 u2830 u2831 u2832 u2833 u2834 u2835 u2836 u2837 u2838 u2839 u2840 u2841 u2842 u2843 u2844 u2845 u2846 u2847 u2848 u2849 u2850 u2851 u2852 u2853 u2854 u2855 u2856 u2857 u2858 u2859 u2860 u2861 u2862 u2863 u2864 u2865 u2866 u2867 u2868 u2869 u2870 u2871 u2872 u2873 u2874 u2875 u2876 u2877 u2878 u2879 u2880 u2881 u2882 u2883 u2884 u2885 u2886 u2887 u2888 u2889 u2890 u2891 u2892 u2893 u2894 u2895 u2896 u2897 u2898 u2899 u2900 u2901 u2902 u2903 u2904 u2905 u2906 u2907 u2908 u2909 u2910 u2911 u2912 u2913 u2914 u2915 u2916 u2917 u2918 u2919 u2920 u2921 u2922 u2923 u2924 u2925 u2926 u2927 u2928 u2929 u2930 u2931 u2932 u2933 u2934 u2935 u2936 u2937 u2938 u2939 u2940 u2941 u2942 u2943 u2944 u2945 u2946 u2947 u2948 u2949 u2950 u2951 u2952 u2953 u2954 u2955 u2956 u2957 u2958 u2959 u2960 u2961 u2962 u2963 u2964 u2965 u2966 u2967 u2968 u2969 u2970 u2971 u2972 u2973 u2974 u2975 u2976 u2977 u2978 u2979 u2980 u2981 u2982 u2983 u2984 u2985 u2986 u2987 u2988 u2989 u2990 u2991 u2992 u2993 u2994 u2995 u2996 u2997 u2998 u2999 u3000 u3001 u3002 u3003 u3004 u3005 u3006 u3007 u3008 u3009 u3010 u3011 u3012 u3013 u3014 u3015 u3016 u3017 u3018 u3019 u3020 u3021 u3022 u3023 u3024 u3025 u3026 u3027 u3028 u3029 u3030 u3031 u3032 u3033 u3034 u3035 u3036 u3037 u3038 u3039 u3040 u3041 u3042 u3043 u3044 u3045 u3046 u3047 u3048 u3049 u3050 u3051 u3052 u3053 u3054 u3055 u3056 u3057 u3058 u3059 u3060 u3061 u3062 u3063 u3064 u3065 u3066 u3067 u3068 u3069 u3070 u3071 u3072 u3073 u3074 u3075 u3076 u3077 u3078 u3079 u3080 u3081 u3082 u3083 u3084 u3085 u3086 u3087 u3088 u3089 u3090 u3091 u3092 u3093 u3094 u3095 u3096 u3097 u3098 u3099 u3100 u3101 u3102 u3103 u3104 u3105 u3106 u3107 u3108 u3109 u3110 u3111 u3112 u3113 u3114 u3115 u3116 u3117 u3118 u3119 u3120 u3121 u3122 u3123 u3124 u3125 u3126 u3127 u3128 u3129 u3130 u3131 u3132 u3133 u3134 u3135 u3136 u3137 u3138 u3139 u3140 u3141 u3142 u3143 u3144 u3145 u3146 u3147 u3148 u3149 u3150 u3151 u3152 u3153 u3154 u3155 u3156 u3157 u3158 u3159 u3160 u3161 u3162 u3163 u3164 u3165 u3166 u3167 u3168 u3169 u3170 u3171 u3172 u3173 u3174 u3175 u3176 u3177 u3178 u3179 u3180 u3181 u3182 u3183 u3184 u3185 u3186 u3187 u3188 u3189 u3190 u3191 u3192 u3193 u3194 u3195 u3196 u3197 u3198 u3199 u3200 u3201 u3202 u3203 u3204 u3205 u3206 u3207 u3208 u3209 u3210 u3211 u3212 u3213 u3214 u3215 u3216 u3217 u3218 u3219 u3220 u3221 u3222 u3223 u3224 u3225 u3226 u3227 u3228 u3229 u3230 u3231 u3232 u3233 u3234 u3235 u3236 u3237 u3238 u3239 u3240 u3241 u3242 u3243 u3244 u3245 u3246 u3247 u3248 u3249 u3250 u3251 u3252 u3253 u3254 u3255 u3256 u3257 u3258 u3259 u3260 u3261 u3262 u3263 u3264 u3265 u3266 u3267 u3268 u3269 u3270 u3271 u3272 u3273 u3274 u3275 u3276 u3277 u3278 u3279 u3280 u3281 u3282 u3283 u3284 u3285 u3286 u3287 u3288 u3289 u3290 u3291 u3292 u3293 u3294 u3295 u3296 u3297 u3298 u3299 u3300 u3301 u3302 u3303 u3304 u3305 u3306 u3307 u3308 u3309 u3310 u3311 u3312 u3313 u3314 u3315 u3316 u3317 u3318 u3319 u3320 u3321 u3322 u3323 u3324 u3325 u3326 u3327 u3328 u3329 u3330 u3331 u3332 u3333 u3334 u3335 u3336 u3337 u3338 u3339 u3340 u3341 u3342 u3343 u3344 u3345 u3346 u3347 u3348 u3349 u3350 u3351 u3352 u3353 u3354 u3355 u3356 u3357 u3358 u3359 u3360 u3361 u3362 u3363 u3364 u3365 u3366 u3367 u3368 u3369 u3370 u3371 u3372 u3373 u3374 u3375 u3376 u3377 u3378 u3379 u3380 u3381 u3382 u3383 u3384 u3385 u3386 u3387 u3388 u3389 u3390 u3391 u3392 u3393 u3394 u3395 u3396 u3397 u3398 u3399 u3400 u3401 u3402 u3403 u3404 u3405 u3406 u3407 u3408 u3409 u3410 u3411 u3412 u3413 u3414 u3415 u3416 u3417 u3418 u3419 u3420 u3421 u3422 u3423 u3424 u3425 u3426 u3427 u3428 u3429 u3430 u3431 u3432 u3433 u3434 u3435 u3436 u3437 u3438 u3439 u3440 u3441 u3442 u3443 u3444 u3445 u3446 u3447 u3448 u3449 u3450 u3451 u3452 u3453 u3454 u3455 u3456 u3457 u3458 u3459 u3460 u3461 u3462 u3463 u3464 u3465 u3466 u3467 u3468 u3469 u3470 u3471 u3472 u3473 u3474 u3475 u3476 u3477 u3478 u3479 u3480 u3481 u3482 u3483 u3484 u3485 u3486 u3487 u3488 u3489 u3490 u3491 u3492 u3493 u3494 u3495 u3496 u3497 u3498 u3499 u3500 u3501 u3502 u3503 u3504 u3505 u3506 u3507 u3508 u3509 u3510 u3511 u3512 u3513 u3514 u3515 u3516 u3517 u3518 u3519 u3520 u3521 u3522 u3523 u3524 u3525 u3526 u3527 u3528 u3529 u3530 u3531 u3532 u3533 u3534 u3535 u3536 u3537 u3538 u3539 u3540 u3541 u3542 u3543 u3544 u3545 u3546 u3547 u3548 u3549 u3550 u3551 u3552 u3553 u3554 u3555 u3556 u3557 u3558 u3559 u3560 u3561 u3562 u3563 u3564 u3565 u3566 u3567 u3568 u3569 u3570 u3571 u3572 u3573 u3574 u3575 u3576 u3577 u3578 u3579 u3580 u3581 u3582 u3583 u3584 u3585 u3586 u3587 u3588 u3589 u3590 u3591 u3592 u3593 u3594 u3595 u3596 u3597 u3598 u3599 u3600 u3601 u3602 u3603 u3604 u3605 u3606 u3607 u3608 u3609 u3610 u3611 u3612 u3613 u3614 u3615 u3616))
(define-constant requestor 'SP34VWFB5QTP1BWBKET8E2JZ7GSHQS6VX9MCJCFX4)
(define-public (execute (sender principal))
(begin
(print { revoked: (try! (fold revoke-request-iter requests (ok u0))) })
(try! (contract-call? 'SP673Z4BPB4R73359K9HE55F2X91V5BJTN5SXZ5T.meta-bridge-registry-v2-04 approve-pair { token: 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-wstx-v2, chain-id: u1002 } u"runes::895936:2906" false))
(try! (contract-call? 'SP673Z4BPB4R73359K9HE55F2X91V5BJTN5SXZ5T.meta-bridge-registry-v2-04 pause-peg-in { token: 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-wstx-v2, chain-id: u1002 } true))
(try! (contract-call? 'SP673Z4BPB4R73359K9HE55F2X91V5BJTN5SXZ5T.meta-bridge-registry-v2-04 pause-peg-out { token: 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-wstx-v2, chain-id: u1002 } true))
(try! (contract-call? 'SP673Z4BPB4R73359K9HE55F2X91V5BJTN5SXZ5T.meta-bridge-registry-v2-04 approve-pair { token: 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-wstx-v2, chain-id: u1001 } u"$STX$" false))
(try! (contract-call? 'SP673Z4BPB4R73359K9HE55F2X91V5BJTN5SXZ5T.meta-bridge-registry-v2-04 pause-peg-in { token: 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-wstx-v2, chain-id: u1001 } true))
(try! (contract-call? 'SP673Z4BPB4R73359K9HE55F2X91V5BJTN5SXZ5T.meta-bridge-registry-v2-04 pause-peg-out { token: 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-wstx-v2, chain-id: u1001 } true))
(ok true)))
(define-private (revoke-request-iter (request-id uint) (prior (response uint uint)))
(match prior
ok-value
(let (
(request-details (try! (contract-call? 'SP673Z4BPB4R73359K9HE55F2X91V5BJTN5SXZ5T.meta-bridge-registry-v2-03 get-request-or-fail request-id))))
(and
(is-eq (get requested-by request-details) requestor)
(is-eq (get finalized request-details) false)
(begin
(try! (contract-call? 'SP673Z4BPB4R73359K9HE55F2X91V5BJTN5SXZ5T.meta-bridge-registry-v2-03 set-request request-id (merge request-details { revoked: true })))
true))
(ok (+ ok-value u1)))
err-value (err err-value)))