tx · G27giaLnMMGyBRjw4p1UN3i4JnRggxWK4ecpSXVjzNJa

3PCi8eHuHPLFHV8gDpvQSxL96sNpwfMDKEU:  -0.00300000 Waves

2023.10.04 17:48 [3849853] smart account 3PCi8eHuHPLFHV8gDpvQSxL96sNpwfMDKEU > SELF 0.00000000 Waves

{ "type": 13, "id": "G27giaLnMMGyBRjw4p1UN3i4JnRggxWK4ecpSXVjzNJa", "fee": 300000, "feeAssetId": null, "timestamp": 1696430912559, "version": 1, "sender": "3PCi8eHuHPLFHV8gDpvQSxL96sNpwfMDKEU", "senderPublicKey": "9oqsvm6WDyCN8kXzNoCDz7YeKYx5oz3b8CdFRTA1xXEk", "proofs": [ "2zBb9q4Dq8HgpQdenutR9w5GvBFYodajy31NLXniR8bqVa16gjN9n1STuqRoNPQVd67gHCTUPGyhyroqd3kzo1e5" ], "script": "base64:BgIOCAISBQoDCAEEEgMKAQgMARB3cml0ZUNvbnN0U3RyaW5nAgNrZXkFdmFsdWUDCQEBIQEJAQlpc0RlZmluZWQBCQCdCAIFBHRoaXMFA2tleQkBC1N0cmluZ0VudHJ5AgUDa2V5BQV2YWx1ZQkAAgEJAKwCAgIVYWxyZWFkeSBpbml0aWFsaXplZDogBQNrZXkAEmNvbmZpZ0FkZHJlc3NTdG9yZQIGY29uZmlnAA1jb25maWdBZGRyZXNzCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFBHRoaXMFEmNvbmZpZ0FkZHJlc3NTdG9yZQIYY29uZmlnIGFkZHJlc3Mgbm90IGZvdW5kAhZpbnZhbGlkIGNvbmZpZyBhZGRyZXNzAQdhbGxvd2VkAQJvcAkA/AcEBQ1jb25maWdBZGRyZXNzAglvcEFsbG93ZWQJAMwIAgUCb3AFA25pbAUDbmlsAA12b3RpbmdSZXN1bHRzCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDWNvbmZpZ0FkZHJlc3MCFmNvbnRyYWN0X3ZvdGluZ19yZXN1bHQCKWdlbmVyaWMgbWludGVyOiBubyBjb250cmFjdF92b3RpbmdfcmVzdWx0Ah5pbnZhbGlkIGNvbnRyYWN0X3ZvdGluZ19yZXN1bHQBDm9wQWxsb3dlZFN0b3JlAQJvcAkArAICCQCsAgICA29wXwUCb3ACCF9hbGxvd2VkAAZIRUlHSFQFBmhlaWdodAAPc3Rha2luZ0NvbnRyYWN0CQETdmFsdWVPckVycm9yTWVzc2FnZQIJAKYIAQkBE3ZhbHVlT3JFcnJvck1lc3NhZ2UCCQCdCAIFDWNvbmZpZ0FkZHJlc3MCEGNvbnRyYWN0X3N0YWtpbmcCE25vIHN0YWtpbmdfY29udHJhY3QCGGludmFsaWQgc3Rha2luZyBjb250cmFjdAAObWludGVyQ29udHJhY3QJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkApggBCQETdmFsdWVPckVycm9yTWVzc2FnZQIJAJ0IAgUNY29uZmlnQWRkcmVzcwIPY29udHJhY3RfbWludGVyAhJubyBjb250cmFjdF9taW50ZXICF2ludmFsaWQgbWludGVyIGNvbnRyYWN0AApwd3JBc3NldElkCQDZBAEJARN2YWx1ZU9yRXJyb3JNZXNzYWdlAgkAnQgCBQ1jb25maWdBZGRyZXNzAgxwb3dlckFzc2V0SWQCFnB3ciBhc3NldCBpZCBub3QgZm91bmQBC21pbnRlZFN0b3JlAQdhY2NvdW50CQCsAgIFB2FjY291bnQCB19taW50ZWQBCmFkdmlzZVVzZXIBB2FjY291bnQJAKwCAgkArAICCQCsAgIJAKwCAgkArAICAghoZWlnaHQ6IAkApAMBBQZIRUlHSFQCCywgYWNjb3VudDogBQdhY2NvdW50AgosIG1pbnRlZDogCQCkAwEJAQt2YWx1ZU9yRWxzZQIJAJ8IAQkBC21pbnRlZFN0b3JlAQUHYWNjb3VudAAAAgFpAQZtaW50VG8DAnRvBmFtb3VudAVzdGFrZQMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECBmRlbmllZAQBYQkBB2FsbG93ZWQBCQCsAgIJAKUIAQUEdGhpcwIHX21pbnRUbwMJAAACBQFhBQFhBARtaW50CQD8BwQFDm1pbnRlckNvbnRyYWN0AgRtaW50CQDMCAIFBmFtb3VudAUDbmlsBQNuaWwDCQAAAgUEbWludAUEbWludAQFc3RvcmUJAQttaW50ZWRTdG9yZQEFAnRvBAhtaW50ZWRCeQkBDEludGVnZXJFbnRyeQIFBXN0b3JlCQBkAgkBC3ZhbHVlT3JFbHNlAgkAnwgBBQVzdG9yZQAABQZhbW91bnQDBQVzdGFrZQQBcwkA/AcEBQ9zdGFraW5nQ29udHJhY3QCCHN0YWtlRm9yCQDMCAIFAnRvBQNuaWwJAMwIAgkBD0F0dGFjaGVkUGF5bWVudAIFCnB3ckFzc2V0SWQFBmFtb3VudAUDbmlsAwkAAAIFAXMFAXMJAMwIAgUIbWludGVkQnkFA25pbAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCQERQGV4dHJOYXRpdmUoMTA2MikBBQJ0bwUGYW1vdW50BQpwd3JBc3NldElkCQDMCAIFCG1pbnRlZEJ5BQNuaWwJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4JAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEEaW5pdAEEY29uZgkAzAgCCQEQd3JpdGVDb25zdFN0cmluZwIFEmNvbmZpZ0FkZHJlc3NTdG9yZQUEY29uZgUDbmlsAQJ0eAEGdmVyaWZ5AAQHZW5hYmxlZAkBC3ZhbHVlT3JFbHNlAgkAmwgCBQ1jb25maWdBZGRyZXNzCQEOb3BBbGxvd2VkU3RvcmUBAhNnb3Zlcm5hbmNlX2FwcGx5X3R4BgMJAQEhAQUHZW5hYmxlZAkAAgECK3R4IGFwcGxpY2F0aW9uIHRocm93IGdvdmVybmFuY2Ugbm90IGVuYWJsZWQEAmlkCQDYBAEIBQJ0eAJpZAkAZwIFBkhFSUdIVAkBEUBleHRyTmF0aXZlKDEwNTApAgUNdm90aW5nUmVzdWx0cwkArAICCQCsAgIJAKwCAgIZcHJvcG9zYWxfYWxsb3dfYnJvYWRjYXN0XwkApQgBBQR0aGlzAgFfBQJpZHXrH20=", "chainId": 87, "height": 3849853, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: none Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 6 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+func writeConstString (key,value) = if (!(isDefined(getString(this, key))))
5+ then StringEntry(key, value)
6+ else throw(("already initialized: " + key))
7+
8+
9+let configAddressStore = "config"
10+
11+let configAddress = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(this, configAddressStore), "config address not found")), "invalid config address")
12+
13+func allowed (op) = invoke(configAddress, "opAllowed", [op], nil)
14+
15+
16+let votingResults = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(configAddress, "contract_voting_result"), "generic minter: no contract_voting_result")), "invalid contract_voting_result")
17+
18+func opAllowedStore (op) = (("op_" + op) + "_allowed")
19+
20+
21+let HEIGHT = height
22+
23+let stakingContract = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(configAddress, "contract_staking"), "no staking_contract")), "invalid staking contract")
24+
25+let minterContract = valueOrErrorMessage(addressFromString(valueOrErrorMessage(getString(configAddress, "contract_minter"), "no contract_minter")), "invalid minter contract")
26+
27+let pwrAssetId = fromBase58String(valueOrErrorMessage(getString(configAddress, "powerAssetId"), "pwr asset id not found"))
28+
29+func mintedStore (account) = (account + "_minted")
30+
31+
32+func adviseUser (account) = ((((("height: " + toString(HEIGHT)) + ", account: ") + account) + ", minted: ") + toString(valueOrElse(getInteger(mintedStore(account)), 0)))
33+
34+
35+@Callable(i)
36+func mintTo (to,amount,stake) = if ((i.caller != this))
37+ then throw("denied")
38+ else {
39+ let a = allowed((toString(this) + "_mintTo"))
40+ if ((a == a))
41+ then {
42+ let mint = invoke(minterContract, "mint", [amount], nil)
43+ if ((mint == mint))
44+ then {
45+ let store = mintedStore(to)
46+ let mintedBy = IntegerEntry(store, (valueOrElse(getInteger(store), 0) + amount))
47+ if (stake)
48+ then {
49+ let s = invoke(stakingContract, "stakeFor", [to], [AttachedPayment(pwrAssetId, amount)])
50+ if ((s == s))
51+ then [mintedBy]
52+ else throw("Strict value is not equal to itself.")
53+ }
54+ else [ScriptTransfer(addressFromStringValue(to), amount, pwrAssetId), mintedBy]
55+ }
56+ else throw("Strict value is not equal to itself.")
57+ }
58+ else throw("Strict value is not equal to itself.")
59+ }
60+
61+
62+
63+@Callable(i)
64+func init (conf) = [writeConstString(configAddressStore, conf)]
65+
66+
67+@Verifier(tx)
68+func verify () = {
69+ let enabled = valueOrElse(getBoolean(configAddress, opAllowedStore("governance_apply_tx")), true)
70+ if (!(enabled))
71+ then throw("tx application throw governance not enabled")
72+ else {
73+ let id = toBase58String(tx.id)
74+ (HEIGHT >= getIntegerValue(votingResults, ((("proposal_allow_broadcast_" + toString(this)) + "_") + id)))
75+ }
76+ }
77+

github/deemru/w8io/3ef1775 
18.64 ms