tx · 3nXZ9anWQVkegX2wVBimik4HLNHgWGCoD2a1pmFJ53oo

3MzmMwLwGx26c6SEQyghZvoYckQzmq4jusd:  -0.14000000 Waves

2022.12.15 17:09 [2361528] smart account 3MzmMwLwGx26c6SEQyghZvoYckQzmq4jusd > SELF 0.00000000 Waves

{ "type": 13, "id": "3nXZ9anWQVkegX2wVBimik4HLNHgWGCoD2a1pmFJ53oo", "fee": 14000000, "feeAssetId": null, "timestamp": 1671113387599, "version": 2, "chainId": 84, "sender": "3MzmMwLwGx26c6SEQyghZvoYckQzmq4jusd", "senderPublicKey": "4enJnpb22dKBKv5LQx9eLesMHfLz9H6j8iJF1z6aYx7T", "proofs": [ "4CgJYdgZip7FrQNrYf5GFQLXgahoC1Yyna8iWiD2snJUvdY5hcCjb93XZRz9HjwjmQaoj8eZbLCBtdcKAaVH9Jf5", "2zAUEZXepAzn7ofQcF8Wc5cURWkW1RFjPbSHLEe4BsCDioomQC1JJmnd2uu2ZZiL1YVeVJAhuD3PhjaRbWr863Ch" ], "script": "base64:BgICCAINAA1rUG9vbEluT3JlY2xlAgVwb29sXwANa1Bvb2xBc3NldElkQQIKQV9hc3NldF9pZAANa1Bvb2xBc3NldElkQgIKQl9hc3NldF9pZAAGb3JhY2xlCQEHQWRkcmVzcwEBGgFUSBOXDMDTM8wlMoC2KfenZGiAq+PMe0uZARNnZXRCYXNlNThGcm9tT3JhY2xlAQNrZXkEByRtYXRjaDAJAJ0IAgUGb3JhY2xlBQNrZXkDCQABAgUHJG1hdGNoMAIGU3RyaW5nBAZzdHJpbmcFByRtYXRjaDAJANkEAQUGc3RyaW5nBAdub3RoaW5nBQckbWF0Y2gwCQACAQkArAICBQNrZXkCCGlzIGVtcHR5AA1rQWRtaW5QdWJLZXkxAgthZG1pbl9wdWJfMQANa0FkbWluUHViS2V5MgILYWRtaW5fcHViXzIADWtBZG1pblB1YktleTMCC2FkbWluX3B1Yl8zABJrQWRtaW5JbnZva2VQdWJLZXkCEGFkbWluX2ludm9rZV9wdWIADGFkbWluUHViS2V5MQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQ1rQWRtaW5QdWJLZXkxAAxhZG1pblB1YktleTIJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUNa0FkbWluUHViS2V5MgAMYWRtaW5QdWJLZXkzCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDWtBZG1pblB1YktleTMAC2FkbWluSW52b2tlCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFEmtBZG1pbkludm9rZVB1YktleQABAnR4AQZ2ZXJpZnkABBJhZG1pblB1YktleTFTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQxhZG1pblB1YktleTEAAQAABBJhZG1pblB1YktleTJTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQxhZG1pblB1YktleTIAAQAABBJhZG1pblB1YktleTNTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQxhZG1pblB1YktleTMAAQAABBdhZG1pblB1YktleUludm9rZVNpZ25lZAMJAPQDAwgFAnR4CWJvZHlCeXRlcwkAkQMCCAUCdHgGcHJvb2ZzAAAFC2FkbWluSW52b2tlAAEAAAQHJG1hdGNoMAUCdHgDCQABAgUHJG1hdGNoMAIXTWFzc1RyYW5zZmVyVHJhbnNhY3Rpb24EAXQFByRtYXRjaDAKAQxwb29sSW5PcmFjbGUCAWEIdHJhbnNmZXIEC3Bvb2xBZGRyZXNzBAckbWF0Y2gxCAUIdHJhbnNmZXIJcmVjaXBpZW50AwkAAQIFByRtYXRjaDECB0FkZHJlc3MEA2FkZAUHJG1hdGNoMQkApQgBBQNhZGQJAAIBAhtOb3Qga25vd24gdHlwZSBvZiByZWNpcGllbnQDCQEJaXNEZWZpbmVkAQkAnQgCBQZvcmFjbGUJAKwCAgUNa1Bvb2xJbk9yZWNsZQULcG9vbEFkZHJlc3MDCQAAAgkBC3ZhbHVlT3JFbHNlAgkAnQgCCAUIdHJhbnNmZXIJcmVjaXBpZW50BQ1rUG9vbEFzc2V0SWRBAgACBVdBVkVTBgkAAAIJAQt2YWx1ZU9yRWxzZQIJAJ0IAggFCHRyYW5zZmVyCXJlY2lwaWVudAUNa1Bvb2xBc3NldElkQgIAAgVXQVZFUwcECmlzUmlnaHRGZWUJAAACCAUBdANmZWUJAGQCAKDCHgkAaAIJAG4EANCGAwkAkAMBCAUBdAl0cmFuc2ZlcnMAoI0GBQdDRUlMSU5HAKCNBgQPaXNUcmFuc2ZlcldhdmVzCQAAAggFAXQHYXNzZXRJZAUEdW5pdAQQc2lnbmVkQnlPbmVBZG1pbgkAZwIJAGQCCQBkAgkAZAIFEmFkbWluUHViS2V5MVNpZ25lZAUSYWRtaW5QdWJLZXkyU2lnbmVkBRJhZG1pblB1YktleTNTaWduZWQFF2FkbWluUHViS2V5SW52b2tlU2lnbmVkAAEDAwMKAAIkbAgFAXQJdHJhbnNmZXJzCgACJHMJAJADAQUCJGwKAAUkYWNjMAYKAQUkZjBfMQICJGECJGkDCQBnAgUCJGkFAiRzBQIkYQkBDHBvb2xJbk9yYWNsZQIFAiRhCQCRAwIFAiRsBQIkaQoBBSRmMF8yAgIkYQIkaQMJAGcCBQIkaQUCJHMFAiRhCQACAQIUTGlzdCBzaXplIGV4Y2VlZHMgMjcJAQUkZjBfMgIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIJAQUkZjBfMQIFBSRhY2MwAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8AEAARABIAEwAUABUAFgAXABgAGQAaABsFCmlzUmlnaHRGZWUHBRBzaWduZWRCeU9uZUFkbWluBwUPaXNUcmFuc2ZlcldhdmVzBwkAZwIJAGQCCQBkAgUSYWRtaW5QdWJLZXkxU2lnbmVkBRJhZG1pblB1YktleTJTaWduZWQFEmFkbWluUHViS2V5M1NpZ25lZAACE5egEA==", "height": 2361528, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 8ZL2wPCQYBpaiHKekgytdt6gsJjL4oY8e74K82S1nzb4 Next: none Diff:
OldNewDifferences
3939 let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1))
4040 then 1
4141 else 0
42- let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], adminPubKey2))
42+ let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey2))
4343 then 1
4444 else 0
45- let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], adminPubKey3))
45+ let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey3))
4646 then 1
4747 else 0
48- let adminPubKeyInvokeSigned = if (sigVerify(tx.bodyBytes, tx.proofs[2], adminInvoke))
48+ let adminPubKeyInvokeSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminInvoke))
4949 then 1
5050 else 0
5151 match tx {
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let kPoolInOrecle = "pool_"
55
66 let kPoolAssetIdA = "A_asset_id"
77
88 let kPoolAssetIdB = "B_asset_id"
99
1010 let oracle = Address(base58'3MvVBtsXroQpy1tsPw21TU2ET9A8WfmrNjz')
1111
1212 func getBase58FromOracle (key) = match getString(oracle, key) {
1313 case string: String =>
1414 fromBase58String(string)
1515 case nothing =>
1616 throw((key + "is empty"))
1717 }
1818
1919
2020 let kAdminPubKey1 = "admin_pub_1"
2121
2222 let kAdminPubKey2 = "admin_pub_2"
2323
2424 let kAdminPubKey3 = "admin_pub_3"
2525
2626 let kAdminInvokePubKey = "admin_invoke_pub"
2727
2828 let adminPubKey1 = getBase58FromOracle(kAdminPubKey1)
2929
3030 let adminPubKey2 = getBase58FromOracle(kAdminPubKey2)
3131
3232 let adminPubKey3 = getBase58FromOracle(kAdminPubKey3)
3333
3434 let adminInvoke = getBase58FromOracle(kAdminInvokePubKey)
3535
3636
3737 @Verifier(tx)
3838 func verify () = {
3939 let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1))
4040 then 1
4141 else 0
42- let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], adminPubKey2))
42+ let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey2))
4343 then 1
4444 else 0
45- let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], adminPubKey3))
45+ let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey3))
4646 then 1
4747 else 0
48- let adminPubKeyInvokeSigned = if (sigVerify(tx.bodyBytes, tx.proofs[2], adminInvoke))
48+ let adminPubKeyInvokeSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminInvoke))
4949 then 1
5050 else 0
5151 match tx {
5252 case t: MassTransferTransaction =>
5353 func poolInOracle (a,transfer) = {
5454 let poolAddress = match transfer.recipient {
5555 case add: Address =>
5656 toString(add)
5757 case _ =>
5858 throw("Not known type of recipient")
5959 }
6060 if (isDefined(getString(oracle, (kPoolInOrecle + poolAddress))))
6161 then if ((valueOrElse(getString(transfer.recipient, kPoolAssetIdA), "") == "WAVES"))
6262 then true
6363 else (valueOrElse(getString(transfer.recipient, kPoolAssetIdB), "") == "WAVES")
6464 else false
6565 }
6666
6767 let isRightFee = (t.fee == (500000 + (fraction(50000, size(t.transfers), 100000, CEILING) * 100000)))
6868 let isTransferWaves = (t.assetId == unit)
6969 let signedByOneAdmin = ((((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) + adminPubKeyInvokeSigned) >= 1)
7070 if (if (if ({
7171 let $l = t.transfers
7272 let $s = size($l)
7373 let $acc0 = true
7474 func $f0_1 ($a,$i) = if (($i >= $s))
7575 then $a
7676 else poolInOracle($a, $l[$i])
7777
7878 func $f0_2 ($a,$i) = if (($i >= $s))
7979 then $a
8080 else throw("List size exceeds 27")
8181
8282 $f0_2($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($f0_1($acc0, 0), 1), 2), 3), 4), 5), 6), 7), 8), 9), 10), 11), 12), 13), 14), 15), 16), 17), 18), 19), 20), 21), 22), 23), 24), 25), 26), 27)
8383 })
8484 then isRightFee
8585 else false)
8686 then signedByOneAdmin
8787 else false)
8888 then isTransferWaves
8989 else false
9090 case _ =>
9191 (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 2)
9292 }
9393 }
9494

github/deemru/w8io/026f985 
26.64 ms