tx · 3JGejpD9VKQ6YLDtBh9pYXDZ4GymzwT2mG9YSJmzhAaE 3NC2gxrsMW5rEBsJCVMjJwBhcB3nnBrUG4f: -0.01000000 Waves 2023.11.30 02:08 [2865337] smart account 3NC2gxrsMW5rEBsJCVMjJwBhcB3nnBrUG4f > SELF 0.00000000 Waves
{ "type": 13, "id": "3JGejpD9VKQ6YLDtBh9pYXDZ4GymzwT2mG9YSJmzhAaE", "fee": 1000000, "feeAssetId": null, "timestamp": 1701299321136, "version": 2, "chainId": 84, "sender": "3NC2gxrsMW5rEBsJCVMjJwBhcB3nnBrUG4f", "senderPublicKey": "E1AzspvmVgU66Pn9sgPQTc586F4eJ4nnWDadbPWyqqXN", "proofs": [ "t67fyQ5uDqtSyC6aEz6X4wmFV2WLP3KbqkiACzdDqdxSJarXXghHpZ2f9nSfLw9MEXRTBAkFKwTdfBMBzcdGkyP" ], "script": "base64:BgIUCAISBQoDCAgCEgQKAggCEgMKAQgBAAZGSVZFX0sJAGgCAAUAgAgDAWkBD2lzc3VlQW5kU2F2ZU5mdAMEbmFtZQtkZXNjcmlwdGlvbgdjb250ZW50BAVpc3N1ZQkAwggFBQRuYW1lBQtkZXNjcmlwdGlvbgABAAAHBAJpZAkA2AQBCQC4CAEFBWlzc3VlAwkAZgIJAMgBAQUHY29udGVudAkAaAIAAwUGRklWRV9LCQACAQIedG9vIGJpZyBjb250ZW50LCBtYXggMTVLIGJ5dGVzBAJjMAMJAGYCCQDIAQEFB2NvbnRlbnQJAGgCAAIFBkZJVkVfSwQLcGFydFJlc3VsdDEJAPwHBAUEdGhpcwIIc2F2ZVBhcnQJAMwIAgkArAICBQJpZAICXzEJAMwIAgkAyQECCQDKAQIFB2NvbnRlbnQFBkZJVkVfSwUGRklWRV9LBQNuaWwFA25pbAMJAAACBQtwYXJ0UmVzdWx0MQULcGFydFJlc3VsdDEEC3BhcnRSZXN1bHQyCQD8BwQFBHRoaXMCCHNhdmVQYXJ0CQDMCAIJAKwCAgUCaWQCAl8yCQDMCAIJAMoBAgUHY29udGVudAkAaAIAAgUGRklWRV9LBQNuaWwFA25pbAMJAAACBQtwYXJ0UmVzdWx0MgULcGFydFJlc3VsdDIJAMkBAgUHY29udGVudAUGRklWRV9LCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAZgIJAMgBAQUHY29udGVudAUGRklWRV9LBAtwYXJ0UmVzdWx0MQkA/AcEBQR0aGlzAghzYXZlUGFydAkAzAgCCQCsAgIFAmlkAgJfMQkAzAgCCQDKAQIFB2NvbnRlbnQFBkZJVkVfSwUDbmlsBQNuaWwDCQAAAgULcGFydFJlc3VsdDEFC3BhcnRSZXN1bHQxCQDJAQIFB2NvbnRlbnQFBkZJVkVfSwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgUHY29udGVudAkAlAoCCQDMCAIFBWlzc3VlCQDMCAIJAQtCaW5hcnlFbnRyeQIJAKwCAgUCaWQCAl8wBQJjMAUDbmlsBQJpZAFpAQhzYXZlUGFydAIDa2V5BHBhcnQDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAhFwZXJtaXNzaW9uIGRlbmllZAkAlAoCCQDMCAIJAQtCaW5hcnlFbnRyeQIFA2tleQUEcGFydAUDbmlsBQNrZXkBaQEOZ2V0TmZ0UkVBRE9OTFkBB2Fzc2V0SWQEAmMwCQERQGV4dHJOYXRpdmUoMTA1NykBCQCsAgIFB2Fzc2V0SWQCAl8wBAJjMQkBC3ZhbHVlT3JFbHNlAgkAoQgBCQCsAgIFB2Fzc2V0SWQCAl8xAQAEAmMyCQELdmFsdWVPckVsc2UCCQChCAEJAKwCAgUHYXNzZXRJZAICXzIBAAkAlAoCBQNuaWwJAMsBAgkAywECBQJjMAUCYzEFAmMyAKvfVrA=", "height": 2865337, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 9QHYnCp1MV4EcZZd9fZxFZhRfhA4LP1FukHWVCsGY3Pq Next: none Full:
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | - | ||
4 | + | let FIVE_K = (5 * 1024) | |
5 | 5 | ||
6 | 6 | @Callable(i) | |
7 | 7 | func issueAndSaveNft (name,description,content) = { | |
8 | 8 | let issue = Issue(name, description, 1, 0, false) | |
9 | 9 | let id = toBase58String(calculateAssetId(issue)) | |
10 | - | if ((size(content) > ( | |
10 | + | if ((size(content) > (3 * FIVE_K))) | |
11 | 11 | then throw("too big content, max 15K bytes") | |
12 | - | else $Tuple2([issue, BinaryEntry(id, content)], id) | |
12 | + | else { | |
13 | + | let c0 = if ((size(content) > (2 * FIVE_K))) | |
14 | + | then { | |
15 | + | let partResult1 = invoke(this, "savePart", [(id + "_1"), take(drop(content, FIVE_K), FIVE_K)], nil) | |
16 | + | if ((partResult1 == partResult1)) | |
17 | + | then { | |
18 | + | let partResult2 = invoke(this, "savePart", [(id + "_2"), drop(content, (2 * FIVE_K))], nil) | |
19 | + | if ((partResult2 == partResult2)) | |
20 | + | then take(content, FIVE_K) | |
21 | + | else throw("Strict value is not equal to itself.") | |
22 | + | } | |
23 | + | else throw("Strict value is not equal to itself.") | |
24 | + | } | |
25 | + | else if ((size(content) > FIVE_K)) | |
26 | + | then { | |
27 | + | let partResult1 = invoke(this, "savePart", [(id + "_1"), drop(content, FIVE_K)], nil) | |
28 | + | if ((partResult1 == partResult1)) | |
29 | + | then take(content, FIVE_K) | |
30 | + | else throw("Strict value is not equal to itself.") | |
31 | + | } | |
32 | + | else content | |
33 | + | $Tuple2([issue, BinaryEntry((id + "_0"), c0)], id) | |
34 | + | } | |
13 | 35 | } | |
14 | 36 | ||
15 | 37 | ||
16 | 38 | ||
17 | 39 | @Callable(i) | |
18 | - | func getNftREADONLY (assetId) = $Tuple2(nil, getBinary(assetId)) | |
40 | + | func savePart (key,part) = if ((i.caller != this)) | |
41 | + | then throw("permission denied") | |
42 | + | else $Tuple2([BinaryEntry(key, part)], key) | |
43 | + | ||
44 | + | ||
45 | + | ||
46 | + | @Callable(i) | |
47 | + | func getNftREADONLY (assetId) = { | |
48 | + | let c0 = getBinaryValue((assetId + "_0")) | |
49 | + | let c1 = valueOrElse(getBinary((assetId + "_1")), base58'') | |
50 | + | let c2 = valueOrElse(getBinary((assetId + "_2")), base58'') | |
51 | + | $Tuple2(nil, ((c0 + c1) + c2)) | |
52 | + | } | |
19 | 53 | ||
20 | 54 |
github/deemru/w8io/026f985 23.51 ms ◑