tx · 7wRZSWgVKizy3f2WkH2x4tzmvs2AKikpBAXkgpraN5ZW

3NBCBtA1F4m6tBir7JX2dUtDNt4ujmHH5NA:  -0.02000000 Waves

2020.04.28 13:18 [974458] smart account 3NBCBtA1F4m6tBir7JX2dUtDNt4ujmHH5NA > SELF 0.00000000 Waves

{ "type": 13, "id": "7wRZSWgVKizy3f2WkH2x4tzmvs2AKikpBAXkgpraN5ZW", "fee": 2000000, "feeAssetId": null, "timestamp": 1588069132136, "version": 1, "sender": "3NBCBtA1F4m6tBir7JX2dUtDNt4ujmHH5NA", "senderPublicKey": "Aj2RvtYHTSnDfcwYBCD5ZEwG3V483xJe2L1n13KPsi3a", "proofs": [ "5uu5sMgNonDszGrCJcWZwsCpLrMdewRp1caGMNXE9oJRLMDbqk5Tid7ptEQLBwimsUyQ7e1hR8ECxMBPPi2sTcqh" ], "script": "base64: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", "chainId": 84, "height": 974458, "spentComplexity": 0 } View: original | compacted Prev: DNUju58nECyVPVDkbgCtJonprQLkFkn9p5uNV3nLi3Py Next: DVKEWER1oHsov4wmUvd8whDHjfxzfosCHUnwaZu1qNEB Diff:
OldNewDifferences
3939 let decoded1 = decodeU32(data, offset)
4040 let bytesSize = decoded1[0]
4141 let nextOffset = decoded1[1]
42-[take(drop(data, (offset + bytesSize)), bytesSize), (nextOffset + bytesSize)]
42+[take(drop(data, (offset + 4)), 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)), bytesSize), (nextOffset + bytesSize)]
42+[take(drop(data, (offset + 4)), 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 
36.27 ms