tx · Ddeeor5SDGD6B2nPC1pVpLBz5FW7grpWRMMNyXHCbEce

3MvVBtsXroQpy1tsPw21TU2ET9A8WfmrNjz:  -0.01000000 Waves

2022.10.11 11:44 [2267459] smart account 3MvVBtsXroQpy1tsPw21TU2ET9A8WfmrNjz > SELF 0.00000000 Waves

{ "type": 13, "id": "Ddeeor5SDGD6B2nPC1pVpLBz5FW7grpWRMMNyXHCbEce", "fee": 1000000, "feeAssetId": null, "timestamp": 1665477875546, "version": 2, "chainId": 84, "sender": "3MvVBtsXroQpy1tsPw21TU2ET9A8WfmrNjz", "senderPublicKey": "C3v9sfZTmGuW7YXwjUKypU41QpFcHCoJxLpvdR4d3iSv", "proofs": [ "f64VcgyGiviD1cjbujJqiMUpXe6zELEh33YHtGVWpb7Y7e2aGFB3H4zBmGEipmTze3PwSDQ6r5KZxSNqXUqR1wm" ], "script": "base64:BgIfCAISABIECgIICBIECgIICBIDCgEEEgMKAQgSAwoBCBEAD2tQcmVmaXhQb29sTmFtZQIFcG9vbF8ABWtQYWlyAgVwYWlyXwAJa0Fzc2V0SWRBAgpBX2Fzc2V0X2lkAAlrQXNzZXRJZEICCkJfYXNzZXRfaWQAH2tMYXVuY2hwYWREYXRhVHJhbnNhY3Rpb25TdGF0dXMCIWxhdW5jaHBhZF9kYXRhX3RyYW5zYWN0aW9uX3N0YXR1cwANa0FkbWluUHViS2V5MQILYWRtaW5fcHViXzEADWtBZG1pblB1YktleTICC2FkbWluX3B1Yl8yAA1rQWRtaW5QdWJLZXkzAgthZG1pbl9wdWJfMwASa0FkbWluSW52b2tlUHViS2V5AhBhZG1pbl9pbnZva2VfcHViABRrQWNoaWV2ZW1lbnRzV3JpdGVycwIUYWNoaWV2ZW1lbnRzX3dyaXRlcnMADGFkbWluUHViS2V5MQEg4qeMQDuGzRfmtEuH2+Whg6yuKqHsNy5eZQUT8rXs7wQADGFkbWluUHViS2V5MgEg6jisuQG1iDxyo54oPYHUGiJlERON346DjXz9V/GbEVkADGFkbWluUHViS2V5MwEgpzSWgrCjycddMmIBfztFJ08z6r82xAHPELd0cKonzG4AEWFkbWluUHViS2V5SW52b2tlASAEz3XlZNDBD05nuR8TZMQaDeqEJEIxfTOQXUBYCp2TSgEKaXNTZWxmQ2FsbAEBaQMJAAACCAUBaQZjYWxsZXIFBHRoaXMFBHVuaXQJAAIBAi9Pbmx5IHRoZSBPcmFjbGUgaXRzZWxmIGNhbiBpbnZva2UgdGhpcyBmdW5jdGlvbgELZ2V0UG9vbFR5cGUBC3Bvb2xBZGRyZXNzBAd2ZXJzaW9uCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgULcG9vbEFkZHJlc3MCB3ZlcnNpb24CF1Bvb2wgaXMgbm90IGluaXRpYWxpemVkAwkAAAIFB3ZlcnNpb24CBTEuMC4wAgRjcG1tAwkAAAIFB3ZlcnNpb24CBTIuMC4wAgRmbGF0AwkAAAIFB3ZlcnNpb24CBTMuMC4wAgptdWx0eWN1cnZlCQACAQIXVW5rbm93biB2ZXJzaW9uIG9mIHBvb2wBEWdldEFkZHJlc3NJZlZhbGlkAQdhZGRyZXNzCQClCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBBQdhZGRyZXNzCQCsAgIJAKwCAgINQ2FuJ3QgcGFyc2UgIgUHYWRkcmVzcwIMIiBhcyBhZGRyZXNzBgFpAQhzZXRBZG1pbgAJAQt2YWx1ZU9yRWxzZQIJAQppc1NlbGZDYWxsAQUBaQkAzAgCCQELU3RyaW5nRW50cnkCBQ1rQWRtaW5QdWJLZXkxCQDYBAEFDGFkbWluUHViS2V5MQkAzAgCCQELU3RyaW5nRW50cnkCBQ1rQWRtaW5QdWJLZXkyCQDYBAEFDGFkbWluUHViS2V5MgkAzAgCCQELU3RyaW5nRW50cnkCBQ1rQWRtaW5QdWJLZXkzCQDYBAEFDGFkbWluUHViS2V5MwkAzAgCCQELU3RyaW5nRW50cnkCBRJrQWRtaW5JbnZva2VQdWJLZXkJANgEAQURYWRtaW5QdWJLZXlJbnZva2UFA25pbAFpAQdhZGRQb29sAgtwb29sQWRkcmVzcwhwb29sTmFtZQkBC3ZhbHVlT3JFbHNlAgkBCmlzU2VsZkNhbGwBBQFpBBB2YWxpZGF0ZWRBZGRyZXNzCQERZ2V0QWRkcmVzc0lmVmFsaWQBBQtwb29sQWRkcmVzcwQHa2V5TmFtZQkArAICBQ9rUHJlZml4UG9vbE5hbWUFEHZhbGlkYXRlZEFkZHJlc3MEGHBvc3NpYmx5QWxyZWFkeUFkZGVkUG9vbAkAnQgCBQR0aGlzBQdrZXlOYW1lAwkBCWlzRGVmaW5lZAEFGHBvc3NpYmx5QWxyZWFkeUFkZGVkUG9vbAkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgITUG9vbCB3aXRoIGFkZHJlc3MgIgUQdmFsaWRhdGVkQWRkcmVzcwIgIiBpcyBhbHJlYWR5IGRlZmluZWQgd2l0aCBuYW1lICIJAQV2YWx1ZQEFGHBvc3NpYmx5QWxyZWFkeUFkZGVkUG9vbAIBIgkAzggCCQDMCAIJAQtTdHJpbmdFbnRyeQIFB2tleU5hbWUFCHBvb2xOYW1lBQNuaWwDCQAAAgkBC2dldFBvb2xUeXBlAQkBBXZhbHVlAQkApggBBQtwb29sQWRkcmVzcwIKbXVsdHljdXJ2ZQUDbmlsBAhhc3NldElkQQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIJAQV2YWx1ZQEJAKYIAQULcG9vbEFkZHJlc3MFCWtBc3NldElkQQIXQXNzZXQgaWQgQSBpcyBpbmNvcnJlY3QECGFzc2V0SWRCCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgkBBXZhbHVlAQkApggBBQtwb29sQWRkcmVzcwUJa0Fzc2V0SWRCAhdBc3NldCBpZCBCIGlzIGluY29ycmVjdAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQVrUGFpcgUIYXNzZXRJZEECAV8FCGFzc2V0SWRCBQtwb29sQWRkcmVzcwUDbmlsAWkBCnJlbmFtZVBvb2wCC3Bvb2xBZGRyZXNzC25ld1Bvb2xOYW1lCQELdmFsdWVPckVsc2UCCQEKaXNTZWxmQ2FsbAEFAWkEEHZhbGlkYXRlZEFkZHJlc3MJARFnZXRBZGRyZXNzSWZWYWxpZAEFC3Bvb2xBZGRyZXNzBAdrZXlOYW1lCQCsAgIFD2tQcmVmaXhQb29sTmFtZQUQdmFsaWRhdGVkQWRkcmVzcwQYcG9zc2libHlBbHJlYWR5QWRkZWRQb29sCQCdCAIFBHRoaXMFB2tleU5hbWUDCQEJaXNEZWZpbmVkAQUYcG9zc2libHlBbHJlYWR5QWRkZWRQb29sCQDMCAIJAQtTdHJpbmdFbnRyeQIFB2tleU5hbWUFC25ld1Bvb2xOYW1lBQNuaWwJAAIBCQCsAgIJAKwCAgITUG9vbCB3aXRoIGFkZHJlc3MgIgUQdmFsaWRhdGVkQWRkcmVzcwIYIiBoYXMgbm90IHlldCBiZWVuIGFkZGVkAWkBHmxhdW5jaHBhZERhdGFUcmFuc2FjdGlvblN0YXR1cwEGc3RhdHVzCQELdmFsdWVPckVsc2UCCQEKaXNTZWxmQ2FsbAEFAWkJAMwIAgkBDEJvb2xlYW5FbnRyeQIFH2tMYXVuY2hwYWREYXRhVHJhbnNhY3Rpb25TdGF0dXMFBnN0YXR1cwUDbmlsAWkBFWFkZEFjaGlldmVtZW50c1dyaXRlcgEHYWRkcmVzcwkBC3ZhbHVlT3JFbHNlAgkBCmlzU2VsZkNhbGwBBQFpBAd3cml0ZXJzCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFFGtBY2hpZXZlbWVudHNXcml0ZXJzAgAEBGRhdGEDCQAAAgUHd3JpdGVycwIABQNuaWwJALUJAgUHd3JpdGVycwIBLAkAzAgCCQELU3RyaW5nRW50cnkCBRRrQWNoaWV2ZW1lbnRzV3JpdGVycwkAuQkCCQDNCAIFBGRhdGEFB2FkZHJlc3MCASwFA25pbAFpARhyZW1vdmVBY2hpZXZlbWVudHNXcml0ZXIBB2FkZHJlc3MJAQt2YWx1ZU9yRWxzZQIJAQppc1NlbGZDYWxsAQUBaQQHd3JpdGVycwkAtQkCCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFFGtBY2hpZXZlbWVudHNXcml0ZXJzAgACASwEBWluZGV4CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAM8IAgUHd3JpdGVycwUHYWRkcmVzcwIeQ2FuJ3QgZmluZCBhZGRyZXNzIGluIHRoZSBsaXN0CQDMCAIJAQtTdHJpbmdFbnRyeQIFFGtBY2hpZXZlbWVudHNXcml0ZXJzCQC5CQIJANEIAgUHd3JpdGVycwUFaW5kZXgCASwFA25pbAECdHgBBnZlcmlmeQAEEmFkbWluUHViS2V5MVNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFDGFkbWluUHViS2V5MQABAAAEEmFkbWluUHViS2V5MlNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAEFDGFkbWluUHViS2V5MgABAAAEEmFkbWluUHViS2V5M1NpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAIFDGFkbWluUHViS2V5MwABAAAEDXNpZ25lZEJ5QWRtaW4JAGcCCQBkAgkAZAIFEmFkbWluUHViS2V5MVNpZ25lZAUSYWRtaW5QdWJLZXkyU2lnbmVkBRJhZG1pblB1YktleTNTaWduZWQAAgQac2lnbmVkQnlBZG1pblRvQ2FsbEFkZFBvb2wJAGcCCQBkAgkAZAIFEmFkbWluUHViS2V5MVNpZ25lZAUSYWRtaW5QdWJLZXkyU2lnbmVkBRJhZG1pblB1YktleTNTaWduZWQAAQQHJG1hdGNoMAUCdHgDCQABAgUHJG1hdGNoMAIXSW52b2tlU2NyaXB0VHJhbnNhY3Rpb24EA2ludgUHJG1hdGNoMAQWaXNTZWxmSW52b2tlUmVuYW1lUG9vbAMJAAACCAUDaW52BGRBcHAFBHRoaXMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAICCnJlbmFtZVBvb2wFA25pbAgFA2ludghmdW5jdGlvbgcEFGlzU2VsZkludm9rZVNldEFkbWluAwkAAAIIBQNpbnYEZEFwcAUEdGhpcwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgIIc2V0QWRtaW4FA25pbAgFA2ludghmdW5jdGlvbgcEE2lzU2VsZkludm9rZUFkZFBvb2wDCQAAAggFA2ludgRkQXBwBQR0aGlzCQEPY29udGFpbnNFbGVtZW50AgkAzAgCAgdhZGRQb29sBQNuaWwIBQNpbnYIZnVuY3Rpb24HBCFpc1NlbGZJbnZva2VMYXVuY2hwYWREYXRhVHhTdGF0dXMDCQAAAggFA2ludgRkQXBwBQR0aGlzCQEPY29udGFpbnNFbGVtZW50AgkAzAgCAh5sYXVuY2hwYWREYXRhVHJhbnNhY3Rpb25TdGF0dXMFA25pbAgFA2ludghmdW5jdGlvbgcEIWlzU2VsZkludm9rZUFkZEFjaGlldmVtZW50c1dyaXRlcgMJAAACCAUDaW52BGRBcHAFBHRoaXMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAICFWFkZEFjaGlldmVtZW50c1dyaXRlcgUDbmlsCAUDaW52CGZ1bmN0aW9uBwQkaXNTZWxmSW52b2tlUmVtb3ZlQWNoaWV2ZW1lbnRzV3JpdGVyAwkAAAIIBQNpbnYEZEFwcAUEdGhpcwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgIYcmVtb3ZlQWNoaWV2ZW1lbnRzV3JpdGVyBQNuaWwIBQNpbnYIZnVuY3Rpb24HAwMDAwMDAwUNc2lnbmVkQnlBZG1pbgkAAAIJAJADAQgFA2ludghwYXltZW50cwAABwUWaXNTZWxmSW52b2tlUmVuYW1lUG9vbAcGAwMFGnNpZ25lZEJ5QWRtaW5Ub0NhbGxBZGRQb29sCQAAAgkAkAMBCAUDaW52CHBheW1lbnRzAAAHBRNpc1NlbGZJbnZva2VBZGRQb29sBwYDAwUNc2lnbmVkQnlBZG1pbgkAAAIJAJADAQgFA2ludghwYXltZW50cwAABwUUaXNTZWxmSW52b2tlU2V0QWRtaW4HBgMDBQ1zaWduZWRCeUFkbWluCQAAAgkAkAMBCAUDaW52CHBheW1lbnRzAAAHBSFpc1NlbGZJbnZva2VMYXVuY2hwYWREYXRhVHhTdGF0dXMHBgMDBQ1zaWduZWRCeUFkbWluCQAAAgkAkAMBCAUDaW52CHBheW1lbnRzAAAHBSFpc1NlbGZJbnZva2VBZGRBY2hpZXZlbWVudHNXcml0ZXIHBgMDBQ1zaWduZWRCeUFkbWluCQAAAgkAkAMBCAUDaW52CHBheW1lbnRzAAAHBSRpc1NlbGZJbnZva2VSZW1vdmVBY2hpZXZlbWVudHNXcml0ZXIHAwMJAAECBQckbWF0Y2gwAgVPcmRlcgYDCQABAgUHJG1hdGNoMAIPRGF0YVRyYW5zYWN0aW9uBgMJAAECBQckbWF0Y2gwAhVTcG9uc29yRmVlVHJhbnNhY3Rpb24GAwkAAQIFByRtYXRjaDACFFNldFNjcmlwdFRyYW5zYWN0aW9uBgMJAAECBQckbWF0Y2gwAhZDcmVhdGVBbGlhc1RyYW5zYWN0aW9uBgMJAAECBQckbWF0Y2gwAhZMZWFzZUNhbmNlbFRyYW5zYWN0aW9uBgMJAAECBQckbWF0Y2gwAhBMZWFzZVRyYW5zYWN0aW9uBgMJAAECBQckbWF0Y2gwAhBJc3N1ZVRyYW5zYWN0aW9uBgMJAAECBQckbWF0Y2gwAhtJbnZva2VFeHByZXNzaW9uVHJhbnNhY3Rpb24GAwkAAQIFByRtYXRjaDACGlVwZGF0ZUFzc2V0SW5mb1RyYW5zYWN0aW9uBgMJAAECBQckbWF0Y2gwAhdJbnZva2VTY3JpcHRUcmFuc2FjdGlvbgYDCQABAgUHJG1hdGNoMAIZU2V0QXNzZXRTY3JpcHRUcmFuc2FjdGlvbgYDCQABAgUHJG1hdGNoMAITVHJhbnNmZXJUcmFuc2FjdGlvbgYDCQABAgUHJG1hdGNoMAITRXhjaGFuZ2VUcmFuc2FjdGlvbgYDCQABAgUHJG1hdGNoMAIXTWFzc1RyYW5zZmVyVHJhbnNhY3Rpb24GAwkAAQIFByRtYXRjaDACD0J1cm5UcmFuc2FjdGlvbgYJAAECBQckbWF0Y2gwAhJSZWlzc3VlVHJhbnNhY3Rpb24FDXNpZ25lZEJ5QWRtaW4JAAIBAgtNYXRjaCBlcnJvcnHIYdo=", "height": 2267459, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 2w8uJgwuWtM6udzDVUBe8SvBmL2v8kk99HsfXZWY42jy Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+let kPrefixPoolName = "pool_"
5+
6+let kPair = "pair_"
7+
8+let kAssetIdA = "A_asset_id"
9+
10+let kAssetIdB = "B_asset_id"
11+
12+let kLaunchpadDataTransactionStatus = "launchpad_data_transaction_status"
13+
14+let kAdminPubKey1 = "admin_pub_1"
15+
16+let kAdminPubKey2 = "admin_pub_2"
17+
18+let kAdminPubKey3 = "admin_pub_3"
19+
20+let kAdminInvokePubKey = "admin_invoke_pub"
21+
22+let kAchievementsWriters = "achievements_writers"
23+
24+let adminPubKey1 = base58'GFmKZ2naZFRoCvNbwKAQVGmLb1uBeWGDgFabdGBuZiuy'
25+
26+let adminPubKey2 = base58'GmJXRyhRA79g8yUGgKBAVdnFfQFDMjQG98b1MmLDh5kk'
27+
28+let adminPubKey3 = base58'CFhbV6h41hVjbGHudGtS3fYUv7QAKRxFQzKNtx4B5PqP'
29+
30+let adminPubKeyInvoke = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
31+
32+func isSelfCall (i) = if ((i.caller == this))
33+ then unit
34+ else throw("Only the Oracle itself can invoke this function")
35+
36+
37+func getPoolType (poolAddress) = {
38+ let version = valueOrErrorMessage(getString(poolAddress, "version"), "Pool is not initialized")
39+ if ((version == "1.0.0"))
40+ then "cpmm"
41+ else if ((version == "2.0.0"))
42+ then "flat"
43+ else if ((version == "3.0.0"))
44+ then "multycurve"
45+ else throw("Unknown version of pool")
46+ }
47+
48+
49+func getAddressIfValid (address) = toString(valueOrErrorMessage(addressFromString(address), (("Can't parse \"" + address) + "\" as address")))
50+
51+
52+@Callable(i)
53+func setAdmin () = valueOrElse(isSelfCall(i), [StringEntry(kAdminPubKey1, toBase58String(adminPubKey1)), StringEntry(kAdminPubKey2, toBase58String(adminPubKey2)), StringEntry(kAdminPubKey3, toBase58String(adminPubKey3)), StringEntry(kAdminInvokePubKey, toBase58String(adminPubKeyInvoke))])
54+
55+
56+
57+@Callable(i)
58+func addPool (poolAddress,poolName) = valueOrElse(isSelfCall(i), {
59+ let validatedAddress = getAddressIfValid(poolAddress)
60+ let keyName = (kPrefixPoolName + validatedAddress)
61+ let possiblyAlreadyAddedPool = getString(this, keyName)
62+ if (isDefined(possiblyAlreadyAddedPool))
63+ then throw((((("Pool with address \"" + validatedAddress) + "\" is already defined with name \"") + value(possiblyAlreadyAddedPool)) + "\""))
64+ else ([StringEntry(keyName, poolName)] ++ (if ((getPoolType(value(addressFromString(poolAddress))) == "multycurve"))
65+ then nil
66+ else {
67+ let assetIdA = valueOrErrorMessage(getString(value(addressFromString(poolAddress)), kAssetIdA), "Asset id A is incorrect")
68+ let assetIdB = valueOrErrorMessage(getString(value(addressFromString(poolAddress)), kAssetIdB), "Asset id B is incorrect")
69+[StringEntry((((kPair + assetIdA) + "_") + assetIdB), poolAddress)]
70+ }))
71+ })
72+
73+
74+
75+@Callable(i)
76+func renamePool (poolAddress,newPoolName) = valueOrElse(isSelfCall(i), {
77+ let validatedAddress = getAddressIfValid(poolAddress)
78+ let keyName = (kPrefixPoolName + validatedAddress)
79+ let possiblyAlreadyAddedPool = getString(this, keyName)
80+ if (isDefined(possiblyAlreadyAddedPool))
81+ then [StringEntry(keyName, newPoolName)]
82+ else throw((("Pool with address \"" + validatedAddress) + "\" has not yet been added"))
83+ })
84+
85+
86+
87+@Callable(i)
88+func launchpadDataTransactionStatus (status) = valueOrElse(isSelfCall(i), [BooleanEntry(kLaunchpadDataTransactionStatus, status)])
89+
90+
91+
92+@Callable(i)
93+func addAchievementsWriter (address) = valueOrElse(isSelfCall(i), {
94+ let writers = valueOrElse(getString(this, kAchievementsWriters), "")
95+ let data = if ((writers == ""))
96+ then nil
97+ else split(writers, ",")
98+[StringEntry(kAchievementsWriters, makeString((data :+ address), ","))]
99+ })
100+
101+
102+
103+@Callable(i)
104+func removeAchievementsWriter (address) = valueOrElse(isSelfCall(i), {
105+ let writers = split(valueOrElse(getString(this, kAchievementsWriters), ""), ",")
106+ let index = valueOrErrorMessage(indexOf(writers, address), "Can't find address in the list")
107+[StringEntry(kAchievementsWriters, makeString(removeByIndex(writers, index), ","))]
108+ })
109+
110+
111+@Verifier(tx)
112+func verify () = {
113+ let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1))
114+ then 1
115+ else 0
116+ let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], adminPubKey2))
117+ then 1
118+ else 0
119+ let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], adminPubKey3))
120+ then 1
121+ else 0
122+ let signedByAdmin = (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 2)
123+ let signedByAdminToCallAddPool = (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 1)
124+ match tx {
125+ case inv: InvokeScriptTransaction =>
126+ let isSelfInvokeRenamePool = if ((inv.dApp == this))
127+ then containsElement(["renamePool"], inv.function)
128+ else false
129+ let isSelfInvokeSetAdmin = if ((inv.dApp == this))
130+ then containsElement(["setAdmin"], inv.function)
131+ else false
132+ let isSelfInvokeAddPool = if ((inv.dApp == this))
133+ then containsElement(["addPool"], inv.function)
134+ else false
135+ let isSelfInvokeLaunchpadDataTxStatus = if ((inv.dApp == this))
136+ then containsElement(["launchpadDataTransactionStatus"], inv.function)
137+ else false
138+ let isSelfInvokeAddAchievementsWriter = if ((inv.dApp == this))
139+ then containsElement(["addAchievementsWriter"], inv.function)
140+ else false
141+ let isSelfInvokeRemoveAchievementsWriter = if ((inv.dApp == this))
142+ then containsElement(["removeAchievementsWriter"], inv.function)
143+ else false
144+ if (if (if (if (if (if (if (signedByAdmin)
145+ then (size(inv.payments) == 0)
146+ else false)
147+ then isSelfInvokeRenamePool
148+ else false)
149+ then true
150+ else if (if (signedByAdminToCallAddPool)
151+ then (size(inv.payments) == 0)
152+ else false)
153+ then isSelfInvokeAddPool
154+ else false)
155+ then true
156+ else if (if (signedByAdmin)
157+ then (size(inv.payments) == 0)
158+ else false)
159+ then isSelfInvokeSetAdmin
160+ else false)
161+ then true
162+ else if (if (signedByAdmin)
163+ then (size(inv.payments) == 0)
164+ else false)
165+ then isSelfInvokeLaunchpadDataTxStatus
166+ else false)
167+ then true
168+ else if (if (signedByAdmin)
169+ then (size(inv.payments) == 0)
170+ else false)
171+ then isSelfInvokeAddAchievementsWriter
172+ else false)
173+ then true
174+ else if (if (signedByAdmin)
175+ then (size(inv.payments) == 0)
176+ else false)
177+ then isSelfInvokeRemoveAchievementsWriter
178+ else false
179+ case _: Order|DataTransaction|SponsorFeeTransaction|SetScriptTransaction|CreateAliasTransaction|LeaseCancelTransaction|LeaseTransaction|IssueTransaction|InvokeExpressionTransaction|UpdateAssetInfoTransaction|InvokeScriptTransaction|SetAssetScriptTransaction|TransferTransaction|ExchangeTransaction|MassTransferTransaction|BurnTransaction|ReissueTransaction =>
180+ signedByAdmin
181+ case _ =>
182+ throw("Match error")
183+ }
184+ }
185+

github/deemru/w8io/026f985 
19.58 ms