tx · 3UVsrMNfPVpEWMPfpTjD4vUcaeNo5EP1YgCKYSyBzG3Z

3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9:  -0.01000000 Waves

2022.09.09 13:07 [2221428] smart account 3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9 > SELF 0.00000000 Waves

{ "type": 13, "id": "3UVsrMNfPVpEWMPfpTjD4vUcaeNo5EP1YgCKYSyBzG3Z", "fee": 1000000, "feeAssetId": null, "timestamp": 1662718034887, "version": 2, "chainId": 84, "sender": "3NBBWfzZtZtszaXbitTKnrB2xXwv26Bn7H9", "senderPublicKey": "D1X9WatF6ARMCmm3jC4Ex5Wd5VQ3LY8i1xbHNqeHqeAa", "proofs": [ "4Z26iCEo6wnDG6LF6iRdXqESTuWBof42fgPGFXCp5eTjpKgzECp9DRhdM8MwpHq3ifKCnRcyK7Vrtw1X5BP3hgd", "FwTCaMc4JxVXKftcXYYcUANswexkeTfR84q4VQA64wSV1TdL15edPtaTjoDRK9mHnKsUiTwbYSv1Rt98ww6vHny" ], "script": "base64:BgIfCAISABIECgIICBIECgIICBIDCgEEEgMKAQgSAwoBCBEAD2tQcmVmaXhQb29sTmFtZQIFcG9vbF8ABWtQYWlyAgVwYWlyXwAJa0Fzc2V0SWRBAgpBX2Fzc2V0X2lkAAlrQXNzZXRJZEICCkJfYXNzZXRfaWQAH2tMYXVuY2hwYWREYXRhVHJhbnNhY3Rpb25TdGF0dXMCIWxhdW5jaHBhZF9kYXRhX3RyYW5zYWN0aW9uX3N0YXR1cwANa0FkbWluUHViS2V5MQILYWRtaW5fcHViXzEADWtBZG1pblB1YktleTICC2FkbWluX3B1Yl8yAA1rQWRtaW5QdWJLZXkzAgthZG1pbl9wdWJfMwASa0FkbWluSW52b2tlUHViS2V5AhBhZG1pbl9pbnZva2VfcHViABRrQWNoaWV2ZW1lbnRzV3JpdGVycwIUYWNoaWV2ZW1lbnRzX3dyaXRlcnMADGFkbWluUHViS2V5MQEg4qeMQDuGzRfmtEuH2+Whg6yuKqHsNy5eZQUT8rXs7wQADGFkbWluUHViS2V5MgEg6jisuQG1iDxyo54oPYHUGiJlERON346DjXz9V/GbEVkADGFkbWluUHViS2V5MwEgpzSWgrCjycddMmIBfztFJ08z6r82xAHPELd0cKonzG4AEWFkbWluUHViS2V5SW52b2tlASAEz3XlZNDBD05nuR8TZMQaDeqEJEIxfTOQXUBYCp2TSgEKaXNTZWxmQ2FsbAEBaQMJAAACCAUBaQZjYWxsZXIFBHRoaXMFBHVuaXQJAAIBAi9Pbmx5IHRoZSBPcmFjbGUgaXRzZWxmIGNhbiBpbnZva2UgdGhpcyBmdW5jdGlvbgELZ2V0UG9vbFR5cGUBC3Bvb2xBZGRyZXNzBAd2ZXJzaW9uCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgULcG9vbEFkZHJlc3MCB3ZlcnNpb24CF1Bvb2wgaXMgbm90IGluaXRpYWxpemVkAwkAAAIFB3ZlcnNpb24CBTEuMC4wAgRjcG1tAwkAAAIFB3ZlcnNpb24CBTIuMC4wAgRmbGF0AwkAAAIFB3ZlcnNpb24CBTMuMC4wAgptdWx0eWN1cnZlCQACAQIXVW5rbm93biB2ZXJzaW9uIG9mIHBvb2wBEWdldEFkZHJlc3NJZlZhbGlkAQdhZGRyZXNzCQClCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBBQdhZGRyZXNzCQCsAgIJAKwCAgINQ2FuJ3QgcGFyc2UgIgUHYWRkcmVzcwIMIiBhcyBhZGRyZXNzBgFpAQhzZXRBZG1pbgAJAQt2YWx1ZU9yRWxzZQIJAQppc1NlbGZDYWxsAQUBaQkAzAgCCQELU3RyaW5nRW50cnkCBQ1rQWRtaW5QdWJLZXkxCQDYBAEFDGFkbWluUHViS2V5MQkAzAgCCQELU3RyaW5nRW50cnkCBQ1rQWRtaW5QdWJLZXkyCQDYBAEFDGFkbWluUHViS2V5MgkAzAgCCQELU3RyaW5nRW50cnkCBQ1rQWRtaW5QdWJLZXkzCQDYBAEFDGFkbWluUHViS2V5MwkAzAgCCQELU3RyaW5nRW50cnkCBRJrQWRtaW5JbnZva2VQdWJLZXkJANgEAQURYWRtaW5QdWJLZXlJbnZva2UFA25pbAFpAQdhZGRQb29sAgtwb29sQWRkcmVzcwhwb29sTmFtZQkBC3ZhbHVlT3JFbHNlAgkBCmlzU2VsZkNhbGwBBQFpBBB2YWxpZGF0ZWRBZGRyZXNzCQERZ2V0QWRkcmVzc0lmVmFsaWQBBQtwb29sQWRkcmVzcwQHa2V5TmFtZQkArAICBQ9rUHJlZml4UG9vbE5hbWUFEHZhbGlkYXRlZEFkZHJlc3MEGHBvc3NpYmx5QWxyZWFkeUFkZGVkUG9vbAkAnQgCBQR0aGlzBQdrZXlOYW1lAwkBCWlzRGVmaW5lZAEFGHBvc3NpYmx5QWxyZWFkeUFkZGVkUG9vbAkAAgEJAKwCAgkArAICCQCsAgIJAKwCAgITUG9vbCB3aXRoIGFkZHJlc3MgIgUQdmFsaWRhdGVkQWRkcmVzcwIgIiBpcyBhbHJlYWR5IGRlZmluZWQgd2l0aCBuYW1lICIJAQV2YWx1ZQEFGHBvc3NpYmx5QWxyZWFkeUFkZGVkUG9vbAIBIgkAzggCCQDMCAIJAQtTdHJpbmdFbnRyeQIFB2tleU5hbWUFCHBvb2xOYW1lBQNuaWwDCQAAAgkBC2dldFBvb2xUeXBlAQkBBXZhbHVlAQkApggBBQtwb29sQWRkcmVzcwIKbXVsdHljdXJ2ZQUDbmlsBAhhc3NldElkQQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIJAQV2YWx1ZQEJAKYIAQULcG9vbEFkZHJlc3MFCWtBc3NldElkQQIXQXNzZXQgaWQgQSBpcyBpbmNvcnJlY3QECGFzc2V0SWRCCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgkBBXZhbHVlAQkApggBBQtwb29sQWRkcmVzcwUJa0Fzc2V0SWRCAhdBc3NldCBpZCBCIGlzIGluY29ycmVjdAkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIJAKwCAgkArAICBQVrUGFpcgUIYXNzZXRJZEECAV8FCGFzc2V0SWRCBQtwb29sQWRkcmVzcwUDbmlsAWkBCnJlbmFtZVBvb2wCC3Bvb2xBZGRyZXNzC25ld1Bvb2xOYW1lCQELdmFsdWVPckVsc2UCCQEKaXNTZWxmQ2FsbAEFAWkEEHZhbGlkYXRlZEFkZHJlc3MJARFnZXRBZGRyZXNzSWZWYWxpZAEFC3Bvb2xBZGRyZXNzBAdrZXlOYW1lCQCsAgIFD2tQcmVmaXhQb29sTmFtZQUQdmFsaWRhdGVkQWRkcmVzcwQYcG9zc2libHlBbHJlYWR5QWRkZWRQb29sCQCdCAIFBHRoaXMFB2tleU5hbWUDCQEJaXNEZWZpbmVkAQUYcG9zc2libHlBbHJlYWR5QWRkZWRQb29sCQDMCAIJAQtTdHJpbmdFbnRyeQIFB2tleU5hbWUFC25ld1Bvb2xOYW1lBQNuaWwJAAIBCQCsAgIJAKwCAgITUG9vbCB3aXRoIGFkZHJlc3MgIgUQdmFsaWRhdGVkQWRkcmVzcwIYIiBoYXMgbm90IHlldCBiZWVuIGFkZGVkAWkBHmxhdW5jaHBhZERhdGFUcmFuc2FjdGlvblN0YXR1cwEGc3RhdHVzCQELdmFsdWVPckVsc2UCCQEKaXNTZWxmQ2FsbAEFAWkJAMwIAgkBDEJvb2xlYW5FbnRyeQIFH2tMYXVuY2hwYWREYXRhVHJhbnNhY3Rpb25TdGF0dXMFBnN0YXR1cwUDbmlsAWkBFWFkZEFjaGlldmVtZW50c1dyaXRlcgEHYWRkcmVzcwkBC3ZhbHVlT3JFbHNlAgkBCmlzU2VsZkNhbGwBBQFpBAd3cml0ZXJzCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFFGtBY2hpZXZlbWVudHNXcml0ZXJzAgAEBGRhdGEDCQAAAgUHd3JpdGVycwIABQNuaWwJALUJAgUHd3JpdGVycwIBLAkAzAgCCQELU3RyaW5nRW50cnkCBRRrQWNoaWV2ZW1lbnRzV3JpdGVycwkAuQkCCQDNCAIFBGRhdGEFB2FkZHJlc3MCASwFA25pbAFpARhyZW1vdmVBY2hpZXZlbWVudHNXcml0ZXIBB2FkZHJlc3MJAQt2YWx1ZU9yRWxzZQIJAQppc1NlbGZDYWxsAQUBaQQHd3JpdGVycwkAtQkCCQELdmFsdWVPckVsc2UCCQCdCAIFBHRoaXMFFGtBY2hpZXZlbWVudHNXcml0ZXJzAgACASwEBWluZGV4CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAM8IAgUHd3JpdGVycwUHYWRkcmVzcwIeQ2FuJ3QgZmluZCBhZGRyZXNzIGluIHRoZSBsaXN0CQDMCAIJAQtTdHJpbmdFbnRyeQIFFGtBY2hpZXZlbWVudHNXcml0ZXJzCQC5CQIJANEIAgUHd3JpdGVycwUFaW5kZXgCASwFA25pbAECdHgBBnZlcmlmeQAEEmFkbWluUHViS2V5MVNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFDGFkbWluUHViS2V5MQABAAAEEmFkbWluUHViS2V5MlNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAEFDGFkbWluUHViS2V5MgABAAAEEmFkbWluUHViS2V5M1NpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAIFDGFkbWluUHViS2V5MwABAAAEDXNpZ25lZEJ5QWRtaW4JAGcCCQBkAgkAZAIFEmFkbWluUHViS2V5MVNpZ25lZAUSYWRtaW5QdWJLZXkyU2lnbmVkBRJhZG1pblB1YktleTNTaWduZWQAAgQac2lnbmVkQnlBZG1pblRvQ2FsbEFkZFBvb2wJAGcCCQBkAgkAZAIFEmFkbWluUHViS2V5MVNpZ25lZAUSYWRtaW5QdWJLZXkyU2lnbmVkBRJhZG1pblB1YktleTNTaWduZWQAAQQHJG1hdGNoMAUCdHgDCQABAgUHJG1hdGNoMAIXSW52b2tlU2NyaXB0VHJhbnNhY3Rpb24EA2ludgUHJG1hdGNoMAQWaXNTZWxmSW52b2tlUmVuYW1lUG9vbAMJAAACCAUDaW52BGRBcHAFBHRoaXMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAICCnJlbmFtZVBvb2wFA25pbAgFA2ludghmdW5jdGlvbgcEFGlzU2VsZkludm9rZVNldEFkbWluAwkAAAIIBQNpbnYEZEFwcAUEdGhpcwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgIIc2V0QWRtaW4FA25pbAgFA2ludghmdW5jdGlvbgcEE2lzU2VsZkludm9rZUFkZFBvb2wDCQAAAggFA2ludgRkQXBwBQR0aGlzCQEPY29udGFpbnNFbGVtZW50AgkAzAgCAgdhZGRQb29sBQNuaWwIBQNpbnYIZnVuY3Rpb24HBCFpc1NlbGZJbnZva2VMYXVuY2hwYWREYXRhVHhTdGF0dXMDCQAAAggFA2ludgRkQXBwBQR0aGlzCQEPY29udGFpbnNFbGVtZW50AgkAzAgCAh5sYXVuY2hwYWREYXRhVHJhbnNhY3Rpb25TdGF0dXMFA25pbAgFA2ludghmdW5jdGlvbgcEIWlzU2VsZkludm9rZUFkZEFjaGlldmVtZW50c1dyaXRlcgMJAAACCAUDaW52BGRBcHAFBHRoaXMJAQ9jb250YWluc0VsZW1lbnQCCQDMCAICFWFkZEFjaGlldmVtZW50c1dyaXRlcgUDbmlsCAUDaW52CGZ1bmN0aW9uBwQkaXNTZWxmSW52b2tlUmVtb3ZlQWNoaWV2ZW1lbnRzV3JpdGVyAwkAAAIIBQNpbnYEZEFwcAUEdGhpcwkBD2NvbnRhaW5zRWxlbWVudAIJAMwIAgIYcmVtb3ZlQWNoaWV2ZW1lbnRzV3JpdGVyBQNuaWwIBQNpbnYIZnVuY3Rpb24HAwMDAwMDAwUNc2lnbmVkQnlBZG1pbgkAAAIJAJADAQgFA2ludghwYXltZW50cwAABwUWaXNTZWxmSW52b2tlUmVuYW1lUG9vbAcGAwMFGnNpZ25lZEJ5QWRtaW5Ub0NhbGxBZGRQb29sCQAAAgkAkAMBCAUDaW52CHBheW1lbnRzAAAHBRNpc1NlbGZJbnZva2VBZGRQb29sBwYDAwUNc2lnbmVkQnlBZG1pbgkAAAIJAJADAQgFA2ludghwYXltZW50cwAABwUUaXNTZWxmSW52b2tlU2V0QWRtaW4HBgMDBQ1zaWduZWRCeUFkbWluCQAAAgkAkAMBCAUDaW52CHBheW1lbnRzAAAHBSFpc1NlbGZJbnZva2VMYXVuY2hwYWREYXRhVHhTdGF0dXMHBgMDBQ1zaWduZWRCeUFkbWluCQAAAgkAkAMBCAUDaW52CHBheW1lbnRzAAAHBSFpc1NlbGZJbnZva2VBZGRBY2hpZXZlbWVudHNXcml0ZXIHBgMDBQ1zaWduZWRCeUFkbWluCQAAAgkAkAMBCAUDaW52CHBheW1lbnRzAAAHBSRpc1NlbGZJbnZva2VSZW1vdmVBY2hpZXZlbWVudHNXcml0ZXIHAwMJAAECBQckbWF0Y2gwAgVPcmRlcgYDCQABAgUHJG1hdGNoMAIPRGF0YVRyYW5zYWN0aW9uBgMJAAECBQckbWF0Y2gwAhVTcG9uc29yRmVlVHJhbnNhY3Rpb24GAwkAAQIFByRtYXRjaDACFFNldFNjcmlwdFRyYW5zYWN0aW9uBgMJAAECBQckbWF0Y2gwAhZDcmVhdGVBbGlhc1RyYW5zYWN0aW9uBgMJAAECBQckbWF0Y2gwAhZMZWFzZUNhbmNlbFRyYW5zYWN0aW9uBgMJAAECBQckbWF0Y2gwAhBMZWFzZVRyYW5zYWN0aW9uBgMJAAECBQckbWF0Y2gwAhBJc3N1ZVRyYW5zYWN0aW9uBgMJAAECBQckbWF0Y2gwAhtJbnZva2VFeHByZXNzaW9uVHJhbnNhY3Rpb24GAwkAAQIFByRtYXRjaDACGlVwZGF0ZUFzc2V0SW5mb1RyYW5zYWN0aW9uBgMJAAECBQckbWF0Y2gwAhdJbnZva2VTY3JpcHRUcmFuc2FjdGlvbgYDCQABAgUHJG1hdGNoMAIZU2V0QXNzZXRTY3JpcHRUcmFuc2FjdGlvbgYDCQABAgUHJG1hdGNoMAITVHJhbnNmZXJUcmFuc2FjdGlvbgYDCQABAgUHJG1hdGNoMAITRXhjaGFuZ2VUcmFuc2FjdGlvbgYDCQABAgUHJG1hdGNoMAIXTWFzc1RyYW5zZmVyVHJhbnNhY3Rpb24GAwkAAQIFByRtYXRjaDACD0J1cm5UcmFuc2FjdGlvbgYJAAECBQckbWF0Y2gwAhJSZWlzc3VlVHJhbnNhY3Rpb24FDXNpZ25lZEJ5QWRtaW4JAAIBAgtNYXRjaCBlcnJvcnHIYdo=", "height": 2221428, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 37TExifogww359RfURTGDrep7n1gNyn53g5hGEQsSndX Next: 2qFuQqzD9B5T9YcgyS87Yz4rdLamFfQSFhNef1pTb2oc Diff:
OldNewDifferences
3434 else throw("Only the Oracle itself can invoke this function")
3535
3636
37-func getPoolNameIfValid (poolName) = {
38- let underscoreIndex = valueOrElse(indexOf(poolName, "_"), -1)
39- let underscoreLastIndex = valueOrElse(lastIndexOf(poolName, "_"), -1)
40- let hasSingleUnderscore = if (if ((underscoreIndex == underscoreLastIndex))
41- then (underscoreIndex > 0)
42- else false)
43- then (underscoreIndex != (size(poolName) - 1))
44- else false
45- if (hasSingleUnderscore)
46- then poolName
47- else throw("Pool name must consist of two asset names separated by an underscore character")
48- }
49-
50-
5137 func getPoolType (poolAddress) = {
5238 let version = valueOrErrorMessage(getString(poolAddress, "version"), "Pool is not initialized")
5339 if ((version == "1.0.0"))
7561 let possiblyAlreadyAddedPool = getString(this, keyName)
7662 if (isDefined(possiblyAlreadyAddedPool))
7763 then throw((((("Pool with address \"" + validatedAddress) + "\" is already defined with name \"") + value(possiblyAlreadyAddedPool)) + "\""))
78- else ([StringEntry(keyName, getPoolNameIfValid(poolName))] ++ (if ((getPoolType(value(addressFromString(poolAddress))) == "multycurve"))
64+ else ([StringEntry(keyName, poolName)] ++ (if ((getPoolType(value(addressFromString(poolAddress))) == "multycurve"))
7965 then nil
8066 else {
8167 let assetIdA = valueOrErrorMessage(getString(value(addressFromString(poolAddress)), kAssetIdA), "Asset id A is incorrect")
9278 let keyName = (kPrefixPoolName + validatedAddress)
9379 let possiblyAlreadyAddedPool = getString(this, keyName)
9480 if (isDefined(possiblyAlreadyAddedPool))
95- then [StringEntry(keyName, getPoolNameIfValid(newPoolName))]
81+ then [StringEntry(keyName, newPoolName)]
9682 else throw((("Pool with address \"" + validatedAddress) + "\" has not yet been added"))
9783 })
9884
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let kPrefixPoolName = "pool_"
55
66 let kPair = "pair_"
77
88 let kAssetIdA = "A_asset_id"
99
1010 let kAssetIdB = "B_asset_id"
1111
1212 let kLaunchpadDataTransactionStatus = "launchpad_data_transaction_status"
1313
1414 let kAdminPubKey1 = "admin_pub_1"
1515
1616 let kAdminPubKey2 = "admin_pub_2"
1717
1818 let kAdminPubKey3 = "admin_pub_3"
1919
2020 let kAdminInvokePubKey = "admin_invoke_pub"
2121
2222 let kAchievementsWriters = "achievements_writers"
2323
2424 let adminPubKey1 = base58'GFmKZ2naZFRoCvNbwKAQVGmLb1uBeWGDgFabdGBuZiuy'
2525
2626 let adminPubKey2 = base58'GmJXRyhRA79g8yUGgKBAVdnFfQFDMjQG98b1MmLDh5kk'
2727
2828 let adminPubKey3 = base58'CFhbV6h41hVjbGHudGtS3fYUv7QAKRxFQzKNtx4B5PqP'
2929
3030 let adminPubKeyInvoke = base58'Kn7NpzaG12dLZgcHf2ipUftU6hbJygmrhFqQYE4B7ZK'
3131
3232 func isSelfCall (i) = if ((i.caller == this))
3333 then unit
3434 else throw("Only the Oracle itself can invoke this function")
3535
3636
37-func getPoolNameIfValid (poolName) = {
38- let underscoreIndex = valueOrElse(indexOf(poolName, "_"), -1)
39- let underscoreLastIndex = valueOrElse(lastIndexOf(poolName, "_"), -1)
40- let hasSingleUnderscore = if (if ((underscoreIndex == underscoreLastIndex))
41- then (underscoreIndex > 0)
42- else false)
43- then (underscoreIndex != (size(poolName) - 1))
44- else false
45- if (hasSingleUnderscore)
46- then poolName
47- else throw("Pool name must consist of two asset names separated by an underscore character")
48- }
49-
50-
5137 func getPoolType (poolAddress) = {
5238 let version = valueOrErrorMessage(getString(poolAddress, "version"), "Pool is not initialized")
5339 if ((version == "1.0.0"))
5440 then "cpmm"
5541 else if ((version == "2.0.0"))
5642 then "flat"
5743 else if ((version == "3.0.0"))
5844 then "multycurve"
5945 else throw("Unknown version of pool")
6046 }
6147
6248
6349 func getAddressIfValid (address) = toString(valueOrErrorMessage(addressFromString(address), (("Can't parse \"" + address) + "\" as address")))
6450
6551
6652 @Callable(i)
6753 func setAdmin () = valueOrElse(isSelfCall(i), [StringEntry(kAdminPubKey1, toBase58String(adminPubKey1)), StringEntry(kAdminPubKey2, toBase58String(adminPubKey2)), StringEntry(kAdminPubKey3, toBase58String(adminPubKey3)), StringEntry(kAdminInvokePubKey, toBase58String(adminPubKeyInvoke))])
6854
6955
7056
7157 @Callable(i)
7258 func addPool (poolAddress,poolName) = valueOrElse(isSelfCall(i), {
7359 let validatedAddress = getAddressIfValid(poolAddress)
7460 let keyName = (kPrefixPoolName + validatedAddress)
7561 let possiblyAlreadyAddedPool = getString(this, keyName)
7662 if (isDefined(possiblyAlreadyAddedPool))
7763 then throw((((("Pool with address \"" + validatedAddress) + "\" is already defined with name \"") + value(possiblyAlreadyAddedPool)) + "\""))
78- else ([StringEntry(keyName, getPoolNameIfValid(poolName))] ++ (if ((getPoolType(value(addressFromString(poolAddress))) == "multycurve"))
64+ else ([StringEntry(keyName, poolName)] ++ (if ((getPoolType(value(addressFromString(poolAddress))) == "multycurve"))
7965 then nil
8066 else {
8167 let assetIdA = valueOrErrorMessage(getString(value(addressFromString(poolAddress)), kAssetIdA), "Asset id A is incorrect")
8268 let assetIdB = valueOrErrorMessage(getString(value(addressFromString(poolAddress)), kAssetIdB), "Asset id B is incorrect")
8369 [StringEntry((((kPair + assetIdA) + "_") + assetIdB), poolAddress)]
8470 }))
8571 })
8672
8773
8874
8975 @Callable(i)
9076 func renamePool (poolAddress,newPoolName) = valueOrElse(isSelfCall(i), {
9177 let validatedAddress = getAddressIfValid(poolAddress)
9278 let keyName = (kPrefixPoolName + validatedAddress)
9379 let possiblyAlreadyAddedPool = getString(this, keyName)
9480 if (isDefined(possiblyAlreadyAddedPool))
95- then [StringEntry(keyName, getPoolNameIfValid(newPoolName))]
81+ then [StringEntry(keyName, newPoolName)]
9682 else throw((("Pool with address \"" + validatedAddress) + "\" has not yet been added"))
9783 })
9884
9985
10086
10187 @Callable(i)
10288 func launchpadDataTransactionStatus (status) = valueOrElse(isSelfCall(i), [BooleanEntry(kLaunchpadDataTransactionStatus, status)])
10389
10490
10591
10692 @Callable(i)
10793 func addAchievementsWriter (address) = valueOrElse(isSelfCall(i), {
10894 let writers = valueOrElse(getString(this, kAchievementsWriters), "")
10995 let data = if ((writers == ""))
11096 then nil
11197 else split(writers, ",")
11298 [StringEntry(kAchievementsWriters, makeString((data :+ address), ","))]
11399 })
114100
115101
116102
117103 @Callable(i)
118104 func removeAchievementsWriter (address) = valueOrElse(isSelfCall(i), {
119105 let writers = split(valueOrElse(getString(this, kAchievementsWriters), ""), ",")
120106 let index = valueOrErrorMessage(indexOf(writers, address), "Can't find address in the list")
121107 [StringEntry(kAchievementsWriters, makeString(removeByIndex(writers, index), ","))]
122108 })
123109
124110
125111 @Verifier(tx)
126112 func verify () = {
127113 let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1))
128114 then 1
129115 else 0
130116 let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], adminPubKey2))
131117 then 1
132118 else 0
133119 let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], adminPubKey3))
134120 then 1
135121 else 0
136122 let signedByAdmin = (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 2)
137123 let signedByAdminToCallAddPool = (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 1)
138124 match tx {
139125 case inv: InvokeScriptTransaction =>
140126 let isSelfInvokeRenamePool = if ((inv.dApp == this))
141127 then containsElement(["renamePool"], inv.function)
142128 else false
143129 let isSelfInvokeSetAdmin = if ((inv.dApp == this))
144130 then containsElement(["setAdmin"], inv.function)
145131 else false
146132 let isSelfInvokeAddPool = if ((inv.dApp == this))
147133 then containsElement(["addPool"], inv.function)
148134 else false
149135 let isSelfInvokeLaunchpadDataTxStatus = if ((inv.dApp == this))
150136 then containsElement(["launchpadDataTransactionStatus"], inv.function)
151137 else false
152138 let isSelfInvokeAddAchievementsWriter = if ((inv.dApp == this))
153139 then containsElement(["addAchievementsWriter"], inv.function)
154140 else false
155141 let isSelfInvokeRemoveAchievementsWriter = if ((inv.dApp == this))
156142 then containsElement(["removeAchievementsWriter"], inv.function)
157143 else false
158144 if (if (if (if (if (if (if (signedByAdmin)
159145 then (size(inv.payments) == 0)
160146 else false)
161147 then isSelfInvokeRenamePool
162148 else false)
163149 then true
164150 else if (if (signedByAdminToCallAddPool)
165151 then (size(inv.payments) == 0)
166152 else false)
167153 then isSelfInvokeAddPool
168154 else false)
169155 then true
170156 else if (if (signedByAdmin)
171157 then (size(inv.payments) == 0)
172158 else false)
173159 then isSelfInvokeSetAdmin
174160 else false)
175161 then true
176162 else if (if (signedByAdmin)
177163 then (size(inv.payments) == 0)
178164 else false)
179165 then isSelfInvokeLaunchpadDataTxStatus
180166 else false)
181167 then true
182168 else if (if (signedByAdmin)
183169 then (size(inv.payments) == 0)
184170 else false)
185171 then isSelfInvokeAddAchievementsWriter
186172 else false)
187173 then true
188174 else if (if (signedByAdmin)
189175 then (size(inv.payments) == 0)
190176 else false)
191177 then isSelfInvokeRemoveAchievementsWriter
192178 else false
193179 case _: Order|DataTransaction|SponsorFeeTransaction|SetScriptTransaction|CreateAliasTransaction|LeaseCancelTransaction|LeaseTransaction|IssueTransaction|InvokeExpressionTransaction|UpdateAssetInfoTransaction|InvokeScriptTransaction|SetAssetScriptTransaction|TransferTransaction|ExchangeTransaction|MassTransferTransaction|BurnTransaction|ReissueTransaction =>
194180 signedByAdmin
195181 case _ =>
196182 throw("Match error")
197183 }
198184 }
199185

github/deemru/w8io/873ac7e 
58.97 ms