tx · EAWpyq4ameRWGGCLJTt9eEM9wR1vkVA8EPakZkpc6ui7

3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9:  -0.01400000 Waves

2021.08.17 16:51 [1662419] smart account 3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9 > SELF 0.00000000 Waves

{ "type": 13, "id": "EAWpyq4ameRWGGCLJTt9eEM9wR1vkVA8EPakZkpc6ui7", "fee": 1400000, "feeAssetId": null, "timestamp": 1629208330836, "version": 2, "chainId": 84, "sender": "3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9", "senderPublicKey": "D1X9WatF6ARMCmm3jC4Ex5Wd5VQ3LY8i1xbHNqeHqeAa", "proofs": [ "gCEd5sfSP3yqrDPzV22nXD33PQtJKoCXEfascPXYhuuQfwjeyaeUbTRpxdDPK5QNnxjyMKKLUzopC9xcm5VA3cm", "N1KCVmNDCEoJG3nJUYTifzpHPqWMZSuDBHTKFjzqntNVo5htxpq8LUuqqc65KtQcW9TxKUMYv2Q9YoGTP7ribxR" ], "script": "base64:AAIFAAAAAAAAABgIAhIECgIIARIAEgQKAggIEgQKAggIEgAAAAAaAAAAABBrZXlQb29sc0xpc3ROYW1lAgAAAAVwb29scwAAAAARa2V5UHJlZml4UG9vbE5hbWUCAAAABXBvb2xfAAAAABJrZXlQcmVmaXhQb29sSW5kZXgCAAAABmluZGV4XwAAAAASa2V5Q29uZmlybWVkQXNzZXRzAgAAABBjb25maXJtZWRfYXNzZXRzAAAAABBrZXlBc3NldFByaW9yaXR5AgAAAA9hc3NldF9wcmlvcml0eV8AAAAAB2tleVBhaXICAAAABXBhaXJfAAAAAAtrZXlBc3NldElkQQIAAAAKQV9hc3NldF9pZAAAAAALa2V5QXNzZXRJZEICAAAACkJfYXNzZXRfaWQAAAAAF2tleU9yYWNsZVNjcmlwdEhhc2hDUE1NAgAAABBzY3JpcHRfaGFzaF9jcG1tAAAAABdrZXlPcmFjbGVTY3JpcHRIYXNoRmxhdAIAAAAQc2NyaXB0X2hhc2hfZmxhdAAAAAAaY3BtbVNjcmlwdFJlZmVyZW5lc0FkZHJlc3MBAAAAGgFUvK8s7DnYfCAXrM8u+dbR9cUiL/GYoCTyAAAAABpmbGF0U2NyaXB0UmVmZXJlbmVzQWRkcmVzcwEAAAAaAVSrQpp1gZg76xtzwDJQSvEqm88RKQLH63cAAAAAD2tleUFkbWluUHViS2V5MQIAAAALYWRtaW5fcHViXzEAAAAAD2tleUFkbWluUHViS2V5MgIAAAALYWRtaW5fcHViXzIAAAAAD2tleUFkbWluUHViS2V5MwIAAAALYWRtaW5fcHViXzMAAAAADGFkbWluUHViS2V5MQEAAAAg4qeMQDuGzRfmtEuH2+Whg6yuKqHsNy5eZQUT8rXs7wQAAAAADGFkbWluUHViS2V5MgEAAAAg6jisuQG1iDxyo54oPYHUGiJlERON346DjXz9V/GbEVkAAAAADGFkbWluUHViS2V5MwEAAAAgpzSWgrCjycddMmIBfztFJ08z6r82xAHPELd0cKonzG4AAAAADmFkbWluU3RhcnRTdG9wAQAAACAEz3XlZNDBD05nuR8TZMQaDeqEJEIxfTOQXUBYCp2TSgAAAAAMYWRtaW5TdGFraW5nAQAAACAEz3XlZNDBD05nuR8TZMQaDeqEJEIxfTOQXUBYCp2TSgAAAAARa2V5QWRtaW5TdGFydFN0b3ACAAAAEGFkbWluX3N0YXJ0X3N0b3AAAAAAD2tleUFkbWluU3Rha2luZwIAAAANYWRtaW5fc3Rha2luZwAAAAAFcG9vbHMEAAAAByRtYXRjaDAJAAQdAAAAAgUAAAAEdGhpcwUAAAAQa2V5UG9vbHNMaXN0TmFtZQMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAGU3RyaW5nBAAAAAZzdHJpbmcFAAAAByRtYXRjaDAJAAS1AAAAAgUAAAAGc3RyaW5nAgAAAAEsBAAAAAdub3RoaW5nBQAAAAckbWF0Y2gwBQAAAANuaWwBAAAACmlzU2VsZkNhbGwAAAABAAAAAWkDCQAAAAAAAAIIBQAAAAFpAAAABmNhbGxlcgUAAAAEdGhpcwUAAAAEdW5pdAUAAAAEdW5pdAEAAAASZ2V0UG9vbE5hbWVJZlZhbGlkAAAAAQAAAAhwb29sTmFtZQQAAAAPdW5kZXJzY29yZUluZGV4CQEAAAALdmFsdWVPckVsc2UAAAACCQAEswAAAAIFAAAACHBvb2xOYW1lAgAAAAFfAP//////////BAAAABN1bmRlcnNjb3JlTGFzdEluZGV4CQEAAAALdmFsdWVPckVsc2UAAAACCQAEtwAAAAIFAAAACHBvb2xOYW1lAgAAAAFfAP//////////BAAAABNoYXNTaW5nbGVVbmRlcnNjb3JlAwMJAAAAAAAAAgUAAAAPdW5kZXJzY29yZUluZGV4BQAAABN1bmRlcnNjb3JlTGFzdEluZGV4CQAAZgAAAAIFAAAAD3VuZGVyc2NvcmVJbmRleAAAAAAAAAAAAAcJAQAAAAIhPQAAAAIFAAAAD3VuZGVyc2NvcmVJbmRleAkAAGUAAAACCQABMQAAAAEFAAAACHBvb2xOYW1lAAAAAAAAAAABBwMFAAAAE2hhc1NpbmdsZVVuZGVyc2NvcmUFAAAACHBvb2xOYW1lCQAAAgAAAAECAAAATlBvb2wgbmFtZSBtdXN0IGNvbnNpc3Qgb2YgdHdvIGFzc2V0IG5hbWVzIHNlcGFyYXRlZCBieSBhbiB1bmRlcnNjb3JlIGNoYXJhY3RlcgEAAAARZ2V0QWRkcmVzc0lmVmFsaWQAAAABAAAAB2FkZHJlc3MJAAQlAAAAAQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEJgAAAAEFAAAAB2FkZHJlc3MJAAEsAAAAAgkAASwAAAACAgAAAA1DYW4ndCBwYXJzZSAiBQAAAAdhZGRyZXNzAgAAAAwiIGFzIGFkZHJlc3MAAAAFAAAAAWkBAAAAC3NldFByaW9yaXR5AAAAAgAAAAdhc3NldElkAAAACHByaW9yaXR5CQEAAAALdmFsdWVPckVsc2UAAAACCQEAAAAKaXNTZWxmQ2FsbAAAAAEFAAAAAWkDCQAAZgAAAAIAAAAAAAAAAAAFAAAACHByaW9yaXR5CQAAAgAAAAECAAAAGVByaW9yaXR5IG11c3QgYmUgcG9zaXRpdmUJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIJAAEsAAAAAgUAAAAQa2V5QXNzZXRQcmlvcml0eQUAAAAHYXNzZXRJZAUAAAAIcHJpb3JpdHkFAAAAA25pbAAAAAFpAQAAAAhzZXRBZG1pbgAAAAAJAQAAAAt2YWx1ZU9yRWxzZQAAAAIJAQAAAAppc1NlbGZDYWxsAAAAAQUAAAABaQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACBQAAAA9rZXlBZG1pblB1YktleTEJAAJYAAAAAQUAAAAMYWRtaW5QdWJLZXkxCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAD2tleUFkbWluUHViS2V5MgkAAlgAAAABBQAAAAxhZG1pblB1YktleTIJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAPa2V5QWRtaW5QdWJLZXkzCQACWAAAAAEFAAAADGFkbWluUHViS2V5MwUAAAADbmlsAAAAAWkBAAAAB2FkZFBvb2wAAAACAAAAC3Bvb2xBZGRyZXNzAAAACHBvb2xOYW1lCQEAAAALdmFsdWVPckVsc2UAAAACCQEAAAAKaXNTZWxmQ2FsbAAAAAEFAAAAAWkEAAAAEHZhbGlkYXRlZEFkZHJlc3MJAQAAABFnZXRBZGRyZXNzSWZWYWxpZAAAAAEFAAAAC3Bvb2xBZGRyZXNzBAAAAAdrZXlOYW1lCQABLAAAAAIFAAAAEWtleVByZWZpeFBvb2xOYW1lBQAAABB2YWxpZGF0ZWRBZGRyZXNzBAAAAAhrZXlJbmRleAkAASwAAAACBQAAABJrZXlQcmVmaXhQb29sSW5kZXgFAAAAEHZhbGlkYXRlZEFkZHJlc3MEAAAACGFzc2V0SWRBCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgkBAAAABXZhbHVlAAAAAQkABCYAAAABBQAAAAtwb29sQWRkcmVzcwUAAAALa2V5QXNzZXRJZEECAAAAF0Fzc2V0IGlkIEEgaXMgaW5jb3JyZWN0BAAAAAhhc3NldElkQgkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIJAQAAAAV2YWx1ZQAAAAEJAAQmAAAAAQUAAAALcG9vbEFkZHJlc3MFAAAAC2tleUFzc2V0SWRCAgAAABdBc3NldCBpZCBCIGlzIGluY29ycmVjdAQAAAAFY2hlY2sJAAQeAAAAAQUAAAAEdGhpcwQAAAAOdXNlclNjcmlwdEhhc2gJAQAAAAV2YWx1ZQAAAAEJAAPxAAAAAQgFAAAAAWkAAAAGY2FsbGVyBAAAAAhjcG1tSGFzaAkBAAAAEUBleHRyTmF0aXZlKDEwNTcpAAAAAQUAAAAXa2V5T3JhY2xlU2NyaXB0SGFzaENQTU0EAAAACGZsYXRIYXNoCQEAAAARQGV4dHJOYXRpdmUoMTA1NykAAAABBQAAABdrZXlPcmFjbGVTY3JpcHRIYXNoRmxhdAQAAAAJaXNOb3RDcG1tAwkBAAAAAiE9AAAAAgUAAAAOdXNlclNjcmlwdEhhc2gFAAAACGNwbW1IYXNoBgcEAAAACWlzTm90RmxhdAMJAQAAAAIhPQAAAAIFAAAADnVzZXJTY3JpcHRIYXNoBQAAAAhmbGF0SGFzaAYHBAAAAA5pc05vdEVtcHR5RGF0YQMJAAAAAAAAAgkBAAAAASEAAAABBQAAAAVjaGVjawYGBwQAAAALaXNFbXB0eURhdGEDCQAAAAAAAAIJAQAAAAEhAAAAAQUAAAAFY2hlY2sHBgcEAAAAEWlzTm90UG9vbENvbnRyYWN0AwMFAAAACWlzTm90Q3BtbQUAAAAJaXNOb3RGbGF0BwYHAwMFAAAAEWlzTm90UG9vbENvbnRyYWN0BgMFAAAADmlzTm90RW1wdHlEYXRhCQEAAAABIQAAAAEFAAAAC2lzRW1wdHlEYXRhBwkAAAIAAAABAgAAABxVbmV4cGVjdGVkIHNjcmlwdCB3YXMgZm91bmQuBAAAABhwb3NzaWJseUFscmVhZHlBZGRlZFBvb2wJAAQdAAAAAgUAAAAEdGhpcwUAAAAHa2V5TmFtZQQAAAAScG9zc2libGVEdXBsaWNhdGVBCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAAB2tleVBhaXIFAAAACGFzc2V0SWRBAgAAAAFfBQAAAAhhc3NldElkQgQAAAAScG9zc2libGVEdXBsaWNhdGVCCQAEHQAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAIFAAAAB2tleVBhaXIFAAAACGFzc2V0SWRCAgAAAAFfBQAAAAhhc3NldElkQQMJAQAAAAlpc0RlZmluZWQAAAABBQAAABhwb3NzaWJseUFscmVhZHlBZGRlZFBvb2wJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAABNQb29sIHdpdGggYWRkcmVzcyAiBQAAABB2YWxpZGF0ZWRBZGRyZXNzAgAAACAiIGlzIGFscmVhZHkgZGVmaW5lZCB3aXRoIG5hbWUgIgkBAAAABXZhbHVlAAAAAQUAAAAYcG9zc2libHlBbHJlYWR5QWRkZWRQb29sAgAAAAEiAwMJAQAAAAlpc0RlZmluZWQAAAABBQAAABJwb3NzaWJsZUR1cGxpY2F0ZUEGCQEAAAAJaXNEZWZpbmVkAAAAAQUAAAAScG9zc2libGVEdXBsaWNhdGVCCQAAAgAAAAEJAAEsAAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAASUG9vbCB3aXRoIGFzc2V0cyAiBQAAAAhhc3NldElkQQIAAAAHIiBhbmQgIgUAAAAIYXNzZXRJZEICAAAAEyIgaXMgYWxyZWFkeSBleGlzdHMJAARMAAAAAgkBAAAADEludGVnZXJFbnRyeQAAAAIFAAAACGtleUluZGV4CQABkAAAAAEFAAAABXBvb2xzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAB2tleU5hbWUJAQAAABJnZXRQb29sTmFtZUlmVmFsaWQAAAABBQAAAAhwb29sTmFtZQkABEwAAAACCQEAAAALU3RyaW5nRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACBQAAAAdrZXlQYWlyBQAAAAhhc3NldElkQQIAAAABXwUAAAAIYXNzZXRJZEIFAAAAC3Bvb2xBZGRyZXNzCQAETAAAAAIJAQAAAAtTdHJpbmdFbnRyeQAAAAIFAAAAEGtleVBvb2xzTGlzdE5hbWUJAAS5AAAAAgkABE0AAAACBQAAAAVwb29scwUAAAAQdmFsaWRhdGVkQWRkcmVzcwIAAAABLAUAAAADbmlsAAAAAWkBAAAACnJlbmFtZVBvb2wAAAACAAAAC3Bvb2xBZGRyZXNzAAAAC25ld1Bvb2xOYW1lCQEAAAALdmFsdWVPckVsc2UAAAACCQEAAAAKaXNTZWxmQ2FsbAAAAAEFAAAAAWkEAAAAEHZhbGlkYXRlZEFkZHJlc3MJAQAAABFnZXRBZGRyZXNzSWZWYWxpZAAAAAEFAAAAC3Bvb2xBZGRyZXNzBAAAAAdrZXlOYW1lCQABLAAAAAIFAAAAEWtleVByZWZpeFBvb2xOYW1lBQAAABB2YWxpZGF0ZWRBZGRyZXNzBAAAABhwb3NzaWJseUFscmVhZHlBZGRlZFBvb2wJAAQdAAAAAgUAAAAEdGhpcwUAAAAHa2V5TmFtZQMJAQAAAAlpc0RlZmluZWQAAAABBQAAABhwb3NzaWJseUFscmVhZHlBZGRlZFBvb2wJAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgUAAAAHa2V5TmFtZQkBAAAAEmdldFBvb2xOYW1lSWZWYWxpZAAAAAEFAAAAC25ld1Bvb2xOYW1lBQAAAANuaWwJAAACAAAAAQkAASwAAAACCQABLAAAAAICAAAAE1Bvb2wgd2l0aCBhZGRyZXNzICIFAAAAEHZhbGlkYXRlZEFkZHJlc3MCAAAAGCIgaGFzIG5vdCB5ZXQgYmVlbiBhZGRlZAAAAAFpAQAAAAx1cGRhdGVIYXNoZXMAAAAACQEAAAALdmFsdWVPckVsc2UAAAACCQEAAAAKaXNTZWxmQ2FsbAAAAAEFAAAAAWkJAARMAAAAAgkBAAAAC0JpbmFyeUVudHJ5AAAAAgUAAAAXa2V5T3JhY2xlU2NyaXB0SGFzaENQTU0JAQAAAAV2YWx1ZQAAAAEJAAPxAAAAAQkBAAAAB0FkZHJlc3MA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AgAAAAVPcmRlcgYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAD0RhdGFUcmFuc2FjdGlvbgYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAFVNwb25zb3JGZWVUcmFuc2FjdGlvbgYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAFFNldFNjcmlwdFRyYW5zYWN0aW9uBgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAWQ3JlYXRlQWxpYXNUcmFuc2FjdGlvbgYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAFkxlYXNlQ2FuY2VsVHJhbnNhY3Rpb24GAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABBMZWFzZVRyYW5zYWN0aW9uBgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAQSXNzdWVUcmFuc2FjdGlvbgYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAGlVwZGF0ZUFzc2V0SW5mb1RyYW5zYWN0aW9uBgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAXSW52b2tlU2NyaXB0VHJhbnNhY3Rpb24GAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABlTZXRBc3NldFNjcmlwdFRyYW5zYWN0aW9uBgMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAATVHJhbnNmZXJUcmFuc2FjdGlvbgYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE0V4Y2hhbmdlVHJhbnNhY3Rpb24GAwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAABdNYXNzVHJhbnNmZXJUcmFuc2FjdGlvbgYDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAD0J1cm5UcmFuc2FjdGlvbgYJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAASUmVpc3N1ZVRyYW5zYWN0aW9uBQAAAA1zaWduZWRCeUFkbWluCQAAAgAAAAECAAAAC01hdGNoIGVycm9yJpiLqw==", "height": 1662419, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: GUDFXTGLm7HD2R8caLa6SbGzVxYJhATfwZD6NDzP4DC5 Next: 6L8WLGdSmvNCjVdFfxx86p6B47x8jFEaX4jG9fvU4eB5 Diff:
OldNewDifferences
106106 let isNotEmptyData = if ((!(check) == true))
107107 then true
108108 else false
109- let isEmptyData = if ((!(check) == true))
110- then false
111- else true
109+ let isEmptyData = if ((!(check) == false))
110+ then true
111+ else false
112112 let isNotPoolContract = if (if (isNotCpmm)
113113 then isNotFlat
114114 else false)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 5 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let keyPoolsListName = "pools"
55
66 let keyPrefixPoolName = "pool_"
77
88 let keyPrefixPoolIndex = "index_"
99
1010 let keyConfirmedAssets = "confirmed_assets"
1111
1212 let keyAssetPriority = "asset_priority_"
1313
1414 let keyPair = "pair_"
1515
1616 let keyAssetIdA = "A_asset_id"
1717
1818 let keyAssetIdB = "B_asset_id"
1919
2020 let keyOracleScriptHashCPMM = "script_hash_cpmm"
2121
2222 let keyOracleScriptHashFlat = "script_hash_flat"
2323
2424 let cpmmScriptReferenesAddress = base58'3N77kfPbQyjXWpDALX3xjKw3iEGMWEctV37'
2525
2626 let flatScriptReferenesAddress = base58'3N5Xd7QVQZWntaJwha9Kg42is626GUPjtUW'
2727
2828 let keyAdminPubKey1 = "admin_pub_1"
2929
3030 let keyAdminPubKey2 = "admin_pub_2"
3131
3232 let keyAdminPubKey3 = "admin_pub_3"
3333
3434 let adminPubKey1 = base58'GFmKZ2naZFRoCvNbwKAQVGmLb1uBeWGDgFabdGBuZiuy'
3535
3636 let adminPubKey2 = base58'GmJXRyhRA79g8yUGgKBAVdnFfQFDMjQG98b1MmLDh5kk'
3737
3838 let adminPubKey3 = base58'CFhbV6h41hVjbGHudGtS3fYUv7QAKRxFQzKNtx4B5PqP'
3939
4040 let adminStartStop = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
4141
4242 let adminStaking = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
4343
4444 let keyAdminStartStop = "admin_start_stop"
4545
4646 let keyAdminStaking = "admin_staking"
4747
4848 let pools = match getString(this, keyPoolsListName) {
4949 case string: String =>
5050 split(string, ",")
5151 case nothing =>
5252 nil
5353 }
5454
5555 func isSelfCall (i) = if ((i.caller == this))
5656 then unit
5757 else unit
5858
5959
6060 func getPoolNameIfValid (poolName) = {
6161 let underscoreIndex = valueOrElse(indexOf(poolName, "_"), -1)
6262 let underscoreLastIndex = valueOrElse(lastIndexOf(poolName, "_"), -1)
6363 let hasSingleUnderscore = if (if ((underscoreIndex == underscoreLastIndex))
6464 then (underscoreIndex > 0)
6565 else false)
6666 then (underscoreIndex != (size(poolName) - 1))
6767 else false
6868 if (hasSingleUnderscore)
6969 then poolName
7070 else throw("Pool name must consist of two asset names separated by an underscore character")
7171 }
7272
7373
7474 func getAddressIfValid (address) = toString(valueOrErrorMessage(addressFromString(address), (("Can't parse \"" + address) + "\" as address")))
7575
7676
7777 @Callable(i)
7878 func setPriority (assetId,priority) = valueOrElse(isSelfCall(i), if ((0 > priority))
7979 then throw("Priority must be positive")
8080 else [IntegerEntry((keyAssetPriority + assetId), priority)])
8181
8282
8383
8484 @Callable(i)
8585 func setAdmin () = valueOrElse(isSelfCall(i), [StringEntry(keyAdminPubKey1, toBase58String(adminPubKey1)), StringEntry(keyAdminPubKey2, toBase58String(adminPubKey2)), StringEntry(keyAdminPubKey3, toBase58String(adminPubKey3))])
8686
8787
8888
8989 @Callable(i)
9090 func addPool (poolAddress,poolName) = valueOrElse(isSelfCall(i), {
9191 let validatedAddress = getAddressIfValid(poolAddress)
9292 let keyName = (keyPrefixPoolName + validatedAddress)
9393 let keyIndex = (keyPrefixPoolIndex + validatedAddress)
9494 let assetIdA = valueOrErrorMessage(getString(value(addressFromString(poolAddress)), keyAssetIdA), "Asset id A is incorrect")
9595 let assetIdB = valueOrErrorMessage(getString(value(addressFromString(poolAddress)), keyAssetIdB), "Asset id B is incorrect")
9696 let check = isDataStorageUntouched(this)
9797 let userScriptHash = value(scriptHash(i.caller))
9898 let cpmmHash = getBinaryValue(keyOracleScriptHashCPMM)
9999 let flatHash = getBinaryValue(keyOracleScriptHashFlat)
100100 let isNotCpmm = if ((userScriptHash != cpmmHash))
101101 then true
102102 else false
103103 let isNotFlat = if ((userScriptHash != flatHash))
104104 then true
105105 else false
106106 let isNotEmptyData = if ((!(check) == true))
107107 then true
108108 else false
109- let isEmptyData = if ((!(check) == true))
110- then false
111- else true
109+ let isEmptyData = if ((!(check) == false))
110+ then true
111+ else false
112112 let isNotPoolContract = if (if (isNotCpmm)
113113 then isNotFlat
114114 else false)
115115 then true
116116 else false
117117 if (if (isNotPoolContract)
118118 then true
119119 else if (isNotEmptyData)
120120 then !(isEmptyData)
121121 else false)
122122 then throw("Unexpected script was found.")
123123 else {
124124 let possiblyAlreadyAddedPool = getString(this, keyName)
125125 let possibleDuplicateA = getString(this, (((keyPair + assetIdA) + "_") + assetIdB))
126126 let possibleDuplicateB = getString(this, (((keyPair + assetIdB) + "_") + assetIdA))
127127 if (isDefined(possiblyAlreadyAddedPool))
128128 then throw((((("Pool with address \"" + validatedAddress) + "\" is already defined with name \"") + value(possiblyAlreadyAddedPool)) + "\""))
129129 else if (if (isDefined(possibleDuplicateA))
130130 then true
131131 else isDefined(possibleDuplicateB))
132132 then throw((((("Pool with assets \"" + assetIdA) + "\" and \"") + assetIdB) + "\" is already exists"))
133133 else [IntegerEntry(keyIndex, size(pools)), StringEntry(keyName, getPoolNameIfValid(poolName)), StringEntry((((keyPair + assetIdA) + "_") + assetIdB), poolAddress), StringEntry(keyPoolsListName, makeString((pools :+ validatedAddress), ","))]
134134 }
135135 })
136136
137137
138138
139139 @Callable(i)
140140 func renamePool (poolAddress,newPoolName) = valueOrElse(isSelfCall(i), {
141141 let validatedAddress = getAddressIfValid(poolAddress)
142142 let keyName = (keyPrefixPoolName + validatedAddress)
143143 let possiblyAlreadyAddedPool = getString(this, keyName)
144144 if (isDefined(possiblyAlreadyAddedPool))
145145 then [StringEntry(keyName, getPoolNameIfValid(newPoolName))]
146146 else throw((("Pool with address \"" + validatedAddress) + "\" has not yet been added"))
147147 })
148148
149149
150150
151151 @Callable(i)
152152 func updateHashes () = valueOrElse(isSelfCall(i), [BinaryEntry(keyOracleScriptHashCPMM, value(scriptHash(Address(cpmmScriptReferenesAddress)))), BinaryEntry(keyOracleScriptHashFlat, value(scriptHash(Address(flatScriptReferenesAddress))))])
153153
154154
155155 @Verifier(tx)
156156 func verify () = {
157157 let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1))
158158 then 1
159159 else 0
160160 let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], adminPubKey2))
161161 then 1
162162 else 0
163163 let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], adminPubKey3))
164164 then 1
165165 else 0
166166 let signedByAdmin = (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 2)
167167 let signedByAdminToCallAddPool = (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 1)
168168 match tx {
169169 case inv: InvokeScriptTransaction =>
170170 let isSelfInvokeRenamePool = if ((inv.dApp == this))
171171 then containsElement(["renamePool"], inv.function)
172172 else false
173173 let isSelfInvokeSetAdmin = if ((inv.dApp == this))
174174 then containsElement(["setAdmin"], inv.function)
175175 else false
176176 let isInvokeAddPool = containsElement(["addPool"], inv.function)
177177 let isSelfInvokeUpdateHashes = if ((inv.dApp == this))
178178 then containsElement(["updateHashes"], inv.function)
179179 else false
180180 if (if (if (if (if (signedByAdmin)
181181 then (size(inv.payments) == 0)
182182 else false)
183183 then isSelfInvokeRenamePool
184184 else false)
185185 then true
186186 else if ((size(inv.payments) == 0))
187187 then isInvokeAddPool
188188 else false)
189189 then true
190190 else if (if (signedByAdmin)
191191 then (size(inv.payments) == 0)
192192 else false)
193193 then isSelfInvokeSetAdmin
194194 else false)
195195 then true
196196 else if (if (signedByAdmin)
197197 then (size(inv.payments) == 0)
198198 else false)
199199 then isSelfInvokeUpdateHashes
200200 else false
201201 case _: Order|DataTransaction|SponsorFeeTransaction|SetScriptTransaction|CreateAliasTransaction|LeaseCancelTransaction|LeaseTransaction|IssueTransaction|UpdateAssetInfoTransaction|InvokeScriptTransaction|SetAssetScriptTransaction|TransferTransaction|ExchangeTransaction|MassTransferTransaction|BurnTransaction|ReissueTransaction =>
202202 signedByAdmin
203203 case _ =>
204204 throw("Match error")
205205 }
206206 }
207207

github/deemru/w8io/169f3d6 
208.30 ms