tx · 6mJoi84NMtLPsVKujuiyDpB2TUDHx7qcAZE9KoSqQSZj

3N1Epwa6GQuTQr2K9WzeUcqSFCdERwuvL5T:  -0.01500000 Waves

2023.04.24 13:30 [2548511] smart account 3N1Epwa6GQuTQr2K9WzeUcqSFCdERwuvL5T > SELF 0.00000000 Waves

{ "type": 13, "id": "6mJoi84NMtLPsVKujuiyDpB2TUDHx7qcAZE9KoSqQSZj", "fee": 1500000, "feeAssetId": null, "timestamp": 1682332255891, "version": 2, "chainId": 84, "sender": "3N1Epwa6GQuTQr2K9WzeUcqSFCdERwuvL5T", "senderPublicKey": "7iXEgsFNsnbLZ3ca4tmz8jffnyxMu9keuBV6CuQPJLuA", "proofs": [ "4j94exFdT47GUX2w9i15kX8YXPmLnu9nSRbncmLqbs8S92YDaqX9C4UEKKpX2uspiufiQtM6EMGG2ckoT9XGra5h" ], "script": "base64:BgLdDAgCEg0KCwgICAgICAEIAQgBEgMKAQESBAoCCAgSBQoDCAgEEgQKAggIEgMKAQESAwoBARIECgIICBIECgIICBIDCgEIEgAiCXNlcGFyYXRvciIMa2V5RmVlQW1vdW50Ig5rZXlVc2RuQXNzZXRJZCIOa2V5RXBvY2hMZW5ndGgiEWtleUZpbmFsaXplUmV3YXJkIgxrZXlXeEFzc2V0SWQiFmtleUFzc2V0c1N0b3JlQ29udHJhY3QiE2tleVVzZXJQb29sQ29udHJhY3QiE2tleUVtaXNzaW9uQ29udHJhY3QiE2tleUJvb3N0aW5nQ29udHJhY3QiEmtleUZhY3RvcnlDb250cmFjdCIZa2V5Vm90aW5nRW1pc3Npb25Db250cmFjdCIMa2V5VGhyZXNob2xkIg9nZXRTdHJpbmdPckZhaWwiA2tleSIMZ2V0SW50T3JGYWlsIhBrZXlJbkxpc3RBc3NldElkIg1hbW91bnRBc3NldElkIgxwcmljZUFzc2V0SWQiD2tleVN1Z2dlc3RJbmRleCIOa2V5U3RhcnRIZWlnaHQiDHN1Z2dlc3RJbmRleCIPa2V5Vm90aW5nUmVzdWx0Igp0b3RhbFZvdGVzIgh0b3RhbFllcyIHdG90YWxObyIHa2V5Vm90ZSIMdm90ZXJBZGRyZXNzIgxrZXlWb3RlVmFsdWUiCWd3eEFtb3VudCIEdm90ZSIJa2V5SW5MaXN0IgRwb29sIgskdDAyNDYzMjUwMyITa2V5TWFuYWdlclB1YmxpY0tleSIaa2V5UGVuZGluZ01hbmFnZXJQdWJsaWNLZXkiE2Fzc2V0c1N0b3JlQ29udHJhY3QiEGJvb3N0aW5nQ29udHJhY3QiEGVtaXNzaW9uQ29udHJhY3QiD2ZhY3RvcnlDb250cmFjdCIQdXNlclBvb2xDb250cmFjdCIWdm90aW5nRW1pc3Npb25Db250cmFjdCIWbWFuYWdlclB1YmxpY0tleU9yVW5pdCIHJG1hdGNoMCIBcyIdcGVuZGluZ01hbmFnZXJQdWJsaWNLZXlPclVuaXQiCWlzTWFuYWdlciIBaSICcGsiC211c3RNYW5hZ2VyIgVhc0ludCIDdmFsIgZ2YWxJbnQiFmFzc2V0c1N0b3JlQ29udHJhY3RQcm0iE2Jvb3N0aW5nQ29udHJhY3RQcm0iE2VtaXNzaW9uQ29udHJhY3RQcm0iEmZhY3RvcnlDb250cmFjdFBybSITdXNlclBvb2xDb250cmFjdFBybSIZdm90aW5nRW1pc3Npb25Db250cmFjdFBybSIMZmVlQW1vdW50UHJtIgx3eEFzc2V0SWRQcm0iEXZvdGluZ0R1cmF0aW9uUHJtIg51c2RuQXNzZXRJZFBybSIRZmluYWxpemVSZXdhcmRQcm0iBmNoZWNrcyIJdGhyZXNob2xkIgdwYXltZW50IhBjaGVja0Ftb3VudEFzc2V0IgRpbmZvIgxlbnN1cmVBY3RpdmUiGWVuc3VyZUFtb3VudEFzc2V0VmVyaWZpZWQiA2ludiIBYiIKYnVybkZlZUludiIPbmV3U3VnZ2VzdEluZGV4IgNpbnQiB2luRmF2b3IiEnZvdGluZ0ZpbmlzaEhlaWdodCIHbm90WmVybyIJdm90ZVZhbHVlIgh2b3RlVHlwZSIRaXNWb3RlVHlwZVNpbWlsYXIiEmlzVm90ZVZhbHVlU2ltaWxhciIQaXNOZXdWb3RlU2ltaWxhciIBdSIMdm90aW5nUmVzdWx0Ig1wb3NpdGl2ZVZvdGVzIg1uZWdhdGl2ZVZvdGVzIhtuZXdQb3NpdGl2ZUFuZE5lZ2F0aXZlVm90ZXMiEG5ld1Bvc2l0aXZlVm90ZXMiEG5ld05lZ2F0aXZlVm90ZXMiB3ZvdGVLZXkiC3VzZXJBZGRyZXNzIgdhY3Rpb25zIgZuZXdGZWUiDG5ld1RocmVzaG9sZCIIYWxsVm90ZXMiA3JlcyIRdm90aW5nRW1pc3Npb25JbnYiC2NoZWNrQ2FsbGVyIhdwZW5kaW5nTWFuYWdlclB1YmxpY0tleSIVY2hlY2tNYW5hZ2VyUHVibGljS2V5IgJwbSIFaGFzUE0iB2NoZWNrUE0iAnR4IgZ2ZXJpZnkiD3RhcmdldFB1YmxpY0tleSQAAWECAl9fAAFiCQC5CQIJAMwIAgICJXMJAMwIAgIDZmVlBQNuaWwFAWEAAWMJALkJAgkAzAgCAgIlcwkAzAgCAgt1c2RuQXNzZXRJZAUDbmlsBQFhAAFkCQC5CQIJAMwIAgICJXMJAMwIAgILZXBvY2hMZW5ndGgFA25pbAUBYQABZQkAuQkCCQDMCAICAiVzCQDMCAICDmZpbmFsaXplUmV3YXJkBQNuaWwFAWEAAWYJALkJAgkAzAgCAgIlcwkAzAgCAgl3eEFzc2V0SWQFA25pbAUBYQABZwkAuQkCCQDMCAICAiVzCQDMCAICE2Fzc2V0c1N0b3JlQ29udHJhY3QFA25pbAUBYQABaAkAuQkCCQDMCAICAiVzCQDMCAICEHVzZXJQb29sQ29udHJhY3QFA25pbAUBYQABaQkAuQkCCQDMCAICAiVzCQDMCAICEGVtaXNzaW9uQ29udHJhY3QFA25pbAUBYQABagkAuQkCCQDMCAICAiVzCQDMCAICEGJvb3N0aW5nQ29udHJhY3QFA25pbAUBYQABawkAuQkCCQDMCAICAiVzCQDMCAICD2ZhY3RvcnlDb250cmFjdAUDbmlsBQFhAAFsCQC5CQIJAMwIAgICJXMJAMwIAgIWdm90aW5nRW1pc3Npb25Db250cmFjdAUDbmlsBQFhAAFtCQC5CQIJAMwIAgICJXMJAMwIAgIPdm90aW5nVGhyZXNob2xkBQNuaWwFAWEBAW4BAW8JARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQR0aGlzBQFvCQCsAgIFAW8CDyBpcyBub3QgZGVmaW5lZAEBcAEBbwkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCaCAIFBHRoaXMFAW8JAKwCAgUBbwIPIGlzIG5vdCBkZWZpbmVkAQFxAgFyAXMJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIGaW5MaXN0CQDMCAIFAXIJAMwIAgUBcwUDbmlsBQFhAQF0AgFyAXMJALkJAgkAzAgCAgYlcyVzJXMJAMwIAgIMc3VnZ2VzdEluZGV4CQDMCAIFAXIJAMwIAgUBcwUDbmlsBQFhAQF1AwFyAXMBdgkAuQkCCQDMCAICCCVzJXMlcyVkCQDMCAICC3N0YXJ0SGVpZ2h0CQDMCAIFAXIJAMwIAgUBcwkAzAgCCQCkAwEFAXYFA25pbAUBYQEBdwMBcgFzAXYJALkJAgkAzAgCAgglcyVzJXMlZAkAzAgCAgx2b3RpbmdSZXN1bHQJAMwIAgUBcgkAzAgCBQFzCQDMCAIJAKQDAQUBdgUDbmlsBQFhAQF4AgF5AXoJALkJAgkAzAgCAgQlZCVkCQDMCAIFAXkJAMwIAgUBegUDbmlsBQFhAQFBBAFyAXMBdgFCCQC5CQIJAMwIAgIKJXMlcyVzJWQlcwkAzAgCAgR2b3RlCQDMCAIFAXIJAMwIAgUBcwkAzAgCCQCkAwEFAXYJAMwIAgUBQgUDbmlsBQFhAQFDAgFEAUUEAW8DBQFFCQC5CQIJAMwIAgIEJWQlcwkAzAgCBQFECQDMCAICA3llcwUDbmlsBQFhCQC5CQIJAMwIAgIEJWQlcwkAzAgCBQFECQDMCAICAm5vBQNuaWwFAWEFAW8BAUYBAUcEAUgFAUcEAXIIBQFIAl8xBAFzCAUBSAJfMgkAuQkCCQDMCAICBiVzJXMlcwkAzAgCAgZpbkxpc3QJAMwIAgUBcgkAzAgCBQFzBQNuaWwFAWEBAUkAAhQlc19fbWFuYWdlclB1YmxpY0tleQEBSgACGyVzX19wZW5kaW5nTWFuYWdlclB1YmxpY0tleQABSwkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAW4BBQFnAAFMCQERQGV4dHJOYXRpdmUoMTA2MikBCQEBbgEFAWoAAU0JARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQFuAQUBaQABTgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBAW4BBQFrAAFPCQERQGV4dHJOYXRpdmUoMTA2MikBCQEBbgEFAWgAAVAJARFAZXh0ck5hdGl2ZSgxMDYyKQEJAQFuAQUBbAEBUQAEAVIJAKIIAQkBAUkAAwkAAQIFAVICBlN0cmluZwQBUwUBUgkA2QQBBQFTAwkAAQIFAVICBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgEBVAAEAVIJAKIIAQkBAUoAAwkAAQIFAVICBlN0cmluZwQBUwUBUgkA2QQBBQFTAwkAAQIFAVICBFVuaXQFBHVuaXQJAAIBAgtNYXRjaCBlcnJvcgEBVQEBVgQBUgkBAVEAAwkAAQIFAVICCkJ5dGVWZWN0b3IEAVcFAVIJAAACCAUBVg9jYWxsZXJQdWJsaWNLZXkFAVcDCQABAgUBUgIEVW5pdAkAAAIIBQFWBmNhbGxlcgUEdGhpcwkAAgECC01hdGNoIGVycm9yAQFYAQFWAwkBAVUBBQFWBgkAAgECEXBlcm1pc3Npb24gZGVuaWVkAQFZAQFaBAFSBQFaAwkAAQIFAVICA0ludAQCYWEFAVIFAmFhCQACAQIbZmFpbGVkIHRvIGNhc3QgaW50byBJbnRlZ2VyCwFWAQtjb25zdHJ1Y3RvcgsCYWICYWMCYWQCYWUCYWYCYWcCYWgCYWkCYWoCYWsCYWwEAmFtCQDMCAIJAQFYAQUBVgkAzAgCAwkBCWlzRGVmaW5lZAEJAKYIAQUCYWIGCQACAQIkSW52YWxpZCBhc3NldF9zdG9yZSBjb250cmFjdCBhZGRyZXNzCQDMCAIDCQEJaXNEZWZpbmVkAQkApggBBQJhYwYJAAIBAiFJbnZhbGlkIGJvb3N0aW5nIGNvbnRyYWN0IGFkZHJlc3MJAMwIAgMJAQlpc0RlZmluZWQBCQCmCAEFAmFmBgkAAgECI0ludmFsaWQgdXNlcl9wb29scyBjb250cmFjdCBhZGRyZXNzCQDMCAIDCQEJaXNEZWZpbmVkAQkApggBBQJhZAYJAAIBAiFJbnZhbGlkIGVtaXNzaW9uIGNvbnRyYWN0IGFkZHJlc3MJAMwIAgMJAQlpc0RlZmluZWQBCQCmCAEFAmFlBgkAAgECIEludmFsaWQgZmFjdG9yeSBjb250cmFjdCBhZGRyZXNzCQDMCAIDCQBnAgUCYWgAAAYJAAIBAhJJbnZhbGlkIGZlZSBhbW91bnQJAMwIAgMJAGYCBQJhagAABgkAAgECF0ludmFsaWQgdm90aW5nIGR1cmF0aW9uCQDMCAIDCQBnAgUCYWwAAAYJAAIBAhdJbnZhbGlkIGZpbmFsaXplIHJld2FyZAkAzAgCAwkBCWlzRGVmaW5lZAEJAOwHAQkA2QQBBQJhaQYJAAIBAhNJbnZhbGlkIFdYIGFzc2V0IElECQDMCAIDCQEJaXNEZWZpbmVkAQkA7AcBCQDZBAEFAmFrBgkAAgECFUludmFsaWQgVVNETiBhc3NldCBJRAUDbmlsAwkAAAIFAmFtBQJhbQkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIFAWcFAmFiCQDMCAIJAQtTdHJpbmdFbnRyeQIFAWoFAmFjCQDMCAIJAQtTdHJpbmdFbnRyeQIFAWkFAmFkCQDMCAIJAQtTdHJpbmdFbnRyeQIFAWsFAmFlCQDMCAIJAQtTdHJpbmdFbnRyeQIFAWgFAmFmCQDMCAIJAQtTdHJpbmdFbnRyeQIFAWwFAmFnCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQFiBQJhaAkAzAgCCQEMSW50ZWdlckVudHJ5AgUBZAUCYWoJAMwIAgkBDEludGVnZXJFbnRyeQIFAWUFAmFsCQDMCAIJAQtTdHJpbmdFbnRyeQIFAWYFAmFpCQDMCAIJAQtTdHJpbmdFbnRyeQIFAWMFAmFrBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BVgENY29uc3RydWN0b3JWMgECYW4EAmFtCQDMCAIJAQFYAQUBVgkAzAgCAwkAZgIFAmFuAAAGCQACAQIRaW52YWxpZCB0aHJlc2hvbGQFA25pbAMJAAACBQJhbQUCYW0JAJQKAgkAzAgCCQEMSW50ZWdlckVudHJ5AgUBbQUCYW4FA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFWAQdzdWdnZXN0AgFyAXMEAUcJAJQKAgUBcgUBcwQCYW8JAQV2YWx1ZQEJAJEDAggFAVYIcGF5bWVudHMAAAQCYXADCQAAAgUBcgIFV0FWRVMFBHVuaXQEAmFxCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAOwHAQkA2QQBBQFyAhhpbnZhbGlkIGFtb3VudEFzc2V0SWQgSUQDCQAAAggFAmFxCHNjcmlwdGVkBwYJAAIBAg5hc3NldCBpcyBzbWFydAMJAAACBQJhcAUCYXAEAmFtCQDMCAIDCQAAAgkA2AQBCQEFdmFsdWUBCAUCYW8HYXNzZXRJZAkBBXZhbHVlAQkAoggBBQFmBgkAAgECEWludmFsaWQgZmVlIGFzc2V0CQDMCAIDCQAAAggFAmFvBmFtb3VudAkBBXZhbHVlAQkAnwgBBQFiBgkAAgECEmludmFsaWQgZmVlIGFtb3VudAkAzAgCAwkAAAIJAJ8IAQkBAXECBQFyBQFzBQR1bml0BgkAAgECFmFscmVhZHkgaW4gdm90aW5nIGxpc3QJAMwIAgMJAQEhAQkBC3ZhbHVlT3JFbHNlAgkAmwgCBQFQCQEBRgEFAUcHBgkAAgECH3Bvb2wgaXMgaW4gZW1pc3Npb24gdm90aW5nIGxpc3QFA25pbAMJAAACBQJhbQUCYW0EAmFyBAFSCQD8BwQFAU8CDnN0YXR1c1JFQURPTkxZCQDMCAIFAXIJAMwIAgUBcwUDbmlsBQNuaWwDCQABAgUBUgIGU3RyaW5nBAFTBQFSAwkAAAIFAVMCBmFjdGl2ZQYJAAIBAhd1c2VyIHBvb2wgaXMgbm90IGFjdGl2ZQkAAgECF3VzZXIgcG9vbCBpcyBub3QgYWN0aXZlAwkAAAIFAmFyBQJhcgQCYXMDCQEBVQEFAVYFBHVuaXQEAmF0BAFSCQD8BwQFAUsCEmlzVmVyaWZpZWRSRUFET05MWQkAzAgCBQFyBQNuaWwFA25pbAMJAAECBQFSAgdCb29sZWFuBAJhdQUBUgMFAmF1BgkAAgECFWFzc2V0IGlzIG5vdCB2ZXJpZmllZAkAAgECFWFzc2V0IGlzIG5vdCB2ZXJpZmllZAMJAAACBQJhdAUCYXQFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4DCQAAAgUCYXMFAmFzBAJhdgkA/AcEBQFNAgRidXJuBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIIBQJhbwdhc3NldElkCAUCYW8GYW1vdW50BQNuaWwDCQAAAgUCYXYFAmF2BAJhdwQBUgkAnwgBCQEBdAIFAXIFAXMDCQABAgUBUgIDSW50BAJheAUBUgkAZAIFAmF4AAEAAAkAlAoCCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBcQIFAXIFAXMFAmF3CQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBdQMFAXIFAXMFAmF3BQZoZWlnaHQJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAXcDBQFyBQFzBQJhdwkBAXgCAgEwAgEwCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEBdAIFAXIFAXMFAmF3BQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BVgEEdm90ZQMBcgFzAmF5BAF2CQEFdmFsdWUBCQCfCAEJAQFxAgUBcgUBcwQCYXoJAGQCCQEFdmFsdWUBCQCfCAEJAQF1AwUBcgUBcwUBdgkBBXZhbHVlAQkAnwgBBQFkBAJhbQkAzAgCAwkBCWlzRGVmaW5lZAEJAJ8IAQkBAXECBQFyBQFzBgkAAgECInRoZSB0b2tlbiBpc24ndCBvbiB0aGUgdm90aW5nIGxpc3QJAMwIAgMJAGYCBQJhegUGaGVpZ2h0BgkAAgECEHRvbyBsYXRlIHRvIHZvdGUFA25pbAMJAAACBQJhbQUCYW0EAUQJAPwHBAUBTAIgZ2V0VXNlckd3eEFtb3VudEF0SGVpZ2h0UkVBRE9OTFkJAMwIAgkApQgBCAUBVgZjYWxsZXIJAMwIAgUCYXoFA25pbAUDbmlsBAJhQQMJAGYCCQEBWQEFAUQAAAYJAAIBAhJ5b3UgZG9uJ3QgaGF2ZSBnd3gDCQAAAgUCYUEFAmFBBAFFBAFSCQCiCAEJAQFBBAUBcgUBcwUBdgkApQgBCAUBVgZjYWxsZXIDCQABAgUBUgIGU3RyaW5nBAFTBQFSBAFFCQC1CQIFAVMFAWEEAmFCCQCRAwIFAUUAAQQCYUMJAJEDAgUBRQACBAJhRAMDCQAAAgUCYUMCA3llcwkAAAIFAmF5BgcGAwkAAAIFAmFDAgJubwkAAAIFAmF5BwcEAmFFAwUCYUQJAAACCQEBWQEFAUQJAQ1wYXJzZUludFZhbHVlAQUCYUIHBAJhRgMDBQJhRAUCYUUHCQACAQIReW91IGFscmVhZHkgdm90ZWQJAPwHBAUEdGhpcwIKY2FuY2VsVm90ZQkAzAgCBQFyCQDMCAIFAXMFA25pbAUDbmlsBQJhRgMJAAECBQFSAgRVbml0BAJhRwUBUgUCYUcJAAIBAgtNYXRjaCBlcnJvcgMJAAACBQFFBQFFBAJhSAkAtQkCCQEFdmFsdWUBCQCiCAEJAQF3AwUBcgUBcwUBdgUBYQQCYUkJAJEDAgUCYUgAAQQCYUoJAJEDAgUCYUgAAgQCYUsDBQJheQQCYUwJAGQCCQENcGFyc2VJbnRWYWx1ZQEFAmFJCQEBWQEFAUQJAMwIAgkApAMBBQJhTAkAzAgCBQJhSgUDbmlsBAJhTQkAZAIJAQ1wYXJzZUludFZhbHVlAQUCYUoJAQFZAQUBRAkAzAgCBQJhSQkAzAgCCQCkAwEFAmFNBQNuaWwEAmFOCQEBQQQFAXIFAXMFAXYJAKUIAQgFAVYGY2FsbGVyBAJhQgkBAUMCCQCkAwEJAQFZAQUBRAUCYXkJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCCQEBdwMFAXIFAXMFAXYJAQF4AgkAkQMCBQJhSwAACQCRAwIFAmFLAAEJAMwIAgkBC1N0cmluZ0VudHJ5AgUCYU4FAmFCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BVgEKY2FuY2VsVm90ZQIBcgFzBAJhTwMJAAACCAUBVgZjYWxsZXIFBHRoaXMJAKUIAQgFAVYMb3JpZ2luQ2FsbGVyCQClCAEIBQFWBmNhbGxlcgQBdgkBBXZhbHVlAQkAnwgBCQEBcQIFAXIFAXMEAmFtCQDMCAIDCQEJaXNEZWZpbmVkAQkAoggBCQEBdwMFAXIFAXMFAXYGCQACAQIXbm8gdm90ZSBmb3IgYXNzZXRzIHBhaXIFA25pbAMJAAACBQJhbQUCYW0EAUUJALUJAgkBBXZhbHVlAQkAoggBCQEBQQQFAXIFAXMFAXYFAmFPBQFhBAJhQgkAkQMCBQFFAAEEAmFDCQCRAwIFAUUAAgQCYUgJALUJAgkBBXZhbHVlAQkAoggBCQEBdwMFAXIFAXMFAXYFAWEEAmFJCQCRAwIFAmFIAAEEAmFKCQCRAwIFAmFIAAIEAmFQAwkAAAIFAmFDAgN5ZXMEAmFMCQBlAgkBDXBhcnNlSW50VmFsdWUBBQJhSQkBDXBhcnNlSW50VmFsdWUBBQJhQgkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQF3AwUBcgUBcwUBdgkBAXgCCQCkAwEFAmFMBQJhSgkAzAgCCQELRGVsZXRlRW50cnkBCQEBQQQFAXIFAXMFAXYFAmFPBQNuaWwFBHVuaXQEAmFNCQBlAgkBDXBhcnNlSW50VmFsdWUBBQJhSgkBDXBhcnNlSW50VmFsdWUBBQJhQgkAlAoCCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQF3AwUBcgUBcwUBdgkBAXgCBQJhSQkApAMBBQJhTQkAzAgCCQELRGVsZXRlRW50cnkBCQEBQQQFAXIFAXMFAXYFAmFPBQNuaWwFBHVuaXQFAmFQCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAVYBBnNldEZlZQECYVEEAmFtCQDMCAIJAQFYAQUBVgUDbmlsAwkAAAIFAmFtBQJhbQkAzAgCCQEMSW50ZWdlckVudHJ5AgUBYgUCYVEFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFWAQxzZXRUaHJlc2hvbGQBAmFSBAJhbQkAzAgCCQEBWAEFAVYJAMwIAgMJAGYCBQJhUgAABgkAAgECEWludmFsaWQgdGhyZXNob2xkBQNuaWwDCQAAAgUCYW0FAmFtCQCUCgIJAMwIAgkBDEludGVnZXJFbnRyeQIFAW0FAmFSBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BVgEIZmluYWxpemUCAXIBcwQBdgkBBXZhbHVlAQkAnwgBCQEBcQIFAXIFAXMEAmF6CQBkAgkBBXZhbHVlAQkAnwgBCQEBdQMFAXIFAXMFAXYJAQV2YWx1ZQEJAJ8IAQUBZAQCYW0JAMwIAgMJAQlpc0RlZmluZWQBCQCfCAEJAQFxAgUBcgUBcwYJAAIBAg5ubyBhc3NldHMgcGFpcgkAzAgCAwkAZwIFBmhlaWdodAUCYXoGCQACAQIiaW5zdWZmaWNpZW50IGhlaWdodCBmb3IgY29tcGxldGlvbgUDbmlsAwkAAAIFAmFtBQJhbQQCYUgJALUJAgkBBXZhbHVlAQkAoggBCQEBdwMFAXIFAXMFAXYFAWEEAmFJCQENcGFyc2VJbnRWYWx1ZQEJAJEDAgUCYUgAAQQCYUoJAQ1wYXJzZUludFZhbHVlAQkAkQMCBQJhSAACBAJhUwkAZAIFAmFJBQJhSgQCYW4JAQFwAQUBbQQCYVADAwkAZwIFAmFTBQJhbgkAZgIFAmFJBQJhSgcEAmFUCQD8BwQFAU4CFnNldFd4RW1pc3Npb25Qb29sTGFiZWwJAMwIAgUBcgkAzAgCBQFzBQNuaWwFA25pbAMJAAACBQJhVAUCYVQEAmFVCQD8BwQFAVACBmNyZWF0ZQkAzAgCBQFyCQDMCAIFAXMFA25pbAUDbmlsAwkAAAIFAmFVBQJhVQkAlAoCCQDMCAIJAQtEZWxldGVFbnRyeQEJAQFxAgUBcgUBcwUDbmlsBQR1bml0CQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQCUCgIJAMwIAgkBC0RlbGV0ZUVudHJ5AQkBAXECBQFyBQFzBQNuaWwFBHVuaXQFAmFQCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAVYBB2FwcHJvdmUCAXIBcwQCYVYDCQAAAggFAVYGY2FsbGVyBQFPBgkBAVgBBQFWAwkAAAIFAmFWBQJhVgQCYVQJAMwIAgkA/AcEBQFOAhZzZXRXeEVtaXNzaW9uUG9vbExhYmVsCQDMCAIFAXIJAMwIAgUBcwUDbmlsBQNuaWwJAMwIAgkA/AcEBQFQAgZjcmVhdGUJAMwIAgUBcgkAzAgCBQFzBQNuaWwFA25pbAUDbmlsAwkAAAIFAmFUBQJhVAkAlAoCBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BVgEKc2V0TWFuYWdlcgECYVcEAmFWCQEBWAEFAVYDCQAAAgUCYVYFAmFWBAJhWAkA2QQBBQJhVwMJAAACBQJhWAUCYVgJAMwIAgkBC1N0cmluZ0VudHJ5AgkBAUoABQJhVwUDbmlsCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuCQACAQIkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAVYBDmNvbmZpcm1NYW5hZ2VyAAQCYVkJAQFUAAQCYVoDCQEJaXNEZWZpbmVkAQUCYVkGCQACAQISbm8gcGVuZGluZyBtYW5hZ2VyAwkAAAIFAmFaBQJhWgQCYmEDCQAAAggFAVYPY2FsbGVyUHVibGljS2V5CQEFdmFsdWUBBQJhWQYJAAIBAht5b3UgYXJlIG5vdCBwZW5kaW5nIG1hbmFnZXIDCQAAAgUCYmEFAmJhCQDMCAIJAQtTdHJpbmdFbnRyeQIJAQFJAAkA2AQBCQEFdmFsdWUBBQJhWQkAzAgCCQELRGVsZXRlRW50cnkBCQEBSgAFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgECYmIBAmJjAAQCYmQEAVIJAQFRAAMJAAECBQFSAgpCeXRlVmVjdG9yBAFXBQFSBQFXAwkAAQIFAVICBFVuaXQIBQJiYg9zZW5kZXJQdWJsaWNLZXkJAAIBAgtNYXRjaCBlcnJvcgkA9AMDCAUCYmIJYm9keUJ5dGVzCQCRAwIIBQJiYgZwcm9vZnMAAAUCYmQ2MC7v", "height": 2548511, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 71Ud8HWFhSJpMryN2zzM7x5MpCJM3L1n2uBZFScoB3wA Next: AbKzGgoyXD78oYVqqA8tzZ8HChnQzyoDg9V168np9vLL Diff:
OldNewDifferences
1-{-# STDLIB_VERSION 5 #-}
1+{-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
437437
438438
439439 @Callable(V)
440-func setManager (aV) = {
441- let aW = X(V)
442- if ((aW == aW))
440+func approve (r,s) = {
441+ let aV = if ((V.caller == O))
442+ then true
443+ else X(V)
444+ if ((aV == aV))
443445 then {
444- let aX = fromBase58String(aV)
446+ let aT = [invoke(N, "setWxEmissionPoolLabel", [r, s], nil), invoke(P, "create", [r, s], nil)]
447+ if ((aT == aT))
448+ then $Tuple2(nil, unit)
449+ else throw("Strict value is not equal to itself.")
450+ }
451+ else throw("Strict value is not equal to itself.")
452+ }
453+
454+
455+
456+@Callable(V)
457+func setManager (aW) = {
458+ let aV = X(V)
459+ if ((aV == aV))
460+ then {
461+ let aX = fromBase58String(aW)
445462 if ((aX == aX))
446- then [StringEntry(J(), aV)]
463+ then [StringEntry(J(), aW)]
447464 else throw("Strict value is not equal to itself.")
448465 }
449466 else throw("Strict value is not equal to itself.")
Full:
OldNewDifferences
1-{-# STDLIB_VERSION 5 #-}
1+{-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let a = "__"
55
66 let b = makeString(["%s", "fee"], a)
77
88 let c = makeString(["%s", "usdnAssetId"], a)
99
1010 let d = makeString(["%s", "epochLength"], a)
1111
1212 let e = makeString(["%s", "finalizeReward"], a)
1313
1414 let f = makeString(["%s", "wxAssetId"], a)
1515
1616 let g = makeString(["%s", "assetsStoreContract"], a)
1717
1818 let h = makeString(["%s", "userPoolContract"], a)
1919
2020 let i = makeString(["%s", "emissionContract"], a)
2121
2222 let j = makeString(["%s", "boostingContract"], a)
2323
2424 let k = makeString(["%s", "factoryContract"], a)
2525
2626 let l = makeString(["%s", "votingEmissionContract"], a)
2727
2828 let m = makeString(["%s", "votingThreshold"], a)
2929
3030 func n (o) = valueOrErrorMessage(getString(this, o), (o + " is not defined"))
3131
3232
3333 func p (o) = valueOrErrorMessage(getInteger(this, o), (o + " is not defined"))
3434
3535
3636 func q (r,s) = makeString(["%s%s%s", "inList", r, s], a)
3737
3838
3939 func t (r,s) = makeString(["%s%s%s", "suggestIndex", r, s], a)
4040
4141
4242 func u (r,s,v) = makeString(["%s%s%s%d", "startHeight", r, s, toString(v)], a)
4343
4444
4545 func w (r,s,v) = makeString(["%s%s%s%d", "votingResult", r, s, toString(v)], a)
4646
4747
4848 func x (y,z) = makeString(["%d%d", y, z], a)
4949
5050
5151 func A (r,s,v,B) = makeString(["%s%s%s%d%s", "vote", r, s, toString(v), B], a)
5252
5353
5454 func C (D,E) = {
5555 let o = if (E)
5656 then makeString(["%d%s", D, "yes"], a)
5757 else makeString(["%d%s", D, "no"], a)
5858 o
5959 }
6060
6161
6262 func F (G) = {
6363 let H = G
6464 let r = H._1
6565 let s = H._2
6666 makeString(["%s%s%s", "inList", r, s], a)
6767 }
6868
6969
7070 func I () = "%s__managerPublicKey"
7171
7272
7373 func J () = "%s__pendingManagerPublicKey"
7474
7575
7676 let K = addressFromStringValue(n(g))
7777
7878 let L = addressFromStringValue(n(j))
7979
8080 let M = addressFromStringValue(n(i))
8181
8282 let N = addressFromStringValue(n(k))
8383
8484 let O = addressFromStringValue(n(h))
8585
8686 let P = addressFromStringValue(n(l))
8787
8888 func Q () = {
8989 let R = getString(I())
9090 if ($isInstanceOf(R, "String"))
9191 then {
9292 let S = R
9393 fromBase58String(S)
9494 }
9595 else if ($isInstanceOf(R, "Unit"))
9696 then unit
9797 else throw("Match error")
9898 }
9999
100100
101101 func T () = {
102102 let R = getString(J())
103103 if ($isInstanceOf(R, "String"))
104104 then {
105105 let S = R
106106 fromBase58String(S)
107107 }
108108 else if ($isInstanceOf(R, "Unit"))
109109 then unit
110110 else throw("Match error")
111111 }
112112
113113
114114 func U (V) = {
115115 let R = Q()
116116 if ($isInstanceOf(R, "ByteVector"))
117117 then {
118118 let W = R
119119 (V.callerPublicKey == W)
120120 }
121121 else if ($isInstanceOf(R, "Unit"))
122122 then (V.caller == this)
123123 else throw("Match error")
124124 }
125125
126126
127127 func X (V) = if (U(V))
128128 then true
129129 else throw("permission denied")
130130
131131
132132 func Y (Z) = {
133133 let R = Z
134134 if ($isInstanceOf(R, "Int"))
135135 then {
136136 let aa = R
137137 aa
138138 }
139139 else throw("failed to cast into Integer")
140140 }
141141
142142
143143 @Callable(V)
144144 func constructor (ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al) = {
145145 let am = [X(V), if (isDefined(addressFromString(ab)))
146146 then true
147147 else throw("Invalid asset_store contract address"), if (isDefined(addressFromString(ac)))
148148 then true
149149 else throw("Invalid boosting contract address"), if (isDefined(addressFromString(af)))
150150 then true
151151 else throw("Invalid user_pools contract address"), if (isDefined(addressFromString(ad)))
152152 then true
153153 else throw("Invalid emission contract address"), if (isDefined(addressFromString(ae)))
154154 then true
155155 else throw("Invalid factory contract address"), if ((ah >= 0))
156156 then true
157157 else throw("Invalid fee amount"), if ((aj > 0))
158158 then true
159159 else throw("Invalid voting duration"), if ((al >= 0))
160160 then true
161161 else throw("Invalid finalize reward"), if (isDefined(assetInfo(fromBase58String(ai))))
162162 then true
163163 else throw("Invalid WX asset ID"), if (isDefined(assetInfo(fromBase58String(ak))))
164164 then true
165165 else throw("Invalid USDN asset ID")]
166166 if ((am == am))
167167 then $Tuple2([StringEntry(g, ab), StringEntry(j, ac), StringEntry(i, ad), StringEntry(k, ae), StringEntry(h, af), StringEntry(l, ag), IntegerEntry(b, ah), IntegerEntry(d, aj), IntegerEntry(e, al), StringEntry(f, ai), StringEntry(c, ak)], unit)
168168 else throw("Strict value is not equal to itself.")
169169 }
170170
171171
172172
173173 @Callable(V)
174174 func constructorV2 (an) = {
175175 let am = [X(V), if ((an > 0))
176176 then true
177177 else throw("invalid threshold")]
178178 if ((am == am))
179179 then $Tuple2([IntegerEntry(m, an)], unit)
180180 else throw("Strict value is not equal to itself.")
181181 }
182182
183183
184184
185185 @Callable(V)
186186 func suggest (r,s) = {
187187 let G = $Tuple2(r, s)
188188 let ao = value(V.payments[0])
189189 let ap = if ((r == "WAVES"))
190190 then unit
191191 else {
192192 let aq = valueOrErrorMessage(assetInfo(fromBase58String(r)), "invalid amountAssetId ID")
193193 if ((aq.scripted == false))
194194 then true
195195 else throw("asset is smart")
196196 }
197197 if ((ap == ap))
198198 then {
199199 let am = [if ((toBase58String(value(ao.assetId)) == value(getString(f))))
200200 then true
201201 else throw("invalid fee asset"), if ((ao.amount == value(getInteger(b))))
202202 then true
203203 else throw("invalid fee amount"), if ((getInteger(q(r, s)) == unit))
204204 then true
205205 else throw("already in voting list"), if (!(valueOrElse(getBoolean(P, F(G)), false)))
206206 then true
207207 else throw("pool is in emission voting list")]
208208 if ((am == am))
209209 then {
210210 let ar = {
211211 let R = invoke(O, "statusREADONLY", [r, s], nil)
212212 if ($isInstanceOf(R, "String"))
213213 then {
214214 let S = R
215215 if ((S == "active"))
216216 then true
217217 else throw("user pool is not active")
218218 }
219219 else throw("user pool is not active")
220220 }
221221 if ((ar == ar))
222222 then {
223223 let as = if (U(V))
224224 then unit
225225 else {
226226 let at = {
227227 let R = invoke(K, "isVerifiedREADONLY", [r], nil)
228228 if ($isInstanceOf(R, "Boolean"))
229229 then {
230230 let au = R
231231 if (au)
232232 then true
233233 else throw("asset is not verified")
234234 }
235235 else throw("asset is not verified")
236236 }
237237 if ((at == at))
238238 then unit
239239 else throw("Strict value is not equal to itself.")
240240 }
241241 if ((as == as))
242242 then {
243243 let av = invoke(M, "burn", nil, [AttachedPayment(ao.assetId, ao.amount)])
244244 if ((av == av))
245245 then {
246246 let aw = {
247247 let R = getInteger(t(r, s))
248248 if ($isInstanceOf(R, "Int"))
249249 then {
250250 let ax = R
251251 (ax + 1)
252252 }
253253 else 0
254254 }
255255 $Tuple2([IntegerEntry(q(r, s), aw), IntegerEntry(u(r, s, aw), height), StringEntry(w(r, s, aw), x("0", "0")), IntegerEntry(t(r, s), aw)], unit)
256256 }
257257 else throw("Strict value is not equal to itself.")
258258 }
259259 else throw("Strict value is not equal to itself.")
260260 }
261261 else throw("Strict value is not equal to itself.")
262262 }
263263 else throw("Strict value is not equal to itself.")
264264 }
265265 else throw("Strict value is not equal to itself.")
266266 }
267267
268268
269269
270270 @Callable(V)
271271 func vote (r,s,ay) = {
272272 let v = value(getInteger(q(r, s)))
273273 let az = (value(getInteger(u(r, s, v))) + value(getInteger(d)))
274274 let am = [if (isDefined(getInteger(q(r, s))))
275275 then true
276276 else throw("the token isn't on the voting list"), if ((az > height))
277277 then true
278278 else throw("too late to vote")]
279279 if ((am == am))
280280 then {
281281 let D = invoke(L, "getUserGwxAmountAtHeightREADONLY", [toString(V.caller), az], nil)
282282 let aA = if ((Y(D) > 0))
283283 then true
284284 else throw("you don't have gwx")
285285 if ((aA == aA))
286286 then {
287287 let E = {
288288 let R = getString(A(r, s, v, toString(V.caller)))
289289 if ($isInstanceOf(R, "String"))
290290 then {
291291 let S = R
292292 let E = split(S, a)
293293 let aB = E[1]
294294 let aC = E[2]
295295 let aD = if (if ((aC == "yes"))
296296 then (ay == true)
297297 else false)
298298 then true
299299 else if ((aC == "no"))
300300 then (ay == false)
301301 else false
302302 let aE = if (aD)
303303 then (Y(D) == parseIntValue(aB))
304304 else false
305305 let aF = if (if (aD)
306306 then aE
307307 else false)
308308 then throw("you already voted")
309309 else invoke(this, "cancelVote", [r, s], nil)
310310 aF
311311 }
312312 else if ($isInstanceOf(R, "Unit"))
313313 then {
314314 let aG = R
315315 aG
316316 }
317317 else throw("Match error")
318318 }
319319 if ((E == E))
320320 then {
321321 let aH = split(value(getString(w(r, s, v))), a)
322322 let aI = aH[1]
323323 let aJ = aH[2]
324324 let aK = if (ay)
325325 then {
326326 let aL = (parseIntValue(aI) + Y(D))
327327 [toString(aL), aJ]
328328 }
329329 else {
330330 let aM = (parseIntValue(aJ) + Y(D))
331331 [aI, toString(aM)]
332332 }
333333 let aN = A(r, s, v, toString(V.caller))
334334 let aB = C(toString(Y(D)), ay)
335335 $Tuple2([StringEntry(w(r, s, v), x(aK[0], aK[1])), StringEntry(aN, aB)], unit)
336336 }
337337 else throw("Strict value is not equal to itself.")
338338 }
339339 else throw("Strict value is not equal to itself.")
340340 }
341341 else throw("Strict value is not equal to itself.")
342342 }
343343
344344
345345
346346 @Callable(V)
347347 func cancelVote (r,s) = {
348348 let aO = if ((V.caller == this))
349349 then toString(V.originCaller)
350350 else toString(V.caller)
351351 let v = value(getInteger(q(r, s)))
352352 let am = [if (isDefined(getString(w(r, s, v))))
353353 then true
354354 else throw("no vote for assets pair")]
355355 if ((am == am))
356356 then {
357357 let E = split(value(getString(A(r, s, v, aO))), a)
358358 let aB = E[1]
359359 let aC = E[2]
360360 let aH = split(value(getString(w(r, s, v))), a)
361361 let aI = aH[1]
362362 let aJ = aH[2]
363363 let aP = if ((aC == "yes"))
364364 then {
365365 let aL = (parseIntValue(aI) - parseIntValue(aB))
366366 $Tuple2([StringEntry(w(r, s, v), x(toString(aL), aJ)), DeleteEntry(A(r, s, v, aO))], unit)
367367 }
368368 else {
369369 let aM = (parseIntValue(aJ) - parseIntValue(aB))
370370 $Tuple2([StringEntry(w(r, s, v), x(aI, toString(aM))), DeleteEntry(A(r, s, v, aO))], unit)
371371 }
372372 aP
373373 }
374374 else throw("Strict value is not equal to itself.")
375375 }
376376
377377
378378
379379 @Callable(V)
380380 func setFee (aQ) = {
381381 let am = [X(V)]
382382 if ((am == am))
383383 then [IntegerEntry(b, aQ)]
384384 else throw("Strict value is not equal to itself.")
385385 }
386386
387387
388388
389389 @Callable(V)
390390 func setThreshold (aR) = {
391391 let am = [X(V), if ((aR > 0))
392392 then true
393393 else throw("invalid threshold")]
394394 if ((am == am))
395395 then $Tuple2([IntegerEntry(m, aR)], unit)
396396 else throw("Strict value is not equal to itself.")
397397 }
398398
399399
400400
401401 @Callable(V)
402402 func finalize (r,s) = {
403403 let v = value(getInteger(q(r, s)))
404404 let az = (value(getInteger(u(r, s, v))) + value(getInteger(d)))
405405 let am = [if (isDefined(getInteger(q(r, s))))
406406 then true
407407 else throw("no assets pair"), if ((height >= az))
408408 then true
409409 else throw("insufficient height for completion")]
410410 if ((am == am))
411411 then {
412412 let aH = split(value(getString(w(r, s, v))), a)
413413 let aI = parseIntValue(aH[1])
414414 let aJ = parseIntValue(aH[2])
415415 let aS = (aI + aJ)
416416 let an = p(m)
417417 let aP = if (if ((aS >= an))
418418 then (aI > aJ)
419419 else false)
420420 then {
421421 let aT = invoke(N, "setWxEmissionPoolLabel", [r, s], nil)
422422 if ((aT == aT))
423423 then {
424424 let aU = invoke(P, "create", [r, s], nil)
425425 if ((aU == aU))
426426 then $Tuple2([DeleteEntry(q(r, s))], unit)
427427 else throw("Strict value is not equal to itself.")
428428 }
429429 else throw("Strict value is not equal to itself.")
430430 }
431431 else $Tuple2([DeleteEntry(q(r, s))], unit)
432432 aP
433433 }
434434 else throw("Strict value is not equal to itself.")
435435 }
436436
437437
438438
439439 @Callable(V)
440-func setManager (aV) = {
441- let aW = X(V)
442- if ((aW == aW))
440+func approve (r,s) = {
441+ let aV = if ((V.caller == O))
442+ then true
443+ else X(V)
444+ if ((aV == aV))
443445 then {
444- let aX = fromBase58String(aV)
446+ let aT = [invoke(N, "setWxEmissionPoolLabel", [r, s], nil), invoke(P, "create", [r, s], nil)]
447+ if ((aT == aT))
448+ then $Tuple2(nil, unit)
449+ else throw("Strict value is not equal to itself.")
450+ }
451+ else throw("Strict value is not equal to itself.")
452+ }
453+
454+
455+
456+@Callable(V)
457+func setManager (aW) = {
458+ let aV = X(V)
459+ if ((aV == aV))
460+ then {
461+ let aX = fromBase58String(aW)
445462 if ((aX == aX))
446- then [StringEntry(J(), aV)]
463+ then [StringEntry(J(), aW)]
447464 else throw("Strict value is not equal to itself.")
448465 }
449466 else throw("Strict value is not equal to itself.")
450467 }
451468
452469
453470
454471 @Callable(V)
455472 func confirmManager () = {
456473 let aY = T()
457474 let aZ = if (isDefined(aY))
458475 then true
459476 else throw("no pending manager")
460477 if ((aZ == aZ))
461478 then {
462479 let ba = if ((V.callerPublicKey == value(aY)))
463480 then true
464481 else throw("you are not pending manager")
465482 if ((ba == ba))
466483 then [StringEntry(I(), toBase58String(value(aY))), DeleteEntry(J())]
467484 else throw("Strict value is not equal to itself.")
468485 }
469486 else throw("Strict value is not equal to itself.")
470487 }
471488
472489
473490 @Verifier(bb)
474491 func bc () = {
475492 let bd = {
476493 let R = Q()
477494 if ($isInstanceOf(R, "ByteVector"))
478495 then {
479496 let W = R
480497 W
481498 }
482499 else if ($isInstanceOf(R, "Unit"))
483500 then bb.senderPublicKey
484501 else throw("Match error")
485502 }
486503 sigVerify(bb.bodyBytes, bb.proofs[0], bd)
487504 }
488505

github/deemru/w8io/169f3d6 
66.20 ms