/
xverse-member8.clar
54 lines (43 loc) · 1.63 KB
/
xverse-member8.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
;; SPDX-License-Identifier: BUSL-1.1
(define-constant err-unauthorised (err u5000))
(define-data-var pool-reward-pox-addr
{ hashbytes: (buff 32), version: (buff 1) }
{ hashbytes: 0x827a04335a9eb22cb46979f180670c8e7ba453b5, version: 0x04 }
)
(as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-3 allow-contract-caller 'SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX.pox-pools-1-cycle-v2 none))
(define-read-only (is-dao-or-extension)
(ok (asserts! (or (is-eq tx-sender .lisa-dao) (contract-call? .lisa-dao is-extension contract-caller)) err-unauthorised))
)
(define-public (set-pool-reward-pox-addr (new-address { hashbytes: (buff 32), version: (buff 1) }))
(begin
(try! (is-dao-or-extension))
(ok (var-set pool-reward-pox-addr new-address))
)
)
(define-read-only (is-strategy-caller)
(ok (asserts! (is-eq contract-caller .public-pools-strategy) err-unauthorised))
)
(define-public (delegate-stx (amount uint))
(begin
(try! (is-strategy-caller))
(try! (as-contract (contract-call? 'SP001SFSMC2ZY76PD4M68P3WGX154XCH7NE3TYMX.pox-pools-1-cycle-v2 delegate-stx
amount 'SPXVRSEH2BKSXAEJ00F1BY562P45D5ERPSKR4Q33 none none (var-get pool-reward-pox-addr) none)))
(ok true)
)
)
(define-public (revoke-delegate-stx)
(begin
(try! (is-strategy-caller))
(match (as-contract (contract-call? 'SP000000000000000000002Q6VF78.pox-3 revoke-delegate-stx))
ok-val (ok ok-val)
err-val (err (to-uint err-val))
)
)
)
(define-public (refund-stx (recipient principal))
(let ((balance (stx-get-balance (as-contract tx-sender))))
(try! (is-strategy-caller))
(try! (as-contract (stx-transfer? balance tx-sender recipient)))
(ok balance)
)
)