tx · HXzVhsdKRxntrQdQQBz2pzi6PodpDPfGYu5y9oMJZ7so

3N8n6BtTBKRZBoPuMzaPBH9FyJhfv9xDFJH:  -0.01400000 Waves

2022.07.26 15:33 [2156766] smart account 3N8n6BtTBKRZBoPuMzaPBH9FyJhfv9xDFJH > SELF 0.00000000 Waves

{ "type": 13, "id": "HXzVhsdKRxntrQdQQBz2pzi6PodpDPfGYu5y9oMJZ7so", "fee": 1400000, "feeAssetId": null, "timestamp": 1658838899968, "version": 2, "chainId": 84, "sender": "3N8n6BtTBKRZBoPuMzaPBH9FyJhfv9xDFJH", "senderPublicKey": "4hcnYaYoB2XaCzyJ7wfePpG7EfTd6st6aCAhkskJ9cQ5", "proofs": [ "A6GuTv4upxPaPR7VnH4Ks2tjBnVF9JqPxeZkecz1PoEDgxFsh89Ere27HU4xch8CAYHJmiUvYrjXUmdYEUo42yu" ], "script": "base64:BgIeCAISABIAEgASABIAEgASABIAEgASABIAEgASABIAHQAKdXNkdFVzZG5MUAEg202DNWRHG5bvnwwvoM991XmdkujhmzUPwT/MewJwKQsADXVzZHRVc2RuTFBUQ0kBIAqBzantQGEdmEq4Oth6BGhTCCbAyZjxYcEpfvod3iryAAh3eFVzZG5MUAEgG7mhj3vOTKXN+s5HyQsWjk32W97C65PB1sWo0bGqCxwAC3d4VXNkbkxQVENJASC37N3mGwJ72rYTh/1V0NY8tseiNz1LiL3Be29IRACYLwAKdXNkY1VzZG5MUAEgA2kB/BsKmAqIzY/+EVmFhSaRMrNakvwm6Uhd05/eXHYADXVzZGNVc2RuTFBUQ0kBIPYCN93Tn++GRS9cI0cPlV/ROm2hK8KntJtUQQdS9W7GAAp1c2RjVXNkdExQASDG+KR0G1ZIVhCfkH7CM/Qxa4sESiwr/ZlLh/WFm3zkjAANdXNkY1VzZHRMUFRDSQEgAsaFfARLM8fi74dnh1L7VYL9s9+EI7agWsU13c9XSv4ADHB1enpsZVVzZG5MUAEgwzPGdM4jqqQi30kk5cSZa3gEsHdWgnT/uNEdSo0c0Z4AD3B1enpsZVVzZG5MUFRDSQEgvJT6zwcHAR1Xf2NHmqYN/fUF18bEe85zWm98KZKIR7UABHd4SWQBIJMBHKupx24lV85mnnG2vapr+DzoWAsq7tmgTrs83BSxAA5rZXlTcG9uc29yc2hpcAITU3BvbnNvcnNoaXBfaW5fbG9jawAJaXNTdG9wcGVkBwAJa2V5U3Rha2VkAglTVEFLRURfTFAAC2tleUNvbXBvdW5kAg1Gcm9tX0NvbXBvdW5kABFrZXl3eFVzZG5Db21wb3VuZAIQV1hfVVNETl9jb21wb3VuZAAJa2V5V1hVU0ROAgdXWF9VU0ROABNrZXlVc2RjVXNkbkNvbXBvdW5kAhJVU0RDX1VTRE5fY29tcG91bmQAC2tleVVTRENVU0ROAglVU0RDX1VTRE4AE2tleVVzZGNVc2R0Q29tcG91bmQCElVTRENfVVNEVF9jb21wb3VuZAALa2V5VVNEQ1VTRFQCCVVTRENfVVNEVAAVa2V5UHV6emxlVXNkbkNvbXBvdW5kAhRQVVpaTEVfVVNETl9jb21wb3VuZAANa2V5UFVaWkxFVVNETgILUFVaWkxFX1VTRE4AA2RlZgCAwtcvAAdmZWVQZXJjAIDIr6AlAAJ0dwEaAVREB1pAb+J/pyN/gYjTyGw4FQkpHHvIQAIABm9yYWNsZQEaAVThpQZGwrspHkLD7S7yKY9anhD69jC7CuAACXN0YWtlUG9vbAIjM014M3ptWHJNY0xGQ2FmTXVQdFhBelI0WlBWZVpZYjZxTHoBDGNoZWNrQWRkcmVzcwEGY2FsbGVyAwkBAiE9AgUGY2FsbGVyBQZvcmFjbGUHBg4BaQEMaW5pdFVzZHRVc2RuAAQCcG0JAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQCYW0IBQJwbQZhbW91bnQDCQECIT0CCAUCcG0HYXNzZXRJZAUKdXNkdFVzZG5MUAkAAgECEFVuZXhwZWN0ZWQgdG9rZW4EAXMJAPwHBAkBB0FkZHJlc3MBARoBVFlAJ5NrSynuvrGhDubcQLjPpI16DOu1DwIFc3Rha2UFA25pbAkAzAgCBQJwbQUDbmlsAwkAAAIFAXMFAXMEA3VwZAkBDEludGVnZXJFbnRyeQIFCWtleVN0YWtlZAUCYW0EBHVwZEsJAQxJbnRlZ2VyRW50cnkCBQtrZXlDb21wb3VuZAAACQDMCAIFA3VwZAkAzAgCBQR1cGRLBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEId2l0aGRyYXcABAdwYXltZW50CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEAmFtCAUHcGF5bWVudAZhbW91bnQEAmlkCAUHcGF5bWVudAdhc3NldElkAwkAAAIFAmlkBQ11c2R0VXNkbkxQVENJBAlUQ0lBbW91bnQEByRtYXRjaDAJAOwHAQUNdXNkdFVzZG5MUFRDSQMJAAECBQckbWF0Y2gwAgVBc3NldAQBcQUHJG1hdGNoMAgFAXEIcXVhbnRpdHkAAAQOdXNkblVzZHRTdGFrZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUJa2V5U3Rha2VkAAAEDGZvclNpbmdsZVRDSQkAawMFDnVzZG5Vc2R0U3Rha2VkBQNkZWYFCVRDSUFtb3VudAQQdXNkbkxwVG9XaXRoZHJhdwkAawMFDGZvclNpbmdsZVRDSQUCYW0FA2RlZgQHdW5zdGFrZQkA/AcECQEHQWRkcmVzcwEBGgFUWUAnk2tLKe6+saEO5txAuM+kjXoM67UPAgd1bnN0YWtlCQDMCAICLEZtNHFjenU2UGVwejhLVWhoM0hlYjZMZVRWZnBTTVg1dnZOZ3czeDc2NENTCQDMCAIFEHVzZG5McFRvV2l0aGRyYXcFA25pbAUDbmlsBANmZWUJAGsDBRB1c2RuTHBUb1dpdGhkcmF3BQNkZWYFB2ZlZVBlcmMEA2JybgkBBEJ1cm4CBQ11c2R0VXNkbkxQVENJBQJhbQMJAAACBQNicm4FA2JybgQSdXBkYXRlVXNkbkxwU3Rha2VkCQEMSW50ZWdlckVudHJ5AgUJa2V5U3Rha2VkCQBlAgUOdXNkblVzZHRTdGFrZWQFEHVzZG5McFRvV2l0aGRyYXcEEXVzZG5McGZlZVRyYW5zZmVyCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFAnR3BQNmZWUFCnVzZHRVc2RuTFAECHRyYW5zZmVyCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAGUCBRB1c2RuTHBUb1dpdGhkcmF3BQNmZWUFCnVzZHRVc2RuTFAJAMwIAgURdXNkbkxwZmVlVHJhbnNmZXIJAMwIAgUIdHJhbnNmZXIJAMwIAgUSdXBkYXRlVXNkbkxwU3Rha2VkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQAAAgUCaWQFC3d4VXNkbkxQVENJBAd3eFRjaUFtBAckbWF0Y2gwCQDsBwEFC3d4VXNkbkxQVENJAwkAAQIFByRtYXRjaDACBUFzc2V0BAFxBQckbWF0Y2gwCAUBcQhxdWFudGl0eQAABAx3eFVzZG5TdGFrZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUJa2V5V1hVU0ROAAAECnNpbmdsZVdYTFAJAGsDBQx3eFVzZG5TdGFrZWQFA2RlZgUHd3hUY2lBbQQOd3hMcFRvV2l0aGRyYXcJAGsDBQpzaW5nbGVXWExQBQJhbQUDZGVmBANmZWUJAGsDBQ53eExwVG9XaXRoZHJhdwUDZGVmBQdmZWVQZXJjBAd1bnN0YWtlCQD8BwQJAQdBZGRyZXNzAQEaAVRZQCeTa0sp7r6xoQ7m3EC4z6SNegzrtQ8CB3Vuc3Rha2UJAMwIAgIsMnNFQlZjeURGSzJMdXBDZjdNZUE0dnpIaEdLNERDMVdqYktHUUNMWURxaWIJAMwIAgUOd3hMcFRvV2l0aGRyYXcFA25pbAUDbmlsAwkAAAIFB3Vuc3Rha2UFB3Vuc3Rha2UED3d4THBGZWVUcmFuc2ZlcgkBDlNjcmlwdFRyYW5zZmVyAwkBB0FkZHJlc3MBBQJ0dwUDZmVlBQh3eFVzZG5MUAQMd3hMcFRyYW5zZmVyCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIJAGUCBQJhbQUDZmVlBQh3eFVzZG5MUAQQdXBkYXRlV3hMcFN0YWtlZAkBDEludGVnZXJFbnRyeQIFCWtleVdYVVNETgkAZQIFDHd4VXNkblN0YWtlZAUOd3hMcFRvV2l0aGRyYXcEC2J1cm5XeExwVGNpCQEEQnVybgIFCHd4VXNkbkxQBQJhbQMJAAACBQtidXJuV3hMcFRjaQULYnVybld4THBUY2kJAMwIAgUPd3hMcEZlZVRyYW5zZmVyCQDMCAIFDHd4THBUcmFuc2ZlcgkAzAgCBRB1cGRhdGVXeExwU3Rha2VkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQAAAgUCaWQFDXVzZGNVc2RuTFBUQ0kEC3VzZGNVc2RuVENJBAckbWF0Y2gwCQDsBwEFDXVzZGNVc2RuTFBUQ0kDCQABAgUHJG1hdGNoMAIFQXNzZXQEAXEFByRtYXRjaDAIBQFxCHF1YW50aXR5AAAEDnVzZGNVc2RuU3Rha2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFC2tleVVTRENVU0ROAAAEDHNpbmdsZVVzZGNMUAkAawMFC3VzZGNVc2RuVENJBQNkZWYFDnVzZGNVc2RuU3Rha2VkBBB1c2RjTHBUb1dpdGhkcmF3CQBrAwUMc2luZ2xlVXNkY0xQBQJhbQUDZGVmBANmZWUJAGsDBRB1c2RjTHBUb1dpdGhkcmF3BQNkZWYFB2ZlZVBlcmMEDXVzZGNVc2RuTFBGZWUJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUCdHcFA2ZlZQUKdXNkY1VzZG5MUAQQdXNkY1VzZG5UcmFuc2ZlcgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyCQBlAgUCYW0FA2ZlZQUKdXNkY1VzZG5MUAQWdXBkYXRlVXNkY1VzZG5McFN0YWtlZAkBDEludGVnZXJFbnRyeQIFC2tleVVTRENVU0ROCQBlAgUOdXNkY1VzZG5TdGFrZWQFEHVzZGNMcFRvV2l0aGRyYXcEEWJ1cm5Vc2RjVXNkbkxwVGNpCQEEQnVybgIFDXVzZGNVc2RuTFBUQ0kFAmFtAwkAAAIFEWJ1cm5Vc2RjVXNkbkxwVGNpBRFidXJuVXNkY1VzZG5McFRjaQkAzAgCBQ11c2RjVXNkbkxQRmVlCQDMCAIFEHVzZGNVc2RuVHJhbnNmZXIJAMwIAgUWdXBkYXRlVXNkY1VzZG5McFN0YWtlZAUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAwkAAAIFAmlkBQ11c2RjVXNkdExQVENJBAt1c2RjVXNkdFRjaQQHJG1hdGNoMAkA7AcBBQ11c2RjVXNkbkxQVENJAwkAAQIFByRtYXRjaDACBUFzc2V0BAFxBQckbWF0Y2gwCAUBcQhxdWFudGl0eQAABA51c2RjVXNkdFN0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQtrZXlVU0RDVVNEVAAABA5zaW5nbGVVc2RjVXNkdAkAawMFC3VzZGNVc2R0VGNpBQNkZWYFDnVzZGNVc2R0U3Rha2VkBBR1c2RjVXNkdExwVG9XaXRoZHJhdwkAawMFDnNpbmdsZVVzZGNVc2R0BQJhbQUDZGVmBANmZWUJAGsDBRR1c2RjVXNkdExwVG9XaXRoZHJhdwUDZGVmBQdmZWVQZXJjBA11c2RjVXNkdExQRmVlCQEOU2NyaXB0VHJhbnNmZXIDCQEHQWRkcmVzcwEFAnR3BQNmZWUFCnVzZGNVc2R0TFAEEHVzZGNVc2R0VHJhbnNmZXIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgkAZQIFAmFtBQNmZWUFCnVzZGNVc2R0TFAEFnVwZGF0ZVVzZGNVc2R0THBTdGFrZWQJAQxJbnRlZ2VyRW50cnkCBQtrZXlVU0RDVVNEVAkAZQIFDnVzZGNVc2R0U3Rha2VkBRR1c2RjVXNkdExwVG9XaXRoZHJhdwQLYnVybld4THBUY2kJAQRCdXJuAgUNdXNkY1VzZG5MUFRDSQUCYW0DCQAAAgULYnVybld4THBUY2kFC2J1cm5XeExwVGNpCQDMCAIFDXVzZGNVc2R0TFBGZWUJAMwIAgUQdXNkY1VzZHRUcmFuc2ZlcgkAzAgCBRZ1cGRhdGVVc2RjVXNkdExwU3Rha2VkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQAAAgUCaWQFD3B1enpsZVVzZG5MUFRDSQQNcHV6emxlVXNkblRjaQQHJG1hdGNoMAkA7AcBBQ9wdXp6bGVVc2RuTFBUQ0kDCQABAgUHJG1hdGNoMAIFQXNzZXQEAXEFByRtYXRjaDAIBQFxCHF1YW50aXR5AAAEDnB1enpsZUxQU3Rha2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFDWtleVBVWlpMRVVTRE4AAAQQc2luZ2xlUHV6emxlVXNkbgkAawMFDXB1enpsZVVzZG5UY2kFA2RlZgUOcHV6emxlTFBTdGFrZWQEEnB1enpsZVVzZG5XaXRoZHJhdwkAawMFEHNpbmdsZVB1enpsZVVzZG4FAmFtBQNkZWYEA2ZlZQkAawMFEnB1enpsZVVzZG5XaXRoZHJhdwUDZGVmBQdmZWVQZXJjBA9wdXp6bGVVc2RuTFBGZWUJAQ5TY3JpcHRUcmFuc2ZlcgMJAQdBZGRyZXNzAQUCdHcFA2ZlZQUMcHV6emxlVXNkbkxQBBJwdXp6bGVVc2RuVHJhbnNmZXIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgkAZQIFAmFtBQNmZWUFDHB1enpsZVVzZG5MUAQYdXBkYXRlUHV6emxlVXNkbkxwU3Rha2VkCQEMSW50ZWdlckVudHJ5AgUNa2V5UFVaWkxFVVNETgkAZQIFDnB1enpsZUxQU3Rha2VkBRJwdXp6bGVVc2RuV2l0aGRyYXcEDWJ1cm5QdXp6bGVUQ0kJAQRCdXJuAgUPcHV6emxlVXNkbkxQVENJBQJhbQMJAAACBQ1idXJuUHV6emxlVENJBQ1idXJuUHV6emxlVENJCQDMCAIFD3B1enpsZVVzZG5MUEZlZQkAzAgCBRJwdXp6bGVVc2RuVHJhbnNmZXIJAMwIAgUYdXBkYXRlUHV6emxlVXNkbkxwU3Rha2VkBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAg1JbnZhbGlkIGFzc2V0AWkBD2RlcG9zaXRXeFVzZG5MUAAEA3BtdAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAlwbXRBbW91bnQIBQNwbXQGYW1vdW50AwkBAiE9AggFA3BtdAdhc3NldElkBQh3eFVzZG5MUAkAAgECG2F0dGFjaCBXWFVTRE5MUCB0b2tlbnMgb25seQMFCWlzU3RvcHBlZAkAAgECGXNtYXJ0IGNvbnRyYWN0IGlzIG9uIGxvY2sECHRrU3Rha2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFCWtleVdYVVNETgAABAt0b3RhbElzc3VlZAQHJG1hdGNoMAkA7AcBBQt3eFVzZG5MUFRDSQMJAAECBQckbWF0Y2gwAgVBc3NldAQFYXNzZXQFByRtYXRjaDAIBQVhc3NldAhxdWFudGl0eQkAAgECEENhbid0IGZpbmQgYXNzZXQEA29uZQkAawMFC3RvdGFsSXNzdWVkAIDC1y8FCHRrU3Rha2VkBAd0b0lzc3VlCQBrAwUJcG10QW1vdW50BQNvbmUAgMLXLwQLdXBkYXRlU3RhdGUJAQxJbnRlZ2VyRW50cnkCBQlrZXlXWFVTRE4JAGQCBQh0a1N0YWtlZAUJcG10QW1vdW50BAdMUHN0YWtlCQD8BwQJAQdBZGRyZXNzAQEaAVRZQCeTa0sp7r6xoQ7m3EC4z6SNegzrtQ8CBXN0YWtlBQNuaWwJAMwIAgUDcG10BQNuaWwDCQAAAgUHTFBzdGFrZQUHTFBzdGFrZQQHTFBJc3N1ZQkBB1JlaXNzdWUDBQt3eFVzZG5MUFRDSQUHdG9Jc3N1ZQYECHRyYW5zZmVyCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFB3RvSXNzdWUFC3d4VXNkbkxQVENJCQDMCAIFB0xQSXNzdWUJAMwIAgUIdHJhbnNmZXIJAMwIAgULdXBkYXRlU3RhdGUFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARFkZXBvc2l0VXNkdFVzZG5MUAAEA3BtdAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAlwbXRBbW91bnQIBQNwbXQGYW1vdW50AwkBAiE9AggFA3BtdAdhc3NldElkBQp1c2R0VXNkbkxQCQACAQIdYXR0YWNoIFVTRFRVU0ROTFAgdG9rZW5zIG9ubHkDBQlpc1N0b3BwZWQJAAIBAhlzbWFydCBjb250cmFjdCBpcyBvbiBsb2NrBAh0a1N0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQlrZXlTdGFrZWQAAAQLdG90YWxJc3N1ZWQEByRtYXRjaDAJAOwHAQUNdXNkdFVzZG5MUFRDSQMJAAECBQckbWF0Y2gwAgVBc3NldAQFYXNzZXQFByRtYXRjaDAIBQVhc3NldAhxdWFudGl0eQkAAgECEENhbid0IGZpbmQgYXNzZXQEDGZyb21Db21wb3VuZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQtrZXlDb21wb3VuZAAABAZmb3JPbmUJAGsDBQt0b3RhbElzc3VlZACAwtcvBQh0a1N0YWtlZAQHdG9Jc3N1ZQkAawMFCXBtdEFtb3VudAUGZm9yT25lAIDC1y8EC3VwZGF0ZVN0YXRlCQEMSW50ZWdlckVudHJ5AgUJa2V5U3Rha2VkCQBkAgUIdGtTdGFrZWQFCXBtdEFtb3VudAQHTFBzdGFrZQkA/AcECQEHQWRkcmVzcwEBGgFUWUAnk2tLKe6+saEO5txAuM+kjXoM67UPAgVzdGFrZQUDbmlsCQDMCAIFA3BtdAUDbmlsAwkAAAIFB0xQc3Rha2UFB0xQc3Rha2UEB0xQSXNzdWUJAQdSZWlzc3VlAwUNdXNkdFVzZG5MUFRDSQUHdG9Jc3N1ZQYECHRyYW5zZmVyCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFB3RvSXNzdWUFDXVzZHRVc2RuTFBUQ0kJAMwIAgUHTFBJc3N1ZQkAzAgCBQh0cmFuc2ZlcgkAzAgCBQt1cGRhdGVTdGF0ZQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEWRlcG9zaXRVc2RjVXNkbkxQAAQDcG10CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAECXBtdEFtb3VudAgFA3BtdAZhbW91bnQDCQECIT0CCAUDcG10B2Fzc2V0SWQFCnVzZGNVc2RuTFAJAAIBAh1hdHRhY2ggVVNEQ1VTRE5MUCB0b2tlbnMgb25seQMFCWlzU3RvcHBlZAkAAgECGXNtYXJ0IGNvbnRyYWN0IGlzIG9uIGxvY2sECHRrU3Rha2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFC2tleVVTRENVU0ROAAAEC3RvdGFsSXNzdWVkBAckbWF0Y2gwCQDsBwEFDXVzZGNVc2RuTFBUQ0kDCQABAgUHJG1hdGNoMAIFQXNzZXQEBWFzc2V0BQckbWF0Y2gwCAUFYXNzZXQIcXVhbnRpdHkJAAIBAhBDYW4ndCBmaW5kIGFzc2V0BAxmcm9tQ29tcG91bmQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUTa2V5VXNkY1VzZG5Db21wb3VuZAAABAZmb3JPbmUJAGsDBQt0b3RhbElzc3VlZACAwtcvBQh0a1N0YWtlZAQHdG9Jc3N1ZQkAawMFCXBtdEFtb3VudAUGZm9yT25lAIDC1y8EC3VwZGF0ZVN0YXRlCQEMSW50ZWdlckVudHJ5AgULa2V5VVNEQ1VTRE4JAGQCBQh0a1N0YWtlZAUJcG10QW1vdW50BAdMUHN0YWtlCQD8BwQJAQdBZGRyZXNzAQEaAVRZQCeTa0sp7r6xoQ7m3EC4z6SNegzrtQ8CBXN0YWtlBQNuaWwJAMwIAgUDcG10BQNuaWwDCQAAAgUHTFBzdGFrZQUHTFBzdGFrZQQHTFBJc3N1ZQkBB1JlaXNzdWUDBQ11c2RjVXNkbkxQVENJBQd0b0lzc3VlBgQIdHJhbnNmZXIJAQ5TY3JpcHRUcmFuc2ZlcgMIBQFpBmNhbGxlcgUHdG9Jc3N1ZQUNdXNkY1VzZG5MUFRDSQkAzAgCBQdMUElzc3VlCQDMCAIFCHRyYW5zZmVyCQDMCAIFC3VwZGF0ZVN0YXRlBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQERZGVwb3NpdFVzZGNVc2R0TFAABANwbXQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQJcG10QW1vdW50CAUDcG10BmFtb3VudAMJAQIhPQIIBQNwbXQHYXNzZXRJZAUKdXNkY1VzZHRMUAkAAgECHWF0dGFjaCBVU0RDVVNEVExQIHRva2VucyBvbmx5AwUJaXNTdG9wcGVkCQACAQIZc21hcnQgY29udHJhY3QgaXMgb24gbG9jawQIdGtTdGFrZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwULa2V5VVNEQ1VTRFQAAAQLdG90YWxJc3N1ZWQEByRtYXRjaDAJAOwHAQUNdXNkY1VzZHRMUFRDSQMJAAECBQckbWF0Y2gwAgVBc3NldAQFYXNzZXQFByRtYXRjaDAIBQVhc3NldAhxdWFudGl0eQkAAgECEENhbid0IGZpbmQgYXNzZXQEDGZyb21Db21wb3VuZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRNrZXlVc2RjVXNkdENvbXBvdW5kAAAEBmZvck9uZQkAawMFC3RvdGFsSXNzdWVkAIDC1y8FCHRrU3Rha2VkBAd0b0lzc3VlCQBrAwUJcG10QW1vdW50BQZmb3JPbmUAgMLXLwQLdXBkYXRlU3RhdGUJAQxJbnRlZ2VyRW50cnkCBQtrZXlVU0RDVVNEVAkAZAIFCHRrU3Rha2VkBQlwbXRBbW91bnQEB0xQc3Rha2UJAPwHBAkBB0FkZHJlc3MBARoBVFlAJ5NrSynuvrGhDubcQLjPpI16DOu1DwIFc3Rha2UFA25pbAkAzAgCBQNwbXQFA25pbAMJAAACBQdMUHN0YWtlBQdMUHN0YWtlBAdMUElzc3VlCQEHUmVpc3N1ZQMFDXVzZGNVc2R0TFBUQ0kFB3RvSXNzdWUGBAh0cmFuc2ZlcgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQd0b0lzc3VlBQ11c2RjVXNkdExQVENJCQDMCAIFB0xQSXNzdWUJAMwIAgUIdHJhbnNmZXIJAMwIAgULdXBkYXRlU3RhdGUFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARNkZXBvc2l0UHV6emxlVXNkbkxQAAQDcG10CQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAECXBtdEFtb3VudAgFA3BtdAZhbW91bnQDCQECIT0CCAUDcG10B2Fzc2V0SWQFDHB1enpsZVVzZG5MUAkAAgECH2F0dGFjaCBQVVpaTEVVRFNOTFAgdG9rZW5zIG9ubHkDBQlpc1N0b3BwZWQJAAIBAhlzbWFydCBjb250cmFjdCBpcyBvbiBsb2NrBAh0a1N0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQ1rZXlQVVpaTEVVU0ROAAAEC3RvdGFsSXNzdWVkBAckbWF0Y2gwCQDsBwEFD3B1enpsZVVzZG5MUFRDSQMJAAECBQckbWF0Y2gwAgVBc3NldAQFYXNzZXQFByRtYXRjaDAIBQVhc3NldAhxdWFudGl0eQkAAgECEENhbid0IGZpbmQgYXNzZXQEDGZyb21Db21wb3VuZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRVrZXlQdXp6bGVVc2RuQ29tcG91bmQAAAQGZm9yT25lCQBrAwULdG90YWxJc3N1ZWQAgMLXLwUIdGtTdGFrZWQEB3RvSXNzdWUJAGsDBQlwbXRBbW91bnQFBmZvck9uZQCAwtcvBAt1cGRhdGVTdGF0ZQkBDEludGVnZXJFbnRyeQIFDWtleVBVWlpMRVVTRE4JAGQCBQh0a1N0YWtlZAUJcG10QW1vdW50BAdMUHN0YWtlCQD8BwQJAQdBZGRyZXNzAQEaAVRZQCeTa0sp7r6xoQ7m3EC4z6SNegzrtQ8CBXN0YWtlBQNuaWwJAMwIAgUDcG10BQNuaWwDCQAAAgUHTFBzdGFrZQUHTFBzdGFrZQQHTFBJc3N1ZQkBB1JlaXNzdWUDBQ9wdXp6bGVVc2RuTFBUQ0kFB3RvSXNzdWUGBAh0cmFuc2ZlcgkBDlNjcmlwdFRyYW5zZmVyAwgFAWkGY2FsbGVyBQd0b0lzc3VlBQ9wdXp6bGVVc2RuTFBUQ0kJAMwIAgUHTFBJc3N1ZQkAzAgCBQh0cmFuc2ZlcgkAzAgCBQt1cGRhdGVTdGF0ZQUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEGNvbXBvdW5kV3hVc2RuTFAABAhjb21wb3VuZAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAABAJjYQgFCGNvbXBvdW5kBmFtb3VudAQIaXNPcmFjbGUJAQxjaGVja0FkZHJlc3MBCAgFAWkGY2FsbGVyBWJ5dGVzAwkBAiE9AggFCGNvbXBvdW5kB2Fzc2V0SWQFCHd4VXNkbkxQCQACAQIbYXR0YWNoIFdYVVNETkxQIHRva2VucyBvbmx5AwkBASEBBQhpc09yYWNsZQkAAgECLFlvdSBhcmUgbm90IGF1dGhvdGl6ZWQgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uBAxmcm9tQ29tcG91bmQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwURa2V5d3hVc2RuQ29tcG91bmQAAAQLdG90YWxTdGFrZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUJa2V5V1hVU0ROAAAEBnN0YWtlQwkA/AcECQEHQWRkcmVzcwEBGgFUWUAnk2tLKe6+saEO5txAuM+kjXoM67UPAgVzdGFrZQUDbmlsCQDMCAIFCGNvbXBvdW5kBQNuaWwDCQAAAgUGc3Rha2VDBQZzdGFrZUMEC3VwZGF0ZVN0YXRlCQEMSW50ZWdlckVudHJ5AgUJa2V5V1hVU0ROCQBkAgULdG90YWxTdGFrZWQFAmNhBAJ0YwkBDEludGVnZXJFbnRyeQIFEWtleXd4VXNkbkNvbXBvdW5kCQBkAgUMZnJvbUNvbXBvdW5kBQJjYQkAzAgCBQt1cGRhdGVTdGF0ZQkAzAgCBQJ0YwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEmNvbXBvdW5kVXNkdFVzZG5MUAAECGNvbXBvdW5kCQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEAmNhCAUIY29tcG91bmQGYW1vdW50BAhpc09yYWNsZQkBDGNoZWNrQWRkcmVzcwEICAUBaQZjYWxsZXIFYnl0ZXMDCQECIT0CCAUIY29tcG91bmQHYXNzZXRJZAUKdXNkdFVzZG5MUAkAAgECHWF0dGFjaCBVU0RUVVNETkxQIHRva2VucyBvbmx5AwkBASEBBQhpc09yYWNsZQkAAgECLFlvdSBhcmUgbm90IGF1dGhvdGl6ZWQgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uBAxmcm9tQ29tcG91bmQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwULa2V5Q29tcG91bmQAAAQLdG90YWxTdGFrZWQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUJa2V5U3Rha2VkAAAEBnN0YWtlQwkA/AcECQEHQWRkcmVzcwEBGgFUWUAnk2tLKe6+saEO5txAuM+kjXoM67UPAgVzdGFrZQUDbmlsCQDMCAIFCGNvbXBvdW5kBQNuaWwDCQAAAgUGc3Rha2VDBQZzdGFrZUMEC3VwZGF0ZVN0YXRlCQEMSW50ZWdlckVudHJ5AgUJa2V5U3Rha2VkCQBkAgULdG90YWxTdGFrZWQFAmNhBAJ0YwkBDEludGVnZXJFbnRyeQIFC2tleUNvbXBvdW5kCQBkAgUMZnJvbUNvbXBvdW5kBQJjYQkAzAgCBQt1cGRhdGVTdGF0ZQkAzAgCBQJ0YwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAWkBEmNvbXBvdW5kVXNkY1VzZG5MUAAECGNvbXBvdW5kCQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEAmNhCAUIY29tcG91bmQGYW1vdW50BAhpc09yYWNsZQkBDGNoZWNrQWRkcmVzcwEICAUBaQZjYWxsZXIFYnl0ZXMDCQECIT0CCAUIY29tcG91bmQHYXNzZXRJZAUKdXNkY1VzZG5MUAkAAgECHWF0dGFjaCBVU0RDVVNETkxQIHRva2VucyBvbmx5AwkBASEBBQhpc09yYWNsZQkAAgECLFlvdSBhcmUgbm90IGF1dGhvdGl6ZWQgdG8gY2FsbCB0aGlzIGZ1bmN0aW9uBAxmcm9tQ29tcG91bmQJAQt2YWx1ZU9yRWxzZQIJAJoIAgUEdGhpcwUTa2V5VXNkY1VzZG5Db21wb3VuZAAABAt0b3RhbFN0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQtrZXlVU0RDVVNETgAABAZzdGFrZUMJAPwHBAkBB0FkZHJlc3MBARoBVFlAJ5NrSynuvrGhDubcQLjPpI16DOu1DwIFc3Rha2UFA25pbAkAzAgCBQhjb21wb3VuZAUDbmlsAwkAAAIFBnN0YWtlQwUGc3Rha2VDBAt1cGRhdGVTdGF0ZQkBDEludGVnZXJFbnRyeQIFC2tleVVTRENVU0ROCQBkAgULdG90YWxTdGFrZWQFAmNhBAJ0YwkBDEludGVnZXJFbnRyeQIFE2tleVVzZGNVc2RuQ29tcG91bmQJAGQCBQxmcm9tQ29tcG91bmQFAmNhCQDMCAIFC3VwZGF0ZVN0YXRlCQDMCAIFAnRjBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQESY29tcG91bmRVc2RjVXNkdExQAAQIY29tcG91bmQJAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQCY2EIBQhjb21wb3VuZAZhbW91bnQECGlzT3JhY2xlCQEMY2hlY2tBZGRyZXNzAQgIBQFpBmNhbGxlcgVieXRlcwMJAQIhPQIIBQhjb21wb3VuZAdhc3NldElkBQp1c2RjVXNkdExQCQACAQIdYXR0YWNoIFVTRENVU0RUTFAgdG9rZW5zIG9ubHkDCQEBIQEFCGlzT3JhY2xlCQACAQIsWW91IGFyZSBub3QgYXV0aG90aXplZCB0byBjYWxsIHRoaXMgZnVuY3Rpb24EDGZyb21Db21wb3VuZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBRNrZXlVc2RjVXNkdENvbXBvdW5kAAAEC3RvdGFsU3Rha2VkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFC2tleVVTRENVU0RUAAAEBnN0YWtlQwkA/AcECQEHQWRkcmVzcwEBGgFUWUAnk2tLKe6+saEO5txAuM+kjXoM67UPAgVzdGFrZQUDbmlsCQDMCAIFCGNvbXBvdW5kBQNuaWwDCQAAAgUGc3Rha2VDBQZzdGFrZUMEC3VwZGF0ZVN0YXRlCQEMSW50ZWdlckVudHJ5AgULa2V5VVNEQ1VTRFQJAGQCBQt0b3RhbFN0YWtlZAUCY2EEAnRjCQEMSW50ZWdlckVudHJ5AgUTa2V5VXNkY1VzZHRDb21wb3VuZAkAZAIFDGZyb21Db21wb3VuZAUCY2EJAMwIAgULdXBkYXRlU3RhdGUJAMwIAgUCdGMFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpARRjb21wb3VuZFB1enpsZVVzZG5MUAAECGNvbXBvdW5kCQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAEAmNhCAUIY29tcG91bmQGYW1vdW50BAhpc09yYWNsZQkBDGNoZWNrQWRkcmVzcwEICAUBaQZjYWxsZXIFYnl0ZXMDCQECIT0CCAUIY29tcG91bmQHYXNzZXRJZAUMcHV6emxlVXNkbkxQCQACAQIfYXR0YWNoIFBVWlpMRVVTRE5MUCB0b2tlbnMgb25seQMJAQEhAQUIaXNPcmFjbGUJAAIBAixZb3UgYXJlIG5vdCBhdXRob3RpemVkIHRvIGNhbGwgdGhpcyBmdW5jdGlvbgQMZnJvbUNvbXBvdW5kCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFFWtleVB1enpsZVVzZG5Db21wb3VuZAAABAt0b3RhbFN0YWtlZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzBQ1rZXlQVVpaTEVVU0ROAAAEBnN0YWtlQwkA/AcECQEHQWRkcmVzcwEBGgFUWUAnk2tLKe6+saEO5txAuM+kjXoM67UPAgVzdGFrZQUDbmlsCQDMCAIFCGNvbXBvdW5kBQNuaWwDCQAAAgUGc3Rha2VDBQZzdGFrZUMEC3VwZGF0ZVN0YXRlCQEMSW50ZWdlckVudHJ5AgUNa2V5UFVaWkxFVVNETgkAZAIFC3RvdGFsU3Rha2VkBQJjYQQCdGMJAQxJbnRlZ2VyRW50cnkCBRVrZXlQdXp6bGVVc2RuQ29tcG91bmQJAGQCBQxmcm9tQ29tcG91bmQFAmNhCQDMCAIFC3VwZGF0ZVN0YXRlCQDMCAIFAnRjBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEMc3BvbnNvckJvb3N0AAQCcG0JAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQKbG9ja1BlcmlvZABkAwkBAiE9AggFAnBtB2Fzc2V0SWQFBHd4SWQJAAIBAgVFcnJvcgQJc3BvbnNvcmVkCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFDmtleVNwb25zb3JzaGlwAAAEBGxvY2sJAPwHBAkBB0FkZHJlc3MBARoBV7Pm5lUYEWmw5DMPiFFDpJyu1tVLA0sRWAIMaW5jcmVhc2VMb2NrCQDMCAIFCmxvY2tQZXJpb2QFA25pbAkAzAgCBQJwbQUDbmlsAwkAAAIFBGxvY2sFBGxvY2sEAXMJAQxJbnRlZ2VyRW50cnkCBQ5rZXlTcG9uc29yc2hpcAkAZAIIBQJwbQZhbW91bnQFCXNwb25zb3JlZAkAzAgCBQFzBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEGaW5pdFdYAAQCcG0JAQV2YWx1ZQEJAJEDAggFAWkIcGF5bWVudHMAAAQCYW0IBQJwbQZhbW91bnQDCQECIT0CCAUCcG0HYXNzZXRJZAUId3hVc2RuTFAJAAIBAhBVbmV4cGVjdGVkIHRva2VuBAFzCQD8BwQJAQdBZGRyZXNzAQEaAVRZQCeTa0sp7r6xoQ7m3EC4z6SNegzrtQ8CBXN0YWtlBQNuaWwJAMwIAgUCcG0FA25pbAMJAAACBQFzBQFzBAN1cGQJAQxJbnRlZ2VyRW50cnkCBQlrZXlXWFVTRE4FAmFtBAR1cGRLCQEMSW50ZWdlckVudHJ5AgURa2V5d3hVc2RuQ29tcG91bmQAAAkAzAgCBQN1cGQJAMwIAgUEdXBkSwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAQJ0eAEGdmVyaWZ5AAkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tledUz9hc=", "height": 2156766, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 4ABGCuHMHzBwz51akeiM4wLbPUfgoyqhgnfjYZtfFGAW Next: 9qjFVi6DSYZNwrMAjDkrs7pASQfNNYtAs2QybNvweq8t Diff:
OldNewDifferences
9898 let usdnUsdtStaked = valueOrElse(getInteger(this, keyStaked), 0)
9999 let forSingleTCI = fraction(usdnUsdtStaked, def, TCIAmount)
100100 let usdnLpToWithdraw = fraction(forSingleTCI, am, def)
101+ let unstake = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "unstake", ["Fm4qczu6Pepz8KUhh3Heb6LeTVfpSMX5vvNgw3x764CS", usdnLpToWithdraw], nil)
101102 let fee = fraction(usdnLpToWithdraw, def, feePerc)
102- let unstake = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "unstake", ["Fm4qczu6Pepz8KUhh3Heb6LeTVfpSMX5vvNgw3x764CS", usdnLpToWithdraw], nil)
103- let usdnLpfeeTransfer = ScriptTransfer(Address(tw), fee, usdtUsdnLP)
104- let transfer = ScriptTransfer(i.caller, (usdnLpToWithdraw - fee), usdtUsdnLP)
105- let updateUsdnLpStaked = IntegerEntry(keyStaked, (usdnUsdtStaked - usdnLpToWithdraw))
106103 let brn = Burn(usdtUsdnLPTCI, am)
107104 if ((brn == brn))
108- then [usdnLpfeeTransfer, transfer, updateUsdnLpStaked]
105+ then {
106+ let updateUsdnLpStaked = IntegerEntry(keyStaked, (usdnUsdtStaked - usdnLpToWithdraw))
107+ let usdnLpfeeTransfer = ScriptTransfer(Address(tw), fee, usdtUsdnLP)
108+ let transfer = ScriptTransfer(i.caller, (usdnLpToWithdraw - fee), usdtUsdnLP)
109+[usdnLpfeeTransfer, transfer, updateUsdnLpStaked]
110+ }
109111 else throw("Strict value is not equal to itself.")
110112 }
111113 else if ((id == wxUsdnLPTCI))
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let usdtUsdnLP = base58'Fm4qczu6Pepz8KUhh3Heb6LeTVfpSMX5vvNgw3x764CS'
55
66 let usdtUsdnLPTCI = base58'i1snzKxSEZVokh9TWj8hTJQEDBsocnL2hRWsSbsMPK7'
77
88 let wxUsdnLP = base58'2sEBVcyDFK2LupCf7MeA4vzHhGK4DC1WjbKGQCLYDqib'
99
1010 let wxUsdnLPTCI = base58'DNy6WBfhPE4y82RonGdHhZEunNotEDzmNfrBomWnsyGi'
1111
1212 let usdcUsdnLP = base58'EK6N7S38xbtBT3SxAqoGdDLCiX6rojX6G169CnSyuE5'
1313
1414 let usdcUsdnLPTCI = base58'HZKFpNfyPG5gt4D6Nfy1zQSg2Ptmqv932GjNTCyBEeKP'
1515
1616 let usdcUsdtLP = base58'EPhdEfmQaNcHyvDmRGhnLhgcJtKZ2a4k3ZBmKWtAEWyH'
1717
1818 let usdcUsdtLPTCI = base58'BqPYkaiz7Le6fFu1rjZ54anrpT57EpvyugZCUqrsjXj'
1919
2020 let puzzleUsdnLP = base58'E8zHu33GfcNyGLypX77gZiUXfvuZQeaYmiEfsy7VYNwP'
2121
2222 let puzzleUsdnLPTCI = base58'Dh9QXSSABE5V6aRfu3mCbDAUokbpE7ER7pbZV6cvyg1A'
2323
2424 let wxId = base58'Atqv59EYzjFGuitKVnMRk6H8FukjoV3ktPorbEys25on'
2525
2626 let keySponsorship = "Sponsorship_in_lock"
2727
2828 let isStopped = false
2929
3030 let keyStaked = "STAKED_LP"
3131
3232 let keyCompound = "From_Compound"
3333
3434 let keywxUsdnCompound = "WX_USDN_compound"
3535
3636 let keyWXUSDN = "WX_USDN"
3737
3838 let keyUsdcUsdnCompound = "USDC_USDN_compound"
3939
4040 let keyUSDCUSDN = "USDC_USDN"
4141
4242 let keyUsdcUsdtCompound = "USDC_USDT_compound"
4343
4444 let keyUSDCUSDT = "USDC_USDT"
4545
4646 let keyPuzzleUsdnCompound = "PUZZLE_USDN_compound"
4747
4848 let keyPUZZLEUSDN = "PUZZLE_USDN"
4949
5050 let def = 100000000
5151
5252 let feePerc = 10000000000
5353
5454 let tw = base58'3Mv7nXq2V2Dnn9oSkB5feRt6RxtqnPiAXNH'
5555
5656 let oracle = base58'3NAVBWBnqieKa3CdN39MAhToyTHShYxX1gB'
5757
5858 let stakePool = "3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz"
5959
6060 func checkAddress (caller) = if ((caller != oracle))
6161 then false
6262 else true
6363
6464
6565 @Callable(i)
6666 func initUsdtUsdn () = {
6767 let pm = value(i.payments[0])
6868 let am = pm.amount
6969 if ((pm.assetId != usdtUsdnLP))
7070 then throw("Unexpected token")
7171 else {
7272 let s = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [pm])
7373 if ((s == s))
7474 then {
7575 let upd = IntegerEntry(keyStaked, am)
7676 let updK = IntegerEntry(keyCompound, 0)
7777 [upd, updK]
7878 }
7979 else throw("Strict value is not equal to itself.")
8080 }
8181 }
8282
8383
8484
8585 @Callable(i)
8686 func withdraw () = {
8787 let payment = value(i.payments[0])
8888 let am = payment.amount
8989 let id = payment.assetId
9090 if ((id == usdtUsdnLPTCI))
9191 then {
9292 let TCIAmount = match assetInfo(usdtUsdnLPTCI) {
9393 case q: Asset =>
9494 q.quantity
9595 case _ =>
9696 0
9797 }
9898 let usdnUsdtStaked = valueOrElse(getInteger(this, keyStaked), 0)
9999 let forSingleTCI = fraction(usdnUsdtStaked, def, TCIAmount)
100100 let usdnLpToWithdraw = fraction(forSingleTCI, am, def)
101+ let unstake = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "unstake", ["Fm4qczu6Pepz8KUhh3Heb6LeTVfpSMX5vvNgw3x764CS", usdnLpToWithdraw], nil)
101102 let fee = fraction(usdnLpToWithdraw, def, feePerc)
102- let unstake = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "unstake", ["Fm4qczu6Pepz8KUhh3Heb6LeTVfpSMX5vvNgw3x764CS", usdnLpToWithdraw], nil)
103- let usdnLpfeeTransfer = ScriptTransfer(Address(tw), fee, usdtUsdnLP)
104- let transfer = ScriptTransfer(i.caller, (usdnLpToWithdraw - fee), usdtUsdnLP)
105- let updateUsdnLpStaked = IntegerEntry(keyStaked, (usdnUsdtStaked - usdnLpToWithdraw))
106103 let brn = Burn(usdtUsdnLPTCI, am)
107104 if ((brn == brn))
108- then [usdnLpfeeTransfer, transfer, updateUsdnLpStaked]
105+ then {
106+ let updateUsdnLpStaked = IntegerEntry(keyStaked, (usdnUsdtStaked - usdnLpToWithdraw))
107+ let usdnLpfeeTransfer = ScriptTransfer(Address(tw), fee, usdtUsdnLP)
108+ let transfer = ScriptTransfer(i.caller, (usdnLpToWithdraw - fee), usdtUsdnLP)
109+[usdnLpfeeTransfer, transfer, updateUsdnLpStaked]
110+ }
109111 else throw("Strict value is not equal to itself.")
110112 }
111113 else if ((id == wxUsdnLPTCI))
112114 then {
113115 let wxTciAm = match assetInfo(wxUsdnLPTCI) {
114116 case q: Asset =>
115117 q.quantity
116118 case _ =>
117119 0
118120 }
119121 let wxUsdnStaked = valueOrElse(getInteger(this, keyWXUSDN), 0)
120122 let singleWXLP = fraction(wxUsdnStaked, def, wxTciAm)
121123 let wxLpToWithdraw = fraction(singleWXLP, am, def)
122124 let fee = fraction(wxLpToWithdraw, def, feePerc)
123125 let unstake = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "unstake", ["2sEBVcyDFK2LupCf7MeA4vzHhGK4DC1WjbKGQCLYDqib", wxLpToWithdraw], nil)
124126 if ((unstake == unstake))
125127 then {
126128 let wxLpFeeTransfer = ScriptTransfer(Address(tw), fee, wxUsdnLP)
127129 let wxLpTransfer = ScriptTransfer(i.caller, (am - fee), wxUsdnLP)
128130 let updateWxLpStaked = IntegerEntry(keyWXUSDN, (wxUsdnStaked - wxLpToWithdraw))
129131 let burnWxLpTci = Burn(wxUsdnLP, am)
130132 if ((burnWxLpTci == burnWxLpTci))
131133 then [wxLpFeeTransfer, wxLpTransfer, updateWxLpStaked]
132134 else throw("Strict value is not equal to itself.")
133135 }
134136 else throw("Strict value is not equal to itself.")
135137 }
136138 else if ((id == usdcUsdnLPTCI))
137139 then {
138140 let usdcUsdnTCI = match assetInfo(usdcUsdnLPTCI) {
139141 case q: Asset =>
140142 q.quantity
141143 case _ =>
142144 0
143145 }
144146 let usdcUsdnStaked = valueOrElse(getInteger(this, keyUSDCUSDN), 0)
145147 let singleUsdcLP = fraction(usdcUsdnTCI, def, usdcUsdnStaked)
146148 let usdcLpToWithdraw = fraction(singleUsdcLP, am, def)
147149 let fee = fraction(usdcLpToWithdraw, def, feePerc)
148150 let usdcUsdnLPFee = ScriptTransfer(Address(tw), fee, usdcUsdnLP)
149151 let usdcUsdnTransfer = ScriptTransfer(i.caller, (am - fee), usdcUsdnLP)
150152 let updateUsdcUsdnLpStaked = IntegerEntry(keyUSDCUSDN, (usdcUsdnStaked - usdcLpToWithdraw))
151153 let burnUsdcUsdnLpTci = Burn(usdcUsdnLPTCI, am)
152154 if ((burnUsdcUsdnLpTci == burnUsdcUsdnLpTci))
153155 then [usdcUsdnLPFee, usdcUsdnTransfer, updateUsdcUsdnLpStaked]
154156 else throw("Strict value is not equal to itself.")
155157 }
156158 else if ((id == usdcUsdtLPTCI))
157159 then {
158160 let usdcUsdtTci = match assetInfo(usdcUsdnLPTCI) {
159161 case q: Asset =>
160162 q.quantity
161163 case _ =>
162164 0
163165 }
164166 let usdcUsdtStaked = valueOrElse(getInteger(this, keyUSDCUSDT), 0)
165167 let singleUsdcUsdt = fraction(usdcUsdtTci, def, usdcUsdtStaked)
166168 let usdcUsdtLpToWithdraw = fraction(singleUsdcUsdt, am, def)
167169 let fee = fraction(usdcUsdtLpToWithdraw, def, feePerc)
168170 let usdcUsdtLPFee = ScriptTransfer(Address(tw), fee, usdcUsdtLP)
169171 let usdcUsdtTransfer = ScriptTransfer(i.caller, (am - fee), usdcUsdtLP)
170172 let updateUsdcUsdtLpStaked = IntegerEntry(keyUSDCUSDT, (usdcUsdtStaked - usdcUsdtLpToWithdraw))
171173 let burnWxLpTci = Burn(usdcUsdnLPTCI, am)
172174 if ((burnWxLpTci == burnWxLpTci))
173175 then [usdcUsdtLPFee, usdcUsdtTransfer, updateUsdcUsdtLpStaked]
174176 else throw("Strict value is not equal to itself.")
175177 }
176178 else if ((id == puzzleUsdnLPTCI))
177179 then {
178180 let puzzleUsdnTci = match assetInfo(puzzleUsdnLPTCI) {
179181 case q: Asset =>
180182 q.quantity
181183 case _ =>
182184 0
183185 }
184186 let puzzleLPStaked = valueOrElse(getInteger(this, keyPUZZLEUSDN), 0)
185187 let singlePuzzleUsdn = fraction(puzzleUsdnTci, def, puzzleLPStaked)
186188 let puzzleUsdnWithdraw = fraction(singlePuzzleUsdn, am, def)
187189 let fee = fraction(puzzleUsdnWithdraw, def, feePerc)
188190 let puzzleUsdnLPFee = ScriptTransfer(Address(tw), fee, puzzleUsdnLP)
189191 let puzzleUsdnTransfer = ScriptTransfer(i.caller, (am - fee), puzzleUsdnLP)
190192 let updatePuzzleUsdnLpStaked = IntegerEntry(keyPUZZLEUSDN, (puzzleLPStaked - puzzleUsdnWithdraw))
191193 let burnPuzzleTCI = Burn(puzzleUsdnLPTCI, am)
192194 if ((burnPuzzleTCI == burnPuzzleTCI))
193195 then [puzzleUsdnLPFee, puzzleUsdnTransfer, updatePuzzleUsdnLpStaked]
194196 else throw("Strict value is not equal to itself.")
195197 }
196198 else throw("Invalid asset")
197199 }
198200
199201
200202
201203 @Callable(i)
202204 func depositWxUsdnLP () = {
203205 let pmt = value(i.payments[0])
204206 let pmtAmount = pmt.amount
205207 if ((pmt.assetId != wxUsdnLP))
206208 then throw("attach WXUSDNLP tokens only")
207209 else if (isStopped)
208210 then throw("smart contract is on lock")
209211 else {
210212 let tkStaked = valueOrElse(getInteger(this, keyWXUSDN), 0)
211213 let totalIssued = match assetInfo(wxUsdnLPTCI) {
212214 case asset: Asset =>
213215 asset.quantity
214216 case _ =>
215217 throw("Can't find asset")
216218 }
217219 let one = fraction(totalIssued, 100000000, tkStaked)
218220 let toIssue = fraction(pmtAmount, one, 100000000)
219221 let updateState = IntegerEntry(keyWXUSDN, (tkStaked + pmtAmount))
220222 let LPstake = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [pmt])
221223 if ((LPstake == LPstake))
222224 then {
223225 let LPIssue = Reissue(wxUsdnLPTCI, toIssue, true)
224226 let transfer = ScriptTransfer(i.caller, toIssue, wxUsdnLPTCI)
225227 [LPIssue, transfer, updateState]
226228 }
227229 else throw("Strict value is not equal to itself.")
228230 }
229231 }
230232
231233
232234
233235 @Callable(i)
234236 func depositUsdtUsdnLP () = {
235237 let pmt = value(i.payments[0])
236238 let pmtAmount = pmt.amount
237239 if ((pmt.assetId != usdtUsdnLP))
238240 then throw("attach USDTUSDNLP tokens only")
239241 else if (isStopped)
240242 then throw("smart contract is on lock")
241243 else {
242244 let tkStaked = valueOrElse(getInteger(this, keyStaked), 0)
243245 let totalIssued = match assetInfo(usdtUsdnLPTCI) {
244246 case asset: Asset =>
245247 asset.quantity
246248 case _ =>
247249 throw("Can't find asset")
248250 }
249251 let fromCompound = valueOrElse(getInteger(this, keyCompound), 0)
250252 let forOne = fraction(totalIssued, 100000000, tkStaked)
251253 let toIssue = fraction(pmtAmount, forOne, 100000000)
252254 let updateState = IntegerEntry(keyStaked, (tkStaked + pmtAmount))
253255 let LPstake = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [pmt])
254256 if ((LPstake == LPstake))
255257 then {
256258 let LPIssue = Reissue(usdtUsdnLPTCI, toIssue, true)
257259 let transfer = ScriptTransfer(i.caller, toIssue, usdtUsdnLPTCI)
258260 [LPIssue, transfer, updateState]
259261 }
260262 else throw("Strict value is not equal to itself.")
261263 }
262264 }
263265
264266
265267
266268 @Callable(i)
267269 func depositUsdcUsdnLP () = {
268270 let pmt = value(i.payments[0])
269271 let pmtAmount = pmt.amount
270272 if ((pmt.assetId != usdcUsdnLP))
271273 then throw("attach USDCUSDNLP tokens only")
272274 else if (isStopped)
273275 then throw("smart contract is on lock")
274276 else {
275277 let tkStaked = valueOrElse(getInteger(this, keyUSDCUSDN), 0)
276278 let totalIssued = match assetInfo(usdcUsdnLPTCI) {
277279 case asset: Asset =>
278280 asset.quantity
279281 case _ =>
280282 throw("Can't find asset")
281283 }
282284 let fromCompound = valueOrElse(getInteger(this, keyUsdcUsdnCompound), 0)
283285 let forOne = fraction(totalIssued, 100000000, tkStaked)
284286 let toIssue = fraction(pmtAmount, forOne, 100000000)
285287 let updateState = IntegerEntry(keyUSDCUSDN, (tkStaked + pmtAmount))
286288 let LPstake = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [pmt])
287289 if ((LPstake == LPstake))
288290 then {
289291 let LPIssue = Reissue(usdcUsdnLPTCI, toIssue, true)
290292 let transfer = ScriptTransfer(i.caller, toIssue, usdcUsdnLPTCI)
291293 [LPIssue, transfer, updateState]
292294 }
293295 else throw("Strict value is not equal to itself.")
294296 }
295297 }
296298
297299
298300
299301 @Callable(i)
300302 func depositUsdcUsdtLP () = {
301303 let pmt = value(i.payments[0])
302304 let pmtAmount = pmt.amount
303305 if ((pmt.assetId != usdcUsdtLP))
304306 then throw("attach USDCUSDTLP tokens only")
305307 else if (isStopped)
306308 then throw("smart contract is on lock")
307309 else {
308310 let tkStaked = valueOrElse(getInteger(this, keyUSDCUSDT), 0)
309311 let totalIssued = match assetInfo(usdcUsdtLPTCI) {
310312 case asset: Asset =>
311313 asset.quantity
312314 case _ =>
313315 throw("Can't find asset")
314316 }
315317 let fromCompound = valueOrElse(getInteger(this, keyUsdcUsdtCompound), 0)
316318 let forOne = fraction(totalIssued, 100000000, tkStaked)
317319 let toIssue = fraction(pmtAmount, forOne, 100000000)
318320 let updateState = IntegerEntry(keyUSDCUSDT, (tkStaked + pmtAmount))
319321 let LPstake = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [pmt])
320322 if ((LPstake == LPstake))
321323 then {
322324 let LPIssue = Reissue(usdcUsdtLPTCI, toIssue, true)
323325 let transfer = ScriptTransfer(i.caller, toIssue, usdcUsdtLPTCI)
324326 [LPIssue, transfer, updateState]
325327 }
326328 else throw("Strict value is not equal to itself.")
327329 }
328330 }
329331
330332
331333
332334 @Callable(i)
333335 func depositPuzzleUsdnLP () = {
334336 let pmt = value(i.payments[0])
335337 let pmtAmount = pmt.amount
336338 if ((pmt.assetId != puzzleUsdnLP))
337339 then throw("attach PUZZLEUDSNLP tokens only")
338340 else if (isStopped)
339341 then throw("smart contract is on lock")
340342 else {
341343 let tkStaked = valueOrElse(getInteger(this, keyPUZZLEUSDN), 0)
342344 let totalIssued = match assetInfo(puzzleUsdnLPTCI) {
343345 case asset: Asset =>
344346 asset.quantity
345347 case _ =>
346348 throw("Can't find asset")
347349 }
348350 let fromCompound = valueOrElse(getInteger(this, keyPuzzleUsdnCompound), 0)
349351 let forOne = fraction(totalIssued, 100000000, tkStaked)
350352 let toIssue = fraction(pmtAmount, forOne, 100000000)
351353 let updateState = IntegerEntry(keyPUZZLEUSDN, (tkStaked + pmtAmount))
352354 let LPstake = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [pmt])
353355 if ((LPstake == LPstake))
354356 then {
355357 let LPIssue = Reissue(puzzleUsdnLPTCI, toIssue, true)
356358 let transfer = ScriptTransfer(i.caller, toIssue, puzzleUsdnLPTCI)
357359 [LPIssue, transfer, updateState]
358360 }
359361 else throw("Strict value is not equal to itself.")
360362 }
361363 }
362364
363365
364366
365367 @Callable(i)
366368 func compoundWxUsdnLP () = {
367369 let compound = value(i.payments[0])
368370 let ca = compound.amount
369371 let isOracle = checkAddress(i.caller.bytes)
370372 if ((compound.assetId != wxUsdnLP))
371373 then throw("attach WXUSDNLP tokens only")
372374 else if (!(isOracle))
373375 then throw("You are not authotized to call this function")
374376 else {
375377 let fromCompound = valueOrElse(getInteger(this, keywxUsdnCompound), 0)
376378 let totalStaked = valueOrElse(getInteger(this, keyWXUSDN), 0)
377379 let stakeC = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [compound])
378380 if ((stakeC == stakeC))
379381 then {
380382 let updateState = IntegerEntry(keyWXUSDN, (totalStaked + ca))
381383 let tc = IntegerEntry(keywxUsdnCompound, (fromCompound + ca))
382384 [updateState, tc]
383385 }
384386 else throw("Strict value is not equal to itself.")
385387 }
386388 }
387389
388390
389391
390392 @Callable(i)
391393 func compoundUsdtUsdnLP () = {
392394 let compound = value(i.payments[0])
393395 let ca = compound.amount
394396 let isOracle = checkAddress(i.caller.bytes)
395397 if ((compound.assetId != usdtUsdnLP))
396398 then throw("attach USDTUSDNLP tokens only")
397399 else if (!(isOracle))
398400 then throw("You are not authotized to call this function")
399401 else {
400402 let fromCompound = valueOrElse(getInteger(this, keyCompound), 0)
401403 let totalStaked = valueOrElse(getInteger(this, keyStaked), 0)
402404 let stakeC = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [compound])
403405 if ((stakeC == stakeC))
404406 then {
405407 let updateState = IntegerEntry(keyStaked, (totalStaked + ca))
406408 let tc = IntegerEntry(keyCompound, (fromCompound + ca))
407409 [updateState, tc]
408410 }
409411 else throw("Strict value is not equal to itself.")
410412 }
411413 }
412414
413415
414416
415417 @Callable(i)
416418 func compoundUsdcUsdnLP () = {
417419 let compound = value(i.payments[0])
418420 let ca = compound.amount
419421 let isOracle = checkAddress(i.caller.bytes)
420422 if ((compound.assetId != usdcUsdnLP))
421423 then throw("attach USDCUSDNLP tokens only")
422424 else if (!(isOracle))
423425 then throw("You are not authotized to call this function")
424426 else {
425427 let fromCompound = valueOrElse(getInteger(this, keyUsdcUsdnCompound), 0)
426428 let totalStaked = valueOrElse(getInteger(this, keyUSDCUSDN), 0)
427429 let stakeC = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [compound])
428430 if ((stakeC == stakeC))
429431 then {
430432 let updateState = IntegerEntry(keyUSDCUSDN, (totalStaked + ca))
431433 let tc = IntegerEntry(keyUsdcUsdnCompound, (fromCompound + ca))
432434 [updateState, tc]
433435 }
434436 else throw("Strict value is not equal to itself.")
435437 }
436438 }
437439
438440
439441
440442 @Callable(i)
441443 func compoundUsdcUsdtLP () = {
442444 let compound = value(i.payments[0])
443445 let ca = compound.amount
444446 let isOracle = checkAddress(i.caller.bytes)
445447 if ((compound.assetId != usdcUsdtLP))
446448 then throw("attach USDCUSDTLP tokens only")
447449 else if (!(isOracle))
448450 then throw("You are not authotized to call this function")
449451 else {
450452 let fromCompound = valueOrElse(getInteger(this, keyUsdcUsdtCompound), 0)
451453 let totalStaked = valueOrElse(getInteger(this, keyUSDCUSDT), 0)
452454 let stakeC = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [compound])
453455 if ((stakeC == stakeC))
454456 then {
455457 let updateState = IntegerEntry(keyUSDCUSDT, (totalStaked + ca))
456458 let tc = IntegerEntry(keyUsdcUsdtCompound, (fromCompound + ca))
457459 [updateState, tc]
458460 }
459461 else throw("Strict value is not equal to itself.")
460462 }
461463 }
462464
463465
464466
465467 @Callable(i)
466468 func compoundPuzzleUsdnLP () = {
467469 let compound = value(i.payments[0])
468470 let ca = compound.amount
469471 let isOracle = checkAddress(i.caller.bytes)
470472 if ((compound.assetId != puzzleUsdnLP))
471473 then throw("attach PUZZLEUSDNLP tokens only")
472474 else if (!(isOracle))
473475 then throw("You are not authotized to call this function")
474476 else {
475477 let fromCompound = valueOrElse(getInteger(this, keyPuzzleUsdnCompound), 0)
476478 let totalStaked = valueOrElse(getInteger(this, keyPUZZLEUSDN), 0)
477479 let stakeC = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [compound])
478480 if ((stakeC == stakeC))
479481 then {
480482 let updateState = IntegerEntry(keyPUZZLEUSDN, (totalStaked + ca))
481483 let tc = IntegerEntry(keyPuzzleUsdnCompound, (fromCompound + ca))
482484 [updateState, tc]
483485 }
484486 else throw("Strict value is not equal to itself.")
485487 }
486488 }
487489
488490
489491
490492 @Callable(i)
491493 func sponsorBoost () = {
492494 let pm = value(i.payments[0])
493495 let lockPeriod = 100
494496 if ((pm.assetId != wxId))
495497 then throw("Error")
496498 else {
497499 let sponsored = valueOrElse(getInteger(this, keySponsorship), 0)
498500 let lock = invoke(Address(base58'3PJL8Hn8LACaSBWLQ3UVhctA5cTQLBFwBAP'), "increaseLock", [lockPeriod], [pm])
499501 if ((lock == lock))
500502 then {
501503 let s = IntegerEntry(keySponsorship, (pm.amount + sponsored))
502504 [s]
503505 }
504506 else throw("Strict value is not equal to itself.")
505507 }
506508 }
507509
508510
509511
510512 @Callable(i)
511513 func initWX () = {
512514 let pm = value(i.payments[0])
513515 let am = pm.amount
514516 if ((pm.assetId != wxUsdnLP))
515517 then throw("Unexpected token")
516518 else {
517519 let s = invoke(Address(base58'3Mx3zmXrMcLFCafMuPtXAzR4ZPVeZYb6qLz'), "stake", nil, [pm])
518520 if ((s == s))
519521 then {
520522 let upd = IntegerEntry(keyWXUSDN, am)
521523 let updK = IntegerEntry(keywxUsdnCompound, 0)
522524 [upd, updK]
523525 }
524526 else throw("Strict value is not equal to itself.")
525527 }
526528 }
527529
528530
529531 @Verifier(tx)
530532 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
531533

github/deemru/w8io/3ef1775 
74.72 ms