tx · 5s5ZXQoTNDkhhbGtu6rcj66Pmw8M4agcCs3uMC1CBQtJ 3N799v7gQfWUJUZftyn8N5KCT6kEk9mptyv: -0.01300000 Waves 2023.03.16 16:36 [2492646] smart account 3N799v7gQfWUJUZftyn8N5KCT6kEk9mptyv > SELF 0.00000000 Waves
{ "type": 13, "id": "5s5ZXQoTNDkhhbGtu6rcj66Pmw8M4agcCs3uMC1CBQtJ", "fee": 1300000, "feeAssetId": null, "timestamp": 1678973869155, "version": 2, "chainId": 84, "sender": "3N799v7gQfWUJUZftyn8N5KCT6kEk9mptyv", "senderPublicKey": "8nc1Yja4nyKr26X3vCYrtM9NpCzMHDz5ne8Lfw6QHymE", "proofs": [ "4b5i9q9MJgXViZ7mUwnP7VL8RUGJAiJvCgu3kfJe839QfSBV9iEpoKYg1GN7MuCY8h6qz5rNiSs9pcJzeWfVZM9n" ], "script": "base64:BgIVCAISAwoBCBIAEgMKAQgSAwoBCBIAJAADU0VQAgJfXwAGc2NhbGU4AIDC1y8AEXBvb2xTdGF0c1ByaWNlS2V5AAQADmlkeFBvb2xBZGRyZXNzAAEADWlkeFBvb2xTdGF0dXMAAgAQaWR4UG9vbExQQXNzZXRJZAADAA1pZHhBbXRBc3NldElkAAQAD2lkeFByaWNlQXNzZXRJZAAFAA5pZHhBbXRBc3NldERjbQAGABBpZHhQcmljZUFzc2V0RGNtAAcADmlkeElBbXRBc3NldElkAAgAEGlkeElQcmljZUFzc2V0SWQACQANaWR4TFBBc3NldERjbQAKABNpZHhNYXRjaGVyUHVibGljS2V5AAsBDmtleVJlZ2lzdGVyUHV0Agtwb29sQWRkcmVzcwR0eElkCQCsAgIJAKwCAgkArAICAgslcyVzJXNfX1BfXwULcG9vbEFkZHJlc3MCAl9fBQR0eElkARFrZXlSZWdpc3RlckludmVzdAILcG9vbEFkZHJlc3MEdHhJZAkArAICCQCsAgIJAKwCAgIQJXMlcyVzX19pbnZlc3RfXwULcG9vbEFkZHJlc3MCAl9fBQR0eElkARZrZXlQb29sVG90YWxBbXRCeUFzc2V0Agtwb29sQWRkcmVzcwdhc3NldElkCQCsAgIJAKwCAgkArAICAg8lcyVzJXNfX3RvdGFsX18FC3Bvb2xBZGRyZXNzAgJfXwUHYXNzZXRJZAESa2V5RmFjdG9yeUNvbnRyYWN0AAITJXNfX2ZhY3RvcnlDb250cmFjdAEga2V5U2xpcHBhZ2VBbXRQZXJBc3NldEN1bXVsYXRpdmUCC3Bvb2xBZGRyZXNzB2Fzc2V0SWQJAKwCAgkArAICCQCsAgIJAKwCAgIIJXMlcyVzX18FC3Bvb2xBZGRyZXNzAgJfXwUHYXNzZXRJZAIUX19zbGlwcGFnZUN1bXVsYXRpdmUBEGtleUZhY3RvcnlDb25maWcAAhElc19fZmFjdG9yeUNvbmZpZwEpa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMBE3Bvb2xDb250cmFjdEFkZHJlc3MJAKwCAgkArAICAgglcyVzJXNfXwUTcG9vbENvbnRyYWN0QWRkcmVzcwIjX19tYXBwaW5nc19fcG9vbENvbnRyYWN0MlBvb2xBc3NldHMBH2tleU1hcHBpbmdzSW50ZXJuYWwyYmFzZUFzc2V0SWQBEWludGVybmFsQmFzZUFzc2V0CQCsAgICKCVzJXMlZF9fbWFwcGluZ3NfX2ludGVybmFsMmJhc2VBc3NldElkX18JAKQDAQURaW50ZXJuYWxCYXNlQXNzZXQBDWtleVBvb2xDb25maWcCCWlBbXRBc3NldAtpUHJpY2VBc3NldAkArAICCQCsAgIJAKwCAgkArAICAgglZCVkJXNfXwUJaUFtdEFzc2V0AgJfXwULaVByaWNlQXNzZXQCCF9fY29uZmlnARNrZXlBbGxQb29sc1NodXRkb3duAAIMJXNfX3NodXRkb3duAQ1rZXlQb29sV2VpZ2h0AQ9jb250cmFjdEFkZHJlc3MJAKwCAgISJXMlc19fcG9vbFdlaWdodF9fBQ9jb250cmFjdEFkZHJlc3MBE2tleU1hbmFnZXJQdWJsaWNLZXkAAhQlc19fbWFuYWdlclB1YmxpY0tleQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAhslc19fcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAD2ZhY3RvcnlDb250cmFjdAkBEUBleHRyTmF0aXZlKDEwNjIpAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMJARJrZXlGYWN0b3J5Q29udHJhY3QAAhVObyBGYWN0b3J5IEFjYyBmb3VuZC4BDmNvbnZlcnRBc3NldElkAQdhc3NldElkAwkBASEBCQEJaXNEZWZpbmVkAQUHYXNzZXRJZAIFV0FWRVMFB2Fzc2V0SWQBEWRhdGFQdXRBY3Rpb25JbmZvBAlpbkFzc2V0SWQKaW5Bc3NldEFtdAh0eEhlaWdodAt0eFRpbWVzdGFtcAkAuQkCCQDMCAICCCVzJWQlZCVkCQDMCAIFCWluQXNzZXRJZAkAzAgCCQCkAwEFCmluQXNzZXRBbXQJAMwIAgkApAMBBQh0eEhlaWdodAkAzAgCCQCkAwEFC3R4VGltZXN0YW1wBQNuaWwFA1NFUAEUZGF0YUludmVzdEFjdGlvbkluZm8EEW91dEFtb3VudEFzc2V0QW10EG91dFByaWNlQXNzZXRBbXQIdHhIZWlnaHQLdHhUaW1lc3RhbXAJALkJAgkAzAgCAgglZCVkJWQlZAkAzAgCCQCkAwEFEW91dEFtb3VudEFzc2V0QW10CQDMCAIJAKQDAQUQb3V0UHJpY2VBc3NldEFtdAkAzAgCCQCkAwEFCHR4SGVpZ2h0CQDMCAIJAKQDAQULdHhUaW1lc3RhbXAFA25pbAUDU0VQAQhhc1N0cmluZwEDdmFsBAckbWF0Y2gwBQN2YWwDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAZ2YWxTdHIFByRtYXRjaDAFBnZhbFN0cgkAAgECGGZhaWwgdG8gY2FzdCBpbnRvIFN0cmluZwEHdG9TY2FsZQMDYW10CHJlc1NjYWxlCGN1clNjYWxlCQBrAwUDYW10BQhyZXNTY2FsZQUIY3VyU2NhbGUBFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQABAckbWF0Y2gwCQCiCAEJARNrZXlNYW5hZ2VyUHVibGljS2V5AAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJANkEAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BQR1bml0CQACAQILTWF0Y2ggZXJyb3IBHXBlbmRpbmdNYW5hZ2VyUHVibGljS2V5T3JVbml0AAQHJG1hdGNoMAkAoggBCQEaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkAAwkAAQIFByRtYXRjaDACBlN0cmluZwQBcwUHJG1hdGNoMAkA2QQBBQFzAwkAAQIFByRtYXRjaDACBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgELbXVzdE1hbmFnZXIBAWkEAnBkCQACAQIRUGVybWlzc2lvbiBkZW5pZWQEByRtYXRjaDAJARZtYW5hZ2VyUHVibGljS2V5T3JVbml0AAMJAAECBQckbWF0Y2gwAgpCeXRlVmVjdG9yBAJwawUHJG1hdGNoMAMJAAACCAUBaQ9jYWxsZXJQdWJsaWNLZXkFAnBrBgUCcGQDCQABAgUHJG1hdGNoMAIEVW5pdAMJAAACCAUBaQZjYWxsZXIFBHRoaXMGBQJwZAkAAgECC01hdGNoIGVycm9yBQFpAQtjb25zdHJ1Y3RvcgEPZmFjdG9yeUNvbnRyYWN0BAtjaGVja0NhbGxlcgkBC211c3RNYW5hZ2VyAQUBaQMJAAACBQtjaGVja0NhbGxlcgULY2hlY2tDYWxsZXIJAMwIAgkBC1N0cmluZ0VudHJ5AgkBEmtleUZhY3RvcnlDb250cmFjdAAFD2ZhY3RvcnlDb250cmFjdAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBA3B1dAAEBHBvb2wJAKUIAQgFAWkGY2FsbGVyBAtwbXRBbXRBc3NldAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABApwbXRBc3NldElkAwkBASEBCQEJaXNEZWZpbmVkAQgFC3BtdEFtdEFzc2V0B2Fzc2V0SWQCBVdBVkVTCQDYBAEJAQV2YWx1ZQEIBQtwbXRBbXRBc3NldAdhc3NldElkBAtwbXRBc3NldEFtdAgFC3BtdEFtdEFzc2V0BmFtb3VudAQKcG9vbEFzc2V0cwkAtQkCCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUPZmFjdG9yeUNvbnRyYWN0CQEpa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMBBQRwb29sAg5JbnZhbGlkIGNhbGxlcgUDU0VQBA1hbW91bnRBc3NldElkCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUKcG9vbEFzc2V0cwABBAxwcmljZUFzc2V0SWQJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQpwb29sQXNzZXRzAAIEC2Ftb3VudEFzc2V0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUPZmFjdG9yeUNvbnRyYWN0CQEfa2V5TWFwcGluZ3NJbnRlcm5hbDJiYXNlQXNzZXRJZAEFDWFtb3VudEFzc2V0SWQCEUNhbm5vdCBmaW5kIGFzc2V0BApwcmljZUFzc2V0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUPZmFjdG9yeUNvbnRyYWN0CQEfa2V5TWFwcGluZ3NJbnRlcm5hbDJiYXNlQXNzZXRJZAEFDHByaWNlQXNzZXRJZAIRQ2Fubm90IGZpbmQgYXNzZXQECHRvdGFsQW10CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMJARZrZXlQb29sVG90YWxBbXRCeUFzc2V0AgUEcG9vbAUKcG10QXNzZXRJZAAABBVjdW11bGF0aXZlU2xpcHBhZ2VBbXQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwkBIGtleVNsaXBwYWdlQW10UGVyQXNzZXRDdW11bGF0aXZlAgUEcG9vbAUKcG10QXNzZXRJZAAACQDMCAIJAQtTdHJpbmdFbnRyeQIJAQ5rZXlSZWdpc3RlclB1dAIFBHBvb2wJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAkBEWRhdGFQdXRBY3Rpb25JbmZvBAUKcG10QXNzZXRJZAULcG10QXNzZXRBbXQFBmhlaWdodAgFCWxhc3RCbG9jawl0aW1lc3RhbXAJAMwIAgkBDEludGVnZXJFbnRyeQIJARZrZXlQb29sVG90YWxBbXRCeUFzc2V0AgUEcG9vbAUKcG10QXNzZXRJZAkAZAIFCHRvdGFsQW10BQtwbXRBc3NldEFtdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBIGtleVNsaXBwYWdlQW10UGVyQXNzZXRDdW11bGF0aXZlAgUEcG9vbAUKcG10QXNzZXRJZAkAZAIFFWN1bXVsYXRpdmVTbGlwcGFnZUFtdAULcG10QXNzZXRBbXQFA25pbAFpAQZpbnZlc3QBDnBvb2xBZGRyZXNzU3RyBAtwb29sQWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEFDnBvb2xBZGRyZXNzU3RyAhRpbnZhbGlkIHBvb2wgYWRkcmVzcwQKcG9vbEFzc2V0cwkAtQkCCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUPZmFjdG9yeUNvbnRyYWN0CQEpa2V5TWFwcGluZ1Bvb2xDb250cmFjdEFkZHJlc3NUb1Bvb2xBc3NldHMBBQ5wb29sQWRkcmVzc1N0cgIUSW52YWxpZCBwb29sIHBhc3NlZC4FA1NFUAQEYW1JZAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFD2ZhY3RvcnlDb250cmFjdAkBH2tleU1hcHBpbmdzSW50ZXJuYWwyYmFzZUFzc2V0SWQBCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUKcG9vbEFzc2V0cwABAhZObyBhc3NldCBtYXBwaW5nIGZvdW5kBARwcklkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUPZmFjdG9yeUNvbnRyYWN0CQEfa2V5TWFwcGluZ3NJbnRlcm5hbDJiYXNlQXNzZXRJZAEJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQpwb29sQXNzZXRzAAICFk5vIGFzc2V0IG1hcHBpbmcgZm91bmQECWFtQmFsYW5jZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEWa2V5UG9vbFRvdGFsQW10QnlBc3NldAIFDnBvb2xBZGRyZXNzU3RyBQRhbUlkAAAECXByQmFsYW5jZQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEWa2V5UG9vbFRvdGFsQW10QnlBc3NldAIFDnBvb2xBZGRyZXNzU3RyBQRwcklkAAAEDWVzdEJ5UHJSZXN1bHQJAPwHBAULcG9vbEFkZHJlc3MCH2V2YWx1YXRlUHV0QnlQcmljZUFzc2V0UkVBRE9OTFkJAMwIAgUJcHJCYWxhbmNlBQNuaWwFA25pbAQNZXN0QnlBbVJlc3VsdAkA/AcEBQtwb29sQWRkcmVzcwIgZXZhbHVhdGVQdXRCeUFtb3VudEFzc2V0UkVBRE9OTFkJAMwIAgUJYW1CYWxhbmNlBQNuaWwFA25pbAQOSWR4RXN0QW1BbW91bnQABwQOSWR4RXN0UHJBbW91bnQACAQIZXN0QW1BbXQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkBDXBhcnNlSW50VmFsdWUBCQCRAwIJALUJAgkBCGFzU3RyaW5nAQUNZXN0QnlQclJlc3VsdAUDU0VQBQ5JZHhFc3RBbUFtb3VudAImZmFpbCB0byBwYXJzZSBlc3RpbWF0ZWQgYW1Bc3NldCBhbW91bnQECGVzdFByQW10CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAQ1wYXJzZUludFZhbHVlAQkAkQMCCQC1CQIJAQhhc1N0cmluZwEFDWVzdEJ5QW1SZXN1bHQFA1NFUAUOSWR4RXN0UHJBbW91bnQCJmZhaWwgdG8gcGFyc2UgZXN0aW1hdGVkIHByQXNzZXQgYW1vdW50BAskdDA2NjQzNjc0NAMJAGcCBQlhbUJhbGFuY2UFCGVzdEFtQW10CQCUCgIFCGVzdEFtQW10BQlwckJhbGFuY2UJAJQKAgUJYW1CYWxhbmNlBQhlc3RQckFtdAQFYW1BbXQIBQskdDA2NjQzNjc0NAJfMQQFcHJBbXQIBQskdDA2NjQzNjc0NAJfMgQJYW1Bc3NldElkAwkAAAIFBGFtSWQCBVdBVkVTBQR1bml0CQDZBAEFBGFtSWQECXByQXNzZXRJZAMJAAACBQRwcklkAgVXQVZFUwUEdW5pdAkA2QQBBQRwcklkBAVscFB1dAkA/AcEBQtwb29sQWRkcmVzcwIKcHV0Rm9yRnJlZQkAzAgCAOgHBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCWFtQXNzZXRJZAUFYW1BbXQJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCXByQXNzZXRJZAUFcHJBbXQFA25pbAMJAAACBQVscFB1dAUFbHBQdXQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBEWtleVJlZ2lzdGVySW52ZXN0AgUOcG9vbEFkZHJlc3NTdHIJANgEAQgFAWkNdHJhbnNhY3Rpb25JZAkBFGRhdGFJbnZlc3RBY3Rpb25JbmZvBAUFYW1BbXQFBXByQW10BQZoZWlnaHQIBQlsYXN0QmxvY2sJdGltZXN0YW1wCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEWa2V5UG9vbFRvdGFsQW10QnlBc3NldAIFDnBvb2xBZGRyZXNzU3RyBQRhbUlkCQBlAgUJYW1CYWxhbmNlBQVhbUFtdAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBFmtleVBvb2xUb3RhbEFtdEJ5QXNzZXQCBQ5wb29sQWRkcmVzc1N0cgUEcHJJZAkAZQIFCXByQmFsYW5jZQUFcHJBbXQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQpzZXRNYW5hZ2VyARdwZW5kaW5nTWFuYWdlclB1YmxpY0tleQQLY2hlY2tDYWxsZXIJAQttdXN0TWFuYWdlcgEFAWkDCQAAAgULY2hlY2tDYWxsZXIFC2NoZWNrQ2FsbGVyBBVjaGVja01hbmFnZXJQdWJsaWNLZXkJANkEAQUXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkDCQAAAgUVY2hlY2tNYW5hZ2VyUHVibGljS2V5BRVjaGVja01hbmFnZXJQdWJsaWNLZXkJAMwIAgkBC1N0cmluZ0VudHJ5AgkBGmtleVBlbmRpbmdNYW5hZ2VyUHVibGljS2V5AAUXcGVuZGluZ01hbmFnZXJQdWJsaWNLZXkFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQ5jb25maXJtTWFuYWdlcgAEAnBtCQEdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQABAVoYXNQTQMJAQlpc0RlZmluZWQBBQJwbQYJAAIBAhJObyBwZW5kaW5nIG1hbmFnZXIDCQAAAgUFaGFzUE0FBWhhc1BNBAdjaGVja1BNAwkAAAIIBQFpD2NhbGxlclB1YmxpY0tleQkBBXZhbHVlAQUCcG0GCQACAQIbWW91IGFyZSBub3QgcGVuZGluZyBtYW5hZ2VyAwkAAAIFB2NoZWNrUE0FB2NoZWNrUE0JAMwIAgkBC1N0cmluZ0VudHJ5AgkBE2tleU1hbmFnZXJQdWJsaWNLZXkACQDYBAEJAQV2YWx1ZQEFAnBtCQDMCAIJAQtEZWxldGVFbnRyeQEJARprZXlQZW5kaW5nTWFuYWdlclB1YmxpY0tleQAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAED3RhcmdldFB1YmxpY0tleQQHJG1hdGNoMAkBFm1hbmFnZXJQdWJsaWNLZXlPclVuaXQAAwkAAQIFByRtYXRjaDACCkJ5dGVWZWN0b3IEAnBrBQckbWF0Y2gwBQJwawMJAAECBQckbWF0Y2gwAgRVbml0CAUCdHgPc2VuZGVyUHVibGljS2V5CQACAQILTWF0Y2ggZXJyb3IJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFD3RhcmdldFB1YmxpY0tleYjoQ00=", "height": 2492646, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: 9aUmmBXs2nRT5sMFxuD9rbFJjMmnhrnWUHt8gnQbGKtc Full:
Old | New | Differences | |
---|---|---|---|
1 | - | # no script | |
1 | + | {-# STDLIB_VERSION 6 #-} | |
2 | + | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | + | {-# CONTENT_TYPE DAPP #-} | |
4 | + | let a = "__" | |
5 | + | ||
6 | + | let b = 100000000 | |
7 | + | ||
8 | + | let c = 4 | |
9 | + | ||
10 | + | let d = 1 | |
11 | + | ||
12 | + | let e = 2 | |
13 | + | ||
14 | + | let f = 3 | |
15 | + | ||
16 | + | let g = 4 | |
17 | + | ||
18 | + | let h = 5 | |
19 | + | ||
20 | + | let i = 6 | |
21 | + | ||
22 | + | let j = 7 | |
23 | + | ||
24 | + | let k = 8 | |
25 | + | ||
26 | + | let l = 9 | |
27 | + | ||
28 | + | let m = 10 | |
29 | + | ||
30 | + | let n = 11 | |
31 | + | ||
32 | + | func o (p,q) = ((("%s%s%s__P__" + p) + "__") + q) | |
33 | + | ||
34 | + | ||
35 | + | func r (p,q) = ((("%s%s%s__invest__" + p) + "__") + q) | |
36 | + | ||
37 | + | ||
38 | + | func s (p,t) = ((("%s%s%s__total__" + p) + "__") + t) | |
39 | + | ||
40 | + | ||
41 | + | func u () = "%s__factoryContract" | |
42 | + | ||
43 | + | ||
44 | + | func v (p,t) = (((("%s%s%s__" + p) + "__") + t) + "__slippageCumulative") | |
45 | + | ||
46 | + | ||
47 | + | func w () = "%s__factoryConfig" | |
48 | + | ||
49 | + | ||
50 | + | func x (y) = (("%s%s%s__" + y) + "__mappings__poolContract2PoolAssets") | |
51 | + | ||
52 | + | ||
53 | + | func z (A) = ("%s%s%d__mappings__internal2baseAssetId__" + toString(A)) | |
54 | + | ||
55 | + | ||
56 | + | func B (C,D) = (((("%d%d%s__" + C) + "__") + D) + "__config") | |
57 | + | ||
58 | + | ||
59 | + | func E () = "%s__shutdown" | |
60 | + | ||
61 | + | ||
62 | + | func F (G) = ("%s%s__poolWeight__" + G) | |
63 | + | ||
64 | + | ||
65 | + | func H () = "%s__managerPublicKey" | |
66 | + | ||
67 | + | ||
68 | + | func I () = "%s__pendingManagerPublicKey" | |
69 | + | ||
70 | + | ||
71 | + | let J = addressFromStringValue(valueOrErrorMessage(getString(this, u()), "No Factory Acc found.")) | |
72 | + | ||
73 | + | func K (t) = if (!(isDefined(t))) | |
74 | + | then "WAVES" | |
75 | + | else t | |
76 | + | ||
77 | + | ||
78 | + | func L (M,N,O,P) = makeString(["%s%d%d%d", M, toString(N), toString(O), toString(P)], a) | |
79 | + | ||
80 | + | ||
81 | + | func Q (R,S,O,P) = makeString(["%d%d%d%d", toString(R), toString(S), toString(O), toString(P)], a) | |
82 | + | ||
83 | + | ||
84 | + | func T (U) = { | |
85 | + | let V = U | |
86 | + | if ($isInstanceOf(V, "String")) | |
87 | + | then { | |
88 | + | let W = V | |
89 | + | W | |
90 | + | } | |
91 | + | else throw("fail to cast into String") | |
92 | + | } | |
93 | + | ||
94 | + | ||
95 | + | func X (Y,Z,aa) = fraction(Y, Z, aa) | |
96 | + | ||
97 | + | ||
98 | + | func ab () = { | |
99 | + | let V = getString(H()) | |
100 | + | if ($isInstanceOf(V, "String")) | |
101 | + | then { | |
102 | + | let ac = V | |
103 | + | fromBase58String(ac) | |
104 | + | } | |
105 | + | else if ($isInstanceOf(V, "Unit")) | |
106 | + | then unit | |
107 | + | else throw("Match error") | |
108 | + | } | |
109 | + | ||
110 | + | ||
111 | + | func ad () = { | |
112 | + | let V = getString(I()) | |
113 | + | if ($isInstanceOf(V, "String")) | |
114 | + | then { | |
115 | + | let ac = V | |
116 | + | fromBase58String(ac) | |
117 | + | } | |
118 | + | else if ($isInstanceOf(V, "Unit")) | |
119 | + | then unit | |
120 | + | else throw("Match error") | |
121 | + | } | |
122 | + | ||
123 | + | ||
124 | + | func ae (af) = { | |
125 | + | let ag = throw("Permission denied") | |
126 | + | let V = ab() | |
127 | + | if ($isInstanceOf(V, "ByteVector")) | |
128 | + | then { | |
129 | + | let ah = V | |
130 | + | if ((af.callerPublicKey == ah)) | |
131 | + | then true | |
132 | + | else ag | |
133 | + | } | |
134 | + | else if ($isInstanceOf(V, "Unit")) | |
135 | + | then if ((af.caller == this)) | |
136 | + | then true | |
137 | + | else ag | |
138 | + | else throw("Match error") | |
139 | + | } | |
140 | + | ||
141 | + | ||
142 | + | @Callable(af) | |
143 | + | func constructor (J) = { | |
144 | + | let ai = ae(af) | |
145 | + | if ((ai == ai)) | |
146 | + | then [StringEntry(u(), J)] | |
147 | + | else throw("Strict value is not equal to itself.") | |
148 | + | } | |
149 | + | ||
150 | + | ||
151 | + | ||
152 | + | @Callable(af) | |
153 | + | func put () = { | |
154 | + | let aj = toString(af.caller) | |
155 | + | let ak = value(af.payments[0]) | |
156 | + | let al = if (!(isDefined(ak.assetId))) | |
157 | + | then "WAVES" | |
158 | + | else toBase58String(value(ak.assetId)) | |
159 | + | let am = ak.amount | |
160 | + | let an = split(valueOrErrorMessage(getString(J, x(aj)), "Invalid caller"), a) | |
161 | + | let ao = parseIntValue(an[1]) | |
162 | + | let ap = parseIntValue(an[2]) | |
163 | + | let aq = valueOrErrorMessage(getString(J, z(ao)), "Cannot find asset") | |
164 | + | let ar = valueOrErrorMessage(getString(J, z(ap)), "Cannot find asset") | |
165 | + | let as = valueOrElse(getInteger(this, s(aj, al)), 0) | |
166 | + | let at = valueOrElse(getInteger(this, v(aj, al)), 0) | |
167 | + | [StringEntry(o(aj, toBase58String(af.transactionId)), L(al, am, height, lastBlock.timestamp)), IntegerEntry(s(aj, al), (as + am)), IntegerEntry(v(aj, al), (at + am))] | |
168 | + | } | |
169 | + | ||
170 | + | ||
171 | + | ||
172 | + | @Callable(af) | |
173 | + | func invest (au) = { | |
174 | + | let p = valueOrErrorMessage(addressFromString(au), "invalid pool address") | |
175 | + | let an = split(valueOrErrorMessage(getString(J, x(au)), "Invalid pool passed."), a) | |
176 | + | let av = valueOrErrorMessage(getString(J, z(parseIntValue(an[1]))), "No asset mapping found") | |
177 | + | let aw = valueOrErrorMessage(getString(J, z(parseIntValue(an[2]))), "No asset mapping found") | |
178 | + | let ax = valueOrElse(getInteger(this, s(au, av)), 0) | |
179 | + | let ay = valueOrElse(getInteger(this, s(au, aw)), 0) | |
180 | + | let az = invoke(p, "evaluatePutByPriceAssetREADONLY", [ay], nil) | |
181 | + | let aA = invoke(p, "evaluatePutByAmountAssetREADONLY", [ax], nil) | |
182 | + | let aB = 7 | |
183 | + | let aC = 8 | |
184 | + | let aD = valueOrErrorMessage(parseIntValue(split(T(az), a)[aB]), "fail to parse estimated amAsset amount") | |
185 | + | let aE = valueOrErrorMessage(parseIntValue(split(T(aA), a)[aC]), "fail to parse estimated prAsset amount") | |
186 | + | let aF = if ((ax >= aD)) | |
187 | + | then $Tuple2(aD, ay) | |
188 | + | else $Tuple2(ax, aE) | |
189 | + | let aG = aF._1 | |
190 | + | let aH = aF._2 | |
191 | + | let aI = if ((av == "WAVES")) | |
192 | + | then unit | |
193 | + | else fromBase58String(av) | |
194 | + | let aJ = if ((aw == "WAVES")) | |
195 | + | then unit | |
196 | + | else fromBase58String(aw) | |
197 | + | let aK = invoke(p, "putForFree", [1000], [AttachedPayment(aI, aG), AttachedPayment(aJ, aH)]) | |
198 | + | if ((aK == aK)) | |
199 | + | then [StringEntry(r(au, toBase58String(af.transactionId)), Q(aG, aH, height, lastBlock.timestamp)), IntegerEntry(s(au, av), (ax - aG)), IntegerEntry(s(au, aw), (ay - aH))] | |
200 | + | else throw("Strict value is not equal to itself.") | |
201 | + | } | |
202 | + | ||
203 | + | ||
204 | + | ||
205 | + | @Callable(af) | |
206 | + | func setManager (aL) = { | |
207 | + | let ai = ae(af) | |
208 | + | if ((ai == ai)) | |
209 | + | then { | |
210 | + | let aM = fromBase58String(aL) | |
211 | + | if ((aM == aM)) | |
212 | + | then [StringEntry(I(), aL)] | |
213 | + | else throw("Strict value is not equal to itself.") | |
214 | + | } | |
215 | + | else throw("Strict value is not equal to itself.") | |
216 | + | } | |
217 | + | ||
218 | + | ||
219 | + | ||
220 | + | @Callable(af) | |
221 | + | func confirmManager () = { | |
222 | + | let aN = ad() | |
223 | + | let aO = if (isDefined(aN)) | |
224 | + | then true | |
225 | + | else throw("No pending manager") | |
226 | + | if ((aO == aO)) | |
227 | + | then { | |
228 | + | let aP = if ((af.callerPublicKey == value(aN))) | |
229 | + | then true | |
230 | + | else throw("You are not pending manager") | |
231 | + | if ((aP == aP)) | |
232 | + | then [StringEntry(H(), toBase58String(value(aN))), DeleteEntry(I())] | |
233 | + | else throw("Strict value is not equal to itself.") | |
234 | + | } | |
235 | + | else throw("Strict value is not equal to itself.") | |
236 | + | } | |
237 | + | ||
238 | + | ||
239 | + | @Verifier(aQ) | |
240 | + | func aR () = { | |
241 | + | let aS = { | |
242 | + | let V = ab() | |
243 | + | if ($isInstanceOf(V, "ByteVector")) | |
244 | + | then { | |
245 | + | let ah = V | |
246 | + | ah | |
247 | + | } | |
248 | + | else if ($isInstanceOf(V, "Unit")) | |
249 | + | then aQ.senderPublicKey | |
250 | + | else throw("Match error") | |
251 | + | } | |
252 | + | sigVerify(aQ.bodyBytes, aQ.proofs[0], aS) | |
253 | + | } | |
254 | + |
github/deemru/w8io/026f985 22.91 ms ◑