tx · 9BFYqEW5dHfR9dGVg5x3NuvPdncZFBW51HBEYoxKmWDu 3P3NVrhiyHBc4oUWNhtZRnJA5uLX9n39TK9: -0.00700000 Waves 2022.08.26 15:24 [3266910] smart account 3P3NVrhiyHBc4oUWNhtZRnJA5uLX9n39TK9 > SELF 0.00000000 Waves
{ "type": 13, "id": "9BFYqEW5dHfR9dGVg5x3NuvPdncZFBW51HBEYoxKmWDu", "fee": 700000, "feeAssetId": null, "timestamp": 1661516720603, "version": 1, "sender": "3P3NVrhiyHBc4oUWNhtZRnJA5uLX9n39TK9", "senderPublicKey": "GeY4VJBhADH72vNVpDy6WUGW2rM2e2TjfnK8d4Kxzz59", "proofs": [ "5NMpixbXPmUGs89xqMGvridEj4fGTs48jUyFmXSynoxGd7PyGiqAiXdGDpwTpKp4wDxifscL7Q8q9Ujk87gME94D" ], "script": "base64:BgIiCAISAwoBCBIDCgEIEgMKAQgSAwoBCBIDCgEIEgUKAwgBBBkBEHdyaXRlQ29uc3RTdHJpbmcCA2tleQV2YWx1ZQMJAQEhAQkBCWlzRGVmaW5lZAEJAJ0IAgUEdGhpcwUDa2V5CQELU3RyaW5nRW50cnkCBQNrZXkFBXZhbHVlCQACAQkArAICAhVhbHJlYWR5IGluaXRpYWxpemVkOiAFA2tleQEFYXNJbnQBBXZhbHVlBAckbWF0Y2gwBQV2YWx1ZQMJAAECBQckbWF0Y2gwAgNJbnQEA2ludAUHJG1hdGNoMAUDaW50CQACAQIEbTM6MQEGYXNJbnQyAQV2YWx1ZQQHJG1hdGNoMAUFdmFsdWUDCQABAgUHJG1hdGNoMAIKKEludCwgSW50KQQBeAUHJG1hdGNoMAUBeAQBdAUHJG1hdGNoMAkAAgECGndyb25nIHR5cGUsIGV4cGVjdGVkOiBJbnQyAAtjb25maWdTdG9yZQIGY29uZmlnAA1jb25maWdBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzBQtjb25maWdTdG9yZQAGbG9ja2VyCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDWNvbmZpZ0FkZHJlc3MCCWxwX2xvY2tlcgIebm8gbHBfbG9ja2VyIGFkZHJlc3MgaW4gY29uZmlnAh9iYWQgbHBfbG9ja2VyIGFkZHJlc3MgaW4gY29uZmlnAAtyZXNlcnZlc1N0cgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDWNvbmZpZ0FkZHJlc3MCE3Jld2FyZGFibGVfcmVzZXJ2ZXMCIW5vIHJld2FyZGFibGVfcmVzZXJ2ZXMgcmVnaXN0ZXJlZAAIcmVzZXJ2ZXMJALwJAgULcmVzZXJ2ZXNTdHICAXwAA21WRAQHJG1hdGNoMAkAnQgCBQ1jb25maWdBZGRyZXNzAhF2aXJlc19kaXN0cmlidXRvcgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWQFByRtYXRjaDAJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAWQFBHVuaXQAAlZECQETdmFsdWVPckVycm9yTWVzc2FnZQIFA21WRAIIbm8gZGlzdHIAAmRDCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDWNvbmZpZ0FkZHJlc3MCEmRpdmlkZW5kc19jb250cmFjdAIVbm8gZGl2aWRlbmRzX2NvbnRyYWN0AgdiYWQgZGl2AAt2aXJlc01pbnRlcgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQ1jb25maWdBZGRyZXNzAgx2aXJlc19taW50ZXICFG1haW46IG5vIHZpcmVzTWludGVyAgpiYWQgbWludGVyABFtYXliZVZpcmVzQXNzZXRJZAkAnQgCBQt2aXJlc01pbnRlcgIHYXNzZXRJZAAMdmlyZXNBc3NldElkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJANkEAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCBRFtYXliZVZpcmVzQXNzZXRJZAILbm8gdmlyZXMgaWQCEGludmFsaWQgdmlyZXMgaWQBCXJlc2VydmVCeQIFc3RvcmUFdmFsdWUKAQRmb2xkAgFhAXIEByRtYXRjaDAFAWEDCQABAgUHJG1hdGNoMAIHQWRkcmVzcwQFZm91bmQFByRtYXRjaDAFBWZvdW5kBANyc3IJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBBQFyAg9yc3IgYmFkIGFkZHJlc3MDCQAAAgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFA3JzcgUFc3RvcmUJAKwCAgILcnNyIGhhcyBubyAFBXN0b3JlBQV2YWx1ZQUDcnNyBQR1bml0BAckbWF0Y2gwCgACJGwFCHJlc2VydmVzCgACJHMJAJADAQUCJGwKAAUkYWNjMAUEdW5pdAoBBSRmMF8xAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQEEZm9sZAIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMjAJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUAwkAAQIFByRtYXRjaDACB0FkZHJlc3MEBWZvdW5kBQckbWF0Y2gwBQVmb3VuZAkAAgEJAKwCAgIIdW5rbm93biAFBXN0b3JlAQN2bFIBAXIDCQEIY29udGFpbnMCBQtyZXNlcnZlc1N0cgUBcgkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEFAXICDW1haW46IGJhZCByc3IJAAIBCQCsAgICDHVua25vd24gcnNyOgUBcgAObWF5YmVQcm90ZWN0ZWQEByRtYXRjaDAJAJ0IAgUNY29uZmlnQWRkcmVzcwIRcHJvdGVjdGVkX3Jlc2VydmUDCQABAgUHJG1hdGNoMAIGU3RyaW5nBANwZHMFByRtYXRjaDAJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBBQNwZHMCDWJhZCBwcm90ZWN0ZWQFBHVuaXQAEHByb3RlY3RlZFJlc2VydmUJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgUObWF5YmVQcm90ZWN0ZWQCEG5vIHByb3RlY3RlZCByc3IBEWVuc3VyZU5vUHJvdGVjdGVkAQR1c2VyBANoYXMEByRtYXRjaDAFDm1heWJlUHJvdGVjdGVkAwkAAQIFByRtYXRjaDACB0FkZHJlc3MEAnBhBQckbWF0Y2gwCQELdmFsdWVPckVsc2UCCQCbCAIFAnBhCQCsAgICFXByb3RlY3RlZF9jb2xsYXRlcmFsXwUEdXNlcgcHAwUDaGFzCQACAQIKZGlzYWxsb3dlZAUEdW5pdAAFYVRJZFMCCGFUb2tlbklkAQxsb2NrT3JQYXlvdXQDCXJlY2lwaWVudANhbXQEbG9jawMJAQEhAQUEbG9jawkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQlyZWNpcGllbnQFA2FtdAUMdmlyZXNBc3NldElkBQNuaWwEBmRvTG9jawkA/AcEBQJkQwIHbG9ja0ZvcgkAzAgCCQClCAEFCXJlY2lwaWVudAkAzAgCAAEFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgUMdmlyZXNBc3NldElkBQNhbXQFA25pbAMJAAACBQZkb0xvY2sFBmRvTG9jawUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJzUgEDcnNyBAckbWF0Y2gwBQNtVkQDCQABAgUHJG1hdGNoMAIHQWRkcmVzcwQBYQUHJG1hdGNoMAkA/AcEBQFhAgpzeW5jSGVpZ2h0CQDMCAIFA3JzcgUDbmlsBQNuaWwFBHVuaXQBAnVTBQNyc3IGYWN0aW9uBHVzZXIKdXNlckNoYW5nZQxzdHJlYW1DaGFuZ2UEByRtYXRjaDAFA21WRAMJAAECBQckbWF0Y2gwAgdBZGRyZXNzBAFhBQckbWF0Y2gwCQD8BwQFAWECCG9uQWN0aW9uCQDMCAIFA3JzcgkAzAgCBQZhY3Rpb24JAMwIAgUEdXNlcgkAzAgCBQp1c2VyQ2hhbmdlCQDMCAIFDHN0cmVhbUNoYW5nZQUDbmlsBQNuaWwFBHVuaXQAB2xpbWl0ZXIEByRtYXRjaDAJAJ0IAgUNY29uZmlnQWRkcmVzcwIHbGltaXRlcgMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAWQFByRtYXRjaDAJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAWQFBHVuaXQBC2Vuc3VyZUxpbWl0BAZhY3Rpb24DcnNyBHVzZXIGYW1vdW50BAckbWF0Y2gwBQdsaW1pdGVyAwkAAQIFByRtYXRjaDACB0FkZHJlc3MEAWwFByRtYXRjaDAJAQVhc0ludAEJAPwHBAUBbAINdmFsaWRhdGVMaW1pdAkAzAgCBQZhY3Rpb24JAMwIAgkApQgBBQNyc3IJAMwIAgUEdXNlcgkAzAgCBQZhbW91bnQFA25pbAUDbmlsBgYBaQEKaW5pdGlhbGl6ZQECY2EJAMwIAgkBEHdyaXRlQ29uc3RTdHJpbmcCBQtjb25maWdTdG9yZQUCY2EFA25pbAFpARh3aXRoZHJhd1VubG9ja2VkTFBUb2tlbnMBCGFUb2tlbklkBAR1c2VyCQClCAEIBQFpBmNhbGxlcgQGY2hlY2tzCQEJcmVzZXJ2ZUJ5AgUFYVRJZFMFCGFUb2tlbklkAwkAAAIFBmNoZWNrcwUGY2hlY2tzBAFjCQD8BwQFBmxvY2tlcgIWY2xlYW5VcERpc3RyaWJ1dGlvbkZvcgkAzAgCBQR1c2VyCQDMCAIFCGFUb2tlbklkBQNuaWwFA25pbAMJAAACBQFjBQFjBAJ3ZAkBBWFzSW50AQkA/AcEBQZsb2NrZXICCHdpdGhkcmF3CQDMCAIFBHVzZXIJAMwIAgUIYVRva2VuSWQJAMwIAgUEdXNlcgUDbmlsBQNuaWwDCQAAAgUCd2QFAndkCQCUCgIFA25pbAUCd2QJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEdd2l0aGRyYXdTbGFzaGVkTG9ja2VkTFBUb2tlbnMBCGFUb2tlbklkBAR1c2VyCQClCAEIBQFpBmNhbGxlcgQGY2hlY2tzCQEJcmVzZXJ2ZUJ5AgUFYVRJZFMFCGFUb2tlbklkAwkAAAIFBmNoZWNrcwUGY2hlY2tzBAskdDA0Mzk4NDU0NQkBBmFzSW50MgEJAPwHBAUGbG9ja2VyAg93aXRoZHJhd1NsYXNoZWQJAMwIAgUEdXNlcgkAzAgCBQhhVG9rZW5JZAkAzAgCBQR1c2VyBQNuaWwFA25pbAMJAAACBQskdDA0Mzk4NDU0NQULJHQwNDM5ODQ1NDUEB3NsYXNoZWQIBQskdDA0Mzk4NDU0NQJfMgQCd2QIBQskdDA0Mzk4NDU0NQJfMQQIdHJlYXN1cnkJARFAZXh0ck5hdGl2ZSgxMDYyKQEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQ1jb25maWdBZGRyZXNzAgxkYW9fdHJlYXN1cnkCFm5vIHRyZWFzdXJ5IGNvbmZpZ3VyZWQJAJQKAgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDBQh0cmVhc3VyeQUHc2xhc2hlZAkA2QQBBQhhVG9rZW5JZAUDbmlsBQJ3ZAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARZzdXBwbHlVbmxvY2tlZExQVG9rZW5zAQhhVG9rZW5JZAQEdXNlcgkApQgBCAUBaQZjYWxsZXIEA3JzcgkBCXJlc2VydmVCeQIFBWFUSWRTBQhhVG9rZW5JZAMJAAACBQNyc3IFA3JzcgQBYwkA/AcEBQZsb2NrZXICFmNsZWFuVXBEaXN0cmlidXRpb25Gb3IJAMwIAgUEdXNlcgkAzAgCBQhhVG9rZW5JZAUDbmlsBQNuaWwDCQAAAgUBYwUBYwQCd2QJAQVhc0ludAEJAPwHBAUGbG9ja2VyAgh3aXRoZHJhdwkAzAgCBQR1c2VyCQDMCAIFCGFUb2tlbklkCQDMCAIJAKUIAQUEdGhpcwUDbmlsBQNuaWwDCQAAAgUCd2QFAndkBAZjaGVja3MJARFlbnN1cmVOb1Byb3RlY3RlZAEFBHVzZXIDCQAAAgUGY2hlY2tzBQZjaGVja3MEAnNoCQECc1IBCQClCAEFA3JzcgMJAAACBQJzaAUCc2gEDHJlcGxlbmlzaEFtdAkBBWFzSW50AQkA/AcEBQNyc3ICHnJlcGxlbmlzRm9yVW5sb2NrV2l0aEF0b2tlbkZvcgkAzAgCBQR1c2VyBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQUIYVRva2VuSWQFAndkBQNuaWwDCQAAAgUMcmVwbGVuaXNoQW10BQxyZXBsZW5pc2hBbXQEA3BSdwkBAnVTBQkApQgBBQNyc3ICB2RlcG9zaXQFBHVzZXIFDHJlcGxlbmlzaEFtdAAAAwkAAAIFA3BSdwUDcFJ3CQCUCgIFA25pbAUCd2QJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEWcmVkZWVtVW5sb2NrZWRMUFRva2VucwEIYVRva2VuSWQEBHVzZXIJAKUIAQgFAWkGY2FsbGVyBANyc3IJAQlyZXNlcnZlQnkCBQVhVElkUwUIYVRva2VuSWQDCQAAAgUDcnNyBQNyc3IEAWMJAPwHBAUGbG9ja2VyAhZjbGVhblVwRGlzdHJpYnV0aW9uRm9yCQDMCAIFBHVzZXIJAMwIAgUIYVRva2VuSWQFA25pbAUDbmlsAwkAAAIFAWMFAWMEAndkCQEFYXNJbnQBCQD8BwQFBmxvY2tlcgIId2l0aGRyYXcJAMwIAgUEdXNlcgkAzAgCBQhhVG9rZW5JZAkAzAgCCQClCAEFBHRoaXMFA25pbAUDbmlsAwkAAAIFAndkBQJ3ZAQCc2gJAQJzUgEJAKUIAQUDcnNyAwkAAAIFAnNoBQJzaAQDYW10CQEFYXNJbnQBCQD8BwQFA3JzcgIQcmVkZWVtQXRva2Vuc0ZvcgkAzAgCBQR1c2VyBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIJANkEAQUIYVRva2VuSWQFAndkBQNuaWwDCQAAAgUDYW10BQNhbXQEAWUJAQtlbnN1cmVMaW1pdAQCCHdpdGhkcmF3BQNyc3IFBHVzZXIFA2FtdAMJAAACBQFlBQFlBANwUncJAQJ1UwUJAKUIAQUDcnNyAgdkZXBvc2l0BQR1c2VyAAAJAQEtAQUDYW10AwkAAAIFA3BSdwUDcFJ3CQCUCgIFA25pbAUCd2QJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQENY2xhaW1McFJld2FyZAMDcnNyA2FtdARsb2NrBAF2CQEDdmxSAQUDcnNyAwkAAAIFAXYFAXYECGFUb2tlbklkCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUBdgUFYVRJZFMCFm5vIGFUb2tlbklkIGluIHJlc2VydmUEBHVzZXIJAKUIAQgFAWkGY2FsbGVyBAFjCQEFYXNJbnQBCQD8BwQFBmxvY2tlcgIQY2xhaW1McFJld2FyZEZvcgkAzAgCBQR1c2VyCQDMCAIFCGFUb2tlbklkCQDMCAIFA2FtdAUDbmlsBQNuaWwDCQAAAgUBYwUBYwkBDGxvY2tPclBheW91dAMIBQFpBmNhbGxlcgUBYwUEbG9jawkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgBbK2fo", "chainId": 87, "height": 3266910, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: FcGnZMLzf85ueyh6gMKVYNLiyzFY9kAKdDKEauwSnoWc Next: DtN8YFe4AwWo2cJjPJWuWumjSoD4ATAWEWki4kdAc3ao Diff:
Old | New | Differences | |
---|---|---|---|
253 | 253 | let ap = X(toString(B)) | |
254 | 254 | if ((ap == ap)) | |
255 | 255 | then { | |
256 | - | let aq = d(invoke(B, " | |
256 | + | let aq = d(invoke(B, "replenisForUnlockWithAtokenFor", [O], [AttachedPayment(fromBase58String(ai), al)])) | |
257 | 257 | if ((aq == aq)) | |
258 | 258 | then { | |
259 | 259 | let ar = Y(toString(B), "deposit", O, aq, 0) |
Old | New | Differences | |
---|---|---|---|
1 | 1 | {-# STDLIB_VERSION 6 #-} | |
2 | 2 | {-# SCRIPT_TYPE ACCOUNT #-} | |
3 | 3 | {-# CONTENT_TYPE DAPP #-} | |
4 | 4 | func a (b,c) = if (!(isDefined(getString(this, b)))) | |
5 | 5 | then StringEntry(b, c) | |
6 | 6 | else throw(("already initialized: " + b)) | |
7 | 7 | ||
8 | 8 | ||
9 | 9 | func d (c) = { | |
10 | 10 | let e = c | |
11 | 11 | if ($isInstanceOf(e, "Int")) | |
12 | 12 | then { | |
13 | 13 | let f = e | |
14 | 14 | f | |
15 | 15 | } | |
16 | 16 | else throw("m3:1") | |
17 | 17 | } | |
18 | 18 | ||
19 | 19 | ||
20 | 20 | func g (c) = { | |
21 | 21 | let e = c | |
22 | 22 | if ($isInstanceOf(e, "(Int, Int)")) | |
23 | 23 | then { | |
24 | 24 | let h = e | |
25 | 25 | h | |
26 | 26 | } | |
27 | 27 | else { | |
28 | 28 | let i = e | |
29 | 29 | throw("wrong type, expected: Int2") | |
30 | 30 | } | |
31 | 31 | } | |
32 | 32 | ||
33 | 33 | ||
34 | 34 | let j = "config" | |
35 | 35 | ||
36 | 36 | let k = addressFromStringValue(getStringValue(this, j)) | |
37 | 37 | ||
38 | 38 | let l = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(k, "lp_locker"), "no lp_locker address in config")), "bad lp_locker address in config") | |
39 | 39 | ||
40 | 40 | let m = valueOrErrorMessage(getString(k, "rewardable_reserves"), "no rewardable_reserves registered") | |
41 | 41 | ||
42 | 42 | let n = split_4C(m, "|") | |
43 | 43 | ||
44 | 44 | let o = { | |
45 | 45 | let e = getString(k, "vires_distributor") | |
46 | 46 | if ($isInstanceOf(e, "String")) | |
47 | 47 | then { | |
48 | 48 | let p = e | |
49 | 49 | addressFromStringValue(p) | |
50 | 50 | } | |
51 | 51 | else unit | |
52 | 52 | } | |
53 | 53 | ||
54 | 54 | let q = valueOrErrorMessage(o, "no distr") | |
55 | 55 | ||
56 | 56 | let r = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(k, "dividends_contract"), "no dividends_contract")), "bad div") | |
57 | 57 | ||
58 | 58 | let s = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(k, "vires_minter"), "main: no viresMinter")), "bad minter") | |
59 | 59 | ||
60 | 60 | let t = getString(s, "assetId") | |
61 | 61 | ||
62 | 62 | let u = valueOrErrorMessage(fromBase58String(valueOrErrorMessage(t, "no vires id")), "invalid vires id") | |
63 | 63 | ||
64 | 64 | func v (w,c) = { | |
65 | 65 | func x (y,z) = { | |
66 | 66 | let e = y | |
67 | 67 | if ($isInstanceOf(e, "Address")) | |
68 | 68 | then { | |
69 | 69 | let A = e | |
70 | 70 | A | |
71 | 71 | } | |
72 | 72 | else { | |
73 | 73 | let B = valueOrErrorMessage(addressFromString(z), "rsr bad address") | |
74 | 74 | if ((valueOrErrorMessage(getString(B, w), ("rsr has no " + w)) == c)) | |
75 | 75 | then B | |
76 | 76 | else unit | |
77 | 77 | } | |
78 | 78 | } | |
79 | 79 | ||
80 | 80 | let e = { | |
81 | 81 | let C = n | |
82 | 82 | let D = size(C) | |
83 | 83 | let E = unit | |
84 | 84 | func F (G,H) = if ((H >= D)) | |
85 | 85 | then G | |
86 | 86 | else x(G, C[H]) | |
87 | 87 | ||
88 | 88 | func I (G,H) = if ((H >= D)) | |
89 | 89 | then G | |
90 | 90 | else throw("List size exceeds 20") | |
91 | 91 | ||
92 | 92 | I(F(F(F(F(F(F(F(F(F(F(F(F(F(F(F(F(F(F(F(F(E, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20) | |
93 | 93 | } | |
94 | 94 | if ($isInstanceOf(e, "Address")) | |
95 | 95 | then { | |
96 | 96 | let A = e | |
97 | 97 | A | |
98 | 98 | } | |
99 | 99 | else throw(("unknown " + w)) | |
100 | 100 | } | |
101 | 101 | ||
102 | 102 | ||
103 | 103 | func J (z) = if (contains(m, z)) | |
104 | 104 | then valueOrErrorMessage(addressFromString(z), "main: bad rsr") | |
105 | 105 | else throw(("unknown rsr:" + z)) | |
106 | 106 | ||
107 | 107 | ||
108 | 108 | let K = { | |
109 | 109 | let e = getString(k, "protected_reserve") | |
110 | 110 | if ($isInstanceOf(e, "String")) | |
111 | 111 | then { | |
112 | 112 | let L = e | |
113 | 113 | valueOrErrorMessage(addressFromString(L), "bad protected") | |
114 | 114 | } | |
115 | 115 | else unit | |
116 | 116 | } | |
117 | 117 | ||
118 | 118 | let M = valueOrErrorMessage(K, "no protected rsr") | |
119 | 119 | ||
120 | 120 | func N (O) = { | |
121 | 121 | let P = { | |
122 | 122 | let e = K | |
123 | 123 | if ($isInstanceOf(e, "Address")) | |
124 | 124 | then { | |
125 | 125 | let Q = e | |
126 | 126 | valueOrElse(getBoolean(Q, ("protected_collateral_" + O)), false) | |
127 | 127 | } | |
128 | 128 | else false | |
129 | 129 | } | |
130 | 130 | if (P) | |
131 | 131 | then throw("disallowed") | |
132 | 132 | else unit | |
133 | 133 | } | |
134 | 134 | ||
135 | 135 | ||
136 | 136 | let R = "aTokenId" | |
137 | 137 | ||
138 | 138 | func S (T,U,V) = if (!(V)) | |
139 | 139 | then [ScriptTransfer(T, U, u)] | |
140 | 140 | else { | |
141 | 141 | let W = invoke(r, "lockFor", [toString(T), 1], [AttachedPayment(u, U)]) | |
142 | 142 | if ((W == W)) | |
143 | 143 | then nil | |
144 | 144 | else throw("Strict value is not equal to itself.") | |
145 | 145 | } | |
146 | 146 | ||
147 | 147 | ||
148 | 148 | func X (B) = { | |
149 | 149 | let e = o | |
150 | 150 | if ($isInstanceOf(e, "Address")) | |
151 | 151 | then { | |
152 | 152 | let y = e | |
153 | 153 | invoke(y, "syncHeight", [B], nil) | |
154 | 154 | } | |
155 | 155 | else unit | |
156 | 156 | } | |
157 | 157 | ||
158 | 158 | ||
159 | 159 | func Y (B,Z,O,aa,ab) = { | |
160 | 160 | let e = o | |
161 | 161 | if ($isInstanceOf(e, "Address")) | |
162 | 162 | then { | |
163 | 163 | let y = e | |
164 | 164 | invoke(y, "onAction", [B, Z, O, aa, ab], nil) | |
165 | 165 | } | |
166 | 166 | else unit | |
167 | 167 | } | |
168 | 168 | ||
169 | 169 | ||
170 | 170 | let ac = { | |
171 | 171 | let e = getString(k, "limiter") | |
172 | 172 | if ($isInstanceOf(e, "String")) | |
173 | 173 | then { | |
174 | 174 | let p = e | |
175 | 175 | addressFromStringValue(p) | |
176 | 176 | } | |
177 | 177 | else unit | |
178 | 178 | } | |
179 | 179 | ||
180 | 180 | func ad (Z,B,O,ae) = { | |
181 | 181 | let e = ac | |
182 | 182 | if ($isInstanceOf(e, "Address")) | |
183 | 183 | then { | |
184 | 184 | let af = e | |
185 | 185 | d(invoke(af, "validateLimit", [Z, toString(B), O, ae], nil)) | |
186 | 186 | } | |
187 | 187 | else true | |
188 | 188 | } | |
189 | 189 | ||
190 | 190 | ||
191 | 191 | @Callable(ag) | |
192 | 192 | func initialize (ah) = [a(j, ah)] | |
193 | 193 | ||
194 | 194 | ||
195 | 195 | ||
196 | 196 | @Callable(ag) | |
197 | 197 | func withdrawUnlockedLPTokens (ai) = { | |
198 | 198 | let O = toString(ag.caller) | |
199 | 199 | let aj = v(R, ai) | |
200 | 200 | if ((aj == aj)) | |
201 | 201 | then { | |
202 | 202 | let ak = invoke(l, "cleanUpDistributionFor", [O, ai], nil) | |
203 | 203 | if ((ak == ak)) | |
204 | 204 | then { | |
205 | 205 | let al = d(invoke(l, "withdraw", [O, ai, O], nil)) | |
206 | 206 | if ((al == al)) | |
207 | 207 | then $Tuple2(nil, al) | |
208 | 208 | else throw("Strict value is not equal to itself.") | |
209 | 209 | } | |
210 | 210 | else throw("Strict value is not equal to itself.") | |
211 | 211 | } | |
212 | 212 | else throw("Strict value is not equal to itself.") | |
213 | 213 | } | |
214 | 214 | ||
215 | 215 | ||
216 | 216 | ||
217 | 217 | @Callable(ag) | |
218 | 218 | func withdrawSlashedLockedLPTokens (ai) = { | |
219 | 219 | let O = toString(ag.caller) | |
220 | 220 | let aj = v(R, ai) | |
221 | 221 | if ((aj == aj)) | |
222 | 222 | then { | |
223 | 223 | let am = g(invoke(l, "withdrawSlashed", [O, ai, O], nil)) | |
224 | 224 | if ((am == am)) | |
225 | 225 | then { | |
226 | 226 | let an = am._2 | |
227 | 227 | let al = am._1 | |
228 | 228 | let ao = addressFromStringValue(valueOrErrorMessage(getString(k, "dao_treasury"), "no treasury configured")) | |
229 | 229 | $Tuple2([ScriptTransfer(ao, an, fromBase58String(ai))], al) | |
230 | 230 | } | |
231 | 231 | else throw("Strict value is not equal to itself.") | |
232 | 232 | } | |
233 | 233 | else throw("Strict value is not equal to itself.") | |
234 | 234 | } | |
235 | 235 | ||
236 | 236 | ||
237 | 237 | ||
238 | 238 | @Callable(ag) | |
239 | 239 | func supplyUnlockedLPTokens (ai) = { | |
240 | 240 | let O = toString(ag.caller) | |
241 | 241 | let B = v(R, ai) | |
242 | 242 | if ((B == B)) | |
243 | 243 | then { | |
244 | 244 | let ak = invoke(l, "cleanUpDistributionFor", [O, ai], nil) | |
245 | 245 | if ((ak == ak)) | |
246 | 246 | then { | |
247 | 247 | let al = d(invoke(l, "withdraw", [O, ai, toString(this)], nil)) | |
248 | 248 | if ((al == al)) | |
249 | 249 | then { | |
250 | 250 | let aj = N(O) | |
251 | 251 | if ((aj == aj)) | |
252 | 252 | then { | |
253 | 253 | let ap = X(toString(B)) | |
254 | 254 | if ((ap == ap)) | |
255 | 255 | then { | |
256 | - | let aq = d(invoke(B, " | |
256 | + | let aq = d(invoke(B, "replenisForUnlockWithAtokenFor", [O], [AttachedPayment(fromBase58String(ai), al)])) | |
257 | 257 | if ((aq == aq)) | |
258 | 258 | then { | |
259 | 259 | let ar = Y(toString(B), "deposit", O, aq, 0) | |
260 | 260 | if ((ar == ar)) | |
261 | 261 | then $Tuple2(nil, al) | |
262 | 262 | else throw("Strict value is not equal to itself.") | |
263 | 263 | } | |
264 | 264 | else throw("Strict value is not equal to itself.") | |
265 | 265 | } | |
266 | 266 | else throw("Strict value is not equal to itself.") | |
267 | 267 | } | |
268 | 268 | else throw("Strict value is not equal to itself.") | |
269 | 269 | } | |
270 | 270 | else throw("Strict value is not equal to itself.") | |
271 | 271 | } | |
272 | 272 | else throw("Strict value is not equal to itself.") | |
273 | 273 | } | |
274 | 274 | else throw("Strict value is not equal to itself.") | |
275 | 275 | } | |
276 | 276 | ||
277 | 277 | ||
278 | 278 | ||
279 | 279 | @Callable(ag) | |
280 | 280 | func redeemUnlockedLPTokens (ai) = { | |
281 | 281 | let O = toString(ag.caller) | |
282 | 282 | let B = v(R, ai) | |
283 | 283 | if ((B == B)) | |
284 | 284 | then { | |
285 | 285 | let ak = invoke(l, "cleanUpDistributionFor", [O, ai], nil) | |
286 | 286 | if ((ak == ak)) | |
287 | 287 | then { | |
288 | 288 | let al = d(invoke(l, "withdraw", [O, ai, toString(this)], nil)) | |
289 | 289 | if ((al == al)) | |
290 | 290 | then { | |
291 | 291 | let ap = X(toString(B)) | |
292 | 292 | if ((ap == ap)) | |
293 | 293 | then { | |
294 | 294 | let U = d(invoke(B, "redeemAtokensFor", [O], [AttachedPayment(fromBase58String(ai), al)])) | |
295 | 295 | if ((U == U)) | |
296 | 296 | then { | |
297 | 297 | let as = ad("withdraw", B, O, U) | |
298 | 298 | if ((as == as)) | |
299 | 299 | then { | |
300 | 300 | let ar = Y(toString(B), "deposit", O, 0, -(U)) | |
301 | 301 | if ((ar == ar)) | |
302 | 302 | then $Tuple2(nil, al) | |
303 | 303 | else throw("Strict value is not equal to itself.") | |
304 | 304 | } | |
305 | 305 | else throw("Strict value is not equal to itself.") | |
306 | 306 | } | |
307 | 307 | else throw("Strict value is not equal to itself.") | |
308 | 308 | } | |
309 | 309 | else throw("Strict value is not equal to itself.") | |
310 | 310 | } | |
311 | 311 | else throw("Strict value is not equal to itself.") | |
312 | 312 | } | |
313 | 313 | else throw("Strict value is not equal to itself.") | |
314 | 314 | } | |
315 | 315 | else throw("Strict value is not equal to itself.") | |
316 | 316 | } | |
317 | 317 | ||
318 | 318 | ||
319 | 319 | ||
320 | 320 | @Callable(ag) | |
321 | 321 | func claimLpReward (B,U,V) = { | |
322 | 322 | let at = J(B) | |
323 | 323 | if ((at == at)) | |
324 | 324 | then { | |
325 | 325 | let ai = valueOrErrorMessage(getString(at, R), "no aTokenId in reserve") | |
326 | 326 | let O = toString(ag.caller) | |
327 | 327 | let ak = d(invoke(l, "claimLpRewardFor", [O, ai, U], nil)) | |
328 | 328 | if ((ak == ak)) | |
329 | 329 | then S(ag.caller, ak, V) | |
330 | 330 | else throw("Strict value is not equal to itself.") | |
331 | 331 | } | |
332 | 332 | else throw("Strict value is not equal to itself.") | |
333 | 333 | } | |
334 | 334 | ||
335 | 335 |
github/deemru/w8io/3ef1775 38.43 ms ◑