tx · FE3oTnw9CWXyf9EtDkSkiUMxtU6WWZGqZg4yhpnbwcgB

3PLk7wu8tovkaszYGLZy4g4yKMMRMuHeUwg:  -0.00600000 Waves

2023.03.24 12:49 [3569535] smart account 3PLk7wu8tovkaszYGLZy4g4yKMMRMuHeUwg > SELF 0.00000000 Waves

{ "type": 13, "id": "FE3oTnw9CWXyf9EtDkSkiUMxtU6WWZGqZg4yhpnbwcgB", "fee": 600000, "feeAssetId": null, "timestamp": 1679651298931, "version": 2, "chainId": 87, "sender": "3PLk7wu8tovkaszYGLZy4g4yKMMRMuHeUwg", "senderPublicKey": "CF6DNnmk7CjEqGYzMYDrLUFF7Pnzp9bYDUDCohZxreKW", "proofs": [ "", "2GFm4yZn3gKfjQqFRrFjMMhQTGEttoF8D9qLGbDVhLxAZpoJiS7XHASnwtU9Lyy6gTcoHTYFrmS5jC8MRdDqxPng", "5c2SkT8dmnqsRtr1pUiLftSAcrjNeRoj2Ao5Nwi4uH3FT3DMZW7iUQzDV8kbjLGN9AhLik4V6WbKf4gG1YaDJ3qH" ], "script": "base64:BgICCAINAAZvcmFjbGUJAQdBZGRyZXNzAQEaAVeK/whomjW6QM1hdPISN96mN/D6OM7oHjgBE2dldEJhc2U1OEZyb21PcmFjbGUBA2tleQQHJG1hdGNoMAkAnQgCBQZvcmFjbGUFA2tleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEBnN0cmluZwUHJG1hdGNoMAkA2QQBBQZzdHJpbmcEB25vdGhpbmcFByRtYXRjaDAJAAIBCQCsAgIFA2tleQIIaXMgZW1wdHkADWtBZG1pblB1YktleTECC2FkbWluX3B1Yl8xAA1rQWRtaW5QdWJLZXkyAgthZG1pbl9wdWJfMgANa0FkbWluUHViS2V5MwILYWRtaW5fcHViXzMAEmtBZG1pbkludm9rZVB1YktleQIQYWRtaW5faW52b2tlX3B1YgAMa1JvdXRpbmdBZGRyAg9yb3V0aW5nX2FkZHJlc3MADGFkbWluUHViS2V5MQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQ1rQWRtaW5QdWJLZXkxAAxhZG1pblB1YktleTIJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUNa0FkbWluUHViS2V5MgAMYWRtaW5QdWJLZXkzCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDWtBZG1pblB1YktleTMAC2FkbWluSW52b2tlCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFEmtBZG1pbkludm9rZVB1YktleQAOcm91dGluZ0FkZHJlc3MJAQdBZGRyZXNzAQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQxrUm91dGluZ0FkZHIAEWtleVByZWZpeFBvb2xOYW1lAgVwb29sXwABAnR4AQZ2ZXJpZnkABAckbWF0Y2gwBQJ0eAMJAAECBQckbWF0Y2gwAhdJbnZva2VTY3JpcHRUcmFuc2FjdGlvbgQDaW52BQckbWF0Y2gwBAppc1JpZ2h0RmVlAwkAAAIIBQNpbnYDZmVlAKD3NgkAAAIIBQNpbnYKZmVlQXNzZXRJZAUEdW5pdAcEDWlzUm91dGluZ0NhbGwDCQAAAggFA2ludgRkQXBwBQ5yb3V0aW5nQWRkcmVzcwkAAAIIBQNpbnYIZnVuY3Rpb24CDHJvdXRpbmdUcmFkZQcEEmlzRXhjaGFuZ2VDYWxsQ1BNTQMDCQEJaXNEZWZpbmVkAQkAnQgCBQZvcmFjbGUJAKwCAgURa2V5UHJlZml4UG9vbE5hbWUJAKUIAQkApAgBCAUDaW52BGRBcHAJAAACCAUDaW52CGZ1bmN0aW9uAgxjYWxsRnVuY3Rpb24HCQAAAgkAkQMCCAUDaW52BGFyZ3MAAAIIZXhjaGFuZ2UHBA5pc0V4Y2hhbmdlQ2FsbAMJAQlpc0RlZmluZWQBCQCdCAIFBm9yYWNsZQkArAICBRFrZXlQcmVmaXhQb29sTmFtZQkApQgBCQCkCAEIBQNpbnYEZEFwcAkAAAIIBQNpbnYIZnVuY3Rpb24CCGV4Y2hhbmdlBwQSYWRtaW5QdWJLZXkxU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUMYWRtaW5QdWJLZXkxAAEAAAQSYWRtaW5QdWJLZXkyU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUMYWRtaW5QdWJLZXkyAAEAAAQSYWRtaW5QdWJLZXkzU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUMYWRtaW5QdWJLZXkzAAEAAAQXYWRtaW5QdWJLZXlJbnZva2VTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQthZG1pbkludm9rZQABAAAEEHNpZ25lZEJ5T25lQWRtaW4JAGcCCQBkAgkAZAIJAGQCBRJhZG1pblB1YktleTFTaWduZWQFEmFkbWluUHViS2V5MlNpZ25lZAUSYWRtaW5QdWJLZXkzU2lnbmVkBRdhZG1pblB1YktleUludm9rZVNpZ25lZAABAwMDAwMFDmlzRXhjaGFuZ2VDYWxsBgUSaXNFeGNoYW5nZUNhbGxDUE1NBgUNaXNSb3V0aW5nQ2FsbAkAAAIJAJADAQgFA2ludghwYXltZW50cwABBwUKaXNSaWdodEZlZQcFEHNpZ25lZEJ5T25lQWRtaW4HBBJhZG1pblB1YktleTFTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQxhZG1pblB1YktleTEAAQAABBJhZG1pblB1YktleTJTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwABBQxhZG1pblB1YktleTIAAQAABBJhZG1pblB1YktleTNTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwACBQxhZG1pblB1YktleTMAAQAACQBnAgkAZAIJAGQCBRJhZG1pblB1YktleTFTaWduZWQFEmFkbWluUHViS2V5MlNpZ25lZAUSYWRtaW5QdWJLZXkzU2lnbmVkAALj+7Wr", "height": 3569535, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: CGfewU2FvRwQ3teJX1CRaZSwmtxCtvwv4MbJekbhLCvc Next: ATCTBdgr9rUi44p3zddXEPQYbvN3sQ51ZjXYJWKyzHPA Diff:
OldNewDifferences
6464 then 1
6565 else 0
6666 let signedByOneAdmin = ((((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) + adminPubKeyInvokeSigned) >= 1)
67- if (if (if (if (if (if (isExchangeCall)
67+ if (if (if (if (if (isExchangeCall)
6868 then true
6969 else isExchangeCallCPMM)
7070 then true
7171 else isRoutingCall)
7272 then (size(inv.payments) == 1)
73- else false)
74- then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
7573 else false)
7674 then isRightFee
7775 else false)
Full:
OldNewDifferences
11 {-# STDLIB_VERSION 6 #-}
22 {-# SCRIPT_TYPE ACCOUNT #-}
33 {-# CONTENT_TYPE DAPP #-}
44 let oracle = Address(base58'3PEbqViERCoKnmcSULh6n2aiMvUdSQdCsom')
55
66 func getBase58FromOracle (key) = match getString(oracle, key) {
77 case string: String =>
88 fromBase58String(string)
99 case nothing =>
1010 throw((key + "is empty"))
1111 }
1212
1313
1414 let kAdminPubKey1 = "admin_pub_1"
1515
1616 let kAdminPubKey2 = "admin_pub_2"
1717
1818 let kAdminPubKey3 = "admin_pub_3"
1919
2020 let kAdminInvokePubKey = "admin_invoke_pub"
2121
2222 let kRoutingAddr = "routing_address"
2323
2424 let adminPubKey1 = getBase58FromOracle(kAdminPubKey1)
2525
2626 let adminPubKey2 = getBase58FromOracle(kAdminPubKey2)
2727
2828 let adminPubKey3 = getBase58FromOracle(kAdminPubKey3)
2929
3030 let adminInvoke = getBase58FromOracle(kAdminInvokePubKey)
3131
3232 let routingAddress = Address(getBase58FromOracle(kRoutingAddr))
3333
3434 let keyPrefixPoolName = "pool_"
3535
3636
3737 @Verifier(tx)
3838 func verify () = match tx {
3939 case inv: InvokeScriptTransaction =>
4040 let isRightFee = if ((inv.fee == 900000))
4141 then (inv.feeAssetId == unit)
4242 else false
4343 let isRoutingCall = if ((inv.dApp == routingAddress))
4444 then (inv.function == "routingTrade")
4545 else false
4646 let isExchangeCallCPMM = if (if (isDefined(getString(oracle, (keyPrefixPoolName + toString(addressFromRecipient(inv.dApp))))))
4747 then (inv.function == "callFunction")
4848 else false)
4949 then (inv.args[0] == "exchange")
5050 else false
5151 let isExchangeCall = if (isDefined(getString(oracle, (keyPrefixPoolName + toString(addressFromRecipient(inv.dApp))))))
5252 then (inv.function == "exchange")
5353 else false
5454 let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1))
5555 then 1
5656 else 0
5757 let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey2))
5858 then 1
5959 else 0
6060 let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey3))
6161 then 1
6262 else 0
6363 let adminPubKeyInvokeSigned = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminInvoke))
6464 then 1
6565 else 0
6666 let signedByOneAdmin = ((((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) + adminPubKeyInvokeSigned) >= 1)
67- if (if (if (if (if (if (isExchangeCall)
67+ if (if (if (if (if (isExchangeCall)
6868 then true
6969 else isExchangeCallCPMM)
7070 then true
7171 else isRoutingCall)
7272 then (size(inv.payments) == 1)
73- else false)
74- then sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)
7573 else false)
7674 then isRightFee
7775 else false)
7876 then signedByOneAdmin
7977 else false
8078 case _ =>
8179 let adminPubKey1Signed = if (sigVerify(tx.bodyBytes, tx.proofs[0], adminPubKey1))
8280 then 1
8381 else 0
8482 let adminPubKey2Signed = if (sigVerify(tx.bodyBytes, tx.proofs[1], adminPubKey2))
8583 then 1
8684 else 0
8785 let adminPubKey3Signed = if (sigVerify(tx.bodyBytes, tx.proofs[2], adminPubKey3))
8886 then 1
8987 else 0
9088 (((adminPubKey1Signed + adminPubKey2Signed) + adminPubKey3Signed) >= 2)
9189 }
9290

github/deemru/w8io/3ef1775 
31.04 ms