tx · DLmy1qSAcEb1sHcSKFLR4Xfbwe7NnYde15pgqNPSVsbp

3N2kVUxYqFz4rHNgnVr7ffhsnC7DptJ1BzH:  -0.01000000 Waves

2023.04.20 04:47 [2542237] smart account 3N2kVUxYqFz4rHNgnVr7ffhsnC7DptJ1BzH > SELF 0.00000000 Waves

{ "type": 13, "id": "DLmy1qSAcEb1sHcSKFLR4Xfbwe7NnYde15pgqNPSVsbp", "fee": 1000000, "feeAssetId": null, "timestamp": 1681955331332, "version": 2, "chainId": 84, "sender": "3N2kVUxYqFz4rHNgnVr7ffhsnC7DptJ1BzH", "senderPublicKey": "8cCvpHrqwPyT7CYYANjtE4ZUgLzCDCqFDMVAX5RRZMPN", "proofs": [ "4UFGPDEuZEhscPkvshmZznVFBRs8yCYBt1uVQnqwZEwX2qGRGgM6RvCYyT9BJpjxYa9KELmCTQe1sBzTDVaXNvDH" ], "script": "base64:BgJDCAISBwoFCAgICAgSDAoKCAgICAgICAgICBIECgIICBIMCgoICAgICAgICAgIEggKBggICAgICBIECgIICBIECgIICAUAEGFkbWluX3dhbGxldF9vbmUCIzNNcERmRFQzNTlxU1NtTkZabk1lb1BRcHlKQTJVMUs1MXU1ABBhZG1pbl93YWxsZXRfdHdvAiMzTjNEQ25namlkaXZrSmJUSndGVEV2YllSVGZmQ1dWQkxDTAASYWRtaW5fd2FsbGV0X3RocmVlAiMzTjh4OW1iNDgxaTJrNmNHN1E5WFVWM2U1bnpoMW1kenNOeQEUY2hlY2tfYWRtaW5zX3dhbGxldHMBC3VzZXJfd2FsbGV0AwMDCQAAAgULdXNlcl93YWxsZXQFEGFkbWluX3dhbGxldF9vbmUGCQAAAgULdXNlcl93YWxsZXQFEGFkbWluX3dhbGxldF90d28GCQAAAgULdXNlcl93YWxsZXQFEmFkbWluX3dhbGxldF90aHJlZQYHAQ10cnlHZXRJbnRlZ2VyAQNrZXkEByRtYXRjaDAJAJoIAgUEdGhpcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQBYgUHJG1hdGNoMAUBYgAABwFpAQhhZGRfYmxvZwUJcHVibGlzaGVyBXRpdGVsDWFyd2VhdmVfdHhfaWQJc2lnbmF0dXJlCmJsb2dfY292ZXIDAwkAAAIJAKUIAQgFAWkGY2FsbGVyBQlwdWJsaXNoZXIGCQEUY2hlY2tfYWRtaW5zX3dhbGxldHMBCQClCAEIBQFpBmNhbGxlcgQFdHhfaWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIFYmxvZ18FBXR4X2lkAgpfcHVibGlzaGVyBQlwdWJsaXNoZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBWJsb2dfBQV0eF9pZAIOX2Fyd2VhdmVfdHhfaWQFDWFyd2VhdmVfdHhfaWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBWJsb2dfBQV0eF9pZAIKX3NpZ25hdHVyZQUJc2lnbmF0dXJlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgVibG9nXwUFdHhfaWQCC19ibG9nX2NvdmVyBQpibG9nX2NvdmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgVibG9nXwUFdHhfaWQCBl90aXRlbAUFdGl0ZWwFA25pbAkAAgECTUVSUlJPUiAhLCBhZGRfYmxvZywgTUVTU0FHRTogc29ycnkgeW91IGFyZSBub3QgYWxsb3cgdG8gaW52b2tlIHRoaXMgZnVuYWN0aW9uAWkBCWFkZF9zdG9yeQoJcHVibGlzaGVyBXRpdGVsDWFyd2VhdmVfdHhfaWQJc2lnbmF0dXJlC3N0b3J5X2NvdmVyC2Rlc2NyaXB0aW9uBHRhZ3MIbGFuZ3VhZ2UJY2F0ZWdvcnlzBnN0YXR1cwMDCQAAAgkApQgBCAUBaQZjYWxsZXIFCXB1Ymxpc2hlcgYJARRjaGVja19hZG1pbnNfd2FsbGV0cwEJAKUIAQgFAWkGY2FsbGVyBAV0eF9pZAkA2AQBCAUBaQ10cmFuc2FjdGlvbklkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgZzdG9yeV8FBXR4X2lkAgpfcHVibGlzaGVyBQlwdWJsaXNoZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBnN0b3J5XwUFdHhfaWQCDl9hcndlYXZlX3R4X2lkBQ1hcndlYXZlX3R4X2lkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgZzdG9yeV8FBXR4X2lkAgpfc2lnbmF0dXJlBQlzaWduYXR1cmUJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBnN0b3J5XwUFdHhfaWQCDF9zdG9yeV9jb3ZlcgULc3RvcnlfY292ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBnN0b3J5XwUFdHhfaWQCBl90aXRlbAUFdGl0ZWwJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBnN0b3J5XwUFdHhfaWQCDF9kZXNjcmlwdGlvbgULZGVzY3JpcHRpb24JAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBnN0b3J5XwUFdHhfaWQCBV90YWdzBQR0YWdzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgZzdG9yeV8FBXR4X2lkAglfbGFuZ3VhZ2UFCGxhbmd1YWdlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgZzdG9yeV8FBXR4X2lkAgpfY2F0ZWdvcnlzBQljYXRlZ29yeXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBnN0b3J5XwUFdHhfaWQCB19zdGF0dXMFBnN0YXR1cwUDbmlsCQACAQJORVJSUk9SICEsIGFkZF9zdG9yeSwgTUVTU0FHRTogc29ycnkgeW91IGFyZSBub3QgYWxsb3cgdG8gaW52b2tlIHRoaXMgZnVuYWN0aW9uAWkBC2FkZF9jaGFwdGVyAgtzdG9yeV90eF9pZBVjaGFwdGVyX2Fyd2VhdmVfdHhfaWQED2xhc3RfY2hhcHRlcl9pZAkBDXRyeUdldEludGVnZXIBCQCsAgIJAKwCAgIGU3RvcnlfBQtzdG9yeV90eF9pZAIQX2xhc3RfY2hhcHRlcl9pZAQFdHhfaWQJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICAgZzdG9yeV8FC3N0b3J5X3R4X2lkAglfY2hhcHRlcl8JAKQDAQUPbGFzdF9jaGFwdGVyX2lkBQV0eF9pZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIIY2hhcHRlcl8FBXR4X2lkAg5fYXJ3ZWF2ZV90eF9pZAUVY2hhcHRlcl9hcndlYXZlX3R4X2lkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAghjaGFwdGVyXwUFdHhfaWQCDF9zdG9yeV90eF9pZAULc3RvcnlfdHhfaWQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAghjaGFwdGVyXwUFdHhfaWQCA19pZAUPbGFzdF9jaGFwdGVyX2lkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgIGU3RvcnlfBQtzdG9yeV90eF9pZAIQX2xhc3RfY2hhcHRlcl9pZAkAZAIFD2xhc3RfY2hhcHRlcl9pZAABBQNuaWwBaQENc2V0X3VzZXJfZGF0YQoGd2FsbGV0BG5hbWUKaW1hZ2VfbGluawpjb3Zlcl9saW5rA2JpbxBnb29nbGVfYW5hbHl0aWNzB3R3aXR0ZXIIdGVsZWdyYW0QeWFuZGV4X2FuYWx5dGljcwVub3RlcwMDCQAAAgkApQgBCAUBaQZjYWxsZXIFBndhbGxldAYJARRjaGVja19hZG1pbnNfd2FsbGV0cwEJAKUIAQgFAWkGY2FsbGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgV1c2VyXwUGd2FsbGV0Agdfam9pbmVkAgN5ZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBXVzZXJfBQZ3YWxsZXQCBV9uYW1lBQRuYW1lCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgV1c2VyXwUGd2FsbGV0AgpfaW1hZ2VMaW5rBQppbWFnZV9saW5rCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgV1c2VyXwUGd2FsbGV0AgpfY292ZXJMaW5rBQpjb3Zlcl9saW5rCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgV1c2VyXwUGd2FsbGV0AgRfYmlvBQNiaW8JAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBXVzZXJfBQZ3YWxsZXQCEF9nb29nbGVBbmFseXRpY3MFEGdvb2dsZV9hbmFseXRpY3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBXVzZXJfBQZ3YWxsZXQCEF95YW5kZXhBbmFseXRpY3MFEHlhbmRleF9hbmFseXRpY3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBXVzZXJfBQZ3YWxsZXQCCF90d2l0dGVyBQd0d2l0dGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgV1c2VyXwUGd2FsbGV0AglfdGVsZWdyYW0FCHRlbGVncmFtCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgV1c2VyXwUGd2FsbGV0AgZfbm90ZXMFBW5vdGVzBQNuaWwJAAIBAlJFUlJST1IgISwgc2V0X3VzZXJfZGF0YSwgTUVTU0FHRTogc29ycnkgeW91IGFyZSBub3QgYWxsb3cgdG8gaW52b2tlIHRoaXMgZnVuYWN0aW9uAWkBEXNldF92ZXJpZmllZF91c2VyBgZ3YWxsZXQEbmFtZQd0d2l0dGVyCHRlbGVncmFtBWVtYWlsBW5vdGVzAwkBFGNoZWNrX2FkbWluc193YWxsZXRzAQkApQgBCAUBaQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBXVzZXJfBQZ3YWxsZXQCCV92ZXJpZmllZAIDeWVzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgV1c2VyXwUGd2FsbGV0Ag5fdmVyaWZpZWRfbmFtZQUEbmFtZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIFdXNlcl8FBndhbGxldAIRX3ZlcmlmaWVkX3R3aXR0ZXIFB3R3aXR0ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBXVzZXJfBQZ3YWxsZXQCEl92ZXJpZmllZF90ZWxlZ3JhbQUIdGVsZWdyYW0JAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBXVzZXJfBQZ3YWxsZXQCD192ZXJpZmllZF9ub3RlcwUFbm90ZXMFA25pbAkAAgECVkVSUlJPUiAhLCBzZXRfdmVyaWZpZWRfdXNlciwgTUVTU0FHRTogc29ycnkgeW91IGFyZSBub3QgYWxsb3cgdG8gaW52b2tlIHRoaXMgZnVuYWN0aW9uAWkBFWFkZF9ibG9nX3RvX2Zhdm9yaXRlcwIGd2FsbGV0CmJsb2dfdHhfaWQDAwkAAAIJAKUIAQgFAWkGY2FsbGVyBQZ3YWxsZXQGCQEUY2hlY2tfYWRtaW5zX3dhbGxldHMBCQClCAEIBQFpBmNhbGxlcgQCaWQJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICBWJsb2dfBQpibG9nX3R4X2lkAgxfZmF2b3JpdGVfaWQEB3VzZXJfaWQJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICBXVzZXJfBQZ3YWxsZXQCDF9mYXZvcml0ZV9pZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICAgV1c2VyXwUGd2FsbGV0Ag9fYmxvZ19mYXZvcml0ZV8JAKQDAQUHdXNlcl9pZAUKYmxvZ190eF9pZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICAgVibG9nXwUKYmxvZ190eF9pZAIKX2Zhdm9yaXRlXwkApAMBBQJpZAUGd2FsbGV0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgIFYmxvZ18FCmJsb2dfdHhfaWQCDF9mYXZvcml0ZV9pZAkAZAIFAmlkAAEJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgV1c2VyXwUGd2FsbGV0AgxfZmF2b3JpdGVfaWQJAGQCBQd1c2VyX2lkAAEFA25pbAkAAgECVUVSUlJPUiAhLCBhZGRfdG9fZmF2b3JpdGVzLCBNRVNTQUdFOiBzb3JyeSB5b3UgYXJlIG5vdCBhbGxvdyB0byBpbnZva2UgdGhpcyBmdW5hY3Rpb24BaQEWYWRkX3N0b3J5X3RvX2Zhdm9yaXRlcwIGd2FsbGV0C3N0b3J5X3R4X2lkAwMJAAACCQClCAEIBQFpBmNhbGxlcgUGd2FsbGV0BgkBFGNoZWNrX2FkbWluc193YWxsZXRzAQkApQgBCAUBaQZjYWxsZXIEAmlkCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAgZzdG9yeV8FC3N0b3J5X3R4X2lkAgxfZmF2b3JpdGVfaWQEB3VzZXJfaWQJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICBXVzZXJfBQZ3YWxsZXQCDF9mYXZvcml0ZV9pZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICAgV1c2VyXwUGd2FsbGV0AhBfc3RvcnlfZmF2b3JpdGVfCQCkAwEFB3VzZXJfaWQFC3N0b3J5X3R4X2lkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgICBnN0b3J5XwULc3RvcnlfdHhfaWQCCl9mYXZvcml0ZV8JAKQDAQUCaWQFBndhbGxldAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgICBnN0b3J5XwULc3RvcnlfdHhfaWQCDF9mYXZvcml0ZV9pZAkAZAIFAmlkAAEJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgV1c2VyXwUGd2FsbGV0AgxfZmF2b3JpdGVfaWQJAGQCBQd1c2VyX2lkAAEFA25pbAkAAgECVUVSUlJPUiAhLCBhZGRfdG9fZmF2b3JpdGVzLCBNRVNTQUdFOiBzb3JyeSB5b3UgYXJlIG5vdCBhbGxvdyB0byBpbnZva2UgdGhpcyBmdW5hY3Rpb24BAnR4AQZ2ZXJpZnkACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5OVpZmQ==", "height": 2542237, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: HV97ECnYtakj1gAo33mTXs6tGsdTQvbRbYvNDsQWgwCv Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let admin_wallet_one = "3MpDfDT359qSSmNFZnMeoPQpyJA2U1K51u5"
5+
6+let admin_wallet_two = "3N3DCngjidivkJbTJwFTEvbYRTffCWVBLCL"
7+
8+let admin_wallet_three = "3N8x9mb481i2k6cG7Q9XUV3e5nzh1mdzsNy"
9+
10+func check_admins_wallets (user_wallet) = if (if (if ((user_wallet == admin_wallet_one))
11+ then true
12+ else (user_wallet == admin_wallet_two))
13+ then true
14+ else (user_wallet == admin_wallet_three))
15+ then true
16+ else false
17+
18+
19+func tryGetInteger (key) = match getInteger(this, key) {
20+ case b: Int =>
21+ b
22+ case _ =>
23+ 0
24+}
25+
26+
27+@Callable(i)
28+func add_blog (publisher,titel,arweave_tx_id,signature,blog_cover) = if (if ((toString(i.caller) == publisher))
29+ then true
30+ else check_admins_wallets(toString(i.caller)))
31+ then {
32+ let tx_id = toBase58String(i.transactionId)
33+[StringEntry((("blog_" + tx_id) + "_publisher"), publisher), StringEntry((("blog_" + tx_id) + "_arweave_tx_id"), arweave_tx_id), StringEntry((("blog_" + tx_id) + "_signature"), signature), StringEntry((("blog_" + tx_id) + "_blog_cover"), blog_cover), StringEntry((("blog_" + tx_id) + "_titel"), titel)]
34+ }
35+ else throw("ERRROR !, add_blog, MESSAGE: sorry you are not allow to invoke this funaction")
36+
37+
38+
39+@Callable(i)
40+func add_story (publisher,titel,arweave_tx_id,signature,story_cover,description,tags,language,categorys,status) = if (if ((toString(i.caller) == publisher))
41+ then true
42+ else check_admins_wallets(toString(i.caller)))
43+ then {
44+ let tx_id = toBase58String(i.transactionId)
45+[StringEntry((("story_" + tx_id) + "_publisher"), publisher), StringEntry((("story_" + tx_id) + "_arweave_tx_id"), arweave_tx_id), StringEntry((("story_" + tx_id) + "_signature"), signature), StringEntry((("story_" + tx_id) + "_story_cover"), story_cover), StringEntry((("story_" + tx_id) + "_titel"), titel), StringEntry((("story_" + tx_id) + "_description"), description), StringEntry((("story_" + tx_id) + "_tags"), tags), StringEntry((("story_" + tx_id) + "_language"), language), StringEntry((("story_" + tx_id) + "_categorys"), categorys), StringEntry((("story_" + tx_id) + "_status"), status)]
46+ }
47+ else throw("ERRROR !, add_story, MESSAGE: sorry you are not allow to invoke this funaction")
48+
49+
50+
51+@Callable(i)
52+func add_chapter (story_tx_id,chapter_arweave_tx_id) = {
53+ let last_chapter_id = tryGetInteger((("Story_" + story_tx_id) + "_last_chapter_id"))
54+ let tx_id = toBase58String(i.transactionId)
55+[StringEntry(((("story_" + story_tx_id) + "_chapter_") + toString(last_chapter_id)), tx_id), StringEntry((("chapter_" + tx_id) + "_arweave_tx_id"), chapter_arweave_tx_id), StringEntry((("chapter_" + tx_id) + "_story_tx_id"), story_tx_id), IntegerEntry((("chapter_" + tx_id) + "_id"), last_chapter_id), IntegerEntry((("Story_" + story_tx_id) + "_last_chapter_id"), (last_chapter_id + 1))]
56+ }
57+
58+
59+
60+@Callable(i)
61+func set_user_data (wallet,name,image_link,cover_link,bio,google_analytics,twitter,telegram,yandex_analytics,notes) = if (if ((toString(i.caller) == wallet))
62+ then true
63+ else check_admins_wallets(toString(i.caller)))
64+ then [StringEntry((("user_" + wallet) + "_joined"), "yes"), StringEntry((("user_" + wallet) + "_name"), name), StringEntry((("user_" + wallet) + "_imageLink"), image_link), StringEntry((("user_" + wallet) + "_coverLink"), cover_link), StringEntry((("user_" + wallet) + "_bio"), bio), StringEntry((("user_" + wallet) + "_googleAnalytics"), google_analytics), StringEntry((("user_" + wallet) + "_yandexAnalytics"), yandex_analytics), StringEntry((("user_" + wallet) + "_twitter"), twitter), StringEntry((("user_" + wallet) + "_telegram"), telegram), StringEntry((("user_" + wallet) + "_notes"), notes)]
65+ else throw("ERRROR !, set_user_data, MESSAGE: sorry you are not allow to invoke this funaction")
66+
67+
68+
69+@Callable(i)
70+func set_verified_user (wallet,name,twitter,telegram,email,notes) = if (check_admins_wallets(toString(i.caller)))
71+ then [StringEntry((("user_" + wallet) + "_verified"), "yes"), StringEntry((("user_" + wallet) + "_verified_name"), name), StringEntry((("user_" + wallet) + "_verified_twitter"), twitter), StringEntry((("user_" + wallet) + "_verified_telegram"), telegram), StringEntry((("user_" + wallet) + "_verified_notes"), notes)]
72+ else throw("ERRROR !, set_verified_user, MESSAGE: sorry you are not allow to invoke this funaction")
73+
74+
75+
76+@Callable(i)
77+func add_blog_to_favorites (wallet,blog_tx_id) = if (if ((toString(i.caller) == wallet))
78+ then true
79+ else check_admins_wallets(toString(i.caller)))
80+ then {
81+ let id = tryGetInteger((("blog_" + blog_tx_id) + "_favorite_id"))
82+ let user_id = tryGetInteger((("user_" + wallet) + "_favorite_id"))
83+[StringEntry(((("user_" + wallet) + "_blog_favorite_") + toString(user_id)), blog_tx_id), StringEntry(((("blog_" + blog_tx_id) + "_favorite_") + toString(id)), wallet), IntegerEntry((("blog_" + blog_tx_id) + "_favorite_id"), (id + 1)), IntegerEntry((("user_" + wallet) + "_favorite_id"), (user_id + 1))]
84+ }
85+ else throw("ERRROR !, add_to_favorites, MESSAGE: sorry you are not allow to invoke this funaction")
86+
87+
88+
89+@Callable(i)
90+func add_story_to_favorites (wallet,story_tx_id) = if (if ((toString(i.caller) == wallet))
91+ then true
92+ else check_admins_wallets(toString(i.caller)))
93+ then {
94+ let id = tryGetInteger((("story_" + story_tx_id) + "_favorite_id"))
95+ let user_id = tryGetInteger((("user_" + wallet) + "_favorite_id"))
96+[StringEntry(((("user_" + wallet) + "_story_favorite_") + toString(user_id)), story_tx_id), StringEntry(((("story_" + story_tx_id) + "_favorite_") + toString(id)), wallet), IntegerEntry((("story_" + story_tx_id) + "_favorite_id"), (id + 1)), IntegerEntry((("user_" + wallet) + "_favorite_id"), (user_id + 1))]
97+ }
98+ else throw("ERRROR !, add_to_favorites, MESSAGE: sorry you are not allow to invoke this funaction")
99+
100+
101+@Verifier(tx)
102+func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
103+

github/deemru/w8io/026f985 
21.03 ms