;; 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: 'SP31RAA7NKDDWZS75ENHGHS2P9RNKM1XSVNJ45YSD, new-height: u152897 }
{ borrower: 'SP3HH362D85VFQZQW242XJBD4NVWKNP0TF678RSNB, new-height: u153058 }
{ borrower: 'SP1SRJP9BRZEC6K8SXPNHN2NFTEAT5JWNKQKP28RB, new-height: u152672 }
{ borrower: 'SP1Q576A61WCX1A8P8RNZ0WFNBS4YP2G6D1A49CBA, new-height: u161283 }
{ borrower: 'SP26N920AMMJB74HXM85DBYZV80G01R9WBM0SKDX5, new-height: u151120 }
{ borrower: 'SP1Z80QY12ZHKVV59KR72SJ6ZPJA2833VKW53JHD5, new-height: u269907 }
{ borrower: 'SP3TF1TFPJ8PE73DXB52AJAXCFR5XN9RT0Y0WQJ5S, new-height: u162165 }
{ borrower: 'SPR0ZSWXT1ADA7K4ZP7TX86P8WVGW0H606J110RH, new-height: u154925 }
{ borrower: 'SP3RDG2S392N86YNDRN0PWAZ6E3VEXA749PRV996B, new-height: u168572 }
{ borrower: 'SP3XQMANKR51TFB1WZZYBZ5M40A2CFK9P67BAQ7EE, new-height: u160163 }
{ borrower: 'SP3K0EE25S57TK269WJDYX9ZBEY763RFBX47TA69W, new-height: u313548 }
{ borrower: 'SP161281WXR94CVTSR3JBQWKY1BXNHTA6QQH656KY, new-height: u329167 }
{ borrower: 'SP2SHSJGH8WSSWQ7EQYMB1NV1NDXWRVQ9AFWQVP31, new-height: u160202 }
{ borrower: 'SPDGWZ4XQQ500QHF9B4W3247MTZEWE3WX80XCKH2, new-height: u166000 }
{ borrower: 'SP2H6B6ST4AD8263JE6XQTD827FMP2R7KTT3FYYBN, new-height: u200522 }
{ borrower: 'SP33506QDHEW6NK09CCG67NYNXKF8EFQNDEW2GXQB, new-height: u170241 }
{ borrower: 'SP334RNE1M86TC3A460NB848NET14EACXQ2260CXM, new-height: u202456 }
{ borrower: 'SP3R6AHE765A4EMTB03T8SQ4Y9XSA82346NKCGNB4, new-height: u160059 }
{ borrower: 'SP133VW3D9A5S6V441K2QPC6KNQ7FTQH6Y7C4CHE9, new-height: u165463 }
{ borrower: 'SP3JDJMDBAXK1PMP4TJXZJ8HVYK09393QG2WKN8QV, new-height: u200536 }
{ borrower: 'SP1ES0J06MWHJ0VS0MH1XWJR3V3Z64A1HWF0BQ6MA, new-height: u197796 }
{ borrower: 'SP2Q402MCF95W2V22CAV40HPRFQQ6P69SAD54RW6J, new-height: u159846 }
{ borrower: 'SP255R4NT3VXHGHHQP4A6YZK0RKA20ZXRRHDFYG1X, new-height: u200634 }
{ borrower: 'SP14HZGZN7BNV3PVSY201PCYRQDH1TDKFY1GPM4JN, new-height: u200522 }
{ borrower: 'SP2V9YWEMB3F66N931V8RR7MS48KEMES2BC6A107C, new-height: u200522 }
{ borrower: 'SPXGVV3XN53JDZ0DXZTVHGCJREVNY54CPTM30ZMA, new-height: u164679 }
{ borrower: 'SPEGKJA4XD1PTAX849346BMWRRQJT255H7EJPQX4, new-height: u160277 }
{ borrower: 'SP1PAGYEDF35JACKPBBTDRYDTV84ZAT0FAMCC38V9, new-height: u150407 }
{ borrower: 'SP3CPVVMJ3VSECMWY2N7E28QE9YKS2TZ1516WQBBW, new-height: u200587 }
{ borrower: 'SP1QJND5B1AKD62WJXWBZQ3Y3B0075A8W53GACZSE, new-height: u205173 }
{ borrower: 'SP37K1FRN4V34613B2QZCB1DYC8Y5WCWA825CC5R, new-height: u159554 }
{ borrower: 'SP2B8JQ5Y7CDWFQGP92ECE59Y7RHG989A8K123CMP, new-height: u159865 }
{ borrower: 'SP3GGNDQASTXH0SVTSWVSNS7BP3RZ4MDXX25YW80J, new-height: u166790 }
{ borrower: 'SP3H5XZ0042QKX5K5GQ7D481JN9348AFQ45FWCMSE, new-height: u202012 }
{ borrower: 'SPSD2H8MXP6BF60D43HHD6NS395JHH7HKCATEQM1, new-height: u159713 }
{ borrower: 'SP1S655TNCZ5MHB3BJ5FQ8K8FYKDT42ANJ13JHA5G, new-height: u159776 }
{ borrower: 'SPWY0ETYESNCH73RMVRGS2PQWT6SRGCA5CTEB4FG, new-height: u206439 }
{ borrower: 'SP3NA7GVKR2MXXSY4A9QJ65QY6D75BTG72A5T9EBA, new-height: u159418 }
{ borrower: 'SP21TNJGAC1X3Q8313SNXKTHREYF2D3HCNRGKGRM4, new-height: u197817 }
{ borrower: 'SPQ6S56JMVF48ENB6XFNV5Y1DAS00SZ61MNXG21D, new-height: u167335 }
{ borrower: 'SP6G8CM8JWF8WVJYVGN4BK9G25DMVVVR9HF7QKRV, new-height: u159846 }
{ borrower: 'SPWYGV8FK7WXYMJZF7SSYEXR1R1QA2FG05AVPY4H, new-height: u193684 }
{ borrower: 'SP3A4EV2XMSPXF48J6PNKT3KRT6YXAXHRQSE2H29K, new-height: u159865 }
{ borrower: 'SP1PGS9396MJEMT6QXZ6WSX2DXXG9K8KCY05W1DZB, new-height: u197251 }
{ borrower: 'SP35JQDC0S8DJEANBHBXV4QEPTS9F7QZ33XP6T6RT, new-height: u159846 }
{ borrower: 'SP3F6KXYE41W2GBPGEZ5Y9CDGHVKG7CT97GY6G2NF, new-height: u159885 }
{ borrower: 'SP2AGHN926XTT6ADKVKEK49J30M78C396W7ECA3Q9, new-height: u180854 }
{ borrower: 'SP1FARHKYYEEDY9ZDXJ1Z26ADSA2MCDQ4PES1VXJH, new-height: u159537 }
{ borrower: 'SP284MQ5HZJ22NQRWVMT2MB9YXCF7S1DDZRDPXB7Z, new-height: u174121 }
{ borrower: 'SP27HP4CGDGK6MXS03ENAS64DN0NYNZFDXTXA16VM, new-height: u159713 }
{ borrower: 'SP3A0ENV1N73PC66CGREFRVQTP5SVYS48382XFZEN, new-height: u159454 }
{ borrower: 'SP16CVJT4K2A4Y77T71ZNA13SFX7FB9YJRQ58YGZ4, new-height: u166169 }
{ borrower: 'SP2VHK8HS0BGZBPCW0J4XME6M1QEFGVZMMC8TRD14, new-height: u159709 }
{ borrower: 'SP1F8ZDT9JXPD5DY3J0RC54DWZSAXETD6QZ98KC4C, new-height: u159709 }
{ borrower: 'SPMMYPSV29T1Y0YC0CW217H72YAJH08MPCXXZPXH, new-height: u327532 }
{ borrower: 'SPQMJEWMB5ZZKNFNWDCN3P73KANTPDQAH9VDQFSQ, new-height: u203236 }
{ borrower: 'SP2P61YTEYQJFY93VQ05WPMGZWPZ49DBAK12G45P7, new-height: u159161 }
{ borrower: 'SPQDH2K448XA9ZF5JEA3SDZE8GV56Q2NWEK7MC1M, new-height: u159408 }
{ borrower: 'SP3GS0VZBE15D528128G7FN3HXJQ20BXCG4CNPG64, new-height: u159269 }
{ borrower: 'SP3NG5RS721RVVV425KW0YZYQNS9TR9373GVA25HV, new-height: u160770 }
{ borrower: 'SP374R5R2C97XNGZ2JDJV5S86THA7MBWNZ0140KCV, new-height: u203236 }
{ borrower: 'SP1EQFEYMXFMCCCMQJ6FCNQY65F0KQCJ4DTVPQRDF, new-height: u201636 }
{ borrower: 'SP12TYM182WPP4R73V0542CS8S2RAZRGKQ0NQHFBT, new-height: u153987 }
{ borrower: 'SP2VE39M87CWWQZ82EX5Y4P8JMEH0PPXPPJC09N3W, new-height: u209219 }
{ borrower: 'SP3DX0AG3HJNFNTKZ4A64W1A579ETY1N2JN7WHTC1, new-height: u205250 }
{ borrower: 'SP11877TX1W8QQQH5BXJRD47Q5ZF4WMVP7NF0Y9K9, new-height: u205118 }
{ borrower: 'SPNV3KJ2JSN6ZE8S812K778TQ9X2MGRAW7AX15G7, new-height: u185885 }
{ borrower: 'SP2GP1FQ7TPTTHJYCCJKE5C9MT2VXRN50KZ4MJ63N, new-height: u149736 }
{ borrower: 'SP33QY8M0QQXZKV2AHKY3KJFY5WK16CPK5XJ49F52, new-height: u158882 }
{ borrower: 'SP1E530A9WSDDKWGTV37BQXGX5PRJPQ951EYGK2HA, new-height: u208434 }
{ borrower: 'SP1ZCA2YV8TGX1NCJ8K04P5WJSGJVM1XD44APZD9Q, new-height: u168177 }
{ borrower: 'SPH7P7209RYS3JTH0WA6JAYKME4HEJFNF0C9EEP6, new-height: u208341 }
{ borrower: 'SP37GN4JPWNNC8EQ956F6K76MCPVDXSRTWY4TK6A1, new-height: u209021 }
{ borrower: 'SP36FES4VZ0CRSSFASE7GPSDK2EZN65V39MEBQDHX, new-height: u208434 }
{ borrower: 'SPHR6AQM483RCN6RQZA82B21FWA2SDXXHBA9K99S, new-height: u205250 }
{ borrower: 'SP8DS6EEP9G6WJT96YVFRKQ6HSNKQDK22X71K0V1, new-height: u205173 }
{ borrower: 'SP26M0D73ZRBKCW385ZHP02DBGWCAY4Y4FFPFWEGK, new-height: u206439 }
{ borrower: 'SPX7YGNQF4WG0QDFE8R5CCM36NDSQ6SK9APJ3AA7, new-height: u176871 }
{ borrower: 'SP42H2EKD3Z4GHFWZB6Q4BYSN5XYE10DMK0K2P26, new-height: u208434 }
{ borrower: 'SP3Q8DE0858VWF82Z8VHQMXD8RGR3120JG6XG81QP, new-height: u158674 }
{ borrower: 'SP3N3W86G5RGMFPW8ZE6SJJ18NYY92R54D1YT01X5, new-height: u200043 }
{ borrower: 'SP31XE07MFJ0R8XQAGBQFSX8YNGXQECPW4YETYN56, new-height: u209219 }
{ borrower: 'SPRGKWHWMD4XSZH9Q8F2JA6M9ZP1CV0PZXBJK11T, new-height: u211036 }
{ borrower: 'SPD0DN2RPMB6NG0SS6G56D0F9QKAVJ9M425TMZA6, new-height: u205118 }
{ borrower: 'SP20NFWMTV1WKRQT780YK7TCTQ2F9B2N7J2JYHFGJ, new-height: u160458 }
{ borrower: 'SP1MSYSDENTAA1G33XB03DE6RA3HG7NKF38R3G5Y9, new-height: u206439 }
{ borrower: 'SP1KJQQ4E02M2KEHDD0A7Q3K5YZYN8EMWPGRV66BF, new-height: u224689 }
{ borrower: 'SP3E35YKH9J3223GQ0CPXSSX15GDANZFN3PMRV4S7, new-height: u174005 }
{ borrower: 'SPERRR7NT5KA3QQPGDR5RZZMJKPZRMRBGS445H4A, new-height: u208403 }
{ borrower: 'SP2SJZMDHHG2F2FFBB0FQ9YYCD6XMX409HRXVNREQ, new-height: u144787 }
{ borrower: 'SP2M8THMJDTMT27QJ6BMZN5V8PG1C3FGXS39YA1AB, new-height: u208341 }
{ borrower: 'SP2VHDJG4HPW0B9T2RGZNRYPXK2K2BE5AECWNYWV3, new-height: u206733 }
{ borrower: 'SP3DP35Q8NFCZ5PEV1XPBWS4VJ1HMGVP4H2ZTG34M, new-height: u158686 }
{ borrower: 'SP3CDAQM3XB1EFY9QYK5VN7JERPN3ZF1Y4GXV3EN6, new-height: u208238 }
{ borrower: 'SP3WFW3G78JSYKFEYVTXJSBG9MYDG706DN00SR043, new-height: u209650 }
{ borrower: 'SP3DZWHXZF12MTW3WP8TN3KA5XH09TK8QNKC1SD9G, new-height: u205173 }
{ borrower: 'SP23FXJ9G1D5GYWBARAW269N5WGF75EBECFXFHZ7D, new-height: u224689 }
{ borrower: 'SP3ZW442AHT23SWB1NZ6QMKS17BQYWCTZS7371864, new-height: u208403 }
{ borrower: 'SP1VAKZQ2934G25VMRQEFE1065XEARPT3C2KXCWMW, new-height: u197708 }
{ borrower: 'SP26719B4034HGEH5BYKNVXXXDV9AT6J068JDFM2G, new-height: u205173 }
{ borrower: 'SP3QB90S58982H2ZQX5EXTEKKBJSPCTSVXKHDN644, new-height: u205173 }
{ borrower: 'SP3RRGMNH6NVP2NNKTN9QQBVXWZJ2H9XDP6Y38GMG, new-height: u309014 }
{ borrower: 'SP3PG6WX96X2QAYCA70WVVZHBSQHMECW50W9AMCV6, new-height: u271282 }
{ borrower: 'SP2A7JBTA21WPFVRDSRRAS187AYRAG5FMXH4Y6YE0, new-height: u223931 }
{ borrower: 'SPDX6RMBC9MTMAXCP8C68N58142EYC3J0ENMTEND, new-height: u220297 }
{ borrower: 'SPW0CHYR5S4J0DM03ACH2PH9ZHPFJ776Z1EQBPSV, new-height: u171434 }
{ borrower: 'SPEZZHE2H0ZV31A82NDNETNRJ5RD10GDXJ4BME4Z, new-height: u203236 }
{ borrower: 'SP2YX1568ZQK8JBQNJ7947XCNNWAZGJYZFFBW5VWA, new-height: u211360 }
{ borrower: 'SPJG013EY7YRJRZZXBE6VBR5KJ5Q6ZNVTDSGHBJJ, new-height: u158809 }
{ borrower: 'SP1S1GHS6PBTCQN4VDMASZFE9GT2K2DP7QZ39D25F, new-height: u223752 }
{ borrower: 'SP3S3MR1FSSB0A64PAF7ETT64PJQXVHF223RAKGYS, new-height: u220512 }
{ borrower: 'SP2FCZX4RM3SEP0YD6B56Y3SPCFMJJJZVY493GQWZ, new-height: u164145 }
{ borrower: 'SPRESMRPJD3BZT09SWNK6SWGH2JF76M1N582FN8R, new-height: u184748 }
{ borrower: 'SP34M6KFH1D9H3VJM1G7S1K057PVFCT3GNHRK5RN1, new-height: u211360 }
{ borrower: 'SP23AG7C2K5PQB547CF6AP280N3ZNNAAZE5JPZ11W, new-height: u223854 }
{ borrower: 'SP3S08PWPWHJVZQFKWSBM007Z553MVFCF44ZYMK70, new-height: u211360 }
{ borrower: 'SP3YSPMQ7EANV6CTV0PEBNFJ8DAAZE8AGCS5VCQJB, new-height: u211360 }
{ borrower: 'SP2RHSHTNXXYY3B3KGJ61JGV4AB5PSHDG0GXY7DBM, new-height: u220193 }
{ borrower: 'SP29P31FFH93AV36XYQXQFRJH6G7DAG3S78FAX94Q, new-height: u223724 }
{ borrower: 'SP3BKC7BDNKX08018T93BZRAM7MBWEM4QC5TWTS01, new-height: u218925 }
{ borrower: 'SP61XQ5VC22VBC8A685W3JFCX3TD366GKGN11WSX, new-height: u158363 }
{ borrower: 'SP341ME1ZVR2MP40246BTHBQJYZAYBSQPN980DTK1, new-height: u208403 }
{ borrower: 'SP1MVRXED26PVN88DSFPNBVTQMVSMCGQ21HZPC7BG, new-height: u218900 }
{ borrower: 'SP167DH2FSHMVS3AXXJ50T48Y1VKDPYNTZGEXC6FW, new-height: u211360 }
{ borrower: 'SPZKJ0JYQJ7HPG43ZYA6520ZAD13ET55NZMNZ1ZE, new-height: u211360 }
{ borrower: 'SP2YDP13MXWC61FPAWSZASA49E43ZZA2P3G3M5P18, new-height: u214228 }
{ borrower: 'SP1G7SS5NSR89JZVQR8F62GQK7MP86D53823NB0A5, new-height: u207837 }
{ borrower: 'SPEHHQBZPA4HY8NTA3WP54WGGP0X4C30HCFMKZ20, new-height: u158527 }
{ borrower: 'SP24Q4PHRJR2XA9W04TM51AFVT59E44VT0Q0ABFFH, new-height: u224583 }
{ borrower: 'SP21WZ9DAQHMS9B3TX3VJ1D89EYP0RQXA34QPB69T, new-height: u196955 }
{ borrower: 'SP3ZTEQ37YPJFFR43MSG3S3BYKP98W93338F0AZ9S, new-height: u212042 }
{ borrower: 'SP3FC1PYKGWRHX5NQDFV7DDVMJGFFHTCSS9FDFZ59, new-height: u220512 }
{ borrower: 'SP2D6WH9SZ7GXDRSK4RZXGXFR54207Y0YSCMYC4HG, new-height: u218925 }
{ borrower: 'SP3VR3GZ37ACP52FXQ10396BZS627QYYN94QGXV59, new-height: u212084 }
{ borrower: 'SP2J8Z373ZY2JN5YRMPCEBMGDC8FQXH23796FKB0B, new-height: u211360 }
{ borrower: 'SPYTFAGR3808H1350053KWRYAMR8SYAPTMY7T87N, new-height: u211360 }
{ borrower: 'SP1KYRWD2SCFKTKNFDS6WHVJVF12DDCBBFTCSTC3B, new-height: u224438 }
{ borrower: 'SP33F5TMX4TTX3SXSS8V3TXE4FNCFX1B1DRF64JJH, new-height: u166544 }
{ borrower: 'SP3RW6BW9F5STYG2K8XS5EP5PM33E0DNQT4XEG864, new-height: u254718 }
{ borrower: 'SPMTGRW374B5HYWNVHNQ69CDR5J81X0JZ8FG4981, new-height: u211360 }
{ borrower: 'SPMA0EH4FZGPA1FJBQXJREE22CBKYCBBVH8M55TV, new-height: u163379 }
{ borrower: 'SP2Z82QFEEVF9CM5QGQSVRTQRTCVDP9B8JHEPWARG, new-height: u211360 }
{ borrower: 'SP14WZEHZSP2JH861GT0CQ56YJR8JGTAA5RHYX2FX, new-height: u208162 }
{ borrower: 'SP1QA1QPK93XB83ZYXKR729ZX2Y9R4S80J8HV1WD6, new-height: u211036 }
{ borrower: 'SP2QZT3P5NZR2WG910S84B3YW3G6ES5WZ7Y9Z6B0R, new-height: u208341 }
{ borrower: 'SP19JJBMB7B5BZ8ZENAFREFWZ4YPDDBV1FDE07264, new-height: u212102 }
{ borrower: 'SP371PYZ83YNB7ZZN6EXSG2X46HWRXAY3PG6XFY5T, new-height: u211360 }
{ borrower: 'SP2JAWRXBJTETMYFRDMVT11NA4MN5DWDXX9928NY5, new-height: u191393 }
{ borrower: 'SP1X54RCNJS8GYHQ7ENN11JTQV74BVX15C5QMN1A, new-height: u184132 }
{ borrower: 'SP3P1P13G798Q3JQW753QMR5DRN2SWGXRT7GEZKXX, new-height: u212084 }
{ borrower: 'SP3DPXHEAQ34YVNC7NADP1BSYXWSDTW9KW6PGTAM0, new-height: u167882 }
{ borrower: 'SP1JQHZ30YKZ0P0JWCN5G4PP21J9SXVNP2WQ13R5Q, new-height: u211360 }
{ borrower: 'SP2GR4FFCNZ5FATP98Y50Y3V3J2F1NKQ8AP9GBP0W, new-height: u211360 }
{ borrower: 'SPDVCHPD7HQKZETX2RQKMXXRK03PR5ATX9YNMS87, new-height: u173454 }
{ borrower: 'SPJD4S4XV0A2TPMR0JBSD783Y8ENCP0DBAPKJ10Z, new-height: u220343 }
{ borrower: 'SP03M23WXVQ4416T4AJKDHY64R311E9NZYF2QD8J, new-height: u170362 }
{ borrower: 'SP9V2WP3G21J3XZV5CRCEVWDQTG259739SX569AY, new-height: u208238 }
{ borrower: 'SP15GD4DFAG4X5M0CYNAYMHDPKMMT9Z0NCXNH16HW, new-height: u205911 }
{ borrower: 'SP32KDHV15T3HT5R70PK4W1VDCG046GW9YGHGMG10, new-height: u220261 }
{ borrower: 'SP21PTW33GW7K884735R4SH96RPPWRE7VXHRFVQVE, new-height: u208434 }
{ borrower: 'SP21JTEABHK6KK6ZFR9AFDA02GYYP984T5QVB9ESQ, new-height: u164245 }
{ borrower: 'SP11JS1MKCFR0GCZXTJW52B87QK0GZWA2C2VA2SY9, new-height: u208403 }
{ borrower: 'SP9BZJYW2JRBP3BHHG3SWNNSYWFQ1QH4MD0XWG9R, new-height: u204906 }
{ borrower: 'SPRSMJ5QYQM8T0YRJGAFZXRFXN3K6PCDRDYE6B2T, new-height: u324118 }
{ borrower: 'SP35QTH6NRQTP4A0E8GFFG9EHR78R2SM1DKVMP2R0, new-height: u184699 }
{ borrower: 'SPPD271BSB67EB63AJY5HH23BMCDPXVAGVBM6B0N, new-height: u159431 }
{ borrower: 'SP1K1E1FZJAMVJ5R3PBWX7MQDPFC9H8B1AJ7YXHHT, new-height: u157913 }
{ borrower: 'SP1JFDZXYVWBWSDA8NHHT4D0R2BENZ06X1MC5XBZ4, new-height: u197882 }
{ borrower: 'SP2B6EEWTJ7MVFYJERR8VF1C7RB5N4VZY5WDBA35E, new-height: u160769 }
{ borrower: 'SP17WCRVRXZ2WKQ4FVKJVFTSDYT9VRWC5GPSWZ7KE, new-height: u204688 }
{ borrower: 'SPYYGACE3AXA11168AT37Y9CV9V9SWKJA3R13D1H, new-height: u208403 }
{ borrower: 'SP86RGM9GEE1TVWEWJ0HFE1S1ADFN4WPTZYGS5P4, new-height: u197708 }
{ borrower: 'SPGTK5GDQH0BCGZ5A39K34P7WZ5GY4TGNGH1RPPZ, new-height: u157546 }
{ borrower: 'SPZ4BE75SQD2WWM1J4K6QFAXXKK0S39GGBXAQVYV, new-height: u153418 }
{ borrower: 'SP2AJ6R5EN5ETQRZAJA7751WEN28TCHNAW2N617MQ, new-height: u157884 }
{ borrower: 'SPJGFBT21SZ5M62JGZ8KGY2VVK001BMA9D31G01X, new-height: u184693 }
{ borrower: 'SP151WSSSXWWHRD39S433P6A5XGHGYHVWPFVW8HX7, new-height: u150878 }
{ borrower: 'SP1A2XFKZ9KG3Y9SSJK7WMJFJM7RA71M5AR1V5GB, new-height: u159633 }
{ borrower: 'SP32N0QKN7GVVHZ4HS3QQV9H8ZTHAMZ2JZR2AB7XM, new-height: u157435 }
{ borrower: 'SPMR93J5G7M76EYKZG4DRQYZEZENYM6XMFXSCVC2, new-height: u167937 }
{ borrower: 'SP23T2MHR9HW9XZW4TWZKRYZZ6FK33GH4K4869R66, new-height: u300102 }
{ borrower: 'SP1A3C02M44YXV6NB049PSBE2V7PZ6MNMAK4Q9AZF, new-height: u300102 }
{ borrower: 'SP3TT9FFGVEN0GHC6F208KFNV7DCFDFB37PF5NDR4, new-height: u292413 }
{ borrower: 'SP2199VESQD8NT7TTA6KFQTRV9Q61XA3BW1B9V6WX, new-height: u184139 }
{ borrower: 'SP2F48735BJJMJFSY9R05WCANKHZZDQ0PPK285GR5, new-height: u300102 }
{ borrower: 'SP2VY1QVQFK36X6Z7KAZNWZ2GMRNZM9CH6NTMV8Z9, new-height: u159458 }
{ borrower: 'SP11HP6JWVH61F64RR39B33TYPG82VATXTFX20YSJ, new-height: u158936 }
{ borrower: 'SP2PX1ASZ1A1B805PBZJCF1QDX3RKQ5NDHBPW72T5, new-height: u157073 }
{ borrower: 'SP27S9VTEADYFJS2G8GH21QADPZ9445NCHR86MG7C, new-height: u157072 }
{ borrower: 'SP1RJ35XQDC8CMB7P1XPHBFBGNSH0GK99PVEFQATD, new-height: u156878 }
{ borrower: 'SP3F6WQZS7YF15K31BGAV113J4ZYCNXFKDZR5A6TB, new-height: u157072 }
{ borrower: 'SP33B5MBQGXA7G1X87Y5ZQHFDEFMWBTZGM2DZCPY1, new-height: u157072 }
{ borrower: 'SP330R59339Q2WQNVX43Z5AN1GCYMFJ9PN3K66YQD, new-height: u204386 }
{ borrower: 'SP2CGDSKJX6N1QJ2ENF7E9QG94HVGDRAM1YA7R0M4, new-height: u156878 }
{ borrower: 'SP3TMV68FTXT02591VC2446SE22EQ895F7F9B2AQT, new-height: u157036 }
{ borrower: 'SP2GG01D9KJD83T2J2WVH16M5WZG5PXEC2SHDZ2V0, new-height: u156878 }
{ borrower: 'SP33KSKH3AKM8RDEN68HKSHT2Z365ZMM3AXQ5A08G, new-height: u156876 }
{ borrower: 'SP3RYB9ZR6S9Z36FNYG9SAE5MKKHJSJZZFJZ23777, new-height: u156885 }
{ borrower: 'SP3R3X5M1H1WR8K2H3D82PTYAJ8S3K8QS36K16TCT, new-height: u157864 }
{ borrower: 'SPW25HV76Z5BVGVP4SR7Y64GHW8Y670YTD9MER8C, new-height: u156878 }
))
(define-public (set-borrowers-block-height)
(begin
(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-wstx-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-wstx-user-burn-block-height-lambda (wstx-borrower (tuple (borrower principal) (new-height uint))))
(set-user-burn-block-height-to-stacks-block-height
(get borrower wstx-borrower)
.wstx
(get new-height wstx-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)