summary refs log tree commit diff stats
path: root/contract/memoir.py
blob: a9f3cc674c7dba647500ca514faedba0b81c0f8c (plain) (blame)
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
import smartpy as sp

class Memoir(sp.Contract):
    def __init__(self):
        self.init(
            records = sp.big_map(
                tkey = sp.TInt,
                tvalue = sp.TString
            ),
        )

    @sp.entry_point
    def add_record(self, params):
        self.data.records[params.id] = params.record
        # Verify that the ID doesn't exist.
        # sp.verify(
        #     self.data.records.contains(params.id) == False,
        #     message = "Record exists"
        # )

    @sp.entry_point
    def update_record(self, params):
        self.data.records = sp.update_map(
            self.data.records,
            params.id,
            sp.some(params.record)
        )

    @sp.entry_point
    def delete_record(self, params):
        del self.data.records[params.id]

@sp.add_test(name="MyMedMemoir")
def test():
    scenario = sp.test_scenario()
    scenario.h1("MyMedMemoir")

    c1 = Memoir()
    scenario += c1

    # Try adding records.
    scenario += c1.add_record(id = 0, record = '{record #0}')
    scenario += c1.add_record(id = 1, record = '{record #1}')
    scenario += c1.add_record(id = 2, record = '{record #2}')

    # Updating records.
    scenario += c1.update_record(id = 1, record = '{record #1 - updated}')

    # Deleting records.
    scenario += c1.delete_record(id = 2)

    # Trying to add over existing record. Should Fail.
    # scenario += c1.add_record(
    #     id = 2, record = '{record #2 - fail}'
    # ).run(valid = False)