tx · 7w8fonwYDGvo4nh1oc5JGUgm5wdoauGAHu5ENdy62uSM

3NAp5P3K4f27nX1CjX61Smuc8mukXRttMq4:  -0.01400000 Waves

2022.11.18 17:03 [2322648] smart account 3NAp5P3K4f27nX1CjX61Smuc8mukXRttMq4 > SELF 0.00000000 Waves

{ "type": 13, "id": "7w8fonwYDGvo4nh1oc5JGUgm5wdoauGAHu5ENdy62uSM", "fee": 1400000, "feeAssetId": null, "timestamp": 1668780246675, "version": 2, "chainId": 84, "sender": "3NAp5P3K4f27nX1CjX61Smuc8mukXRttMq4", "senderPublicKey": "Cn55ZpbRwz8fBbdw1zty66jc1JpZEiegB1nd5FXqiRzn", "proofs": [ "rzUXf47ZvYSNCWqq81R5MxcbszCGdhLb9xFjteuPv7Hjbii3Ftdr7qbS8aq6TQr7Qf6yfXNgmE5n7ko8Z3YqXmc" ], "script": "base64:BgISCAISBAoCCAgSAwoBCBIDCgEBBQAJU0VQQVJBVE9SAgJfXwAMS0VZX01VTFRJU0lHAghNVUxUSVNJRwAKS0VZX1NUQVRVUwIGU1RBVFVTAAtLRVlfQ0xBSU1FUgIHQ0xBSU1FUgEQX3ZhbGlkYXRlQWRkcmVzcwEIYWRkcmVzc18EByRtYXRjaDAJAKYIAQUIYWRkcmVzc18DCQABAgUHJG1hdGNoMAIHQWRkcmVzcwQBYQUHJG1hdGNoMAYHAwFpAQRpbml0AgltdWx0aXNpZ18IY2xhaW1lcl8EC29sZE11bHRpc2lnCQELdmFsdWVPckVsc2UCCQCiCAEFDEtFWV9NVUxUSVNJRwIABANlcnIDCQECIT0CBQtvbGRNdWx0aXNpZwIACQACAQIZaW5pdDogYWxyZWFkeSBpbml0aWFsaXplZAMJAQEhAQkBEF92YWxpZGF0ZUFkZHJlc3MBBQhjbGFpbWVyXwkAAgECHWluaXQ6IGludmFsaWQgY2xhaW1lciBhZGRyZXNzBQR1bml0AwkAAAIFA2VycgUDZXJyCQCUCgIJAMwIAgkBC1N0cmluZ0VudHJ5AgUMS0VZX01VTFRJU0lHBQltdWx0aXNpZ18JAMwIAgkBC1N0cmluZ0VudHJ5AgULS0VZX0NMQUlNRVIFCGNsYWltZXJfBQNuaWwFBHVuaXQJAAIBAiRTdHJpY3QgdmFsdWUgaXMgbm90IGVxdWFsIHRvIGl0c2VsZi4BaQEKc2V0Q2xhaW1lcgEIY2xhaW1lcl8EA2VycgMJAQIhPQIIBQFpBmNhbGxlcgUEdGhpcwkAAgECHXNldENsYWltZXI6IHBlcm1pc3Npb24gZGVuaWVkAwkBASEBCQEQX3ZhbGlkYXRlQWRkcmVzcwEFCGNsYWltZXJfCQACAQIjc2V0Q2xhaW1lcjogaW52YWxpZCBjbGFpbWVyIGFkZHJlc3MFBHVuaXQDCQAAAgUDZXJyBQNlcnIJAJQKAgkAzAgCCQELU3RyaW5nRW50cnkCBQtLRVlfQ0xBSU1FUgUIY2xhaW1lcl8FA25pbAUEdW5pdAkAAgECJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgFpAQVjbGFpbQEHYW1vdW50XwMJAQIhPQIIBQFpBmNhbGxlcgkBEUBleHRyTmF0aXZlKDEwNjIpAQkBEUBleHRyTmF0aXZlKDEwNTgpAQULS0VZX0NMQUlNRVIJAAIBAhhjbGFpbTogcGVybWlzc2lvbiBkZW5pZWQDAwkAZwIAAAUHYW1vdW50XwYJAGYCBQdhbW91bnRfCAkA7wcBBQR0aGlzB3JlZ3VsYXIJAAIBAhVjbGFpbTogaW52YWxpZCBhbW91bnQJAJQKAgkAzAgCCQEOU2NyaXB0VHJhbnNmZXIDCAUBaQZjYWxsZXIFB2Ftb3VudF8FBHVuaXQFA25pbAUEdW5pdAECdHgBBnZlcmlmeQAEByRtYXRjaDAJAKIIAQUMS0VZX01VTFRJU0lHAwkAAQIFByRtYXRjaDACBlN0cmluZwQIbXVsdGlzaWcFByRtYXRjaDAJAQt2YWx1ZU9yRWxzZQIJAJsIAgkBEUBleHRyTmF0aXZlKDEwNjIpAQUIbXVsdGlzaWcJALkJAgkAzAgCBQpLRVlfU1RBVFVTCQDMCAIJAKUIAQUEdGhpcwkAzAgCCQDYBAEIBQJ0eAJpZAUDbmlsBQlTRVBBUkFUT1IHCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAACAUCdHgPc2VuZGVyUHVibGljS2V5AkIgzg==", "height": 2322648, "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_MULTISIG = "MULTISIG"
7+
8+let KEY_STATUS = "STATUS"
9+
10+let KEY_CLAIMER = "CLAIMER"
11+
12+func _validateAddress (address_) = match addressFromString(address_) {
13+ case a: Address =>
14+ true
15+ case _ =>
16+ false
17+}
18+
19+
20+@Callable(i)
21+func init (multisig_,claimer_) = {
22+ let oldMultisig = valueOrElse(getString(KEY_MULTISIG), "")
23+ let err = if ((oldMultisig != ""))
24+ then throw("init: already initialized")
25+ else if (!(_validateAddress(claimer_)))
26+ then throw("init: invalid claimer address")
27+ else unit
28+ if ((err == err))
29+ then $Tuple2([StringEntry(KEY_MULTISIG, multisig_), StringEntry(KEY_CLAIMER, claimer_)], unit)
30+ else throw("Strict value is not equal to itself.")
31+ }
32+
33+
34+
35+@Callable(i)
36+func setClaimer (claimer_) = {
37+ let err = if ((i.caller != this))
38+ then throw("setClaimer: permission denied")
39+ else if (!(_validateAddress(claimer_)))
40+ then throw("setClaimer: invalid claimer address")
41+ else unit
42+ if ((err == err))
43+ then $Tuple2([StringEntry(KEY_CLAIMER, claimer_)], unit)
44+ else throw("Strict value is not equal to itself.")
45+ }
46+
47+
48+
49+@Callable(i)
50+func claim (amount_) = if ((i.caller != addressFromStringValue(getStringValue(KEY_CLAIMER))))
51+ then throw("claim: permission denied")
52+ else if (if ((0 >= amount_))
53+ then true
54+ else (amount_ > wavesBalance(this).regular))
55+ then throw("claim: invalid amount")
56+ else $Tuple2([ScriptTransfer(i.caller, amount_, unit)], unit)
57+
58+
59+@Verifier(tx)
60+func verify () = match getString(KEY_MULTISIG) {
61+ case multisig: String =>
62+ valueOrElse(getBoolean(addressFromStringValue(multisig), makeString([KEY_STATUS, toString(this), toBase58String(tx.id)], SEPARATOR)), false)
63+ case _ =>
64+ sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
65+}
66+

github/deemru/w8io/169f3d6 
16.44 ms