Source Code

;; SPDX-License-Identifier: BUSL-1.1

(impl-trait 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.proposal-trait.proposal-trait)

(define-constant ONE_8 u100000000) ;; 8 decimal places

(define-constant emissions (list 
	{ token-id: u13, amount: (* (+ u141900 u103200) ONE_8) } ;; STX-ALEX
	{ token-id: u44, amount: (* u103200 ONE_8) } ;; ALEX-LiALEX
	{ token-id: u104, amount: (* u283800 ONE_8) } ;; aBTC-aUSD
	{ token-id: u120, amount: u0 } ;; aBTC-LiaBTC
	{ token-id: u43, amount: (* u10000 ONE_8) } ;; ALEX-LEO
	{ token-id: u171, amount: (* u10000 ONE_8) } ;; ALEX-WELSH
))
(define-constant pool-token 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.token-amm-pool-v2-01)

(define-public (execute (sender principal))
	(begin
		;; Set farming emissions
		(try! (fold set-farming-iter emissions (ok true)))
		
		;; Finalise ALEX token migration for the following addresses
		(try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.migrate-legacy-v2-wl finalise-migrate 'SP242EYG60RDPPY74JSZRZGT3VEAZAVY2XJ37HJW9))
		(try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.migrate-legacy-v2-wl finalise-migrate 'SP1NGMS9Z48PRXFAG2MKBSP0PWERF07C0KV9SPJ66))
		(try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.migrate-legacy-v2-wl finalise-migrate 'SP3TTKA1M6XH00DZXEZK3B77TA957DBDPY1K6321W))
		(try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.migrate-legacy-v2-wl finalise-migrate 'SP22AB49K0D6VBHZY7BB2FBH38XFHNGHXG4MTPCED))
		(try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.migrate-legacy-v2-wl finalise-migrate 'SP3YPW9ME7VJJBR0K1S71F92P0E8BW7GNZ9MAYRA2))
		(try! (contract-call? 'SP102V8P0F7JX67ARQ77WEA3D3CFB5XW39REDT0AM.migrate-legacy-v2-wl finalise-migrate 'SPZ8XVGVFSQXXM5ZN7VQWCX19TDQ36QDPFW4P83R))
		
		(ok true)))

(define-private (set-farming-iter (farm { token-id: uint, amount: uint }) (prior (response bool uint)))
	(match prior
		ok-value
		(begin
			(try! (contract-call? 'SP1KK89R86W73SJE6RQNQPRDM471008S9JY4FQA62.alex-farming-v2 set-coinbase-amount pool-token (get token-id farm) (get amount farm) (get amount farm) (get amount farm) (get amount farm) (/ (get amount farm) u2)))
			(print (merge farm { reward-cycle: (contract-call? 'SP1KK89R86W73SJE6RQNQPRDM471008S9JY4FQA62.alex-farming-v2 get-reward-cycle pool-token (get token-id farm) tenure-height) }))
			(ok true))
		err-value (err err-value)))


Functions (2)

FunctionAccessArgs
executepublicsender: principal
set-farming-iterprivatefarm: { token-id: uint, amount: uint }, prior: (response bool uint