From 62056105e43a851237757ba4c1643ffb97ccb960 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Augusto?= Date: Wed, 27 Aug 2025 10:36:33 +0100 Subject: [PATCH] feat: extend debridge to support solana (extraction + generation) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: André Augusto --- .vscode/launch.json | 6 +- .vscode/settings.json | 16 + cli/cli.py | 6 +- config/constants.py | 2 +- .../ABIs/avalanche/dln_destination.json | 1 + .../debridge/ABIs/avalanche/dln_source.json | 1 + .../debridge/ABIs/linea/dln_destination.json | 1 + extractor/debridge/ABIs/linea/dln_source.json | 1 + .../ABIs/optimism/dln_destination.json | 1 + .../debridge/ABIs/optimism/dln_source.json | 1 + .../ABIs/polygon/dln_destination.json | 1 + .../debridge/ABIs/polygon/dln_source.json | 1 + extractor/debridge/constants.py | 133 +++- extractor/debridge/handler.py | 568 +++++++++++++++++- generator/common/price_generator.py | 6 +- generator/debridge/generator.py | 476 ++++++++++++--- generator/mayan/generator.py | 59 +- repository/common/models.py | 6 +- repository/debridge/__init__.py | 2 - repository/debridge/models.py | 242 ++++---- repository/debridge/repository.py | 41 +- repository/mayan/models.py | 16 + requirements.txt | 6 +- rpcs/rpc_client.py | 2 +- tests/debridge/test_data_extraction.py | 7 - utils/utils.py | 3 + 26 files changed, 1323 insertions(+), 282 deletions(-) create mode 100644 .vscode/settings.json create mode 100644 extractor/debridge/ABIs/avalanche/dln_destination.json create mode 100644 extractor/debridge/ABIs/avalanche/dln_source.json create mode 100644 extractor/debridge/ABIs/linea/dln_destination.json create mode 100644 extractor/debridge/ABIs/linea/dln_source.json create mode 100644 extractor/debridge/ABIs/optimism/dln_destination.json create mode 100644 extractor/debridge/ABIs/optimism/dln_source.json create mode 100644 extractor/debridge/ABIs/polygon/dln_destination.json create mode 100644 extractor/debridge/ABIs/polygon/dln_source.json diff --git a/.vscode/launch.json b/.vscode/launch.json index b208aff..3c7d4f3 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -8,7 +8,7 @@ "module": "pytest", "justMyCode": true, "console": "integratedTerminal", - "python": "${workspaceFolder}/.xchaindata/bin/python3.11", + "python": "${workspaceFolder}/.xchaindata/bin/python", "env": { "PYTHONPATH": "${workspaceFolder}", "DATABASE_URL": "postgresql://admin:pwd@localhost/testing" }, "args": [ "-vvv", @@ -28,7 +28,7 @@ ], "console": "integratedTerminal", "justMyCode": true, - "python": "${workspaceFolder}/.xchaindata/bin/python3.11", + "python": "${workspaceFolder}/.xchaindata/bin/python", "env": { "PYTHONPATH": "${workspaceFolder}", "DATABASE_URL": "postgresql://admin:pwd@localhost/testing" } }, { @@ -190,7 +190,7 @@ "type": "debugpy", "request": "launch", "program": "${workspaceFolder}/__init__.py", - "args": ["extract", "--bridge", "debridge", "--start_ts", "1717196400", "--end_ts", "1733011200", "--blockchains", "ethereum", "arbitrum", "bnb", "base"], + "args": ["extract", "--bridge", "debridge", "--start_ts", "1751328000", "--end_ts", "1751414400", "--blockchains", "solana", "ethereum", "base", "avalanche", "optimism", "arbitrum", "bnb", "polygon", "linea", "--solana-range", "dst5MGcFPoBeREFAA5E3tU5ij8m5uVYwkzkSAbsLbNo:289c14AwMVuJtJteFhgXQdhdG7FbEMVsaFxKDCSRsRyZkyzNJPB8s6GGsvp1BqVpnVx2teHECeicVRjSEyvWTpgW:52SNSVHZQWw2C2aWALRF81jxVAApKnT67ryzmLC8j6wWhbcrziDVx4rXuhuNLZqkNFWXDWqeD6MEBbjemArGdhJP", "src5qyZHqTqecJV4aY6Cb6zDZLMDzrDKKezs22MPHr4:5vdCA5FvZmDfnLNXtg7FezMJum4AjTbSL3SFf1jDJrLE6CDLB98sYn8AJpzzB9s74gywYwMVKjiEEiu6xNr6gmPJ:4BD6XpXXydEzszppNfMTmUG5iNWuGHPorF1k6TVVp3Gpef8wqCAw4VMMVSMCDu1muoG2fpRb2ZLyo6VDLCX4P8ws"], "console": "integratedTerminal", "justMyCode": true, "python": "${workspaceFolder}/.xchaindata/bin/python", diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..9d0423e --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,16 @@ +{ + "cSpell.words": [ + "ccip", + "cctp", + "debridge", + "lamports", + "levelname", + "linea", + "omnibridge", + "ronin", + "solana", + "unpad", + "unvalidated", + "WXDAI" + ] +} \ No newline at end of file diff --git a/cli/cli.py b/cli/cli.py index 7d1d12e..90e7829 100644 --- a/cli/cli.py +++ b/cli/cli.py @@ -81,9 +81,6 @@ def extract_evm_data(idx, bridge, blockchain, start_block, end_block, blockchain ) extractor = EvmExtractor(bridge, blockchain, blockchains) - if idx == len(blockchains) - 1: - extractor.post_processing() - except Exception as e: log_to_cli( build_log_message_2( @@ -102,6 +99,9 @@ def extract_evm_data(idx, bridge, blockchain, start_block, end_block, blockchain end_block, ) + if idx == len(blockchains) - 1: + extractor.post_processing() + def extract_solana_data(idx, bridge, blockchain, signature_ranges, blockchains): extractor = SolanaExtractor(bridge, blockchain, blockchains) diff --git a/config/constants.py b/config/constants.py index 0961d36..f428b36 100644 --- a/config/constants.py +++ b/config/constants.py @@ -112,7 +112,7 @@ class Bridge(Enum): Bridge.POLYGON: False, Bridge.RONIN: False, Bridge.OMNIBRIDGE: False, - Bridge.DEBRIDGE: False, + Bridge.DEBRIDGE: True, Bridge.MAYAN: True, } diff --git a/extractor/debridge/ABIs/avalanche/dln_destination.json b/extractor/debridge/ABIs/avalanche/dln_destination.json new file mode 100644 index 0000000..b439885 --- /dev/null +++ b/extractor/debridge/ABIs/avalanche/dln_destination.json @@ -0,0 +1 @@ +[{"inputs":[],"name":"AdminBadRole","type":"error"},{"inputs":[{"internalType":"bytes","name":"expectedBeneficiary","type":"bytes"}],"name":"AllowOnlyForBeneficiary","type":"error"},{"inputs":[],"name":"CallProxyBadRole","type":"error"},{"inputs":[],"name":"EthTransferFailed","type":"error"},{"inputs":[],"name":"GovMonitoringBadRole","type":"error"},{"inputs":[],"name":"IncorrectOrderStatus","type":"error"},{"inputs":[],"name":"MismatchGiveChainId","type":"error"},{"inputs":[],"name":"MismatchNativeTakerAmount","type":"error"},{"inputs":[],"name":"MismatchTakerAmount","type":"error"},{"inputs":[],"name":"MismatchedOrderId","type":"error"},{"inputs":[],"name":"MismatchedTransferAmount","type":"error"},{"inputs":[{"internalType":"bytes","name":"nativeSender","type":"bytes"},{"internalType":"uint256","name":"chainIdFrom","type":"uint256"}],"name":"NativeSenderBadRole","type":"error"},{"inputs":[],"name":"NotSupportedDstChain","type":"error"},{"inputs":[],"name":"SignatureInvalidV","type":"error"},{"inputs":[],"name":"TransferAmountNotCoverFees","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"UnexpectedBatchSize","type":"error"},{"inputs":[],"name":"UnknownEngine","type":"error"},{"inputs":[],"name":"WrongAddressLength","type":"error"},{"inputs":[],"name":"WrongArgument","type":"error"},{"inputs":[],"name":"WrongChain","type":"error"},{"inputs":[],"name":"WrongToken","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"orderTakeFinalAmount","type":"uint256"}],"name":"DecreasedTakeAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdapter","type":"address"},{"indexed":false,"internalType":"address","name":"newAdapter","type":"address"}],"name":"ExternalCallAdapterUpdated","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"indexed":false,"internalType":"struct DlnOrderLib.Order","name":"order","type":"tuple"},{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address","name":"unlockAuthority","type":"address"}],"name":"FulfilledOrder","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"MaxOrderCountPerBatchEvmUnlockChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"MaxOrderCountPerBatchSolanaUnlockChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"indexed":false,"internalType":"struct DlnOrderLib.Order","name":"order","type":"tuple"},{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"cancelBeneficiary","type":"bytes"},{"indexed":false,"internalType":"bytes32","name":"submissionId","type":"bytes32"}],"name":"SentOrderCancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"beneficiary","type":"bytes"},{"indexed":false,"internalType":"bytes32","name":"submissionId","type":"bytes32"}],"name":"SentOrderUnlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"chainIdFrom","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"dlnSourceAddress","type":"bytes"},{"indexed":false,"internalType":"enum DlnOrderLib.ChainEngine","name":"chainEngine","type":"uint8"}],"name":"SetDlnSourceAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"BPS_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EVM_ADDRESS_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GOVMONITORING_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_ADDRESS_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_AMOUNT_DIVIDER_FOR_TRANSFER_TO_SOLANA","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SOLANA_ADDRESS_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"chainEngines","outputs":[{"internalType":"enum DlnOrderLib.ChainEngine","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deBridgeGate","outputs":[{"internalType":"contract IDeBridgeGate","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"dlnSourceAddresses","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"externalCallAdapter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"uint256","name":"_fulFillAmount","type":"uint256"},{"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"internalType":"bytes","name":"_permitEnvelope","type":"bytes"},{"internalType":"address","name":"_unlockAuthority","type":"address"},{"internalType":"address","name":"_externalCallRewardBeneficiary","type":"address"}],"name":"fulfillOrder","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"uint256","name":"_fulFillAmount","type":"uint256"},{"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"internalType":"bytes","name":"_permitEnvelope","type":"bytes"},{"internalType":"address","name":"_unlockAuthority","type":"address"}],"name":"fulfillOrder","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"cid","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"}],"name":"getOrderId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IDeBridgeGate","name":"_deBridgeGate","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxOrderCountPerBatchEvmUnlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxOrderCountPerBatchSolanaUnlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"uint256","name":"_newSubtrahend","type":"uint256"}],"name":"patchOrderTake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_orderIds","type":"bytes32[]"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_executionFee","type":"uint256"}],"name":"sendBatchEvmUnlock","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order[]","name":"_orders","type":"tuple[]"},{"internalType":"bytes32","name":"_beneficiary","type":"bytes32"},{"internalType":"uint256","name":"_executionFee","type":"uint256"},{"internalType":"uint64","name":"_initWalletIfNeededInstructionReward","type":"uint64"},{"internalType":"uint64","name":"_claimUnlockInstructionReward","type":"uint64"}],"name":"sendBatchSolanaUnlock","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"address","name":"_cancelBeneficiary","type":"address"},{"internalType":"uint256","name":"_executionFee","type":"uint256"}],"name":"sendEvmOrderCancel","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_executionFee","type":"uint256"}],"name":"sendEvmUnlock","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"bytes32","name":"_cancelBeneficiary","type":"bytes32"},{"internalType":"uint256","name":"_executionFee","type":"uint256"},{"internalType":"uint64","name":"_reward1","type":"uint64"},{"internalType":"uint64","name":"_reward2","type":"uint64"}],"name":"sendSolanaOrderCancel","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"bytes32","name":"_beneficiary","type":"bytes32"},{"internalType":"uint256","name":"_executionFee","type":"uint256"},{"internalType":"uint64","name":"_initWalletIfNeededInstructionReward","type":"uint64"},{"internalType":"uint64","name":"_claimUnlockInstructionReward","type":"uint64"}],"name":"sendSolanaUnlock","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_chainIdFrom","type":"uint256"},{"internalType":"bytes","name":"_dlnSourceAddress","type":"bytes"},{"internalType":"enum DlnOrderLib.ChainEngine","name":"_chainEngine","type":"uint8"}],"name":"setDlnSourceAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_externalCallAdapter","type":"address"}],"name":"setExternalCallAdapter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newEvmCount","type":"uint256"},{"internalType":"uint256","name":"_newSolanaCount","type":"uint256"}],"name":"setMaxOrderCountsPerBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"takeOrders","outputs":[{"internalType":"enum DlnDestination.OrderTakeStatus","name":"status","type":"uint8"},{"internalType":"address","name":"takerAddress","type":"address"},{"internalType":"uint256","name":"giveChainId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"takePatches","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"}] \ No newline at end of file diff --git a/extractor/debridge/ABIs/avalanche/dln_source.json b/extractor/debridge/ABIs/avalanche/dln_source.json new file mode 100644 index 0000000..bae5c89 --- /dev/null +++ b/extractor/debridge/ABIs/avalanche/dln_source.json @@ -0,0 +1 @@ +[{"inputs":[],"name":"AdminBadRole","type":"error"},{"inputs":[],"name":"CallProxyBadRole","type":"error"},{"inputs":[{"internalType":"bytes32","name":"orderId","type":"bytes32"},{"internalType":"uint48","name":"takeChainId","type":"uint48"},{"internalType":"uint256","name":"submissionsChainIdFrom","type":"uint256"}],"name":"CriticalMismatchTakeChainId","type":"error"},{"inputs":[],"name":"EthTransferFailed","type":"error"},{"inputs":[],"name":"GovMonitoringBadRole","type":"error"},{"inputs":[],"name":"IncorrectOrderStatus","type":"error"},{"inputs":[],"name":"MismatchNativeGiveAmount","type":"error"},{"inputs":[],"name":"MismatchedOrderId","type":"error"},{"inputs":[],"name":"MismatchedTransferAmount","type":"error"},{"inputs":[{"internalType":"bytes","name":"nativeSender","type":"bytes"},{"internalType":"uint256","name":"chainIdFrom","type":"uint256"}],"name":"NativeSenderBadRole","type":"error"},{"inputs":[],"name":"NotSupportedDstChain","type":"error"},{"inputs":[],"name":"SignatureInvalidV","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"UnknownEngine","type":"error"},{"inputs":[],"name":"WrongAddressLength","type":"error"},{"inputs":[],"name":"WrongAffiliateFeeLength","type":"error"},{"inputs":[],"name":"WrongArgument","type":"error"},{"inputs":[],"name":"WrongChain","type":"error"},{"inputs":[{"internalType":"uint256","name":"received","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"name":"WrongFixedFee","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"affiliateFee","type":"uint256"},{"indexed":false,"internalType":"address","name":"giveTokenAddress","type":"address"}],"name":"AffiliateFeePaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"paidAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"giveTokenAddress","type":"address"}],"name":"ClaimedOrderCancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"giveAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"giveTokenAddress","type":"address"}],"name":"ClaimedUnlock","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"indexed":false,"internalType":"struct DlnOrderLib.Order","name":"order","type":"tuple"},{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"affiliateFee","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"nativeFixFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"percentFee","type":"uint256"},{"indexed":false,"internalType":"uint32","name":"referralCode","type":"uint32"},{"indexed":false,"internalType":"bytes","name":"metadata","type":"bytes"}],"name":"CreatedOrder","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"takeChainId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"submissionChainIdFrom","type":"uint256"}],"name":"CriticalMismatchChainId","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint88","name":"oldGlobalFixedNativeFee","type":"uint88"},{"indexed":false,"internalType":"uint88","name":"newGlobalFixedNativeFee","type":"uint88"}],"name":"GlobalFixedNativeFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"oldGlobalTransferFeeBps","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"newGlobalTransferFeeBps","type":"uint16"}],"name":"GlobalTransferFeeBpsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"orderGiveFinalAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"finalPercentFee","type":"uint256"}],"name":"IncreasedGiveAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"chainIdTo","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"dlnDestinationAddress","type":"bytes"},{"indexed":false,"internalType":"enum DlnOrderLib.ChainEngine","name":"chainEngine","type":"uint8"}],"name":"SetDlnDestinationAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"enum DlnSource.OrderGiveStatus","name":"status","type":"uint8"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"}],"name":"UnexpectedOrderStatusForCancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"enum DlnSource.OrderGiveStatus","name":"status","type":"uint8"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"}],"name":"UnexpectedOrderStatusForClaim","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"}],"name":"WithdrawnFee","type":"event"},{"inputs":[],"name":"BPS_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EVM_ADDRESS_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GOVMONITORING_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_ADDRESS_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SOLANA_ADDRESS_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"chainEngines","outputs":[{"internalType":"enum DlnOrderLib.ChainEngine","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_orderIds","type":"bytes32[]"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"claimBatchCancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_orderIds","type":"bytes32[]"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"claimBatchUnlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"claimCancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"claimUnlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"collectedFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"giveTokenAddress","type":"address"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"address","name":"givePatchAuthoritySrc","type":"address"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"}],"internalType":"struct DlnOrderLib.OrderCreation","name":"_orderCreation","type":"tuple"},{"internalType":"bytes","name":"_affiliateFee","type":"bytes"},{"internalType":"uint32","name":"_referralCode","type":"uint32"},{"internalType":"bytes","name":"_permitEnvelope","type":"bytes"}],"name":"createOrder","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"giveTokenAddress","type":"address"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"address","name":"givePatchAuthoritySrc","type":"address"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"}],"internalType":"struct DlnOrderLib.OrderCreation","name":"_orderCreation","type":"tuple"},{"internalType":"uint64","name":"_salt","type":"uint64"},{"internalType":"bytes","name":"_affiliateFee","type":"bytes"},{"internalType":"uint32","name":"_referralCode","type":"uint32"},{"internalType":"bytes","name":"_permitEnvelope","type":"bytes"},{"internalType":"bytes","name":"_metadata","type":"bytes"}],"name":"createSaltedOrder","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"deBridgeGate","outputs":[{"internalType":"contract IDeBridgeGate","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"dlnDestinationAddresses","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"cid","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"}],"name":"getOrderId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"giveOrders","outputs":[{"internalType":"enum DlnSource.OrderGiveStatus","name":"status","type":"uint8"},{"internalType":"uint160","name":"giveTokenAddress","type":"uint160"},{"internalType":"uint88","name":"nativeFixFee","type":"uint88"},{"internalType":"uint48","name":"takeChainId","type":"uint48"},{"internalType":"uint208","name":"percentFee","type":"uint208"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"address","name":"affiliateBeneficiary","type":"address"},{"internalType":"uint256","name":"affiliateAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"givePatches","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"globalFixedNativeFee","outputs":[{"internalType":"uint88","name":"","type":"uint88"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"globalTransferFeeBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IDeBridgeGate","name":"_deBridgeGate","type":"address"},{"internalType":"uint88","name":"_globalFixedNativeFee","type":"uint88"},{"internalType":"uint16","name":"_globalTransferFeeBps","type":"uint16"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"masterNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"uint256","name":"_addGiveAmount","type":"uint256"},{"internalType":"bytes","name":"_permitEnvelope","type":"bytes"}],"name":"patchOrderGive","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_chainIdTo","type":"uint256"},{"internalType":"bytes","name":"_dlnDestinationAddress","type":"bytes"},{"internalType":"enum DlnOrderLib.ChainEngine","name":"_chainEngine","type":"uint8"}],"name":"setDlnDestinationAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"unclaimedAffiliateETHFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"unexpectedOrderStatusForCancel","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"unexpectedOrderStatusForClaim","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint88","name":"_globalFixedNativeFee","type":"uint88"},{"internalType":"uint16","name":"_globalTransferFeeBps","type":"uint16"}],"name":"updateGlobalFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"giveTokenAddress","type":"address"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"address","name":"givePatchAuthoritySrc","type":"address"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"}],"internalType":"struct DlnOrderLib.OrderCreation","name":"_orderCreation","type":"tuple"},{"internalType":"address","name":"_signer","type":"address"},{"internalType":"uint64","name":"_salt","type":"uint64"}],"name":"validateCreationOrder","outputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"order","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"giveTokenAddress","type":"address"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"address","name":"givePatchAuthoritySrc","type":"address"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"}],"internalType":"struct DlnOrderLib.OrderCreation","name":"_orderCreation","type":"tuple"},{"internalType":"address","name":"_signer","type":"address"}],"name":"validateCreationOrder","outputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"order","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"_tokens","type":"address[]"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"withdrawFee","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/extractor/debridge/ABIs/linea/dln_destination.json b/extractor/debridge/ABIs/linea/dln_destination.json new file mode 100644 index 0000000..b439885 --- /dev/null +++ b/extractor/debridge/ABIs/linea/dln_destination.json @@ -0,0 +1 @@ +[{"inputs":[],"name":"AdminBadRole","type":"error"},{"inputs":[{"internalType":"bytes","name":"expectedBeneficiary","type":"bytes"}],"name":"AllowOnlyForBeneficiary","type":"error"},{"inputs":[],"name":"CallProxyBadRole","type":"error"},{"inputs":[],"name":"EthTransferFailed","type":"error"},{"inputs":[],"name":"GovMonitoringBadRole","type":"error"},{"inputs":[],"name":"IncorrectOrderStatus","type":"error"},{"inputs":[],"name":"MismatchGiveChainId","type":"error"},{"inputs":[],"name":"MismatchNativeTakerAmount","type":"error"},{"inputs":[],"name":"MismatchTakerAmount","type":"error"},{"inputs":[],"name":"MismatchedOrderId","type":"error"},{"inputs":[],"name":"MismatchedTransferAmount","type":"error"},{"inputs":[{"internalType":"bytes","name":"nativeSender","type":"bytes"},{"internalType":"uint256","name":"chainIdFrom","type":"uint256"}],"name":"NativeSenderBadRole","type":"error"},{"inputs":[],"name":"NotSupportedDstChain","type":"error"},{"inputs":[],"name":"SignatureInvalidV","type":"error"},{"inputs":[],"name":"TransferAmountNotCoverFees","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"UnexpectedBatchSize","type":"error"},{"inputs":[],"name":"UnknownEngine","type":"error"},{"inputs":[],"name":"WrongAddressLength","type":"error"},{"inputs":[],"name":"WrongArgument","type":"error"},{"inputs":[],"name":"WrongChain","type":"error"},{"inputs":[],"name":"WrongToken","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"orderTakeFinalAmount","type":"uint256"}],"name":"DecreasedTakeAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdapter","type":"address"},{"indexed":false,"internalType":"address","name":"newAdapter","type":"address"}],"name":"ExternalCallAdapterUpdated","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"indexed":false,"internalType":"struct DlnOrderLib.Order","name":"order","type":"tuple"},{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address","name":"unlockAuthority","type":"address"}],"name":"FulfilledOrder","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"MaxOrderCountPerBatchEvmUnlockChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"MaxOrderCountPerBatchSolanaUnlockChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"indexed":false,"internalType":"struct DlnOrderLib.Order","name":"order","type":"tuple"},{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"cancelBeneficiary","type":"bytes"},{"indexed":false,"internalType":"bytes32","name":"submissionId","type":"bytes32"}],"name":"SentOrderCancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"beneficiary","type":"bytes"},{"indexed":false,"internalType":"bytes32","name":"submissionId","type":"bytes32"}],"name":"SentOrderUnlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"chainIdFrom","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"dlnSourceAddress","type":"bytes"},{"indexed":false,"internalType":"enum DlnOrderLib.ChainEngine","name":"chainEngine","type":"uint8"}],"name":"SetDlnSourceAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"BPS_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EVM_ADDRESS_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GOVMONITORING_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_ADDRESS_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_AMOUNT_DIVIDER_FOR_TRANSFER_TO_SOLANA","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SOLANA_ADDRESS_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"chainEngines","outputs":[{"internalType":"enum DlnOrderLib.ChainEngine","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deBridgeGate","outputs":[{"internalType":"contract IDeBridgeGate","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"dlnSourceAddresses","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"externalCallAdapter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"uint256","name":"_fulFillAmount","type":"uint256"},{"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"internalType":"bytes","name":"_permitEnvelope","type":"bytes"},{"internalType":"address","name":"_unlockAuthority","type":"address"},{"internalType":"address","name":"_externalCallRewardBeneficiary","type":"address"}],"name":"fulfillOrder","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"uint256","name":"_fulFillAmount","type":"uint256"},{"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"internalType":"bytes","name":"_permitEnvelope","type":"bytes"},{"internalType":"address","name":"_unlockAuthority","type":"address"}],"name":"fulfillOrder","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"cid","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"}],"name":"getOrderId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IDeBridgeGate","name":"_deBridgeGate","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxOrderCountPerBatchEvmUnlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxOrderCountPerBatchSolanaUnlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"uint256","name":"_newSubtrahend","type":"uint256"}],"name":"patchOrderTake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_orderIds","type":"bytes32[]"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_executionFee","type":"uint256"}],"name":"sendBatchEvmUnlock","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order[]","name":"_orders","type":"tuple[]"},{"internalType":"bytes32","name":"_beneficiary","type":"bytes32"},{"internalType":"uint256","name":"_executionFee","type":"uint256"},{"internalType":"uint64","name":"_initWalletIfNeededInstructionReward","type":"uint64"},{"internalType":"uint64","name":"_claimUnlockInstructionReward","type":"uint64"}],"name":"sendBatchSolanaUnlock","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"address","name":"_cancelBeneficiary","type":"address"},{"internalType":"uint256","name":"_executionFee","type":"uint256"}],"name":"sendEvmOrderCancel","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_executionFee","type":"uint256"}],"name":"sendEvmUnlock","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"bytes32","name":"_cancelBeneficiary","type":"bytes32"},{"internalType":"uint256","name":"_executionFee","type":"uint256"},{"internalType":"uint64","name":"_reward1","type":"uint64"},{"internalType":"uint64","name":"_reward2","type":"uint64"}],"name":"sendSolanaOrderCancel","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"bytes32","name":"_beneficiary","type":"bytes32"},{"internalType":"uint256","name":"_executionFee","type":"uint256"},{"internalType":"uint64","name":"_initWalletIfNeededInstructionReward","type":"uint64"},{"internalType":"uint64","name":"_claimUnlockInstructionReward","type":"uint64"}],"name":"sendSolanaUnlock","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_chainIdFrom","type":"uint256"},{"internalType":"bytes","name":"_dlnSourceAddress","type":"bytes"},{"internalType":"enum DlnOrderLib.ChainEngine","name":"_chainEngine","type":"uint8"}],"name":"setDlnSourceAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_externalCallAdapter","type":"address"}],"name":"setExternalCallAdapter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newEvmCount","type":"uint256"},{"internalType":"uint256","name":"_newSolanaCount","type":"uint256"}],"name":"setMaxOrderCountsPerBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"takeOrders","outputs":[{"internalType":"enum DlnDestination.OrderTakeStatus","name":"status","type":"uint8"},{"internalType":"address","name":"takerAddress","type":"address"},{"internalType":"uint256","name":"giveChainId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"takePatches","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"}] \ No newline at end of file diff --git a/extractor/debridge/ABIs/linea/dln_source.json b/extractor/debridge/ABIs/linea/dln_source.json new file mode 100644 index 0000000..bae5c89 --- /dev/null +++ b/extractor/debridge/ABIs/linea/dln_source.json @@ -0,0 +1 @@ +[{"inputs":[],"name":"AdminBadRole","type":"error"},{"inputs":[],"name":"CallProxyBadRole","type":"error"},{"inputs":[{"internalType":"bytes32","name":"orderId","type":"bytes32"},{"internalType":"uint48","name":"takeChainId","type":"uint48"},{"internalType":"uint256","name":"submissionsChainIdFrom","type":"uint256"}],"name":"CriticalMismatchTakeChainId","type":"error"},{"inputs":[],"name":"EthTransferFailed","type":"error"},{"inputs":[],"name":"GovMonitoringBadRole","type":"error"},{"inputs":[],"name":"IncorrectOrderStatus","type":"error"},{"inputs":[],"name":"MismatchNativeGiveAmount","type":"error"},{"inputs":[],"name":"MismatchedOrderId","type":"error"},{"inputs":[],"name":"MismatchedTransferAmount","type":"error"},{"inputs":[{"internalType":"bytes","name":"nativeSender","type":"bytes"},{"internalType":"uint256","name":"chainIdFrom","type":"uint256"}],"name":"NativeSenderBadRole","type":"error"},{"inputs":[],"name":"NotSupportedDstChain","type":"error"},{"inputs":[],"name":"SignatureInvalidV","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"UnknownEngine","type":"error"},{"inputs":[],"name":"WrongAddressLength","type":"error"},{"inputs":[],"name":"WrongAffiliateFeeLength","type":"error"},{"inputs":[],"name":"WrongArgument","type":"error"},{"inputs":[],"name":"WrongChain","type":"error"},{"inputs":[{"internalType":"uint256","name":"received","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"name":"WrongFixedFee","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"affiliateFee","type":"uint256"},{"indexed":false,"internalType":"address","name":"giveTokenAddress","type":"address"}],"name":"AffiliateFeePaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"paidAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"giveTokenAddress","type":"address"}],"name":"ClaimedOrderCancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"giveAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"giveTokenAddress","type":"address"}],"name":"ClaimedUnlock","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"indexed":false,"internalType":"struct DlnOrderLib.Order","name":"order","type":"tuple"},{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"affiliateFee","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"nativeFixFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"percentFee","type":"uint256"},{"indexed":false,"internalType":"uint32","name":"referralCode","type":"uint32"},{"indexed":false,"internalType":"bytes","name":"metadata","type":"bytes"}],"name":"CreatedOrder","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"takeChainId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"submissionChainIdFrom","type":"uint256"}],"name":"CriticalMismatchChainId","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint88","name":"oldGlobalFixedNativeFee","type":"uint88"},{"indexed":false,"internalType":"uint88","name":"newGlobalFixedNativeFee","type":"uint88"}],"name":"GlobalFixedNativeFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"oldGlobalTransferFeeBps","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"newGlobalTransferFeeBps","type":"uint16"}],"name":"GlobalTransferFeeBpsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"orderGiveFinalAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"finalPercentFee","type":"uint256"}],"name":"IncreasedGiveAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"chainIdTo","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"dlnDestinationAddress","type":"bytes"},{"indexed":false,"internalType":"enum DlnOrderLib.ChainEngine","name":"chainEngine","type":"uint8"}],"name":"SetDlnDestinationAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"enum DlnSource.OrderGiveStatus","name":"status","type":"uint8"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"}],"name":"UnexpectedOrderStatusForCancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"enum DlnSource.OrderGiveStatus","name":"status","type":"uint8"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"}],"name":"UnexpectedOrderStatusForClaim","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"}],"name":"WithdrawnFee","type":"event"},{"inputs":[],"name":"BPS_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EVM_ADDRESS_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GOVMONITORING_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_ADDRESS_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SOLANA_ADDRESS_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"chainEngines","outputs":[{"internalType":"enum DlnOrderLib.ChainEngine","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_orderIds","type":"bytes32[]"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"claimBatchCancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_orderIds","type":"bytes32[]"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"claimBatchUnlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"claimCancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"claimUnlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"collectedFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"giveTokenAddress","type":"address"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"address","name":"givePatchAuthoritySrc","type":"address"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"}],"internalType":"struct DlnOrderLib.OrderCreation","name":"_orderCreation","type":"tuple"},{"internalType":"bytes","name":"_affiliateFee","type":"bytes"},{"internalType":"uint32","name":"_referralCode","type":"uint32"},{"internalType":"bytes","name":"_permitEnvelope","type":"bytes"}],"name":"createOrder","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"giveTokenAddress","type":"address"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"address","name":"givePatchAuthoritySrc","type":"address"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"}],"internalType":"struct DlnOrderLib.OrderCreation","name":"_orderCreation","type":"tuple"},{"internalType":"uint64","name":"_salt","type":"uint64"},{"internalType":"bytes","name":"_affiliateFee","type":"bytes"},{"internalType":"uint32","name":"_referralCode","type":"uint32"},{"internalType":"bytes","name":"_permitEnvelope","type":"bytes"},{"internalType":"bytes","name":"_metadata","type":"bytes"}],"name":"createSaltedOrder","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"deBridgeGate","outputs":[{"internalType":"contract IDeBridgeGate","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"dlnDestinationAddresses","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"cid","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"}],"name":"getOrderId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"giveOrders","outputs":[{"internalType":"enum DlnSource.OrderGiveStatus","name":"status","type":"uint8"},{"internalType":"uint160","name":"giveTokenAddress","type":"uint160"},{"internalType":"uint88","name":"nativeFixFee","type":"uint88"},{"internalType":"uint48","name":"takeChainId","type":"uint48"},{"internalType":"uint208","name":"percentFee","type":"uint208"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"address","name":"affiliateBeneficiary","type":"address"},{"internalType":"uint256","name":"affiliateAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"givePatches","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"globalFixedNativeFee","outputs":[{"internalType":"uint88","name":"","type":"uint88"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"globalTransferFeeBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IDeBridgeGate","name":"_deBridgeGate","type":"address"},{"internalType":"uint88","name":"_globalFixedNativeFee","type":"uint88"},{"internalType":"uint16","name":"_globalTransferFeeBps","type":"uint16"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"masterNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"uint256","name":"_addGiveAmount","type":"uint256"},{"internalType":"bytes","name":"_permitEnvelope","type":"bytes"}],"name":"patchOrderGive","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_chainIdTo","type":"uint256"},{"internalType":"bytes","name":"_dlnDestinationAddress","type":"bytes"},{"internalType":"enum DlnOrderLib.ChainEngine","name":"_chainEngine","type":"uint8"}],"name":"setDlnDestinationAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"unclaimedAffiliateETHFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"unexpectedOrderStatusForCancel","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"unexpectedOrderStatusForClaim","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint88","name":"_globalFixedNativeFee","type":"uint88"},{"internalType":"uint16","name":"_globalTransferFeeBps","type":"uint16"}],"name":"updateGlobalFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"giveTokenAddress","type":"address"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"address","name":"givePatchAuthoritySrc","type":"address"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"}],"internalType":"struct DlnOrderLib.OrderCreation","name":"_orderCreation","type":"tuple"},{"internalType":"address","name":"_signer","type":"address"},{"internalType":"uint64","name":"_salt","type":"uint64"}],"name":"validateCreationOrder","outputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"order","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"giveTokenAddress","type":"address"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"address","name":"givePatchAuthoritySrc","type":"address"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"}],"internalType":"struct DlnOrderLib.OrderCreation","name":"_orderCreation","type":"tuple"},{"internalType":"address","name":"_signer","type":"address"}],"name":"validateCreationOrder","outputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"order","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"_tokens","type":"address[]"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"withdrawFee","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/extractor/debridge/ABIs/optimism/dln_destination.json b/extractor/debridge/ABIs/optimism/dln_destination.json new file mode 100644 index 0000000..b439885 --- /dev/null +++ b/extractor/debridge/ABIs/optimism/dln_destination.json @@ -0,0 +1 @@ +[{"inputs":[],"name":"AdminBadRole","type":"error"},{"inputs":[{"internalType":"bytes","name":"expectedBeneficiary","type":"bytes"}],"name":"AllowOnlyForBeneficiary","type":"error"},{"inputs":[],"name":"CallProxyBadRole","type":"error"},{"inputs":[],"name":"EthTransferFailed","type":"error"},{"inputs":[],"name":"GovMonitoringBadRole","type":"error"},{"inputs":[],"name":"IncorrectOrderStatus","type":"error"},{"inputs":[],"name":"MismatchGiveChainId","type":"error"},{"inputs":[],"name":"MismatchNativeTakerAmount","type":"error"},{"inputs":[],"name":"MismatchTakerAmount","type":"error"},{"inputs":[],"name":"MismatchedOrderId","type":"error"},{"inputs":[],"name":"MismatchedTransferAmount","type":"error"},{"inputs":[{"internalType":"bytes","name":"nativeSender","type":"bytes"},{"internalType":"uint256","name":"chainIdFrom","type":"uint256"}],"name":"NativeSenderBadRole","type":"error"},{"inputs":[],"name":"NotSupportedDstChain","type":"error"},{"inputs":[],"name":"SignatureInvalidV","type":"error"},{"inputs":[],"name":"TransferAmountNotCoverFees","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"UnexpectedBatchSize","type":"error"},{"inputs":[],"name":"UnknownEngine","type":"error"},{"inputs":[],"name":"WrongAddressLength","type":"error"},{"inputs":[],"name":"WrongArgument","type":"error"},{"inputs":[],"name":"WrongChain","type":"error"},{"inputs":[],"name":"WrongToken","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"orderTakeFinalAmount","type":"uint256"}],"name":"DecreasedTakeAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdapter","type":"address"},{"indexed":false,"internalType":"address","name":"newAdapter","type":"address"}],"name":"ExternalCallAdapterUpdated","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"indexed":false,"internalType":"struct DlnOrderLib.Order","name":"order","type":"tuple"},{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address","name":"unlockAuthority","type":"address"}],"name":"FulfilledOrder","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"MaxOrderCountPerBatchEvmUnlockChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"MaxOrderCountPerBatchSolanaUnlockChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"indexed":false,"internalType":"struct DlnOrderLib.Order","name":"order","type":"tuple"},{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"cancelBeneficiary","type":"bytes"},{"indexed":false,"internalType":"bytes32","name":"submissionId","type":"bytes32"}],"name":"SentOrderCancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"beneficiary","type":"bytes"},{"indexed":false,"internalType":"bytes32","name":"submissionId","type":"bytes32"}],"name":"SentOrderUnlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"chainIdFrom","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"dlnSourceAddress","type":"bytes"},{"indexed":false,"internalType":"enum DlnOrderLib.ChainEngine","name":"chainEngine","type":"uint8"}],"name":"SetDlnSourceAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"BPS_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EVM_ADDRESS_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GOVMONITORING_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_ADDRESS_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_AMOUNT_DIVIDER_FOR_TRANSFER_TO_SOLANA","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SOLANA_ADDRESS_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"chainEngines","outputs":[{"internalType":"enum DlnOrderLib.ChainEngine","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deBridgeGate","outputs":[{"internalType":"contract IDeBridgeGate","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"dlnSourceAddresses","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"externalCallAdapter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"uint256","name":"_fulFillAmount","type":"uint256"},{"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"internalType":"bytes","name":"_permitEnvelope","type":"bytes"},{"internalType":"address","name":"_unlockAuthority","type":"address"},{"internalType":"address","name":"_externalCallRewardBeneficiary","type":"address"}],"name":"fulfillOrder","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"uint256","name":"_fulFillAmount","type":"uint256"},{"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"internalType":"bytes","name":"_permitEnvelope","type":"bytes"},{"internalType":"address","name":"_unlockAuthority","type":"address"}],"name":"fulfillOrder","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"cid","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"}],"name":"getOrderId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IDeBridgeGate","name":"_deBridgeGate","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxOrderCountPerBatchEvmUnlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxOrderCountPerBatchSolanaUnlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"uint256","name":"_newSubtrahend","type":"uint256"}],"name":"patchOrderTake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_orderIds","type":"bytes32[]"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_executionFee","type":"uint256"}],"name":"sendBatchEvmUnlock","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order[]","name":"_orders","type":"tuple[]"},{"internalType":"bytes32","name":"_beneficiary","type":"bytes32"},{"internalType":"uint256","name":"_executionFee","type":"uint256"},{"internalType":"uint64","name":"_initWalletIfNeededInstructionReward","type":"uint64"},{"internalType":"uint64","name":"_claimUnlockInstructionReward","type":"uint64"}],"name":"sendBatchSolanaUnlock","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"address","name":"_cancelBeneficiary","type":"address"},{"internalType":"uint256","name":"_executionFee","type":"uint256"}],"name":"sendEvmOrderCancel","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_executionFee","type":"uint256"}],"name":"sendEvmUnlock","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"bytes32","name":"_cancelBeneficiary","type":"bytes32"},{"internalType":"uint256","name":"_executionFee","type":"uint256"},{"internalType":"uint64","name":"_reward1","type":"uint64"},{"internalType":"uint64","name":"_reward2","type":"uint64"}],"name":"sendSolanaOrderCancel","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"bytes32","name":"_beneficiary","type":"bytes32"},{"internalType":"uint256","name":"_executionFee","type":"uint256"},{"internalType":"uint64","name":"_initWalletIfNeededInstructionReward","type":"uint64"},{"internalType":"uint64","name":"_claimUnlockInstructionReward","type":"uint64"}],"name":"sendSolanaUnlock","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_chainIdFrom","type":"uint256"},{"internalType":"bytes","name":"_dlnSourceAddress","type":"bytes"},{"internalType":"enum DlnOrderLib.ChainEngine","name":"_chainEngine","type":"uint8"}],"name":"setDlnSourceAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_externalCallAdapter","type":"address"}],"name":"setExternalCallAdapter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newEvmCount","type":"uint256"},{"internalType":"uint256","name":"_newSolanaCount","type":"uint256"}],"name":"setMaxOrderCountsPerBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"takeOrders","outputs":[{"internalType":"enum DlnDestination.OrderTakeStatus","name":"status","type":"uint8"},{"internalType":"address","name":"takerAddress","type":"address"},{"internalType":"uint256","name":"giveChainId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"takePatches","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"}] \ No newline at end of file diff --git a/extractor/debridge/ABIs/optimism/dln_source.json b/extractor/debridge/ABIs/optimism/dln_source.json new file mode 100644 index 0000000..bae5c89 --- /dev/null +++ b/extractor/debridge/ABIs/optimism/dln_source.json @@ -0,0 +1 @@ +[{"inputs":[],"name":"AdminBadRole","type":"error"},{"inputs":[],"name":"CallProxyBadRole","type":"error"},{"inputs":[{"internalType":"bytes32","name":"orderId","type":"bytes32"},{"internalType":"uint48","name":"takeChainId","type":"uint48"},{"internalType":"uint256","name":"submissionsChainIdFrom","type":"uint256"}],"name":"CriticalMismatchTakeChainId","type":"error"},{"inputs":[],"name":"EthTransferFailed","type":"error"},{"inputs":[],"name":"GovMonitoringBadRole","type":"error"},{"inputs":[],"name":"IncorrectOrderStatus","type":"error"},{"inputs":[],"name":"MismatchNativeGiveAmount","type":"error"},{"inputs":[],"name":"MismatchedOrderId","type":"error"},{"inputs":[],"name":"MismatchedTransferAmount","type":"error"},{"inputs":[{"internalType":"bytes","name":"nativeSender","type":"bytes"},{"internalType":"uint256","name":"chainIdFrom","type":"uint256"}],"name":"NativeSenderBadRole","type":"error"},{"inputs":[],"name":"NotSupportedDstChain","type":"error"},{"inputs":[],"name":"SignatureInvalidV","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"UnknownEngine","type":"error"},{"inputs":[],"name":"WrongAddressLength","type":"error"},{"inputs":[],"name":"WrongAffiliateFeeLength","type":"error"},{"inputs":[],"name":"WrongArgument","type":"error"},{"inputs":[],"name":"WrongChain","type":"error"},{"inputs":[{"internalType":"uint256","name":"received","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"name":"WrongFixedFee","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"affiliateFee","type":"uint256"},{"indexed":false,"internalType":"address","name":"giveTokenAddress","type":"address"}],"name":"AffiliateFeePaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"paidAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"giveTokenAddress","type":"address"}],"name":"ClaimedOrderCancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"giveAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"giveTokenAddress","type":"address"}],"name":"ClaimedUnlock","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"indexed":false,"internalType":"struct DlnOrderLib.Order","name":"order","type":"tuple"},{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"affiliateFee","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"nativeFixFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"percentFee","type":"uint256"},{"indexed":false,"internalType":"uint32","name":"referralCode","type":"uint32"},{"indexed":false,"internalType":"bytes","name":"metadata","type":"bytes"}],"name":"CreatedOrder","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"takeChainId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"submissionChainIdFrom","type":"uint256"}],"name":"CriticalMismatchChainId","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint88","name":"oldGlobalFixedNativeFee","type":"uint88"},{"indexed":false,"internalType":"uint88","name":"newGlobalFixedNativeFee","type":"uint88"}],"name":"GlobalFixedNativeFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"oldGlobalTransferFeeBps","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"newGlobalTransferFeeBps","type":"uint16"}],"name":"GlobalTransferFeeBpsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"orderGiveFinalAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"finalPercentFee","type":"uint256"}],"name":"IncreasedGiveAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"chainIdTo","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"dlnDestinationAddress","type":"bytes"},{"indexed":false,"internalType":"enum DlnOrderLib.ChainEngine","name":"chainEngine","type":"uint8"}],"name":"SetDlnDestinationAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"enum DlnSource.OrderGiveStatus","name":"status","type":"uint8"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"}],"name":"UnexpectedOrderStatusForCancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"enum DlnSource.OrderGiveStatus","name":"status","type":"uint8"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"}],"name":"UnexpectedOrderStatusForClaim","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"}],"name":"WithdrawnFee","type":"event"},{"inputs":[],"name":"BPS_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EVM_ADDRESS_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GOVMONITORING_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_ADDRESS_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SOLANA_ADDRESS_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"chainEngines","outputs":[{"internalType":"enum DlnOrderLib.ChainEngine","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_orderIds","type":"bytes32[]"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"claimBatchCancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_orderIds","type":"bytes32[]"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"claimBatchUnlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"claimCancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"claimUnlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"collectedFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"giveTokenAddress","type":"address"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"address","name":"givePatchAuthoritySrc","type":"address"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"}],"internalType":"struct DlnOrderLib.OrderCreation","name":"_orderCreation","type":"tuple"},{"internalType":"bytes","name":"_affiliateFee","type":"bytes"},{"internalType":"uint32","name":"_referralCode","type":"uint32"},{"internalType":"bytes","name":"_permitEnvelope","type":"bytes"}],"name":"createOrder","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"giveTokenAddress","type":"address"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"address","name":"givePatchAuthoritySrc","type":"address"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"}],"internalType":"struct DlnOrderLib.OrderCreation","name":"_orderCreation","type":"tuple"},{"internalType":"uint64","name":"_salt","type":"uint64"},{"internalType":"bytes","name":"_affiliateFee","type":"bytes"},{"internalType":"uint32","name":"_referralCode","type":"uint32"},{"internalType":"bytes","name":"_permitEnvelope","type":"bytes"},{"internalType":"bytes","name":"_metadata","type":"bytes"}],"name":"createSaltedOrder","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"deBridgeGate","outputs":[{"internalType":"contract IDeBridgeGate","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"dlnDestinationAddresses","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"cid","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"}],"name":"getOrderId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"giveOrders","outputs":[{"internalType":"enum DlnSource.OrderGiveStatus","name":"status","type":"uint8"},{"internalType":"uint160","name":"giveTokenAddress","type":"uint160"},{"internalType":"uint88","name":"nativeFixFee","type":"uint88"},{"internalType":"uint48","name":"takeChainId","type":"uint48"},{"internalType":"uint208","name":"percentFee","type":"uint208"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"address","name":"affiliateBeneficiary","type":"address"},{"internalType":"uint256","name":"affiliateAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"givePatches","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"globalFixedNativeFee","outputs":[{"internalType":"uint88","name":"","type":"uint88"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"globalTransferFeeBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IDeBridgeGate","name":"_deBridgeGate","type":"address"},{"internalType":"uint88","name":"_globalFixedNativeFee","type":"uint88"},{"internalType":"uint16","name":"_globalTransferFeeBps","type":"uint16"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"masterNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"uint256","name":"_addGiveAmount","type":"uint256"},{"internalType":"bytes","name":"_permitEnvelope","type":"bytes"}],"name":"patchOrderGive","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_chainIdTo","type":"uint256"},{"internalType":"bytes","name":"_dlnDestinationAddress","type":"bytes"},{"internalType":"enum DlnOrderLib.ChainEngine","name":"_chainEngine","type":"uint8"}],"name":"setDlnDestinationAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"unclaimedAffiliateETHFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"unexpectedOrderStatusForCancel","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"unexpectedOrderStatusForClaim","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint88","name":"_globalFixedNativeFee","type":"uint88"},{"internalType":"uint16","name":"_globalTransferFeeBps","type":"uint16"}],"name":"updateGlobalFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"giveTokenAddress","type":"address"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"address","name":"givePatchAuthoritySrc","type":"address"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"}],"internalType":"struct DlnOrderLib.OrderCreation","name":"_orderCreation","type":"tuple"},{"internalType":"address","name":"_signer","type":"address"},{"internalType":"uint64","name":"_salt","type":"uint64"}],"name":"validateCreationOrder","outputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"order","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"giveTokenAddress","type":"address"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"address","name":"givePatchAuthoritySrc","type":"address"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"}],"internalType":"struct DlnOrderLib.OrderCreation","name":"_orderCreation","type":"tuple"},{"internalType":"address","name":"_signer","type":"address"}],"name":"validateCreationOrder","outputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"order","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"_tokens","type":"address[]"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"withdrawFee","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/extractor/debridge/ABIs/polygon/dln_destination.json b/extractor/debridge/ABIs/polygon/dln_destination.json new file mode 100644 index 0000000..b439885 --- /dev/null +++ b/extractor/debridge/ABIs/polygon/dln_destination.json @@ -0,0 +1 @@ +[{"inputs":[],"name":"AdminBadRole","type":"error"},{"inputs":[{"internalType":"bytes","name":"expectedBeneficiary","type":"bytes"}],"name":"AllowOnlyForBeneficiary","type":"error"},{"inputs":[],"name":"CallProxyBadRole","type":"error"},{"inputs":[],"name":"EthTransferFailed","type":"error"},{"inputs":[],"name":"GovMonitoringBadRole","type":"error"},{"inputs":[],"name":"IncorrectOrderStatus","type":"error"},{"inputs":[],"name":"MismatchGiveChainId","type":"error"},{"inputs":[],"name":"MismatchNativeTakerAmount","type":"error"},{"inputs":[],"name":"MismatchTakerAmount","type":"error"},{"inputs":[],"name":"MismatchedOrderId","type":"error"},{"inputs":[],"name":"MismatchedTransferAmount","type":"error"},{"inputs":[{"internalType":"bytes","name":"nativeSender","type":"bytes"},{"internalType":"uint256","name":"chainIdFrom","type":"uint256"}],"name":"NativeSenderBadRole","type":"error"},{"inputs":[],"name":"NotSupportedDstChain","type":"error"},{"inputs":[],"name":"SignatureInvalidV","type":"error"},{"inputs":[],"name":"TransferAmountNotCoverFees","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"UnexpectedBatchSize","type":"error"},{"inputs":[],"name":"UnknownEngine","type":"error"},{"inputs":[],"name":"WrongAddressLength","type":"error"},{"inputs":[],"name":"WrongArgument","type":"error"},{"inputs":[],"name":"WrongChain","type":"error"},{"inputs":[],"name":"WrongToken","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"orderTakeFinalAmount","type":"uint256"}],"name":"DecreasedTakeAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldAdapter","type":"address"},{"indexed":false,"internalType":"address","name":"newAdapter","type":"address"}],"name":"ExternalCallAdapterUpdated","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"indexed":false,"internalType":"struct DlnOrderLib.Order","name":"order","type":"tuple"},{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"address","name":"unlockAuthority","type":"address"}],"name":"FulfilledOrder","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"MaxOrderCountPerBatchEvmUnlockChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldValue","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"MaxOrderCountPerBatchSolanaUnlockChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"indexed":false,"internalType":"struct DlnOrderLib.Order","name":"order","type":"tuple"},{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"cancelBeneficiary","type":"bytes"},{"indexed":false,"internalType":"bytes32","name":"submissionId","type":"bytes32"}],"name":"SentOrderCancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"beneficiary","type":"bytes"},{"indexed":false,"internalType":"bytes32","name":"submissionId","type":"bytes32"}],"name":"SentOrderUnlock","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"chainIdFrom","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"dlnSourceAddress","type":"bytes"},{"indexed":false,"internalType":"enum DlnOrderLib.ChainEngine","name":"chainEngine","type":"uint8"}],"name":"SetDlnSourceAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[],"name":"BPS_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EVM_ADDRESS_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GOVMONITORING_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_ADDRESS_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVE_AMOUNT_DIVIDER_FOR_TRANSFER_TO_SOLANA","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SOLANA_ADDRESS_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"chainEngines","outputs":[{"internalType":"enum DlnOrderLib.ChainEngine","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deBridgeGate","outputs":[{"internalType":"contract IDeBridgeGate","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"dlnSourceAddresses","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"externalCallAdapter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"uint256","name":"_fulFillAmount","type":"uint256"},{"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"internalType":"bytes","name":"_permitEnvelope","type":"bytes"},{"internalType":"address","name":"_unlockAuthority","type":"address"},{"internalType":"address","name":"_externalCallRewardBeneficiary","type":"address"}],"name":"fulfillOrder","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"uint256","name":"_fulFillAmount","type":"uint256"},{"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"internalType":"bytes","name":"_permitEnvelope","type":"bytes"},{"internalType":"address","name":"_unlockAuthority","type":"address"}],"name":"fulfillOrder","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"cid","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"}],"name":"getOrderId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IDeBridgeGate","name":"_deBridgeGate","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxOrderCountPerBatchEvmUnlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxOrderCountPerBatchSolanaUnlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"uint256","name":"_newSubtrahend","type":"uint256"}],"name":"patchOrderTake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_orderIds","type":"bytes32[]"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_executionFee","type":"uint256"}],"name":"sendBatchEvmUnlock","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order[]","name":"_orders","type":"tuple[]"},{"internalType":"bytes32","name":"_beneficiary","type":"bytes32"},{"internalType":"uint256","name":"_executionFee","type":"uint256"},{"internalType":"uint64","name":"_initWalletIfNeededInstructionReward","type":"uint64"},{"internalType":"uint64","name":"_claimUnlockInstructionReward","type":"uint64"}],"name":"sendBatchSolanaUnlock","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"address","name":"_cancelBeneficiary","type":"address"},{"internalType":"uint256","name":"_executionFee","type":"uint256"}],"name":"sendEvmOrderCancel","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"internalType":"address","name":"_beneficiary","type":"address"},{"internalType":"uint256","name":"_executionFee","type":"uint256"}],"name":"sendEvmUnlock","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"bytes32","name":"_cancelBeneficiary","type":"bytes32"},{"internalType":"uint256","name":"_executionFee","type":"uint256"},{"internalType":"uint64","name":"_reward1","type":"uint64"},{"internalType":"uint64","name":"_reward2","type":"uint64"}],"name":"sendSolanaOrderCancel","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"bytes32","name":"_beneficiary","type":"bytes32"},{"internalType":"uint256","name":"_executionFee","type":"uint256"},{"internalType":"uint64","name":"_initWalletIfNeededInstructionReward","type":"uint64"},{"internalType":"uint64","name":"_claimUnlockInstructionReward","type":"uint64"}],"name":"sendSolanaUnlock","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_chainIdFrom","type":"uint256"},{"internalType":"bytes","name":"_dlnSourceAddress","type":"bytes"},{"internalType":"enum DlnOrderLib.ChainEngine","name":"_chainEngine","type":"uint8"}],"name":"setDlnSourceAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_externalCallAdapter","type":"address"}],"name":"setExternalCallAdapter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newEvmCount","type":"uint256"},{"internalType":"uint256","name":"_newSolanaCount","type":"uint256"}],"name":"setMaxOrderCountsPerBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"takeOrders","outputs":[{"internalType":"enum DlnDestination.OrderTakeStatus","name":"status","type":"uint8"},{"internalType":"address","name":"takerAddress","type":"address"},{"internalType":"uint256","name":"giveChainId","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"takePatches","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"}] \ No newline at end of file diff --git a/extractor/debridge/ABIs/polygon/dln_source.json b/extractor/debridge/ABIs/polygon/dln_source.json new file mode 100644 index 0000000..bae5c89 --- /dev/null +++ b/extractor/debridge/ABIs/polygon/dln_source.json @@ -0,0 +1 @@ +[{"inputs":[],"name":"AdminBadRole","type":"error"},{"inputs":[],"name":"CallProxyBadRole","type":"error"},{"inputs":[{"internalType":"bytes32","name":"orderId","type":"bytes32"},{"internalType":"uint48","name":"takeChainId","type":"uint48"},{"internalType":"uint256","name":"submissionsChainIdFrom","type":"uint256"}],"name":"CriticalMismatchTakeChainId","type":"error"},{"inputs":[],"name":"EthTransferFailed","type":"error"},{"inputs":[],"name":"GovMonitoringBadRole","type":"error"},{"inputs":[],"name":"IncorrectOrderStatus","type":"error"},{"inputs":[],"name":"MismatchNativeGiveAmount","type":"error"},{"inputs":[],"name":"MismatchedOrderId","type":"error"},{"inputs":[],"name":"MismatchedTransferAmount","type":"error"},{"inputs":[{"internalType":"bytes","name":"nativeSender","type":"bytes"},{"internalType":"uint256","name":"chainIdFrom","type":"uint256"}],"name":"NativeSenderBadRole","type":"error"},{"inputs":[],"name":"NotSupportedDstChain","type":"error"},{"inputs":[],"name":"SignatureInvalidV","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"UnknownEngine","type":"error"},{"inputs":[],"name":"WrongAddressLength","type":"error"},{"inputs":[],"name":"WrongAffiliateFeeLength","type":"error"},{"inputs":[],"name":"WrongArgument","type":"error"},{"inputs":[],"name":"WrongChain","type":"error"},{"inputs":[{"internalType":"uint256","name":"received","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"name":"WrongFixedFee","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"affiliateFee","type":"uint256"},{"indexed":false,"internalType":"address","name":"giveTokenAddress","type":"address"}],"name":"AffiliateFeePaid","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"paidAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"giveTokenAddress","type":"address"}],"name":"ClaimedOrderCancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"giveAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"giveTokenAddress","type":"address"}],"name":"ClaimedUnlock","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"indexed":false,"internalType":"struct DlnOrderLib.Order","name":"order","type":"tuple"},{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"affiliateFee","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"nativeFixFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"percentFee","type":"uint256"},{"indexed":false,"internalType":"uint32","name":"referralCode","type":"uint32"},{"indexed":false,"internalType":"bytes","name":"metadata","type":"bytes"}],"name":"CreatedOrder","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"},{"indexed":false,"internalType":"uint256","name":"takeChainId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"submissionChainIdFrom","type":"uint256"}],"name":"CriticalMismatchChainId","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint88","name":"oldGlobalFixedNativeFee","type":"uint88"},{"indexed":false,"internalType":"uint88","name":"newGlobalFixedNativeFee","type":"uint88"}],"name":"GlobalFixedNativeFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"oldGlobalTransferFeeBps","type":"uint16"},{"indexed":false,"internalType":"uint16","name":"newGlobalTransferFeeBps","type":"uint16"}],"name":"GlobalTransferFeeBpsUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"orderGiveFinalAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"finalPercentFee","type":"uint256"}],"name":"IncreasedGiveAmount","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"chainIdTo","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"dlnDestinationAddress","type":"bytes"},{"indexed":false,"internalType":"enum DlnOrderLib.ChainEngine","name":"chainEngine","type":"uint8"}],"name":"SetDlnDestinationAddress","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"enum DlnSource.OrderGiveStatus","name":"status","type":"uint8"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"}],"name":"UnexpectedOrderStatusForCancel","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"orderId","type":"bytes32"},{"indexed":false,"internalType":"enum DlnSource.OrderGiveStatus","name":"status","type":"uint8"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"}],"name":"UnexpectedOrderStatusForClaim","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"tokenAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"beneficiary","type":"address"}],"name":"WithdrawnFee","type":"event"},{"inputs":[],"name":"BPS_DENOMINATOR","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EVM_ADDRESS_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GOVMONITORING_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_ADDRESS_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SOLANA_ADDRESS_LENGTH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"chainEngines","outputs":[{"internalType":"enum DlnOrderLib.ChainEngine","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_orderIds","type":"bytes32[]"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"claimBatchCancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"_orderIds","type":"bytes32[]"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"claimBatchUnlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"claimCancel","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_orderId","type":"bytes32"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"claimUnlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"collectedFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"giveTokenAddress","type":"address"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"address","name":"givePatchAuthoritySrc","type":"address"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"}],"internalType":"struct DlnOrderLib.OrderCreation","name":"_orderCreation","type":"tuple"},{"internalType":"bytes","name":"_affiliateFee","type":"bytes"},{"internalType":"uint32","name":"_referralCode","type":"uint32"},{"internalType":"bytes","name":"_permitEnvelope","type":"bytes"}],"name":"createOrder","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"giveTokenAddress","type":"address"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"address","name":"givePatchAuthoritySrc","type":"address"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"}],"internalType":"struct DlnOrderLib.OrderCreation","name":"_orderCreation","type":"tuple"},{"internalType":"uint64","name":"_salt","type":"uint64"},{"internalType":"bytes","name":"_affiliateFee","type":"bytes"},{"internalType":"uint32","name":"_referralCode","type":"uint32"},{"internalType":"bytes","name":"_permitEnvelope","type":"bytes"},{"internalType":"bytes","name":"_metadata","type":"bytes"}],"name":"createSaltedOrder","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"deBridgeGate","outputs":[{"internalType":"contract IDeBridgeGate","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"dlnDestinationAddresses","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"cid","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"}],"name":"getOrderId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"giveOrders","outputs":[{"internalType":"enum DlnSource.OrderGiveStatus","name":"status","type":"uint8"},{"internalType":"uint160","name":"giveTokenAddress","type":"uint160"},{"internalType":"uint88","name":"nativeFixFee","type":"uint88"},{"internalType":"uint48","name":"takeChainId","type":"uint48"},{"internalType":"uint208","name":"percentFee","type":"uint208"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"address","name":"affiliateBeneficiary","type":"address"},{"internalType":"uint256","name":"affiliateAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"givePatches","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"globalFixedNativeFee","outputs":[{"internalType":"uint88","name":"","type":"uint88"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"globalTransferFeeBps","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract IDeBridgeGate","name":"_deBridgeGate","type":"address"},{"internalType":"uint88","name":"_globalFixedNativeFee","type":"uint88"},{"internalType":"uint16","name":"_globalTransferFeeBps","type":"uint16"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"masterNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"_order","type":"tuple"},{"internalType":"uint256","name":"_addGiveAmount","type":"uint256"},{"internalType":"bytes","name":"_permitEnvelope","type":"bytes"}],"name":"patchOrderGive","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_chainIdTo","type":"uint256"},{"internalType":"bytes","name":"_dlnDestinationAddress","type":"bytes"},{"internalType":"enum DlnOrderLib.ChainEngine","name":"_chainEngine","type":"uint8"}],"name":"setDlnDestinationAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"unclaimedAffiliateETHFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"unexpectedOrderStatusForCancel","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"unexpectedOrderStatusForClaim","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint88","name":"_globalFixedNativeFee","type":"uint88"},{"internalType":"uint16","name":"_globalTransferFeeBps","type":"uint16"}],"name":"updateGlobalFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"giveTokenAddress","type":"address"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"address","name":"givePatchAuthoritySrc","type":"address"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"}],"internalType":"struct DlnOrderLib.OrderCreation","name":"_orderCreation","type":"tuple"},{"internalType":"address","name":"_signer","type":"address"},{"internalType":"uint64","name":"_salt","type":"uint64"}],"name":"validateCreationOrder","outputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"order","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"giveTokenAddress","type":"address"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"address","name":"givePatchAuthoritySrc","type":"address"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"}],"internalType":"struct DlnOrderLib.OrderCreation","name":"_orderCreation","type":"tuple"},{"internalType":"address","name":"_signer","type":"address"}],"name":"validateCreationOrder","outputs":[{"components":[{"internalType":"uint64","name":"makerOrderNonce","type":"uint64"},{"internalType":"bytes","name":"makerSrc","type":"bytes"},{"internalType":"uint256","name":"giveChainId","type":"uint256"},{"internalType":"bytes","name":"giveTokenAddress","type":"bytes"},{"internalType":"uint256","name":"giveAmount","type":"uint256"},{"internalType":"uint256","name":"takeChainId","type":"uint256"},{"internalType":"bytes","name":"takeTokenAddress","type":"bytes"},{"internalType":"uint256","name":"takeAmount","type":"uint256"},{"internalType":"bytes","name":"receiverDst","type":"bytes"},{"internalType":"bytes","name":"givePatchAuthoritySrc","type":"bytes"},{"internalType":"bytes","name":"orderAuthorityAddressDst","type":"bytes"},{"internalType":"bytes","name":"allowedTakerDst","type":"bytes"},{"internalType":"bytes","name":"allowedCancelBeneficiarySrc","type":"bytes"},{"internalType":"bytes","name":"externalCall","type":"bytes"}],"internalType":"struct DlnOrderLib.Order","name":"order","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"version","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"_tokens","type":"address[]"},{"internalType":"address","name":"_beneficiary","type":"address"}],"name":"withdrawFee","outputs":[],"stateMutability":"nonpayable","type":"function"}] \ No newline at end of file diff --git a/extractor/debridge/constants.py b/extractor/debridge/constants.py index 3730b61..2e088e4 100644 --- a/extractor/debridge/constants.py +++ b/extractor/debridge/constants.py @@ -18,7 +18,29 @@ "0xe7351fd770a37282b91d153ee690b63579d6dd7f", ], "topics": [ - "0x37a01d7dc38e924008cf4f2fa3d2ec1f45e7ae3c8292eb3e7d9314b7ad10e2fc", # SentOrderUnlock + # "0x37a01d7dc38e924008cf4f2fa3d2ec1f45e7ae3c8292eb3e7d9314b7ad10e2fc", # SentOrderUnlock + "0xd281ee92bab1446041582480d2c0a9dc91f855386bb27ea295faac1e992f7fe4", # FulfilledOrder + ], + }, + ], + "optimism": [ + { + "abi": "dln_source", + "contracts": [ + "0xef4fb24ad0916217251f553c0596f8edc630eb66", + ], + "topics": [ + "0xfc8703fd57380f9dd234a89dce51333782d49c5902f307b02f03e014d18fe471", # CreatedOrder + "0x33fff3d864e92b6e1ef9e830196fc019c946104ea621b833aaebd3c3e84b2f6f", # ClaimedUnlock + ], + }, + { + "abi": "dln_destination", + "contracts": [ + "0xe7351fd770a37282b91d153ee690b63579d6dd7f", + ], + "topics": [ + # "0x37a01d7dc38e924008cf4f2fa3d2ec1f45e7ae3c8292eb3e7d9314b7ad10e2fc", # SentOrderUnlock "0xd281ee92bab1446041582480d2c0a9dc91f855386bb27ea295faac1e992f7fe4", # FulfilledOrder ], }, @@ -40,12 +62,12 @@ "0xe7351fd770a37282b91d153ee690b63579d6dd7f", ], "topics": [ - "0x37a01d7dc38e924008cf4f2fa3d2ec1f45e7ae3c8292eb3e7d9314b7ad10e2fc", # SentOrderUnlock + # "0x37a01d7dc38e924008cf4f2fa3d2ec1f45e7ae3c8292eb3e7d9314b7ad10e2fc", # SentOrderUnlock "0xd281ee92bab1446041582480d2c0a9dc91f855386bb27ea295faac1e992f7fe4", # FulfilledOrder ], }, ], - "bnb": [ + "avalanche": [ { "abi": "dln_source", "contracts": [ @@ -62,7 +84,7 @@ "0xe7351fd770a37282b91d153ee690b63579d6dd7f", ], "topics": [ - "0x37a01d7dc38e924008cf4f2fa3d2ec1f45e7ae3c8292eb3e7d9314b7ad10e2fc", # SentOrderUnlock + # "0x37a01d7dc38e924008cf4f2fa3d2ec1f45e7ae3c8292eb3e7d9314b7ad10e2fc", # SentOrderUnlock "0xd281ee92bab1446041582480d2c0a9dc91f855386bb27ea295faac1e992f7fe4", # FulfilledOrder ], }, @@ -84,10 +106,111 @@ "0xe7351fd770a37282b91d153ee690b63579d6dd7f", ], "topics": [ - "0x37a01d7dc38e924008cf4f2fa3d2ec1f45e7ae3c8292eb3e7d9314b7ad10e2fc", # SentOrderUnlock + # "0x37a01d7dc38e924008cf4f2fa3d2ec1f45e7ae3c8292eb3e7d9314b7ad10e2fc", # SentOrderUnlock + "0xd281ee92bab1446041582480d2c0a9dc91f855386bb27ea295faac1e992f7fe4", # FulfilledOrder + ], + }, + ], + "bnb": [ + { + "abi": "dln_source", + "contracts": [ + "0xef4fb24ad0916217251f553c0596f8edc630eb66", + ], + "topics": [ + "0xfc8703fd57380f9dd234a89dce51333782d49c5902f307b02f03e014d18fe471", # CreatedOrder + "0x33fff3d864e92b6e1ef9e830196fc019c946104ea621b833aaebd3c3e84b2f6f", # ClaimedUnlock + ], + }, + { + "abi": "dln_destination", + "contracts": [ + "0xe7351fd770a37282b91d153ee690b63579d6dd7f", + ], + "topics": [ + # "0x37a01d7dc38e924008cf4f2fa3d2ec1f45e7ae3c8292eb3e7d9314b7ad10e2fc", # SentOrderUnlock + "0xd281ee92bab1446041582480d2c0a9dc91f855386bb27ea295faac1e992f7fe4", # FulfilledOrder + ], + }, + ], + "polygon": [ + { + "abi": "dln_source", + "contracts": [ + "0xef4fb24ad0916217251f553c0596f8edc630eb66", + ], + "topics": [ + "0xfc8703fd57380f9dd234a89dce51333782d49c5902f307b02f03e014d18fe471", # CreatedOrder + "0x33fff3d864e92b6e1ef9e830196fc019c946104ea621b833aaebd3c3e84b2f6f", # ClaimedUnlock + ], + }, + { + "abi": "dln_destination", + "contracts": [ + "0xe7351fd770a37282b91d153ee690b63579d6dd7f", + ], + "topics": [ + # "0x37a01d7dc38e924008cf4f2fa3d2ec1f45e7ae3c8292eb3e7d9314b7ad10e2fc", # SentOrderUnlock + "0xd281ee92bab1446041582480d2c0a9dc91f855386bb27ea295faac1e992f7fe4", # FulfilledOrder + ], + }, + ], + "linea": [ + { + "abi": "dln_source", + "contracts": [ + "0xef4fb24ad0916217251f553c0596f8edc630eb66", + ], + "topics": [ + "0xfc8703fd57380f9dd234a89dce51333782d49c5902f307b02f03e014d18fe471", # CreatedOrder + "0x33fff3d864e92b6e1ef9e830196fc019c946104ea621b833aaebd3c3e84b2f6f", # ClaimedUnlock + ], + }, + { + "abi": "dln_destination", + "contracts": [ + "0xe7351fd770a37282b91d153ee690b63579d6dd7f", + ], + "topics": [ + # "0x37a01d7dc38e924008cf4f2fa3d2ec1f45e7ae3c8292eb3e7d9314b7ad10e2fc", # SentOrderUnlock "0xd281ee92bab1446041582480d2c0a9dc91f855386bb27ea295faac1e992f7fe4", # FulfilledOrder ], }, ], } } + +BLOCKCHAIN_IDS = { + "8453": { + "name": "base", + }, + "10": { + "name": "optimism", + }, + "42161": { + "name": "arbitrum", + }, + "137": { + "name": "polygon", + }, + "1": { + "name": "ethereum", + }, + "59144": { + "name": "linea", + }, + "56": { + "name": "bnb", + }, + "43114": { + "name": "avalanche", + }, + "7565164": { # genesis hash for Solana + "name": "solana", + }, +} + +SOLANA_PROGRAM_ADDRESSES = [ + "src5qyZHqTqecJV4aY6Cb6zDZLMDzrDKKezs22MPHr4", + "dst5MGcFPoBeREFAA5E3tU5ij8m5uVYwkzkSAbsLbNo", +] diff --git a/extractor/debridge/handler.py b/extractor/debridge/handler.py index 6fc9f9b..66f07d1 100644 --- a/extractor/debridge/handler.py +++ b/extractor/debridge/handler.py @@ -2,17 +2,31 @@ from config.constants import Bridge from extractor.base_handler import BaseHandler -from extractor.debridge.constants import BRIDGE_CONFIG +from extractor.debridge.constants import BLOCKCHAIN_IDS, BRIDGE_CONFIG, SOLANA_PROGRAM_ADDRESSES +from extractor.mayan.handler import MayanHandler from repository.database import DBSession +from repository.debridge.models import ( + DeBridgeBlockchainTransaction, + DeBridgeCreatedOrder, + DeBridgeFulfilledOrder, +) from repository.debridge.repository import ( DeBridgeBlockchainTransactionRepository, DeBridgeClaimedUnlockRepository, DeBridgeCreatedOrderRepository, DeBridgeFulfilledOrderRepository, - DeBridgeSentOrderUnlockRepository, ) from rpcs.evm_rpc_client import EvmRPCClient -from utils.utils import CustomException, log_error, unpad_address +from utils.utils import ( + CliColor, + CustomException, + build_log_message_generator, + convert_32_byte_array_to_evm_address, + convert_32_byte_array_to_solana_address, + log_error, + log_to_cli, + unpad_address, +) class DebridgeHandler(BaseHandler): @@ -22,6 +36,12 @@ def __init__(self, rpc_client: EvmRPCClient, blockchains: list) -> None: super().__init__(rpc_client, blockchains) self.bridge = Bridge.DEBRIDGE + def get_solana_bridge_program_ids(self) -> str: + """ + Returns the Solana bridge program ID for Mayan. + """ + return SOLANA_PROGRAM_ADDRESSES + def get_bridge_contracts_and_topics(self, bridge: str, blockchain: List[str]) -> None: return super().get_bridge_contracts_and_topics( config=BRIDGE_CONFIG, @@ -33,7 +53,6 @@ def bind_db_to_repos(self): self.blockchain_transaction_repo = DeBridgeBlockchainTransactionRepository(DBSession) self.created_order_repo = DeBridgeCreatedOrderRepository(DBSession) self.fulfilled_order_repo = DeBridgeFulfilledOrderRepository(DBSession) - self.sent_order_unlock_repo = DeBridgeSentOrderUnlockRepository(DBSession) self.claimed_unlock_repo = DeBridgeClaimedUnlockRepository(DBSession) def handle_transactions(self, transactions: List[Dict[str, Any]]) -> None: @@ -89,11 +108,6 @@ def handle_events( == "0xd281ee92bab1446041582480d2c0a9dc91f855386bb27ea295faac1e992f7fe4" ): # FulfilledOrder event = self.handle_fulfilled_order(blockchain, event) - elif ( - event["topic"] - == "0x37a01d7dc38e924008cf4f2fa3d2ec1f45e7ae3c8292eb3e7d9314b7ad10e2fc" - ): # SentOrderUnlock - event = self.handle_sent_order_unlock(blockchain, event) elif ( event["topic"] == "0x33fff3d864e92b6e1ef9e830196fc019c946104ea621b833aaebd3c3e84b2f6f" @@ -126,7 +140,7 @@ def handle_created_order(self, blockchain, event): return None try: - if self.created_order_repo.event_exists(event["orderId"]): + if self.created_order_repo.event_exists(obj[0]): return None self.created_order_repo.create( @@ -153,6 +167,8 @@ def handle_created_order(self, blockchain, event): "percent_fee": event["percentFee"], "referral_code": event["referralCode"], "_metadata": event.get("metadata"), + "original_token": None, + "original_amount": None, } ) return event @@ -201,6 +217,7 @@ def handle_fulfilled_order(self, blockchain, event): "order_id": event["orderId"], "sender": unpad_address(event["sender"]), "unlock_authority": unpad_address(event["unlockAuthority"]), + "taker": None, } ) return event @@ -211,20 +228,22 @@ def handle_fulfilled_order(self, blockchain, event): f"{blockchain} -- Tx Hash: {event['transaction_hash']}. Error writing to DB: {e}", ) from e - def handle_sent_order_unlock(self, blockchain, event): - func_name = "handle_sent_order_unlock" + def handle_claimed_unlock(self, blockchain, event): + func_name = "handle_claimed_unlock" try: - if self.sent_order_unlock_repo.event_exists(event["orderId"]): + if self.claimed_unlock_repo.event_exists(event["orderId"]): return None - self.sent_order_unlock_repo.create( + self.claimed_unlock_repo.create( { "blockchain": blockchain, "transaction_hash": event["transaction_hash"], "order_id": event["orderId"], "beneficiary": unpad_address(event["beneficiary"]), - "submission_id": event["submissionId"], + "give_amount": event["giveAmount"], + "give_token_address": unpad_address(event["giveTokenAddress"]), + "fee": None, } ) return event @@ -235,31 +254,347 @@ def handle_sent_order_unlock(self, blockchain, event): f"{blockchain} -- Tx Hash: {event['transaction_hash']}. Error writing to DB: {e}", ) from e - def handle_claimed_unlock(self, blockchain, event): - func_name = "handle_claimed_unlock" + def handle_solana_events( + self, + blockchain: str, + start_signature: str, + end_signature: str, + decoded_transactions: Dict, + ): + included_txs = [] + + for decoded_transaction in decoded_transactions: + if ( + not decoded_transaction + or decoded_transaction["transaction"]["meta"]["err"] is not None + ): + # Skip transactions with errors + continue + + signature = decoded_transaction["transaction"]["transaction"]["signatures"][0] + transaction_instructions = decoded_transaction["instructions"] + + debridge_instructions = [ + (idx, instr) + for idx, instr in enumerate(transaction_instructions) + if instr["programId"] in self.get_solana_bridge_program_ids() + ] + + try: + for idx, instruction in debridge_instructions: + included = False + + if instruction["name"] == "create_order_with_nonce": + transfer_instruction = None + swap_instructions = [ + instr + for instr in transaction_instructions + if instr["name"] == "SwapEvent" + ] + + swap_instruction = MayanHandler.resolve_swaps(signature, swap_instructions) + + fee_transfer_instruction = None + i = 1 + + while ( + fee_transfer_instruction is None + or fee_transfer_instruction["name"] != "transfer" + ): + fee_transfer_instruction = transaction_instructions[idx + i] + i += 1 + + transfer_instruction = None + + i = 6 + while ( + transfer_instruction is None + or transfer_instruction["name"] != "transfer" + ): + transfer_instruction = transaction_instructions[idx + i] + i += 1 + + included = self.handle_create_order_with_nonce( + signature, + fee_transfer_instruction, + transfer_instruction, + instruction, + swap_instruction, + ) + + elif instruction["name"] == "fulfill_order": + included = self.handle_fulfill_order(signature, instruction) + + if instruction["name"] == "claim_unlock": + fee_transfer_instruction = transaction_instructions[idx + 1] + refund_transfer_instruction = transaction_instructions[idx + 2] + + included = self.handle_claim_unlock( + signature, + instruction, + fee_transfer_instruction, + refund_transfer_instruction, + ) + + if included: + included_txs.append(decoded_transaction) + + except CustomException as e: + request_desc = ( + f"Error processing request: {blockchain}, {start_signature}, " + f"{end_signature}.\n{e}" + ) + log_error(self.bridge, request_desc) + + return included_txs + + def handle_create_order_with_nonce( + self, + signature: str, + fee_transfer_instruction: Dict, + transfer_instruction: Dict, + instruction: Dict, + swap_event: Dict, + ) -> bool: + func_name = "handle_create_order_with_nonce" + + account_data = self.extract_accounts_from_instruction(instruction) + + order_args = instruction["args"]["order_args"] try: - if self.claimed_unlock_repo.event_exists(event["orderId"]): - return None + if self.created_order_repo.event_exists(int(instruction["args"]["nonce"], 16)): + return False + + dst_chain_id = int.from_bytes(order_args["take"]["chain_id"], byteorder="big") + dst_blockchain = self.convert_id_to_blockchain_name(dst_chain_id) + + if dst_blockchain is None: + return False + + if swap_event: + original_src_token = swap_event["args"]["input_mint"] + original_src_amount = int(swap_event["args"]["input_amount"], 16) + + middle_src_token = swap_event["args"]["output_mint"] + middle_src_amount = int(swap_event["args"]["output_amount"], 16) + else: + # we need to extract the amount being sent to the order + # by fetching the transfer instruction before the initOrder instruction + if ( + transfer_instruction["name"] != "transfer" + and transfer_instruction["name"] != "transferChecked" + ): + raise CustomException( + self.CLASS_NAME, + func_name, + ( + "Expected transfer instruction. " + f"Got {transfer_instruction['name']} in tx {signature}" + ), + ) + + amount_in = int(transfer_instruction["args"]["amount"], 16) + + original_src_token = account_data["token_mint"] + original_src_amount = amount_in + + middle_src_amount = None + middle_src_token = None + + fee_amount = int(fee_transfer_instruction["args"]["lamports"], 16) + + self.created_order_repo.create( + { + "blockchain": "solana", + "transaction_hash": signature, + "maker_order_nonce": int(instruction["args"]["nonce"], 16), + "maker_src": account_data["maker"], + "src_blockchain": "solana", + "give_token_address": middle_src_token + if middle_src_token + else original_src_token, + "give_amount": middle_src_amount if middle_src_amount else original_src_amount, + "dst_blockchain": dst_blockchain, + "take_token_address": convert_32_byte_array_to_evm_address( + order_args["take"]["token_address"]["data"] + ), + "take_amount": int.from_bytes(order_args["take"]["amount"], byteorder="big"), + "receiver_dst": convert_32_byte_array_to_evm_address( + order_args["receiver_dst"]["data"] + ), + "give_patch_authority_src": order_args["give_patch_authority_src"], + "order_authority_address_dst": convert_32_byte_array_to_evm_address( + order_args["order_authority_address_dst"]["data"] + ), + "allowed_taker_dst": convert_32_byte_array_to_evm_address( + order_args["allowed_taker_dst"]["data"] + ) + if order_args["allowed_taker_dst"] + else None, + "allowed_cancel_beneficiary_src": order_args["allowed_cancel_beneficiary_src"], + "external_call": order_args["external_call"]["data"] + if order_args["external_call"] + else None, + "order_id": None, + "affiliate_fee": None, + "native_fix_fee": fee_amount, + "percent_fee": None, + "referral_code": instruction["args"]["referral_code"], + "_metadata": bytes(instruction["args"]["metadata"]["data"]).hex(), + "original_token": original_src_token, + "original_amount": original_src_amount, + } + ) + + return True + + except Exception as e: + raise CustomException( + self.CLASS_NAME, + func_name, + f"Solana -- Tx Signature: {signature}. Error writing to DB: {e}", + ) from e + + def handle_claim_unlock( + self, + signature: str, + instruction: Dict, + fee_transfer_instruction: Dict, + refund_transfer_instruction: Dict, + ) -> bool: + func_name = "handle_claim_unlock" + + account_data = self.extract_accounts_from_instruction(instruction) + + try: + order_id = bytes(instruction["args"]["order_id"]).hex() + + if self.claimed_unlock_repo.event_exists(order_id): + return False + + fee_amount = int(fee_transfer_instruction["args"]["amount"], 16) + refund_amount = int(refund_transfer_instruction["args"]["amount"], 16) self.claimed_unlock_repo.create( { - "blockchain": blockchain, - "transaction_hash": event["transaction_hash"], - "order_id": event["orderId"], - "beneficiary": unpad_address(event["beneficiary"]), - "give_amount": event["giveAmount"], - "give_token_address": unpad_address(event["giveTokenAddress"]), + "blockchain": "solana", + "transaction_hash": signature, + "order_id": order_id, + "beneficiary": account_data["action_beneficiary"], + "give_amount": refund_amount, + "give_token_address": account_data["token_mint"], + "fee": fee_amount, } ) - return event + + return True except Exception as e: raise CustomException( self.CLASS_NAME, func_name, - f"{blockchain} -- Tx Hash: {event['transaction_hash']}. Error writing to DB: {e}", + f"Solana -- Tx Signature: {signature}. Error writing to DB: {e}", + ) from e + + def handle_fulfill_order(self, signature: str, instruction: Dict) -> bool: + func_name = "handle_fulfill_order" + + account_data = self.extract_accounts_from_instruction(instruction) + + try: + order_id = bytes(instruction["args"]["order_id"]).hex() + + if self.fulfilled_order_repo.event_exists(order_id): + return False + + src_chain_id = int.from_bytes( + instruction["args"]["unvalidated_order"]["give"]["chain_id"], byteorder="big" + ) + source_blockchain = self.convert_id_to_blockchain_name(src_chain_id) + + if not source_blockchain: + return False + + unvalidated_order = instruction["args"]["unvalidated_order"] + + self.fulfilled_order_repo.create( + { + "blockchain": "solana", + "transaction_hash": signature, + "maker_order_nonce": int(unvalidated_order["maker_order_nonce"], 16), + "maker_src": convert_32_byte_array_to_evm_address( + unvalidated_order["maker_src"]["data"] + ), + "src_blockchain": source_blockchain, + "give_token_address": convert_32_byte_array_to_evm_address( + unvalidated_order["give"]["token_address"]["data"] + ), + "give_amount": int.from_bytes( + unvalidated_order["give"]["amount"], byteorder="big" + ), + "dst_blockchain": "solana", + "take_token_address": convert_32_byte_array_to_solana_address( + unvalidated_order["take"]["token_address"]["data"] + ), + "take_amount": int.from_bytes( + unvalidated_order["take"]["amount"], byteorder="big" + ), + "receiver_dst": convert_32_byte_array_to_solana_address( + unvalidated_order["receiver_dst"]["data"] + ), + "give_patch_authority_src": convert_32_byte_array_to_evm_address( + unvalidated_order["give_patch_authority_src"]["data"] + ), + "order_authority_address_dst": convert_32_byte_array_to_solana_address( + unvalidated_order["order_authority_address_dst"]["data"] + ), + "allowed_taker_dst": convert_32_byte_array_to_solana_address( + unvalidated_order["allowed_taker_dst"]["data"] + ) + if unvalidated_order["allowed_taker_dst"] + else None, + "allowed_cancel_beneficiary_src": convert_32_byte_array_to_evm_address( + unvalidated_order["allowed_cancel_beneficiary_src"]["data"] + ) + if unvalidated_order["allowed_cancel_beneficiary_src"] + else None, + "external_call": convert_32_byte_array_to_evm_address( + unvalidated_order["external_call"]["external_call_shortcut"] + ) + if unvalidated_order["external_call"] + else None, + "order_id": order_id, + "sender": None, + "unlock_authority": instruction["args"]["unlock_authority"], + "taker": account_data["taker"], + } + ) + + return True + except Exception as e: + raise CustomException( + self.CLASS_NAME, + func_name, + f"Solana -- Tx Signature: {signature}. Error writing to DB: {e}", ) from e + def extract_accounts_from_instruction( + self, instruction: Dict[str, Any] + ) -> List[Dict[str, Any]]: + """Extracts accounts from a Solana instruction. + Args: + instruction: The Solana instruction to extract accounts from. + Returns: + A list of accounts extracted from the instruction. + """ + accounts = {} + + for account in instruction.get("accounts", []): + if account["name"] not in accounts: + accounts[account["name"]] = account["pubkey"] + + return accounts + def convert_id_to_blockchain_name(self, id: str) -> str: id = str(id) @@ -268,4 +603,181 @@ def convert_id_to_blockchain_name(self, id: str) -> str: if id.startswith("1000000"): return None - return super().convert_id_to_blockchain_name(id) + return super().convert_id_to_blockchain_name(id, BLOCKCHAIN_IDS) + + def post_processing(self): + """ + Post-process fulfill transactions in EVM to extract middle token and amount from input data. + These are needed when swaps occur and are not emitted in the event. + """ + func_name = "post_processing" + + try: + # Get all fulfill orders + their input data in a single query + with self.fulfilled_order_repo.get_session() as session: + results = ( + session.query( + DeBridgeFulfilledOrder.order_id, + DeBridgeFulfilledOrder.transaction_hash, + DeBridgeBlockchainTransaction.input_data, + ) + .filter(DeBridgeFulfilledOrder.blockchain != "solana") + .join( + DeBridgeBlockchainTransaction, + DeBridgeBlockchainTransaction.transaction_hash + == DeBridgeFulfilledOrder.transaction_hash, + ) + .all() + ) + + updates = [] + for order_id, tx_hash, input_data in results: + log_to_cli( + build_log_message_generator( + self.bridge, + ( + f"Post-processing fulfill order: {order_id} -- Tx Hash: {tx_hash} " + f" {len(updates) / len(results) * 100:.2f}% done...", + ), + ), + CliColor.INFO, + ) + + if not input_data: + continue + + try: + function_selector = input_data[:10] + + if ( + function_selector == "0x4d8160ba" or function_selector == "0xc7a76969" + ): # strictlySwapAndCall or strictlySwapAndCallDln + token_in = unpad_address(input_data[10:74]) + amount_in = int(input_data[74:138], 16) + + updates.append((order_id, token_in, amount_in)) + + elif ( + function_selector == "0xb9303701" or function_selector == "0xc358547e" + ): # createSaltedOrder or fulfillOrder + # we skip because these functions do not have middle token or amount + continue + + else: + err = CustomException( + self.CLASS_NAME, + func_name, + ( + f"{self.bridge} -- Tx Hash: {tx_hash}. Unknown function ", + f"selector: {function_selector}", + ), + ) + log_error(self.bridge, str(err)) + + except Exception as decode_err: + err = CustomException( + self.CLASS_NAME, + func_name, + ( + f"{self.bridge} -- Tx Hash: {tx_hash}. Error decoding input ", + f"data: {decode_err}", + ), + ) + log_error(self.bridge, str(err)) + continue + + # Batch update + for order_id, middle_token, middle_amount in updates: + self.fulfilled_order_repo.update_middle_info_order_fulfilled( + order_id, + middle_token, + middle_amount, + ) + + # Get all created orders + their input data in a single query + with self.created_order_repo.get_session() as session: + results = ( + session.query( + DeBridgeCreatedOrder.order_id, + DeBridgeCreatedOrder.transaction_hash, + DeBridgeBlockchainTransaction.input_data, + ) + .filter(DeBridgeCreatedOrder.blockchain != "solana") + .join( + DeBridgeBlockchainTransaction, + DeBridgeBlockchainTransaction.transaction_hash + == DeBridgeCreatedOrder.transaction_hash, + ) + .all() + ) + + updates = [] + for order_id, tx_hash, input_data in results: + log_to_cli( + build_log_message_generator( + self.bridge, + ( + f"Post-processing fulfill order: {order_id} -- Tx Hash: {tx_hash} " + f" {len(updates) / len(results) * 100:.2f}% done...", + ), + ), + CliColor.INFO, + ) + + if not input_data: + continue + + try: + function_selector = input_data[:10] + + if ( + function_selector == "0x4d8160ba" or function_selector == "0xc7a76969" + ): # strictlySwapAndCall or strictlySwapAndCallDln + token_in = unpad_address(input_data[10:74]) + amount_in = int(input_data[74:138], 16) + + updates.append((order_id, token_in, amount_in)) + + elif ( + function_selector == "0xb9303701" or function_selector == "0xc358547e" + ): # createSaltedOrder or fulfillOrder + # we skip because these functions do not have middle token or amount + continue + + else: + err = CustomException( + self.CLASS_NAME, + func_name, + ( + f"{self.bridge} -- Tx Hash: {tx_hash}. Unknown function ", + f"selector: {function_selector}", + ), + ) + log_error(self.bridge, str(err)) + + except Exception as decode_err: + err = CustomException( + self.CLASS_NAME, + func_name, + ( + f"{self.bridge} -- Tx Hash: {tx_hash}. Error decoding input ", + f"data: {decode_err}", + ), + ) + log_error(self.bridge, str(err)) + continue + + # Batch update + for order_id, middle_token, middle_amount in updates: + self.created_order_repo.update_middle_info_order_fulfilled( + order_id, + middle_token, + middle_amount, + ) + + except Exception as e: + raise CustomException( + self.CLASS_NAME, + func_name, + f"{self.bridge} -- Error during post-processing: {e}", + ) from e diff --git a/generator/common/price_generator.py b/generator/common/price_generator.py index 3a3e1eb..e58ac6a 100644 --- a/generator/common/price_generator.py +++ b/generator/common/price_generator.py @@ -114,9 +114,11 @@ def populate_native_tokens( ): token_metadata_repo.create( { - "symbol": symbol, + "symbol": metadata["native_token"], "name": name, - "decimals": token_metadata.decimals, + "decimals": token_metadata["decimals"] + if isinstance(token_metadata, dict) + else token_metadata.decimals, "blockchain": blockchain, "address": "0x0000000000000000000000000000000000000000", # native token } diff --git a/generator/debridge/generator.py b/generator/debridge/generator.py index e1f9e2d..9e5c442 100644 --- a/generator/debridge/generator.py +++ b/generator/debridge/generator.py @@ -1,23 +1,30 @@ import time -from sqlalchemy import text +from sqlalchemy import case, literal, text, update +from sqlalchemy.orm import aliased from config.constants import Bridge from generator.base_generator import BaseGenerator from generator.common.price_generator import PriceGenerator +from repository.common.models import TokenMetadata from repository.common.repository import ( NativeTokenRepository, TokenMetadataRepository, TokenPriceRepository, ) from repository.database import DBSession +from repository.debridge.models import ( + DeBridgeBlockchainTransaction, + DeBridgeClaimedUnlock, + DeBridgeCreatedOrder, + DeBridgeFulfilledOrder, +) from repository.debridge.repository import ( DeBridgeBlockchainTransactionRepository, DeBridgeClaimedUnlockRepository, DeBridgeCreatedOrderRepository, DeBridgeCrossChainTransactionsRepository, DeBridgeFulfilledOrderRepository, - DeBridgeSentOrderUnlockRepository, ) from utils.utils import ( CliColor, @@ -41,9 +48,10 @@ def bind_db_to_repos(self): self.created_orders_repo = DeBridgeCreatedOrderRepository(DBSession) self.fulfilled_orders_repo = DeBridgeFulfilledOrderRepository(DBSession) self.claimed_unlock_repo = DeBridgeClaimedUnlockRepository(DBSession) - self.sent_order_unlock_repo = DeBridgeSentOrderUnlockRepository(DBSession) - self.debridge_cross_chain_transactions = DeBridgeCrossChainTransactionsRepository(DBSession) + self.debridge_cross_chain_transactions_repo = DeBridgeCrossChainTransactionsRepository( + DBSession + ) self.token_metadata_repo = TokenMetadataRepository(DBSession) self.token_price_repo = TokenPriceRepository(DBSession) @@ -53,7 +61,8 @@ def generate_cross_chain_data(self): func_name = "create_cross_chain_transactions" try: - self.match_cctxs() + self.match_evm_to_all_cctxs() + self.match_sol_to_evm_cctxs() start_ts = int(self.transactions_repo.get_min_timestamp()) - 86400 end_ts = int(self.transactions_repo.get_max_timestamp()) + 86400 @@ -68,7 +77,9 @@ def generate_cross_chain_data(self): end_ts, ) - cctxs = self.debridge_cross_chain_transactions.get_unique_src_dst_contract_pairs() + self.fetch_solana_data(start_ts, end_ts) + + cctxs = self.debridge_cross_chain_transactions_repo.get_unique_src_dst_contract_pairs() self.populate_token_info_tables(cctxs, start_ts, end_ts) self.fill_null_address_tokens() @@ -77,7 +88,7 @@ def generate_cross_chain_data(self): # from both the src and dst blockchains, to make sure we use the Ethereum contracts PriceGenerator.calculate_cctx_usd_values( self.bridge, - self.debridge_cross_chain_transactions, + self.debridge_cross_chain_transactions_repo, "debridge_cross_chain_transactions", "input_amount", "src_blockchain", @@ -87,7 +98,7 @@ def generate_cross_chain_data(self): ) PriceGenerator.calculate_cctx_usd_values( self.bridge, - self.debridge_cross_chain_transactions, + self.debridge_cross_chain_transactions_repo, "debridge_cross_chain_transactions", "output_amount", "dst_blockchain", @@ -95,10 +106,50 @@ def generate_cross_chain_data(self): "dst_timestamp", "output_amount_usd", ) + PriceGenerator.calculate_cctx_usd_values( + self.bridge, + self.debridge_cross_chain_transactions_repo, + "debridge_cross_chain_transactions", + "refund_amount", + "src_blockchain", + "src_contract_address", + "src_timestamp", + "refund_amount_usd", + ) + PriceGenerator.calculate_cctx_usd_values( + self.bridge, + self.debridge_cross_chain_transactions_repo, + "debridge_cross_chain_transactions", + "middle_src_amount", + "src_blockchain", + "middle_src_token", + "src_timestamp", + "middle_src_amount_usd", + ) + PriceGenerator.calculate_cctx_usd_values( + self.bridge, + self.debridge_cross_chain_transactions_repo, + "debridge_cross_chain_transactions", + "middle_dst_amount", + "dst_blockchain", + "middle_dst_token", + "dst_timestamp", + "middle_dst_amount_usd", + ) + PriceGenerator.calculate_cctx_usd_values( + self.bridge, + self.debridge_cross_chain_transactions_repo, + "debridge_cross_chain_transactions", + "percent_fee", + "src_blockchain", + "middle_src_token", + "src_timestamp", + "percent_fee_usd", + ) PriceGenerator.calculate_cctx_native_usd_values( self.bridge, - self.debridge_cross_chain_transactions, + self.debridge_cross_chain_transactions_repo, "debridge_cross_chain_transactions", "src_timestamp", "src_blockchain", @@ -107,7 +158,7 @@ def generate_cross_chain_data(self): ) PriceGenerator.calculate_cctx_native_usd_values( self.bridge, - self.debridge_cross_chain_transactions, + self.debridge_cross_chain_transactions_repo, "debridge_cross_chain_transactions", "dst_timestamp", "dst_blockchain", @@ -116,21 +167,21 @@ def generate_cross_chain_data(self): ) PriceGenerator.calculate_cctx_native_usd_values( self.bridge, - self.debridge_cross_chain_transactions, + self.debridge_cross_chain_transactions_repo, "debridge_cross_chain_transactions", - "dst_timestamp", - "dst_blockchain", - "native_fix_fee", - "native_fix_fee_usd", + "refund_timestamp", + "refund_blockchain", + "refund_fee", + "refund_fee_usd", ) PriceGenerator.calculate_cctx_native_usd_values( self.bridge, - self.debridge_cross_chain_transactions, + self.debridge_cross_chain_transactions_repo, "debridge_cross_chain_transactions", - "dst_timestamp", - "dst_blockchain", - "percent_fee", - "percent_fee_usd", + "src_timestamp", + "src_blockchain", + "native_fix_fee", + "native_fix_fee_usd", ) except Exception as e: @@ -141,84 +192,111 @@ def generate_cross_chain_data(self): ) log_error(self.bridge, exception) - def match_cctxs(self): - func_name = "match_cctxs" + def match_evm_to_all_cctxs(self): + func_name = "match_evm_to_all_cctxs" start_time = time.time() - log_to_cli(build_log_message_generator(self.bridge, "Matching deBridge token transfers...")) - - self.debridge_cross_chain_transactions.empty_table() - - query = text( - """ - INSERT INTO debridge_cross_chain_transactions ( - src_blockchain, - src_transaction_hash, - src_from_address, - src_to_address, - src_fee, - src_fee_usd, - src_timestamp, - dst_blockchain, - dst_transaction_hash, - dst_from_address, - dst_to_address, - dst_fee, - dst_fee_usd, - dst_timestamp, - message_id, - depositor, - recipient, - src_contract_address, - dst_contract_address, - input_amount, - input_amount_usd, - output_amount, - output_amount_usd, - native_fix_fee, - native_fix_fee_usd, - percent_fee, - percent_fee_usd + log_to_cli( + build_log_message_generator( + self.bridge, "Matching deBridge EVM -> ALL token transfers..." ) - SELECT - src_tx.blockchain, - src_tx.transaction_hash, - src_tx.from_address, - src_tx.to_address, - src_tx.fee, - NULL as src_fee_usd, - src_tx.timestamp, - dst_tx.blockchain, - dst_tx.transaction_hash, - dst_tx.from_address, - dst_tx.to_address, - dst_tx.fee, - NULL as dst_fee_usd, - dst_tx.timestamp, - NULL as message_id, - src_tx.from_address, - deposit.receiver_dst, - deposit.give_token_address, - deposit.take_token_address, - deposit.give_amount, - NULL as input_amount_usd, - deposit.take_amount, - NULL as output_amount_usd, - deposit.native_fix_fee, - NULL as native_fix_fee_usd, - deposit.percent_fee, - NULL as percent_fee_usd - FROM debridge_created_order deposit - JOIN debridge_blockchain_transaction src_tx ON src_tx.transaction_hash = deposit.transaction_hash - JOIN debridge_fulfilled_order fill ON fill.order_id = deposit.order_id - JOIN debridge_blockchain_transaction dst_tx ON dst_tx.transaction_hash = fill.transaction_hash; - """ # noqa: E501 ) + self.debridge_cross_chain_transactions_repo.empty_table() + try: - self.debridge_cross_chain_transactions.execute(query) + results = [] + + SrcTx = aliased(DeBridgeBlockchainTransaction) + DstTx = aliased(DeBridgeBlockchainTransaction) + RefundTx = aliased(DeBridgeBlockchainTransaction) + + with self.debridge_cross_chain_transactions_repo.get_session() as session: + # Merge CreatedOrder with BlockchainTransaction by transaction_hash + results = ( + session.query( + SrcTx.blockchain.label("src_blockchain"), + SrcTx.transaction_hash.label("src_transaction_hash"), + SrcTx.from_address.label("src_from_address"), + SrcTx.to_address.label("src_to_address"), + SrcTx.fee.label("src_fee"), + literal(None).label("src_fee_usd"), + SrcTx.value.label("src_value"), + SrcTx.timestamp.label("src_timestamp"), + DstTx.blockchain.label("dst_blockchain"), + DstTx.transaction_hash.label("dst_transaction_hash"), + case( + (DstTx.blockchain == "solana", DeBridgeFulfilledOrder.taker), # noqa: E711 DO NOT REPLACE != WITH 'IS NOT' + else_=DstTx.from_address, + ).label("dst_from_address"), + case( + ( + DstTx.blockchain == "solana", + "dst5MGcFPoBeREFAA5E3tU5ij8m5uVYwkzkSAbsLbNo", + ), # noqa: E711 DO NOT REPLACE != WITH 'IS NOT' + else_=DstTx.to_address, + ).label("dst_to_address"), + DstTx.fee.label("dst_fee"), + literal(None).label("dst_fee_usd"), + DstTx.value.label("dst_value"), + DstTx.timestamp.label("dst_timestamp"), + RefundTx.blockchain.label("refund_blockchain"), + RefundTx.transaction_hash.label("refund_transaction_hash"), + RefundTx.from_address.label("refund_from_address"), + RefundTx.to_address.label("refund_to_address"), + RefundTx.fee.label("refund_fee"), + literal(None).label("refund_fee_usd"), + RefundTx.value.label("refund_value"), + RefundTx.timestamp.label("refund_timestamp"), + DeBridgeCreatedOrder.order_id.label("intent_id"), + DeBridgeCreatedOrder.maker_src.label("depositor"), + DeBridgeFulfilledOrder.receiver_dst.label("recipient"), + DeBridgeFulfilledOrder.give_token_address.label("src_contract_address"), + DeBridgeFulfilledOrder.take_token_address.label("dst_contract_address"), + DeBridgeCreatedOrder.original_amount.label("input_amount"), + literal(None).label("input_amount_usd"), + DeBridgeCreatedOrder.give_token_address.label("middle_src_token"), + DeBridgeCreatedOrder.give_amount.label("middle_src_amount"), + literal(None).label("middle_src_amount_usd"), + DeBridgeFulfilledOrder.middle_dst_token.label("middle_dst_token"), + DeBridgeFulfilledOrder.middle_dst_amount.label("middle_dst_amount"), + literal(None).label("middle_dst_amount_usd"), + DeBridgeFulfilledOrder.take_amount.label("output_amount"), + literal(None).label("output_amount_usd"), + DeBridgeClaimedUnlock.give_amount.label("refund_amount"), + literal(None).label("refund_amount_usd"), + DeBridgeClaimedUnlock.give_token_address.label("refund_token"), + DeBridgeCreatedOrder.native_fix_fee.label("native_fix_fee"), + literal(None).label("native_fix_fee_usd"), + DeBridgeCreatedOrder.percent_fee.label("percent_fee"), + literal(None).label("percent_fee_usd"), + ) + .join(SrcTx, DeBridgeCreatedOrder.transaction_hash == SrcTx.transaction_hash) + .join( + DeBridgeFulfilledOrder, + DeBridgeCreatedOrder.order_id == DeBridgeFulfilledOrder.order_id, + ) + .join(DstTx, DeBridgeFulfilledOrder.transaction_hash == DstTx.transaction_hash) + .outerjoin( + DeBridgeClaimedUnlock, + DeBridgeCreatedOrder.order_id == DeBridgeClaimedUnlock.order_id, + ) + .outerjoin( + RefundTx, + DeBridgeClaimedUnlock.transaction_hash == RefundTx.transaction_hash, + ) + .filter(SrcTx.blockchain != "solana") + .all() + ) + + cctxs = [] + + for row in results: + cctxs.append(row._asdict()) + + self.debridge_cross_chain_transactions_repo.create_all(cctxs) - size = self.debridge_cross_chain_transactions.get_number_of_records() + size = self.debridge_cross_chain_transactions_repo.get_number_of_records() end_time = time.time() log_to_cli( @@ -238,10 +316,131 @@ def match_cctxs(self): f"Error processing token transfers. Error: {e}", ) from e + def match_sol_to_evm_cctxs(self): + func_name = "match_sol_to_evm_cctxs" + + start_time = time.time() + log_to_cli( + build_log_message_generator( + self.bridge, "Matching deBridge SOL -> EVM token transfers..." + ) + ) + + try: + results = [] + + SrcTx = aliased(DeBridgeBlockchainTransaction) + DstTx = aliased(DeBridgeBlockchainTransaction) + RefundTx = aliased(DeBridgeBlockchainTransaction) + + with self.debridge_cross_chain_transactions_repo.get_session() as session: + results = ( + session.query( + SrcTx.blockchain.label("src_blockchain"), + SrcTx.transaction_hash.label("src_transaction_hash"), + DeBridgeCreatedOrder.maker_src.label("src_from_address"), + literal("src5qyZHqTqecJV4aY6Cb6zDZLMDzrDKKezs22MPHr4").label( + "src_to_address" + ), + SrcTx.fee.label("src_fee"), + literal(None).label("src_fee_usd"), + SrcTx.value.label("src_value"), + SrcTx.timestamp.label("src_timestamp"), + DstTx.blockchain.label("dst_blockchain"), + DstTx.transaction_hash.label("dst_transaction_hash"), + DstTx.from_address.label("dst_from_address"), + DstTx.to_address.label("dst_to_address"), + DstTx.fee.label("dst_fee"), + literal(None).label("dst_fee_usd"), + DstTx.value.label("dst_value"), + DstTx.timestamp.label("dst_timestamp"), + RefundTx.blockchain.label("refund_blockchain"), + RefundTx.transaction_hash.label("refund_transaction_hash"), + RefundTx.from_address.label("refund_from_address"), + RefundTx.to_address.label("refund_to_address"), + RefundTx.fee.label("refund_fee"), + literal(None).label("refund_fee_usd"), + RefundTx.value.label("refund_value"), + RefundTx.timestamp.label("refund_timestamp"), + DeBridgeFulfilledOrder.order_id.label("intent_id"), + DeBridgeCreatedOrder.maker_src.label("depositor"), + DeBridgeCreatedOrder.receiver_dst.label("recipient"), + DeBridgeCreatedOrder.give_token_address.label("src_contract_address"), + DeBridgeCreatedOrder.take_token_address.label("dst_contract_address"), + DeBridgeCreatedOrder.original_amount.label("input_amount"), + literal(None).label("input_amount_usd"), + DeBridgeCreatedOrder.give_token_address.label("middle_src_token"), + DeBridgeCreatedOrder.give_amount.label("middle_src_amount"), + literal(None).label("middle_src_amount_usd"), + DeBridgeFulfilledOrder.middle_dst_token.label("middle_dst_token"), + DeBridgeFulfilledOrder.middle_dst_amount.label("middle_dst_amount"), + literal(None).label("middle_dst_amount_usd"), + DeBridgeFulfilledOrder.take_amount.label("output_amount"), + literal(None).label("output_amount_usd"), + DeBridgeClaimedUnlock.give_amount.label("refund_amount"), + literal(None).label("refund_amount_usd"), + DeBridgeClaimedUnlock.give_token_address.label("refund_token"), + DeBridgeCreatedOrder.native_fix_fee.label("native_fix_fee"), + literal(None).label("native_fix_fee_usd"), + case( + ( + SrcTx.blockchain == "solana", + literal(0), + ), + else_=DeBridgeCreatedOrder.percent_fee, + ).label("percent_fee"), + literal(None).label("percent_fee_usd"), + ) + .join(SrcTx, DeBridgeCreatedOrder.transaction_hash == SrcTx.transaction_hash) + .join( + DeBridgeFulfilledOrder, + DeBridgeCreatedOrder.maker_order_nonce + == DeBridgeFulfilledOrder.maker_order_nonce, + ) + .join(DstTx, DeBridgeFulfilledOrder.transaction_hash == DstTx.transaction_hash) + .outerjoin( + DeBridgeClaimedUnlock, + DeBridgeFulfilledOrder.order_id == DeBridgeClaimedUnlock.order_id, + ) + .outerjoin( + RefundTx, + DeBridgeClaimedUnlock.transaction_hash == RefundTx.transaction_hash, + ) + .filter(SrcTx.blockchain == "solana") + .all() + ) + + cctxs = [] + + for row in results: + cctxs.append(row._asdict()) + + self.debridge_cross_chain_transactions_repo.create_all(cctxs) + + size = self.debridge_cross_chain_transactions_repo.get_number_of_records() + + end_time = time.time() + log_to_cli( + build_log_message_generator( + self.bridge, + ( + f"SOL -> EVM token transfers matched in {end_time - start_time} seconds. " + f"Total records inserted: {size}", + ), + ), + CliColor.SUCCESS, + ) + except Exception as e: + raise CustomException( + self.CLASS_NAME, + func_name, + f"Error processing SOL -> EVM token transfers. Error: {e}", + ) from e + def fill_null_address_tokens(self): """ DeBridge uses the null address (0x0000000000000000000000000000000000000000) when - transferringthe native tokens in give_token_address and take_token_address. + transferring the native tokens in give_token_address and take_token_address. We need to match them in the database to the native token address of the src and dst blockchains. """ @@ -311,3 +510,96 @@ def populate_token_info_tables(self, cctxs, start_ts, end_ts): ), CliColor.SUCCESS, ) + + def fetch_solana_data(self, start_ts, end_ts): + if not self.native_token_repo.get_native_token_by_blockchain("solana"): + self.native_token_repo.create( + { + "symbol": "SOL", + "blockchain": "solana", + } + ) + + if not self.token_metadata_repo.get_token_metadata_by_symbol("SOL"): + self.token_metadata_repo.create( + { + "symbol": "SOL", + "name": "Wrapped Solana", + "decimals": 9, + "blockchain": "solana", + "address": "11111111111111111111111111111111", + } + ) + + self.token_metadata_repo.create( + { + "symbol": "SOL", + "name": "Wrapped Solana", + "decimals": 9, + "blockchain": "solana", + "address": "0x0000000000000000000000000000000000000000", + } + ) + + # When the native token is used in the destination blockchain, + # the address is set to 0x0000000000000000000000000000000000000000 + # however, if we fetch info from Alchemy, we will not get the + # token metadata for the native token, so we need to fill it manually + # with the data we have in the NativeToken table and the TokenMetadata table + + if not self.token_metadata_repo.get_token_metadata_by_symbol_and_blockchain( + "WETH", "solana" + ): + self.token_metadata_repo.create( + { + "symbol": "WETH", + "name": "Wrapped Ether", + "decimals": 8, + "blockchain": "solana", + "address": "7vfCXTUXx5WJV5JADk17DUJ4ksgau7utNKj4b963voxs", + } + ) + + if not self.token_metadata_repo.get_token_metadata_by_symbol_and_blockchain( + "USDC", "solana" + ): + self.token_metadata_repo.create( + { + "symbol": "USDC", + "name": "USDC", + "decimals": 6, + "blockchain": "solana", + "address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", + } + ) + + if not PriceGenerator.is_token_price_complete( + self.token_price_repo, + start_ts, + end_ts, + "SOL", + "solana", + ): + PriceGenerator.fetch_and_store_token_prices( + self.bridge, + self.token_price_repo, + start_ts, + end_ts, + "Solana", + "SOL", + ) + + # We found an erros in the Alchemy API where it returns the wrong + # decimals for the DONKEY token in BNB, so we need to fix it manually + with self.token_metadata_repo.get_session() as session: + stmt = ( + update(TokenMetadata) + .values(decimals=18) + .where( + TokenMetadata.blockchain == "bnb", + TokenMetadata.symbol == "DONKEY", + TokenMetadata.address == "0xA49fA5E8106E2d6d6a69E78df9B6A20AaB9c4444", + ) + .execution_options(synchronize_session=False) + ) + session.execute(stmt) diff --git a/generator/mayan/generator.py b/generator/mayan/generator.py index 8c80e2c..770d3d8 100644 --- a/generator/mayan/generator.py +++ b/generator/mayan/generator.py @@ -135,6 +135,17 @@ def generate_cross_chain_data(self): "dst_timestamp", "middle_dst_amount_usd", ) + PriceGenerator.calculate_cctx_usd_values( + self.bridge, + self.cross_chain_transactions_repo, + "mayan_cross_chain_transactions", + "percent_fee", + "dst_blockchain", + "dst_contract_address", + "dst_timestamp", + "percent_fee_usd", + ) + PriceGenerator.calculate_cctx_native_usd_values( self.bridge, self.cross_chain_transactions_repo, @@ -235,6 +246,10 @@ def match_sol_to_evm(self): "auction_last_bid_timestamp" ), auction_data.c.auction_number_of_bids.label("auction_number_of_bids"), + literal(0).label("native_fix_fee"), + ( + MayanOrderFulfilled.net_amount * 0.000300090027 / (1 - 0.000300090027) + ).label("percent_fee"), ) .join(MayanOrderFulfilled, MayanInitOrder.order_hash == MayanOrderFulfilled.key) .join(SrcTx, SrcTx.transaction_hash == MayanInitOrder.signature) @@ -299,6 +314,10 @@ def match_sol_to_evm(self): auction_first_bid_timestamp=row.auction_first_bid_timestamp, auction_last_bid_timestamp=row.auction_last_bid_timestamp, auction_number_of_bids=row.auction_number_of_bids, + native_fix_fee=row.native_fix_fee, + native_fix_fee_usd=None, + percent_fee=row.percent_fee, + percent_fee_usd=None, ) ) @@ -346,7 +365,6 @@ def match_evm_to_sol(self): MayanForwarded.blockchain.label("blockchain"), MayanForwarded.transaction_hash.label("transaction_hash"), MayanForwarded.trader.label("trader"), - MayanForwarded.mayan_protocol.label("mayan_protocol"), MayanForwarded.token.label("token"), MayanForwarded.token_out.label("token_out"), MayanForwarded.dst_addr.label("dst_addr"), @@ -361,7 +379,6 @@ def match_evm_to_sol(self): MayanSwapAndForwarded.blockchain.label("blockchain"), MayanSwapAndForwarded.transaction_hash.label("transaction_hash"), MayanSwapAndForwarded.trader.label("trader"), - MayanSwapAndForwarded.mayan_protocol.label("mayan_protocol"), MayanSwapAndForwarded.token_in.label("token"), MayanSwapAndForwarded.token_out.label("token_out"), MayanSwapAndForwarded.dst_addr.label("dst_addr"), @@ -379,8 +396,8 @@ def match_evm_to_sol(self): session.query( Fwd.c.blockchain.label("src_blockchain"), Fwd.c.transaction_hash.label("src_transaction_hash"), - Fwd.c.trader.label("src_from_address"), - Fwd.c.mayan_protocol.label("src_to_address"), + SrcTx.from_address.label("src_from_address"), + SrcTx.to_address.label("src_to_address"), SrcTx.fee.label("src_fee"), SrcTx.value.label("src_value"), SrcTx.timestamp.label("src_timestamp"), @@ -419,6 +436,8 @@ def match_evm_to_sol(self): auction_data.c.auction_number_of_bids.label("auction_number_of_bids"), Fwd.c.middle_src_token.label("middle_src_token"), Fwd.c.middle_src_amount.label("middle_src_amount"), + literal(0).label("native_fix_fee"), + literal(0).label("percent_fee"), ) .join( MayanOrderCreated, @@ -494,6 +513,10 @@ def match_evm_to_sol(self): auction_first_bid_timestamp=row.auction_first_bid_timestamp, auction_last_bid_timestamp=row.auction_last_bid_timestamp, auction_number_of_bids=row.auction_number_of_bids, + native_fix_fee=row.native_fix_fee, + native_fix_fee_usd=None, + percent_fee=row.percent_fee, + percent_fee_usd=None, ) ) @@ -541,7 +564,6 @@ def match_evm_to_evm(self): MayanForwarded.blockchain.label("blockchain"), MayanForwarded.transaction_hash.label("transaction_hash"), MayanForwarded.trader.label("trader"), - MayanForwarded.mayan_protocol.label("mayan_protocol"), MayanForwarded.token.label("token"), MayanForwarded.token_out.label("token_out"), MayanForwarded.dst_addr.label("dst_addr"), @@ -555,7 +577,6 @@ def match_evm_to_evm(self): MayanSwapAndForwarded.blockchain.label("blockchain"), MayanSwapAndForwarded.transaction_hash.label("transaction_hash"), MayanSwapAndForwarded.trader.label("trader"), - MayanSwapAndForwarded.mayan_protocol.label("mayan_protocol"), MayanSwapAndForwarded.token_in.label("token"), MayanSwapAndForwarded.token_out.label("token_out"), MayanSwapAndForwarded.dst_addr.label("dst_addr"), @@ -576,8 +597,8 @@ def match_evm_to_evm(self): session.query( Fwd.c.blockchain.label("src_blockchain"), Fwd.c.transaction_hash.label("src_transaction_hash"), - Fwd.c.trader.label("src_from_address"), - Fwd.c.mayan_protocol.label("src_to_address"), + SrcTx.from_address.label("src_from_address"), + SrcTx.to_address.label("src_to_address"), SrcTx.fee.label("src_fee"), SrcTx.value.label("src_value"), SrcTx.timestamp.label("src_timestamp"), @@ -617,6 +638,10 @@ def match_evm_to_evm(self): "auction_last_bid_timestamp" ), auction_data.c.auction_number_of_bids.label("auction_number_of_bids"), + literal(0).label("native_fix_fee"), + ( + MayanOrderFulfilled.net_amount * 0.000300090027 / (1 - 0.000300090027) + ).label("percent_fee"), ) .join( MayanOrderCreated, @@ -687,6 +712,10 @@ def match_evm_to_evm(self): auction_first_bid_timestamp=row.auction_first_bid_timestamp, auction_last_bid_timestamp=row.auction_last_bid_timestamp, auction_number_of_bids=row.auction_number_of_bids, + native_fix_fee=row.native_fix_fee, + native_fix_fee_usd=None, + percent_fee=row.percent_fee, + percent_fee_usd=None, ) ) @@ -880,3 +909,17 @@ def fix_token_symbol_clashes(self): .values(input_amount_usd=None, refund_fee_usd=None) ) session.execute(stmt) + + # Also, we need to fix the USD values of the 'Bitcoin on Base' token + # because it is not worth the same as BTC + with self.cross_chain_transactions_repo.get_session() as session: + stmt = ( + update(MayanCrossChainTransaction) + .where( + MayanCrossChainTransaction.src_blockchain == "base", + MayanCrossChainTransaction.src_contract_address + == "0x0c41f1fc9022feb69af6dc666abfe73c9ffda7ce", + ) + .values(input_amount_usd=None, refund_fee_usd=None) + ) + session.execute(stmt) diff --git a/repository/common/models.py b/repository/common/models.py index dae9db8..8dab9a2 100644 --- a/repository/common/models.py +++ b/repository/common/models.py @@ -67,11 +67,11 @@ class BlockchainTransaction(Base): __abstract__ = True blockchain = Column(String(10), nullable=False) - transaction_hash = Column(String(66), nullable=False, primary_key=True) + transaction_hash = Column(String(88), nullable=False, primary_key=True) block_number = Column(Integer, nullable=False) timestamp = Column(BigInteger, nullable=False) - from_address = Column(String(42), nullable=False) - to_address = Column(String(42), nullable=False) + from_address = Column(String(44), nullable=True) + to_address = Column(String(44), nullable=True) status = Column(Integer, nullable=False) value = Column(Numeric(30, 0), nullable=True) input_data = Column(String(35000), nullable=True) diff --git a/repository/debridge/__init__.py b/repository/debridge/__init__.py index 813f7bc..a37a208 100644 --- a/repository/debridge/__init__.py +++ b/repository/debridge/__init__.py @@ -4,7 +4,6 @@ DeBridgeCreatedOrderRepository, DeBridgeCrossChainTransactionsRepository, DeBridgeFulfilledOrderRepository, - DeBridgeSentOrderUnlockRepository, ) __all__ = [ @@ -12,6 +11,5 @@ "DeBridgeCreatedOrderRepository", "DeBridgeFulfilledOrderRepository", "DeBridgeClaimedUnlockRepository", - "DeBridgeSentOrderUnlockRepository", "DeBridgeCrossChainTransactionsRepository", ] diff --git a/repository/debridge/models.py b/repository/debridge/models.py index 73c70ae..72f54c8 100644 --- a/repository/debridge/models.py +++ b/repository/debridge/models.py @@ -7,31 +7,33 @@ class DeBridgeCreatedOrder(Base): __tablename__ = "debridge_created_order" - id = Column(Integer, nullable=False, autoincrement=True, primary_key=True) + id = Column(BigInteger, primary_key=True, autoincrement=True) blockchain = Column(String(10), nullable=False) - transaction_hash = Column(String(66), nullable=False) - maker_order_nonce = Column(BigInteger, nullable=False) - maker_src = Column(String(42), nullable=False) + transaction_hash = Column(String(88), nullable=False) + maker_order_nonce = Column(Numeric(30, 0), nullable=False) + maker_src = Column(String(44), nullable=False) src_blockchain = Column(String(10), nullable=False) - give_token_address = Column(String(42), nullable=False) + give_token_address = Column(String(44), nullable=False) give_amount = Column(Numeric(30, 0), nullable=False) dst_blockchain = Column(String(10), nullable=False) - take_token_address = Column(String(42), nullable=False) + take_token_address = Column(String(44), nullable=False) take_amount = Column(Numeric(30, 0), nullable=False) - receiver_dst = Column(String(42), nullable=False) - give_patch_authority_src = Column(String(42), nullable=False) - order_authority_address_dst = Column(String(42), nullable=False) - allowed_taker_dst = Column(String(42), nullable=True) - allowed_cancel_beneficiary_src = Column(String(42), nullable=True) + receiver_dst = Column(String(44), nullable=False) + give_patch_authority_src = Column(String(44), nullable=False) + order_authority_address_dst = Column(String(44), nullable=False) + allowed_taker_dst = Column(String(44), nullable=True) + allowed_cancel_beneficiary_src = Column(String(44), nullable=True) external_call = Column(String, nullable=True) - order_id = Column(String(66), nullable=False) + order_id = Column(String(66), nullable=True) affiliate_fee = Column(String, nullable=True) - native_fix_fee = Column(Numeric(30, 0), nullable=False) - percent_fee = Column(Numeric(30, 0), nullable=False) + native_fix_fee = Column(Numeric(30, 0), nullable=True) + percent_fee = Column(Numeric(30, 0), nullable=True) referral_code = Column(Integer, nullable=False) _metadata = Column( String, nullable=True ) # we added the underscore to avoid conflicts with the metadata column in the base class + original_token = Column(String(44), nullable=True) + original_amount = Column(Numeric(30, 0), nullable=True) def __init__( self, @@ -57,6 +59,8 @@ def __init__( percent_fee, referral_code, _metadata, + original_token=None, + original_amount=None, ): self.blockchain = blockchain self.transaction_hash = transaction_hash @@ -80,6 +84,8 @@ def __init__( self.percent_fee = percent_fee self.referral_code = referral_code self._metadata = _metadata + self.original_token = original_token + self.original_amount = original_amount def __repr__(self): return ( @@ -104,33 +110,37 @@ def __repr__(self): f"native_fix_fee={self.native_fix_fee}, " f"percent_fee={self.percent_fee}, " f"referral_code={self.referral_code}, " - f"_metadata={self._metadata})>" + f"_metadata={self._metadata}, " + f"original_token={self.original_token}, " + f"original_amount={self.original_amount})>" ) class DeBridgeFulfilledOrder(Base): __tablename__ = "debridge_fulfilled_order" - id = Column(Integer, nullable=False, autoincrement=True, primary_key=True) blockchain = Column(String(10), nullable=False) - transaction_hash = Column(String(66), nullable=False) - maker_order_nonce = Column(BigInteger, nullable=False) - maker_src = Column(String(42), nullable=False) + transaction_hash = Column(String(88), nullable=False) + maker_order_nonce = Column(Numeric(30, 0), nullable=False) + maker_src = Column(String(44), nullable=False) src_blockchain = Column(String(10), nullable=False) - give_token_address = Column(String(42), nullable=False) + give_token_address = Column(String(44), nullable=False) give_amount = Column(Numeric(30, 0), nullable=False) dst_blockchain = Column(String(10), nullable=False) - take_token_address = Column(String(42), nullable=False) + take_token_address = Column(String(44), nullable=False) take_amount = Column(Numeric(30, 0), nullable=False) - receiver_dst = Column(String(42), nullable=False) - give_patch_authority_src = Column(String(42), nullable=False) - order_authority_address_dst = Column(String(42), nullable=False) - allowed_taker_dst = Column(String(42), nullable=True) - allowed_cancel_beneficiary_src = Column(String(42), nullable=True) + receiver_dst = Column(String(44), nullable=False) + give_patch_authority_src = Column(String(44), nullable=False) + order_authority_address_dst = Column(String(44), nullable=False) + allowed_taker_dst = Column(String(44), nullable=True) + allowed_cancel_beneficiary_src = Column(String(44), nullable=True) external_call = Column(String, nullable=True) - order_id = Column(String(66), nullable=False) - sender = Column(String(42), nullable=False) - unlock_authority = Column(String(42), nullable=False) + order_id = Column(String(66), nullable=False, primary_key=True) + sender = Column(String(44), nullable=True) + unlock_authority = Column(String(44), nullable=False) + taker = Column(String(44), nullable=True) + middle_dst_token = Column(String(44), nullable=True) + middle_dst_amount = Column(Numeric(30, 0), nullable=True) def __init__( self, @@ -153,6 +163,7 @@ def __init__( order_id, sender, unlock_authority, + taker, ): self.blockchain = blockchain self.transaction_hash = transaction_hash @@ -173,6 +184,7 @@ def __init__( self.order_id = order_id self.sender = sender self.unlock_authority = unlock_authority + self.taker = taker def __repr__(self): return ( @@ -193,23 +205,33 @@ def __repr__(self): f"external_call={self.external_call}, " f"order_id={self.order_id}, " f"sender={self.sender}, " - f"unlock_authority={self.unlock_authority})>" + f"unlock_authority={self.unlock_authority}, " + f"taker={self.taker}, " + f"middle_dst_token={self.middle_dst_token}, " + f"middle_dst_amount={self.middle_dst_amount})>" ) class DeBridgeClaimedUnlock(Base): __tablename__ = "debridge_claimed_unlock" - id = Column(Integer, nullable=False, autoincrement=True, primary_key=True) blockchain = Column(String(10), nullable=False) - transaction_hash = Column(String(66), nullable=False) - order_id = Column(String(66), nullable=False) - beneficiary = Column(String(42), nullable=False) + transaction_hash = Column(String(88), nullable=False) + order_id = Column(String(66), nullable=False, primary_key=True) + beneficiary = Column(String(44), nullable=False) give_amount = Column(Numeric(30, 0), nullable=False) - give_token_address = Column(String(42), nullable=False) + give_token_address = Column(String(44), nullable=False) + fee = Column(Numeric(30, 0), nullable=True) def __init__( - self, blockchain, transaction_hash, order_id, beneficiary, give_amount, give_token_address + self, + blockchain, + transaction_hash, + order_id, + beneficiary, + give_amount, + give_token_address, + fee, ): self.blockchain = blockchain self.transaction_hash = transaction_hash @@ -217,6 +239,7 @@ def __init__( self.beneficiary = beneficiary self.give_amount = give_amount self.give_token_address = give_token_address + self.fee = fee def __repr__(self): return ( @@ -224,33 +247,8 @@ def __repr__(self): f"order_id={self.order_id}, " f"beneficiary={self.beneficiary}, " f"give_amount={self.give_amount}, " - f"give_token_address={self.give_token_address})>" - ) - - -class DeBridgeSentOrderUnlock(Base): - __tablename__ = "debridge_sent_order_unlock" - - id = Column(Integer, nullable=False, autoincrement=True, primary_key=True) - blockchain = Column(String(10), nullable=False) - transaction_hash = Column(String(66), nullable=False) - order_id = Column(String(66), nullable=False) - beneficiary = Column(String(42), nullable=False) - submission_id = Column(String(66), nullable=False) - - def __init__(self, blockchain, transaction_hash, order_id, beneficiary, submission_id): - self.blockchain = blockchain - self.transaction_hash = transaction_hash - self.order_id = order_id - self.beneficiary = beneficiary - self.submission_id = submission_id - - def __repr__(self): - return ( - f"" + f"give_token_address={self.give_token_address}, " + f"fee={self.fee}>" ) @@ -274,35 +272,57 @@ def __repr__(self): class DeBridgeCrossChainTransactions(Base): __tablename__ = "debridge_cross_chain_transactions" - id = Column(Integer, nullable=False, autoincrement=True, primary_key=True) src_blockchain = Column(String(10), nullable=False) - src_transaction_hash = Column(String(66), nullable=False) - src_from_address = Column(String(42), nullable=False) - src_to_address = Column(String(42), nullable=False) + src_transaction_hash = Column(String(88), nullable=False) + src_from_address = Column(String(44), nullable=False) + src_to_address = Column(String(44), nullable=False) src_fee = Column(Numeric(30, 0), nullable=False) + src_value = Column(Numeric(30, 0), nullable=True) src_fee_usd = Column(Float, nullable=True) src_timestamp = Column(BigInteger, nullable=False) dst_blockchain = Column(String(10), nullable=False) - dst_transaction_hash = Column(String(66), nullable=False) - dst_from_address = Column(String(42), nullable=False) - dst_to_address = Column(String(42), nullable=False) + dst_transaction_hash = Column(String(88), nullable=False) + dst_from_address = Column(String(44), nullable=False) + dst_to_address = Column(String(44), nullable=False) dst_fee = Column(Numeric(30, 0), nullable=False) + dst_value = Column(Numeric(30, 0), nullable=True) dst_fee_usd = Column(Float, nullable=True) dst_timestamp = Column(BigInteger, nullable=False) - message_id = Column(String(66), nullable=True) - depositor = Column(String(42), nullable=False) - recipient = Column(String(42), nullable=False) - src_contract_address = Column(String(42), nullable=False) - dst_contract_address = Column(String(42), nullable=False) - input_amount = Column(Numeric(30, 0), nullable=False) + refund_blockchain = Column(String(10), nullable=True) + refund_transaction_hash = Column(String(88), nullable=True) + refund_from_address = Column(String(44), nullable=True) + refund_to_address = Column(String(44), nullable=True) + refund_fee = Column(Numeric(30, 0), nullable=True) + refund_value = Column(Numeric(30, 0), nullable=True) + refund_fee_usd = Column(Float, nullable=True) + refund_timestamp = Column(BigInteger, nullable=True) + intent_id = Column(String(64), nullable=False, primary_key=True) + depositor = Column(String(44), nullable=False) + recipient = Column(String(44), nullable=False) + src_contract_address = Column(String(44), nullable=True) + dst_contract_address = Column(String(44), nullable=True) + input_amount = Column(Numeric(30, 0), nullable=True) input_amount_usd = Column(Float, nullable=True) + middle_src_token = Column(String(44), nullable=True) + middle_src_amount = Column(Numeric(30, 0), nullable=True) + middle_src_amount_usd = Column(Float, nullable=True) + middle_dst_token = Column(String(44), nullable=True) + middle_dst_amount = Column(Numeric(30, 0), nullable=True) + middle_dst_amount_usd = Column(Float, nullable=True) output_amount = Column(Numeric(30, 0), nullable=False) output_amount_usd = Column(Float, nullable=True) + refund_amount = Column(Numeric(30, 0), nullable=True) + refund_amount_usd = Column(Float, nullable=True) + refund_token = Column(String(44), nullable=True) native_fix_fee = Column(Numeric(30, 0), nullable=False) native_fix_fee_usd = Column(Float, nullable=True) percent_fee = Column(Numeric(30, 0), nullable=False) percent_fee_usd = Column(Float, nullable=True) + # in debridge, percent_fee is usually 0.04% and goes to the protocol (paid on the src chain) + # native_fee depends on the blockchain and goes to the protocol + # native_fee + percent_fee + give_amount = total cost of the transaction for the user + def __init__( self, src_blockchain, @@ -310,6 +330,7 @@ def __init__( src_from_address, src_to_address, src_fee, + src_value, src_fee_usd, src_timestamp, dst_blockchain, @@ -317,16 +338,35 @@ def __init__( dst_from_address, dst_to_address, dst_fee, + dst_value, dst_fee_usd, dst_timestamp, + refund_blockchain, + refund_transaction_hash, + refund_from_address, + refund_to_address, + refund_fee, + refund_value, + refund_fee_usd, + refund_timestamp, + intent_id, depositor, recipient, src_contract_address, dst_contract_address, input_amount, input_amount_usd, + middle_src_token, + middle_src_amount, + middle_src_amount_usd, + middle_dst_token, + middle_dst_amount, + middle_dst_amount_usd, output_amount, output_amount_usd, + refund_amount, + refund_amount_usd, + refund_token, native_fix_fee, native_fix_fee_usd, percent_fee, @@ -337,6 +377,7 @@ def __init__( self.src_from_address = src_from_address self.src_to_address = src_to_address self.src_fee = src_fee + self.src_value = src_value self.src_fee_usd = src_fee_usd self.src_timestamp = src_timestamp self.dst_blockchain = dst_blockchain @@ -344,47 +385,36 @@ def __init__( self.dst_from_address = dst_from_address self.dst_to_address = dst_to_address self.dst_fee = dst_fee + self.dst_value = dst_value self.dst_fee_usd = dst_fee_usd self.dst_timestamp = dst_timestamp + self.refund_blockchain = refund_blockchain + self.refund_transaction_hash = refund_transaction_hash + self.refund_from_address = refund_from_address + self.refund_to_address = refund_to_address + self.refund_fee = refund_fee + self.refund_value = refund_value + self.refund_fee_usd = refund_fee_usd + self.refund_timestamp = refund_timestamp + self.intent_id = intent_id self.depositor = depositor self.recipient = recipient self.src_contract_address = src_contract_address self.dst_contract_address = dst_contract_address self.input_amount = input_amount self.input_amount_usd = input_amount_usd + self.middle_src_token = middle_src_token + self.middle_src_amount = middle_src_amount + self.middle_src_amount_usd = middle_src_amount_usd + self.middle_dst_token = middle_dst_token + self.middle_dst_amount = middle_dst_amount + self.middle_dst_amount_usd = middle_dst_amount_usd self.output_amount = output_amount self.output_amount_usd = output_amount_usd + self.refund_amount = refund_amount + self.refund_amount_usd = refund_amount_usd + self.refund_token = refund_token self.native_fix_fee = native_fix_fee self.native_fix_fee_usd = native_fix_fee_usd self.percent_fee = percent_fee self.percent_fee_usd = percent_fee_usd - - def __repr__(self): - return ( - f"" - ) diff --git a/repository/debridge/repository.py b/repository/debridge/repository.py index d448e71..96f5c7c 100644 --- a/repository/debridge/repository.py +++ b/repository/debridge/repository.py @@ -1,4 +1,4 @@ -from sqlalchemy import func +from sqlalchemy import Index, func from repository.base import BaseRepository @@ -8,7 +8,6 @@ DeBridgeCreatedOrder, DeBridgeCrossChainTransactions, DeBridgeFulfilledOrder, - DeBridgeSentOrderUnlock, ) @@ -33,14 +32,22 @@ class DeBridgeCreatedOrderRepository(BaseRepository): def __init__(self, session_factory): super().__init__(DeBridgeCreatedOrder, session_factory) - def event_exists(self, order_id: str): + def event_exists(self, maker_order_nonce: str): with self.get_session() as session: return ( session.query(DeBridgeCreatedOrder) - .filter(DeBridgeCreatedOrder.order_id == order_id) + .filter(DeBridgeCreatedOrder.maker_order_nonce == maker_order_nonce) .first() ) + def update_middle_info_order_fulfilled( + self, order_id: str, middle_src_token: str, middle_src_amount: float + ): + with self.get_session() as session: + session.query(DeBridgeCreatedOrder).filter( + DeBridgeCreatedOrder.order_id == order_id + ).update({"original_token": middle_src_token, "original_amount": middle_src_amount}) + class DeBridgeFulfilledOrderRepository(BaseRepository): def __init__(self, session_factory): @@ -54,6 +61,14 @@ def event_exists(self, order_id: str): .first() ) + def update_middle_info_order_fulfilled( + self, order_id: str, middle_dst_token: str, middle_dst_amount: float + ): + with self.get_session() as session: + session.query(DeBridgeFulfilledOrder).filter( + DeBridgeFulfilledOrder.order_id == order_id + ).update({"middle_dst_token": middle_dst_token, "middle_dst_amount": middle_dst_amount}) + class DeBridgeClaimedUnlockRepository(BaseRepository): def __init__(self, session_factory): @@ -68,19 +83,6 @@ def event_exists(self, order_id: str): ) -class DeBridgeSentOrderUnlockRepository(BaseRepository): - def __init__(self, session_factory): - super().__init__(DeBridgeSentOrderUnlock, session_factory) - - def event_exists(self, order_id: str): - with self.get_session() as session: - return ( - session.query(DeBridgeSentOrderUnlock) - .filter(DeBridgeSentOrderUnlock.order_id == order_id) - .first() - ) - - ########## Processed Data ########## @@ -90,7 +92,7 @@ def __init__(self, session_factory): def get_number_of_records(self): with self.get_session() as session: - return session.query(func.count(DeBridgeCrossChainTransactions.id)).scalar() + return session.query(func.count(DeBridgeCrossChainTransactions.intent_id)).scalar() def empty_table(self): with self.get_session() as session: @@ -133,3 +135,6 @@ def get_total_amount_usd_transacted(self): return session.query( func.sum(DeBridgeCrossChainTransactions.output_amount_usd) ).scalar() + + +Index("idx_debridge_created_order_maker_order_nonce", DeBridgeCreatedOrder.maker_order_nonce) diff --git a/repository/mayan/models.py b/repository/mayan/models.py index 2466ed0..97e7366 100644 --- a/repository/mayan/models.py +++ b/repository/mayan/models.py @@ -848,6 +848,14 @@ class MayanCrossChainTransaction(Base): auction_first_bid_timestamp = Column(BigInteger, nullable=True) auction_last_bid_timestamp = Column(BigInteger, nullable=True) auction_number_of_bids = Column(Integer, nullable=True) + native_fix_fee = Column(Numeric(30, 0), nullable=False) + native_fix_fee_usd = Column(Float, nullable=True) + percent_fee = Column(Numeric(30, 0), nullable=False) + percent_fee_usd = Column(Float, nullable=True) + + # in mayan, percent_fee is usually 0.03% and goes to the protocol (paid on the dst chain) + # there is no fix fee (native_fix_fee) + # native_fee + percent_fee + give_amount = total cost of the transaction for the user def __init__( self, @@ -897,6 +905,10 @@ def __init__( auction_first_bid_timestamp, auction_last_bid_timestamp, auction_number_of_bids, + native_fix_fee, + native_fix_fee_usd, + percent_fee, + percent_fee_usd, ): self.src_blockchain = src_blockchain self.src_transaction_hash = src_transaction_hash @@ -944,3 +956,7 @@ def __init__( self.auction_first_bid_timestamp = auction_first_bid_timestamp self.auction_last_bid_timestamp = auction_last_bid_timestamp self.auction_number_of_bids = auction_number_of_bids + self.native_fix_fee = native_fix_fee + self.native_fix_fee_usd = native_fix_fee_usd + self.percent_fee = percent_fee + self.percent_fee_usd = percent_fee_usd diff --git a/requirements.txt b/requirements.txt index 4b5573b..8e8e499 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ -aiohappyeyeballs==2.4.4 -aiohttp==3.12.14 -aiosignal==1.3.1 +aiohappyeyeballs==2.5.0 +aiohttp==3.11.9 +aiosignal==1.4.0 annotated-types==0.7.0 appnope==0.1.4 asttokens==3.0.0 diff --git a/rpcs/rpc_client.py b/rpcs/rpc_client.py index 931af21..e2f99d9 100644 --- a/rpcs/rpc_client.py +++ b/rpcs/rpc_client.py @@ -123,7 +123,7 @@ def make_request(self, rpc_url: str, blockchain_name: str, method: str, params: f"{backoff} seconds.", ), ) - backoff = (backoff * 2) if backoff < 30 else 0 + backoff = (backoff * 2) if backoff < 30 else 30 except Exception as e: raise CustomException( diff --git a/tests/debridge/test_data_extraction.py b/tests/debridge/test_data_extraction.py index 9555b1b..9e3afb5 100644 --- a/tests/debridge/test_data_extraction.py +++ b/tests/debridge/test_data_extraction.py @@ -18,7 +18,6 @@ def test_extract_data(): DeBridgeClaimedUnlockRepository, DeBridgeCreatedOrderRepository, DeBridgeFulfilledOrderRepository, - DeBridgeSentOrderUnlockRepository, ) debridge_created_order_repo = DeBridgeCreatedOrderRepository(DBSession) @@ -29,12 +28,6 @@ def test_extract_data(): events = debridge_fulfilled_order_repo.get_all() print(f"Number of events in DeBridgeFulfilledOrder: {len(events)}") assert len(events) == 71, "Expected 71 events in DeBridgeFulfilledOrder table after extraction." - debridge_sent_order_unlock_repo = DeBridgeSentOrderUnlockRepository(DBSession) - events = debridge_sent_order_unlock_repo.get_all() - print(f"Number of events in DeBridgeSentOrderUnlock: {len(events)}") - assert len(events) == 147, ( - "Expected 147 events in DeBridgeSentOrderUnlock table after extraction." - ) debridge_claimed_unlock_repo = DeBridgeClaimedUnlockRepository(DBSession) events = debridge_claimed_unlock_repo.get_all() print(f"Number of events in DeBridgeClaimedUnlock: {len(events)}") diff --git a/utils/utils.py b/utils/utils.py index 756335f..ba6ac33 100644 --- a/utils/utils.py +++ b/utils/utils.py @@ -108,6 +108,9 @@ def unpad_address(padded_address) -> str: def convert_32_byte_array_to_evm_address(buffer: list) -> str: + if buffer is None: + return None + return unpad_address(bytes(buffer).hex())