tx · 5QieAPFibJjRStRtjoFYnsznM3J9AMo288W2GjskhD3q 3N9tKixzqTYWnEXQxrDQ5pBTGvQd6sFsvmV: -0.05000000 Waves 2023.06.08 12:27 [2613515] smart account 3N9tKixzqTYWnEXQxrDQ5pBTGvQd6sFsvmV > SELF 0.00000000 Waves
{ "type": 13, "id": "5QieAPFibJjRStRtjoFYnsznM3J9AMo288W2GjskhD3q", "fee": 5000000, "feeAssetId": null, "timestamp": 1686216488372, "version": 2, "chainId": 84, "sender": "3N9tKixzqTYWnEXQxrDQ5pBTGvQd6sFsvmV", "senderPublicKey": "DS6HkopS9zypvxX6VhkdNvv6v4wcPZuChRvTwKJeacxE", "proofs": [ "3569pFejVQRoWn38U2KhpDDbX67WwT78F8AupYSxgkjMrQGGDoC8M21ozcU7WwTuUuwaxpt6ceBxmfCQYVk3iD33" ], "script": "base64:BgISCAISAwoBCBIDCgEIEgQKAggIDAARQUlfVE9LRU5fQVNTRVRfSUQBIJPhcjhxBJtq6JpjHwQkt2RTlyw+vGYLg3SvaLskjeJCAAtTVEFUVVNfT1BFTgIEb3BlbgASU1RBVFVTX0NIRUNLRURfT1VUAgtjaGVja2VkX291dAALU1RBVFVTX0RPTkUCBGRvbmUADkNIRUNLRURfT1VUX0JZAg9fY2hlY2tlZF9vdXRfYnkAE1NJTVBMRV9DSEFUR1BUX1RBU0sCFHNpbWlwbGVfQ2hhdEdQVF90YXNrABBDSEVDS19PVVRfSEVJR0hUAhFfY2hlY2tfb3V0X2hlaWdodAAPUkVHSVNURVJfSEVJR0hUAhBfcmVnaXN0ZXJfaGVpZ2h0AA1DT01NSVRfSEVJR0hUAg5fY29tbWl0X2hlaWdodAEPY2FuQmVDaGVja2VkT3V0AQZ0YXNrSWQEBnN0YXR1cwkAnQgCBQR0aGlzCQCsAgIFBnRhc2tJZAIHX3N0YXR1cwkAAAIFBnN0YXR1cwULU1RBVFVTX09QRU4BDmlzQ29ycmVjdEFnZW50AgZ0YXNrSWQHYWdlbnRJZAQPY2hlY2tvdXRBZ2VudElkCQCdCAIFBHRoaXMJAKwCAgUGdGFza0lkBQ5DSEVDS0VEX09VVF9CWQkAAAIFD2NoZWNrb3V0QWdlbnRJZAUHYWdlbnRJZAEJZ2V0VGFza0lkAQR0eElkBA9jYWxsZXJQdWJsaWNLZXkEByRtYXRjaDAJAJ0IAgUEdGhpcwkArAICBQR0eElkAgxfaW5pdGlhbGl6ZXIDCQABAgUHJG1hdGNoMAIGU3RyaW5nBANzdHIFByRtYXRjaDAFA3N0cgIABAckbWF0Y2gwCQCdCAIFBHRoaXMJAKwCAgkArAICBQR0eElkAgFfBQ9jYWxsZXJQdWJsaWNLZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBANzdHIFByRtYXRjaDAFA3N0cgIAAwFpARNyZWdpc3RlckNoYXRHUFRUYXNrAQtkZXNjcmlwdGlvbgQQbnVtYmVyT2ZQYXltZW50cwkAkAMBCAUBaQhwYXltZW50cwMJAQIhPQIFEG51bWJlck9mUGF5bWVudHMAAQkAAgECElBheW1lbnQgbmVjZXNzYXJ5IQQPY2FsbGVyUHVibGljS2V5CQCwCQEIBQFpD2NhbGxlclB1YmxpY0tleQQEdHhJZAkAsAkBCAUBaQ10cmFuc2FjdGlvbklkBAdwYXltZW50CQCRAwIIBQFpCHBheW1lbnRzAAAEA2ZlZQgFB3BheW1lbnQGYW1vdW50BApmZWVBc3NldElkCAUHcGF5bWVudAdhc3NldElkBAZ0YXNrSWQJAKwCAgkArAICBQR0eElkAgFfBQ9jYWxsZXJQdWJsaWNLZXkECXRpbWVzdGFtcAgFCWxhc3RCbG9jawl0aW1lc3RhbXADCQECIT0CBQpmZWVBc3NldElkBRFBSV9UT0tFTl9BU1NFVF9JRAkAAgECJlBheW1lbnQgb25seSBwb3NzaWJsZSBpbiB0aGUgQUkgVG9rZW4hAwkAZgIAgK3iBAUDZmVlCQACAQIqUGF5bWVudCBuZWVkcyB0byBiZSBhdCBsZWFzdCAwLjEgQUkgVG9rZW4hCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUGdGFza0lkAgxfZGVzY3JpcHRpb24FC2Rlc2NyaXB0aW9uCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIMX2luaXRpYWxpemVyBQ9jYWxsZXJQdWJsaWNLZXkJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQZ0YXNrSWQCB19zdGF0dXMFC1NUQVRVU19PUEVOCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUGdGFza0lkAgVfdHlwZQUTU0lNUExFX0NIQVRHUFRfVEFTSwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQZ0YXNrSWQFD1JFR0lTVEVSX0hFSUdIVAUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBnRhc2tJZAIScmVnaXN0ZXJfdGltZXN0YW1wBQl0aW1lc3RhbXAFA25pbAFpARNjaGVja291dENoYXRHUFRUYXNrAQR0eElkBAZ0YXNrSWQJAQlnZXRUYXNrSWQBBQR0eElkBA9jYWxsZXJQdWJsaWNLZXkJALAJAQgFAWkPY2FsbGVyUHVibGljS2V5BA10YXNrU3RpbGxPcGVuCQEPY2FuQmVDaGVja2VkT3V0AQUGdGFza0lkBAl0aW1lc3RhbXAIBQlsYXN0QmxvY2sJdGltZXN0YW1wAwkBASEBBQ10YXNrU3RpbGxPcGVuCQACAQIbVGFzayBub3Qgb3BlbiBmb3IgY2hlY2tvdXQhCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUGdGFza0lkBQ5DSEVDS0VEX09VVF9CWQUPY2FsbGVyUHVibGljS2V5CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUGdGFza0lkAgdfc3RhdHVzBRJTVEFUVVNfQ0hFQ0tFRF9PVVQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUGdGFza0lkBRBDSEVDS19PVVRfSEVJR0hUBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUGdGFza0lkAhRfY2hlY2tfb3V0X3RpbWVzdGFtcAUJdGltZXN0YW1wBQNuaWwBaQERY29tbWl0Q2hhdEdQVFRhc2sCBHR4SWQIcmVzcG9uc2UEBnRhc2tJZAkBCWdldFRhc2tJZAEFBHR4SWQED2NhbGxlclB1YmxpY0tleQkAsAkBCAUBaQ9jYWxsZXJQdWJsaWNLZXkEDGNvcnJlY3RBZ2VudAkBDmlzQ29ycmVjdEFnZW50AgUGdGFza0lkBQ9jYWxsZXJQdWJsaWNLZXkECXRpbWVzdGFtcAgFCWxhc3RCbG9jawl0aW1lc3RhbXADCQEBIQEFDGNvcnJlY3RBZ2VudAkAAgECQVRhc2sgbWF5IG9ubHkgYmUgc3VibWl0dGVkIGJ5IHRoZSBhZ2VudCB3aG8gY2hlY2tlZCB0aGUgdGFzayBvdXQhCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUGdGFza0lkAgdfc3RhdHVzBQtTVEFUVVNfRE9ORQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBnRhc2tJZAIHX3Jlc3VsdAUIcmVzcG9uc2UJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUGdGFza0lkBQ1DT01NSVRfSEVJR0hUBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUGdGFza0lkAhFfY29tbWl0X3RpbWVzdGFtcAUJdGltZXN0YW1wBQNuaWwBAnR4AQZ2ZXJpZnkACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5jhAmOQ==", "height": 2613515, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 88e1FpicY1ovEaZ72UL8zXSdeTFu4BXtCZcd2gjra5sT Next: xFHmzfUQPcoZ5B6hFrU74ZvzYtn1Qhh7Fd6jebNwY3j Diff:
Old | New | Differences | |
---|---|---|---|
53 | 53 | ||
54 | 54 | @Callable(u) | |
55 | 55 | func registerChatGPTTask (v) = { | |
56 | - | let r = toUtf8String(u.callerPublicKey) | |
57 | - | let q = toUtf8String(u.transactionId) | |
58 | - | let w = u.payments[0] | |
59 | - | let x = w.amount | |
60 | - | let y = w.assetId | |
61 | - | let k = ((q + "_") + r) | |
62 | - | let z = lastBlock.timestamp | |
63 | - | if ((y != a)) | |
64 | - | then throw("Payment only possible in the AI Token!") | |
65 | - | else if ((10000000 > x)) | |
66 | - | then throw("Payment needs to be at least 0.1 AI Token!") | |
67 | - | else [StringEntry((k + "_description"), v), StringEntry((q + "_initializer"), r), StringEntry((k + "_status"), b), StringEntry((k + "_type"), f), IntegerEntry((k + h), height), IntegerEntry((k + "register_timestamp"), z)] | |
56 | + | let w = size(u.payments) | |
57 | + | if ((w != 1)) | |
58 | + | then throw("Payment necessary!") | |
59 | + | else { | |
60 | + | let r = toUtf8String(u.callerPublicKey) | |
61 | + | let q = toUtf8String(u.transactionId) | |
62 | + | let x = u.payments[0] | |
63 | + | let y = x.amount | |
64 | + | let z = x.assetId | |
65 | + | let k = ((q + "_") + r) | |
66 | + | let A = lastBlock.timestamp | |
67 | + | if ((z != a)) | |
68 | + | then throw("Payment only possible in the AI Token!") | |
69 | + | else if ((10000000 > y)) | |
70 | + | then throw("Payment needs to be at least 0.1 AI Token!") | |
71 | + | else [StringEntry((k + "_description"), v), StringEntry((q + "_initializer"), r), StringEntry((k + "_status"), b), StringEntry((k + "_type"), f), IntegerEntry((k + h), height), IntegerEntry((k + "register_timestamp"), A)] | |
72 | + | } | |
68 | 73 | } | |
69 | 74 | ||
70 | 75 | ||
73 | 78 | func checkoutChatGPTTask (q) = { | |
74 | 79 | let k = p(q) | |
75 | 80 | let r = toUtf8String(u.callerPublicKey) | |
76 | - | let | |
77 | - | let | |
78 | - | if (!( | |
81 | + | let B = j(k) | |
82 | + | let A = lastBlock.timestamp | |
83 | + | if (!(B)) | |
79 | 84 | then throw("Task not open for checkout!") | |
80 | - | else [StringEntry((k + e), r), StringEntry((k + "_status"), c), IntegerEntry((k + g), height), IntegerEntry((k + "_check_out_timestamp"), | |
85 | + | else [StringEntry((k + e), r), StringEntry((k + "_status"), c), IntegerEntry((k + g), height), IntegerEntry((k + "_check_out_timestamp"), A)] | |
81 | 86 | } | |
82 | 87 | ||
83 | 88 | ||
84 | 89 | ||
85 | 90 | @Callable(u) | |
86 | - | func commitChatGPTTask (q, | |
91 | + | func commitChatGPTTask (q,C) = { | |
87 | 92 | let k = p(q) | |
88 | 93 | let r = toUtf8String(u.callerPublicKey) | |
89 | - | let | |
90 | - | let | |
91 | - | if (!( | |
94 | + | let D = m(k, r) | |
95 | + | let A = lastBlock.timestamp | |
96 | + | if (!(D)) | |
92 | 97 | then throw("Task may only be submitted by the agent who checked the task out!") | |
93 | - | else [StringEntry((k + "_status"), d), StringEntry((k + "_result"), | |
98 | + | else [StringEntry((k + "_status"), d), StringEntry((k + "_result"), C), IntegerEntry((k + i), height), IntegerEntry((k + "_commit_timestamp"), A)] | |
94 | 99 | } | |
95 | 100 | ||
96 | 101 | ||
97 | - | @Verifier( | |
98 | - | func | |
102 | + | @Verifier(E) | |
103 | + | func F () = sigVerify(E.bodyBytes, E.proofs[0], E.senderPublicKey) | |
99 | 104 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = base58'AxGKQRxKo4F2EbhrRq6N2tdLsxtMnpzQsS4QemV6V1W1' | |
5 | 5 | ||
6 | 6 | let b = "open" | |
7 | 7 | ||
8 | 8 | let c = "checked_out" | |
9 | 9 | ||
10 | 10 | let d = "done" | |
11 | 11 | ||
12 | 12 | let e = "_checked_out_by" | |
13 | 13 | ||
14 | 14 | let f = "simiple_ChatGPT_task" | |
15 | 15 | ||
16 | 16 | let g = "_check_out_height" | |
17 | 17 | ||
18 | 18 | let h = "_register_height" | |
19 | 19 | ||
20 | 20 | let i = "_commit_height" | |
21 | 21 | ||
22 | 22 | func j (k) = { | |
23 | 23 | let l = getString(this, (k + "_status")) | |
24 | 24 | (l == b) | |
25 | 25 | } | |
26 | 26 | ||
27 | 27 | ||
28 | 28 | func m (k,n) = { | |
29 | 29 | let o = getString(this, (k + e)) | |
30 | 30 | (o == n) | |
31 | 31 | } | |
32 | 32 | ||
33 | 33 | ||
34 | 34 | func p (q) = { | |
35 | 35 | let r = { | |
36 | 36 | let s = getString(this, (q + "_initializer")) | |
37 | 37 | if ($isInstanceOf(s, "String")) | |
38 | 38 | then { | |
39 | 39 | let t = s | |
40 | 40 | t | |
41 | 41 | } | |
42 | 42 | else "" | |
43 | 43 | } | |
44 | 44 | let s = getString(this, ((q + "_") + r)) | |
45 | 45 | if ($isInstanceOf(s, "String")) | |
46 | 46 | then { | |
47 | 47 | let t = s | |
48 | 48 | t | |
49 | 49 | } | |
50 | 50 | else "" | |
51 | 51 | } | |
52 | 52 | ||
53 | 53 | ||
54 | 54 | @Callable(u) | |
55 | 55 | func registerChatGPTTask (v) = { | |
56 | - | let r = toUtf8String(u.callerPublicKey) | |
57 | - | let q = toUtf8String(u.transactionId) | |
58 | - | let w = u.payments[0] | |
59 | - | let x = w.amount | |
60 | - | let y = w.assetId | |
61 | - | let k = ((q + "_") + r) | |
62 | - | let z = lastBlock.timestamp | |
63 | - | if ((y != a)) | |
64 | - | then throw("Payment only possible in the AI Token!") | |
65 | - | else if ((10000000 > x)) | |
66 | - | then throw("Payment needs to be at least 0.1 AI Token!") | |
67 | - | else [StringEntry((k + "_description"), v), StringEntry((q + "_initializer"), r), StringEntry((k + "_status"), b), StringEntry((k + "_type"), f), IntegerEntry((k + h), height), IntegerEntry((k + "register_timestamp"), z)] | |
56 | + | let w = size(u.payments) | |
57 | + | if ((w != 1)) | |
58 | + | then throw("Payment necessary!") | |
59 | + | else { | |
60 | + | let r = toUtf8String(u.callerPublicKey) | |
61 | + | let q = toUtf8String(u.transactionId) | |
62 | + | let x = u.payments[0] | |
63 | + | let y = x.amount | |
64 | + | let z = x.assetId | |
65 | + | let k = ((q + "_") + r) | |
66 | + | let A = lastBlock.timestamp | |
67 | + | if ((z != a)) | |
68 | + | then throw("Payment only possible in the AI Token!") | |
69 | + | else if ((10000000 > y)) | |
70 | + | then throw("Payment needs to be at least 0.1 AI Token!") | |
71 | + | else [StringEntry((k + "_description"), v), StringEntry((q + "_initializer"), r), StringEntry((k + "_status"), b), StringEntry((k + "_type"), f), IntegerEntry((k + h), height), IntegerEntry((k + "register_timestamp"), A)] | |
72 | + | } | |
68 | 73 | } | |
69 | 74 | ||
70 | 75 | ||
71 | 76 | ||
72 | 77 | @Callable(u) | |
73 | 78 | func checkoutChatGPTTask (q) = { | |
74 | 79 | let k = p(q) | |
75 | 80 | let r = toUtf8String(u.callerPublicKey) | |
76 | - | let | |
77 | - | let | |
78 | - | if (!( | |
81 | + | let B = j(k) | |
82 | + | let A = lastBlock.timestamp | |
83 | + | if (!(B)) | |
79 | 84 | then throw("Task not open for checkout!") | |
80 | - | else [StringEntry((k + e), r), StringEntry((k + "_status"), c), IntegerEntry((k + g), height), IntegerEntry((k + "_check_out_timestamp"), | |
85 | + | else [StringEntry((k + e), r), StringEntry((k + "_status"), c), IntegerEntry((k + g), height), IntegerEntry((k + "_check_out_timestamp"), A)] | |
81 | 86 | } | |
82 | 87 | ||
83 | 88 | ||
84 | 89 | ||
85 | 90 | @Callable(u) | |
86 | - | func commitChatGPTTask (q, | |
91 | + | func commitChatGPTTask (q,C) = { | |
87 | 92 | let k = p(q) | |
88 | 93 | let r = toUtf8String(u.callerPublicKey) | |
89 | - | let | |
90 | - | let | |
91 | - | if (!( | |
94 | + | let D = m(k, r) | |
95 | + | let A = lastBlock.timestamp | |
96 | + | if (!(D)) | |
92 | 97 | then throw("Task may only be submitted by the agent who checked the task out!") | |
93 | - | else [StringEntry((k + "_status"), d), StringEntry((k + "_result"), | |
98 | + | else [StringEntry((k + "_status"), d), StringEntry((k + "_result"), C), IntegerEntry((k + i), height), IntegerEntry((k + "_commit_timestamp"), A)] | |
94 | 99 | } | |
95 | 100 | ||
96 | 101 | ||
97 | - | @Verifier( | |
98 | - | func | |
102 | + | @Verifier(E) | |
103 | + | func F () = sigVerify(E.bodyBytes, E.proofs[0], E.senderPublicKey) | |
99 | 104 |
github/deemru/w8io/169f3d6 34.97 ms ◑![]()