tx · DNUju58nECyVPVDkbgCtJonprQLkFkn9p5uNV3nLi3Py

3NBCBtA1F4m6tBir7JX2dUtDNt4ujmHH5NA:  -0.02000000 Waves

2020.04.28 13:15 [974455] smart account 3NBCBtA1F4m6tBir7JX2dUtDNt4ujmHH5NA > SELF 0.00000000 Waves

{ "type": 13, "id": "DNUju58nECyVPVDkbgCtJonprQLkFkn9p5uNV3nLi3Py", "fee": 2000000, "feeAssetId": null, "timestamp": 1588068933825, "version": 1, "sender": "3NBCBtA1F4m6tBir7JX2dUtDNt4ujmHH5NA", "senderPublicKey": "Aj2RvtYHTSnDfcwYBCD5ZEwG3V483xJe2L1n13KPsi3a", "proofs": [ "3hJp468H1brKufaVFajPnhyVnjhSJp6YdiUg3SfjHhBWg1JDBRW5VULqsSinnRdMqGFqYEBkq2xxk9ip8rZgEeoq" ], "script": "base64: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", "chainId": 84, "height": 974455, "spentComplexity": 0 } View: original | compacted Prev: BMTKSxHpUNfyFSaFMu3XovbYqgX5LLLLHecYBUuPozdd Next: 7wRZSWgVKizy3f2WkH2x4tzmvs2AKikpBAXkgpraN5ZW Diff:
OldNewDifferences
3939 let decoded1 = decodeU32(data, offset)
4040 let bytesSize = decoded1[0]
4141 let nextOffset = decoded1[1]
42-[take(drop(data, offset), bytesSize), (nextOffset + bytesSize)]
42+[take(drop(data, (offset + bytesSize)), bytesSize), (nextOffset + bytesSize)]
4343 }
4444
4545
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func decodeU8 (data,offset) = if ((size(data) == 0))
55 then throw("decode u8 error, data is an empty bytes")
66 else if ((offset > size(data)))
77 then throw("decode u8 error, decoding is finish")
88 else [toInt((base58'1111111' + take(drop(data, offset), 1)), 0), (offset + 1)]
99
1010
1111 func decodeU16 (data,offset) = {
1212 let decoded1 = decodeU8(data, offset)
1313 let decoded2 = decodeU8(data, decoded1[1])
1414 [(decoded1[0] + (decoded2[0] * 256)), decoded2[1]]
1515 }
1616
1717
1818 func decodeU32 (data,offset) = {
1919 let decoded1 = decodeU16(data, offset)
2020 let decoded2 = decodeU16(data, decoded1[1])
2121 [(decoded1[0] + ((decoded2[0] * 256) * 256)), decoded2[1]]
2222 }
2323
2424
2525 func decodeU64 (data,offset) = {
2626 let decoded1 = decodeU32(data, offset)
2727 let decoded2 = decodeU32(data, decoded1[1])
2828 [(decoded1[0] + ((((decoded2[0] * 256) * 256) * 256) * 256)), decoded2[1]]
2929 }
3030
3131
3232 func decodeBool (data,offset) = {
3333 let decoded1 = decodeU8(data, offset)
3434 [(decoded1[0] != 0), decoded1[1]]
3535 }
3636
3737
3838 func decodeBytes (data,offset) = {
3939 let decoded1 = decodeU32(data, offset)
4040 let bytesSize = decoded1[0]
4141 let nextOffset = decoded1[1]
42-[take(drop(data, offset), bytesSize), (nextOffset + bytesSize)]
42+[take(drop(data, (offset + bytesSize)), bytesSize), (nextOffset + bytesSize)]
4343 }
4444
4545
4646 @Callable(contextObj)
4747 func testDecodeBytes (data) = {
4848 let offset = 0
4949 let decoded = decodeBytes(data, offset)
5050 WriteSet([DataEntry("bytes", decoded[0])])
5151 }
5252
5353
5454
5555 @Callable(contextObj)
5656 func testDecodeU64 (data) = {
5757 let offset = 0
5858 let decoded = decodeU64(data, offset)
5959 WriteSet([DataEntry("u64", decoded[0])])
6060 }
6161
6262
6363
6464 @Callable(contextObj)
6565 func testIntFromBytes (data) = WriteSet([DataEntry("bytesToInt", toInt(data, 0))])
6666
6767
6868
6969 @Callable(contextObj)
7070 func testStringFromBytes (data) = WriteSet([DataEntry("bytesToString", toUtf8String(data))])
7171
7272
7373
7474 @Callable(contextObj)
7575 func setValidator (validator) = if ((contextObj.caller == this))
7676 then WriteSet([DataEntry("validator", validator)])
7777 else throw("Only owner can use this function.")
7878
7979
8080
8181 @Callable(contextObj)
8282 func reportData (data) = {
8383 let validator = getBinary(this, "validator")
8484 if ((contextObj.caller.bytes == validator))
8585 then WriteSet([DataEntry("data_reported", data)])
8686 else throw("Only validator can use this function.")
8787 }
8888
8989

github/deemru/w8io/3ef1775 
35.95 ms