tx · DZmuwbaS3MFvi6D8w62iADUjRRAuB8T6J2E6Mf6NPm93

3N1hUxU5uVePa5VEmty9UWoTdzjfMUNekSp:  -0.01400000 Waves

2020.04.06 15:34 [942382] smart account 3N1hUxU5uVePa5VEmty9UWoTdzjfMUNekSp > SELF 0.00000000 Waves

{ "type": 13, "id": "DZmuwbaS3MFvi6D8w62iADUjRRAuB8T6J2E6Mf6NPm93", "fee": 1400000, "feeAssetId": null, "timestamp": 1586176456999, "version": 1, "sender": "3N1hUxU5uVePa5VEmty9UWoTdzjfMUNekSp", "senderPublicKey": "C9N8puBe7PNPmySZRMUWyTK96uEaNp6AB2w758sEo4PQ", "proofs": [ "3ynpKHBhSpFH9WPPmMMAEtoNu1mkJt7dXJPHByQbJrE5gcCwyi6UyWgkziscBZKuDT5QqtiDbZM6XDXKqJGgZ2So" ], "script": "base64:AAIDAAAAAAAAABMIARIGCgQICAEIEgcKBQgIAQgIAAAAAAAAAAIAAAABaQEAAAANYXRvbWljRGVwb3NpdAAAAAQAAAAPYXRvbWljUmVjaXBpZW50AAAAEGF0b21pY1dpdGhEcmF3SWQAAAAUYXRvbWljV2l0aGRyYXdBbW91bnQAAAAPYXRvbWljRGVwb3NpdElkBAAAAApjdXJyZW50S2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAA3BtdAkBAAAAB2V4dHJhY3QAAAABCAUAAAABaQAAAAdwYXltZW50BAAAAAlwYXltZW50SWQIBQAAAANwbXQAAAAHYXNzZXRJZAQAAAANY3VycmVudEFtb3VudAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAKY3VycmVudEtleQUAAAAPYXRvbWljRGVwb3NpdElkBQAAAA9hdG9taWNSZWNpcGllbnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAJbmV3QW1vdW50CQAAZAAAAAIFAAAADWN1cnJlbnRBbW91bnQIBQAAAANwbXQAAAAGYW1vdW50CQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAKY3VycmVudEtleQUAAAAPYXRvbWljRGVwb3NpdElkBQAAAA9hdG9taWNSZWNpcGllbnQFAAAACW5ld0Ftb3VudAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAACmN1cnJlbnRLZXkFAAAAEGF0b21pY1dpdGhEcmF3SWQFAAAAD2F0b21pY1JlY2lwaWVudAUAAAAUYXRvbWljV2l0aGRyYXdBbW91bnQJAARMAAAAAgkBAAAACURhdGFFbnRyeQAAAAIJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAAmRfBQAAAApjdXJyZW50S2V5BQAAAA9hdG9taWNEZXBvc2l0SWQFAAAAD2F0b21pY1JlY2lwaWVudAYFAAAAA25pbAAAAAFpAQAAAA5hdG9taWNXaXRoZHJhdwAAAAUAAAAPYXRvbWljUmVjaXBpZW50AAAAEGF0b21pY1dpdGhEcmF3SWQAAAAUYXRvbWljV2l0aGRyYXdBbW91bnQAAAAPYXRvbWljRGVwb3NpdElkAAAAEWF0b21pY1dpdGhEcmF3SWQyBAAAAApjdXJyZW50S2V5CQACWAAAAAEICAUAAAABaQAAAAZjYWxsZXIAAAAFYnl0ZXMEAAAAB2Fzc2V0SWQJAAJZAAAAAQUAAAARYXRvbWljV2l0aERyYXdJZDIEAAAAD215RGVwb3NpdEFtb3VudAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAKY3VycmVudEtleQUAAAAPYXRvbWljRGVwb3NpdElkBQAAAA9hdG9taWNSZWNpcGllbnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAPbXlSZXF1ZXN0QW1vdW50BAAAAAckbWF0Y2gwCQAEGgAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACBQAAAApjdXJyZW50S2V5BQAAABBhdG9taWNXaXRoRHJhd0lkBQAAAA9hdG9taWNSZWNpcGllbnQDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAA0ludAQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQAAAAAAAAAAAAQAAAAWcmVjaXBpZW50RGVwb3NpdEFtb3VudAQAAAAHJG1hdGNoMAkABBoAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgUAAAAPYXRvbWljUmVjaXBpZW50BQAAABBhdG9taWNXaXRoRHJhd0lkBQAAAApjdXJyZW50S2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAAFnJlY2lwaWVudFJlcXVlc3RBbW91bnQEAAAAByRtYXRjaDAJAAQaAAAAAgUAAAAEdGhpcwkAASwAAAACCQABLAAAAAIFAAAAD2F0b21pY1JlY2lwaWVudAUAAAAPYXRvbWljRGVwb3NpdElkBQAAAApjdXJyZW50S2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAANJbnQEAAAAAWEFAAAAByRtYXRjaDAFAAAAAWEAAAAAAAAAAAAEAAAADm15QXRvbWljRmluaXNoBAAAAAckbWF0Y2gwCQAEGwAAAAIFAAAABHRoaXMJAAEsAAAAAgkAASwAAAACCQABLAAAAAICAAAAAmRfBQAAAApjdXJyZW50S2V5BQAAAA9hdG9taWNEZXBvc2l0SWQFAAAAD2F0b21pY1JlY2lwaWVudAMJAAABAAAAAgUAAAAHJG1hdGNoMAIAAAAHQm9vbGVhbgQAAAABYQUAAAAHJG1hdGNoMAUAAAABYQcEAAAAFXJlY2lwaWVudEF0b21pY0ZpbmlzaAQAAAAHJG1hdGNoMAkABBsAAAACBQAAAAR0aGlzCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAJkXwUAAAAPYXRvbWljUmVjaXBpZW50BQAAABBhdG9taWNXaXRoRHJhd0lkBQAAAApjdXJyZW50S2V5AwkAAAEAAAACBQAAAAckbWF0Y2gwAgAAAAdCb29sZWFuBAAAAAFhBQAAAAckbWF0Y2gwBQAAAAFhBwMDAwMJAAAAAAAAAgUAAAAPbXlEZXBvc2l0QW1vdW50BQAAABZyZWNpcGllbnRSZXF1ZXN0QW1vdW50CQAAAAAAAAIFAAAAFnJlY2lwaWVudERlcG9zaXRBbW91bnQFAAAAD215UmVxdWVzdEFtb3VudAcJAAAAAAAAAgUAAAAObXlBdG9taWNGaW5pc2gGBwkAAAAAAAACBQAAABBhdG9taWNXaXRoRHJhd0lkAgAAAAVXQVZFUwcJAQAAAAxTY3JpcHRSZXN1bHQAAAACCQEAAAAIV3JpdGVTZXQAAAABCQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAPYXRvbWljUmVjaXBpZW50BQAAABBhdG9taWNXaXRoRHJhd0lkBQAAAApjdXJyZW50S2V5AAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgUAAAAKY3VycmVudEtleQUAAAAQYXRvbWljV2l0aERyYXdJZAUAAAAPYXRvbWljUmVjaXBpZW50AAAAAAAAAAAACQAETAAAAAIJAQAAAAlEYXRhRW50cnkAAAACCQABLAAAAAIJAAEsAAAAAgkAASwAAAACAgAAAAJkXwUAAAAPYXRvbWljUmVjaXBpZW50BQAAABBhdG9taWNXaXRoRHJhd0lkBQAAAApjdXJyZW50S2V5BwUAAAADbmlsCQEAAAALVHJhbnNmZXJTZXQAAAABCQAETAAAAAIJAQAAAA5TY3JpcHRUcmFuc2ZlcgAAAAMIBQAAAAFpAAAABmNhbGxlcgUAAAAUYXRvbWljV2l0aGRyYXdBbW91bnQFAAAABHVuaXQFAAAAA25pbAMDAwMJAAAAAAAAAgUAAAAPbXlEZXBvc2l0QW1vdW50BQAAABZyZWNpcGllbnRSZXF1ZXN0QW1vdW50CQAAAAAAAAIFAAAAFnJlY2lwaWVudERlcG9zaXRBbW91bnQFAAAAD215UmVxdWVzdEFtb3VudAcJAAAAAAAAAgUAAAAObXlBdG9taWNGaW5pc2gGBwkBAAAAAiE9AAAAAgUAAAAQYXRvbWljV2l0aERyYXdJZAIAAAAFV0FWRVMHCQEAAAAMU2NyaXB0UmVzdWx0AAAAAgkBAAAACFdyaXRlU2V0AAAAAQkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAAD2F0b21pY1JlY2lwaWVudAUAAAAQYXRvbWljV2l0aERyYXdJZAUAAAAKY3VycmVudEtleQAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIFAAAACmN1cnJlbnRLZXkFAAAAEGF0b21pY1dpdGhEcmF3SWQFAAAAD2F0b21pY1JlY2lwaWVudAAAAAAAAAAAAAkABEwAAAACCQEAAAAJRGF0YUVudHJ5AAAAAgkAASwAAAACCQABLAAAAAIJAAEsAAAAAgIAAAACZF8FAAAAD2F0b21pY1JlY2lwaWVudAUAAAAQYXRvbWljV2l0aERyYXdJZAUAAAAKY3VycmVudEtleQcFAAAAA25pbAkBAAAAC1RyYW5zZmVyU2V0AAAAAQkABEwAAAACCQEAAAAOU2NyaXB0VHJhbnNmZXIAAAADCAUAAAABaQAAAAZjYWxsZXIFAAAAFGF0b21pY1dpdGhkcmF3QW1vdW50BQAAAAR1bml0BQAAAANuaWwJAAACAAAAAQIAAAAPTm90IEF0b21pYyBTd2FwAAAAAQAAAAJ0eAEAAAAGdmVyaWZ5AAAAAAQAAAAHJG1hdGNoMAUAAAACdHgDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAE1RyYW5zZmVyVHJhbnNhY3Rpb24EAAAAA3R0eAUAAAAHJG1hdGNoMAkAAfQAAAADCAUAAAADdHR4AAAACWJvZHlCeXRlcwkAAZEAAAACCAUAAAADdHR4AAAABnByb29mcwAAAAAAAAAAAAgFAAAAA3R0eAAAAA9zZW5kZXJQdWJsaWNLZXkDCQAAAQAAAAIFAAAAByRtYXRjaDACAAAAFFNldFNjcmlwdFRyYW5zYWN0aW9uBAAAAANzdHgFAAAAByRtYXRjaDAJAAH0AAAAAwgFAAAAA3N0eAAAAAlib2R5Qnl0ZXMJAAGRAAAAAggFAAAAA3N0eAAAAAZwcm9vZnMAAAAAAAAAAAAIBQAAAANzdHgAAAAPc2VuZGVyUHVibGljS2V5BrIPlos=", "chainId": 84, "height": 942382, "spentComplexity": 0 } View: original | compacted Prev: 3AeBfj4Ws5dCZMbMEm5kA1b86bFEztCfbD1DzkjJTXRB Next: 9chL8PzxEbHtRLArGQhne38Gcxmh2PJgMfCTiDUBariE Diff:
OldNewDifferences
6767 else false)
6868 then (atomicWithDrawId == "WAVES")
6969 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)]))
70+ then ScriptResult(WriteSet([DataEntry(((atomicRecipient + atomicWithDrawId) + currentKey), 0), DataEntry(((currentKey + atomicWithDrawId) + atomicRecipient), 0), DataEntry(((("d_" + atomicRecipient) + atomicWithDrawId) + currentKey), false)]), TransferSet([ScriptTransfer(i.caller, atomicWithdrawAmount, unit)]))
7171 else if (if (if (if ((myDepositAmount == recipientRequestAmount))
7272 then (recipientDepositAmount == myRequestAmount)
7373 else false)
7575 else false)
7676 then (atomicWithDrawId != "WAVES")
7777 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)]))
78+ then ScriptResult(WriteSet([DataEntry(((atomicRecipient + atomicWithDrawId) + currentKey), 0), DataEntry(((currentKey + atomicWithDrawId) + atomicRecipient), 0), DataEntry(((("d_" + atomicRecipient) + atomicWithDrawId) + currentKey), false)]), TransferSet([ScriptTransfer(i.caller, atomicWithdrawAmount, unit)]))
7979 else throw("Not Atomic Swap")
8080 }
8181
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 3 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44
55
66 @Callable(i)
77 func atomicDeposit (atomicRecipient,atomicWithDrawId,atomicWithdrawAmount,atomicDepositId) = {
88 let currentKey = toBase58String(i.caller.bytes)
99 let pmt = extract(i.payment)
1010 let paymentId = pmt.assetId
1111 let currentAmount = match getInteger(this, ((currentKey + atomicDepositId) + atomicRecipient)) {
1212 case a: Int =>
1313 a
1414 case _ =>
1515 0
1616 }
1717 let newAmount = (currentAmount + pmt.amount)
1818 WriteSet([DataEntry(((currentKey + atomicDepositId) + atomicRecipient), newAmount), DataEntry(((currentKey + atomicWithDrawId) + atomicRecipient), atomicWithdrawAmount), DataEntry(((("d_" + currentKey) + atomicDepositId) + atomicRecipient), true)])
1919 }
2020
2121
2222
2323 @Callable(i)
2424 func atomicWithdraw (atomicRecipient,atomicWithDrawId,atomicWithdrawAmount,atomicDepositId,atomicWithDrawId2) = {
2525 let currentKey = toBase58String(i.caller.bytes)
2626 let assetId = fromBase58String(atomicWithDrawId2)
2727 let myDepositAmount = match getInteger(this, ((currentKey + atomicDepositId) + atomicRecipient)) {
2828 case a: Int =>
2929 a
3030 case _ =>
3131 0
3232 }
3333 let myRequestAmount = match getInteger(this, ((currentKey + atomicWithDrawId) + atomicRecipient)) {
3434 case a: Int =>
3535 a
3636 case _ =>
3737 0
3838 }
3939 let recipientDepositAmount = match getInteger(this, ((atomicRecipient + atomicWithDrawId) + currentKey)) {
4040 case a: Int =>
4141 a
4242 case _ =>
4343 0
4444 }
4545 let recipientRequestAmount = match getInteger(this, ((atomicRecipient + atomicDepositId) + currentKey)) {
4646 case a: Int =>
4747 a
4848 case _ =>
4949 0
5050 }
5151 let myAtomicFinish = match getBoolean(this, ((("d_" + currentKey) + atomicDepositId) + atomicRecipient)) {
5252 case a: Boolean =>
5353 a
5454 case _ =>
5555 false
5656 }
5757 let recipientAtomicFinish = match getBoolean(this, ((("d_" + atomicRecipient) + atomicWithDrawId) + currentKey)) {
5858 case a: Boolean =>
5959 a
6060 case _ =>
6161 false
6262 }
6363 if (if (if (if ((myDepositAmount == recipientRequestAmount))
6464 then (recipientDepositAmount == myRequestAmount)
6565 else false)
6666 then (myAtomicFinish == true)
6767 else false)
6868 then (atomicWithDrawId == "WAVES")
6969 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)]))
70+ then ScriptResult(WriteSet([DataEntry(((atomicRecipient + atomicWithDrawId) + currentKey), 0), DataEntry(((currentKey + atomicWithDrawId) + atomicRecipient), 0), DataEntry(((("d_" + atomicRecipient) + atomicWithDrawId) + currentKey), false)]), TransferSet([ScriptTransfer(i.caller, atomicWithdrawAmount, unit)]))
7171 else if (if (if (if ((myDepositAmount == recipientRequestAmount))
7272 then (recipientDepositAmount == myRequestAmount)
7373 else false)
7474 then (myAtomicFinish == true)
7575 else false)
7676 then (atomicWithDrawId != "WAVES")
7777 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)]))
78+ then ScriptResult(WriteSet([DataEntry(((atomicRecipient + atomicWithDrawId) + currentKey), 0), DataEntry(((currentKey + atomicWithDrawId) + atomicRecipient), 0), DataEntry(((("d_" + atomicRecipient) + atomicWithDrawId) + currentKey), false)]), TransferSet([ScriptTransfer(i.caller, atomicWithdrawAmount, unit)]))
7979 else throw("Not Atomic Swap")
8080 }
8181
8282
8383 @Verifier(tx)
8484 func verify () = match tx {
8585 case ttx: TransferTransaction =>
8686 sigVerify(ttx.bodyBytes, ttx.proofs[0], ttx.senderPublicKey)
8787 case stx: SetScriptTransaction =>
8888 sigVerify(stx.bodyBytes, stx.proofs[0], stx.senderPublicKey)
8989 case _ =>
9090 true
9191 }
9292

github/deemru/w8io/026f985 
42.05 ms