Smart Contract

CookStocker

A.b576a3926d239682.CookStocker

Valid From

129,282,205

Deployed

1w ago
Feb 19, 2026, 06:41:55 PM UTC

Dependents

2 imports
1access(all) contract CookStocker {
2
3  access(self) let info: Info
4
5  /* 構造体 */
6  access(all) struct Info {
7
8    access(contract) var data: {String: VegeData}
9
10    /* setter */
11    access(contract) fun set(id: String, add: [String], remove: [String]) {
12      if let saved = self.data[id] {
13        for name in add {
14          saved.set(category: name, bought_at: getCurrentBlock().timestamp)
15        }
16        for name in remove {
17          saved.unset(category: name)
18        }
19        // Save
20        self.data[id] = saved
21      } else {
22        var data = VegeData()
23        for name in add {
24          data.set(category: name, bought_at: getCurrentBlock().timestamp)
25        }
26        for name in remove {
27          data.unset(category: name)
28        }
29        self.data[id] = data
30      }
31    }
32
33    access(contract) fun delete(id: String) {
34      self.data[id] = nil
35    }
36
37    init() {
38      self.data = {}
39    }
40  }
41
42  /* Info内の構造体 */
43  access(all) struct VegeData {
44
45    access(contract) var data: {String: UFix64?}
46
47    /* setter */
48    access(contract) fun set(category: String, bought_at: UFix64) {
49      self.data[category] = bought_at
50    }
51
52    access(contract) fun unset(category: String) {
53      self.data[category] = nil
54    }
55
56    init() {
57      self.data = {}
58    }
59  }
60
61  // GET
62  access(all) fun getCookStockerInfo(id: String): VegeData? {
63    return self.info.data[id]
64  }
65  // PUT
66  access(all) fun setCookStockerInfo(id: String, add: [String], remove: [String]) {
67    self.info.set(id: id, add: add, remove: remove);
68  }
69  // DELETE
70  access(all) fun deleteCookStockerInfo(id: String) {
71    self.info.delete(id: id)
72  }
73
74  init() {
75    self.info = Info()
76  }
77}
78