2021.09.28 13:10 [2787679] smart account 3PH9oV2vraW7z7BxbMjHjcCMg3dmBKmUyhh > SELF 0.00000000 Waves

{ "type": 13, "id": "BU6az8Kxbb36DTvRPxNtjH9CJ2riircba9egQoQjKsnU", "fee": 1000000, "feeAssetId": null, "timestamp": 1632823793073, "version": 1, "sender": "3PH9oV2vraW7z7BxbMjHjcCMg3dmBKmUyhh", "senderPublicKey": "8tRVr2kuPGSmrPFKsWvmLpwFnhp9s9R4wNsubgY3REiF", "proofs": [ "DEKMRNAnrdHy2zwNXzh6ff31NQcwYnnLTcqhgMeNnPofzFujwCsYCRtDMj1gRB1RAEgp5ix6XuYRFhQtjPuN8Mu" ], "script": "base64:AAIFAAAAAAAAABcIAhIHCgUICAgICBIDCgEIEgASAwoBAQAAAAcBAAAAEHdyaXRlQ29uc3RTdHJpbmcAAAACAAAAA2tleQAAAAV2YWx1ZQMJAQAAAAEhAAAAAQkBAAAACWlzRGVmaW5lZAAAAAEJAAQdAAAAAgUAAAAEdGhpcwUAAAADa2V5CQEAAAALU3RyaW5nRW50cnkAAAACBQAAAANrZXkFAAAABXZhbHVlCQAAAgAAAAEJAAEsAAAAAgIAAAAVYWxyZWFkeSBpbml0aWFsaXplZDogBQAAAANrZXkAAAAABWFkbWluCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwIAAAAFYWRtaW4CAAAACG5vIGFkbWluAAAAAAdyZXNlcnZlCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwIAAAAHcmVzZXJ2ZQIAAAAKbm8gcmVzZXJ2ZQAAAAAEbm9kZQkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMCAAAABG5vZGUCAAAAB25vIG5vZGUAAAAAC25vZGVBZGRyZXNzCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQmAAAAAQUAAAAEbm9kZQIAAAAQYmFkIG5vZGUgYWRkcmVzcwAAAAAGZXVybklkCQEAAAATdmFsdWVPckVycm9yTWVzc2FnZQAAAAIJAAQdAAAAAgUAAAAEdGhpcwIAAAAGZXVybklkAgAAAApubyBldXJuIGlkAAAAAAJzcAkBAAAAE3ZhbHVlT3JFcnJvck1lc3NhZ2UAAAACCQAEHQAAAAIFAAAABHRoaXMCAAAAAnNwAgAAAAVubyBzcAAAAAQAAAABaQEAAAAKaW5pdGlhbGl6ZQAAAAUAAAAFYWRtaW4AAAAHcmVzZXJ2ZQAAAARub2RlAAAABmV1cm5JZAAAAAJzcAkABEwAAAACCQEAAAAQd3JpdGVDb25zdFN0cmluZwAAAAICAAAABWFkbWluBQAAAAVhZG1pbgkABEwAAAACCQEAAAAQd3JpdGVDb25zdFN0cmluZwAAAAICAAAAB3Jlc2VydmUFAAAAB3Jlc2VydmUJAARMAAAAAgkBAAAAEHdyaXRlQ29uc3RTdHJpbmcAAAACAgAAAARub2RlBQAAAARub2RlCQAETAAAAAIJAQAAABB3cml0ZUNvbnN0U3RyaW5nAAAAAgIAAAAGZXVybklkBQAAAAZldXJuSWQJAARMAAAAAgkBAAAAEHdyaXRlQ29uc3RTdHJpbmcAAAACAgAAAAJzcAUAAAACc3AFAAAAA25pbAAAAAFpAQAAAApzZXRBZGRyZXNzAAAAAQAAAAFhAwkBAAAAAiE9AAAAAgkABCUAAAABCAUAAAABaQAAAAZjYWxsZXIFAAAABWFkbWluCQAAAgAAAAECAAAAEG9ubHkgc2VsZiBjYW4gZG8JAARMAAAAAgkBAAAAC1N0cmluZ0VudHJ5AAAAAgIAAAAEbm9kZQUAAAABYQUAAAADbmlsAAAAAWkBAAAAA3B1dAAAAAADCQEAAAACIT0AAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAHcmVzZXJ2ZQkAAAIAAAABAgAAAAxyZXNlcnZlIG9ubHkEAAAAD2F0dGFjaGVkQXNzZXRJZAkAAlgAAAABCQEAAAAFdmFsdWUAAAABCAkAAZEAAAACCAUAAAABaQAAAAhwYXltZW50cwAAAAAAAAAAAAAAAAdhc3NldElkAwkBAAAAAiE9AAAAAgUAAAAPYXR0YWNoZWRBc3NldElkBQAAAAZldXJuSWQJAAACAAAAAQkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAALZXVybiBvbmx5OiAFAAAABmV1cm5JZAIAAAAKLCBidXQgZ290IAUAAAAPYXR0YWNoZWRBc3NldElkBAAAAAZhY3Rpb24JAAP8AAAABAUAAAALbm9kZUFkZHJlc3MCAAAADnN0YXJ0U3Rha2luZ1NQCQAETAAAAAIFAAAAAnNwCQAETAAAAAIAAAAAAAAAAGQFAAAAA25pbAkABEwAAAACCQEAAAAPQXR0YWNoZWRQYXltZW50AAAAAgkAAlkAAAABBQAAAAZldXJuSWQICQABkQAAAAIIBQAAAAFpAAAACHBheW1lbnRzAAAAAAAAAAAAAAAABmFtb3VudAUAAAADbmlsAwkAAAAAAAACBQAAAAZhY3Rpb24FAAAABmFjdGlvbgUAAAADbmlsCQAAAgAAAAECAAAAJFN0cmljdCB2YWx1ZSBpcyBub3QgZXF1YWwgdG8gaXRzZWxmLgAAAAFpAQAAAANnZXQAAAABAAAADXJlbW92ZWRBbW91bnQDCQEAAAACIT0AAAACCQAEJQAAAAEIBQAAAAFpAAAABmNhbGxlcgUAAAAHcmVzZXJ2ZQkAAAIAAAABAgAAAAxyZXNlcnZlIG9ubHkDCQAAZgAAAAIAAAAAAAAAAAAFAAAADXJlbW92ZWRBbW91bnQJAAACAAAAAQIAAAAXcHVsbGluZyBuZWdhdGl2ZSBhbW91bnQEAAAABmFjdGlvbgkAA/wAAAAEBQAAAAtub2RlQWRkcmVzcwIAAAALc3RvcFN0YWtpbmcJAARMAAAAAgUAAAANcmVtb3ZlZEFtb3VudAkABEwAAAACBQAAAAZldXJuSWQFAAAAA25pbAUAAAADbmlsAwkAAAAAAAACBQAAAAZhY3Rpb24FAAAABmFjdGlvbgkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAADXJlbW92ZWRBbW91bnQJAAJZAAAAAQUAAAAGZXVybklkBQAAAANuaWwJAAACAAAAAQIAAAAkU3RyaWN0IHZhbHVlIGlzIG5vdCBlcXVhbCB0byBpdHNlbGYuAAAAABnXerU=", "chainId": 87, "height": 2787679, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: none Next: s4jJrapF6VeBdVdqU5wdbowxwFGDtG1jHcrqW2CTm5n Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 5 #-}
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 admin = valueOrErrorMessage(getString(this, "admin"), "no admin")
10+
11+let reserve = valueOrErrorMessage(getString(this, "reserve"), "no reserve")
12+
13+let node = valueOrErrorMessage(getString(this, "node"), "no node")
14+
15+let nodeAddress = valueOrErrorMessage(addressFromString(node), "bad node address")
16+
17+let eurnId = valueOrErrorMessage(getString(this, "eurnId"), "no eurn id")
18+
19+let sp = valueOrErrorMessage(getString(this, "sp"), "no sp")
20+
21+@Callable(i)
22+func initialize (admin,reserve,node,eurnId,sp) = [writeConstString("admin", admin), writeConstString("reserve", reserve), writeConstString("node", node), writeConstString("eurnId", eurnId), writeConstString("sp", sp)]
23+
24+
25+
26+@Callable(i)
27+func setAddress (a) = if ((toString(i.caller) != admin))
28+ then throw("only self can do")
29+ else [StringEntry("node", a)]
30+
31+
32+
33+@Callable(i)
34+func put () = if ((toString(i.caller) != reserve))
35+ then throw("reserve only")
36+ else {
37+ let attachedAssetId = toBase58String(value(i.payments[0].assetId))
38+ if ((attachedAssetId != eurnId))
39+ then throw(((("eurn only: " + eurnId) + ", but got ") + attachedAssetId))
40+ else {
41+ let action = invoke(nodeAddress, "startStakingSP", [sp, 100], [AttachedPayment(fromBase58String(eurnId), i.payments[0].amount)])
42+ if ((action == action))
43+ then nil
44+ else throw("Strict value is not equal to itself.")
45+ }
46+ }
47+
48+
49+
50+@Callable(i)
51+func get (removedAmount) = if ((toString(i.caller) != reserve))
52+ then throw("reserve only")
53+ else if ((0 > removedAmount))
54+ then throw("pulling negative amount")
55+ else {
56+ let action = invoke(nodeAddress, "stopStaking", [removedAmount, eurnId], nil)
57+ if ((action == action))
58+ then [ScriptTransfer(i.caller, removedAmount, fromBase58String(eurnId))]
59+ else throw("Strict value is not equal to itself.")
60+ }
61+
62+

github/deemru/w8io/786bc32 
20.75 ms