2024.03.22 11:45 [4094908] smart account 3P6J84oH51DzY6xk2mT5TheXRbrCwBMxonp > SELF 0.00000000 Waves

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

github/deemru/w8io/786bc32 
36.82 ms