tx · FfeFtAriPDgdrzqWU6KTMgPtJX1JewGQSDWrU9ukQReA 3N9tKixzqTYWnEXQxrDQ5pBTGvQd6sFsvmV: -0.01000000 Waves 2023.06.06 22:45 [2611241] smart account 3N9tKixzqTYWnEXQxrDQ5pBTGvQd6sFsvmV > SELF 0.00000000 Waves
{ "type": 13, "id": "FfeFtAriPDgdrzqWU6KTMgPtJX1JewGQSDWrU9ukQReA", "fee": 1000000, "feeAssetId": null, "timestamp": 1686080743602, "version": 2, "chainId": 84, "sender": "3N9tKixzqTYWnEXQxrDQ5pBTGvQd6sFsvmV", "senderPublicKey": "DS6HkopS9zypvxX6VhkdNvv6v4wcPZuChRvTwKJeacxE", "proofs": [ "4zxJshgXdeeT1VFyiPCKNPHqwzo7iun1JqFQryko4fRFVA5G9TjT6xiATTn5eGBbc861SSUdyNexVXujPuANajzS" ], "script": "base64:BgISCAISAwoBCBIDCgEIEgQKAggIBwARQUlfVE9LRU5fQVNTRVRfSUQBIJPhcjhxBJtq6JpjHwQkt2RTlyw+vGYLg3SvaLskjeJCAAtTVEFUVVNfT1BFTgIEb3BlbgASU1RBVFVTX0NIRUNLRURfT1VUAgtjaGVja2VkX291dAALU1RBVFVTX0RPTkUCBGRvbmUADkNIRUNLRURfT1VUX0JZAg9fY2hlY2tlZF9vdXRfYnkBD2NhbkJlQ2hlY2tlZE91dAEGdGFza0lkBAZzdGF0dXMJAJ0IAgUEdGhpcwkArAICBQZ0YXNrSWQCB19zdGF0dXMJAAACBQZzdGF0dXMFC1NUQVRVU19PUEVOAQ5pc0NvcnJlY3RBZ2VudAIGdGFza0lkB2FnZW50SWQED2NoZWNrb3V0QWdlbnRJZAkAnQgCBQR0aGlzCQCsAgIFBnRhc2tJZAUOQ0hFQ0tFRF9PVVRfQlkJAAACBQ9jaGVja291dEFnZW50SWQFB2FnZW50SWQDAWkBE3JlZ2lzdGVyQ2hhdEdQVFRhc2sBC2Rlc2NyaXB0aW9uBA9jYWxsZXJQdWJsaWNLZXkJALAJAQgFAWkPY2FsbGVyUHVibGljS2V5BAR0eElkCQCwCQEIBQFpDXRyYW5zYWN0aW9uSWQEB3BheW1lbnQJAJEDAggFAWkIcGF5bWVudHMAAAQDZmVlCAUHcGF5bWVudAZhbW91bnQECmZlZUFzc2V0SWQIBQdwYXltZW50B2Fzc2V0SWQDCQECIT0CBQpmZWVBc3NldElkBRFBSV9UT0tFTl9BU1NFVF9JRAkAAgECJlBheW1lbnQgb25seSBwb3NzaWJsZSBpbiB0aGUgQUkgVG9rZW4hCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIMX2Rlc2NyaXB0aW9uBQtkZXNjcmlwdGlvbgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBHR4SWQCDF9pbml0aWFsaXplcgUPY2FsbGVyUHVibGljS2V5CQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUEdHhJZAIHX3N0YXR1cwULU1RBVFVTX09QRU4FA25pbAFpARNjaGVja291dENoYXRHUFRUYXNrAQZ0YXNrSWQED2NhbGxlclB1YmxpY0tleQkAsAkBCAUBaQ9jYWxsZXJQdWJsaWNLZXkEDXRhc2tTdGlsbE9wZW4JAQ9jYW5CZUNoZWNrZWRPdXQBBQZ0YXNrSWQDCQEBIQEFDXRhc2tTdGlsbE9wZW4JAAIBAhtUYXNrIG5vdCBvcGVuIGZvciBjaGVja291dCEJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQZ0YXNrSWQFDkNIRUNLRURfT1VUX0JZBQ9jYWxsZXJQdWJsaWNLZXkJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICBQZ0YXNrSWQCB19zdGF0dXMFElNUQVRVU19DSEVDS0VEX09VVAUDbmlsAWkBEWZpbmlzaENoYXRHUFRUYXNrAgZ0YXNrSWQIcmVzcG9uc2UED2NhbGxlclB1YmxpY0tleQkAsAkBCAUBaQ9jYWxsZXJQdWJsaWNLZXkEDGNvcnJlY3RBZ2VudAkBDmlzQ29ycmVjdEFnZW50AgUGdGFza0lkBQ9jYWxsZXJQdWJsaWNLZXkDCQEBIQEFDGNvcnJlY3RBZ2VudAkAAgECQVRhc2sgbWF5IG9ubHkgYmUgc3VibWl0dGVkIGJ5IHRoZSBhZ2VudCB3aG8gY2hlY2tlZCB0aGUgdGFzayBvdXQhCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgUGdGFza0lkAgdfc3RhdHVzBQtTVEFUVVNfRE9ORQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFBnRhc2tJZAIHX3Jlc3VsdAUIcmVzcG9uc2UFA25pbAECdHgBBnZlcmlmeQAJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXl2XvmB", "height": 2611241, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 49FFoEg2Skhtwq43ZkHFswZg2y34DTuqMUn5vaUsrGyB Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 6 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let AI_TOKEN_ASSET_ID = base58'AxGKQRxKo4F2EbhrRq6N2tdLsxtMnpzQsS4QemV6V1W1' | |
5 | + | ||
6 | + | let STATUS_OPEN = "open" | |
7 | + | ||
8 | + | let STATUS_CHECKED_OUT = "checked_out" | |
9 | + | ||
10 | + | let STATUS_DONE = "done" | |
11 | + | ||
12 | + | let CHECKED_OUT_BY = "_checked_out_by" | |
13 | + | ||
14 | + | func canBeCheckedOut (taskId) = { | |
15 | + | let status = getString(this, (taskId + "_status")) | |
16 | + | (status == STATUS_OPEN) | |
17 | + | } | |
18 | + | ||
19 | + | ||
20 | + | func isCorrectAgent (taskId,agentId) = { | |
21 | + | let checkoutAgentId = getString(this, (taskId + CHECKED_OUT_BY)) | |
22 | + | (checkoutAgentId == agentId) | |
23 | + | } | |
24 | + | ||
25 | + | ||
26 | + | @Callable(i) | |
27 | + | func registerChatGPTTask (description) = { | |
28 | + | let callerPublicKey = toUtf8String(i.callerPublicKey) | |
29 | + | let txId = toUtf8String(i.transactionId) | |
30 | + | let payment = i.payments[0] | |
31 | + | let fee = payment.amount | |
32 | + | let feeAssetId = payment.assetId | |
33 | + | if ((feeAssetId != AI_TOKEN_ASSET_ID)) | |
34 | + | then throw("Payment only possible in the AI Token!") | |
35 | + | else [StringEntry((txId + "_description"), description), StringEntry((txId + "_initializer"), callerPublicKey), StringEntry((txId + "_status"), STATUS_OPEN)] | |
36 | + | } | |
37 | + | ||
38 | + | ||
39 | + | ||
40 | + | @Callable(i) | |
41 | + | func checkoutChatGPTTask (taskId) = { | |
42 | + | let callerPublicKey = toUtf8String(i.callerPublicKey) | |
43 | + | let taskStillOpen = canBeCheckedOut(taskId) | |
44 | + | if (!(taskStillOpen)) | |
45 | + | then throw("Task not open for checkout!") | |
46 | + | else [StringEntry((taskId + CHECKED_OUT_BY), callerPublicKey), StringEntry((taskId + "_status"), STATUS_CHECKED_OUT)] | |
47 | + | } | |
48 | + | ||
49 | + | ||
50 | + | ||
51 | + | @Callable(i) | |
52 | + | func finishChatGPTTask (taskId,response) = { | |
53 | + | let callerPublicKey = toUtf8String(i.callerPublicKey) | |
54 | + | let correctAgent = isCorrectAgent(taskId, callerPublicKey) | |
55 | + | if (!(correctAgent)) | |
56 | + | then throw("Task may only be submitted by the agent who checked the task out!") | |
57 | + | else [StringEntry((taskId + "_status"), STATUS_DONE), StringEntry((taskId + "_result"), response)] | |
58 | + | } | |
59 | + | ||
60 | + | ||
61 | + | @Verifier(tx) | |
62 | + | func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey) | |
63 | + |
github/deemru/w8io/3ef1775 50.02 ms ◑