tx · 4hE5BDx9vP5hxYu8AMRJu9MRvrDBnhY3EKAu2tPtEvzA

3P36HH7i6BBuuNp7FHQd6WX8gzfogi778i6:  -0.01200000 Waves

2023.03.07 18:22 [3545332] smart account 3P36HH7i6BBuuNp7FHQd6WX8gzfogi778i6 > SELF 0.00000000 Waves

{ "type": 13, "id": "4hE5BDx9vP5hxYu8AMRJu9MRvrDBnhY3EKAu2tPtEvzA", "fee": 1200000, "feeAssetId": null, "timestamp": 1678202551297, "version": 2, "chainId": 87, "sender": "3P36HH7i6BBuuNp7FHQd6WX8gzfogi778i6", "senderPublicKey": "3xRzVfzGz2mW1Y3XAqQwVN4RiiWSgAHpLFmaF24hhfY9", "proofs": [ "3zHeSYVE6NEMLdN6z1B1nzrgXEUDX1h53PwKqez59pRENu69SW3R1nENZYnZPoZqFxRCGEWkKbF6h9ECQsLJyb5e" ], "script": "base64:BgIWCAISAwoBCBIGCgQICAEIEgMKAQgSABkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgdhZGRyZXNzA2tleQQHJG1hdGNoMAkAnQgCBQdhZGRyZXNzBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwBQFhAgABDmtleUJsYWNrbGlzdGVkAQpkdWNrbGluZ0lkCQCsAgIJAKwCAgIJZHVja2xpbmdfBQpkdWNrbGluZ0lkAgxfYmxhY2tsaXN0ZWQBFXRyeUdldEludGVnZXJFeHRlcm5hbAIHYWRkcmVzcwNrZXkEByRtYXRjaDAJAJoIAgUHYWRkcmVzcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQBYgUHJG1hdGNoMAUBYgAAAQx0cnlHZXRTdHJpbmcBA2tleQkBFHRyeUdldFN0cmluZ0V4dGVybmFsAgUEdGhpcwUDa2V5AQlnZXRPcmFjbGUACQEHQWRkcmVzcwEJANkEAQkBDHRyeUdldFN0cmluZwECFHN0YXRpY19vcmFjbGVBZGRyZXNzAQ9nZXRTcGljZUFzc2V0SWQACQDZBAEJARR0cnlHZXRTdHJpbmdFeHRlcm5hbAIJAQlnZXRPcmFjbGUAAhNzdGF0aWNfc3BpY2VBc3NldElkARFnZXRCcmVlZGVyQWRkcmVzcwAJAQdBZGRyZXNzAQkA2QQBCQEUdHJ5R2V0U3RyaW5nRXh0ZXJuYWwCCQEJZ2V0T3JhY2xlAAIVc3RhdGljX2JyZWVkZXJBZGRyZXNzABZLR2xvYmFsSXNzdWVkVGltZXN0YW1wAhdnbG9iYWxfaXNzdWVkX3RpbWVzdGFtcAEMa2V5VG90YWxGZWVkAQpkdWNrbGluZ0lkCQCsAgIJAKwCAgIJZHVja2xpbmdfBQpkdWNrbGluZ0lkAgVfZmVlZAEGa2V5R2VuAQpkdWNrbGluZ0lkCQCsAgIJAKwCAgIJZHVja2xpbmdfBQpkdWNrbGluZ0lkAgRfZ2VuAQ1rZXlGZWVkTmVlZGVkAQpkdWNrbGluZ0lkCQCsAgIJAKwCAgIJZHVja2xpbmdfBQpkdWNrbGluZ0lkAgtfZmVlZE5lZWRlZAEQZ2V0RHVja2xpbmdQcmljZQEKZHVja2xpbmdJZAQDa2V5CQENa2V5RmVlZE5lZWRlZAEFCmR1Y2tsaW5nSWQEByRtYXRjaDAJAJoIAgUEdGhpcwUDa2V5AwkAAQIFByRtYXRjaDACA0ludAQBYgUHJG1hdGNoMAkAaAIFAWIAgMLXLwCAoNnmHQEba2V5RHVja2xpbmdGZWRMYXN0VGltZXN0YW1wAQpkdWNrbGluZ0lkCQCsAgIJAKwCAgIJZHVja2xpbmdfBQpkdWNrbGluZ0lkAgpfZmVkTGFzdFRzARBrZXlEdWNrbGluZ0xldmVsAQpkdWNrbGluZ0lkCQCsAgIJAKwCAgIJZHVja2xpbmdfBQpkdWNrbGluZ0lkAgZfbGV2ZWwBEGtleUR1Y2tsaW5nR3Jvd24BCmR1Y2tsaW5nSWQJAKwCAgkArAICAglkdWNrbGluZ18FCmR1Y2tsaW5nSWQCBl9ncm93bgESa2V5U3RhcnRQZXJjZW50YWdlAQpkdWNrbGluZ0lkCQCsAgIJAKwCAgIJZHVja2xpbmdfBQpkdWNrbGluZ0lkAhBfc3RhcnRQZXJjZW50YWdlAQhrZXlPd25lcgEKZHVja2xpbmdJZAkArAICCQCsAgICCWR1Y2tsaW5nXwUKZHVja2xpbmdJZAIGX293bmVyAQ10cnlHZXRJbnRlZ2VyAQNrZXkEA3ZhbAQHJG1hdGNoMAkAmggCBQR0aGlzBQNrZXkDCQABAgUHJG1hdGNoMAIDSW50BAFiBQckbWF0Y2gwBQFiAAAFA3ZhbAEHZ2V0Qm9vbAEDa2V5BAckbWF0Y2gwCQCbCAIFBHRoaXMFA2tleQMJAAECBQckbWF0Y2gwAgdCb29sZWFuBAFiBQckbWF0Y2gwBQFiBwESZ2V0Q3VycmVudExldmVsSW50AQpkdWNrbGluZ0lkBAprRHVja0xldmVsCQEQa2V5RHVja2xpbmdMZXZlbAEFCmR1Y2tsaW5nSWQEByRtYXRjaDAJAKIIAQUKa0R1Y2tMZXZlbAMJAAECBQckbWF0Y2gwAgZTdHJpbmcEAXMFByRtYXRjaDAJAQ1wYXJzZUludFZhbHVlAQUBcwMJAAECBQckbWF0Y2gwAgRVbml0BAF1BQckbWF0Y2gwAAAJAAIBAh1CR0NMQkk6IFdlaXJkIHZhbHVlIGRldGVjdGVkIQETZ2V0TGFzdEZlZFRpbWVzdGFtcAEKZHVja2xpbmdJZAQQbGFzdEZlZFRpbWVzdGFtcAkBDXRyeUdldEludGVnZXIBCQEba2V5RHVja2xpbmdGZWRMYXN0VGltZXN0YW1wAQUKZHVja2xpbmdJZAMJAGYCBRBsYXN0RmVkVGltZXN0YW1wAAAFEGxhc3RGZWRUaW1lc3RhbXAIBQlsYXN0QmxvY2sJdGltZXN0YW1wARljYWxjdWxhdGVOZXdEdWNrbGluZ0xldmVsAgpkdWNrbGluZ0lkDXBheW1lbnRBbW91bnQECWN1cnJlbnRUcwgFCWxhc3RCbG9jawl0aW1lc3RhbXAEF2xhc3RGZWRUaW1lc3RhbXBDaGVja2VkCQETZ2V0TGFzdEZlZFRpbWVzdGFtcAEFCmR1Y2tsaW5nSWQEB2ZlZERpZmYJAGUCBQljdXJyZW50VHMFF2xhc3RGZWRUaW1lc3RhbXBDaGVja2VkBAZncm93dGgFDXBheW1lbnRBbW91bnQEDGN1cnJlbnRMZXZlbAkBEmdldEN1cnJlbnRMZXZlbEludAEFCmR1Y2tsaW5nSWQECG5ld0xldmVsCQBkAgUMY3VycmVudExldmVsBQ1wYXltZW50QW1vdW50AwkAZgIFCG5ld0xldmVsCQEQZ2V0RHVja2xpbmdQcmljZQEFCmR1Y2tsaW5nSWQJAAIBCQCsAgIJAKwCAgIzQkNOREw6IFlvdSBhcmUgZmVlZGluZyB5b3VyIGR1Y2tsaW5nIHRvIG11Y2ghIE9ubHkgCQCkAwEJAGUCCQEQZ2V0RHVja2xpbmdQcmljZQEFCmR1Y2tsaW5nSWQFDGN1cnJlbnRMZXZlbAIHbmVlZGVkIQQGcmVzdWx0CQCkAwEFCG5ld0xldmVsCQCUCgIFBnJlc3VsdAkAzAgCCQCsAgICDWN1cnJlbnRMZXZlbD0JAKQDAQUMY3VycmVudExldmVsCQDMCAIJAKwCAgIJbmV3TGV2ZWw9CQCkAwEFCG5ld0xldmVsCQDMCAIJAKwCAgIHZ3Jvd3RoPQkApAMBBQZncm93dGgJAMwIAgkArAICAgpsYXN0RmVkVHM9CQCkAwEFF2xhc3RGZWRUaW1lc3RhbXBDaGVja2VkCQDMCAIJAKwCAgIIZmVkRGlmZj0JAKQDAQUHZmVkRGlmZgUDbmlsAQVhc0ludAEFdmFsdWUEByRtYXRjaDAFBXZhbHVlAwkAAQIFByRtYXRjaDACA0ludAQDaW50BQckbWF0Y2gwBQNpbnQJAAIBAh5CQUk6IHdyb25nIHR5cGUsIGV4cGVjdGVkOiBJbnQBDXRyeUdldEJvb2xlYW4BA2tleQQHJG1hdGNoMAkAoAgBBQNrZXkDCQABAgUHJG1hdGNoMAIHQm9vbGVhbgQBYgUHJG1hdGNoMAUBYgcBCWlzVGVzdEVudgAJAQdnZXRCb29sAQIHVEVTVEVOVgQBaQEPY29uZmlndXJlT3JhY2xlAQZvcmFjbGUDCQECIT0CCAUBaQZjYWxsZXIFBHRoaXMJAAIBAg9CQ086IGFkbWluIG9ubHkJAMwIAgkBC1N0cmluZ0VudHJ5AgIUc3RhdGljX29yYWNsZUFkZHJlc3MFBm9yYWNsZQUDbmlsAWkBDWlzc3VlRHVja2xpbmcEB2FkZHJlc3MHdHhJZFN0cgtzcGljZUFtb3VudANnZW4DCQECIT0CCAUBaQZjYWxsZXIJARFnZXRCcmVlZGVyQWRkcmVzcwAJAAIBAiJCSUQ6IFlvdSBjYW4ndCBpc3N1ZSBmcmVlIGR1Y2tsaW5nBAVhc3NldAkAwwgHAhBCQUJZLTExMTExMTExLUhaAgAAAQAABwUEdW5pdAUGaGVpZ2h0BAdhc3NldElkCQC4CAEFBWFzc2V0CQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgkArAICCQCsAgIJAKwCAgUHYWRkcmVzcwIBXwUHdHhJZFN0cgIDX2RpCQDYBAEFB2Fzc2V0SWQJAMwIAgkBDEludGVnZXJFbnRyeQICDHN0YXRzX2Ftb3VudAkAZAIJAQ10cnlHZXRJbnRlZ2VyAQIMc3RhdHNfYW1vdW50AAEJAMwIAgkBDEJvb2xlYW5FbnRyeQIJAKwCAgkArAICAglkdWNrbGluZ18JANgEAQUHYXNzZXRJZAIRX2lzc3VlZEJ5RmVlZENhbGwJAAACCAUBaQZjYWxsZXIFBHRoaXMJAMwIAgkBDEludGVnZXJFbnRyeQIJARJrZXlTdGFydFBlcmNlbnRhZ2UBCQDYBAEFB2Fzc2V0SWQAAAkAzAgCCQELU3RyaW5nRW50cnkCCQEIa2V5T3duZXIBCQDYBAEFB2Fzc2V0SWQFB2FkZHJlc3MJAMwIAgkBC1N0cmluZ0VudHJ5AgkBBmtleUdlbgEJANgEAQUHYXNzZXRJZAUDZ2VuCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQENa2V5RmVlZE5lZWRlZAEJANgEAQUHYXNzZXRJZAULc3BpY2VBbW91bnQJAMwIAgUFYXNzZXQJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwkBBXZhbHVlAQkApggBBQdhZGRyZXNzAAEFB2Fzc2V0SWQFA25pbAkA2AQBBQdhc3NldElkAWkBDGZlZWREdWNrbGluZwEKZHVja2xpbmdJZAQNYWRkcmVzc1N0cmluZwkApQgBCAUBaQZjYWxsZXIEDnJlYWxEdWNrbGluZ0lkAwMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQYJAQIhPQIICQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAHYXNzZXRJZAkBD2dldFNwaWNlQXNzZXRJZAAJAAIBAi5CRkQ6IEJhZCBwYXltZW50IGF0dGFjaGVkIChhc3NldFtzXSBvciBhbW91bnQpBAtibGFja0xpc3RlZAkBDXRyeUdldEJvb2xlYW4BCQEOa2V5QmxhY2tsaXN0ZWQBBQpkdWNrbGluZ0lkAwULYmxhY2tMaXN0ZWQJAAIBAidCRkQ6IENhbiBub3QgZmVlZCBibGFja2xpc3RlZCBkdWNrbGluZyEDCQEHZ2V0Qm9vbAEJARBrZXlEdWNrbGluZ0dyb3duAQUKZHVja2xpbmdJZAkAAgECHkJGRDogRHVja2xpbmcgaXMgYWxyZWFkeSBncm93bgMJAAACBQpkdWNrbGluZ0lkAgAJAAIBAiNCRkQ6IFBsZWFzZSBoYXRjaCBhIGR1Y2tsaW5nIGZpcnN0IQQNZHVja2xpbmdPd25lcgkBDHRyeUdldFN0cmluZwEJAQhrZXlPd25lcgEFCmR1Y2tsaW5nSWQED2R1Y2tsaW5nSWRDaGVjawkBBXZhbHVlAQkA7AcBCQDZBAEFCmR1Y2tsaW5nSWQDCQECIT0CCQDwBwIIBQFpBmNhbGxlcggFD2R1Y2tsaW5nSWRDaGVjawJpZAABCQACAQIpQkZEOiBZb3UncmUgbm90IHRoZSBvd25lciBvZiB0aGUgZHVja2xpbmcDCQECIT0CBQ1kdWNrbGluZ093bmVyCQClCAEIBQFpBmNhbGxlcgkAAgECPkJGRDogWW91IGNhbiBvbmx5IGZlZWQgZHVja2xpbmdzIHRoYXQgeW91IHdvbi9ib3VnaHQgeW91cnNlbGYhAwkBAiE9AggFD2R1Y2tsaW5nSWRDaGVjawZpc3N1ZXIFBHRoaXMJAAIBAiRCRkQ6IENhbnQgZmluZCBkdWNrbGluZyB3aXRoIHN1Y2ggaWQEEGR1Y2tsaW5nSWRTdHJpbmcJANgEAQgFD2R1Y2tsaW5nSWRDaGVjawJpZAUQZHVja2xpbmdJZFN0cmluZwQSa0R1Y2tsaW5nTGFzdEZlZFRzCQEba2V5RHVja2xpbmdGZWRMYXN0VGltZXN0YW1wAQUKZHVja2xpbmdJZAQOY3VycmVudFBheW1lbnQICQEFdmFsdWUBCQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50BAlrTmV3TGV2ZWwJARBrZXlEdWNrbGluZ0xldmVsAQUOcmVhbER1Y2tsaW5nSWQECmtUb3RhbEZlZWQJAQxrZXlUb3RhbEZlZWQBBQ5yZWFsRHVja2xpbmdJZAQJdG90YWxGZWVkCQENdHJ5R2V0SW50ZWdlcgEFCmtUb3RhbEZlZWQEDGtGZWVkVHhTdGF0cwkArAICCQCsAgIJAKwCAgIJZHVja2xpbmdfBQ5yZWFsRHVja2xpbmdJZAIGX3N0YXRfCQCkAwEIBQlsYXN0QmxvY2sJdGltZXN0YW1wBBBjYWxjdWxhdGVSZXN1bHRzCQEZY2FsY3VsYXRlTmV3RHVja2xpbmdMZXZlbAIFDnJlYWxEdWNrbGluZ0lkBQ5jdXJyZW50UGF5bWVudAkAzAgCCQEMSW50ZWdlckVudHJ5AgUSa0R1Y2tsaW5nTGFzdEZlZFRzCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAzAgCCQEMSW50ZWdlckVudHJ5AgUKa1RvdGFsRmVlZAkAZAIFCXRvdGFsRmVlZAUOY3VycmVudFBheW1lbnQJAMwIAgkBDEludGVnZXJFbnRyeQIFDGtGZWVkVHhTdGF0cwUOY3VycmVudFBheW1lbnQJAMwIAgkBC1N0cmluZ0VudHJ5AgUJa05ld0xldmVsCAUQY2FsY3VsYXRlUmVzdWx0cwJfMQkAzAgCCQELU3RyaW5nRW50cnkCCQCsAgIFDGtGZWVkVHhTdGF0cwIGX2RlYnVnCQC5CQIIBRBjYWxjdWxhdGVSZXN1bHRzAl8yAgE7BQNuaWwBaQEUdHVybkR1Y2tsaW5nSW50b0R1Y2sAAwkBAiE9AggFAWkGY2FsbGVyCQERZ2V0QnJlZWRlckFkZHJlc3MACQACAQIeQlRESVQ6IFlvdSBjYW4ndCB0dXJuIGR1Y2tsaW5nBAdhZGRyZXNzCQClCAEIBQFpBmNhbGxlcgQEdHhJZAkA2AQBCAUBaQ10cmFuc2FjdGlvbklkBBRsYXN0SXNzdWVkRHVja2xpbmdUcwkBDXRyeUdldEludGVnZXIBBRZLR2xvYmFsSXNzdWVkVGltZXN0YW1wBAtmaXZlTWluSW5NcwkAaAIJAGgCAAEAPADoBwQIdGltZURpZmYJAGUCCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAkAZAIFFGxhc3RJc3N1ZWREdWNrbGluZ1RzBQtmaXZlTWluSW5NcwMDCQBmAgUUbGFzdElzc3VlZER1Y2tsaW5nVHMAAAkAZgIAAAUIdGltZURpZmYHCQACAQkArAICCQCsAgICREJURElUOiBDYW4gaXNzdWUgZHVja2xpbmdzIG9ubHkgb25jZSBwZXIgMSBtaW51dGVzLCBwbGVhc2Ugd2FpdCBmb3IgCQCkAwEJAGsDBQh0aW1lRGlmZgABAOgHAgUgc2VjLgMJAQIhPQIJAJADAQgFAWkIcGF5bWVudHMAAQkAAgECMEJURElUOiBCYWQgcGF5bWVudCBhdHRhY2hlZCAoYXNzZXRbc10gb3IgYW1vdW50KQMJAQIhPQIICQCRAwIIBQFpCHBheW1lbnRzAAAGYW1vdW50AAEJAAIBAhtCVERJVDogUGxlYXNlIGF0dGFjaCBhIG5mdCEEA3BtdAkBBXZhbHVlAQkA7AcBCQEFdmFsdWUBCAkBBXZhbHVlAQkAkQMCCAUBaQhwYXltZW50cwAAB2Fzc2V0SWQEBXByaWNlCQEQZ2V0RHVja2xpbmdQcmljZQEJANgEAQgFA3BtdAJpZAMJAGYCBQVwcmljZQkBEmdldEN1cnJlbnRMZXZlbEludAEJANgEAQgFA3BtdAJpZAkAAgEJAKwCAgkArAICCQCsAgICI0JURElUOiBEdWNrbGluZyBpcyBub3QgZ3Jvd24geWV0Li4uCQCkAwEJARJnZXRDdXJyZW50TGV2ZWxJbnQBCQDYBAEIBQNwbXQCaWQCASAJAKQDAQUFcHJpY2UDCQECIT0CCAUDcG10Bmlzc3VlcgUEdGhpcwkAAgECLEJURElUOiBDYW4gdXNlIG9ubHkgZHVja2xpbmdzIGZyb20gdGhpcyBkQXBwBA5rRHVja2xpbmdHcm93bgkBEGtleUR1Y2tsaW5nR3Jvd24BCQDYBAEIBQNwbXQCaWQJAJQKAgkAzAgCCQEMQm9vbGVhbkVudHJ5AgUOa0R1Y2tsaW5nR3Jvd24GCQDMCAIJAQxJbnRlZ2VyRW50cnkCBRZLR2xvYmFsSXNzdWVkVGltZXN0YW1wCAUJbGFzdEJsb2NrCXRpbWVzdGFtcAUDbmlsCQDYBAEIBQNwbXQCaWQBAnR4AQZ2ZXJpZnkAAwkBCWlzVGVzdEVudgAJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXkECWZpcnN0VXNlcgEg3tbGUeRTFtBlgOsBmioL0PeXUfocdpF+m44GQ3cXvSUECnNlY29uZFVzZXIBIMFs347t041zj4ui+fqJD/R1zUQbVHJSo7Sc0lakLeB1BAl0aGlyZFVzZXIBIOdb9I6q0vlJnm6EJrj5fh/cZ6h93Cu41Op7zfJoCsElBA9maXJzdFVzZXJTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQlmaXJzdFVzZXIAAQMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAEFCWZpcnN0VXNlcgABAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAgUJZmlyc3RVc2VyAAEAAAQQc2Vjb25kVXNlclNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFCnNlY29uZFVzZXIAAQMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAEFCnNlY29uZFVzZXIAAQMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAIFCnNlY29uZFVzZXIAAQAABA90aGlyZFVzZXJTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQl0aGlyZFVzZXIAAQMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAEFCXRoaXJkVXNlcgABAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAgUJdGhpcmRVc2VyAAEAAAQPc2lnbmF0dXJlc0NvdW50CQBkAgkAZAIFD2ZpcnN0VXNlclNpZ25lZAUQc2Vjb25kVXNlclNpZ25lZAUPdGhpcmRVc2VyU2lnbmVkBAckbWF0Y2gwBQJ0eAkAZwIFD3NpZ25hdHVyZXNDb3VudAACLHrl2A==", "height": 3545332, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 5FQWB9xCA4D7BoyeTM3kv6Y8iGQV4mfMgQ95CTAMEpL8 Next: HjemqaG8PrWixoCxdpqex8QgTzaGZzRbjVicEuMo4AJr Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 func a (b,c) = {
55 let d = getString(b, c)
66 if ($isInstanceOf(d, "String"))
77 then {
88 let e = d
99 e
1010 }
1111 else ""
1212 }
1313
1414
1515 func f (g) = (("duckling_" + g) + "_blacklisted")
1616
1717
1818 func h (b,c) = {
1919 let d = getInteger(b, c)
2020 if ($isInstanceOf(d, "Int"))
2121 then {
2222 let i = d
2323 i
2424 }
2525 else 0
2626 }
2727
2828
2929 func j (c) = a(this, c)
3030
3131
3232 func k () = Address(fromBase58String(j("static_oracleAddress")))
3333
3434
3535 func l () = fromBase58String(a(k(), "static_spiceAssetId"))
3636
3737
3838 func m () = Address(fromBase58String(a(k(), "static_breederAddress")))
3939
4040
4141 let n = "global_issued_timestamp"
4242
4343 func o (g) = (("duckling_" + g) + "_feed")
4444
4545
4646 func p (g) = (("duckling_" + g) + "_gen")
4747
4848
4949 func q (g) = (("duckling_" + g) + "_feedNeeded")
5050
5151
5252 func r (g) = {
5353 let c = q(g)
5454 let d = getInteger(this, c)
5555 if ($isInstanceOf(d, "Int"))
5656 then {
5757 let i = d
5858 (i * 100000000)
5959 }
6060 else 8000000000
6161 }
6262
6363
6464 func s (g) = (("duckling_" + g) + "_fedLastTs")
6565
6666
6767 func t (g) = (("duckling_" + g) + "_level")
6868
6969
7070 func u (g) = (("duckling_" + g) + "_grown")
7171
7272
7373 func v (g) = (("duckling_" + g) + "_startPercentage")
7474
7575
7676 func w (g) = (("duckling_" + g) + "_owner")
7777
7878
7979 func x (c) = {
8080 let y = {
8181 let d = getInteger(this, c)
8282 if ($isInstanceOf(d, "Int"))
8383 then {
8484 let i = d
8585 i
8686 }
8787 else 0
8888 }
8989 y
9090 }
9191
9292
9393 func z (c) = {
9494 let d = getBoolean(this, c)
9595 if ($isInstanceOf(d, "Boolean"))
9696 then {
9797 let i = d
9898 i
9999 }
100100 else false
101101 }
102102
103103
104104 func A (g) = {
105105 let B = t(g)
106106 let d = getString(B)
107107 if ($isInstanceOf(d, "String"))
108108 then {
109109 let C = d
110110 parseIntValue(C)
111111 }
112112 else if ($isInstanceOf(d, "Unit"))
113113 then {
114114 let D = d
115115 0
116116 }
117117 else throw("BGCLBI: Weird value detected!")
118118 }
119119
120120
121121 func E (g) = {
122122 let F = x(s(g))
123123 if ((F > 0))
124124 then F
125125 else lastBlock.timestamp
126126 }
127127
128128
129129 func G (g,H) = {
130130 let I = lastBlock.timestamp
131131 let J = E(g)
132132 let K = (I - J)
133133 let L = H
134134 let M = A(g)
135135 let N = (M + H)
136136 if ((N > r(g)))
137137 then throw((("BCNDL: You are feeding your duckling to much! Only " + toString((r(g) - M))) + "needed!"))
138138 else {
139139 let O = toString(N)
140140 $Tuple2(O, [("currentLevel=" + toString(M)), ("newLevel=" + toString(N)), ("growth=" + toString(L)), ("lastFedTs=" + toString(J)), ("fedDiff=" + toString(K))])
141141 }
142142 }
143143
144144
145145 func P (Q) = {
146146 let d = Q
147147 if ($isInstanceOf(d, "Int"))
148148 then {
149149 let R = d
150150 R
151151 }
152152 else throw("BAI: wrong type, expected: Int")
153153 }
154154
155155
156156 func S (c) = {
157157 let d = getBoolean(c)
158158 if ($isInstanceOf(d, "Boolean"))
159159 then {
160160 let i = d
161161 i
162162 }
163163 else false
164164 }
165165
166166
167167 func T () = z("TESTENV")
168168
169169
170170 @Callable(U)
171171 func configureOracle (V) = if ((U.caller != this))
172172 then throw("BCO: admin only")
173173 else [StringEntry("static_oracleAddress", V)]
174174
175175
176176
177177 @Callable(U)
178178 func issueDuckling (b,W,X,Y) = if ((U.caller != m()))
179179 then throw("BID: You can't issue free duckling")
180180 else {
181181 let Z = Issue("BABY-11111111-HZ", "", 1, 0, false, unit, height)
182182 let aa = calculateAssetId(Z)
183183 $Tuple2([StringEntry((((b + "_") + W) + "_di"), toBase58String(aa)), IntegerEntry("stats_amount", (x("stats_amount") + 1)), BooleanEntry((("duckling_" + toBase58String(aa)) + "_issuedByFeedCall"), (U.caller == this)), IntegerEntry(v(toBase58String(aa)), 0), StringEntry(w(toBase58String(aa)), b), StringEntry(p(toBase58String(aa)), Y), IntegerEntry(q(toBase58String(aa)), X), Z, ScriptTransfer(value(addressFromString(b)), 1, aa)], toBase58String(aa))
184184 }
185185
186186
187187
188188 @Callable(U)
189189 func feedDuckling (g) = {
190190 let ab = toString(U.caller)
191191 let ac = if (if ((size(U.payments) != 1))
192192 then true
193193 else (value(U.payments[0]).assetId != l()))
194194 then throw("BFD: Bad payment attached (asset[s] or amount)")
195195 else {
196196 let ad = S(f(g))
197197 if (ad)
198198 then throw("BFD: Can not feed blacklisted duckling!")
199199 else if (z(u(g)))
200200 then throw("BFD: Duckling is already grown")
201201 else if ((g == ""))
202202 then throw("BFD: Please hatch a duckling first!")
203203 else {
204204 let ae = j(w(g))
205205 let af = value(assetInfo(fromBase58String(g)))
206206 if ((assetBalance(U.caller, af.id) != 1))
207207 then throw("BFD: You're not the owner of the duckling")
208208 else if ((ae != toString(U.caller)))
209209 then throw("BFD: You can only feed ducklings that you won/bought yourself!")
210210 else if ((af.issuer != this))
211211 then throw("BFD: Cant find duckling with such id")
212212 else {
213213 let ag = toBase58String(af.id)
214214 ag
215215 }
216216 }
217217 }
218218 let ah = s(g)
219219 let ai = value(U.payments[0]).amount
220220 let aj = t(ac)
221221 let ak = o(ac)
222222 let al = x(ak)
223223 let am = ((("duckling_" + ac) + "_stat_") + toString(lastBlock.timestamp))
224224 let an = G(ac, ai)
225225 [IntegerEntry(ah, lastBlock.timestamp), IntegerEntry(ak, (al + ai)), IntegerEntry(am, ai), StringEntry(aj, an._1), StringEntry((am + "_debug"), makeString(an._2, ";"))]
226226 }
227227
228228
229229
230230 @Callable(U)
231231 func turnDucklingIntoDuck () = if ((U.caller != m()))
232232 then throw("BTDIT: You can't turn duckling")
233233 else {
234234 let b = toString(U.caller)
235235 let ao = toBase58String(U.transactionId)
236236 let ap = x(n)
237237 let aq = ((1 * 60) * 1000)
238238 let ar = (lastBlock.timestamp - (ap + aq))
239239 if (if ((ap > 0))
240240 then (0 > ar)
241241 else false)
242242 then throw((("BTDIT: Can issue ducklings only once per 1 minutes, please wait for " + toString(fraction(ar, 1, 1000))) + " sec."))
243243 else if ((size(U.payments) != 1))
244244 then throw("BTDIT: Bad payment attached (asset[s] or amount)")
245245 else if ((U.payments[0].amount != 1))
246246 then throw("BTDIT: Please attach a nft!")
247247 else {
248248 let as = value(assetInfo(value(value(U.payments[0]).assetId)))
249249 let at = r(toBase58String(as.id))
250250 if ((at > A(toBase58String(as.id))))
251251 then throw(((("BTDIT: Duckling is not grown yet..." + toString(A(toBase58String(as.id)))) + " ") + toString(at)))
252252 else if ((as.issuer != this))
253253 then throw("BTDIT: Can use only ducklings from this dApp")
254254 else {
255255 let au = u(toBase58String(as.id))
256256 $Tuple2([BooleanEntry(au, true), IntegerEntry(n, lastBlock.timestamp)], toBase58String(as.id))
257257 }
258258 }
259259 }
260260
261261
262262 @Verifier(av)
263263 func aw () = if (T())
264264 then sigVerify(av.bodyBytes, av.proofs[0], av.senderPublicKey)
265265 else {
266266 let ax = base58'FzsTVRXqD46KW5yj6qGNVrsouvWjpCQvD1446A96iGt4'
267267 let ay = base58'E23yUg8eun5nXB1nZRDf7RTyRADKxQhGNXdpTYonEvtU'
268268 let az = base58'Ga8WEBTPXbHuoXRD355mQ6ms8PsM2RFYKeA1mEP32CFe'
269269 let aA = if (sigVerify(av.bodyBytes, av.proofs[0], ax))
270270 then 1
271271 else if (sigVerify(av.bodyBytes, av.proofs[1], ax))
272272 then 1
273273 else if (sigVerify(av.bodyBytes, av.proofs[2], ax))
274274 then 1
275275 else 0
276276 let aB = if (sigVerify(av.bodyBytes, av.proofs[0], ay))
277277 then 1
278278 else if (sigVerify(av.bodyBytes, av.proofs[1], ay))
279279 then 1
280280 else if (sigVerify(av.bodyBytes, av.proofs[2], ay))
281281 then 1
282282 else 0
283283 let aC = if (sigVerify(av.bodyBytes, av.proofs[0], az))
284284 then 1
285285 else if (sigVerify(av.bodyBytes, av.proofs[1], az))
286286 then 1
287287 else if (sigVerify(av.bodyBytes, av.proofs[2], az))
288288 then 1
289289 else 0
290290 let aD = ((aA + aB) + aC)
291291 let d = av
292292 (aD >= 2)
293293 }
294294

github/deemru/w8io/873ac7e 
48.58 ms