tx · AiaYmsFwgMEe37gTwXgCtTtKKArDWLTsDML1J3eXVZrz

3Mz29fiz3zgY9JDbiHKANvHsFgQutdfu4Ua:  -0.01400000 Waves

2021.04.01 13:57 [1463270] smart account 3Mz29fiz3zgY9JDbiHKANvHsFgQutdfu4Ua > SELF 0.00000000 Waves

{ "type": 13, "id": "AiaYmsFwgMEe37gTwXgCtTtKKArDWLTsDML1J3eXVZrz", "fee": 1400000, "feeAssetId": null, "timestamp": 1617274632478, "version": 2, "chainId": 84, "sender": "3Mz29fiz3zgY9JDbiHKANvHsFgQutdfu4Ua", "senderPublicKey": "CTyHhnVTxf16Z4CmGGneAK8WB5g2QyT4MB8kUn8vPPcu", "proofs": [ "2dXSydHDiZTuGWgCnASquuNLB6T9L7wHybzfvZiLeZagYp4GMxSbmR9k5oZPsPvKDfDJ6jmqNmGSXHzzHeBGQuhb" ], "script": "base64:AAIEAAAAAAAAAAwIAhIDCgEIEgMKAQgAAAACAAAAAAlzZXBhcmF0b3ICAAAAA19fXwAAAAAMa2V5UG9vbHNMaXN0AgAAAApQT09MU19MSVNUAAAAAgAAAAFpAQAAAAdhZGRQb29sAAAAAQAAAAdhc3NldElkAwkBAAAAAiE9AAAAAgUAAAAEdGhpcwgFAAAAAWkAAAAGY2FsbGVyCQAAAgAAAAECAAAADUFjY2VzcyBkZW5pZWQDCQAAAAAAAAIJAQAAAAhjb250YWlucwAAAAIFAAAAB2Fzc2V0SWQFAAAACXNlcGFyYXRvcgYJAAACAAAAAQIAAAAZU2VwYXJhdG9yIGZvdW5kIGluIHN0cmluZwQAAAAJYXNzZXREYXRhCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAPsAAAAAQkAAlkAAAABBQAAAAdhc3NldElkAgAAAA1Vbmtub3duIGFzc2V0BAAAAAlwb29sc0xpc3QJAAS1AAAAAgkBAAAAC3ZhbHVlT3JFbHNlAAAAAgkABB0AAAACBQAAAAR0aGlzBQAAAAxrZXlQb29sc0xpc3QCAAAAAAUAAAAJc2VwYXJhdG9yAwkAAAAAAAACCQEAAAAPY29udGFpbnNFbGVtZW50AAAAAgUAAAAJcG9vbHNMaXN0BQAAAAdhc3NldElkBgkAAAIAAAABAgAAABhBc3NldCBhbHJlYWR5IGhhcyBhIHBvb2wEAAAADG5ld1Bvb2xzTGlzdAkABLkAAAACCQAETAAAAAIFAAAAB2Fzc2V0SWQFAAAACXBvb2xzTGlzdAUAAAAJc2VwYXJhdG9yCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAADGtleVBvb2xzTGlzdAUAAAAMbmV3UG9vbHNMaXN0BQAAAANuaWwAAAABaQEAAAAKcmVtb3ZlUG9vbAAAAAEAAAAHYXNzZXRJZAMJAQAAAAIhPQAAAAIFAAAABHRoaXMIBQAAAAFpAAAABmNhbGxlcgkAAAIAAAABAgAAAA1BY2Nlc3MgZGVuaWVkBAAAAAlwb29sc0xpc3QJAAS1AAAAAgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMFAAAADGtleVBvb2xzTGlzdAIAAAAITm8gcG9vbHMFAAAACXNlcGFyYXRvcgQAAAAJcG9vbEluZGV4CQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAARPAAAAAgUAAAAJcG9vbHNMaXN0BQAAAAdhc3NldElkAgAAABZObyBwb29sIGZvciB0aGlzIGFzc2V0BAAAAAxuZXdQb29sc0xpc3QJAAS5AAAAAgkABFEAAAACBQAAAAlwb29sc0xpc3QFAAAACXBvb2xJbmRleAUAAAAJc2VwYXJhdG9yCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAADGtleVBvb2xzTGlzdAUAAAAMbmV3UG9vbHNMaXN0BQAAAANuaWwAAAABAAAAAnR4AQAAAAZ2ZXJpZnkAAAAACQAB9AAAAAMIBQAAAAJ0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAAnR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAAnR4AAAAD3NlbmRlclB1YmxpY0tleQkaJ00=", "height": 1463270, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4KmcyQi2QQ3359NkwCaJWzYdjxPjxK4gwTNtsB89EcS7 Next: 7kmj5sqRMbheYWBSdUCh5ub32G9mYet1Na2snBtjZ7d6 Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let separator = "___"
5+
6+let keyPoolsList = "POOLS_LIST"
7+
8+@Callable(i)
9+func addPool (assetId) = if ((this != i.caller))
10+ then throw("Access denied")
11+ else if ((contains(assetId, separator) == true))
12+ then throw("Separator found in string")
13+ else {
14+ let assetData = valueOrErrorMessage(assetInfo(fromBase58String(assetId)), "Unknown asset")
15+ let poolsList = split(valueOrElse(getString(this, keyPoolsList), ""), separator)
16+ if ((containsElement(poolsList, assetId) == true))
17+ then throw("Asset already has a pool")
18+ else {
19+ let newPoolsList = makeString(assetId :: poolsList, separator)
20+[StringEntry(keyPoolsList, newPoolsList)]
21+ }
22+ }
23+
424
525
626 @Callable(i)
7-func call () = {
8- let asset = Issue("Asset", "", 1, 0, true, unit, 0)
9- let assetId = calculateAssetId(asset)
10-[BinaryEntry("bin", base58''), BooleanEntry("bool", true), IntegerEntry("int", 1), StringEntry("str", ""), DeleteEntry("str"), asset, Reissue(assetId, 1, false), Burn(assetId, 1), ScriptTransfer(i.caller, 1, assetId)]
11- }
27+func removePool (assetId) = if ((this != i.caller))
28+ then throw("Access denied")
29+ else {
30+ let poolsList = split(valueOrErrorMessage(getString(this, keyPoolsList), "No pools"), separator)
31+ let poolIndex = valueOrErrorMessage(indexOf(poolsList, assetId), "No pool for this asset")
32+ let newPoolsList = makeString(removeByIndex(poolsList, poolIndex), separator)
33+[StringEntry(keyPoolsList, newPoolsList)]
34+ }
1235
1336
1437 @Verifier(tx)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 4 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+let separator = "___"
5+
6+let keyPoolsList = "POOLS_LIST"
7+
8+@Callable(i)
9+func addPool (assetId) = if ((this != i.caller))
10+ then throw("Access denied")
11+ else if ((contains(assetId, separator) == true))
12+ then throw("Separator found in string")
13+ else {
14+ let assetData = valueOrErrorMessage(assetInfo(fromBase58String(assetId)), "Unknown asset")
15+ let poolsList = split(valueOrElse(getString(this, keyPoolsList), ""), separator)
16+ if ((containsElement(poolsList, assetId) == true))
17+ then throw("Asset already has a pool")
18+ else {
19+ let newPoolsList = makeString(assetId :: poolsList, separator)
20+[StringEntry(keyPoolsList, newPoolsList)]
21+ }
22+ }
23+
424
525
626 @Callable(i)
7-func call () = {
8- let asset = Issue("Asset", "", 1, 0, true, unit, 0)
9- let assetId = calculateAssetId(asset)
10-[BinaryEntry("bin", base58''), BooleanEntry("bool", true), IntegerEntry("int", 1), StringEntry("str", ""), DeleteEntry("str"), asset, Reissue(assetId, 1, false), Burn(assetId, 1), ScriptTransfer(i.caller, 1, assetId)]
11- }
27+func removePool (assetId) = if ((this != i.caller))
28+ then throw("Access denied")
29+ else {
30+ let poolsList = split(valueOrErrorMessage(getString(this, keyPoolsList), "No pools"), separator)
31+ let poolIndex = valueOrErrorMessage(indexOf(poolsList, assetId), "No pool for this asset")
32+ let newPoolsList = makeString(removeByIndex(poolsList, poolIndex), separator)
33+[StringEntry(keyPoolsList, newPoolsList)]
34+ }
1235
1336
1437 @Verifier(tx)
1538 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
1639

github/deemru/w8io/169f3d6 
41.87 ms