;; 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))
(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)))