/
arkadiko-vaults-migration-v1-3.clar
67 lines (56 loc) · 1.97 KB
/
arkadiko-vaults-migration-v1-3.clar
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
;; Vaults Migration
;; Migrate V1 to V2
;;
;; Vaults system V1 is stopped, after which the data is stored off chain.
;; Data is added to V2 via this contract.
;;
(use-trait oracle-trait .arkadiko-oracle-trait-v1.oracle-trait)
(use-trait ft-trait 'SP3FBR2AGK5H9QBDH3EEN6DF8EK8JY7RX8QJ5SVTE.sip-010-trait-ft-standard.sip-010-trait)
;; ---------------------------------------------------------
;; Constants
;; ---------------------------------------------------------
(define-constant ERR_NOT_AUTHORIZED u990401)
(define-constant ERR_MIGRATE_FAILED u990001)
;; ---------------------------------------------------------
;; Pool Liq
;; ---------------------------------------------------------
(define-public (migrate-pool-liq-funds)
(let (
(usda-amount (unwrap-panic (contract-call? .usda-token get-balance .arkadiko-vaults-pool-liq-v1-1)))
)
(asserts! (is-eq contract-caller (contract-call? .arkadiko-dao get-dao-owner)) (err ERR_NOT_AUTHORIZED))
(try! (as-contract (contract-call? .arkadiko-dao burn-token .usda-token usda-amount .arkadiko-vaults-pool-liq-v1-1)))
(try! (as-contract (contract-call? .arkadiko-dao mint-token .usda-token usda-amount .arkadiko-vaults-pool-liq-v1-2)))
(ok usda-amount)
)
)
(define-public (migrate-pool-liq
(stakers (list 200 {
staker: principal,
amount: uint,
}))
)
(let (
(migrate-result (map migrate-pool-liq-iter stakers))
)
(asserts! (is-eq contract-caller (contract-call? .arkadiko-dao get-dao-owner)) (err ERR_NOT_AUTHORIZED))
(asserts! (is-none (index-of? migrate-result (ok false))) (err ERR_MIGRATE_FAILED))
(print { migrate-result: migrate-result })
(ok true)
)
)
(define-private (migrate-pool-liq-iter
(stakerInfo {
staker: principal,
amount: uint,
})
)
(let (
(staker (get staker stakerInfo))
(amount (get amount stakerInfo))
)
;; Save pool stake
(unwrap! (contract-call? .arkadiko-vaults-pool-liq-v1-2 migrate-pool-liq staker amount) (ok false))
(ok true)
)
)