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:
OldNewDifferences
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