tx · 3AeBfj4Ws5dCZMbMEm5kA1b86bFEztCfbD1DzkjJTXRB

3N1hUxU5uVePa5VEmty9UWoTdzjfMUNekSp:  -0.01000000 Waves

2020.04.06 15:19 [942367] smart account 3N1hUxU5uVePa5VEmty9UWoTdzjfMUNekSp > SELF 0.00000000 Waves

{ "type": 13, "id": "3AeBfj4Ws5dCZMbMEm5kA1b86bFEztCfbD1DzkjJTXRB", "fee": 1000000, "feeAssetId": null, "timestamp": 1586175414665, "version": 1, "sender": "3N1hUxU5uVePa5VEmty9UWoTdzjfMUNekSp", "senderPublicKey": "C9N8puBe7PNPmySZRMUWyTK96uEaNp6AB2w758sEo4PQ", "proofs": [ "4Qxmf67sES1zuySjNomrhck6mpagK7uUsfQKsA343qvnBx9esZHGWLRWr9MgjPZ2hGFNcFxLW1xqkrsczw57tWK1" ], "script": "base64:AAIDAAAAAAAAABMIARIGCgQICAEIEgcKBQgIAQgIAAAAAAAAAAIAAAABaQEAAAANYXRvbWljRGVwb3NpdAAAAAQAAAAPYXRvbWljUmVjaXBpZW50AAAAEGF0b21pY1dpdGhEcmF3SWQAAAAUYXRvbWljV2l0aGRyYXdBbW91bnQAAAAPYXRvbWljRGVwb3NpdElkBAAAAApjdXJyZW50S2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50BAAAAAlwYXltZW50SWQIBQAAAANwbXQAAAAHYXNzZXRJZAQAAAANY3VycmVudEFtb3VudAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAKY3VycmVudEtleQUAAAAPYXRvbWljRGVwb3NpdElkBQAAAA9hdG9taWNSZWNpcGllbnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAJbmV3QW1vdW50CQAAZAAAAAIFAAAADWN1cnJlbnRBbW91bnQIBQAAAANwbXQAAAAGYW1vdW50CQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAKY3VycmVudEtleQUAAAAPYXRvbWljRGVwb3NpdElkBQAAAA9hdG9taWNSZWNpcGllbnQFAAAACW5ld0Ftb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAACmN1cnJlbnRLZXkFAAAAEGF0b21pY1dpdGhEcmF3SWQFAAAAD2F0b21pY1JlY2lwaWVudAUAAAAUYXRvbWljV2l0aGRyYXdBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAAmRfBQAAAApjdXJyZW50S2V5BQAAAA9hdG9taWNEZXBvc2l0SWQFAAAAD2F0b21pY1JlY2lwaWVudAYFAAAAA25pbAAAAAFpAQAAAA5hdG9taWNXaXRoZHJhdwAAAAUAAAAPYXRvbWljUmVjaXBpZW50AAAAEGF0b21pY1dpdGhEcmF3SWQAAAAUYXRvbWljV2l0aGRyYXdBbW91bnQAAAAPYXRvbWljRGVwb3NpdElkAAAAEWF0b21pY1dpdGhEcmF3SWQyBAAAAApjdXJyZW50S2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAB2Fzc2V0SWQJAAJZAAAAAQUAAAARYXRvbWljV2l0aERyYXdJZDIEAAAAD215RGVwb3NpdEFtb3VudAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAKY3VycmVudEtleQUAAAAPYXRvbWljRGVwb3NpdElkBQAAAA9hdG9taWNSZWNpcGllbnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAPbXlSZXF1ZXN0QW1vdW50BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAApjdXJyZW50S2V5BQAAABBhdG9taWNXaXRoRHJhd0lkBQAAAA9hdG9taWNSZWNpcGllbnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAWcmVjaXBpZW50RGVwb3NpdEFtb3VudAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAPYXRvbWljUmVjaXBpZW50BQAAABBhdG9taWNXaXRoRHJhd0lkBQAAAApjdXJyZW50S2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAFnJlY2lwaWVudFJlcXVlc3RBbW91bnQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAD2F0b21pY1JlY2lwaWVudAUAAAAPYXRvbWljRGVwb3NpdElkBQAAAApjdXJyZW50S2V5AwkAAAEA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", "chainId": 84, "height": 942367, "spentComplexity": 0 } View: original | compacted Prev: none Next: DZmuwbaS3MFvi6D8w62iADUjRRAuB8T6J2E6Mf6NPm93 Full:
OldNewDifferences
1-# no script
1+{-# STDLIB_VERSION 3 #-}
2+{-# SCRIPT_TYPE ACCOUNT #-}
3+{-# CONTENT_TYPE DAPP #-}
4+
5+
6+@Callable(i)
7+func atomicDeposit (atomicRecipient,atomicWithDrawId,atomicWithdrawAmount,atomicDepositId) = {
8+ let currentKey = toBase58String(i.caller.bytes)
9+ let pmt = extract(i.payment)
10+ let paymentId = pmt.assetId
11+ let currentAmount = match getInteger(this, ((currentKey + atomicDepositId) + atomicRecipient)) {
12+ case a: Int =>
13+ a
14+ case _ =>
15+ 0
16+ }
17+ let newAmount = (currentAmount + pmt.amount)
18+ WriteSet([DataEntry(((currentKey + atomicDepositId) + atomicRecipient), newAmount), DataEntry(((currentKey + atomicWithDrawId) + atomicRecipient), atomicWithdrawAmount), DataEntry(((("d_" + currentKey) + atomicDepositId) + atomicRecipient), true)])
19+ }
20+
21+
22+
23+@Callable(i)
24+func atomicWithdraw (atomicRecipient,atomicWithDrawId,atomicWithdrawAmount,atomicDepositId,atomicWithDrawId2) = {
25+ let currentKey = toBase58String(i.caller.bytes)
26+ let assetId = fromBase58String(atomicWithDrawId2)
27+ let myDepositAmount = match getInteger(this, ((currentKey + atomicDepositId) + atomicRecipient)) {
28+ case a: Int =>
29+ a
30+ case _ =>
31+ 0
32+ }
33+ let myRequestAmount = match getInteger(this, ((currentKey + atomicWithDrawId) + atomicRecipient)) {
34+ case a: Int =>
35+ a
36+ case _ =>
37+ 0
38+ }
39+ let recipientDepositAmount = match getInteger(this, ((atomicRecipient + atomicWithDrawId) + currentKey)) {
40+ case a: Int =>
41+ a
42+ case _ =>
43+ 0
44+ }
45+ let recipientRequestAmount = match getInteger(this, ((atomicRecipient + atomicDepositId) + currentKey)) {
46+ case a: Int =>
47+ a
48+ case _ =>
49+ 0
50+ }
51+ let myAtomicFinish = match getBoolean(this, ((("d_" + currentKey) + atomicDepositId) + atomicRecipient)) {
52+ case a: Boolean =>
53+ a
54+ case _ =>
55+ false
56+ }
57+ let recipientAtomicFinish = match getBoolean(this, ((("d_" + atomicRecipient) + atomicWithDrawId) + currentKey)) {
58+ case a: Boolean =>
59+ a
60+ case _ =>
61+ false
62+ }
63+ if (if (if (if ((myDepositAmount == recipientRequestAmount))
64+ then (recipientDepositAmount == myRequestAmount)
65+ else false)
66+ then (myAtomicFinish == true)
67+ else false)
68+ then (atomicWithDrawId == "WAVES")
69+ else false)
70+ then ScriptResult(WriteSet([DataEntry(((atomicRecipient + atomicWithDrawId) + currentKey), 0), DataEntry(((currentKey + atomicWithDrawId) + atomicRecipient), 0), DataEntry(((("d_" + currentKey) + atomicWithDrawId) + atomicRecipient), false)]), TransferSet([ScriptTransfer(i.caller, atomicWithdrawAmount, unit)]))
71+ else if (if (if (if ((myDepositAmount == recipientRequestAmount))
72+ then (recipientDepositAmount == myRequestAmount)
73+ else false)
74+ then (myAtomicFinish == true)
75+ else false)
76+ then (atomicWithDrawId != "WAVES")
77+ else false)
78+ then ScriptResult(WriteSet([DataEntry(((atomicRecipient + atomicWithDrawId) + currentKey), 0), DataEntry(((currentKey + atomicWithDrawId) + atomicRecipient), 0), DataEntry(((("d_" + currentKey) + atomicWithDrawId) + atomicRecipient), false)]), TransferSet([ScriptTransfer(i.caller, atomicWithdrawAmount, unit)]))
79+ else throw("Not Atomic Swap")
80+ }
81+
82+
83+@Verifier(tx)
84+func verify () = match tx {
85+ case ttx: TransferTransaction =>
86+ sigVerify(ttx.bodyBytes, ttx.proofs[0], ttx.senderPublicKey)
87+ case stx: SetScriptTransaction =>
88+ sigVerify(stx.bodyBytes, stx.proofs[0], stx.senderPublicKey)
89+ case _ =>
90+ true
91+}
92+

github/deemru/w8io/169f3d6 
16.67 ms