tx · 7e3ws1JJnYUWU6azAivFFTXvW8kN2RBDPZaFdAUzZRcL

3PAFi86jNXNmgc4Fx4RnV6aJLXcW4zn99LJ:  -0.01000000 Waves

2022.10.28 10:00 [3357330] smart account 3PAFi86jNXNmgc4Fx4RnV6aJLXcW4zn99LJ > SELF 0.00000000 Waves

{ "type": 13, "id": "7e3ws1JJnYUWU6azAivFFTXvW8kN2RBDPZaFdAUzZRcL", "fee": 1000000, "feeAssetId": null, "timestamp": 1666940426028, "version": 2, "chainId": 87, "sender": "3PAFi86jNXNmgc4Fx4RnV6aJLXcW4zn99LJ", "senderPublicKey": "2Ni36Ct1u8dkjUXcT2dTiAd1tKpf3A4F7YBr4v5D4viQ", "proofs": [ "2w6LHuivHvj1UzGu6FuzHjihmytQRQz1rpFKtGrYzJK4RbKVkhqZhK3c8JdP9M2BiBnehFkaCxTGuDWxixezLHpy" ], "script": "base64:BgKPAQgCEgQKAgQBEgASABIAIgZvcmFjbGUiB3BsdXRvSWQiCmRjYVRva2VuSUQiAWkiAXMiCmxvY2tQZXJpb2QiA3BtdCIGY2FsbGVyIglwbXRBbW91bnQiB2JhbGFuY2UiC3RvdGFsU3Rha2VkIgVzdGFrZSIGbG9ja2VkIgd1bnN0YWtlIgJ0eCIGdmVyaWZ5AwABYQkBB0FkZHJlc3MBARoBVyVmLZkWkzS9IkDGZ1QhJI/EgXHb3KOQgAABYgEgkLUCnPWP/clF2lOVDD+6tK9TJl1IbjM1wqFMZx8tGPQAAWMBINQFMpMVU3H9y0GdAD1R0F6KUw14iO5Mw6j7tFe0tiDOBAFkAQRsb2NrAgFlAWYDCQECIT0CCAUBZAZjYWxsZXIFAWEJAAIBAhZZb3UgYXJlIG5vdCBhdXRob3JpemVkCQDMCAIJAQxCb29sZWFuRW50cnkCAgdfbG9ja2VkBQFlCQDMCAIJAQxJbnRlZ2VyRW50cnkCAgtfbG9ja1BlcmlvZAUBZgUDbmlsAWQBBGluaXQAAwkBAiE9AggFAWQGY2FsbGVyBQFhCQACAQIhVGhlIGFwcGxpY2F0aW9uIGlzIG5vdCBhdXRob3JpemVkCQDMCAIJAQxJbnRlZ2VyRW50cnkCAgpfaW5pdEJsb2NrBQZoZWlnaHQJAMwIAgkBDEludGVnZXJFbnRyeQICDV9zdG9wRGVwb3NpdHMJAGQCBQZoZWlnaHQAwBYJAMwIAgkBDEludGVnZXJFbnRyeQICCV90cmVhc3VyeQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzAglfdHJlYXN1cnkAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgIMX3VubG9ja0Jsb2NrCQBkAgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwILX2xvY2tQZXJpb2QFBmhlaWdodAUDbmlsAWQBB2RlcG9zaXQABAFnCQCRAwIIBQFkCHBheW1lbnRzAAAEAWgJAKUIAQgFAWQGY2FsbGVyAwkBAiE9AggFAWcHYXNzZXRJZAUBYgkAAgECEEluY29yZWN0IHBheW1lbnQDCQBmAgUGaGVpZ2h0CQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAg1fc3RvcERlcG9zaXRzCQACAQITRGVwb3NpdHMgYXJlIGhhbHRlZAQBaQgFAWcGYW1vdW50BAFqCQELdmFsdWVPckVsc2UCCQCaCAIFBHRoaXMFAWgAAAQBawkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwIJX3RyZWFzdXJ5BAFsCQD8BwQJAQdBZGRyZXNzAQEaAVc+e2fEjG9uYKjSzY/ueZ8xTkeorkMU/bACBXN0YWtlBQNuaWwJAMwIAgUBZwUDbmlsAwkAAAIFAWwFAWwJAMwIAgkBDEludGVnZXJFbnRyeQIFAWgJAGQCBQFpBQFqCQDMCAIJAQxJbnRlZ2VyRW50cnkCAglfdHJlYXN1cnkJAGQCBQFpBQFrCQDMCAIJAQdSZWlzc3VlAwUBYwUBaQYJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWQGY2FsbGVyBQFpBQFjBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BZAEId2l0aGRyYXcABAFnCQCRAwIIBQFkCHBheW1lbnRzAAAEAWgJAKUIAQgFAWQGY2FsbGVyBAFtCQERQGV4dHJOYXRpdmUoMTA1MSkCBQR0aGlzAgdfbG9ja2VkAwkBAiE9AggFAWcHYXNzZXRJZAUBYwkAAgECIlRoZSBwYXltZW50IHlvdSBtYWRlIHdhcyBpbmNvcnJlY3QDBQFtCQACAQJEWW91IGNhbm5vdCB3aXRoZHJhdyB5b3VyIGJhc2UgY2FwaXRhbCB1bnRpbCB0aGUgZW5kIG9mIHRoZSBEQ0Egcm91bmQDCQBmAgkBEUBleHRyTmF0aXZlKDEwNTApAgUEdGhpcwINX3VuY2xvY2tCbG9jawUGaGVpZ2h0CQACAQIoVGhlIERDQSByb3VuZCBoYXMgbm90IGJlZW4gY29tcGxldGVkIHlldAQBaQgFAWcGYW1vdW50BAFqCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzBQFoBAFrCQERQGV4dHJOYXRpdmUoMTA1MCkCBQR0aGlzAglfdHJlYXN1cnkEAW4JAPwHBAkBB0FkZHJlc3MBARoBVz57Z8SMb25gqNLNj+55nzFOR6iuQxT9sAIHdW5zdGFrZQkAzAgCBQFpBQNuaWwFA25pbAMJAAACBQFuBQFuCQDMCAIJAQRCdXJuAgUBYwUBaQkAzAgCCQEMSW50ZWdlckVudHJ5AgUBaAkAZQIFAWoFAWkJAMwIAgkBDEludGVnZXJFbnRyeQICCV90cmVhc3VyeQkAZQIFAWoFAWkJAMwIAgkBDlNjcmlwdFRyYW5zZmVyAwgFAWQGY2FsbGVyBQFpBQFiBQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAW8BAXAACQD0AwMIBQFvCWJvZHlCeXRlcwkAkQMCCAUBbwZwcm9vZnMAAAgFAW8Pc2VuZGVyUHVibGljS2V5fZEmog==", "height": 3357330, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6M16P9Zk8uKWETp73k2vkCKxU1CxCpb2VWdtvo1TQ9Rq Next: 8ARneP8XpZgZkaMcKU6tYMiZNz74rzxruzdqvuKRKx7X Diff:
OldNewDifferences
2727 let caller = toString(i.caller)
2828 if ((pmt.assetId != plutoId))
2929 then throw("Incorect payment")
30- else if ((height > getIntegerValue(this, "_stopBlock")))
30+ else if ((height > getIntegerValue(this, "_stopDeposits")))
3131 then throw("Deposits are halted")
3232 else {
3333 let pmtAmount = pmt.amount
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let oracle = Address(base58'3P5Le8obA7djMJtggqEKjZ6QYVbkS161cRM')
55
66 let plutoId = base58'Ajso6nTTjptu2UHLx6hfSXVtHFtRBJCkKYd5SAyj7zf5'
77
88 let dcaTokenID = base58'FGe2fT41osaHcE6JRKtXbUwHaWFRB4Ygye9vS5hRJWJy'
99
1010 @Callable(i)
1111 func lock (s,lockPeriod) = if ((i.caller != oracle))
1212 then throw("You are not authorized")
1313 else [BooleanEntry("_locked", s), IntegerEntry("_lockPeriod", lockPeriod)]
1414
1515
1616
1717 @Callable(i)
1818 func init () = if ((i.caller != oracle))
1919 then throw("The application is not authorized")
2020 else [IntegerEntry("_initBlock", height), IntegerEntry("_stopDeposits", (height + 2880)), IntegerEntry("_treasury", valueOrElse(getInteger(this, "_treasury"), 0)), IntegerEntry("_unlockBlock", (getIntegerValue(this, "_lockPeriod") + height))]
2121
2222
2323
2424 @Callable(i)
2525 func deposit () = {
2626 let pmt = i.payments[0]
2727 let caller = toString(i.caller)
2828 if ((pmt.assetId != plutoId))
2929 then throw("Incorect payment")
30- else if ((height > getIntegerValue(this, "_stopBlock")))
30+ else if ((height > getIntegerValue(this, "_stopDeposits")))
3131 then throw("Deposits are halted")
3232 else {
3333 let pmtAmount = pmt.amount
3434 let balance = valueOrElse(getInteger(this, caller), 0)
3535 let totalStaked = getIntegerValue(this, "_treasury")
3636 let stake = invoke(Address(base58'3P7dGTVZp8VLDYy3XEaUQbiqfi9cMK1Ly5q'), "stake", nil, [pmt])
3737 if ((stake == stake))
3838 then [IntegerEntry(caller, (pmtAmount + balance)), IntegerEntry("_treasury", (pmtAmount + totalStaked)), Reissue(dcaTokenID, pmtAmount, true), ScriptTransfer(i.caller, pmtAmount, dcaTokenID)]
3939 else throw("Strict value is not equal to itself.")
4040 }
4141 }
4242
4343
4444
4545 @Callable(i)
4646 func withdraw () = {
4747 let pmt = i.payments[0]
4848 let caller = toString(i.caller)
4949 let locked = getBooleanValue(this, "_locked")
5050 if ((pmt.assetId != dcaTokenID))
5151 then throw("The payment you made was incorrect")
5252 else if (locked)
5353 then throw("You cannot withdraw your base capital until the end of the DCA round")
5454 else if ((getIntegerValue(this, "_unclockBlock") > height))
5555 then throw("The DCA round has not been completed yet")
5656 else {
5757 let pmtAmount = pmt.amount
5858 let balance = getIntegerValue(this, caller)
5959 let totalStaked = getIntegerValue(this, "_treasury")
6060 let unstake = invoke(Address(base58'3P7dGTVZp8VLDYy3XEaUQbiqfi9cMK1Ly5q'), "unstake", [pmtAmount], nil)
6161 if ((unstake == unstake))
6262 then [Burn(dcaTokenID, pmtAmount), IntegerEntry(caller, (balance - pmtAmount)), IntegerEntry("_treasury", (balance - pmtAmount)), ScriptTransfer(i.caller, pmtAmount, plutoId)]
6363 else throw("Strict value is not equal to itself.")
6464 }
6565 }
6666
6767
6868 @Verifier(tx)
6969 func verify () = sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
7070

github/deemru/w8io/3ef1775 
33.23 ms