Source Code

;; Used to simulate mainnet migration from v1 to v2 in the test suite
;; Must be called after deploying migrate-v0-v1.clar

(define-data-var executed bool false)
(define-data-var executed-burn-mint bool false)
(define-data-var executed-reserve-data-update bool false)
(define-data-var executed-borrower-block-height bool false)

(define-data-var enabled bool true)
(define-constant deployer tx-sender)

;; TODO: to fetch off-chain
(define-constant borrowers (list
 { borrower: 'SPM7G7N741FQT0EXW9RVKPVJNV7AJFDVH6F2M14R, new-height: u150010 }
 { borrower: 'SP2X48EMT7RR934KZP938W87MF93H96RVC1GNK7YM, new-height: u152706 }
 { borrower: 'SP11H7YGNJYAPPRMB36S5ZHMPZFHKA0099SADHYP8, new-height: u205508 }
 { borrower: 'SP23D2QGEAWMY75VVJW2Q67RAFGT3M5XJGTNS9VV9, new-height: u150328 }
 { borrower: 'SPS7W1NYW325Y837DHN9304FVR7SKDZ9CF89853N, new-height: u169975 }
 { borrower: 'SPW32GREJ0TZ013P3CK4H8ZKAVSSQFYHYMN1NF8M, new-height: u307811 }
 { borrower: 'SPTBAXKRKT7EXTZ6QRZFG1145M0BZ0TTX3HJZTFW, new-height: u145952 }
 { borrower: 'SPAMYKG405158QHF1STBG1SKFPEPY5267WB3MRP7, new-height: u160751 }
 { borrower: 'SPP5DXFY1F6TE6A5BFPQ2BES1CNMMSV1QNT42ZNK, new-height: u150220 }
 { borrower: 'SP20EXN4R20YEJQ2B9D28C4AKVQ4Q8MY22DJ17M2H, new-height: u149952 }
 { borrower: 'SP141GP2MYSE6G8RRRVW3N7R896AF4DG29ZDBAZTB, new-height: u186688 }
 { borrower: 'SPG714KDP3142ZTFNDWZN96SPTAEVTZET7NDP4S7, new-height: u183693 }
 { borrower: 'SP1NTBTPVZHEM779MZXNQWQ48XMW2NHTMXNANYFN7, new-height: u152716 }
 { borrower: 'SP17NP61ZCJ6WR52J70A5K3MA76R5MBEGWM6KG3PQ, new-height: u150035 }
 { borrower: 'SP3ZMRR6M0YV2EG2C43MJCHTRG6R7YQMPKR1G25AW, new-height: u185128 }
 { borrower: 'SP2C25B1DQ60ZJDCBAY1FVT1KAEGJXR5RBN9HRFY8, new-height: u309763 }
 { borrower: 'SP3ZTY2CAGNRRDE9RJNNF849S5B4TAVMPA7RNVA0X, new-height: u193401 }
 { borrower: 'SP1NVRFGCABR2H7C5Z05JCN2FE1P4A3K2J73CC9WW, new-height: u141235 }
 { borrower: 'SP1DC7R5978SMVF9SK7PA07WKVD6G1GTJ8FHWKZET, new-height: u150007 }
 { borrower: 'SP1EP6854YZ8QKV5AVY613BDFQMMEXBN1FRHT2DFZ, new-height: u145632 }
 { borrower: 'SP384PHPGAYKGX3Z8A3MKHT6M9TNHNPA12YRSXCA7, new-height: u150036 }
 { borrower: 'SP2QKE471WK6AVZTGFD5291SN7JWP53MMJZHE79F3, new-height: u150046 }
 { borrower: 'SP2VJMH4GK1KTKX9CSTP5HKJ83A6X3K4C6N519943, new-height: u200045 }
 { borrower: 'SP1P6D5YNBWJG4D0SGQAE4F1BMD7TM2QJ0DKJC4WV, new-height: u170594 }
 { borrower: 'SP166Y3Q445XBHGX4WAJNFH90QDZ5F2QG96KJWA8B, new-height: u150046 }
 { borrower: 'SP1ZXB641189AX4EEPCRQMST94GGC3X777PM2FFCA, new-height: u149941 }
 { borrower: 'SP13PBPRYHVS6GPQNTE5MX1YZEMNEVHM26FG3KS3Q, new-height: u283341 }
 { borrower: 'SP180BMQ04G5NHKMTC2GENHEMJMFK4KQ5KENHZ53, new-height: u150046 }
 { borrower: 'SP2VAKZGM873F6ZHSJXZ1BGJE5D4Z2H8B66EXXJKC, new-height: u142026 }
 { borrower: 'SP1Q8ERJDYMXNVBQPKM525G5H4Z9B67BXM9N45QFK, new-height: u152728 }
 { borrower: 'SPPPE2KF7Z93JHS49FNGWSBQ5MK5MC0YB7TK87Z6, new-height: u150319 }
 { borrower: 'SP32W17519Q38SG2JB67EV8M5G9TGJR669GNQSG27, new-height: u149963 }
 { borrower: 'SP1P7Y6XGQ1VQDJNQEM969ST5MMFFE3ZSCFWRGEZ5, new-height: u184665 }
 { borrower: 'SP3HK5H5FJ7H1E35Q2GQFXYGF6F4FEBTZMTZ9QT25, new-height: u151387 }
 { borrower: 'SP2CTN8DRXS72G64MW7NY86B6DSPNN9RS7XK4V3KW, new-height: u149978 }
 { borrower: 'SP3KQB7CZXS0JS3XV160W16Y8PTQ9YWR3M950FPN4, new-height: u145360 }
 { borrower: 'SP19B7JPCGVBP2TEZ32FYHVQPWD9JGVGVBWZJNFCX, new-height: u152423 }
 { borrower: 'SP3W3PCWC1WT2CHHHQV03YJ0XCTRKBEZQJ2NHTYT3, new-height: u152634 }
 { borrower: 'SP7CD8EB3GT9N5PFW8TPY9CMF84208V7KB0EPAPR, new-height: u314984 }
 { borrower: 'SP379DQDX08J9FT1AWQWPH9HDCX8SE4YZXVZFRNC, new-height: u151380 }
 { borrower: 'SP339GS5B7JA1DFTVX3SH2VWXMP4QR8RM5KF4ZZA, new-height: u213632 }
 { borrower: 'SP92BR07YNC1371FRX2M5M5F7ARA63EVYTMKTV6H, new-height: u141026 }
 { borrower: 'SP1FGB9YER7MQJSSZ27R75Z1M52XCTCCH9FS20HB0, new-height: u150133 }
 { borrower: 'SP22NR9RBF1K6TJHXE71C9MJ3H79P38DT7MNBHFDH, new-height: u279776 }
 { borrower: 'SP3JB7V457QQEH3MQWPCQ5F9ZYDKEPP9A1H4XNJBD, new-height: u150046 }
 { borrower: 'SPM5BVEBYCN2Z1AR2E06A69HF1W70G7V5GZFDNPR, new-height: u251775 }
 { borrower: 'SP3VJGBB99FMFJKKJB2D8P5CQYH165HZA2RFKMPEK, new-height: u150046 }
 { borrower: 'SP27HDFWZZ2PF511GZW3A37KB7EAZJ62VWWZZEBH, new-height: u150333 }
 { borrower: 'SP2Q58EA1NMT3FV2SHCAQ6C05BKX60ATGACTHRVA3, new-height: u152712 }
 { borrower: 'SPSQWEXFNRQB3FVR3N4QC44ZKGSQH1ABNAEF0ATJ, new-height: u183862 }
 { borrower: 'SP3F9C08AG8HN8A5K6NSPGGC7X08AR0SSX1G78JF7, new-height: u145422 }
 { borrower: 'SP2PF4G68C44HC6Y562ZYETT5FXWFBC9S246J9KB2, new-height: u169531 }
 { borrower: 'SP1JTQ988GYBQKZARR03XNKQBGTTB181VNAQDEM1E, new-height: u150303 }
 { borrower: 'SP3TFHMJ45J9J6XS26BZ6TP391DHXNVGHFPGJCB53, new-height: u164323 }
 { borrower: 'SP2KCT8MH5GBAZ1B4AQ4ECEQPWTQBHXV5TYD4JQPH, new-height: u152713 }
 { borrower: 'SP273SWYJNKJNS07QAJ6W3Q888CPKNTP00GRZCGVH, new-height: u150207 }
 { borrower: 'SPGKXNY6J7X936RZ7Q42RMZQHSZWQECHH7RRBRXY, new-height: u196863 }
 { borrower: 'SP2QWW46F5M876RX9694ZRJNSTBZPDCYWXB6VQAWR, new-height: u284574 }
 { borrower: 'SP3XVKFHS2Z6Z8PHB08PDDZ494YKNRFBVWS9E4RV8, new-height: u156193 }
 { borrower: 'SPMVPNCFY0XQ5FS3N3WG52560FQ0HT7YRDSHY4H0, new-height: u321122 }
 { borrower: 'SPKSE25B7H12D41G12VHC72JQC70BMWXBWBA7B50, new-height: u153730 }
 { borrower: 'SPBER0PH8RPTNDAWT6AP3BRD9TGNBAGJ5YTPHB9B, new-height: u150651 }
 { borrower: 'SP3MH2RDK5JT5PTC47M8BXHSSGS781NMH94JE0D35, new-height: u166644 }
 { borrower: 'SP2A0828P02DFE5ZMWSEBDDTB3V96EC86QZ3ACRHY, new-height: u328624 }
 { borrower: 'SP3Y4FBG02E39JM2Y9KA6NPTWW4MAP9HEBVYC40SD, new-height: u152320 }
 { borrower: 'SP13S4J3BKJESHFVBHHHFNAC5DKKHW6Q4A67N2W2C, new-height: u181320 }
 { borrower: 'SP2JEYQD9RKAP4SKYPBMCY4EMS37RJS92GZ8ND4DG, new-height: u150035 }
 { borrower: 'SP27D2PH9ZYCHPXQ9GYGT9X46PC92H2DH5SWV392D, new-height: u292343 }
 { borrower: 'SP3SNCYTS2S58VX9VYRM5ESKZW4M3XPK6QHVWQJTH, new-height: u150517 }
 { borrower: 'SP29JDBZVBA1NVN40R4RZJ2H4CXZJ75B51FJ7DXAP, new-height: u300844 }
 { borrower: 'SP2N5M1PJ5X9RJTW9QS808Z1F4576BYG3FVA91QY3, new-height: u184665 }
 { borrower: 'SP3NRG8DMXEPD4TMDX18PZM9PCPEH36QEZ83QDZPT, new-height: u313747 }
 { borrower: 'SP2DK6S5P9GEQVASGYXC98Y85FQ49J2ZGS74HH6WK, new-height: u314138 }
 { borrower: 'SPDPWCCSQ9G418V9BR2SVAC2V4709AS4A80WK28N, new-height: u152158 }
 { borrower: 'SP1M75K525BYRRK1VFQWMAPX7BYWFXE1NPQNETYK0, new-height: u269133 }
 { borrower: 'SP3381EH5BATN0EP1N7EG6JENWHPR44AW1VVNDB5S, new-height: u150050 }
 { borrower: 'SP8H1JPB3VWRXNS8ZWYZK09WRBXD9308Z88MBEC1, new-height: u152731 }
 { borrower: 'SP2AWV0FWMMYTQSFEATX5GXV5BFYH3B4FZNWNRZQ5, new-height: u167928 }
 { borrower: 'SP29FT0KRFACAHPEXSH1GYRG8W5EDQ7QVKV7A7K3P, new-height: u151813 }
 { borrower: 'SP1AAHHRZ4D47AAGAC74JFMEF70CRE93TVRHG2GZR, new-height: u144465 }
 { borrower: 'SP3SXNT2R5QHETRQMM7WGJC9P7DXGYCMEKH70C1HQ, new-height: u160698 }
 { borrower: 'SP2DH0WAMJ13BGGRDVEVYKDXMDDKXJYX79305GY1K, new-height: u159834 }
 { borrower: 'SP2KST3SKBKWHA6T8JW71HVEXA313S40Q0WCJ2SQB, new-height: u150047 }
 { borrower: 'SPCDCWBEZ9ZEK49BNMDE2MDMJ0E01W02H9SA4TVZ, new-height: u300585 }
 { borrower: 'SP1BEPTEAERHYHV333489Z5DGBJENF39T54DHPGE9, new-height: u145823 }
 { borrower: 'SP2A93WT3MRJC8DHKRYJE7AAKJES6QZF91VAQ1NZ7, new-height: u166056 }
 { borrower: 'SP1JBBGYFQ7M19C2C8N08HGP3M57NZYE3QZKKT79K, new-height: u150179 }
 { borrower: 'SP1BQZ7QBWMRCYYFB51F5SGH2NJJ33R3BJQA71AQ0, new-height: u243531 }
 { borrower: 'SP1EWNRKC89MM1Q0YE29DGXTJKWZSPR81D51BPHKH, new-height: u155954 }
 { borrower: 'SP2JACZ2382Y6FQXY2YWZJB8X7PJCEZEHJQDXCMW, new-height: u143020 }
 { borrower: 'SP1MQN174AA7YNKFNAE7J26TPE100F99KF1VGMG6P, new-height: u150595 }
 { borrower: 'SP1KJZJFT288BK1C8G5YXRZ17WFPB06N8K5TP6TXH, new-height: u150046 }
 { borrower: 'SP2XGT4XMKGB6DBN6FGZAVAXHBQT18F3G3WJ4TTTW, new-height: u150367 }
 { borrower: 'SP19VP6TGY5JS6YEFBZHMB1DRAVJE8F49HJ7N3ANN, new-height: u340783 }
 { borrower: 'SP3TXK5XWA5KSA4DJ0XGBT01BWPAVSN5B80TQM1Z0, new-height: u150387 }
 { borrower: 'SP36KK1WYNES6725ERKNCFHYFXBF81E8S73AAPKGP, new-height: u331137 }
 { borrower: 'SP1MM6AXFQJZ3120SH5TXNY2KMX3ZE9T0FA56NE86, new-height: u152096 }
 { borrower: 'SP191XBB3YSB93R9HXRSMM6YP47CCHRFT4GTRZQEH, new-height: u150046 }
 { borrower: 'SP36FRJSNZFC0ZQK3CXV66HK9GGT3962HPWZY7GHQ, new-height: u150035 }
 { borrower: 'SP24RW51MKAV6XRZ1JSMRYZTKDRE1FJZ5DNWCMXJ5, new-height: u150046 }
 { borrower: 'SM9RZJ7MKS24RX0CXFQS9G6N9ES8T9HJ8KE0XCQW, new-height: u186688 }
 { borrower: 'SP2EFWAM278MYN4HGJJH60G0A18M3JE8JSWAA3YD2, new-height: u150308 }
 { borrower: 'SP25SF2MPZZS8Q20QA3VTYJXTHAHCRNM5MSZYDNB0, new-height: u167267 }
 { borrower: 'SP10FVY8H3ZHKPERY1DYZNF0XNM1P7J8F1RAH70QD, new-height: u150397 }
 { borrower: 'SP2DQJJ1D1GWS9X1W6FZDSRG5FRTA0Z7TH583F2TF, new-height: u184656 }
 { borrower: 'SP7XZVVXFFHMMTWZ8WNNKNY0TSHM5FQVJDT707CV, new-height: u171093 }
 { borrower: 'SP1N37X28QF55WF5AYRCSF1XMV1MD1HCR82Q814W1, new-height: u151718 }
 { borrower: 'SPVGHVMWEE5PE0PJPQ0XVKAGCM5VRVEMSYKB3VY3, new-height: u144788 }
 { borrower: 'SP3KBQKWQXAH2S86EZZ48TDQM1WTSK7PNV5JMZDA, new-height: u142831 }
 { borrower: 'SPEA33WSEQK01FAEP4SMKF183APPQ2GE50VYV1HG, new-height: u172247 }
 { borrower: 'SP2WS28J7A725HPCGPFBG9F0973JQTQ8Z0FX3GDJP, new-height: u184748 }
 { borrower: 'SP1TCA7QER9J9NKCKBB78K48TADDFC2GXYM3QQV3X, new-height: u144965 }
 { borrower: 'SPVWS9RP9S7W52485DV5T6CVVW7T433SV0K4GSF0, new-height: u156521 }
 { borrower: 'SP2RQZDD02SVJ690DP7H065W46AK082AKWYNBKZ83, new-height: u150034 }
 { borrower: 'SP1A7N0043HV6HZVGK3MWYEGTJ0Z6CDZ3CTR7KMXA, new-height: u151108 }
 { borrower: 'SP24AGJFKRWK7EMYBFA7J4R2HXR7Z7883FT8KCHSK, new-height: u149680 }
 { borrower: 'SP215NR9D2ZHQK92FKBA7GHN84HB4TJVGN5PZ36P5, new-height: u150998 }
 { borrower: 'SP2F4S1Y4FA6D8QTG1DVAJ92VJ08R9EDJ3AQ2ZT2T, new-height: u150664 }
 { borrower: 'SP2RRX2EKSDFSZQNQEFJ0JXJGTJ7GGGB29KKE1AXB, new-height: u303167 }
 { borrower: 'SP15NQJMSVCASV1XG3N6W3DY874HQXMHSWDGTY62F, new-height: u306868 }
 { borrower: 'SP2WC3S1S4K04EVZXCDVHNTGMPZ8Y8T1WSD6X0KWA, new-height: u150030 }
 { borrower: 'SP38PWQVVQF0X1QJW7Q9SGGE3DG8BP80XGAM76HPP, new-height: u169702 }
 { borrower: 'SP27T4FF5ATTCN3HDY1QTD2PKNJSP1ACCCEGTW8S1, new-height: u185110 }
 { borrower: 'SP2S2S7YZRRJV2XSDVB1VQNCA86NQ4YYCXPYVGVFZ, new-height: u320398 }
 { borrower: 'SP8YQQPW6JP951HS8MWRKPZCH8Q0EEG502MFXQT5, new-height: u150501 }
 { borrower: 'SPQQV2QN22NAT45PREHH73T5RHF9HZJS7MC3EWCE, new-height: u150156 }
 { borrower: 'SP2Z7Z33B08W2364V0QV4Z1KYYWYHMNQHS34A76N4, new-height: u152148 }
 { borrower: 'SPZKACCZC5GMBTJBG35D8BCS7FJ5MGR6BN95GY7S, new-height: u150035 }
 { borrower: 'SP390ATGDGQFHE5YEWKXHCGQVXNAQP25JAXXZMWSC, new-height: u185110 }
 { borrower: 'SP3N2RARPZ4FZP7JHJTXF30NAHQ0T9EYG4QZG4DJ5, new-height: u342009 }
 { borrower: 'SP1A0T49CAVT2Q2WS3NJQWJXRR47GG2XMZ2Q2XK7F, new-height: u150035 }
 { borrower: 'SP12FXX43RDKMHD2BNQTT6XYQX4AMEEG52XT36N9S, new-height: u279696 }
 { borrower: 'SPT77KK4S527SK5HAC9M7QJX32X92QKNABS03G37, new-height: u149945 }
 { borrower: 'SP1JTJHCWCC1GSTS9K9J0TFV152KNKZPMTDA82ZHY, new-height: u150713 }
 { borrower: 'SP34T0DS0ECN32J0JK891YP6JQ8VZDHJ98MPR74GX, new-height: u186288 }
 { borrower: 'SP350TNVN5M7V4V5XN6DA1PF4MDQ87210G3Q2QTZ4, new-height: u171351 }
 { borrower: 'SP3SEXMGJ2CX2RBV7DNHKV7FAWDZJ47ZVAEZKWY2P, new-height: u328624 }
 { borrower: 'SP15DP7F52XA0HR3XRKFSYZ2H9CVQ3JG4Z9BYG9JV, new-height: u203972 }
 { borrower: 'SP10D4ZCFY7K94W0AHBQPD1MV662FAY7CRWM40VM3, new-height: u150046 }
 { borrower: 'SPNEFNJMHNQP1E0EAV2S64XC2F9F4Q05VP6QG90A, new-height: u313699 }
 { borrower: 'SP3509TBRM7VNMREKZQRYSC0CK38GZ3HQZDNT7M8Z, new-height: u174005 }
 { borrower: 'SP2PGDQK4EA3D1CJ8TGWQGQZD5BM4RY16P8YSFDNY, new-height: u145395 }
 { borrower: 'SPHPQCXGKPHM8XD5DRG5RKTXAGH6RP2C4DTNWMRQ, new-height: u221419 }
 { borrower: 'SP2XW5QP3M9E50CBE15G3BD7TW44J97ZCKMDR2N4N, new-height: u251598 }
 { borrower: 'SP30RK02S4MV7B6KEXCNYKXKBF8T3B1S5G20ZSV2K, new-height: u155984 }
 { borrower: 'SP20A3HVQBR8JT5N51KY356ZVBWMDXRZ8QWQFXDP4, new-height: u171797 }
 { borrower: 'SP39B4B4Y00X3BCV1HAG8D1CM4BKSHEKTD078ZMQY, new-height: u171713 }
 { borrower: 'SP2A5R0RPA43ECZK7QT4KMN22XG6XX7100ADA0R68, new-height: u328697 }
 { borrower: 'SP24Z9YPQ4TTP04Q0V77FNNK5MPWCRJQ2WQYR945D, new-height: u171180 }
 { borrower: 'SPD85KB6T7JPSQ4PAVRZF1H8123K4AXCE4T9Z3TS, new-height: u150363 }
 { borrower: 'SPW9J82WPRPHGNXGPH65Y0KVGG22E9T9G4TV20PG, new-height: u189218 }
 { borrower: 'SP3N0FHDQSHB9NQ37SJJ882BR4WSDQAXBASA3EDYB, new-height: u155863 }
 { borrower: 'SP1W8C25TZCXDQTAR7MZQPSNF8C73274DCNT2NWJZ, new-height: u155989 }
 { borrower: 'SP16ADAKN3XK9AVJ1VZX5QMR5E3FSZ88S77V9J0CC, new-height: u184656 }
 { borrower: 'SP2WP3D7T8D5QTF3NPCHMXT78JNHJTMCSWBY5MH2Z, new-height: u152712 }
 { borrower: 'SPZAZHB59ZPHTAS0H72H7517J9B8092D2MH7YRGW, new-height: u152231 }
 { borrower: 'SP3A7WGTT3G279RR90S6G9F4FNR0H9EX770VQF0GG, new-height: u301152 }
 { borrower: 'SPY9Q896GJ209XKATBPBZWXB90BF369DD2CM7R41, new-height: u167452 }
 { borrower: 'SP2X6RSHSEKB46ANMXRR7TAH03T7762QHY26DYMNS, new-height: u259381 }
 { borrower: 'SP1MRXHBP09CQZRGDTXREA4PJZRG9T9VG1HNXBVAW, new-height: u167243 }
 { borrower: 'SP1ECA5M0E3NEYGGV8PNY61VEDA20QPVN23P8HTVS, new-height: u155755 }
 { borrower: 'SP1G3R4G3Z1P8T3NQ56P2BV32VYBD879ZBCH9CQJ7, new-height: u170908 }
 { borrower: 'SP16HXWHTZEHHKBE12AB91PYJ63V0S696G3MZZM8K, new-height: u150056 }
 { borrower: 'SP3YEWQXPP6C4VPGJB8Z0N0XD4KS1TZ20QCBKB61K, new-height: u167560 }
 { borrower: 'SP6VCC91ZYYJ21MS4HG40HGC7QJ9AZ8QC1PK6FVD, new-height: u292865 }
 { borrower: 'SP16YGBC7HZDKQAFKJNHNZV1AMEYFANRYCTJ4ZFAC, new-height: u141513 }
 { borrower: 'SP33FQ9HBWJ8FRH5GNJEGTZCH3C43K9QHS3QAPCFF, new-height: u155890 }
 { borrower: 'SP1YGSVXM5PZW4S74W8MRATXJDHVK5MFZS9T0V7VY, new-height: u205097 }
 { borrower: 'SP2QTAN88V285ZK0GWQP34F8QJ98N4JP6X01S0N6E, new-height: u150078 }
 { borrower: 'SPQSZC1X38TTDT6VQ0K3Q0YZ419KWNYM2A76R2PC, new-height: u168531 }
 { borrower: 'SP2419ABMN44BQ275GD5GKESDPBWM4GX1BG8MY2A, new-height: u333632 }
 { borrower: 'SP3QPHTM7M8PRNDTHNQHWNTWHF1RM5BR5E47EZEGA, new-height: u155597 }
 { borrower: 'SP3G1FYEP0DAWM0BTX446Y92HVT7RJ8KB0MBG6VMQ, new-height: u289277 }
 { borrower: 'SP67NSCB8ZZMRQ7Z3V3K5VZNW9MMTJSQPAES3DDM, new-height: u155505 }
 { borrower: 'SP3PR8WPVBC0YXPSEVR78T0NPMT1Y01231QZRQSKK, new-height: u149910 }
 { borrower: 'SP3V9BARGK0PSJMRDCZQKA7TQ62J62PKVR66C1B9P, new-height: u167013 }
 { borrower: 'SP368221WC2VG7FBKXV9WZV1H392AWA3VXRZ9RRNN, new-height: u167168 }
 { borrower: 'SP37JBA3QSWYHR7HJMSKMJYV7ZYRKY0SGWXDT1E0W, new-height: u319784 }
 { borrower: 'SP1A02Z9HE18BXC2800RWXDQW4N7Y128CQHYKG8T5, new-height: u142500 }
 { borrower: 'SP8FJY9QA7478VB123KAZPC8C272HDH2FF3MNMMB, new-height: u346074 }
 { borrower: 'SP131T921X82DWY6EFGKXYM5ER9BPHQGN1NQWRWKG, new-height: u150666 }
 { borrower: 'SPJQMA7X6YD330M9F0FZ0210VY704156DEEA4P44, new-height: u167484 }
 { borrower: 'SP1V9KKM0KRE2V86Y506GF9ACWS7MJ81T9192FRPW, new-height: u167251 }
 { borrower: 'SP1ZJW1V01F36YRTFY4NQA8E497VK1YB89VM5Z7FX, new-height: u283012 }
 { borrower: 'SP31SXJHBV3YN94HQX7NR7TV9RBM8NSNYAGXG9R6X, new-height: u229103 }
 { borrower: 'SP1XHXFT81FMFW616W3JZ9Q1NC88VJXMXVWKGE7GP, new-height: u169975 }
 { borrower: 'SP3698XDXXY8GFSX1P6TH6S88Q66RWR2Y1GR3XQEQ, new-height: u170237 }
 { borrower: 'SPGW9BJR01CAWR50XP563KS4FCTD0AR8YBEQB81V, new-height: u327980 }
 { borrower: 'SP1Q4DD1WVPTDHXQAHR88GRZRKVEZMKT8J75Y6XH9, new-height: u168417 }
 { borrower: 'SP1R4MNE4F8DVZ2933MVGYSP9QD9F3D1EP7WNXQTK, new-height: u156681 }
 { borrower: 'SP255M5D0S3JZBY6XF2R8C5V1ZQA5FXQM6Q1A7EZ5, new-height: u166739 }
 { borrower: 'SPH434T4DTNWC4KPCMYDXYSH80CYCZMWB0EFCE1A, new-height: u166630 }
 { borrower: 'SPYEEJKTXMCZ6QKQYJR3WR924FE8SAZDTRX5DCF1, new-height: u177956 }
 { borrower: 'SP3S5JQKRS9N98AX195B4235MX4SMTJXVT2YTC8GK, new-height: u177791 }
 { borrower: 'SP2C22P7AJTZ5N931TEEARCHMR72Q5EKCNQ38ZVC5, new-height: u168543 }
 { borrower: 'SPP101EYVAH6XCNDBBVSVT5P22QZ8ZH80K3432J9, new-height: u155142 }
 { borrower: 'SP247A8K42S2YQW314MWWKV8N6FVPN8TMPZX0VEW5, new-height: u177852 }
 { borrower: 'SP1AF7TH2DDN2XCFFEVXKF15VVYW2X68CDQW3G4MK, new-height: u266970 }
 { borrower: 'SP2Q4XFMT9XZW4SEKR56BZ70Z6EF37AJ51QSH3SYK, new-height: u170902 }
 { borrower: 'SP3MYPXMX0B0R3TT6FA54NBRQGTHBESA98M7603XC, new-height: u155746 }
))

(define-public (set-borrowers-block-height)
  (begin
    ;; TODO: remove 
    (asserts! (var-get enabled) (err u10))
    (asserts! (is-eq deployer tx-sender) (err u11))
    (asserts! (not (var-get executed-borrower-block-height)) (err u10))
    ;; enabled access
    (try! (contract-call? .pool-reserve-data set-approved-contract (as-contract tx-sender) true))

    ;; set to last updated block height of the v2 version for borrowers
    ;; only addr-2 is a borrower in this case
    (try! (fold check-err (map set-aeusdc-user-burn-block-height-lambda borrowers) (ok true)))

    ;; disable access
    (try! (contract-call? .pool-reserve-data set-approved-contract (as-contract tx-sender) false))

    (var-set executed-borrower-block-height true)
    (ok true)
  )
)

(define-private (set-aeusdc-user-burn-block-height-lambda (aeusdc-borrower (tuple (borrower principal) (new-height uint))))
  (set-user-burn-block-height-to-stacks-block-height
    (get borrower aeusdc-borrower)
    'SP3Y2ZSH8P7D50B0VBTSX11S7XSG24M1VB9YFQA4K.token-aeusdc
    (get new-height aeusdc-borrower))
)

(define-private (check-err (result (response bool uint)) (prior (response bool uint)))
  (match prior ok-value result err-value (err err-value))
)

(define-private (set-user-burn-block-height-to-stacks-block-height
  (account principal)
  (asset principal)
  (new-stacks-block-height uint))
  (begin
    (try!
      (contract-call? .pool-reserve-data set-user-reserve-data
        account
        asset
          (merge
            (unwrap-panic (contract-call? .pool-reserve-data get-user-reserve-data-read account asset))
            { last-updated-block: new-stacks-block-height })))
    (ok true)
  )
)

(define-read-only (can-execute)
  (begin
    (asserts! (not (var-get executed)) (err u10))
    (ok (not (var-get executed)))
  )
)

(define-public (disable)
  (begin
    (asserts! (is-eq deployer tx-sender) (err u11))
    (ok (var-set enabled false))
  )
)

;; (run-update)
;; (burn-mint-zststx)

Functions (6)

FunctionAccessArgs
set-borrowers-block-heightpublic
set-aeusdc-user-burn-block-height-lambdaprivateaeusdc-borrower: (tuple (borrower principal, new-height: uint
check-errprivateresult: (response bool uint
set-user-burn-block-height-to-stacks-block-heightprivateaccount: principal, asset: principal, new-stacks-block-height: uint
can-executeread-only
disablepublic