Skip to content

Commit 6fc1a10

Browse files
committed
chore: ignore local settings and add examples
1 parent 4f709b1 commit 6fc1a10

11 files changed

Lines changed: 508 additions & 183 deletions

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,12 @@ yarn-error.log*
3333
# env files (can opt-in for committing if needed)
3434
.env*
3535

36+
# local settings (keep mnemonics private)
37+
settings/*.toml
38+
39+
# clarinet deployments output
40+
deployments/
41+
3642
# vercel
3743
.vercel
3844

Clarinet.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@ telemetry = false
55

66
[contracts.streak]
77
path = "contracts/streak.clar"
8-
clarity_version = 4
9-
epoch = "latest"
8+
clarity_version = 3
9+
epoch = "3.1"

contracts/streak.clar

Lines changed: 59 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
(define-non-fungible-token badge uint)
1313

1414
(define-read-only (get-current-day)
15-
(/ block-height BLOCKS_PER_DAY)
15+
(/ stacks-block-height BLOCKS_PER_DAY)
1616
)
1717

1818
(define-read-only (get-streak (user principal))
@@ -46,41 +46,69 @@
4646
(define-public (claim)
4747
(let (
4848
(current-day (get-current-day))
49-
(last-day (default-to u0 (map-get? last-claim-day tx-sender)))
49+
(last-day-opt (map-get? last-claim-day tx-sender))
5050
(current-streak (default-to u0 (map-get? streak tx-sender)))
5151
)
52-
(if (is-eq current-day last-day)
53-
(err ERR_ALREADY_CLAIMED)
54-
(let (
55-
(new-streak (if (is-eq (+ last-day u1) current-day)
56-
(+ current-streak u1)
57-
u1))
58-
)
59-
(map-set last-claim-day tx-sender current-day)
60-
(map-set streak tx-sender new-streak)
61-
(let ((badge-result (if (is-eq new-streak BADGE_STREAK)
62-
(mint-badge tx-sender)
63-
(ok none))))
64-
(match badge-result
65-
token-id
66-
(ok {
67-
streak: new-streak,
68-
day: current-day,
69-
badge-minted: (is-some token-id),
70-
token-id: token-id
71-
})
72-
err-code
73-
(if (is-eq err-code ERR_BADGE_ALREADY_MINTED)
74-
(ok {
75-
streak: new-streak,
76-
day: current-day,
77-
badge-minted: false,
78-
token-id: none
79-
})
80-
(err err-code))
52+
(match last-day-opt last-day
53+
(if (is-eq current-day last-day)
54+
(err ERR_ALREADY_CLAIMED)
55+
(let (
56+
(new-streak (if (is-eq (+ last-day u1) current-day)
57+
(+ current-streak u1)
58+
u1))
59+
)
60+
(map-set last-claim-day tx-sender current-day)
61+
(map-set streak tx-sender new-streak)
62+
(let ((badge-result (if (is-eq new-streak BADGE_STREAK)
63+
(mint-badge tx-sender)
64+
(ok none))))
65+
(match badge-result
66+
token-id
67+
(ok {
68+
streak: new-streak,
69+
day: current-day,
70+
badge-minted: (is-some token-id),
71+
token-id: token-id
72+
})
73+
err-code
74+
(if (is-eq err-code ERR_BADGE_ALREADY_MINTED)
75+
(ok {
76+
streak: new-streak,
77+
day: current-day,
78+
badge-minted: false,
79+
token-id: none
80+
})
81+
(err err-code))
82+
)
8183
)
8284
)
85+
)
86+
(let ((new-streak u1))
87+
(map-set last-claim-day tx-sender current-day)
88+
(map-set streak tx-sender new-streak)
89+
(let ((badge-result (if (is-eq new-streak BADGE_STREAK)
90+
(mint-badge tx-sender)
91+
(ok none))))
92+
(match badge-result
93+
token-id
94+
(ok {
95+
streak: new-streak,
96+
day: current-day,
97+
badge-minted: (is-some token-id),
98+
token-id: token-id
99+
})
100+
err-code
101+
(if (is-eq err-code ERR_BADGE_ALREADY_MINTED)
102+
(ok {
103+
streak: new-streak,
104+
day: current-day,
105+
badge-minted: false,
106+
token-id: none
107+
})
108+
(err err-code))
109+
)
83110
)
111+
)
84112
)
85113
)
86114
)

0 commit comments

Comments
 (0)