tx · HV97ECnYtakj1gAo33mTXs6tGsdTQvbRbYvNDsQWgwCv 3N2kVUxYqFz4rHNgnVr7ffhsnC7DptJ1BzH: -0.01000000 Waves 2023.04.21 20:38 [2544629] smart account 3N2kVUxYqFz4rHNgnVr7ffhsnC7DptJ1BzH > SELF 0.00000000 Waves
{ "type": 13, "id": "HV97ECnYtakj1gAo33mTXs6tGsdTQvbRbYvNDsQWgwCv", "fee": 1000000, "feeAssetId": null, "timestamp": 1682098787107, "version": 2, "chainId": 84, "sender": "3N2kVUxYqFz4rHNgnVr7ffhsnC7DptJ1BzH", "senderPublicKey": "8cCvpHrqwPyT7CYYANjtE4ZUgLzCDCqFDMVAX5RRZMPN", "proofs": [ "QiF6nz9oN3gprfi6RNhgDdQtL5PVCnVpqu7JcU32YAeDXLz3Txz6yPGpMhticniUbNMSHxHjbnJiQ5yxN8XBJmN" ], "script": "base64:BgJNCAISBwoFCAgICAgSDAoKCAgICAgICAgICBIECgIICBIMCgoICAgICAgICAgIEggKBggICAgICBIDCgEIEgMKAQgSBAoCCAgSBAoCCAgFABBhZG1pbl93YWxsZXRfb25lAiMzTXBEZkRUMzU5cVNTbU5GWm5NZW9QUXB5SkEyVTFLNTF1NQAQYWRtaW5fd2FsbGV0X3R3bwIjM04zRENuZ2ppZGl2a0piVEp3RlRFdmJZUlRmZkNXVkJMQ0wAEmFkbWluX3dhbGxldF90aHJlZQIjM044eDltYjQ4MWkyazZjRzdROVhVVjNlNW56aDFtZHpzTnkBFGNoZWNrX2FkbWluc193YWxsZXRzAQt1c2VyX3dhbGxldAMDAwkAAAIFC3VzZXJfd2FsbGV0BRBhZG1pbl93YWxsZXRfb25lBgkAAAIFC3VzZXJfd2FsbGV0BRBhZG1pbl93YWxsZXRfdHdvBgkAAAIFC3VzZXJfd2FsbGV0BRJhZG1pbl93YWxsZXRfdGhyZWUGBwENdHJ5R2V0SW50ZWdlcgEDa2V5BAckbWF0Y2gwCQCaCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgNJbnQEAWIFByRtYXRjaDAFAWIAAAkBaQEIYWRkX2Jsb2cFCXB1Ymxpc2hlcgV0aXRlbA1hcndlYXZlX3R4X2lkCXNpZ25hdHVyZQpibG9nX2NvdmVyAwMJAAACCQClCAEIBQFpBmNhbGxlcgUJcHVibGlzaGVyBgkBFGNoZWNrX2FkbWluc193YWxsZXRzAQkApQgBCAUBaQZjYWxsZXIEBXR4X2lkCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQEBWJsb2NrBQlsYXN0QmxvY2sEDHB1Ymxpc2hfdGltZQgFBWJsb2NrCXRpbWVzdGFtcAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIFYmxvZ18FBXR4X2lkAgpfcHVibGlzaGVyBQlwdWJsaXNoZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBWJsb2dfBQV0eF9pZAIOX2Fyd2VhdmVfdHhfaWQFDWFyd2VhdmVfdHhfaWQJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBWJsb2dfBQV0eF9pZAIKX3NpZ25hdHVyZQUJc2lnbmF0dXJlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgVibG9nXwUFdHhfaWQCC19ibG9nX2NvdmVyBQpibG9nX2NvdmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgVibG9nXwUFdHhfaWQCBl90aXRlbAUFdGl0ZWwJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgVibG9nXwUFdHhfaWQCDV9wdWJsaXNoX3RpbWUFDHB1Ymxpc2hfdGltZQUDbmlsCQACAQJNRVJSUk9SICEsIGFkZF9ibG9nLCBNRVNTQUdFOiBzb3JyeSB5b3UgYXJlIG5vdCBhbGxvdyB0byBpbnZva2UgdGhpcyBmdW5hY3Rpb24BaQEJYWRkX3N0b3J5CglwdWJsaXNoZXIFdGl0ZWwNYXJ3ZWF2ZV90eF9pZAlzaWduYXR1cmULc3RvcnlfY292ZXILZGVzY3JpcHRpb24EdGFncwhsYW5ndWFnZQljYXRlZ29yeXMGc3RhdHVzAwMJAAACCQClCAEIBQFpBmNhbGxlcgUJcHVibGlzaGVyBgkBFGNoZWNrX2FkbWluc193YWxsZXRzAQkApQgBCAUBaQZjYWxsZXIEBXR4X2lkCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQEBWJsb2NrBQlsYXN0QmxvY2sEDHB1Ymxpc2hfdGltZQgFBWJsb2NrCXRpbWVzdGFtcAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIGc3RvcnlfBQV0eF9pZAIKX3B1Ymxpc2hlcgUJcHVibGlzaGVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgZzdG9yeV8FBXR4X2lkAg5fYXJ3ZWF2ZV90eF9pZAUNYXJ3ZWF2ZV90eF9pZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIGc3RvcnlfBQV0eF9pZAIKX3NpZ25hdHVyZQUJc2lnbmF0dXJlCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgZzdG9yeV8FBXR4X2lkAgxfc3RvcnlfY292ZXIFC3N0b3J5X2NvdmVyCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgZzdG9yeV8FBXR4X2lkAgZfdGl0ZWwFBXRpdGVsCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgZzdG9yeV8FBXR4X2lkAgxfZGVzY3JpcHRpb24FC2Rlc2NyaXB0aW9uCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgZzdG9yeV8FBXR4X2lkAgVfdGFncwUEdGFncwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIGc3RvcnlfBQV0eF9pZAIJX2xhbmd1YWdlBQhsYW5ndWFnZQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIGc3RvcnlfBQV0eF9pZAIKX2NhdGVnb3J5cwUJY2F0ZWdvcnlzCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgZzdG9yeV8FBXR4X2lkAgdfc3RhdHVzBQZzdGF0dXMJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgZzdG9yeV8FBXR4X2lkAg1fcHVibGlzaF90aW1lBQxwdWJsaXNoX3RpbWUFA25pbAkAAgECTkVSUlJPUiAhLCBhZGRfc3RvcnksIE1FU1NBR0U6IHNvcnJ5IHlvdSBhcmUgbm90IGFsbG93IHRvIGludm9rZSB0aGlzIGZ1bmFjdGlvbgFpAQthZGRfY2hhcHRlcgILc3RvcnlfdHhfaWQVY2hhcHRlcl9hcndlYXZlX3R4X2lkBA9sYXN0X2NoYXB0ZXJfaWQJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICBlN0b3J5XwULc3RvcnlfdHhfaWQCEF9sYXN0X2NoYXB0ZXJfaWQEBXR4X2lkCQDYBAEIBQFpDXRyYW5zYWN0aW9uSWQEBWJsb2NrBQlsYXN0QmxvY2sEDHB1Ymxpc2hfdGltZQgFBWJsb2NrCXRpbWVzdGFtcAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICAgZzdG9yeV8FC3N0b3J5X3R4X2lkAglfY2hhcHRlcl8JAKQDAQUPbGFzdF9jaGFwdGVyX2lkBQV0eF9pZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIIY2hhcHRlcl8FBXR4X2lkAg5fYXJ3ZWF2ZV90eF9pZAUVY2hhcHRlcl9hcndlYXZlX3R4X2lkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAghjaGFwdGVyXwUFdHhfaWQCDF9zdG9yeV90eF9pZAULc3RvcnlfdHhfaWQJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAghjaGFwdGVyXwUFdHhfaWQCA19pZAUPbGFzdF9jaGFwdGVyX2lkCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgIGc3RvcnlfBQtzdG9yeV90eF9pZAIQX2xhc3RfY2hhcHRlcl9pZAkAZAIFD2xhc3RfY2hhcHRlcl9pZAABCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgIIY2hhcHRlcl8FBXR4X2lkAg1fcHVibGlzaF90aW1lBQxwdWJsaXNoX3RpbWUFA25pbAFpAQ1zZXRfdXNlcl9kYXRhCgZ3YWxsZXQEbmFtZQppbWFnZV9saW5rCmNvdmVyX2xpbmsDYmlvEGdvb2dsZV9hbmFseXRpY3MHdHdpdHRlcgh0ZWxlZ3JhbRB5YW5kZXhfYW5hbHl0aWNzBW5vdGVzAwMJAAACCQClCAEIBQFpBmNhbGxlcgUGd2FsbGV0BgkBFGNoZWNrX2FkbWluc193YWxsZXRzAQkApQgBCAUBaQZjYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBXVzZXJfBQZ3YWxsZXQCB19qb2luZWQCA3llcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIFdXNlcl8FBndhbGxldAIFX25hbWUFBG5hbWUJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBXVzZXJfBQZ3YWxsZXQCCl9pbWFnZUxpbmsFCmltYWdlX2xpbmsJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBXVzZXJfBQZ3YWxsZXQCCl9jb3ZlckxpbmsFCmNvdmVyX2xpbmsJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBXVzZXJfBQZ3YWxsZXQCBF9iaW8FA2JpbwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIFdXNlcl8FBndhbGxldAIQX2dvb2dsZUFuYWx5dGljcwUQZ29vZ2xlX2FuYWx5dGljcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIFdXNlcl8FBndhbGxldAIQX3lhbmRleEFuYWx5dGljcwUQeWFuZGV4X2FuYWx5dGljcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIFdXNlcl8FBndhbGxldAIIX3R3aXR0ZXIFB3R3aXR0ZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBXVzZXJfBQZ3YWxsZXQCCV90ZWxlZ3JhbQUIdGVsZWdyYW0JAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBXVzZXJfBQZ3YWxsZXQCBl9ub3RlcwUFbm90ZXMFA25pbAkAAgECUkVSUlJPUiAhLCBzZXRfdXNlcl9kYXRhLCBNRVNTQUdFOiBzb3JyeSB5b3UgYXJlIG5vdCBhbGxvdyB0byBpbnZva2UgdGhpcyBmdW5hY3Rpb24BaQERc2V0X3ZlcmlmaWVkX3VzZXIGBndhbGxldARuYW1lB3R3aXR0ZXIIdGVsZWdyYW0FZW1haWwFbm90ZXMDCQEUY2hlY2tfYWRtaW5zX3dhbGxldHMBCQClCAEIBQFpBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIFdXNlcl8FBndhbGxldAIJX3ZlcmlmaWVkAgN5ZXMJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgICBXVzZXJfBQZ3YWxsZXQCDl92ZXJpZmllZF9uYW1lBQRuYW1lCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICAgV1c2VyXwUGd2FsbGV0AhFfdmVyaWZpZWRfdHdpdHRlcgUHdHdpdHRlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIFdXNlcl8FBndhbGxldAISX3ZlcmlmaWVkX3RlbGVncmFtBQh0ZWxlZ3JhbQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgIFdXNlcl8FBndhbGxldAIPX3ZlcmlmaWVkX25vdGVzBQVub3RlcwUDbmlsCQACAQJWRVJSUk9SICEsIHNldF92ZXJpZmllZF91c2VyLCBNRVNTQUdFOiBzb3JyeSB5b3UgYXJlIG5vdCBhbGxvdyB0byBpbnZva2UgdGhpcyBmdW5hY3Rpb24BaQELZm9sbG93X3VzZXIBBndhbGxldAQGY2FsbGVyCQClCAEIBQFpBmNhbGxlcgkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICAgV1c2VyXwUGd2FsbGV0Ag1fZm9sbG93ZWRfYnlfBQZjYWxsZXICA3llcwkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICAgV1c2VyXwUGY2FsbGVyAgdfZm9sbG93BQZ3YWxsZXQCA3llcwUDbmlsAWkBDnVuX2ZvbGxvd191c2VyAQZ3YWxsZXQEBmNhbGxlcgkApQgBCAUBaQZjYWxsZXIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkArAICCQCsAgIJAKwCAgIFdXNlcl8FBndhbGxldAINX2ZvbGxvd2VkX2J5XwUGY2FsbGVyCQDMCAIJAQtEZWxldGVFbnRyeQEJAKwCAgkArAICCQCsAgICBXVzZXJfBQZjYWxsZXICB19mb2xsb3cFBndhbGxldAUDbmlsAWkBFWFkZF9ibG9nX3RvX2Zhdm9yaXRlcwIGd2FsbGV0CmJsb2dfdHhfaWQDAwkAAAIJAKUIAQgFAWkGY2FsbGVyBQZ3YWxsZXQGCQEUY2hlY2tfYWRtaW5zX3dhbGxldHMBCQClCAEIBQFpBmNhbGxlcgQCaWQJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICBWJsb2dfBQpibG9nX3R4X2lkAgxfZmF2b3JpdGVfaWQEB3VzZXJfaWQJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICBXVzZXJfBQZ3YWxsZXQCDF9mYXZvcml0ZV9pZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICAgV1c2VyXwUGd2FsbGV0Ag9fYmxvZ19mYXZvcml0ZV8JAKQDAQUHdXNlcl9pZAUKYmxvZ190eF9pZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICAgVibG9nXwUKYmxvZ190eF9pZAIKX2Zhdm9yaXRlXwkApAMBBQJpZAUGd2FsbGV0CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQCsAgIJAKwCAgIFYmxvZ18FCmJsb2dfdHhfaWQCDF9mYXZvcml0ZV9pZAkAZAIFAmlkAAEJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgV1c2VyXwUGd2FsbGV0AgxfZmF2b3JpdGVfaWQJAGQCBQd1c2VyX2lkAAEFA25pbAkAAgECVUVSUlJPUiAhLCBhZGRfdG9fZmF2b3JpdGVzLCBNRVNTQUdFOiBzb3JyeSB5b3UgYXJlIG5vdCBhbGxvdyB0byBpbnZva2UgdGhpcyBmdW5hY3Rpb24BaQEWYWRkX3N0b3J5X3RvX2Zhdm9yaXRlcwIGd2FsbGV0C3N0b3J5X3R4X2lkAwMJAAACCQClCAEIBQFpBmNhbGxlcgUGd2FsbGV0BgkBFGNoZWNrX2FkbWluc193YWxsZXRzAQkApQgBCAUBaQZjYWxsZXIEAmlkCQENdHJ5R2V0SW50ZWdlcgEJAKwCAgkArAICAgZzdG9yeV8FC3N0b3J5X3R4X2lkAgxfZmF2b3JpdGVfaWQEB3VzZXJfaWQJAQ10cnlHZXRJbnRlZ2VyAQkArAICCQCsAgICBXVzZXJfBQZ3YWxsZXQCDF9mYXZvcml0ZV9pZAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICAgV1c2VyXwUGd2FsbGV0AhBfc3RvcnlfZmF2b3JpdGVfCQCkAwEFB3VzZXJfaWQFC3N0b3J5X3R4X2lkCQDMCAIJAQtTdHJpbmdFbnRyeQIJAKwCAgkArAICCQCsAgICBnN0b3J5XwULc3RvcnlfdHhfaWQCCl9mYXZvcml0ZV8JAKQDAQUCaWQFBndhbGxldAkAzAgCCQEMSW50ZWdlckVudHJ5AgkArAICCQCsAgICBnN0b3J5XwULc3RvcnlfdHhfaWQCDF9mYXZvcml0ZV9pZAkAZAIFAmlkAAEJAMwIAgkBDEludGVnZXJFbnRyeQIJAKwCAgkArAICAgV1c2VyXwUGd2FsbGV0AgxfZmF2b3JpdGVfaWQJAGQCBQd1c2VyX2lkAAEFA25pbAkAAgECVUVSUlJPUiAhLCBhZGRfdG9fZmF2b3JpdGVzLCBNRVNTQUdFOiBzb3JyeSB5b3UgYXJlIG5vdCBhbGxvdyB0byBpbnZva2UgdGhpcyBmdW5hY3Rpb24BAnR4AQZ2ZXJpZnkACQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5Hc/irA==", "height": 2544629, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DLmy1qSAcEb1sHcSKFLR4Xfbwe7NnYde15pgqNPSVsbp Next: BqfhcdR9oTcC49QSDQt6k6pKk5XAxGZHJin2XqjTdfSh Diff:
Old | New | Differences | |
---|---|---|---|
33 | 33 | else d(toString(j.caller))) | |
34 | 34 | then { | |
35 | 35 | let p = toBase58String(j.transactionId) | |
36 | - | [StringEntry((("blog_" + p) + "_publisher"), k), StringEntry((("blog_" + p) + "_arweave_tx_id"), m), StringEntry((("blog_" + p) + "_signature"), n), StringEntry((("blog_" + p) + "_blog_cover"), o), StringEntry((("blog_" + p) + "_titel"), l)] | |
36 | + | let q = lastBlock | |
37 | + | let r = q.timestamp | |
38 | + | [StringEntry((("blog_" + p) + "_publisher"), k), StringEntry((("blog_" + p) + "_arweave_tx_id"), m), StringEntry((("blog_" + p) + "_signature"), n), StringEntry((("blog_" + p) + "_blog_cover"), o), StringEntry((("blog_" + p) + "_titel"), l), IntegerEntry((("blog_" + p) + "_publish_time"), r)] | |
37 | 39 | } | |
38 | 40 | else throw("ERRROR !, add_blog, MESSAGE: sorry you are not allow to invoke this funaction") | |
39 | 41 | ||
40 | 42 | ||
41 | 43 | ||
42 | 44 | @Callable(j) | |
43 | - | func add_story (k,l,m,n, | |
45 | + | func add_story (k,l,m,n,s,t,u,v,w,x) = if (if ((toString(j.caller) == k)) | |
44 | 46 | then true | |
45 | 47 | else d(toString(j.caller))) | |
46 | 48 | then { | |
47 | 49 | let p = toBase58String(j.transactionId) | |
48 | - | [StringEntry((("story_" + p) + "_publisher"), k), StringEntry((("story_" + p) + "_arweave_tx_id"), m), StringEntry((("story_" + p) + "_signature"), n), StringEntry((("story_" + p) + "_story_cover"), q), StringEntry((("story_" + p) + "_titel"), l), StringEntry((("story_" + p) + "_description"), r), StringEntry((("story_" + p) + "_tags"), s), StringEntry((("story_" + p) + "_language"), t), StringEntry((("story_" + p) + "_categorys"), u), StringEntry((("story_" + p) + "_status"), v)] | |
50 | + | let q = lastBlock | |
51 | + | let r = q.timestamp | |
52 | + | [StringEntry((("story_" + p) + "_publisher"), k), StringEntry((("story_" + p) + "_arweave_tx_id"), m), StringEntry((("story_" + p) + "_signature"), n), StringEntry((("story_" + p) + "_story_cover"), s), StringEntry((("story_" + p) + "_titel"), l), StringEntry((("story_" + p) + "_description"), t), StringEntry((("story_" + p) + "_tags"), u), StringEntry((("story_" + p) + "_language"), v), StringEntry((("story_" + p) + "_categorys"), w), StringEntry((("story_" + p) + "_status"), x), IntegerEntry((("story_" + p) + "_publish_time"), r)] | |
49 | 53 | } | |
50 | 54 | else throw("ERRROR !, add_story, MESSAGE: sorry you are not allow to invoke this funaction") | |
51 | 55 | ||
52 | 56 | ||
53 | 57 | ||
54 | 58 | @Callable(j) | |
55 | - | func add_chapter ( | |
56 | - | let | |
59 | + | func add_chapter (y,z) = { | |
60 | + | let A = f((("Story_" + y) + "_last_chapter_id")) | |
57 | 61 | let p = toBase58String(j.transactionId) | |
58 | - | [StringEntry(((("story_" + w) + "_chapter_") + toString(y)), p), StringEntry((("chapter_" + p) + "_arweave_tx_id"), x), StringEntry((("chapter_" + p) + "_story_tx_id"), w), IntegerEntry((("chapter_" + p) + "_id"), y), IntegerEntry((("Story_" + w) + "_last_chapter_id"), (y + 1))] | |
62 | + | let q = lastBlock | |
63 | + | let r = q.timestamp | |
64 | + | [StringEntry(((("story_" + y) + "_chapter_") + toString(A)), p), StringEntry((("chapter_" + p) + "_arweave_tx_id"), z), StringEntry((("chapter_" + p) + "_story_tx_id"), y), IntegerEntry((("chapter_" + p) + "_id"), A), IntegerEntry((("story_" + y) + "_last_chapter_id"), (A + 1)), IntegerEntry((("chapter_" + p) + "_publish_time"), r)] | |
59 | 65 | } | |
60 | 66 | ||
61 | 67 | ||
62 | 68 | ||
63 | 69 | @Callable(j) | |
64 | - | func set_user_data ( | |
70 | + | func set_user_data (B,C,D,E,F,G,H,I,J,K) = if (if ((toString(j.caller) == B)) | |
65 | 71 | then true | |
66 | 72 | else d(toString(j.caller))) | |
67 | - | then [StringEntry((("user_" + | |
73 | + | then [StringEntry((("user_" + B) + "_joined"), "yes"), StringEntry((("user_" + B) + "_name"), C), StringEntry((("user_" + B) + "_imageLink"), D), StringEntry((("user_" + B) + "_coverLink"), E), StringEntry((("user_" + B) + "_bio"), F), StringEntry((("user_" + B) + "_googleAnalytics"), G), StringEntry((("user_" + B) + "_yandexAnalytics"), J), StringEntry((("user_" + B) + "_twitter"), H), StringEntry((("user_" + B) + "_telegram"), I), StringEntry((("user_" + B) + "_notes"), K)] | |
68 | 74 | else throw("ERRROR !, set_user_data, MESSAGE: sorry you are not allow to invoke this funaction") | |
69 | 75 | ||
70 | 76 | ||
71 | 77 | ||
72 | 78 | @Callable(j) | |
73 | - | func set_verified_user ( | |
74 | - | then [StringEntry((("user_" + | |
79 | + | func set_verified_user (B,C,H,I,L,K) = if (d(toString(j.caller))) | |
80 | + | then [StringEntry((("user_" + B) + "_verified"), "yes"), StringEntry((("user_" + B) + "_verified_name"), C), StringEntry((("user_" + B) + "_verified_twitter"), H), StringEntry((("user_" + B) + "_verified_telegram"), I), StringEntry((("user_" + B) + "_verified_notes"), K)] | |
75 | 81 | else throw("ERRROR !, set_verified_user, MESSAGE: sorry you are not allow to invoke this funaction") | |
76 | 82 | ||
77 | 83 | ||
78 | 84 | ||
79 | 85 | @Callable(j) | |
80 | - | func add_blog_to_favorites (z,K) = if (if ((toString(j.caller) == z)) | |
86 | + | func follow_user (B) = { | |
87 | + | let M = toString(j.caller) | |
88 | + | [StringEntry(((("user_" + B) + "_followed_by_") + M), "yes"), StringEntry(((("user_" + M) + "_follow") + B), "yes")] | |
89 | + | } | |
90 | + | ||
91 | + | ||
92 | + | ||
93 | + | @Callable(j) | |
94 | + | func un_follow_user (B) = { | |
95 | + | let M = toString(j.caller) | |
96 | + | [DeleteEntry(((("user_" + B) + "_followed_by_") + M)), DeleteEntry(((("user_" + M) + "_follow") + B))] | |
97 | + | } | |
98 | + | ||
99 | + | ||
100 | + | ||
101 | + | @Callable(j) | |
102 | + | func add_blog_to_favorites (B,N) = if (if ((toString(j.caller) == B)) | |
81 | 103 | then true | |
82 | 104 | else d(toString(j.caller))) | |
83 | 105 | then { | |
84 | - | let | |
85 | - | let | |
86 | - | [StringEntry(((("user_" + | |
106 | + | let O = f((("blog_" + N) + "_favorite_id")) | |
107 | + | let P = f((("user_" + B) + "_favorite_id")) | |
108 | + | [StringEntry(((("user_" + B) + "_blog_favorite_") + toString(P)), N), StringEntry(((("blog_" + N) + "_favorite_") + toString(O)), B), IntegerEntry((("blog_" + N) + "_favorite_id"), (O + 1)), IntegerEntry((("user_" + B) + "_favorite_id"), (P + 1))] | |
87 | 109 | } | |
88 | 110 | else throw("ERRROR !, add_to_favorites, MESSAGE: sorry you are not allow to invoke this funaction") | |
89 | 111 | ||
90 | 112 | ||
91 | 113 | ||
92 | 114 | @Callable(j) | |
93 | - | func add_story_to_favorites ( | |
115 | + | func add_story_to_favorites (B,y) = if (if ((toString(j.caller) == B)) | |
94 | 116 | then true | |
95 | 117 | else d(toString(j.caller))) | |
96 | 118 | then { | |
97 | - | let | |
98 | - | let | |
99 | - | [StringEntry(((("user_" + | |
119 | + | let O = f((("story_" + y) + "_favorite_id")) | |
120 | + | let P = f((("user_" + B) + "_favorite_id")) | |
121 | + | [StringEntry(((("user_" + B) + "_story_favorite_") + toString(P)), y), StringEntry(((("story_" + y) + "_favorite_") + toString(O)), B), IntegerEntry((("story_" + y) + "_favorite_id"), (O + 1)), IntegerEntry((("user_" + B) + "_favorite_id"), (P + 1))] | |
100 | 122 | } | |
101 | 123 | else throw("ERRROR !, add_to_favorites, MESSAGE: sorry you are not allow to invoke this funaction") | |
102 | 124 | ||
103 | 125 | ||
104 | - | @Verifier( | |
105 | - | func | |
126 | + | @Verifier(Q) | |
127 | + | func R () = sigVerify(Q.bodyBytes, Q.proofs[0], Q.senderPublicKey) | |
106 | 128 |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | let a = "3MpDfDT359qSSmNFZnMeoPQpyJA2U1K51u5" | |
5 | 5 | ||
6 | 6 | let b = "3N3DCngjidivkJbTJwFTEvbYRTffCWVBLCL" | |
7 | 7 | ||
8 | 8 | let c = "3N8x9mb481i2k6cG7Q9XUV3e5nzh1mdzsNy" | |
9 | 9 | ||
10 | 10 | func d (e) = if (if (if ((e == a)) | |
11 | 11 | then true | |
12 | 12 | else (e == b)) | |
13 | 13 | then true | |
14 | 14 | else (e == c)) | |
15 | 15 | then true | |
16 | 16 | else false | |
17 | 17 | ||
18 | 18 | ||
19 | 19 | func f (g) = { | |
20 | 20 | let h = getInteger(this, g) | |
21 | 21 | if ($isInstanceOf(h, "Int")) | |
22 | 22 | then { | |
23 | 23 | let i = h | |
24 | 24 | i | |
25 | 25 | } | |
26 | 26 | else 0 | |
27 | 27 | } | |
28 | 28 | ||
29 | 29 | ||
30 | 30 | @Callable(j) | |
31 | 31 | func add_blog (k,l,m,n,o) = if (if ((toString(j.caller) == k)) | |
32 | 32 | then true | |
33 | 33 | else d(toString(j.caller))) | |
34 | 34 | then { | |
35 | 35 | let p = toBase58String(j.transactionId) | |
36 | - | [StringEntry((("blog_" + p) + "_publisher"), k), StringEntry((("blog_" + p) + "_arweave_tx_id"), m), StringEntry((("blog_" + p) + "_signature"), n), StringEntry((("blog_" + p) + "_blog_cover"), o), StringEntry((("blog_" + p) + "_titel"), l)] | |
36 | + | let q = lastBlock | |
37 | + | let r = q.timestamp | |
38 | + | [StringEntry((("blog_" + p) + "_publisher"), k), StringEntry((("blog_" + p) + "_arweave_tx_id"), m), StringEntry((("blog_" + p) + "_signature"), n), StringEntry((("blog_" + p) + "_blog_cover"), o), StringEntry((("blog_" + p) + "_titel"), l), IntegerEntry((("blog_" + p) + "_publish_time"), r)] | |
37 | 39 | } | |
38 | 40 | else throw("ERRROR !, add_blog, MESSAGE: sorry you are not allow to invoke this funaction") | |
39 | 41 | ||
40 | 42 | ||
41 | 43 | ||
42 | 44 | @Callable(j) | |
43 | - | func add_story (k,l,m,n, | |
45 | + | func add_story (k,l,m,n,s,t,u,v,w,x) = if (if ((toString(j.caller) == k)) | |
44 | 46 | then true | |
45 | 47 | else d(toString(j.caller))) | |
46 | 48 | then { | |
47 | 49 | let p = toBase58String(j.transactionId) | |
48 | - | [StringEntry((("story_" + p) + "_publisher"), k), StringEntry((("story_" + p) + "_arweave_tx_id"), m), StringEntry((("story_" + p) + "_signature"), n), StringEntry((("story_" + p) + "_story_cover"), q), StringEntry((("story_" + p) + "_titel"), l), StringEntry((("story_" + p) + "_description"), r), StringEntry((("story_" + p) + "_tags"), s), StringEntry((("story_" + p) + "_language"), t), StringEntry((("story_" + p) + "_categorys"), u), StringEntry((("story_" + p) + "_status"), v)] | |
50 | + | let q = lastBlock | |
51 | + | let r = q.timestamp | |
52 | + | [StringEntry((("story_" + p) + "_publisher"), k), StringEntry((("story_" + p) + "_arweave_tx_id"), m), StringEntry((("story_" + p) + "_signature"), n), StringEntry((("story_" + p) + "_story_cover"), s), StringEntry((("story_" + p) + "_titel"), l), StringEntry((("story_" + p) + "_description"), t), StringEntry((("story_" + p) + "_tags"), u), StringEntry((("story_" + p) + "_language"), v), StringEntry((("story_" + p) + "_categorys"), w), StringEntry((("story_" + p) + "_status"), x), IntegerEntry((("story_" + p) + "_publish_time"), r)] | |
49 | 53 | } | |
50 | 54 | else throw("ERRROR !, add_story, MESSAGE: sorry you are not allow to invoke this funaction") | |
51 | 55 | ||
52 | 56 | ||
53 | 57 | ||
54 | 58 | @Callable(j) | |
55 | - | func add_chapter ( | |
56 | - | let | |
59 | + | func add_chapter (y,z) = { | |
60 | + | let A = f((("Story_" + y) + "_last_chapter_id")) | |
57 | 61 | let p = toBase58String(j.transactionId) | |
58 | - | [StringEntry(((("story_" + w) + "_chapter_") + toString(y)), p), StringEntry((("chapter_" + p) + "_arweave_tx_id"), x), StringEntry((("chapter_" + p) + "_story_tx_id"), w), IntegerEntry((("chapter_" + p) + "_id"), y), IntegerEntry((("Story_" + w) + "_last_chapter_id"), (y + 1))] | |
62 | + | let q = lastBlock | |
63 | + | let r = q.timestamp | |
64 | + | [StringEntry(((("story_" + y) + "_chapter_") + toString(A)), p), StringEntry((("chapter_" + p) + "_arweave_tx_id"), z), StringEntry((("chapter_" + p) + "_story_tx_id"), y), IntegerEntry((("chapter_" + p) + "_id"), A), IntegerEntry((("story_" + y) + "_last_chapter_id"), (A + 1)), IntegerEntry((("chapter_" + p) + "_publish_time"), r)] | |
59 | 65 | } | |
60 | 66 | ||
61 | 67 | ||
62 | 68 | ||
63 | 69 | @Callable(j) | |
64 | - | func set_user_data ( | |
70 | + | func set_user_data (B,C,D,E,F,G,H,I,J,K) = if (if ((toString(j.caller) == B)) | |
65 | 71 | then true | |
66 | 72 | else d(toString(j.caller))) | |
67 | - | then [StringEntry((("user_" + | |
73 | + | then [StringEntry((("user_" + B) + "_joined"), "yes"), StringEntry((("user_" + B) + "_name"), C), StringEntry((("user_" + B) + "_imageLink"), D), StringEntry((("user_" + B) + "_coverLink"), E), StringEntry((("user_" + B) + "_bio"), F), StringEntry((("user_" + B) + "_googleAnalytics"), G), StringEntry((("user_" + B) + "_yandexAnalytics"), J), StringEntry((("user_" + B) + "_twitter"), H), StringEntry((("user_" + B) + "_telegram"), I), StringEntry((("user_" + B) + "_notes"), K)] | |
68 | 74 | else throw("ERRROR !, set_user_data, MESSAGE: sorry you are not allow to invoke this funaction") | |
69 | 75 | ||
70 | 76 | ||
71 | 77 | ||
72 | 78 | @Callable(j) | |
73 | - | func set_verified_user ( | |
74 | - | then [StringEntry((("user_" + | |
79 | + | func set_verified_user (B,C,H,I,L,K) = if (d(toString(j.caller))) | |
80 | + | then [StringEntry((("user_" + B) + "_verified"), "yes"), StringEntry((("user_" + B) + "_verified_name"), C), StringEntry((("user_" + B) + "_verified_twitter"), H), StringEntry((("user_" + B) + "_verified_telegram"), I), StringEntry((("user_" + B) + "_verified_notes"), K)] | |
75 | 81 | else throw("ERRROR !, set_verified_user, MESSAGE: sorry you are not allow to invoke this funaction") | |
76 | 82 | ||
77 | 83 | ||
78 | 84 | ||
79 | 85 | @Callable(j) | |
80 | - | func add_blog_to_favorites (z,K) = if (if ((toString(j.caller) == z)) | |
86 | + | func follow_user (B) = { | |
87 | + | let M = toString(j.caller) | |
88 | + | [StringEntry(((("user_" + B) + "_followed_by_") + M), "yes"), StringEntry(((("user_" + M) + "_follow") + B), "yes")] | |
89 | + | } | |
90 | + | ||
91 | + | ||
92 | + | ||
93 | + | @Callable(j) | |
94 | + | func un_follow_user (B) = { | |
95 | + | let M = toString(j.caller) | |
96 | + | [DeleteEntry(((("user_" + B) + "_followed_by_") + M)), DeleteEntry(((("user_" + M) + "_follow") + B))] | |
97 | + | } | |
98 | + | ||
99 | + | ||
100 | + | ||
101 | + | @Callable(j) | |
102 | + | func add_blog_to_favorites (B,N) = if (if ((toString(j.caller) == B)) | |
81 | 103 | then true | |
82 | 104 | else d(toString(j.caller))) | |
83 | 105 | then { | |
84 | - | let | |
85 | - | let | |
86 | - | [StringEntry(((("user_" + | |
106 | + | let O = f((("blog_" + N) + "_favorite_id")) | |
107 | + | let P = f((("user_" + B) + "_favorite_id")) | |
108 | + | [StringEntry(((("user_" + B) + "_blog_favorite_") + toString(P)), N), StringEntry(((("blog_" + N) + "_favorite_") + toString(O)), B), IntegerEntry((("blog_" + N) + "_favorite_id"), (O + 1)), IntegerEntry((("user_" + B) + "_favorite_id"), (P + 1))] | |
87 | 109 | } | |
88 | 110 | else throw("ERRROR !, add_to_favorites, MESSAGE: sorry you are not allow to invoke this funaction") | |
89 | 111 | ||
90 | 112 | ||
91 | 113 | ||
92 | 114 | @Callable(j) | |
93 | - | func add_story_to_favorites ( | |
115 | + | func add_story_to_favorites (B,y) = if (if ((toString(j.caller) == B)) | |
94 | 116 | then true | |
95 | 117 | else d(toString(j.caller))) | |
96 | 118 | then { | |
97 | - | let | |
98 | - | let | |
99 | - | [StringEntry(((("user_" + | |
119 | + | let O = f((("story_" + y) + "_favorite_id")) | |
120 | + | let P = f((("user_" + B) + "_favorite_id")) | |
121 | + | [StringEntry(((("user_" + B) + "_story_favorite_") + toString(P)), y), StringEntry(((("story_" + y) + "_favorite_") + toString(O)), B), IntegerEntry((("story_" + y) + "_favorite_id"), (O + 1)), IntegerEntry((("user_" + B) + "_favorite_id"), (P + 1))] | |
100 | 122 | } | |
101 | 123 | else throw("ERRROR !, add_to_favorites, MESSAGE: sorry you are not allow to invoke this funaction") | |
102 | 124 | ||
103 | 125 | ||
104 | - | @Verifier( | |
105 | - | func | |
126 | + | @Verifier(Q) | |
127 | + | func R () = sigVerify(Q.bodyBytes, Q.proofs[0], Q.senderPublicKey) | |
106 | 128 |
github/deemru/w8io/026f985 52.54 ms ◑