tx · 5QnrPNj3XpWY6MobQruy1WQfvxywGkTr6UXPTN6mM4ot

3PEwRcYNAUtoFvKpBhKoiwajnZfdoDR6h4h:  -0.00700000 Waves

2023.07.12 18:16 [3728472] smart account 3PEwRcYNAUtoFvKpBhKoiwajnZfdoDR6h4h > SELF 0.00000000 Waves

{ "type": 13, "id": "5QnrPNj3XpWY6MobQruy1WQfvxywGkTr6UXPTN6mM4ot", "fee": 700000, "feeAssetId": null, "timestamp": 1689175079023, "version": 1, "sender": "3PEwRcYNAUtoFvKpBhKoiwajnZfdoDR6h4h", "senderPublicKey": "GDPfYHA6NUZCmin3J7LWZhCvSjBcna8HebyvQyrw17v", "proofs": [ "4Eqr729SPxTxH9K3AwYfUxGa2WsDbLpY3U3y9GrtwrAYSyQjsB5p5Z4oAthBDkAqTPxsXa1XsTVX26HeopBqNdmv" ], "script": "base64:BgIKCAISBAoCAQgSAAUBFXdhdmVsZXRzUGVyQmxvY2tTdG9yZQEHYWRkcmVzcwkArAICBQdhZGRyZXNzAhNfd2F2ZWxldHNfcGVyX2Jsb2NrARBzdGFydEhlaWdodFN0b3JlAQdhZGRyZXNzCQCsAgIFB2FkZHJlc3MCDV9zdGFydF9oZWlnaHQBDGNsYWltZWRTdG9yZQEHYWRkcmVzcwkArAICBQdhZGRyZXNzAhB3YXZlbGV0c19jbGFpbWVkAAhzdW1TdG9yZQIWd2F2ZWxldHNfcGVyX2Jsb2NrX3N1bQAHbWF4aW11bQkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzAhZ3YXZlbGV0c19wZXJfYmxvY2tfbWF4AICEr18CAWkBCnNldFNjZWR1bGUCEHdhdmVsZXRzUGVyQmxvY2sHYWRkcmVzcwMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECDmludmFsaWQgY2FsbGVyAwkAZgIAAAUQd2F2ZWxldHNQZXJCbG9jawkAAgECH3dhdmVsZXRzUGVyQmxvY2sgc2hvdWxkIGJlID49IDAEDXBlckJsb2NrU3RvcmUJARV3YXZlbGV0c1BlckJsb2NrU3RvcmUBBQdhZGRyZXNzBAtvbGRQZXJCbG9jawkBC3ZhbHVlT3JFbHNlAgkAnwgBBQ1wZXJCbG9ja1N0b3JlAAAEA3N1bQkBC3ZhbHVlT3JFbHNlAgkAnwgBBQhzdW1TdG9yZQAABAZuZXdTdW0JAGQCCQBlAgUDc3VtBQtvbGRQZXJCbG9jawUQd2F2ZWxldHNQZXJCbG9jawMJAGYCBQZuZXdTdW0FB21heGltdW0JAAIBAhBtYXhpbXVtIGV4Y2VlZGVkCQDMCAIJAQxJbnRlZ2VyRW50cnkCBQ1wZXJCbG9ja1N0b3JlBRB3YXZlbGV0c1BlckJsb2NrCQDMCAIJAQxJbnRlZ2VyRW50cnkCCQEQc3RhcnRIZWlnaHRTdG9yZQEFB2FkZHJlc3MFBmhlaWdodAkAzAgCCQEMSW50ZWdlckVudHJ5AgkBDGNsYWltZWRTdG9yZQEFB2FkZHJlc3MAAAkAzAgCCQEMSW50ZWdlckVudHJ5AgUIc3VtU3RvcmUFBm5ld1N1bQUDbmlsAWkBBWNsYWltAAQHYWRkcmVzcwkApQgBCAUBaQZjYWxsZXIECHBlckJsb2NrCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJoIAgUEdGhpcwkBFXdhdmVsZXRzUGVyQmxvY2tTdG9yZQEFB2FkZHJlc3MCG2FkZHJlc3MgcGVyIGJsb2NrIG5vdCBmb3VuZAQLc3RhcnRIZWlnaHQJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAmggCBQR0aGlzCQEQc3RhcnRIZWlnaHRTdG9yZQEFB2FkZHJlc3MCHmFkZHJlc3Mgc3RhcnQgaGVpZ2h0IG5vdCBmb3VuZAQHY2xhaW1lZAkBC3ZhbHVlT3JFbHNlAgkAmggCBQR0aGlzCQEMY2xhaW1lZFN0b3JlAQUHYWRkcmVzcwAABAZibG9ja3MJAGUCBQZoZWlnaHQFC3N0YXJ0SGVpZ2h0BAZhbW91bnQJAGUCCQBoAgUIcGVyQmxvY2sFBmJsb2NrcwUHY2xhaW1lZAQHcGF5bWVudAkAlwMBCQDMCAIICQDvBwEFBHRoaXMHcmVndWxhcgkAzAgCBQZhbW91bnQFA25pbAkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFB3BheW1lbnQFBHVuaXQJAMwIAgkBDEludGVnZXJFbnRyeQIJAQxjbGFpbWVkU3RvcmUBBQdhZGRyZXNzCQBkAgUHY2xhaW1lZAUHcGF5bWVudAUDbmlsAQJ0eAEGdmVyaWZ5AAQIYnlWb3RpbmcEDWNvbmZpZ0FkZHJlc3MJARFAZXh0ck5hdGl2ZSgxMDYyKQECIzNQR1dodHZDU3oxVFJKaGUzQkpTcnZRaWdydEt1eVhzZ21hBA12b3RpbmdSZXN1bHRzCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDWNvbmZpZ0FkZHJlc3MCFmNvbnRyYWN0X3ZvdGluZ19yZXN1bHQCGW5vIGNvbnRyYWN0X3ZvdGluZ19yZXN1bHQCHmludmFsaWQgY29udHJhY3Rfdm90aW5nX3Jlc3VsdAoBDm9wQWxsb3dlZFN0b3JlAQJvcAkArAICCQCsAgICA29wXwUCb3ACCF9hbGxvd2VkBAdlbmFibGVkCQELdmFsdWVPckVsc2UCCQCbCAIFDWNvbmZpZ0FkZHJlc3MJAQ5vcEFsbG93ZWRTdG9yZQECGWNoaWxkX2dvdmVybmFuY2VfYXBwbHlfdHgGAwkBASEBBQdlbmFibGVkCQACAQIrdHggYXBwbGljYXRpb24gdGhyb3cgZ292ZXJuYW5jZSBub3QgZW5hYmxlZAkAZwIFBmhlaWdodAkBEUBleHRyTmF0aXZlKDEwNTApAgUNdm90aW5nUmVzdWx0cwkArAICCQCsAgIJAKwCAgIZcHJvcG9zYWxfYWxsb3dfYnJvYWRjYXN0XwkApQgBBQR0aGlzAgFfCQDYBAEIBQJ0eAJpZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAIBQJ0eA9zZW5kZXJQdWJsaWNLZXkGBQhieVZvdGluZ+cSjDU=", "chainId": 87, "height": 3728472, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: DxzVZ5pnMYtAv2eyHinXwgtexsFg7bFGFaxMB7jxYSRi Next: 54eLdMmLT8BDDcDsNuey9HsP7aGVgFPZiBEgRAgutQaB Diff:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+func waveletsPerBlockStore (address) = (address + "_wavelets_per_block")
45
6+
7+func startHeightStore (address) = (address + "_start_height")
8+
9+
10+func claimedStore (address) = (address + "wavelets_claimed")
11+
12+
13+let sumStore = "wavelets_per_block_sum"
14+
15+let maximum = valueOrElse(getInteger(this, "wavelets_per_block_max"), 200000000)
16+
17+@Callable(i)
18+func setScedule (waveletsPerBlock,address) = if ((i.caller != this))
19+ then throw("invalid caller")
20+ else if ((0 > waveletsPerBlock))
21+ then throw("waveletsPerBlock should be >= 0")
22+ else {
23+ let perBlockStore = waveletsPerBlockStore(address)
24+ let oldPerBlock = valueOrElse(getInteger(perBlockStore), 0)
25+ let sum = valueOrElse(getInteger(sumStore), 0)
26+ let newSum = ((sum - oldPerBlock) + waveletsPerBlock)
27+ if ((newSum > maximum))
28+ then throw("maximum exceeded")
29+ else [IntegerEntry(perBlockStore, waveletsPerBlock), IntegerEntry(startHeightStore(address), height), IntegerEntry(claimedStore(address), 0), IntegerEntry(sumStore, newSum)]
30+ }
31+
32+
33+
34+@Callable(i)
35+func claim () = {
36+ let address = toString(i.caller)
37+ let perBlock = valueOrErrorMessage(getInteger(this, waveletsPerBlockStore(address)), "address per block not found")
38+ let startHeight = valueOrErrorMessage(getInteger(this, startHeightStore(address)), "address start height not found")
39+ let claimed = valueOrElse(getInteger(this, claimedStore(address)), 0)
40+ let blocks = (height - startHeight)
41+ let amount = ((perBlock * blocks) - claimed)
42+ let payment = min([wavesBalance(this).regular, amount])
43+[ScriptTransfer(i.caller, payment, unit), IntegerEntry(claimedStore(address), (claimed + payment))]
44+ }
545
646
747 @Verifier(tx)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
4+func waveletsPerBlockStore (address) = (address + "_wavelets_per_block")
45
6+
7+func startHeightStore (address) = (address + "_start_height")
8+
9+
10+func claimedStore (address) = (address + "wavelets_claimed")
11+
12+
13+let sumStore = "wavelets_per_block_sum"
14+
15+let maximum = valueOrElse(getInteger(this, "wavelets_per_block_max"), 200000000)
16+
17+@Callable(i)
18+func setScedule (waveletsPerBlock,address) = if ((i.caller != this))
19+ then throw("invalid caller")
20+ else if ((0 > waveletsPerBlock))
21+ then throw("waveletsPerBlock should be >= 0")
22+ else {
23+ let perBlockStore = waveletsPerBlockStore(address)
24+ let oldPerBlock = valueOrElse(getInteger(perBlockStore), 0)
25+ let sum = valueOrElse(getInteger(sumStore), 0)
26+ let newSum = ((sum - oldPerBlock) + waveletsPerBlock)
27+ if ((newSum > maximum))
28+ then throw("maximum exceeded")
29+ else [IntegerEntry(perBlockStore, waveletsPerBlock), IntegerEntry(startHeightStore(address), height), IntegerEntry(claimedStore(address), 0), IntegerEntry(sumStore, newSum)]
30+ }
31+
32+
33+
34+@Callable(i)
35+func claim () = {
36+ let address = toString(i.caller)
37+ let perBlock = valueOrErrorMessage(getInteger(this, waveletsPerBlockStore(address)), "address per block not found")
38+ let startHeight = valueOrErrorMessage(getInteger(this, startHeightStore(address)), "address start height not found")
39+ let claimed = valueOrElse(getInteger(this, claimedStore(address)), 0)
40+ let blocks = (height - startHeight)
41+ let amount = ((perBlock * blocks) - claimed)
42+ let payment = min([wavesBalance(this).regular, amount])
43+[ScriptTransfer(i.caller, payment, unit), IntegerEntry(claimedStore(address), (claimed + payment))]
44+ }
545
646
747 @Verifier(tx)
848 func verify () = {
949 let byVoting = {
1050 let configAddress = addressFromStringValue("3PGWhtvCSz1TRJhe3BJSrvQigrtKuyXsgma")
1151 let votingResults = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(configAddress, "contract_voting_result"), "no contract_voting_result")), "invalid contract_voting_result")
1252 func opAllowedStore (op) = (("op_" + op) + "_allowed")
1353
1454 let enabled = valueOrElse(getBoolean(configAddress, opAllowedStore("child_governance_apply_tx")), true)
1555 if (!(enabled))
1656 then throw("tx application throw governance not enabled")
1757 else (height >= getIntegerValue(votingResults, ((("proposal_allow_broadcast_" + toString(this)) + "_") + toBase58String(tx.id))))
1858 }
1959 if (sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey))
2060 then true
2161 else byVoting
2262 }
2363

github/deemru/w8io/3ef1775 
23.70 ms