tx · Fi6v4PZxDSfSsURY4BJvsqFzg8xWaKjY8S5a3bjGhjb9

3PMUK2BcYNLGgx82oJJu79feDSPgxChSGaw:  -0.01400000 Waves

2023.03.22 16:31 [3566874] smart account 3PMUK2BcYNLGgx82oJJu79feDSPgxChSGaw > SELF 0.00000000 Waves

{ "type": 13, "id": "Fi6v4PZxDSfSsURY4BJvsqFzg8xWaKjY8S5a3bjGhjb9", "fee": 1400000, "feeAssetId": null, "timestamp": 1679491942981, "version": 2, "chainId": 87, "sender": "3PMUK2BcYNLGgx82oJJu79feDSPgxChSGaw", "senderPublicKey": "5PHSg8GKrpxvetUdxqtqSv2axZviHUhViKFG2FcbLFe8", "proofs": [ "39DzsuSsTq1CFTtGxRwK2WpWQj1xvbg4Ja5WYdQVTdwszUxyH3YBjVQc8CjxjfE3HWnC1vHnpZzWiFXY5KrUD3oX" ], "script": "base64:BgIHCAISAwoBCA4ACVNFUEFSQVRPUgICX18ACEtFWV9JTklUAgRJTklUAAxLRVlfTVVMVElTSUcCCE1VTFRJU0lHAApLRVlfU1RBVFVTAgZTVEFUVVMAB01BWF9JTlQA//////////9/ARBfdmFsaWRhdGVBZGRyZXNzAghhZGRyZXNzXwRlcnJfBAckbWF0Y2gwCQCmCAEFCGFkZHJlc3NfAwkAAQIFByRtYXRjaDACB0FkZHJlc3MEAWEFByRtYXRjaDAGCQACAQUEZXJyXwEOX3ZhbGlkYXRlQXNzZXQCCGFzc2V0SWRfBGVycl8EByRtYXRjaDAJAOwHAQkA2QQBBQhhc3NldElkXwMJAAECBQckbWF0Y2gwAgVBc3NldAQBYQUHJG1hdGNoMAYJAAIBBQRlcnJfAQxfdmFsaWRhdGVJbnQEBHZhbF8ObG93ZXJCb3VuZGFyeV8OdXBwZXJCb3VuZGFyeV8EZXJyXwMDCQBmAgUObG93ZXJCb3VuZGFyeV8FBHZhbF8GCQBmAgUEdmFsXwUOdXBwZXJCb3VuZGFyeV8JAAIBBQRlcnJfBgEJX2xvYWRJbml0AAQHJG1hdGNoMAkAoAgBBQhLRVlfSU5JVAMJAAECBQckbWF0Y2gwAgdCb29sZWFuBAFhBQckbWF0Y2gwBQFhBwEJX3NhdmVJbml0AQdpc0luaXRfCQDMCAIJAQxCb29sZWFuRW50cnkCBQhLRVlfSU5JVAUHaXNJbml0XwUDbmlsAQ1fbG9hZE11bHRpc2lnAAQHJG1hdGNoMAkAoggBBQxLRVlfTVVMVElTSUcDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAFhBQckbWF0Y2gwCQERQGV4dHJOYXRpdmUoMTA2MikBBQFhCQEHQWRkcmVzcwEBAAENX3NhdmVNdWx0aXNpZwEJbXVsdGlzaWdfCQDMCAIJAQtTdHJpbmdFbnRyeQIFDEtFWV9NVUxUSVNJRwkApQgBBQltdWx0aXNpZ18FA25pbAEQX3doZW5NdWx0aXNpZ1NldAADCQAAAgkBDV9sb2FkTXVsdGlzaWcACQEHQWRkcmVzcwEBAAkAAgECGF93aGVuTXVsdGlzaWdTZXQ6IHJldmVydAYBEV9vbmx5VGhpc0NvbnRyYWN0AQdjYWxsZXJfAwkBAiE9AgUHY2FsbGVyXwUEdGhpcwkAAgECGV9vbmx5VGhpc0NvbnRyYWN0OiByZXZlcnQGAQFpAQtzZXRNdWx0aXNpZwEJbXVsdGlzaWdfBANlcnIDCQERX29ubHlUaGlzQ29udHJhY3QBCAUBaQZjYWxsZXIJARBfdmFsaWRhdGVBZGRyZXNzAgUJbXVsdGlzaWdfAh1zZXRNdWx0aXNpZzogaW52YWxpZCBtdWx0aXNpZwcDCQAAAgUDZXJyBQNlcnIJAJQKAgkBDV9zYXZlTXVsdGlzaWcBCQERQGV4dHJOYXRpdmUoMTA2MikBBQltdWx0aXNpZ18FBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BAnR4AQZ2ZXJpZnkABAckbWF0Y2gwCQCiCAEFDEtFWV9NVUxUSVNJRwMJAAECBQckbWF0Y2gwAgZTdHJpbmcECG11bHRpc2lnBQckbWF0Y2gwCQELdmFsdWVPckVsc2UCCQCbCAIJARFAZXh0ck5hdGl2ZSgxMDYyKQEFCG11bHRpc2lnCQC5CQIJAMwIAgUKS0VZX1NUQVRVUwkAzAgCCQClCAEFBHRoaXMJAMwIAgkA2AQBCAUCdHgCaWQFA25pbAUJU0VQQVJBVE9SBwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAgFAnR4D3NlbmRlclB1YmxpY0tlebH/IAE=", "height": 3566874, "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+let SEPARATOR = "__"
5+
6+let KEY_INIT = "INIT"
7+
8+let KEY_MULTISIG = "MULTISIG"
9+
10+let KEY_STATUS = "STATUS"
11+
12+let MAX_INT = 9223372036854775807
13+
14+func _validateAddress (address_,err_) = match addressFromString(address_) {
15+ case a: Address =>
16+ true
17+ case _ =>
18+ throw(err_)
19+}
20+
21+
22+func _validateAsset (assetId_,err_) = match assetInfo(fromBase58String(assetId_)) {
23+ case a: Asset =>
24+ true
25+ case _ =>
26+ throw(err_)
27+}
28+
29+
30+func _validateInt (val_,lowerBoundary_,upperBoundary_,err_) = if (if ((lowerBoundary_ > val_))
31+ then true
32+ else (val_ > upperBoundary_))
33+ then throw(err_)
34+ else true
35+
36+
37+func _loadInit () = match getBoolean(KEY_INIT) {
38+ case a: Boolean =>
39+ a
40+ case _ =>
41+ false
42+}
43+
44+
45+func _saveInit (isInit_) = [BooleanEntry(KEY_INIT, isInit_)]
46+
47+
48+func _loadMultisig () = match getString(KEY_MULTISIG) {
49+ case a: String =>
50+ addressFromStringValue(a)
51+ case _ =>
52+ Address(base58'')
53+}
54+
55+
56+func _saveMultisig (multisig_) = [StringEntry(KEY_MULTISIG, toString(multisig_))]
57+
58+
59+func _whenMultisigSet () = if ((_loadMultisig() == Address(base58'')))
60+ then throw("_whenMultisigSet: revert")
61+ else true
62+
63+
64+func _onlyThisContract (caller_) = if ((caller_ != this))
65+ then throw("_onlyThisContract: revert")
66+ else true
67+
68+
69+@Callable(i)
70+func setMultisig (multisig_) = {
71+ let err = if (_onlyThisContract(i.caller))
72+ then _validateAddress(multisig_, "setMultisig: invalid multisig")
73+ else false
74+ if ((err == err))
75+ then $Tuple2(_saveMultisig(addressFromStringValue(multisig_)), unit)
76+ else throw("Strict value is not equal to itself.")
77+ }
78+
79+
80+@Verifier(tx)
81+func verify () = match getString(KEY_MULTISIG) {
82+ case multisig: String =>
83+ valueOrElse(getBoolean(addressFromStringValue(multisig), makeString([KEY_STATUS, toString(this), toBase58String(tx.id)], SEPARATOR)), false)
84+ case _ =>
85+ sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
86+}
87+

github/deemru/w8io/6500d08 
20.88 ms