2023.11.17 14:12 [3913129] smart account 3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp > SELF 0.00000000 Waves

{ "type": 13, "id": "8eM56QNm2yyZ6Gk7HCPPYKK2YiyjLtHQuQ7u9Ve19G93", "fee": 1100000, "feeAssetId": null, "timestamp": 1700219642971, "version": 2, "chainId": 87, "sender": "3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp", "senderPublicKey": "GTY8yEJ2S4heRompxyvbJoBN1Td5BM5Pp4JgVbj9tmCw", "proofs": [ "", "5sj8rqskC2RraUP5gxh2Ns3AXtR74WXbgV5MZmqLkW3NqHQDDjSjFMB2tNiWCFLRNKU8nBTBtdfT8Skiu3scjhLN", "SbyVkhDGbQp1AvECMdJ6s9sZF7SCQkqTYpZjWCTxAFQCJ1Lw18kN33Np3yKkq49VqGP3YTwHKamk8uf9Ajz3nQS" ], "script": "base64:BgILCAISBwoFGAQICAEcAAZvcmFjbGUJAQdBZGRyZXNzAQEaAVeK/whomjW6QM1hdPISN96mN/D6OM7oHjgADWtBZG1pblB1YktleTECC2FkbWluX3B1Yl8xAA1rQWRtaW5QdWJLZXkyAgthZG1pbl9wdWJfMgANa0FkbWluUHViS2V5MwILYWRtaW5fcHViXzMAEmtBZG1pbkludm9rZVB1YktleQIQYWRtaW5faW52b2tlX3B1YgALa0dvdkFkZHJlc3MCEmdvdmVybmFuY2VfYWRkcmVzcwAMa0Zhcm1BZGRyZXNzAg9mYXJtaW5nX2FkZHJlc3MAD2tTdXJ2ZXlzQWRkcmVzcwIPc3VydmV5c19hZGRyZXNzAAxrUm91dGluZ0FkZHICD3JvdXRpbmdfYWRkcmVzcwAHa1NXT1BpZAIHU1dPUF9pZAAPa1ByZWZpeFBvb2xOYW1lAgVwb29sXwETZ2V0QmFzZTU4RnJvbU9yYWNsZQEDa2V5BAckbWF0Y2gwCQCdCAIFBm9yYWNsZQUDa2V5AwkAAQIFByRtYXRjaDACBlN0cmluZwQGc3RyaW5nBQckbWF0Y2gwCQDZBAEFBnN0cmluZwQHbm90aGluZwUHJG1hdGNoMAkAAgEJAKwCAgUDa2V5AghpcyBlbXB0eQAMYWRtaW5QdWJLZXkxCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDWtBZG1pblB1YktleTEADGFkbWluUHViS2V5MgkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQ1rQWRtaW5QdWJLZXkyAAxhZG1pblB1YktleTMJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUNa0FkbWluUHViS2V5MwALYWRtaW5JbnZva2UJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUSa0FkbWluSW52b2tlUHViS2V5ABFnb3Zlcm5hbmNlQWRkcmVzcwkBB0FkZHJlc3MBCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFC2tHb3ZBZGRyZXNzAA5mYXJtaW5nQWRkcmVzcwkBB0FkZHJlc3MBCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDGtGYXJtQWRkcmVzcwAOc3VydmV5c0FkZHJlc3MJAQdBZGRyZXNzAQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQ9rU3VydmV5c0FkZHJlc3MADnJvdXRpbmdBZGRyZXNzCQEHQWRkcmVzcwEJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUMa1JvdXRpbmdBZGRyAAZzd29wSWQJANkEAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUOZmFybWluZ0FkZHJlc3MFB2tTV09QaWQBCmlzU2VsZkNhbGwBAWkDCQAAAggFAWkGY2FsbGVyBQR0aGlzBQR1bml0CQACAQIrT25seSBjb250cmFjdCBpdHNlbGYgY2FuIGNhbGwgdGhpcyBmdW5jdGlvbgEJbGlzdFRvSW50AgFhBGl0ZW0JAM0IAgUBYQkBDXBhcnNlSW50VmFsdWUBBQRpdGVtAQ5hc3NldElkRnJvbVN0cgEHYXNzZXRJZAMJAAACBQdhc3NldElkAgVXQVZFUwUEdW5pdAkA2QQBBQdhc3NldElkAQ5hY2NvdW50QmFsYW5jZQEHYXNzZXRJZAQHJG1hdGNoMAUHYXNzZXRJZAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJpZAUHJG1hdGNoMAkA8AcCBQR0aGlzBQJpZAMJAAECBQckbWF0Y2gwAgRVbml0BAV3YXZlcwUHJG1hdGNoMAgJAO8HAQUEdGhpcwlhdmFpbGFibGUJAAIBAgtNYXRjaCBlcnJvcgEQZGlyZWN0U3dvcGZpQ1BNTQEFckFyZ3MEBGRBcHAJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAJEDAgUFckFyZ3MAAQQDcG10BARwbXRQCQC1CQIJAJEDAgUFckFyZ3MAAgIBfAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkA2QQBCQCRAwIFBHBtdFAAAAkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBHBtdFAAAQUDbmlsBAttaW5Ub1JlY2l2ZQkAkQMCBQVyQXJncwADCQD8BwQFBGRBcHACDGNhbGxGdW5jdGlvbgkAzAgCAghleGNoYW5nZQkAzAgCCQDMCAIFC21pblRvUmVjaXZlBQNuaWwFA25pbAUDcG10ARNkaXJlY3RSb3V0aW5nU3dvcGZpAQVyQXJncwQEZEFwcAkBEUBleHRyTmF0aXZlKDEwNjIpAQkAkQMCBQVyQXJncwABBANwbXQEBHBtdFAJALUJAgkAkQMCBQVyQXJncwACAgF8CQDMCAIJAQ9BdHRhY2hlZFBheW1lbnQCCQDZBAEJAJEDAgUEcG10UAAACQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUEcG10UAABBQNuaWwEBGFyZ3MEBWVBcmdzCQC1CQIJAJEDAgUFckFyZ3MAAwIBfAQKZXhjaGFuZ2VycwkAtQkCCQCRAwIFBWVBcmdzAAACASwEDmV4Y2hhbmdlcnNUeXBlCQC1CQIJAJEDAgUFZUFyZ3MAAQIBLAQFYXJnczEKAAIkbAkAtQkCCQCRAwIFBWVBcmdzAAICASwKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCWxpc3RUb0ludAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgMwkBBSRmMF8yAgkBBSRmMF8xAgkBBSRmMF8xAgkBBSRmMF8xAgUFJGFjYzAAAAABAAIAAwQFYXJnczIKAAIkbAkAtQkCCQCRAwIFBWVBcmdzAAMCASwKAAIkcwkAkAMBBQIkbAoABSRhY2MwBQNuaWwKAQUkZjFfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBCWxpc3RUb0ludAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMV8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQITTGlzdCBzaXplIGV4Y2VlZHMgMwkBBSRmMV8yAgkBBSRmMV8xAgkBBSRmMV8xAgkBBSRmMV8xAgUFJGFjYzAAAAABAAIAAwQRcm91dGluZ0Fzc2V0c0tleXMJALUJAgkAkQMCBQVlQXJncwAEAgEsBAttaW5Ub1JlY2l2ZQkBDXBhcnNlSW50VmFsdWUBCQCRAwIFBWVBcmdzAAUJAMwIAgUKZXhjaGFuZ2VycwkAzAgCBQ5leGNoYW5nZXJzVHlwZQkAzAgCBQVhcmdzMQkAzAgCBQVhcmdzMgkAzAgCBRFyb3V0aW5nQXNzZXRzS2V5cwkAzAgCBQttaW5Ub1JlY2l2ZQUDbmlsCQD8BwQFBGRBcHACDHJvdXRpbmdUcmFkZQUEYXJncwUDcG10ARFidXlTd29wRm9yQWlyZHJvcAMEcG9vbA90b2tlblRvRXhjaGFuZ2URYW1vdW50VG9MZWZ0Rm9yVHgEB3Rva2VuSWQJAQ5hc3NldElkRnJvbVN0cgEFD3Rva2VuVG9FeGNoYW5nZQQMdG9rZW5CYWxhbmNlCQEOYWNjb3VudEJhbGFuY2UBBQd0b2tlbklkAwkAAAIFDHRva2VuQmFsYW5jZQUMdG9rZW5CYWxhbmNlBBBhbW91bnRUb0V4Y2hhbmdlCQBlAgUMdG9rZW5CYWxhbmNlBRFhbW91bnRUb0xlZnRGb3JUeAMJAGcCAAAFEGFtb3VudFRvRXhjaGFuZ2UJAAIBAh9Ob3RoaW5nIHRvIGV4Y2hhbmdlIGZvciBhaXJkcm9wBAhwb29sQWRkcgkBEUBleHRyTmF0aXZlKDEwNjIpAQUEcG9vbAkA/AcEBQhwb29sQWRkcgIMY2FsbEZ1bmN0aW9uCQDMCAICCGV4Y2hhbmdlCQDMCAIJAMwIAgIBMQUDbmlsBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFB3Rva2VuSWQFEGFtb3VudFRvRXhjaGFuZ2UFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEBaQEOZXhjaGFuZ2VUb2tlbnMFBnJvdXRlcwdhaXJkcm9wBHBvb2wPdG9rZW5Ub0V4Y2hhbmdlEWFtb3VudFRvTGVmdEZvclR4CQELdmFsdWVPckVsc2UCCQEKaXNTZWxmQ2FsbAEFAWkKAQ1leGNoYW5nZVRva2VuAgFyBXJvdXRlBAVyQXJncwkAtQkCBQVyb3V0ZQICX18DCQAAAgkAkQMCBQVyQXJncwAAAhBkaXJlY3RTd29wZmlDUE1NBANpbnYJARBkaXJlY3RTd29wZmlDUE1NAQUFckFyZ3MDCQAAAgUDaW52BQNpbnYJAM0IAgUBcgUDaW52CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAAIJAJEDAgUFckFyZ3MAAAINcm91dGluZ1N3b3BmaQQDaW52CQETZGlyZWN0Um91dGluZ1N3b3BmaQEFBXJBcmdzAwkAAAIFA2ludgUDaW52CQDNCAIFAXIFA2ludgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECElVua25vd24gcm91dGUgdHlwZQQDcmVzCgACJGwFBnJvdXRlcwoAAiRzCQCQAwEFAiRsCgAFJGFjYzAFA25pbAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQENZXhjaGFuZ2VUb2tlbgIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMTAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgMJAAACBQNyZXMFA3JlcwMJAQEhAQUHYWlyZHJvcAUDbmlsBANpbnYJARFidXlTd29wRm9yQWlyZHJvcAMFBHBvb2wFD3Rva2VuVG9FeGNoYW5nZQURYW1vdW50VG9MZWZ0Rm9yVHgDCQAAAgUDaW52BQNpbnYEC3N3b3BCYWxhbmNlCQEOYWNjb3VudEJhbGFuY2UBBQZzd29wSWQDCQAAAgULc3dvcEJhbGFuY2UFC3N3b3BCYWxhbmNlBARhSW52CQD8BwQFEWdvdmVybmFuY2VBZGRyZXNzAgdhaXJEcm9wBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFBnN3b3BJZAULc3dvcEJhbGFuY2UFA25pbAMJAAACBQRhSW52BQRhSW52BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkABAckbWF0Y2gwBQJ0eAMJAAECBQckbWF0Y2gwAhdJbnZva2VTY3JpcHRUcmFuc2FjdGlvbgQDaW52BQckbWF0Y2gwBAppc1JpZ2h0RmVlAwkAAAIIBQNpbnYDZmVlAKD3NgkAAAIIBQNpbnYKZmVlQXNzZXRJZAUEdW5pdAcEDWlzUm91dGluZ0NhbGwDCQAAAggFA2ludgRkQXBwBQ5yb3V0aW5nQWRkcmVzcwkAAAIIBQNpbnYIZnVuY3Rpb24CDHJvdXRpbmdUcmFkZQcEEmlzRXhjaGFuZ2VDYWxsQ1BNTQMDCQEJaXNEZWZpbmVkAQkAnQgCBQZvcmFjbGUJAKwCAgUPa1ByZWZpeFBvb2xOYW1lCQClCAEJAKQIAQgFA2ludgRkQXBwCQAAAggFA2ludghmdW5jdGlvbgIMY2FsbEZ1bmN0aW9uBwkAAAIJAJEDAggFA2ludgRhcmdzAAACCGV4Y2hhbmdlBwQOaXNFeGNoYW5nZUNhbGwDCQEJaXNEZWZpbmVkAQkAnQgCBQZvcmFjbGUJAKwCAgUPa1ByZWZpeFBvb2xOYW1lCQClCAEJAKQIAQgFA2ludgRkQXBwCQAAAggFA2ludghmdW5jdGlvbgIIZXhjaGFuZ2UHBA1pc0FpcmRyb3BDYWxsCQAAAggFA2ludghmdW5jdGlvbgIOZXhjaGFuZ2VUb2tlbnMEE2lzVXBkYXRlV2VpZ2h0c0NhbGwDCQAAAggFA2ludgRkQXBwBRFnb3Zlcm5hbmNlQWRkcmVzcwkAAAIIBQNpbnYIZnVuY3Rpb24CDXVwZGF0ZVdlaWdodHMHBBZpc1Rha2VuSW50b0FjY291bnRDUE1NAwMJAQlpc0RlZmluZWQBCQCdCAIFBm9yYWNsZQkArAICBQ9rUHJlZml4UG9vbE5hbWUJAKUIAQkApAgBCAUDaW52BGRBcHAJAAACCAUDaW52CGZ1bmN0aW9uAgxjYWxsRnVuY3Rpb24HCQAAAgkAkQMCCAUDaW52BGFyZ3MAAAIZdGFrZUludG9BY2NvdW50RXh0cmFGdW5kcwcEEmlzVGFrZW5JbnRvQWNjb3VudAMJAQlpc0RlZmluZWQBCQCdCAIFBm9yYWNsZQkArAICBQ9rUHJlZml4UG9vbE5hbWUJAKUIAQkApAgBCAUDaW52BGRBcHAJAAACCAUDaW52CGZ1bmN0aW9uAhl0YWtlSW50b0FjY291bnRFeHRyYUZ1bmRzBwQMaXNXcml0ZVRvdGFsAwkAAAIIBQNpbnYEZEFwcAUOc3VydmV5c0FkZHJlc3MJAAACCAUDaW52CGZ1bmN0aW9uAgt3cml0ZVRvdGFscwcEEmFkbWluUHViS2V5MVNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFDGFkbWluUHViS2V5MQABAAAEEmFkbWluUHViS2V5MlNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFDGFkbWluUHViS2V5MgABAAAEEmFkbWluUHViS2V5M1NpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFDGFkbWluUHViS2V5MwABAAAEF2FkbWluUHViS2V5SW52b2tlU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAULYWRtaW5JbnZva2UAAQAABBBzaWduZWRCeU9uZUFkbWluCQBnAgkAZAIJAGQCCQBkAgUSYWRtaW5QdWJLZXkxU2lnbmVkBRJhZG1pblB1YktleTJTaWduZWQFEmFkbWluUHViS2V5M1NpZ25lZAUXYWRtaW5QdWJLZXlJbnZva2VTaWduZWQAAQMDAwMDAwUOaXNFeGNoYW5nZUNhbGwGBRJpc0V4Y2hhbmdlQ2FsbENQTU0GBQ1pc1JvdXRpbmdDYWxsCQAAAgkAkAMBCAUDaW52CHBheW1lbnRzAAEHBgMDAwMDBRNpc1VwZGF0ZVdlaWdodHNDYWxsBgUSaXNUYWtlbkludG9BY2NvdW50BgUWaXNUYWtlbkludG9BY2NvdW50Q1BNTQYFDGlzV3JpdGVUb3RhbAYFDWlzQWlyZHJvcENhbGwJAAACCQCQAwEIBQNpbnYIcGF5bWVudHMAAAcFEHNpZ25lZEJ5T25lQWRtaW4HBQppc1JpZ2h0RmVlBwQSYWRtaW5QdWJLZXkxU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUMYWRtaW5QdWJLZXkxAAEAAAQSYWRtaW5QdWJLZXkyU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAQUMYWRtaW5QdWJLZXkyAAEAAAQSYWRtaW5QdWJLZXkzU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAgUMYWRtaW5QdWJLZXkzAAEAAAkAZwIJAGQCCQBkAgUSYWRtaW5QdWJLZXkxU2lnbmVkBRJhZG1pblB1YktleTJTaWduZWQFEmFkbWluUHViS2V5M1NpZ25lZAACH8dgpA==", "height": 3913129, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 2ZN9D1h4NHKRqURwvjLGJp7w83BWfHxgwVRRMA2X7vhU Next: Dc7TXAa6rLPun2zcFtQMsBtBG9bXu2B8xUy9q54gwhzD Diff:
OldNewDifferences
139139 then throw("Nothing to exchange for airdrop")
140140 else {
141141 let poolAddr = addressFromStringValue(pool)
142- invoke(poolAddr, "callFunction", ["exchange", [1]], [AttachedPayment(tokenId, amountToExchange)])
142+ invoke(poolAddr, "callFunction", ["exchange", ["1"]], [AttachedPayment(tokenId, amountToExchange)])
143143 }
144144 }
145145 else throw("Strict value is not equal to itself.")
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let oracle = Address(base58'3PEbqViERCoKnmcSULh6n2aiMvUdSQdCsom')
55
66 let kAdminPubKey1 = "admin_pub_1"
77
88 let kAdminPubKey2 = "admin_pub_2"
99
1010 let kAdminPubKey3 = "admin_pub_3"
1111
1212 let kAdminInvokePubKey = "admin_invoke_pub"
1313
1414 let kGovAddress = "governance_address"
1515
1616 let kFarmAddress = "farming_address"
1717
1818 let kSurveysAddress = "surveys_address"
1919
2020 let kRoutingAddr = "routing_address"
2121
2222 let kSWOPid = "SWOP_id"
2323
2424 let kPrefixPoolName = "pool_"
2525
2626 func getBase58FromOracle (key) = match getString(oracle, key) {
2727 case string: String =>
2828 fromBase58String(string)
2929 case nothing =>
3030 throw((key + "is empty"))
3131 }
3232
3333
3434 let adminPubKey1 = getBase58FromOracle(kAdminPubKey1)
3535
3636 let adminPubKey2 = getBase58FromOracle(kAdminPubKey2)
3737
3838 let adminPubKey3 = getBase58FromOracle(kAdminPubKey3)
3939
4040 let adminInvoke = getBase58FromOracle(kAdminInvokePubKey)
4141
4242 let governanceAddress = Address(getBase58FromOracle(kGovAddress))
4343
4444 let farmingAddress = Address(getBase58FromOracle(kFarmAddress))
4545
4646 let surveysAddress = Address(getBase58FromOracle(kSurveysAddress))
4747
4848 let routingAddress = Address(getBase58FromOracle(kRoutingAddr))
4949
5050 let swopId = fromBase58String(getStringValue(farmingAddress, kSWOPid))
5151
5252 func isSelfCall (i) = if ((i.caller == this))
5353 then unit
5454 else throw("Only contract itself can call this function")
5555
5656
5757 func listToInt (a,item) = (a :+ parseIntValue(item))
5858
5959
6060 func assetIdFromStr (assetId) = if ((assetId == "WAVES"))
6161 then unit
6262 else fromBase58String(assetId)
6363
6464
6565 func accountBalance (assetId) = match assetId {
6666 case id: ByteVector =>
6767 assetBalance(this, id)
6868 case waves: Unit =>
6969 wavesBalance(this).available
7070 case _ =>
7171 throw("Match error")
7272 }
7373
7474
7575 func directSwopfiCPMM (rArgs) = {
7676 let dApp = addressFromStringValue(rArgs[1])
7777 let pmt = {
7878 let pmtP = split(rArgs[2], "|")
7979 [AttachedPayment(fromBase58String(pmtP[0]), parseIntValue(pmtP[1]))]
8080 }
8181 let minToRecive = rArgs[3]
8282 invoke(dApp, "callFunction", ["exchange", [minToRecive]], pmt)
8383 }
8484
8585
8686 func directRoutingSwopfi (rArgs) = {
8787 let dApp = addressFromStringValue(rArgs[1])
8888 let pmt = {
8989 let pmtP = split(rArgs[2], "|")
9090 [AttachedPayment(fromBase58String(pmtP[0]), parseIntValue(pmtP[1]))]
9191 }
9292 let args = {
9393 let eArgs = split(rArgs[3], "|")
9494 let exchangers = split(eArgs[0], ",")
9595 let exchangersType = split(eArgs[1], ",")
9696 let args1 = {
9797 let $l = split(eArgs[2], ",")
9898 let $s = size($l)
9999 let $acc0 = nil
100100 func $f0_1 ($a,$i) = if (($i >= $s))
101101 then $a
102102 else listToInt($a, $l[$i])
103103
104104 func $f0_2 ($a,$i) = if (($i >= $s))
105105 then $a
106106 else throw("List size exceeds 3")
107107
108108 $f0_2($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3)
109109 }
110110 let args2 = {
111111 let $l = split(eArgs[3], ",")
112112 let $s = size($l)
113113 let $acc0 = nil
114114 func $f1_1 ($a,$i) = if (($i >= $s))
115115 then $a
116116 else listToInt($a, $l[$i])
117117
118118 func $f1_2 ($a,$i) = if (($i >= $s))
119119 then $a
120120 else throw("List size exceeds 3")
121121
122122 $f1_2($f1_1($f1_1($f1_1($acc0, 0), 1), 2), 3)
123123 }
124124 let routingAssetsKeys = split(eArgs[4], ",")
125125 let minToRecive = parseIntValue(eArgs[5])
126126 [exchangers, exchangersType, args1, args2, routingAssetsKeys, minToRecive]
127127 }
128128 invoke(dApp, "routingTrade", args, pmt)
129129 }
130130
131131
132132 func buySwopForAirdrop (pool,tokenToExchange,amountToLeftForTx) = {
133133 let tokenId = assetIdFromStr(tokenToExchange)
134134 let tokenBalance = accountBalance(tokenId)
135135 if ((tokenBalance == tokenBalance))
136136 then {
137137 let amountToExchange = (tokenBalance - amountToLeftForTx)
138138 if ((0 >= amountToExchange))
139139 then throw("Nothing to exchange for airdrop")
140140 else {
141141 let poolAddr = addressFromStringValue(pool)
142- invoke(poolAddr, "callFunction", ["exchange", [1]], [AttachedPayment(tokenId, amountToExchange)])
142+ invoke(poolAddr, "callFunction", ["exchange", ["1"]], [AttachedPayment(tokenId, amountToExchange)])
143143 }
144144 }
145145 else throw("Strict value is not equal to itself.")
146146 }
147147
148148
149149 @Callable(i)
150150 func exchangeTokens (routes,airdrop,pool,tokenToExchange,amountToLeftForTx) = valueOrElse(isSelfCall(i), {
151151 func exchangeToken (r,route) = {
152152 let rArgs = split(route, "__")
153153 if ((rArgs[0] == "directSwopfiCPMM"))
154154 then {
155155 let inv = directSwopfiCPMM(rArgs)
156156 if ((inv == inv))
157157 then (r :+ inv)
158158 else throw("Strict value is not equal to itself.")
159159 }
160160 else if ((rArgs[0] == "routingSwopfi"))
161161 then {
162162 let inv = directRoutingSwopfi(rArgs)
163163 if ((inv == inv))
164164 then (r :+ inv)
165165 else throw("Strict value is not equal to itself.")
166166 }
167167 else throw("Unknown route type")
168168 }
169169
170170 let res = {
171171 let $l = routes
172172 let $s = size($l)
173173 let $acc0 = nil
174174 func $f0_1 ($a,$i) = if (($i >= $s))
175175 then $a
176176 else exchangeToken($a, $l[$i])
177177
178178 func $f0_2 ($a,$i) = if (($i >= $s))
179179 then $a
180180 else throw("List size exceeds 10")
181181
182182 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10)
183183 }
184184 if ((res == res))
185185 then if (!(airdrop))
186186 then nil
187187 else {
188188 let inv = buySwopForAirdrop(pool, tokenToExchange, amountToLeftForTx)
189189 if ((inv == inv))
190190 then {
191191 let swopBalance = accountBalance(swopId)
192192 if ((swopBalance == swopBalance))
193193 then {
194194 let aInv = invoke(governanceAddress, "airDrop", nil, [AttachedPayment(swopId, swopBalance)])
195195 if ((aInv == aInv))
196196 then nil
197197 else throw("Strict value is not equal to itself.")
198198 }
199199 else throw("Strict value is not equal to itself.")
200200 }
201201 else throw("Strict value is not equal to itself.")
202202 }
203203 else throw("Strict value is not equal to itself.")
204204 })
205205
206206
207207 @Verifier(tx)
208208 func verify () = match tx {
209209 case inv: InvokeScriptTransaction =>
210210 let isRightFee = if ((inv.fee == 900000))
211211 then (inv.feeAssetId == unit)
212212 else false
213213 let isRoutingCall = if ((inv.dApp == routingAddress))
214214 then (inv.function == "routingTrade")
215215 else false
216216 let isExchangeCallCPMM = if (if (isDefined(getString(oracle, (kPrefixPoolName + toString(addressFromRecipient(inv.dApp))))))
217217 then (inv.function == "callFunction")
218218 else false)
219219 then (inv.args[0] == "exchange")
220220 else false
221221 let isExchangeCall = if (isDefined(getString(oracle, (kPrefixPoolName + toString(addressFromRecipient(inv.dApp))))))
222222 then (inv.function == "exchange")
223223 else false
224224 let isAirdropCall = (inv.function == "exchangeTokens")
225225 let isUpdateWeightsCall = if ((inv.dApp == governanceAddress))
226226 then (inv.function == "updateWeights")
227227 else false
228228 let isTakenIntoAccountCPMM = if (if (isDefined(getString(oracle, (kPrefixPoolName + toString(addressFromRecipient(inv.dApp))))))
229229 then (inv.function == "callFunction")
230230 else false)
231231 then (inv.args[0] == "takeIntoAccountExtraFunds")
232232 else false
233233 let isTakenIntoAccount = if (isDefined(getString(oracle, (kPrefixPoolName + toString(addressFromRecipient(inv.dApp))))))
234234 then (inv.function == "takeIntoAccountExtraFunds")
235235 else false
236236 let isWriteTotal = if ((inv.dApp == surveysAddress))
237237 then (inv.function == "writeTotals")
238238 else false
239239 let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1))
240240 then 1
241241 else 0
242242 let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey2))
243243 then 1
244244 else 0
245245 let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey3))
246246 then 1
247247 else 0
248248 let adminPubKeyInvokeSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminInvoke))
249249 then 1
250250 else 0
251251 let signedByOneAdmin = ((((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) + adminPubKeyInvokeSigned) >= 1)
252252 if (if (if (if (if (if (isExchangeCall)
253253 then true
254254 else isExchangeCallCPMM)
255255 then true
256256 else isRoutingCall)
257257 then (size(inv.payments) == 1)
258258 else false)
259259 then true
260260 else if (if (if (if (if (isUpdateWeightsCall)
261261 then true
262262 else isTakenIntoAccount)
263263 then true
264264 else isTakenIntoAccountCPMM)
265265 then true
266266 else isWriteTotal)
267267 then true
268268 else isAirdropCall)
269269 then (size(inv.payments) == 0)
270270 else false)
271271 then signedByOneAdmin
272272 else false)
273273 then isRightFee
274274 else false
275275 case _ =>
276276 let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1))
277277 then 1
278278 else 0
279279 let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], adminPubKey2))
280280 then 1
281281 else 0
282282 let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], adminPubKey3))
283283 then 1
284284 else 0
285285 (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 2)
286286 }
287287

github/deemru/w8io/786bc32 
36.34 ms