tx · 2MGWf8kASDBFKUQTMB7KUktLecyYePGwJ8nffCZj8Qin

3N3v2zVJyynhzc39qG5wrE244prmxQ4bgV4:  -0.14000000 Waves

2023.03.22 17:10 [2501322] smart account 3N3v2zVJyynhzc39qG5wrE244prmxQ4bgV4 > SELF 0.00000000 Waves

{ "type": 13, "id": "2MGWf8kASDBFKUQTMB7KUktLecyYePGwJ8nffCZj8Qin", "fee": 14000000, "feeAssetId": null, "timestamp": 1679494210713, "version": 2, "chainId": 84, "sender": "3N3v2zVJyynhzc39qG5wrE244prmxQ4bgV4", "senderPublicKey": "B9tjfxvdWuoHAvWusCmsxYMGHa4o2uzQmod3uHjLmF5G", "proofs": [ "2u7KVZVXRpudCZVW5keaZSX2e2EJgYMTgxv2YyxWqg6goqh98a7NUMQYfdvP9ZTkiy3rhawu2iMtHRE6d1DutAof", "2oTk3CqLQ8oXhsavjgTMSkjx11o3mRULghJuZFqHKeCVeLYEpGXm221LkpDbR2EKmcxuuXhfg1sBNe16m91D4qgu" ], "script": "base64:BgICCAINAAZvcmFjbGUJAQdBZGRyZXNzAQEaAVRIE5cMwNMzzCUygLYp96dkaICr48x7S5kBE2dldEJhc2U1OEZyb21PcmFjbGUBA2tleQQHJG1hdGNoMAkAnQgCBQZvcmFjbGUFA2tleQMJAAECBQckbWF0Y2gwAgZTdHJpbmcEBnN0cmluZwUHJG1hdGNoMAkA2QQBBQZzdHJpbmcEB25vdGhpbmcFByRtYXRjaDAJAAIBCQCsAgIFA2tleQIIaXMgZW1wdHkADWtBZG1pblB1YktleTECC2FkbWluX3B1Yl8xAA1rQWRtaW5QdWJLZXkyAgthZG1pbl9wdWJfMgANa0FkbWluUHViS2V5MwILYWRtaW5fcHViXzMAEmtBZG1pbkludm9rZVB1YktleQIQYWRtaW5faW52b2tlX3B1YgAMa1JvdXRpbmdBZGRyAg9yb3V0aW5nX2FkZHJlc3MADGFkbWluUHViS2V5MQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQ1rQWRtaW5QdWJLZXkxAAxhZG1pblB1YktleTIJARNnZXRCYXNlNThGcm9tT3JhY2xlAQUNa0FkbWluUHViS2V5MgAMYWRtaW5QdWJLZXkzCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFDWtBZG1pblB1YktleTMAC2FkbWluSW52b2tlCQETZ2V0QmFzZTU4RnJvbU9yYWNsZQEFEmtBZG1pbkludm9rZVB1YktleQAOcm91dGluZ0FkZHJlc3MJAQdBZGRyZXNzAQkBE2dldEJhc2U1OEZyb21PcmFjbGUBBQxrUm91dGluZ0FkZHIAEWtleVByZWZpeFBvb2xOYW1lAgVwb29sXwABAnR4AQZ2ZXJpZnkABAckbWF0Y2gwBQJ0eAMJAAECBQckbWF0Y2gwAhdJbnZva2VTY3JpcHRUcmFuc2FjdGlvbgQDaW52BQckbWF0Y2gwBAppc1JpZ2h0RmVlAwkAAAIIBQNpbnYDZmVlAKD3NgkAAAIIBQNpbnYKZmVlQXNzZXRJZAUEdW5pdAcEDWlzUm91dGluZ0NhbGwDCQAAAggFA2ludgRkQXBwBQ5yb3V0aW5nQWRkcmVzcwkAAAIIBQNpbnYIZnVuY3Rpb24CDHJvdXRpbmdUcmFkZQcEEmlzRXhjaGFuZ2VDYWxsQ1BNTQMDCQEJaXNEZWZpbmVkAQkAnQgCBQZvcmFjbGUJAKwCAgURa2V5UHJlZml4UG9vbE5hbWUJAKUIAQkApAgBCAUDaW52BGRBcHAJAAACCAUDaW52CGZ1bmN0aW9uAgxjYWxsRnVuY3Rpb24HCQAAAgkAkQMCCAUDaW52BGFyZ3MAAAIIZXhjaGFuZ2UHBA5pc0V4Y2hhbmdlQ2FsbAMJAQlpc0RlZmluZWQBCQCdCAIFBm9yYWNsZQkArAICBRFrZXlQcmVmaXhQb29sTmFtZQkApQgBCQCkCAEIBQNpbnYEZEFwcAkAAAIIBQNpbnYIZnVuY3Rpb24CCGV4Y2hhbmdlBwQSYWRtaW5QdWJLZXkxU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUMYWRtaW5QdWJLZXkxAAEAAAQSYWRtaW5QdWJLZXkyU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUMYWRtaW5QdWJLZXkyAAEAAAQSYWRtaW5QdWJLZXkzU2lnbmVkAwkA9AMDCAUCdHgJYm9keUJ5dGVzCQCRAwIIBQJ0eAZwcm9vZnMAAAUMYWRtaW5QdWJLZXkzAAEAAAQXYWRtaW5QdWJLZXlJbnZva2VTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQthZG1pbkludm9rZQABAAAEEHNpZ25lZEJ5T25lQWRtaW4JAGcCCQBkAgkAZAIJAGQCBRJhZG1pblB1YktleTFTaWduZWQFEmFkbWluUHViS2V5MlNpZ25lZAUSYWRtaW5QdWJLZXkzU2lnbmVkBRdhZG1pblB1YktleUludm9rZVNpZ25lZAABAwMDAwMFDmlzRXhjaGFuZ2VDYWxsBgUSaXNFeGNoYW5nZUNhbGxDUE1NBgUNaXNSb3V0aW5nQ2FsbAkAAAIJAJADAQgFA2ludghwYXltZW50cwABBwUKaXNSaWdodEZlZQcFEHNpZ25lZEJ5T25lQWRtaW4HBBJhZG1pblB1YktleTFTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwAABQxhZG1pblB1YktleTEAAQAABBJhZG1pblB1YktleTJTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwABBQxhZG1pblB1YktleTIAAQAABBJhZG1pblB1YktleTNTaWduZWQDCQD0AwMIBQJ0eAlib2R5Qnl0ZXMJAJEDAggFAnR4BnByb29mcwACBQxhZG1pblB1YktleTMAAQAACQBnAgkAZAIJAGQCBRJhZG1pblB1YktleTFTaWduZWQFEmFkbWluUHViS2V5MlNpZ25lZAUSYWRtaW5QdWJLZXkzU2lnbmVkAAKwpyKg", "height": 2501322, "applicationStatus": "succeeded", "spentComplexity": 0 } View: original | compacted Prev: 6dTMKXHrBZVXcD91DkV44XSr7zN8HHZtTsgbv1G5tG5Y Next: none 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'3MvVBtsXroQpy1tsPw21TU2ET9A8WfmrNjz')
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/026f985 
23.70 ms