tx · 88e1FpicY1ovEaZ72UL8zXSdeTFu4BXtCZcd2gjra5sT
3N9tKixzqTYWnEXQxrDQ5pBTGvQd6sFsvmV: -0.05000000 Waves
2023.06.08 12:07 [2613491] smart account 3N9tKixzqTYWnEXQxrDQ5pBTGvQd6sFsvmV > SELF 0.00000000 Waves
{
"type": 13,
"id": "88e1FpicY1ovEaZ72UL8zXSdeTFu4BXtCZcd2gjra5sT",
"fee": 5000000,
"feeAssetId": null,
"timestamp": 1686215296670,
"version": 2,
"chainId": 84,
"sender": "3N9tKixzqTYWnEXQxrDQ5pBTGvQd6sFsvmV",
"senderPublicKey": "DS6HkopS9zypvxX6VhkdNvv6v4wcPZuChRvTwKJeacxE",
"proofs": [
"3vL1vsFffFT4cZrcE3awKP3rMgj89sFQKZA2hmzKjS71wK4jimyEmS7tJsHLBsYtkxeDWp8wko5N9YptC3jac9Eo"
],
"script": "base64:BgISCAISAwoBCBIDCgEIEgQKAggIDAARQUlfVE9LRU5fQVNTRVRfSUQBIJPhcjhxBJtq6JpjHwQkt2RTlyw+vGYLg3SvaLskjeJCAAtTVEFUVVNfT1BFTgIEb3BlbgASU1RBVFVTX0NIRUNLRURfT1VUAgtjaGVja2VkX291dAALU1RBVFVTX0RPTkUCBGRvbmUADkNIRUNLRURfT1VUX0JZAg9fY2hlY2tlZF9vdXRfYnkAE1NJTVBMRV9DSEFUR1BUX1RBU0sCFHNpbWlwbGVfQ2hhdEdQVF90YXNrABBDSEVDS19PVVRfSEVJR0hUAhFfY2hlY2tfb3V0X2hlaWdodAAPUkVHSVNURVJfSEVJR0hUAhBfcmVnaXN0ZXJfaGVpZ2h0AA1DT01NSVRfSEVJR0hUAg5fY29tbWl0X2hlaWdodAEPY2FuQmVDaGVja2VkT3V0AQZ0YXNrSWQEBnN0YXR1cwkAnQgCBQR0aGlzCQCsAgIFBnRhc2tJZAIHX3N0YXR1cwkAAAIFBnN0YXR1cwULU1RBVFVTX09QRU4BDmlzQ29ycmVjdEFnZW50AgZ0YXNrSWQHYWdlbnRJZAQPY2hlY2tvdXRBZ2VudElkCQCdCAIFBHRoaXMJAKwCAgUGdGFza0lkBQ5DSEVDS0VEX09VVF9CWQkAAAIFD2NoZWNrb3V0QWdlbnRJZAUHYWdlbnRJZAEJZ2V0VGFza0lkAQR0eElkBA9jYWxsZXJQdWJsaWNLZXkEByRtYXRjaDAJAJ0IAgUEdGhpcwkArAICBQR0eElkAgxfaW5pdGlhbGl6ZXIDCQABAgUHJG1hdGNoMAIGU3RyaW5nBANzdHIFByRtYXRjaDAFA3N0cgIABAckbWF0Y2gwCQCdCAIFBHRoaXMJAKwCAgkArAICBQR0eElkAgFfBQ9jYWxsZXJQdWJsaWNLZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBANzdHIFByRtYXRjaDAFA3N0cgIAAwFpARNyZWdpc3RlckNoYXRHUFRUYXNrAQtkZXNjcmlwdGlvbgQPY2FsbGVyUHVibGljS2V5CQCwCQEIBQFpD2NhbGxlclB1YmxpY0tleQQEdHhJZAkAsAkBCAUBaQ10cmFuc2FjdGlvbklkBAdwYXltZW50CQCRAwIIBQFpCHBheW1lbnRzAAAEA2ZlZQgFB3BheW1lbnQGYW1vdW50BApmZWVBc3NldElkCAUHcGF5bWVudAdhc3NldElkBAZ0YXNrSWQJAKwCAgkArAICBQR0eElkAgFfBQ9jYWxsZXJQdWJsaWNLZXkECXRpbWVzdGFtcAgFCWxhc3RCbG9jawl0aW1lc3RhbXADCQECIT0CBQpmZWVBc3NldElkBRFBSV9UT0tFTl9BU1NFVF9JRAkAAgECJlBheW1lbnQgb25seSBwb3NzaWJsZSBpbiB0aGUgQUkgVG9rZW4hAwkAZgIAgK3iBAUDZmVlCQACAQIqUGF5bWVudCBuZWVkcyB0byBiZSBhdCBsZWFzdCAwLjEgQUkgVG9rZW4hCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUGdGFza0lkAgxfZGVzY3JpcHRpb24FC2Rlc2NyaXB0aW9uCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIMX2luaXRpYWxpemVyBQ9jYWxsZXJQdWJsaWNLZXkJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQZ0YXNrSWQCB19zdGF0dXMFC1NUQVRVU19PUEVOCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUGdGFza0lkAgVfdHlwZQUTU0lNUExFX0NIQVRHUFRfVEFTSwkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICBQZ0YXNrSWQFD1JFR0lTVEVSX0hFSUdIVAUGaGVpZ2h0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIFBnRhc2tJZAIScmVnaXN0ZXJfdGltZXN0YW1wBQl0aW1lc3RhbXAFA25pbAFpARNjaGVja291dENoYXRHUFRUYXNrAQR0eElkBAZ0YXNrSWQJAQlnZXRUYXNrSWQBBQR0eElkBA9jYWxsZXJQdWJsaWNLZXkJALAJAQgFAWkPY2FsbGVyUHVibGljS2V5BA10YXNrU3RpbGxPcGVuCQEPY2FuQmVDaGVja2VkT3V0AQUGdGFza0lkBAl0aW1lc3RhbXAIBQlsYXN0QmxvY2sJdGltZXN0YW1wAwkBASEBBQ10YXNrU3RpbGxPcGVuCQACAQIbVGFzayBub3Qgb3BlbiBmb3IgY2hlY2tvdXQhCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUGdGFza0lkBQ5DSEVDS0VEX09VVF9CWQUPY2FsbGVyUHVibGljS2V5CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUGdGFza0lkAgdfc3RhdHVzBRJTVEFUVVNfQ0hFQ0tFRF9PVVQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUGdGFza0lkBRBDSEVDS19PVVRfSEVJR0hUBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUGdGFza0lkAhRfY2hlY2tfb3V0X3RpbWVzdGFtcAUJdGltZXN0YW1wBQNuaWwBaQERY29tbWl0Q2hhdEdQVFRhc2sCBHR4SWQIcmVzcG9uc2UEBnRhc2tJZAkBCWdldFRhc2tJZAEFBHR4SWQED2NhbGxlclB1YmxpY0tleQkAsAkBCAUBaQ9jYWxsZXJQdWJsaWNLZXkEDGNvcnJlY3RBZ2VudAkBDmlzQ29ycmVjdEFnZW50AgUGdGFza0lkBQ9jYWxsZXJQdWJsaWNLZXkECXRpbWVzdGFtcAgFCWxhc3RCbG9jawl0aW1lc3RhbXADCQEBIQEFDGNvcnJlY3RBZ2VudAkAAgECQVRhc2sgbWF5IG9ubHkgYmUgc3VibWl0dGVkIGJ5IHRoZSBhZ2VudCB3aG8gY2hlY2tlZCB0aGUgdGFzayBvdXQhCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUGdGFza0lkAgdfc3RhdHVzBQtTVEFUVVNfRE9ORQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBnRhc2tJZAIHX3Jlc3VsdAUIcmVzcG9uc2UJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUGdGFza0lkBQ1DT01NSVRfSEVJR0hUBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgUGdGFza0lkAhFfY29tbWl0X3RpbWVzdGFtcAUJdGltZXN0YW1wBQNuaWwBAnR4AQZ2ZXJpZnkACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5adciOg==",
"height": 2613491,
"applicationStatus": "succeeded",
"spentComplexity": 0
}
View: original | compacted
Prev: 49FFoEg2Skhtwq43ZkHFswZg2y34DTuqMUn5vaUsrGyB
Next: 5QieAPFibJjRStRtjoFYnsznM3J9AMo288W2GjskhD3q
Diff:
Old | New | | Differences |
---|
11 | 11 | | |
---|
12 | 12 | | let e = "_checked_out_by" |
---|
13 | 13 | | |
---|
14 | | - | func f (g) = { |
---|
15 | | - | let h = getString(this, (g + "_status")) |
---|
16 | | - | (h == b) |
---|
| 14 | + | let f = "simiple_ChatGPT_task" |
---|
| 15 | + | |
---|
| 16 | + | let g = "_check_out_height" |
---|
| 17 | + | |
---|
| 18 | + | let h = "_register_height" |
---|
| 19 | + | |
---|
| 20 | + | let i = "_commit_height" |
---|
| 21 | + | |
---|
| 22 | + | func j (k) = { |
---|
| 23 | + | let l = getString(this, (k + "_status")) |
---|
| 24 | + | (l == b) |
---|
17 | 25 | | } |
---|
18 | 26 | | |
---|
19 | 27 | | |
---|
20 | | - | func i (g,j) = { |
---|
21 | | - | let k = getString(this, (g + e)) |
---|
22 | | - | (k == j) |
---|
| 28 | + | func m (k,n) = { |
---|
| 29 | + | let o = getString(this, (k + e)) |
---|
| 30 | + | (o == n) |
---|
23 | 31 | | } |
---|
24 | 32 | | |
---|
25 | 33 | | |
---|
26 | | - | @Callable(l) |
---|
27 | | - | func registerChatGPTTask (m) = { |
---|
28 | | - | let n = toUtf8String(l.callerPublicKey) |
---|
29 | | - | let o = toUtf8String(l.transactionId) |
---|
30 | | - | let p = l.payments[0] |
---|
31 | | - | let q = p.amount |
---|
32 | | - | let r = p.assetId |
---|
33 | | - | if ((r != a)) |
---|
| 34 | + | func p (q) = { |
---|
| 35 | + | let r = { |
---|
| 36 | + | let s = getString(this, (q + "_initializer")) |
---|
| 37 | + | if ($isInstanceOf(s, "String")) |
---|
| 38 | + | then { |
---|
| 39 | + | let t = s |
---|
| 40 | + | t |
---|
| 41 | + | } |
---|
| 42 | + | else "" |
---|
| 43 | + | } |
---|
| 44 | + | let s = getString(this, ((q + "_") + r)) |
---|
| 45 | + | if ($isInstanceOf(s, "String")) |
---|
| 46 | + | then { |
---|
| 47 | + | let t = s |
---|
| 48 | + | t |
---|
| 49 | + | } |
---|
| 50 | + | else "" |
---|
| 51 | + | } |
---|
| 52 | + | |
---|
| 53 | + | |
---|
| 54 | + | @Callable(u) |
---|
| 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)) |
---|
34 | 64 | | then throw("Payment only possible in the AI Token!") |
---|
35 | | - | else if ((100000000 > q)) |
---|
36 | | - | then throw("Payment needs to be at least on AI Token!") |
---|
37 | | - | else [StringEntry((o + "_description"), m), StringEntry((o + "_initializer"), n), StringEntry((o + "_status"), b)] |
---|
| 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)] |
---|
38 | 68 | | } |
---|
39 | 69 | | |
---|
40 | 70 | | |
---|
41 | 71 | | |
---|
42 | | - | @Callable(l) |
---|
43 | | - | func checkoutChatGPTTask (g) = { |
---|
44 | | - | let n = toUtf8String(l.callerPublicKey) |
---|
45 | | - | let s = f(g) |
---|
46 | | - | if (!(s)) |
---|
| 72 | + | @Callable(u) |
---|
| 73 | + | func checkoutChatGPTTask (q) = { |
---|
| 74 | + | let k = p(q) |
---|
| 75 | + | let r = toUtf8String(u.callerPublicKey) |
---|
| 76 | + | let A = j(k) |
---|
| 77 | + | let z = lastBlock.timestamp |
---|
| 78 | + | if (!(A)) |
---|
47 | 79 | | then throw("Task not open for checkout!") |
---|
48 | | - | else [StringEntry((g + e), n), StringEntry((g + "_status"), c)] |
---|
| 80 | + | else [StringEntry((k + e), r), StringEntry((k + "_status"), c), IntegerEntry((k + g), height), IntegerEntry((k + "_check_out_timestamp"), z)] |
---|
49 | 81 | | } |
---|
50 | 82 | | |
---|
51 | 83 | | |
---|
52 | 84 | | |
---|
53 | | - | @Callable(l) |
---|
54 | | - | func finishChatGPTTask (g,t) = { |
---|
55 | | - | let n = toUtf8String(l.callerPublicKey) |
---|
56 | | - | let u = i(g, n) |
---|
57 | | - | if (!(u)) |
---|
| 85 | + | @Callable(u) |
---|
| 86 | + | func commitChatGPTTask (q,B) = { |
---|
| 87 | + | let k = p(q) |
---|
| 88 | + | let r = toUtf8String(u.callerPublicKey) |
---|
| 89 | + | let C = m(k, r) |
---|
| 90 | + | let z = lastBlock.timestamp |
---|
| 91 | + | if (!(C)) |
---|
58 | 92 | | then throw("Task may only be submitted by the agent who checked the task out!") |
---|
59 | | - | else [StringEntry((g + "_status"), d), StringEntry((g + "_result"), t)] |
---|
| 93 | + | else [StringEntry((k + "_status"), d), StringEntry((k + "_result"), B), IntegerEntry((k + i), height), IntegerEntry((k + "_commit_timestamp"), z)] |
---|
60 | 94 | | } |
---|
61 | 95 | | |
---|
62 | 96 | | |
---|
63 | | - | @Verifier(v) |
---|
64 | | - | func w () = sigVerify(v.bodyBytes, v.proofs[0], v.senderPublicKey) |
---|
| 97 | + | @Verifier(D) |
---|
| 98 | + | func E () = sigVerify(D.bodyBytes, D.proofs[0], D.senderPublicKey) |
---|
65 | 99 | | |
---|
Full:
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 | | - | func f (g) = { |
---|
15 | | - | let h = getString(this, (g + "_status")) |
---|
16 | | - | (h == b) |
---|
| 14 | + | let f = "simiple_ChatGPT_task" |
---|
| 15 | + | |
---|
| 16 | + | let g = "_check_out_height" |
---|
| 17 | + | |
---|
| 18 | + | let h = "_register_height" |
---|
| 19 | + | |
---|
| 20 | + | let i = "_commit_height" |
---|
| 21 | + | |
---|
| 22 | + | func j (k) = { |
---|
| 23 | + | let l = getString(this, (k + "_status")) |
---|
| 24 | + | (l == b) |
---|
17 | 25 | | } |
---|
18 | 26 | | |
---|
19 | 27 | | |
---|
20 | | - | func i (g,j) = { |
---|
21 | | - | let k = getString(this, (g + e)) |
---|
22 | | - | (k == j) |
---|
| 28 | + | func m (k,n) = { |
---|
| 29 | + | let o = getString(this, (k + e)) |
---|
| 30 | + | (o == n) |
---|
23 | 31 | | } |
---|
24 | 32 | | |
---|
25 | 33 | | |
---|
26 | | - | @Callable(l) |
---|
27 | | - | func registerChatGPTTask (m) = { |
---|
28 | | - | let n = toUtf8String(l.callerPublicKey) |
---|
29 | | - | let o = toUtf8String(l.transactionId) |
---|
30 | | - | let p = l.payments[0] |
---|
31 | | - | let q = p.amount |
---|
32 | | - | let r = p.assetId |
---|
33 | | - | if ((r != a)) |
---|
| 34 | + | func p (q) = { |
---|
| 35 | + | let r = { |
---|
| 36 | + | let s = getString(this, (q + "_initializer")) |
---|
| 37 | + | if ($isInstanceOf(s, "String")) |
---|
| 38 | + | then { |
---|
| 39 | + | let t = s |
---|
| 40 | + | t |
---|
| 41 | + | } |
---|
| 42 | + | else "" |
---|
| 43 | + | } |
---|
| 44 | + | let s = getString(this, ((q + "_") + r)) |
---|
| 45 | + | if ($isInstanceOf(s, "String")) |
---|
| 46 | + | then { |
---|
| 47 | + | let t = s |
---|
| 48 | + | t |
---|
| 49 | + | } |
---|
| 50 | + | else "" |
---|
| 51 | + | } |
---|
| 52 | + | |
---|
| 53 | + | |
---|
| 54 | + | @Callable(u) |
---|
| 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)) |
---|
34 | 64 | | then throw("Payment only possible in the AI Token!") |
---|
35 | | - | else if ((100000000 > q)) |
---|
36 | | - | then throw("Payment needs to be at least on AI Token!") |
---|
37 | | - | else [StringEntry((o + "_description"), m), StringEntry((o + "_initializer"), n), StringEntry((o + "_status"), b)] |
---|
| 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)] |
---|
38 | 68 | | } |
---|
39 | 69 | | |
---|
40 | 70 | | |
---|
41 | 71 | | |
---|
42 | | - | @Callable(l) |
---|
43 | | - | func checkoutChatGPTTask (g) = { |
---|
44 | | - | let n = toUtf8String(l.callerPublicKey) |
---|
45 | | - | let s = f(g) |
---|
46 | | - | if (!(s)) |
---|
| 72 | + | @Callable(u) |
---|
| 73 | + | func checkoutChatGPTTask (q) = { |
---|
| 74 | + | let k = p(q) |
---|
| 75 | + | let r = toUtf8String(u.callerPublicKey) |
---|
| 76 | + | let A = j(k) |
---|
| 77 | + | let z = lastBlock.timestamp |
---|
| 78 | + | if (!(A)) |
---|
47 | 79 | | then throw("Task not open for checkout!") |
---|
48 | | - | else [StringEntry((g + e), n), StringEntry((g + "_status"), c)] |
---|
| 80 | + | else [StringEntry((k + e), r), StringEntry((k + "_status"), c), IntegerEntry((k + g), height), IntegerEntry((k + "_check_out_timestamp"), z)] |
---|
49 | 81 | | } |
---|
50 | 82 | | |
---|
51 | 83 | | |
---|
52 | 84 | | |
---|
53 | | - | @Callable(l) |
---|
54 | | - | func finishChatGPTTask (g,t) = { |
---|
55 | | - | let n = toUtf8String(l.callerPublicKey) |
---|
56 | | - | let u = i(g, n) |
---|
57 | | - | if (!(u)) |
---|
| 85 | + | @Callable(u) |
---|
| 86 | + | func commitChatGPTTask (q,B) = { |
---|
| 87 | + | let k = p(q) |
---|
| 88 | + | let r = toUtf8String(u.callerPublicKey) |
---|
| 89 | + | let C = m(k, r) |
---|
| 90 | + | let z = lastBlock.timestamp |
---|
| 91 | + | if (!(C)) |
---|
58 | 92 | | then throw("Task may only be submitted by the agent who checked the task out!") |
---|
59 | | - | else [StringEntry((g + "_status"), d), StringEntry((g + "_result"), t)] |
---|
| 93 | + | else [StringEntry((k + "_status"), d), StringEntry((k + "_result"), B), IntegerEntry((k + i), height), IntegerEntry((k + "_commit_timestamp"), z)] |
---|
60 | 94 | | } |
---|
61 | 95 | | |
---|
62 | 96 | | |
---|
63 | | - | @Verifier(v) |
---|
64 | | - | func w () = sigVerify(v.bodyBytes, v.proofs[0], v.senderPublicKey) |
---|
| 97 | + | @Verifier(D) |
---|
| 98 | + | func E () = sigVerify(D.bodyBytes, D.proofs[0], D.senderPublicKey) |
---|
65 | 99 | | |
---|