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:
OldNewDifferences
215215 let sh = sR(toString(rsr))
216216 if ((sh == sh))
217217 then {
218- let replenishAmt = asInt(invoke(rsr, "replenishWithAtokenFor", [user], [AttachedPayment(fromBase58String(aTokenId), wd)]))
218+ let replenishAmt = asInt(invoke(rsr, "replenisForUnlockWithAtokenFor", [user], [AttachedPayment(fromBase58String(aTokenId), wd)]))
219219 if ((replenishAmt == replenishAmt))
220220 then {
221221 let pRw = uS(toString(rsr), "deposit", user, replenishAmt, 0)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func writeConstString (key,value) = if (!(isDefined(getString(this, key))))
55 then StringEntry(key, value)
66 else throw(("already initialized: " + key))
77
88
99 func asInt (value) = match value {
1010 case int: Int =>
1111 int
1212 case _ =>
1313 throw("m3:1")
1414 }
1515
1616
1717 func asInt2 (value) = match value {
1818 case x: (Int, Int) =>
1919 x
2020 case t =>
2121 throw("wrong type, expected: Int2")
2222 }
2323
2424
2525 let configStore = "config"
2626
2727 let configAddress = addressFromStringValue(getStringValue(this, configStore))
2828
2929 let locker = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(configAddress, "lp_locker"), "no lp_locker address in config")), "bad lp_locker address in config")
3030
3131 let reservesStr = valueOrErrorMessage(getString(configAddress, "rewardable_reserves"), "no rewardable_reserves registered")
3232
3333 let reserves = split_4C(reservesStr, "|")
3434
3535 let mVD = match getString(configAddress, "vires_distributor") {
3636 case d: String =>
3737 addressFromStringValue(d)
3838 case _ =>
3939 unit
4040 }
4141
4242 let VD = valueOrErrorMessage(mVD, "no distr")
4343
4444 let dC = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(configAddress, "dividends_contract"), "no dividends_contract")), "bad div")
4545
4646 let viresMinter = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(configAddress, "vires_minter"), "main: no viresMinter")), "bad minter")
4747
4848 let maybeViresAssetId = getString(viresMinter, "assetId")
4949
5050 let viresAssetId = valueOrErrorMessage(fromBase58String(valueOrErrorMessage(maybeViresAssetId, "no vires id")), "invalid vires id")
5151
5252 func reserveBy (store,value) = {
5353 func fold (a,r) = match a {
5454 case found: Address =>
5555 found
5656 case _ =>
5757 let rsr = valueOrErrorMessage(addressFromString(r), "rsr bad address")
5858 if ((valueOrErrorMessage(getString(rsr, store), ("rsr has no " + store)) == value))
5959 then rsr
6060 else unit
6161 }
6262
6363 match let $l = reserves
6464 let $s = size($l)
6565 let $acc0 = unit
6666 func $f0_1 ($a,$i) = if (($i >= $s))
6767 then $a
6868 else fold($a, $l[$i])
6969
7070 func $f0_2 ($a,$i) = if (($i >= $s))
7171 then $a
7272 else throw("List size exceeds 20")
7373
7474 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($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), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20) {
7575 case found: Address =>
7676 found
7777 case _ =>
7878 throw(("unknown " + store))
7979 }
8080 }
8181
8282
8383 func vlR (r) = if (contains(reservesStr, r))
8484 then valueOrErrorMessage(addressFromString(r), "main: bad rsr")
8585 else throw(("unknown rsr:" + r))
8686
8787
8888 let maybeProtected = match getString(configAddress, "protected_reserve") {
8989 case pds: String =>
9090 valueOrErrorMessage(addressFromString(pds), "bad protected")
9191 case _ =>
9292 unit
9393 }
9494
9595 let protectedReserve = valueOrErrorMessage(maybeProtected, "no protected rsr")
9696
9797 func ensureNoProtected (user) = {
9898 let has = match maybeProtected {
9999 case pa: Address =>
100100 valueOrElse(getBoolean(pa, ("protected_collateral_" + user)), false)
101101 case _ =>
102102 false
103103 }
104104 if (has)
105105 then throw("disallowed")
106106 else unit
107107 }
108108
109109
110110 let aTIdS = "aTokenId"
111111
112112 func lockOrPayout (recipient,amt,lock) = if (!(lock))
113113 then [ScriptTransfer(recipient, amt, viresAssetId)]
114114 else {
115115 let doLock = invoke(dC, "lockFor", [toString(recipient), 1], [AttachedPayment(viresAssetId, amt)])
116116 if ((doLock == doLock))
117117 then nil
118118 else throw("Strict value is not equal to itself.")
119119 }
120120
121121
122122 func sR (rsr) = match mVD {
123123 case a: Address =>
124124 invoke(a, "syncHeight", [rsr], nil)
125125 case _ =>
126126 unit
127127 }
128128
129129
130130 func uS (rsr,action,user,userChange,streamChange) = match mVD {
131131 case a: Address =>
132132 invoke(a, "onAction", [rsr, action, user, userChange, streamChange], nil)
133133 case _ =>
134134 unit
135135 }
136136
137137
138138 let limiter = match getString(configAddress, "limiter") {
139139 case d: String =>
140140 addressFromStringValue(d)
141141 case _ =>
142142 unit
143143 }
144144
145145 func ensureLimit (action,rsr,user,amount) = match limiter {
146146 case l: Address =>
147147 asInt(invoke(l, "validateLimit", [action, toString(rsr), user, amount], nil))
148148 case _ =>
149149 true
150150 }
151151
152152
153153 @Callable(i)
154154 func initialize (ca) = [writeConstString(configStore, ca)]
155155
156156
157157
158158 @Callable(i)
159159 func withdrawUnlockedLPTokens (aTokenId) = {
160160 let user = toString(i.caller)
161161 let checks = reserveBy(aTIdS, aTokenId)
162162 if ((checks == checks))
163163 then {
164164 let c = invoke(locker, "cleanUpDistributionFor", [user, aTokenId], nil)
165165 if ((c == c))
166166 then {
167167 let wd = asInt(invoke(locker, "withdraw", [user, aTokenId, user], nil))
168168 if ((wd == wd))
169169 then $Tuple2(nil, wd)
170170 else throw("Strict value is not equal to itself.")
171171 }
172172 else throw("Strict value is not equal to itself.")
173173 }
174174 else throw("Strict value is not equal to itself.")
175175 }
176176
177177
178178
179179 @Callable(i)
180180 func withdrawSlashedLockedLPTokens (aTokenId) = {
181181 let user = toString(i.caller)
182182 let checks = reserveBy(aTIdS, aTokenId)
183183 if ((checks == checks))
184184 then {
185185 let $t043984545 = asInt2(invoke(locker, "withdrawSlashed", [user, aTokenId, user], nil))
186186 if (($t043984545 == $t043984545))
187187 then {
188188 let slashed = $t043984545._2
189189 let wd = $t043984545._1
190190 let treasury = addressFromStringValue(valueOrErrorMessage(getString(configAddress, "dao_treasury"), "no treasury configured"))
191191 $Tuple2([ScriptTransfer(treasury, slashed, fromBase58String(aTokenId))], wd)
192192 }
193193 else throw("Strict value is not equal to itself.")
194194 }
195195 else throw("Strict value is not equal to itself.")
196196 }
197197
198198
199199
200200 @Callable(i)
201201 func supplyUnlockedLPTokens (aTokenId) = {
202202 let user = toString(i.caller)
203203 let rsr = reserveBy(aTIdS, aTokenId)
204204 if ((rsr == rsr))
205205 then {
206206 let c = invoke(locker, "cleanUpDistributionFor", [user, aTokenId], nil)
207207 if ((c == c))
208208 then {
209209 let wd = asInt(invoke(locker, "withdraw", [user, aTokenId, toString(this)], nil))
210210 if ((wd == wd))
211211 then {
212212 let checks = ensureNoProtected(user)
213213 if ((checks == checks))
214214 then {
215215 let sh = sR(toString(rsr))
216216 if ((sh == sh))
217217 then {
218- let replenishAmt = asInt(invoke(rsr, "replenishWithAtokenFor", [user], [AttachedPayment(fromBase58String(aTokenId), wd)]))
218+ let replenishAmt = asInt(invoke(rsr, "replenisForUnlockWithAtokenFor", [user], [AttachedPayment(fromBase58String(aTokenId), wd)]))
219219 if ((replenishAmt == replenishAmt))
220220 then {
221221 let pRw = uS(toString(rsr), "deposit", user, replenishAmt, 0)
222222 if ((pRw == pRw))
223223 then $Tuple2(nil, wd)
224224 else throw("Strict value is not equal to itself.")
225225 }
226226 else throw("Strict value is not equal to itself.")
227227 }
228228 else throw("Strict value is not equal to itself.")
229229 }
230230 else throw("Strict value is not equal to itself.")
231231 }
232232 else throw("Strict value is not equal to itself.")
233233 }
234234 else throw("Strict value is not equal to itself.")
235235 }
236236 else throw("Strict value is not equal to itself.")
237237 }
238238
239239
240240
241241 @Callable(i)
242242 func redeemUnlockedLPTokens (aTokenId) = {
243243 let user = toString(i.caller)
244244 let rsr = reserveBy(aTIdS, aTokenId)
245245 if ((rsr == rsr))
246246 then {
247247 let c = invoke(locker, "cleanUpDistributionFor", [user, aTokenId], nil)
248248 if ((c == c))
249249 then {
250250 let wd = asInt(invoke(locker, "withdraw", [user, aTokenId, toString(this)], nil))
251251 if ((wd == wd))
252252 then {
253253 let sh = sR(toString(rsr))
254254 if ((sh == sh))
255255 then {
256256 let amt = asInt(invoke(rsr, "redeemAtokensFor", [user], [AttachedPayment(fromBase58String(aTokenId), wd)]))
257257 if ((amt == amt))
258258 then {
259259 let e = ensureLimit("withdraw", rsr, user, amt)
260260 if ((e == e))
261261 then {
262262 let pRw = uS(toString(rsr), "deposit", user, 0, -(amt))
263263 if ((pRw == pRw))
264264 then $Tuple2(nil, wd)
265265 else throw("Strict value is not equal to itself.")
266266 }
267267 else throw("Strict value is not equal to itself.")
268268 }
269269 else throw("Strict value is not equal to itself.")
270270 }
271271 else throw("Strict value is not equal to itself.")
272272 }
273273 else throw("Strict value is not equal to itself.")
274274 }
275275 else throw("Strict value is not equal to itself.")
276276 }
277277 else throw("Strict value is not equal to itself.")
278278 }
279279
280280
281281
282282 @Callable(i)
283283 func claimLpReward (rsr,amt,lock) = {
284284 let v = vlR(rsr)
285285 if ((v == v))
286286 then {
287287 let aTokenId = valueOrErrorMessage(getString(v, aTIdS), "no aTokenId in reserve")
288288 let user = toString(i.caller)
289289 let c = asInt(invoke(locker, "claimLpRewardFor", [user, aTokenId, amt], nil))
290290 if ((c == c))
291291 then lockOrPayout(i.caller, c, lock)
292292 else throw("Strict value is not equal to itself.")
293293 }
294294 else throw("Strict value is not equal to itself.")
295295 }
296296
297297

github/deemru/w8io/6500d08 
33.57 ms