tx · 682BY9XahuoqUCbYtWY8CR4LahuGXA3q6P7pdLQEjN6N

3N49shcErzZepEy7HDR1fjAce8humpL7QiH:  -0.01500000 Waves

2023.02.22 14:08 [2460774] smart account 3N49shcErzZepEy7HDR1fjAce8humpL7QiH > SELF 0.00000000 Waves

{ "type": 13, "id": "682BY9XahuoqUCbYtWY8CR4LahuGXA3q6P7pdLQEjN6N", "fee": 1500000, "feeAssetId": null, "timestamp": 1677064035945, "version": 2, "chainId": 84, "sender": "3N49shcErzZepEy7HDR1fjAce8humpL7QiH", "senderPublicKey": "9frGdXQHcSntKXRWwZ4YJZWnnKREWwYH4cEzMVQwcwYj", "proofs": [ "4D9NbWPs62zSyb4xjC4sxK6MdBEpYWV11gfEbSGbALVohpVkypiVPT1rkLqP2E8g6X6UUgsc6F4wRy3KsueXw7FG" ], "script": "base64:BgItCAISBAoCCAgSABIECgIICBIAEgASBAoCCAgSBQoDCAgBEgMKAQgSAwoBCBIAKwEQd3JpdGVDb25zdFN0cmluZwIDa2V5BXZhbHVlAwkBASEBCQEJaXNEZWZpbmVkAQkAnQgCBQR0aGlzBQNrZXkJAQtTdHJpbmdFbnRyeQIFA2tleQUFdmFsdWUJAAIBCQCsAgICFWFscmVhZHkgaW5pdGlhbGl6ZWQ6IAUDa2V5AQ13cml0ZUNvbnN0SW50AgNrZXkFdmFsdWUDCQEBIQEJAQlpc0RlZmluZWQBCQCaCAIFBHRoaXMFA2tleQkBDEludGVnZXJFbnRyeQIFA2tleQUFdmFsdWUJAAIBCQCsAgICFWFscmVhZHkgaW5pdGlhbGl6ZWQ6IAUDa2V5AQh3cml0ZUludAIDa2V5BXZhbHVlAwkAZgIAAAUFdmFsdWUJAAIBCQCsAgIJAKwCAgkArAICAhd3cml0aW5nIG5lZ2F0aXZlIHZhbHVlIAkApAMBBQV2YWx1ZQIJIGZvciBrZXkgBQNrZXkJAQxJbnRlZ2VyRW50cnkCBQNrZXkFBXZhbHVlAQhjaGFuZ2VCeQIDa2V5BXZhbHVlCQEId3JpdGVJbnQCBQNrZXkJAGQCCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFA2tleQAABQV2YWx1ZQALY29uZmlnU3RvcmUCBmNvbmZpZwANY29uZmlnQWRkcmVzcwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTMpAgUEdGhpcwULY29uZmlnU3RvcmUAFHZlc3RpbmdDb25maWdBZGRyZXNzCQERQGV4dHJOYXRpdmUoMTA2MikBCQERQGV4dHJOYXRpdmUoMTA1MykCBQR0aGlzAg12ZXN0aW5nQ29uZmlnABJtYXliZU9yYWNsZUFkZHJlc3MEByRtYXRjaDAJAJ0IAgUNY29uZmlnQWRkcmVzcwIOb3JhY2xlX2FkZHJlc3MDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFzBQckbWF0Y2gwCQCmCAEFAXMFBHVuaXQABkhFSUdIVAUGaGVpZ2h0AQlvcEFsbG93ZWQBAm9wBAckbWF0Y2gwCQD8BwQFDWNvbmZpZ0FkZHJlc3MCCW9wQWxsb3dlZAkAzAgCAgR1c2RuCQDMCAIFAm9wBQNuaWwFA25pbAMJAAECBQckbWF0Y2gwAgdCb29sZWFuBAFiBQckbWF0Y2gwAwUBYgYJAAIBAgtub3QgYWxsb3dlZAkAAgECIW9wQWxsb3dlZDogdW5leHBlY3RlZCByZXN1bHQgdHlwZQEIbWFpbk9ubHkBAWkDCQEIY29udGFpbnMCCQERQGV4dHJOYXRpdmUoMTA1MykCBQ1jb25maWdBZGRyZXNzAgRtYWluCQClCAEIBQFpBmNhbGxlcgYJAAIBAhBvbmx5IG1haW4gY2FuIGRvAQd0aHJvd0lmAgljb25kaXRpb24FZXJyb3IDBQljb25kaXRpb24JAAIBBQVlcnJvcgYABHVzZG4JARFAZXh0ck5hdGl2ZSgxMDUzKQIFBHRoaXMCBHVzZG4BF2FkZHJlc3NUb3RhbFN0b3JlTGVnYWN5AQdhZGRyZXNzCQCsAgIFB2FkZHJlc3MCBV91c2RuARFhZGRyZXNzVG90YWxTdG9yZQEHYWRkcmVzcwkArAICBQdhZGRyZXNzAgVfVVNETgETdmVzdGluZ0NsYWltZWRTdG9yZQEHYWRkcmVzcwkArAICBQdhZGRyZXNzAghfY2xhaW1lZAESY29udmVydGVkVG9McFN0b3JlAQdhZGRyZXNzCQCsAgIFB2FkZHJlc3MCEF9jb252ZXJ0ZWRfdG9fbHABEXZlc3RpbmdTdGFydFN0b3JlAQdhZGRyZXNzCQCsAgIFB2FkZHJlc3MCDl92ZXN0aW5nX3N0YXJ0ARd2ZXN0aW5nTGFzdENsYWltZWRTdG9yZQEHYWRkcmVzcwkArAICBQdhZGRyZXNzAhVfdmVzdGluZ19sYXN0X2NsYWltZWQBFnZlc3RpbmdEYWlseVNwZWVkU3RvcmUBB2FkZHJlc3MJAKwCAgUHYWRkcmVzcwIUX3Zlc3RpbmdfZGFpbHlfc3BlZWQBDGFzSW50M1N0cmluZwEFdmFsdWUEByRtYXRjaDAFBXZhbHVlAwkAAQIFByRtYXRjaDACFyhJbnQsIEludCwgSW50LCBTdHJpbmcpBAdpbnQzc3RyBQckbWF0Y2gwBQdpbnQzc3RyCQACAQItd3JvbmcgdHlwZSwgZXhwZWN0ZWQ6IChJbnQsIEludCwgSW50LCBTdHJpbmcpAA50b3RhbFVTRE5TdG9yZQIKdG90YWxfdXNkbgALdG90YWxWZXN0ZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUOdG90YWxVU0ROU3RvcmUAAAAVc3BlZWRDb2VmZmljaWVudFN0b3JlAhl2ZXN0aW5nX3NwZWVkX2NvZWZmaWNpZW50ABBzcGVlZENvZWZmaWNpZW50CQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMCGXZlc3Rpbmdfc3BlZWRfY29lZmZpY2llbnQAZAARdG90YWxTdGFraW5nU3RvcmUCEnRvdGFsX3N0YWtpbmdfdXNkbgEXdXNlckNsYWltZWRSZXdhcmRzU3RvcmUBB2FkZHJlc3MJAKwCAgUHYWRkcmVzcwIVX2NsYWltZWRfc3Rha2luZ191c2RuARN1c2VyU3Rha2luZ0FkalN0b3JlAQdhZGRyZXNzCQCsAgIFB2FkZHJlc3MCBF9hZGoAI0xJTkVBUl9WRVNUSU5HX0RFRkFVTFRfU1RBUlRfSEVJR0hUAOGQ1wEAF0xJTkVBUl9WRVNUSU5HX01BWF9EQVlTCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMCF2xpbmVhcl92ZXN0aW5nX21heF9kYXlzAPQDARJ1c2VyVmVzdGluZ0JhbGFuY2UBB2FkZHJlc3MEF2xlZ2FjeVRvdGFsVmVzdGluZ1ZhbHVlCQELdmFsdWVPckVsc2UCCQCfCAEJARdhZGRyZXNzVG90YWxTdG9yZUxlZ2FjeQEFB2FkZHJlc3MAAAQMdG90YWxWZXN0aW5nCQBlAgkAZQIJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBEWFkZHJlc3NUb3RhbFN0b3JlAQUHYWRkcmVzcwUXbGVnYWN5VG90YWxWZXN0aW5nVmFsdWUJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBE3Zlc3RpbmdDbGFpbWVkU3RvcmUBBQdhZGRyZXNzAAAJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBEmNvbnZlcnRlZFRvTHBTdG9yZQEFB2FkZHJlc3MAAAQHJG1hdGNoMAkAmggCBQR0aGlzCQEXdmVzdGluZ0xhc3RDbGFpbWVkU3RvcmUBBQdhZGRyZXNzAwkAAQIFByRtYXRjaDACA0ludAQRbGFzdENsYWltZWRIZWlnaHQFByRtYXRjaDAEEnVzZXJTcGVlZFBlckRheVJhdwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCfCAEJARZ2ZXN0aW5nRGFpbHlTcGVlZFN0b3JlAQUHYWRkcmVzcwkArAICAg1ubyBzcGVlZCBmb3IgBQdhZGRyZXNzBAZwZXJEYXkJAGsDBRJ1c2VyU3BlZWRQZXJEYXlSYXcFEHNwZWVkQ29lZmZpY2llbnQAZAQIdW5sb2NrZWQJAGsDBQZwZXJEYXkJAGUCBQZIRUlHSFQFEWxhc3RDbGFpbWVkSGVpZ2h0AKALCQCVCgMFDHRvdGFsVmVzdGluZwkAlwMBCQDMCAIFCHVubG9ja2VkCQDMCAIFDHRvdGFsVmVzdGluZwUDbmlsBQZwZXJEYXkEByRtYXRjaDEJAJ8IAQkBEXZlc3RpbmdTdGFydFN0b3JlAQUHYWRkcmVzcwMJAAECBQckbWF0Y2gxAgNJbnQEDnZlc3RpbmdSZXN0YXJ0BSNMSU5FQVJfVkVTVElOR19ERUZBVUxUX1NUQVJUX0hFSUdIVAQGcGVyRGF5CQBrAwkAaQIFC3RvdGFsVmVzdGVkBRdMSU5FQVJfVkVTVElOR19NQVhfREFZUwUQc3BlZWRDb2VmZmljaWVudABkBAh1bmxvY2tlZAkAawMFBnBlckRheQkAZQIFBkhFSUdIVAUOdmVzdGluZ1Jlc3RhcnQAoAsJAJUKAwUMdG90YWxWZXN0aW5nCQCXAwEJAMwIAgUIdW5sb2NrZWQJAMwIAgUMdG90YWxWZXN0aW5nBQNuaWwFBnBlckRheQkAlQoDAAAAAAAAAQp1c2VyVmVzdGVkAQdhZGRyZXNzBAskdDA0NTE2NDU4NgkBEnVzZXJWZXN0aW5nQmFsYW5jZQEFB2FkZHJlc3MEDHRvdGFsVmVzdGluZwgFCyR0MDQ1MTY0NTg2Al8xBAxhdmFpbGFibGVOb3cIBQskdDA0NTE2NDU4NgJfMgQGcGVyRGF5CAULJHQwNDUxNjQ1ODYCXzMFDHRvdGFsVmVzdGluZwEQdXNlclRvdGFsUmV3YXJkcwEHYWRkcmVzcwQMdG90YWxSZXdhcmRzCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFEXRvdGFsU3Rha2luZ1N0b3JlAAAEDnVzZXJTdGFraW5nQWRqCQELdmFsdWVPckVsc2UCCQCfCAEJARN1c2VyU3Rha2luZ0FkalN0b3JlAQUHYWRkcmVzcwAAAwkAAAIFC3RvdGFsVmVzdGVkAAAFDnVzZXJTdGFraW5nQWRqCQBkAgkAawMFDHRvdGFsUmV3YXJkcwkBCnVzZXJWZXN0ZWQBBQdhZGRyZXNzBQt0b3RhbFZlc3RlZAUOdXNlclN0YWtpbmdBZGoBG3VzZXJTdGFraW5nUmV3YXJkc0F2YWlsYWJsZQEHYWRkcmVzcwQSdXNlckNsYWltZWRSZXdhcmRzCQELdmFsdWVPckVsc2UCCQCfCAEJARd1c2VyQ2xhaW1lZFJld2FyZHNTdG9yZQEFB2FkZHJlc3MAAAQUdXNlckF2YWlsYWJsZVJld2FyZHMJAGUCCQEQdXNlclRvdGFsUmV3YXJkcwEFB2FkZHJlc3MFEnVzZXJDbGFpbWVkUmV3YXJkcwMJAGYCAAAFFHVzZXJBdmFpbGFibGVSZXdhcmRzAAAFFHVzZXJBdmFpbGFibGVSZXdhcmRzARB1cGRhdGVSZXdhcmREYXRhAgdhZGRyZXNzCnVzZXJDaGFuZ2UECXByZXZUb3RhbAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQ50b3RhbFVTRE5TdG9yZQAABBBwcmV2U3Rha2luZ1RvdGFsCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFEXRvdGFsU3Rha2luZ1N0b3JlAAAEEnByZXZVc2VyU3Rha2luZ0FkagkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQETdXNlclN0YWtpbmdBZGpTdG9yZQEFB2FkZHJlc3MAAAQIbmV3VG90YWwJAGQCBQlwcmV2VG90YWwFCnVzZXJDaGFuZ2UEFW5ld1N0YWtpbmdSZXdhcmRUb3RhbAMJAAACBQlwcmV2VG90YWwAAAUQcHJldlN0YWtpbmdUb3RhbAkAawMFEHByZXZTdGFraW5nVG90YWwFCG5ld1RvdGFsBQlwcmV2VG90YWwEEG5ld1VzZXJSZXdhcmRBZGoDCQAAAgUIbmV3VG90YWwAAAkAZAIFEnByZXZVc2VyU3Rha2luZ0FkagUQcHJldlN0YWtpbmdUb3RhbAkAZQIFEnByZXZVc2VyU3Rha2luZ0FkagkAawMFFW5ld1N0YWtpbmdSZXdhcmRUb3RhbAUKdXNlckNoYW5nZQUIbmV3VG90YWwJAMwIAgkBDEludGVnZXJFbnRyeQIFEXRvdGFsU3Rha2luZ1N0b3JlBRVuZXdTdGFraW5nUmV3YXJkVG90YWwJAMwIAgkBDEludGVnZXJFbnRyeQIJARN1c2VyU3Rha2luZ0FkalN0b3JlAQUHYWRkcmVzcwUQbmV3VXNlclJld2FyZEFkagUDbmlsAA5zdGFraW5nQWRkcmVzcwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQ1jb25maWdBZGRyZXNzCQCsAgICD3N0YWtpbmdfY29uZmlnXwkApQgBBQR0aGlzCQCsAgICF25vIHN0YWtpbmcgYWRkcmVzcyBmb3IgCQClCAEFBHRoaXMJAKwCAgIYYmFkIHN0YWtpbmcgYWRkcmVzcyBmb3IgCQClCAEFBHRoaXMADnN0YWtpbmdFbmFibGVkCQELdmFsdWVPckVsc2UCCQCbCAIFDWNvbmZpZ0FkZHJlc3MJAKwCAgIQc3Rha2luZ19lbmFibGVkXwkApQgBBQR0aGlzBwELc3luY1N0YWtpbmcBDWtlZXBBdEJhbGFuY2UEDWFjdHVhbEJhbGFuY2UJAPAHAgUEdGhpcwkA2QQBBQR1c2RuBA1zdGFraW5nQWN0aW9uAwkAAAIFDWFjdHVhbEJhbGFuY2UFDWtlZXBBdEJhbGFuY2UFA25pbAMJAQEhAQUOc3Rha2luZ0VuYWJsZWQFA25pbAMJAGYCBQ1hY3R1YWxCYWxhbmNlBQ1rZWVwQXRCYWxhbmNlCQD8BwQFDnN0YWtpbmdBZGRyZXNzAgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkA2QQBBQR1c2RuCQBlAgUNYWN0dWFsQmFsYW5jZQUNa2VlcEF0QmFsYW5jZQUDbmlsCQD8BwQFDnN0YWtpbmdBZGRyZXNzAgNnZXQJAMwIAgkAZQIFDWtlZXBBdEJhbGFuY2UFDWFjdHVhbEJhbGFuY2UFA25pbAUDbmlsAwkAAAIFDXN0YWtpbmdBY3Rpb24FDXN0YWtpbmdBY3Rpb24FA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEKYWR2aXNlVXNlcgEHYWRkcmVzcwQLJHQwNzA3OTcxNDkJARJ1c2VyVmVzdGluZ0JhbGFuY2UBBQdhZGRyZXNzBAx0b3RhbFZlc3RpbmcIBQskdDA3MDc5NzE0OQJfMQQMYXZhaWxhYmxlTm93CAULJHQwNzA3OTcxNDkCXzIEBnBlckRheQgFCyR0MDcwNzk3MTQ5Al8zCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIRbWFya2V0c19hZGRyZXNzOiAFB2FkZHJlc3MCGCwgbWFya2V0c190b3RhbFZlc3Rpbmc6IAkApAMBBQx0b3RhbFZlc3RpbmcCFiwgbWFya2V0c19hdmFpbGFibGVOb3cJAKQDAQUMYXZhaWxhYmxlTm93AhAsIG1hcmtldHNfcGVyRGF5CQCkAwEFBnBlckRheQIXLCBtYXJrZXRzX3N0YXJ0SGVpZ2h0OiACATACFiwgbWFya2V0c19kYWlseUxpbWl0OiACATACGCwgbWFya2V0c19jbGFpbWVkVG9kYXk6IAIBMAIaLCBtYXJrZXRzX2F2YWlsYWJsZVRvZGF5OiACATACIiwgbWFya2V0c19nbG9iYWxseUF2YWlsYWJsZVRvZGF5OiACATACGiwgbWFya2V0c19tYXhUb3RhbFBlckRheTogAgEwAhQsIG1hcmtldHNfc2xvdEJ1c3k6IAIBMAIhLCBtYXJrZXRzX3N0YWtpbmdfcmV3YXJkc190b3RhbDogCQCkAwEJARB1c2VyVG90YWxSZXdhcmRzAQUHYWRkcmVzcwIjLCBtYXJrZXRzX3N0YWtpbmdfcmV3YXJkc19jbGFpbWVkOiAJAKQDAQkBC3ZhbHVlT3JFbHNlAgkAnwgBCQEXdXNlckNsYWltZWRSZXdhcmRzU3RvcmUBBQdhZGRyZXNzAAACGSwgbWFya2V0c19jb252ZXJ0ZWRUb0xQOiACATACFiwgbWFya2V0c192ZXN0blN0YXRlOiACBmxpbmVhcgEWd2l0aGRyYXdWZXN0ZWRJbnRlcm5hbAIHYWRkcmVzcwJ0bwQGY2hlY2tzCQEJb3BBbGxvd2VkAQIbbGlxdWlkYW9fYWxsX3dpdGhkcmF3VmVzdGVkAwkAAAIFBmNoZWNrcwUGY2hlY2tzBAskdDA4MTM5ODIwOQkBEnVzZXJWZXN0aW5nQmFsYW5jZQEFB2FkZHJlc3MEDHRvdGFsVmVzdGluZwgFCyR0MDgxMzk4MjA5Al8xBAxhdmFpbGFibGVOb3cIBQskdDA4MTM5ODIwOQJfMgQGcGVyRGF5CAULJHQwODEzOTgyMDkCXzMDCQBnAgAABQxhdmFpbGFibGVOb3cJAAIBAhFub3RoaW5nIGF2YWlsYWJsZQkAlAoCCQDOCAIJAM4IAgkBC3N5bmNTdGFraW5nAQUMYXZhaWxhYmxlTm93CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAnRvBQxhdmFpbGFibGVOb3cJANkEAQUEdXNkbgkAzAgCCQEId3JpdGVJbnQCCQERYWRkcmVzc1RvdGFsU3RvcmUBBQdhZGRyZXNzCQBlAgUMdG90YWxWZXN0aW5nBQxhdmFpbGFibGVOb3cJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBE3Zlc3RpbmdDbGFpbWVkU3RvcmUBBQdhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJARJjb252ZXJ0ZWRUb0xwU3RvcmUBBQdhZGRyZXNzCQDMCAIJAQhjaGFuZ2VCeQIFDnRvdGFsVVNETlN0b3JlCQEBLQEFDGF2YWlsYWJsZU5vdwUDbmlsAwkBCWlzRGVmaW5lZAEJARZ2ZXN0aW5nRGFpbHlTcGVlZFN0b3JlAQUHYWRkcmVzcwkAzAgCCQEId3JpdGVJbnQCCQEXdmVzdGluZ0xhc3RDbGFpbWVkU3RvcmUBBQdhZGRyZXNzBQZIRUlHSFQFA25pbAkAzggCCQDMCAIJAQh3cml0ZUludAIJARd2ZXN0aW5nTGFzdENsYWltZWRTdG9yZQEFB2FkZHJlc3MFBkhFSUdIVAkAzAgCCQEId3JpdGVJbnQCCQEWdmVzdGluZ0RhaWx5U3BlZWRTdG9yZQEFB2FkZHJlc3MJAGkCBQx0b3RhbFZlc3RpbmcFF0xJTkVBUl9WRVNUSU5HX01BWF9EQVlTBQNuaWwJARB1cGRhdGVSZXdhcmREYXRhAgUHYWRkcmVzcwkBAS0BBQxhdmFpbGFibGVOb3cFDGF2YWlsYWJsZU5vdwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgEdcGFydGlhbFdpdGhkcmF3VmVzdGVkSW50ZXJuYWwDB2FkZHJlc3MCdG8DYW10BAZjaGVja3MJAQlvcEFsbG93ZWQBAh9saXF1aWRhb19hbGxfd2l0aGRyYXdWZXN0ZWRBc0xQAwkAAAIFBmNoZWNrcwUGY2hlY2tzBAskdDA5Mjc2OTM0NgkBEnVzZXJWZXN0aW5nQmFsYW5jZQEFB2FkZHJlc3MEDHRvdGFsVmVzdGluZwgFCyR0MDkyNzY5MzQ2Al8xBAxhdmFpbGFibGVOb3cIBQskdDA5Mjc2OTM0NgJfMgQGcGVyRGF5CAULJHQwOTI3NjkzNDYCXzMDCQBmAgUDYW10BQx0b3RhbFZlc3RpbmcJAAIBAhJ0b28gbXVjaCByZXF1ZXN0ZWQJAJQKAgkAzggCCQDOCAIJAQtzeW5jU3Rha2luZwEFA2FtdAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQJ0bwUDYW10CQDZBAEFBHVzZG4JAMwIAgkBCHdyaXRlSW50AgkBEWFkZHJlc3NUb3RhbFN0b3JlAQUHYWRkcmVzcwkAZQIFDHRvdGFsVmVzdGluZwUDYW10CQDMCAIJAQtEZWxldGVFbnRyeQEJARN2ZXN0aW5nQ2xhaW1lZFN0b3JlAQUHYWRkcmVzcwkAzAgCCQELRGVsZXRlRW50cnkBCQESY29udmVydGVkVG9McFN0b3JlAQUHYWRkcmVzcwkAzAgCCQEId3JpdGVJbnQCCQEXdmVzdGluZ0xhc3RDbGFpbWVkU3RvcmUBBQdhZGRyZXNzBQZIRUlHSFQJAMwIAgkBCHdyaXRlSW50AgkBFnZlc3RpbmdEYWlseVNwZWVkU3RvcmUBBQdhZGRyZXNzCQBpAgkAZQIFDHRvdGFsVmVzdGluZwUDYW10BRdMSU5FQVJfVkVTVElOR19NQVhfREFZUwkAzAgCCQEIY2hhbmdlQnkCBQ50b3RhbFVTRE5TdG9yZQkBAS0BBQNhbXQFA25pbAkBEHVwZGF0ZVJld2FyZERhdGECBQdhZGRyZXNzCQEBLQEFA2FtdAUDYW10CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuABFzdGFraW5nU3RhcnRTdG9yZQINc3Rha2luZ0hlaWdodAEMZW5zdXJlU3Rha2VkAAkAZgIJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQR0aGlzBRFzdGFraW5nU3RhcnRTdG9yZQIlbmVlZCB0byBzdGFrZSBhbGwgZXhpc3RpbmcgdXNkbiBmaXJzdAAACgFpAQRpbml0AgRjb25mA25JZAMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECEm9ubHkgc2VsZiBjYW4gaW5pdAkAzAgCCQEQd3JpdGVDb25zdFN0cmluZwIFC2NvbmZpZ1N0b3JlBQRjb25mCQDMCAIJARB3cml0ZUNvbnN0U3RyaW5nAgIEdXNkbgUDbklkBQNuaWwBaQEOd2l0aGRyYXdWZXN0ZWQABAFjCQEMZW5zdXJlU3Rha2VkAAMJAAACBQFjBQFjBAdhZGRyZXNzCQClCAEIBQFpBmNhbGxlcgkBFndpdGhkcmF3VmVzdGVkSW50ZXJuYWwCBQdhZGRyZXNzBQdhZGRyZXNzCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBE3dpdGhkcmF3VmVzdGVkRm9yVG8CA2FjYwJ0bwQGY2hlY2tzAwkBCG1haW5Pbmx5AQUBaQkBDGVuc3VyZVN0YWtlZAAHAwkAAAIFBmNoZWNrcwUGY2hlY2tzCQEWd2l0aGRyYXdWZXN0ZWRJbnRlcm5hbAIFA2FjYwUCdG8JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEMY2xhaW1SZXdhcmRzAAQBYwMJAQxlbnN1cmVTdGFrZWQACQEJb3BBbGxvd2VkAQIZbGlxdWlkYW9fYWxsX2NsYWltUmV3YXJkcwcDCQAAAgUBYwUBYwQHYWRkcmVzcwkApQgBCAUBaQZjYWxsZXIEB3Jld2FyZHMJARt1c2VyU3Rha2luZ1Jld2FyZHNBdmFpbGFibGUBBQdhZGRyZXNzAwkAZwIAAAUHcmV3YXJkcwkAAgECEG5vdGhpbmcgdG8gY2xhaW0JAM4IAgkBC3N5bmNTdGFraW5nAQUHcmV3YXJkcwkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQdhZGRyZXNzBQdyZXdhcmRzCQDZBAEFBHVzZG4JAMwIAgkBCGNoYW5nZUJ5AgkBF3VzZXJDbGFpbWVkUmV3YXJkc1N0b3JlAQUHYWRkcmVzcwUHcmV3YXJkcwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBCmFkZFJld2FyZHMABAFjCQEMZW5zdXJlU3Rha2VkAAMJAAACBQFjBQFjAwkBAiE9AgkA2AQBCQEFdmFsdWUBCAkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQFBHVzZG4JAAIBAglVU0ROIG9ubHkJAM4IAgkBC3N5bmNTdGFraW5nAQAACQDMCAIJAQhjaGFuZ2VCeQIFEXRvdGFsU3Rha2luZ1N0b3JlCAkAkQMCCAUBaQhwYXltZW50cwAABmFtb3VudAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBFndpdGhkcmF3QWxsVmVzdGVkRm9yVG8CB2FkZHJlc3MCdG8EBmNoZWNrcwMDCQEIbWFpbk9ubHkBBQFpCQEJb3BBbGxvd2VkAQIhbGlxdWlkYW9fYWxsX3dpdGhkcmF3VmVzdGVkQXNTdXJmBwkBDGVuc3VyZVN0YWtlZAAHAwkAAAIFBmNoZWNrcwUGY2hlY2tzBA0kdDAxMTYxMDExNjgwCQESdXNlclZlc3RpbmdCYWxhbmNlAQUHYWRkcmVzcwQMdG90YWxWZXN0aW5nCAUNJHQwMTE2MTAxMTY4MAJfMQQMYXZhaWxhYmxlTm93CAUNJHQwMTE2MTAxMTY4MAJfMgQGcGVyRGF5CAUNJHQwMTE2MTAxMTY4MAJfMwMJAGcCAAAFDGF2YWlsYWJsZU5vdwkAAgECEm5vIHZlc3RpbmcgZW5hYmxlZAkAlAoCCQDOCAIJAM4IAgkBC3N5bmNTdGFraW5nAQUMYXZhaWxhYmxlTm93CQDMCAIJAQ5TY3JpcHRUcmFuc2ZlcgMJARFAZXh0ck5hdGl2ZSgxMDYyKQEFAnRvBQx0b3RhbFZlc3RpbmcJANkEAQUEdXNkbgkAzAgCCQELRGVsZXRlRW50cnkBCQERYWRkcmVzc1RvdGFsU3RvcmUBBQdhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJARdhZGRyZXNzVG90YWxTdG9yZUxlZ2FjeQEFB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBEXZlc3RpbmdTdGFydFN0b3JlAQUHYWRkcmVzcwkAzAgCCQELRGVsZXRlRW50cnkBCQETdmVzdGluZ0NsYWltZWRTdG9yZQEFB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBEmNvbnZlcnRlZFRvTHBTdG9yZQEFB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBFnZlc3RpbmdEYWlseVNwZWVkU3RvcmUBBQdhZGRyZXNzCQDMCAIJAQtEZWxldGVFbnRyeQEJARd2ZXN0aW5nTGFzdENsYWltZWRTdG9yZQEFB2FkZHJlc3MJAMwIAgkBCGNoYW5nZUJ5AgUOdG90YWxVU0ROU3RvcmUJAQEtAQUMdG90YWxWZXN0aW5nBQNuaWwJARB1cGRhdGVSZXdhcmREYXRhAgUHYWRkcmVzcwkBAS0BBQx0b3RhbFZlc3RpbmcFDHRvdGFsVmVzdGluZwkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARpwYXJ0aWFsV2l0aGRyYXdWZXN0ZWRGb3JUbwMDYWNjAnRvA2FtdAQHY2hlY2tzMAkBCG1haW5Pbmx5AQUBaQMJAAACBQdjaGVja3MwBQdjaGVja3MwCQEdcGFydGlhbFdpdGhkcmF3VmVzdGVkSW50ZXJuYWwDBQNhY2MFAnRvBQNhbXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKYWNjb3VudEZvcgEHYWRkcmVzcwQIYXR0YWNoZWQJAJEDAggFAWkIcGF5bWVudHMAAAQGY2hlY2tzAwMDCQEIbWFpbk9ubHkBBQFpCQEJb3BBbGxvd2VkAQIRbGlxdWlkYW9fYWxsX21vdmUHCQEMZW5zdXJlU3Rha2VkAAcJAQd0aHJvd0lmAgkBAiE9AgkA2AQBCQEFdmFsdWUBCAUIYXR0YWNoZWQHYXNzZXRJZAUEdXNkbgIVdXNkbiBtdXN0IGJlIGF0dGFjaGVkBwMJAAACBQZjaGVja3MFBmNoZWNrcwQNJHQwMTI4MDYxMjg3NgkBEnVzZXJWZXN0aW5nQmFsYW5jZQEFB2FkZHJlc3MEDHRvdGFsVmVzdGluZwgFDSR0MDEyODA2MTI4NzYCXzEEDGF2YWlsYWJsZU5vdwgFDSR0MDEyODA2MTI4NzYCXzIEBnBlckRheQgFDSR0MDEyODA2MTI4NzYCXzMJAM4IAgkAzggCCQELc3luY1N0YWtpbmcBAAAJAMwIAgkBCHdyaXRlSW50AgkBEWFkZHJlc3NUb3RhbFN0b3JlAQUHYWRkcmVzcwkAZAIFDHRvdGFsVmVzdGluZwgFCGF0dGFjaGVkBmFtb3VudAkAzAgCCQELRGVsZXRlRW50cnkBCQETdmVzdGluZ0NsYWltZWRTdG9yZQEFB2FkZHJlc3MJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBEmNvbnZlcnRlZFRvTHBTdG9yZQEFB2FkZHJlc3MJAMwIAgkBCHdyaXRlSW50AgkBF3Zlc3RpbmdMYXN0Q2xhaW1lZFN0b3JlAQUHYWRkcmVzcwUGSEVJR0hUCQDMCAIJAQh3cml0ZUludAIJARZ2ZXN0aW5nRGFpbHlTcGVlZFN0b3JlAQUHYWRkcmVzcwkAaQIJAGQCBQx0b3RhbFZlc3RpbmcIBQhhdHRhY2hlZAZhbW91bnQFF0xJTkVBUl9WRVNUSU5HX01BWF9EQVlTCQDMCAIJAQhjaGFuZ2VCeQIFDnRvdGFsVVNETlN0b3JlCAUIYXR0YWNoZWQGYW1vdW50BQNuaWwJARB1cGRhdGVSZXdhcmREYXRhAgUHYWRkcmVzcwgFCGF0dGFjaGVkBmFtb3VudAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQdhZHZpc2VVAQNhY2MJAJQKAgUDbmlsCQEKYWR2aXNlVXNlcgEFA2FjYwFpAQVzdGFrZQAKAQVhc0ludAEFdmFsdWUEByRtYXRjaDAFBXZhbHVlAwkAAQIFByRtYXRjaDACA0ludAQDaW50BQckbWF0Y2gwBQNpbnQJAAIBAgR2YToxBA1hY3R1YWxCYWxhbmNlCQDwBwIFBHRoaXMJANkEAQUEdXNkbgMJAQEhAQUOc3Rha2luZ0VuYWJsZWQJAAIBAhNzdGFraW5nIG5vdCBlbmFibGVkAwkBCWlzRGVmaW5lZAEJAJoIAgUEdGhpcwURc3Rha2luZ1N0YXJ0U3RvcmUJAAIBAg5hbHJlYWR5IHN0YWtlZAQDaW52CQD8BwQFDnN0YWtpbmdBZGRyZXNzAgNwdXQFA25pbAkAzAgCCQEPQXR0YWNoZWRQYXltZW50AgkA2QQBBQR1c2RuBQ1hY3R1YWxCYWxhbmNlBQNuaWwDCQAAAgUDaW52BQNpbnYEBnN0YWtlZAkBBWFzSW50AQkA/AcEBQ5zdGFraW5nQWRkcmVzcwIEaW5mbwUDbmlsBQNuaWwDCQAAAgUGc3Rha2VkBQZzdGFrZWQJAMwIAgkBDEludGVnZXJFbnRyeQIFDnRvdGFsVVNETlN0b3JlBQZzdGFrZWQJAMwIAgkBDEludGVnZXJFbnRyeQIFEXN0YWtpbmdTdGFydFN0b3JlBQZIRUlHSFQFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECdHgBBnZlcmlmeQAEBEJBU0UA6AcEC3F1b3J1bVJhdGlvCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUNY29uZmlnQWRkcmVzcwIVcHJvcG9zYWxfcXVvcnVtX3JhdGlvAiJwcm9wb3NhbFF1b3J1bVJhdGlvIGlzIG5vdCBkZWZpbmVkBAtwYXNzZWRSYXRpbwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFDWNvbmZpZ0FkZHJlc3MCFXByb3Bvc2FsX3Bhc3NlZF9yYXRpbwIlcHJvcG9zYWxUaHJlc2hvbGRSYXRpbyBpcyBub3QgZGVmaW5lZAQOZ1ZpcmVzQ29udHJhY3QJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUNY29uZmlnQWRkcmVzcwISZGl2aWRlbmRzX2NvbnRyYWN0AhVubyBkaXZpZGVuZHNfY29udHJhY3QCGmludmFsaWQgZGl2aWRlbmRzX2NvbnRyYWN0BA52b3RpbmdDb250cmFjdAkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCmCAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQ1jb25maWdBZGRyZXNzAg92b3RpbmdfY29udHJhY3QCEm5vIHZvdGluZ19jb250cmFjdAIXaW52YWxpZCB2b3RpbmdfY29udHJhY3QEAmlkCQDYBAEIBQJ0eAJpZAQIdm90ZXNZZXMJAQt2YWx1ZU9yRWxzZQIJAJoIAgUOdm90aW5nQ29udHJhY3QJAKwCAgINcHJvcG9zYWxfeWVzXwUCaWQAAAQHdm90ZXNObwkBC3ZhbHVlT3JFbHNlAgkAmggCBQ52b3RpbmdDb250cmFjdAkArAICAgxwcm9wb3NhbF9ub18FAmlkAAAEDnByb3Bvc2FsSGVpZ2h0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUOdm90aW5nQ29udHJhY3QJAKwCAgIQcHJvcG9zYWxfaGVpZ2h0XwUCaWQCF3Byb3Bvc2FsIG5vdCByZWdpc3RlcmVkBAphcHBseVN0YXJ0CQELdmFsdWVPckVsc2UCCQCaCAIFDnZvdGluZ0NvbnRyYWN0CQCsAgICFHByb3Bvc2FsX2FwcGx5c3RhcnRfBQJpZAAABAhhcHBseUVuZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQ52b3RpbmdDb250cmFjdAkArAICAhJwcm9wb3NhbF9hcHBseWVuZF8FAmlkAAAEC3RvdGFsR1ZpcmVzCQELdmFsdWVPckVsc2UCCQCaCAIFDnZvdGluZ0NvbnRyYWN0CQCsAgICEHByb3Bvc2FsX2d2aXJlc18FAmlkAAAEB2VuYWJsZWQJAQt2YWx1ZU9yRWxzZQIJAJsIAgUNY29uZmlnQWRkcmVzcwIdb3BfZ292ZXJuYW5jZV9hcHBseV90eF9wYXVzZWQHBAd2b3RlWWVzBQh2b3Rlc1llcwQGdm90ZU5vBQd2b3Rlc05vBAp0b3RhbFZvdGVzCQBkAgUHdm90ZVllcwUGdm90ZU5vBAloYXNRdW9ydW0JAGcCCQBpAgkAaAIFCnRvdGFsVm90ZXMFBEJBU0UFC3RvdGFsR1ZpcmVzBQtxdW9ydW1SYXRpbwQJaGFzUGFzc2VkCQBnAgkAaQIJAGgCBQd2b3RlWWVzBQRCQVNFBQp0b3RhbFZvdGVzBQtwYXNzZWRSYXRpbwQIdG9vRWFybHkJAGcCBQphcHBseVN0YXJ0BQZIRUlHSFQEB3Rvb0xhdGUJAGcCBQZIRUlHSFQFCGFwcGx5RW5kBAl0aW1lRGVidWcJAKwCAgkArAICCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgIRcHJvcG9zYWxIZWlnaHQgPSAJAKQDAQUOcHJvcG9zYWxIZWlnaHQCDywgYXBwbHlTdGFydCA9IAkApAMBBQphcHBseVN0YXJ0Ag0sIGFwcGx5RW5kID0gCQCkAwEFCGFwcGx5RW5kAgssIEhFSUdIVCA9IAkApAMBBQZIRUlHSFQECGJ5Vm90aW5nAwkBASEBBQdlbmFibGVkCQACAQIrdHggYXBwbGljYXRpb24gdGhyb3cgZ292ZXJuYW5jZSBub3QgZW5hYmxlZAMFCHRvb0Vhcmx5CQACAQkArAICAi5wcm9wb3NhbCBjYW4ndCBiZSBleGVjdXRlZCBhcyBpdCdzIHRvbyBlYXJseTogBQl0aW1lRGVidWcDBQd0b29MYXRlCQACAQkArAICAixwcm9wb3NhbCBjYW4ndCBiZSBleGVjdXRlZCBhcyBpdCdzIHRvbyBsYXRlOgUJdGltZURlYnVnAwkBASEBBQloYXNRdW9ydW0JAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAgtubyBxdW9ydW06IAIMdG90YWxWb3RlczogCQCkAwEFCnRvdGFsVm90ZXMCDywgdG90YWxHVmlyZXM6IAkApAMBBQt0b3RhbEdWaXJlcwIPLCBxdW9ydW1SYXRpbzogCQCkAwEFC3F1b3J1bVJhdGlvAwkBASEBBQloYXNQYXNzZWQJAAIBCQCsAgIJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAhdubyB0aHJlc2hvbGQgYWNoaWV2ZWQ6IAIJdm90ZVllczogCQCkAwEFB3ZvdGVZZXMCCiwgdm90ZU5vOiAJAKQDAQUGdm90ZU5vAg8sIHBhc3NlZFJhdGlvOiAJAKQDAQULcGFzc2VkUmF0aW8GAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tleQYFCGJ5Vm90aW5n3P+TjA==", "height": 2460774, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 3QWXjmidDNhAh46ZsgFJja4WrNgqGGi1B1p5ABmVCTqG Next: none Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4-func a (b) = if ((500001 >= b.fee))
5- then (b.feeAssetId == unit)
6- else false
4+func a (b,c) = if (!(isDefined(getString(this, b))))
5+ then StringEntry(b, c)
6+ else throw(("already initialized: " + b))
77
88
9-@Callable(c)
10-func call () = [IntegerEntry("int", 10)]
9+func d (b,c) = if (!(isDefined(getInteger(this, b))))
10+ then IntegerEntry(b, c)
11+ else throw(("already initialized: " + b))
1112
1213
13-@Verifier(d)
14-func e () = {
15- let f = d
16- if ($isInstanceOf(f, "InvokeScriptTransaction"))
14+func e (b,c) = if ((0 > c))
15+ then throw(((("writing negative value " + toString(c)) + " for key ") + b))
16+ else IntegerEntry(b, c)
17+
18+
19+func f (b,c) = e(b, (valueOrElse(getInteger(this, b), 0) + c))
20+
21+
22+let g = "config"
23+
24+let h = addressFromStringValue(getStringValue(this, g))
25+
26+let i = addressFromStringValue(getStringValue(this, "vestingConfig"))
27+
28+let j = {
29+ let k = getString(h, "oracle_address")
30+ if ($isInstanceOf(k, "String"))
1731 then {
18- let b = f
19- if (if ((addressFromRecipient(b.dApp) == this))
20- then a(b)
21- else false)
32+ let l = k
33+ addressFromString(l)
34+ }
35+ else unit
36+ }
37+
38+let m = height
39+
40+func n (o) = {
41+ let k = invoke(h, "opAllowed", ["usdn", o], nil)
42+ if ($isInstanceOf(k, "Boolean"))
43+ then {
44+ let p = k
45+ if (p)
2246 then true
23- else sigVerify(d.bodyBytes, d.proofs[0], d.senderPublicKey)
47+ else throw("not allowed")
2448 }
25- else sigVerify(d.bodyBytes, d.proofs[0], d.senderPublicKey)
49+ else throw("opAllowed: unexpected result type")
50+ }
51+
52+
53+func q (r) = if (contains(getStringValue(h, "main"), toString(r.caller)))
54+ then true
55+ else throw("only main can do")
56+
57+
58+func s (t,u) = if (t)
59+ then throw(u)
60+ else true
61+
62+
63+let v = getStringValue(this, "usdn")
64+
65+func w (x) = (x + "_usdn")
66+
67+
68+func y (x) = (x + "_USDN")
69+
70+
71+func z (x) = (x + "_claimed")
72+
73+
74+func A (x) = (x + "_converted_to_lp")
75+
76+
77+func B (x) = (x + "_vesting_start")
78+
79+
80+func C (x) = (x + "_vesting_last_claimed")
81+
82+
83+func D (x) = (x + "_vesting_daily_speed")
84+
85+
86+func E (c) = {
87+ let k = c
88+ if ($isInstanceOf(k, "(Int, Int, Int, String)"))
89+ then {
90+ let F = k
91+ F
92+ }
93+ else throw("wrong type, expected: (Int, Int, Int, String)")
94+ }
95+
96+
97+let G = "total_usdn"
98+
99+let H = valueOrElse(getInteger(this, G), 0)
100+
101+let I = "vesting_speed_coefficient"
102+
103+let J = valueOrElse(getInteger(this, "vesting_speed_coefficient"), 100)
104+
105+let K = "total_staking_usdn"
106+
107+func L (x) = (x + "_claimed_staking_usdn")
108+
109+
110+func M (x) = (x + "_adj")
111+
112+
113+let N = 3524705
114+
115+let O = valueOrElse(getInteger(this, "linear_vesting_max_days"), 500)
116+
117+func P (x) = {
118+ let Q = valueOrElse(getInteger(w(x)), 0)
119+ let R = ((valueOrElse(getInteger(y(x)), Q) - valueOrElse(getInteger(z(x)), 0)) - valueOrElse(getInteger(A(x)), 0))
120+ let k = getInteger(this, C(x))
121+ if ($isInstanceOf(k, "Int"))
122+ then {
123+ let S = k
124+ let T = valueOrErrorMessage(getInteger(D(x)), ("no speed for " + x))
125+ let U = fraction(T, J, 100)
126+ let V = fraction(U, (m - S), 1440)
127+ $Tuple3(R, min([V, R]), U)
128+ }
129+ else {
130+ let W = getInteger(B(x))
131+ if ($isInstanceOf(W, "Int"))
132+ then {
133+ let X = N
134+ let U = fraction((H / O), J, 100)
135+ let V = fraction(U, (m - X), 1440)
136+ $Tuple3(R, min([V, R]), U)
137+ }
138+ else $Tuple3(0, 0, 0)
139+ }
140+ }
141+
142+
143+func Y (x) = {
144+ let Z = P(x)
145+ let R = Z._1
146+ let aa = Z._2
147+ let U = Z._3
148+ R
149+ }
150+
151+
152+func ab (x) = {
153+ let ac = valueOrElse(getInteger(this, K), 0)
154+ let ad = valueOrElse(getInteger(M(x)), 0)
155+ if ((H == 0))
156+ then ad
157+ else (fraction(ac, Y(x), H) + ad)
158+ }
159+
160+
161+func ae (x) = {
162+ let af = valueOrElse(getInteger(L(x)), 0)
163+ let ag = (ab(x) - af)
164+ if ((0 > ag))
165+ then 0
166+ else ag
167+ }
168+
169+
170+func ah (x,ai) = {
171+ let aj = valueOrElse(getInteger(this, G), 0)
172+ let ak = valueOrElse(getInteger(this, K), 0)
173+ let al = valueOrElse(getInteger(this, M(x)), 0)
174+ let am = (aj + ai)
175+ let an = if ((aj == 0))
176+ then ak
177+ else fraction(ak, am, aj)
178+ let ao = if ((am == 0))
179+ then (al + ak)
180+ else (al - fraction(an, ai, am))
181+[IntegerEntry(K, an), IntegerEntry(M(x), ao)]
182+ }
183+
184+
185+let ap = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(h, ("staking_config_" + toString(this))), ("no staking address for " + toString(this)))), ("bad staking address for " + toString(this)))
186+
187+let aq = valueOrElse(getBoolean(h, ("staking_enabled_" + toString(this))), false)
188+
189+func ar (as) = {
190+ let at = assetBalance(this, fromBase58String(v))
191+ let au = if ((at == as))
192+ then nil
193+ else if (!(aq))
194+ then nil
195+ else if ((at > as))
196+ then invoke(ap, "put", nil, [AttachedPayment(fromBase58String(v), (at - as))])
197+ else invoke(ap, "get", [(as - at)], nil)
198+ if ((au == au))
199+ then nil
200+ else throw("Strict value is not equal to itself.")
201+ }
202+
203+
204+func av (x) = {
205+ let aw = P(x)
206+ let R = aw._1
207+ let aa = aw._2
208+ let U = aw._3
209+ ((((((((((((((((((((((((((((("markets_address: " + x) + ", markets_totalVesting: ") + toString(R)) + ", markets_availableNow") + toString(aa)) + ", markets_perDay") + toString(U)) + ", markets_startHeight: ") + "0") + ", markets_dailyLimit: ") + "0") + ", markets_claimedToday: ") + "0") + ", markets_availableToday: ") + "0") + ", markets_globallyAvailableToday: ") + "0") + ", markets_maxTotalPerDay: ") + "0") + ", markets_slotBusy: ") + "0") + ", markets_staking_rewards_total: ") + toString(ab(x))) + ", markets_staking_rewards_claimed: ") + toString(valueOrElse(getInteger(L(x)), 0))) + ", markets_convertedToLP: ") + "0") + ", markets_vestnState: ") + "linear")
210+ }
211+
212+
213+func ax (x,ay) = {
214+ let az = n("liquidao_all_withdrawVested")
215+ if ((az == az))
216+ then {
217+ let aA = P(x)
218+ let R = aA._1
219+ let aa = aA._2
220+ let U = aA._3
221+ if ((0 >= aa))
222+ then throw("nothing available")
223+ else $Tuple2(((ar(aa) ++ [ScriptTransfer(addressFromStringValue(ay), aa, fromBase58String(v)), e(y(x), (R - aa)), DeleteEntry(z(x)), DeleteEntry(A(x)), f(G, -(aa))]) ++ (if (isDefined(D(x)))
224+ then [e(C(x), m)]
225+ else ([e(C(x), m), e(D(x), (R / O))] ++ ah(x, -(aa))))), aa)
226+ }
227+ else throw("Strict value is not equal to itself.")
228+ }
229+
230+
231+func aB (x,ay,aC) = {
232+ let az = n("liquidao_all_withdrawVestedAsLP")
233+ if ((az == az))
234+ then {
235+ let aD = P(x)
236+ let R = aD._1
237+ let aa = aD._2
238+ let U = aD._3
239+ if ((aC > R))
240+ then throw("too much requested")
241+ else $Tuple2(((ar(aC) ++ [ScriptTransfer(addressFromStringValue(ay), aC, fromBase58String(v)), e(y(x), (R - aC)), DeleteEntry(z(x)), DeleteEntry(A(x)), e(C(x), m), e(D(x), ((R - aC) / O)), f(G, -(aC))]) ++ ah(x, -(aC))), aC)
242+ }
243+ else throw("Strict value is not equal to itself.")
244+ }
245+
246+
247+let aE = "stakingHeight"
248+
249+func aF () = (valueOrErrorMessage(getInteger(this, aE), "need to stake all existing usdn first") > 0)
250+
251+
252+@Callable(r)
253+func init (aG,aH) = if ((r.caller != this))
254+ then throw("only self can init")
255+ else [a(g, aG), a("usdn", aH)]
256+
257+
258+
259+@Callable(r)
260+func withdrawVested () = {
261+ let aI = aF()
262+ if ((aI == aI))
263+ then {
264+ let x = toString(r.caller)
265+ ax(x, x)
266+ }
267+ else throw("Strict value is not equal to itself.")
268+ }
269+
270+
271+
272+@Callable(r)
273+func withdrawVestedForTo (aJ,ay) = {
274+ let az = if (q(r))
275+ then aF()
276+ else false
277+ if ((az == az))
278+ then ax(aJ, ay)
279+ else throw("Strict value is not equal to itself.")
280+ }
281+
282+
283+
284+@Callable(r)
285+func claimRewards () = {
286+ let aI = if (aF())
287+ then n("liquidao_all_claimRewards")
288+ else false
289+ if ((aI == aI))
290+ then {
291+ let x = toString(r.caller)
292+ let aK = ae(x)
293+ if ((0 >= aK))
294+ then throw("nothing to claim")
295+ else (ar(aK) ++ [ScriptTransfer(addressFromStringValue(x), aK, fromBase58String(v)), f(L(x), aK)])
296+ }
297+ else throw("Strict value is not equal to itself.")
298+ }
299+
300+
301+
302+@Callable(r)
303+func addRewards () = {
304+ let aI = aF()
305+ if ((aI == aI))
306+ then if ((toBase58String(value(r.payments[0].assetId)) != v))
307+ then throw("USDN only")
308+ else (ar(0) ++ [f(K, r.payments[0].amount)])
309+ else throw("Strict value is not equal to itself.")
310+ }
311+
312+
313+
314+@Callable(r)
315+func withdrawAllVestedForTo (x,ay) = {
316+ let az = if (if (q(r))
317+ then n("liquidao_all_withdrawVestedAsSurf")
318+ else false)
319+ then aF()
320+ else false
321+ if ((az == az))
322+ then {
323+ let aL = P(x)
324+ let R = aL._1
325+ let aa = aL._2
326+ let U = aL._3
327+ if ((0 >= aa))
328+ then throw("no vesting enabled")
329+ else $Tuple2(((ar(aa) ++ [ScriptTransfer(addressFromStringValue(ay), R, fromBase58String(v)), DeleteEntry(y(x)), DeleteEntry(w(x)), DeleteEntry(B(x)), DeleteEntry(z(x)), DeleteEntry(A(x)), DeleteEntry(D(x)), DeleteEntry(C(x)), f(G, -(R))]) ++ ah(x, -(R))), R)
330+ }
331+ else throw("Strict value is not equal to itself.")
332+ }
333+
334+
335+
336+@Callable(r)
337+func partialWithdrawVestedForTo (aJ,ay,aC) = {
338+ let aM = q(r)
339+ if ((aM == aM))
340+ then aB(aJ, ay, aC)
341+ else throw("Strict value is not equal to itself.")
342+ }
343+
344+
345+
346+@Callable(r)
347+func accountFor (x) = {
348+ let aN = r.payments[0]
349+ let az = if (if (if (q(r))
350+ then n("liquidao_all_move")
351+ else false)
352+ then aF()
353+ else false)
354+ then s((toBase58String(value(aN.assetId)) != v), "usdn must be attached")
355+ else false
356+ if ((az == az))
357+ then {
358+ let aO = P(x)
359+ let R = aO._1
360+ let aa = aO._2
361+ let U = aO._3
362+ ((ar(0) ++ [e(y(x), (R + aN.amount)), DeleteEntry(z(x)), DeleteEntry(A(x)), e(C(x), m), e(D(x), ((R + aN.amount) / O)), f(G, aN.amount)]) ++ ah(x, aN.amount))
363+ }
364+ else throw("Strict value is not equal to itself.")
365+ }
366+
367+
368+
369+@Callable(r)
370+func adviseU (aJ) = $Tuple2(nil, av(aJ))
371+
372+
373+
374+@Callable(r)
375+func stake () = {
376+ func aP (c) = {
377+ let k = c
378+ if ($isInstanceOf(k, "Int"))
379+ then {
380+ let aQ = k
381+ aQ
382+ }
383+ else throw("va:1")
384+ }
385+
386+ let at = assetBalance(this, fromBase58String(v))
387+ if (!(aq))
388+ then throw("staking not enabled")
389+ else if (isDefined(getInteger(this, aE)))
390+ then throw("already staked")
391+ else {
392+ let aR = invoke(ap, "put", nil, [AttachedPayment(fromBase58String(v), at)])
393+ if ((aR == aR))
394+ then {
395+ let aS = aP(invoke(ap, "info", nil, nil))
396+ if ((aS == aS))
397+ then [IntegerEntry(G, aS), IntegerEntry(aE, m)]
398+ else throw("Strict value is not equal to itself.")
399+ }
400+ else throw("Strict value is not equal to itself.")
401+ }
402+ }
403+
404+
405+@Verifier(aT)
406+func aU () = {
407+ let aV = 1000
408+ let aW = valueOrErrorMessage(getInteger(h, "proposal_quorum_ratio"), "proposalQuorumRatio is not defined")
409+ let aX = valueOrErrorMessage(getInteger(h, "proposal_passed_ratio"), "proposalThresholdRatio is not defined")
410+ let aY = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(h, "dividends_contract"), "no dividends_contract")), "invalid dividends_contract")
411+ let aZ = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(h, "voting_contract"), "no voting_contract")), "invalid voting_contract")
412+ let ba = toBase58String(aT.id)
413+ let bb = valueOrElse(getInteger(aZ, ("proposal_yes_" + ba)), 0)
414+ let bc = valueOrElse(getInteger(aZ, ("proposal_no_" + ba)), 0)
415+ let bd = valueOrErrorMessage(getInteger(aZ, ("proposal_height_" + ba)), "proposal not registered")
416+ let be = valueOrElse(getInteger(aZ, ("proposal_applystart_" + ba)), 0)
417+ let bf = valueOrElse(getInteger(aZ, ("proposal_applyend_" + ba)), 0)
418+ let bg = valueOrElse(getInteger(aZ, ("proposal_gvires_" + ba)), 0)
419+ let bh = valueOrElse(getBoolean(h, "op_governance_apply_tx_paused"), false)
420+ let bi = bb
421+ let bj = bc
422+ let bk = (bi + bj)
423+ let bl = (((bk * aV) / bg) >= aW)
424+ let bm = (((bi * aV) / bk) >= aX)
425+ let bn = (be >= m)
426+ let bo = (m >= bf)
427+ let bp = ((((((("proposalHeight = " + toString(bd)) + ", applyStart = ") + toString(be)) + ", applyEnd = ") + toString(bf)) + ", HEIGHT = ") + toString(m))
428+ let bq = if (!(bh))
429+ then throw("tx application throw governance not enabled")
430+ else if (bn)
431+ then throw(("proposal can't be executed as it's too early: " + bp))
432+ else if (bo)
433+ then throw(("proposal can't be executed as it's too late:" + bp))
434+ else if (!(bl))
435+ then throw((((((("no quorum: " + "totalVotes: ") + toString(bk)) + ", totalGVires: ") + toString(bg)) + ", quorumRatio: ") + toString(aW)))
436+ else if (!(bm))
437+ then throw((((((("no threshold achieved: " + "voteYes: ") + toString(bi)) + ", voteNo: ") + toString(bj)) + ", passedRatio: ") + toString(aX)))
438+ else true
439+ if (sigVerify(aT.bodyBytes, aT.proofs[0], aT.senderPublicKey))
440+ then true
441+ else bq
26442 }
27443

github/deemru/w8io/169f3d6 
45.70 ms