diff --git a/cross-chain/base/.openzeppelin/base-sepolia.json b/cross-chain/base/.openzeppelin/base-sepolia.json new file mode 100644 index 000000000..de4932117 --- /dev/null +++ b/cross-chain/base/.openzeppelin/base-sepolia.json @@ -0,0 +1,142 @@ +{ + "manifestVersion": "3.2", + "admin": { + "address": "0xD5D30Fafca5A5D371A46F77CACC4dB5F811Ef917", + "txHash": "0xd5aa149d61c364bf7e5c468c2856471fe31c673e891d96fe68379ba09b3b2722" + }, + "proxies": [ + { + "address": "0xF462413315Ee37AEBD0f5cA4296D9F3F3D9C4A59", + "txHash": "0xa6892c4e53e8343bbfbf53c2968a2bd833f1526811c5e7cb4eb71e1254a6dc49", + "kind": "transparent" + }, + { + "address": "0x4dC7F374226FDe3395fEdDF4A591F6bfc02Ef9Cf", + "txHash": "0x71ab0fe261eb0384d92fa4867462ddec5da79471b4dbeb91d3910baab5bd76b6", + "kind": "transparent" + } + ], + "impls": { + "6f8a080eb3d81df72370bb32bfb791d146b0b8bb3ffba9da54d6a2155f00b013": { + "address": "0x1Fe7385497a45191C5321FDd903d880491e47dD7", + "txHash": "0x785a8e7c33b6adf9cf95e4f5a9b324959443125dc4a82d939976f1f78e79f10b", + "layout": { + "solcVersion": "0.8.17", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "1", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "51", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "52", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:94" + }, + { + "label": "wormholeRelayer", + "offset": 0, + "slot": "101", + "type": "t_contract(IWormholeRelayer)4663", + "contract": "L2BitcoinDepositor", + "src": "contracts/arbitrumSepolia/L2BitcoinDepositor.sol:55" + }, + { + "label": "l2WormholeGateway", + "offset": 0, + "slot": "102", + "type": "t_contract(IL2WormholeGateway)4393", + "contract": "L2BitcoinDepositor", + "src": "contracts/arbitrumSepolia/L2BitcoinDepositor.sol:59" + }, + { + "label": "l1ChainId", + "offset": 20, + "slot": "102", + "type": "t_uint16", + "contract": "L2BitcoinDepositor", + "src": "contracts/arbitrumSepolia/L2BitcoinDepositor.sol:65" + }, + { + "label": "l1BitcoinDepositor", + "offset": 0, + "slot": "103", + "type": "t_address", + "contract": "L2BitcoinDepositor", + "src": "contracts/arbitrumSepolia/L2BitcoinDepositor.sol:68" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_contract(IL2WormholeGateway)4393": { + "label": "contract IL2WormholeGateway", + "numberOfBytes": "20" + }, + "t_contract(IWormholeRelayer)4663": { + "label": "contract IWormholeRelayer", + "numberOfBytes": "20" + }, + "t_uint16": { + "label": "uint16", + "numberOfBytes": "2" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + } + }, + "namespaces": {} + } + } + } +} diff --git a/cross-chain/base/.openzeppelin/sepolia.json b/cross-chain/base/.openzeppelin/sepolia.json index a088e7559..a759b3512 100644 --- a/cross-chain/base/.openzeppelin/sepolia.json +++ b/cross-chain/base/.openzeppelin/sepolia.json @@ -1,20 +1,635 @@ { "manifestVersion": "3.2", "admin": { - "address": "0xDd0007713CB99564B7835FD628A1718e8F9f9785", - "txHash": "0x078036699e010480a0d2a4c443352cf0f6311f8882dddcf0b4c6c5136bcc69b4" + "address": "0x8d58747Ef805317270FF7f8E51a8018d3488b17b", + "txHash": "0xe630831df51a6aa2450319e27805b6e3d0d42a5dc32ebac235d480e8e5e099bc" }, "proxies": [ { - "address": "0x0c5e36731008f4AFC1AF5Da2C4D5E07eE4a3EB69", - "txHash": "0x5a405183332f623649fcf19f8506cf2582882d5dc2b05582e0066388ef122229", + "address": "0xD9B523fb879C63b00ef14e48C98f4e3398d3BA2D", + "txHash": "0x2673ee5eb6ce999663c7897ab29bf0e0fda955dccc1f7d374968322d0148ade3", + "kind": "transparent" + }, + { + "address": "0x37169570D846Cc05D5848AAA30194d308b355638", + "txHash": "0xa484c7875f4a2f5e387316cc4490e348767004e351a2d0b312fd32eb509d0f96", + "kind": "transparent" + }, + { + "address": "0xD5D30Fafca5A5D371A46F77CACC4dB5F811Ef917", + "txHash": "0x5be509b38378594b96da0ef547989a2c2b42d6bc2a12809e4d217a1ab6edabaf", + "kind": "transparent" + }, + { + "address": "0x39dd60293D1D435aEFa75c3773b92D86Cd47c582", + "txHash": "0x79e534abfe3409af61a5d2454c1527c17c165854926254a866dc6a2d8d802fd9", "kind": "transparent" } ], "impls": { - "e1501c59bd3fc7501392b17ad132c0ef733008f7128caa90d854edd898c505ec": { - "address": "0x720Cb49A8b3c03E199075544F7f1F4d772Dd6d06", - "txHash": "0xf055a10c164376e93258e15ff257e76fc8eff5a737820237271a8fb3e3506fe4", + "474c94a50caf8a2aedb92298fbb65c5eaea664750bb7a73a96d07ac8f5f96b49": { + "address": "0xf90292a39014033DE50c81f651365cB6A1040Bb6", + "txHash": "0x4a2e3dab4d5c32c7a1370bf0325f09380188d28987bd5861659dcc2773ecefa9", + "layout": { + "solcVersion": "0.8.17", + "storage": [ + { + "label": "_initialized", + "offset": 0, + "slot": "0", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin\\contracts-upgradeable\\proxy\\utils\\Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "0", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin\\contracts-upgradeable\\proxy\\utils\\Initializable.sol:68" + }, + { + "label": "bridge", + "offset": 2, + "slot": "0", + "type": "t_contract(IBridge)5228", + "contract": "AbstractTBTCDepositor", + "src": "contracts\\integrator\\AbstractTBTCDepositor.sol:95" + }, + { + "label": "tbtcVault", + "offset": 0, + "slot": "1", + "type": "t_contract(ITBTCVault)5254", + "contract": "AbstractTBTCDepositor", + "src": "contracts\\integrator\\AbstractTBTCDepositor.sol:96" + }, + { + "label": "__gap", + "offset": 0, + "slot": "2", + "type": "t_array(t_uint256)47_storage", + "contract": "AbstractTBTCDepositor", + "src": "contracts\\integrator\\AbstractTBTCDepositor.sol:111" + }, + { + "label": "__gap", + "offset": 0, + "slot": "49", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin\\contracts-upgradeable\\utils\\ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "99", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin\\contracts-upgradeable\\access\\OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "100", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin\\contracts-upgradeable\\access\\OwnableUpgradeable.sol:94" + }, + { + "label": "reimbursementPool", + "offset": 0, + "slot": "149", + "type": "t_contract(ReimbursementPool)2999", + "contract": "Reimbursable", + "src": "@keep-network\\random-beacon\\contracts\\Reimbursable.sol:51" + }, + { + "label": "__gap", + "offset": 0, + "slot": "150", + "type": "t_array(t_uint256)49_storage", + "contract": "Reimbursable", + "src": "@keep-network\\random-beacon\\contracts\\Reimbursable.sol:51" + }, + { + "label": "deposits", + "offset": 0, + "slot": "199", + "type": "t_mapping(t_uint256,t_enum(DepositState)5281)", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:112" + }, + { + "label": "tbtcToken", + "offset": 0, + "slot": "200", + "type": "t_contract(IERC20Upgradeable)3379", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:114" + }, + { + "label": "wormhole", + "offset": 0, + "slot": "201", + "type": "t_contract(IWormhole)6103", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:116" + }, + { + "label": "wormholeRelayer", + "offset": 0, + "slot": "202", + "type": "t_contract(IWormholeRelayer)6143", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:117" + }, + { + "label": "wormholeTokenBridge", + "offset": 0, + "slot": "203", + "type": "t_contract(IWormholeTokenBridge)6228", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:119" + }, + { + "label": "l2WormholeGateway", + "offset": 0, + "slot": "204", + "type": "t_address", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:120" + }, + { + "label": "l2ChainId", + "offset": 20, + "slot": "204", + "type": "t_uint16", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:122" + }, + { + "label": "l2BitcoinDepositor", + "offset": 0, + "slot": "205", + "type": "t_address", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:124" + }, + { + "label": "l2FinalizeDepositGasLimit", + "offset": 0, + "slot": "206", + "type": "t_uint256", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:129" + }, + { + "label": "gasReimbursements", + "offset": 0, + "slot": "207", + "type": "t_mapping(t_uint256,t_struct(GasReimbursement)5288_storage)", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:138" + }, + { + "label": "initializeDepositGasOffset", + "offset": 0, + "slot": "208", + "type": "t_uint256", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:141" + }, + { + "label": "finalizeDepositGasOffset", + "offset": 0, + "slot": "209", + "type": "t_uint256", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:148" + }, + { + "label": "reimbursementAuthorizations", + "offset": 0, + "slot": "210", + "type": "t_mapping(t_address,t_bool)", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:158" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)47_storage": { + "label": "uint256[47]", + "numberOfBytes": "1504" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_contract(IBridge)5228": { + "label": "contract IBridge", + "numberOfBytes": "20" + }, + "t_contract(IERC20Upgradeable)3379": { + "label": "contract IERC20Upgradeable", + "numberOfBytes": "20" + }, + "t_contract(ITBTCVault)5254": { + "label": "contract ITBTCVault", + "numberOfBytes": "20" + }, + "t_contract(IWormhole)6103": { + "label": "contract IWormhole", + "numberOfBytes": "20" + }, + "t_contract(IWormholeRelayer)6143": { + "label": "contract IWormholeRelayer", + "numberOfBytes": "20" + }, + "t_contract(IWormholeTokenBridge)6228": { + "label": "contract IWormholeTokenBridge", + "numberOfBytes": "20" + }, + "t_contract(ReimbursementPool)2999": { + "label": "contract ReimbursementPool", + "numberOfBytes": "20" + }, + "t_enum(DepositState)5281": { + "label": "enum L1BitcoinDepositor.DepositState", + "members": [ + "Unknown", + "Initialized", + "Finalized" + ], + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_enum(DepositState)5281)": { + "label": "mapping(uint256 => enum L1BitcoinDepositor.DepositState)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(GasReimbursement)5288_storage)": { + "label": "mapping(uint256 => struct L1BitcoinDepositor.GasReimbursement)", + "numberOfBytes": "32" + }, + "t_struct(GasReimbursement)5288_storage": { + "label": "struct L1BitcoinDepositor.GasReimbursement", + "members": [ + { + "label": "receiver", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "gasSpent", + "type": "t_uint96", + "offset": 20, + "slot": "0" + } + ], + "numberOfBytes": "32" + }, + "t_uint16": { + "label": "uint16", + "numberOfBytes": "2" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } + }, + "a6ee8e05616cabffb964a1fbfba6d1a425cf126ec5a864cdb7d7c660b3cde83e": { + "address": "0xFf79fca71751A5A0C4487a1aCE268d6cd2A64Db1", + "txHash": "0x238607f616e60d3f032fd6e81bde3652a843255334b78b841bc4365a827eec8e", + "layout": { + "solcVersion": "0.8.17", + "storage": [ + { + "label": "bridge", + "offset": 0, + "slot": "0", + "type": "t_contract(IBridge)5228", + "contract": "AbstractTBTCDepositor", + "src": "contracts\\integrator\\AbstractTBTCDepositor.sol:95" + }, + { + "label": "tbtcVault", + "offset": 0, + "slot": "1", + "type": "t_contract(ITBTCVault)5254", + "contract": "AbstractTBTCDepositor", + "src": "contracts\\integrator\\AbstractTBTCDepositor.sol:96" + }, + { + "label": "__gap", + "offset": 0, + "slot": "2", + "type": "t_array(t_uint256)47_storage", + "contract": "AbstractTBTCDepositor", + "src": "contracts\\integrator\\AbstractTBTCDepositor.sol:111" + }, + { + "label": "_initialized", + "offset": 0, + "slot": "49", + "type": "t_uint8", + "contract": "Initializable", + "src": "@openzeppelin\\contracts-upgradeable\\proxy\\utils\\Initializable.sol:63", + "retypedFrom": "bool" + }, + { + "label": "_initializing", + "offset": 1, + "slot": "49", + "type": "t_bool", + "contract": "Initializable", + "src": "@openzeppelin\\contracts-upgradeable\\proxy\\utils\\Initializable.sol:68" + }, + { + "label": "__gap", + "offset": 0, + "slot": "50", + "type": "t_array(t_uint256)50_storage", + "contract": "ContextUpgradeable", + "src": "@openzeppelin\\contracts-upgradeable\\utils\\ContextUpgradeable.sol:40" + }, + { + "label": "_owner", + "offset": 0, + "slot": "100", + "type": "t_address", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin\\contracts-upgradeable\\access\\OwnableUpgradeable.sol:22" + }, + { + "label": "__gap", + "offset": 0, + "slot": "101", + "type": "t_array(t_uint256)49_storage", + "contract": "OwnableUpgradeable", + "src": "@openzeppelin\\contracts-upgradeable\\access\\OwnableUpgradeable.sol:94" + }, + { + "label": "reimbursementPool", + "offset": 0, + "slot": "150", + "type": "t_contract(ReimbursementPool)2999", + "contract": "Reimbursable", + "src": "@keep-network\\random-beacon\\contracts\\Reimbursable.sol:51" + }, + { + "label": "__gap", + "offset": 0, + "slot": "151", + "type": "t_array(t_uint256)49_storage", + "contract": "Reimbursable", + "src": "@keep-network\\random-beacon\\contracts\\Reimbursable.sol:51" + }, + { + "label": "deposits", + "offset": 0, + "slot": "200", + "type": "t_mapping(t_uint256,t_enum(DepositState)5279)", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:111" + }, + { + "label": "tbtcToken", + "offset": 0, + "slot": "201", + "type": "t_contract(IERC20Upgradeable)3379", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:113" + }, + { + "label": "wormhole", + "offset": 0, + "slot": "202", + "type": "t_contract(IWormhole)6117", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:115" + }, + { + "label": "wormholeRelayer", + "offset": 0, + "slot": "203", + "type": "t_contract(IWormholeRelayer)6157", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:116" + }, + { + "label": "wormholeTokenBridge", + "offset": 0, + "slot": "204", + "type": "t_contract(IWormholeTokenBridge)6242", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:117" + }, + { + "label": "l2WormholeGateway", + "offset": 0, + "slot": "205", + "type": "t_address", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:119" + }, + { + "label": "l2ChainId", + "offset": 20, + "slot": "205", + "type": "t_uint16", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:121" + }, + { + "label": "l2BitcoinDepositor", + "offset": 0, + "slot": "206", + "type": "t_address", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:123" + }, + { + "label": "l2FinalizeDepositGasLimit", + "offset": 0, + "slot": "207", + "type": "t_uint256", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:128" + }, + { + "label": "gasReimbursements", + "offset": 0, + "slot": "208", + "type": "t_mapping(t_uint256,t_struct(GasReimbursement)5286_storage)", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:137" + }, + { + "label": "initializeDepositGasOffset", + "offset": 0, + "slot": "209", + "type": "t_uint256", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:140" + }, + { + "label": "finalizeDepositGasOffset", + "offset": 0, + "slot": "210", + "type": "t_uint256", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:146" + }, + { + "label": "reimbursementAuthorizations", + "offset": 0, + "slot": "211", + "type": "t_mapping(t_address,t_bool)", + "contract": "L1BitcoinDepositor", + "src": "contracts\\sepolia\\L1BitcoinDepositor.sol:157" + } + ], + "types": { + "t_address": { + "label": "address", + "numberOfBytes": "20" + }, + "t_array(t_uint256)47_storage": { + "label": "uint256[47]", + "numberOfBytes": "1504" + }, + "t_array(t_uint256)49_storage": { + "label": "uint256[49]", + "numberOfBytes": "1568" + }, + "t_array(t_uint256)50_storage": { + "label": "uint256[50]", + "numberOfBytes": "1600" + }, + "t_bool": { + "label": "bool", + "numberOfBytes": "1" + }, + "t_contract(IBridge)5228": { + "label": "contract IBridge", + "numberOfBytes": "20" + }, + "t_contract(IERC20Upgradeable)3379": { + "label": "contract IERC20Upgradeable", + "numberOfBytes": "20" + }, + "t_contract(ITBTCVault)5254": { + "label": "contract ITBTCVault", + "numberOfBytes": "20" + }, + "t_contract(IWormhole)6117": { + "label": "contract IWormhole", + "numberOfBytes": "20" + }, + "t_contract(IWormholeRelayer)6157": { + "label": "contract IWormholeRelayer", + "numberOfBytes": "20" + }, + "t_contract(IWormholeTokenBridge)6242": { + "label": "contract IWormholeTokenBridge", + "numberOfBytes": "20" + }, + "t_contract(ReimbursementPool)2999": { + "label": "contract ReimbursementPool", + "numberOfBytes": "20" + }, + "t_enum(DepositState)5279": { + "label": "enum L1BitcoinDepositor.DepositState", + "members": [ + "Unknown", + "Initialized", + "Finalized" + ], + "numberOfBytes": "1" + }, + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_enum(DepositState)5279)": { + "label": "mapping(uint256 => enum L1BitcoinDepositor.DepositState)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_struct(GasReimbursement)5286_storage)": { + "label": "mapping(uint256 => struct L1BitcoinDepositor.GasReimbursement)", + "numberOfBytes": "32" + }, + "t_struct(GasReimbursement)5286_storage": { + "label": "struct L1BitcoinDepositor.GasReimbursement", + "members": [ + { + "label": "receiver", + "type": "t_address", + "offset": 0, + "slot": "0" + }, + { + "label": "gasSpent", + "type": "t_uint96", + "offset": 20, + "slot": "0" + } + ], + "numberOfBytes": "32" + }, + "t_uint16": { + "label": "uint16", + "numberOfBytes": "2" + }, + "t_uint256": { + "label": "uint256", + "numberOfBytes": "32" + }, + "t_uint8": { + "label": "uint8", + "numberOfBytes": "1" + }, + "t_uint96": { + "label": "uint96", + "numberOfBytes": "12" + } + }, + "namespaces": {} + } + }, + "6d2ea0a2785b57debf45e9592947c1b943a6374b14fb50fc4d08666d1fd2ee9e": { + "address": "0x1Fe7385497a45191C5321FDd903d880491e47dD7", + "txHash": "0xf81b5f159c6e0cfb4ea14a57411688282810e8c6335eadf9d5ea8aa2c5af2752", "layout": { "solcVersion": "0.8.17", "storage": [ @@ -22,17 +637,17 @@ "label": "bridge", "offset": 0, "slot": "0", - "type": "t_contract(IBridge)3414", + "type": "t_contract(IBridge)5228", "contract": "AbstractTBTCDepositor", - "src": "@keep-network/tbtc-v2/contracts/integrator/AbstractTBTCDepositor.sol:95" + "src": "contracts/integrator/AbstractTBTCDepositor.sol:95" }, { "label": "tbtcVault", "offset": 0, "slot": "1", - "type": "t_contract(ITBTCVault)3440", + "type": "t_contract(ITBTCVault)5254", "contract": "AbstractTBTCDepositor", - "src": "@keep-network/tbtc-v2/contracts/integrator/AbstractTBTCDepositor.sol:96" + "src": "contracts/integrator/AbstractTBTCDepositor.sol:96" }, { "label": "__gap", @@ -40,7 +655,7 @@ "slot": "2", "type": "t_array(t_uint256)47_storage", "contract": "AbstractTBTCDepositor", - "src": "@keep-network/tbtc-v2/contracts/integrator/AbstractTBTCDepositor.sol:111" + "src": "contracts/integrator/AbstractTBTCDepositor.sol:111" }, { "label": "_initialized", @@ -48,7 +663,7 @@ "slot": "49", "type": "t_uint8", "contract": "Initializable", - "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:62", + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:63", "retypedFrom": "bool" }, { @@ -57,7 +672,7 @@ "slot": "49", "type": "t_bool", "contract": "Initializable", - "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:67" + "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:68" }, { "label": "__gap", @@ -65,7 +680,7 @@ "slot": "50", "type": "t_array(t_uint256)50_storage", "contract": "ContextUpgradeable", - "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:36" + "src": "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol:40" }, { "label": "_owner", @@ -103,41 +718,41 @@ "label": "deposits", "offset": 0, "slot": "200", - "type": "t_mapping(t_uint256,t_enum(DepositState)3465)", + "type": "t_mapping(t_uint256,t_enum(DepositState)5279)", "contract": "L1BitcoinDepositor", - "src": "@keep-network/tbtc-v2/contracts/l2/L1BitcoinDepositor.sol:111" + "src": "contracts/sepolia/L1BitcoinDepositor.sol:111" }, { "label": "tbtcToken", "offset": 0, "slot": "201", - "type": "t_contract(IERC20Upgradeable)6699", + "type": "t_contract(IERC20Upgradeable)3379", "contract": "L1BitcoinDepositor", - "src": "@keep-network/tbtc-v2/contracts/l2/L1BitcoinDepositor.sol:113" + "src": "contracts/sepolia/L1BitcoinDepositor.sol:113" }, { "label": "wormhole", "offset": 0, "slot": "202", - "type": "t_contract(IWormhole)5318", + "type": "t_contract(IWormhole)6149", "contract": "L1BitcoinDepositor", - "src": "@keep-network/tbtc-v2/contracts/l2/L1BitcoinDepositor.sol:115" + "src": "contracts/sepolia/L1BitcoinDepositor.sol:115" }, { "label": "wormholeRelayer", "offset": 0, "slot": "203", - "type": "t_contract(IWormholeRelayer)5358", + "type": "t_contract(IWormholeRelayer)6189", "contract": "L1BitcoinDepositor", - "src": "@keep-network/tbtc-v2/contracts/l2/L1BitcoinDepositor.sol:116" + "src": "contracts/sepolia/L1BitcoinDepositor.sol:116" }, { "label": "wormholeTokenBridge", "offset": 0, "slot": "204", - "type": "t_contract(IWormholeTokenBridge)5443", + "type": "t_contract(IWormholeTokenBridge)6274", "contract": "L1BitcoinDepositor", - "src": "@keep-network/tbtc-v2/contracts/l2/L1BitcoinDepositor.sol:118" + "src": "contracts/sepolia/L1BitcoinDepositor.sol:118" }, { "label": "l2WormholeGateway", @@ -145,7 +760,7 @@ "slot": "205", "type": "t_address", "contract": "L1BitcoinDepositor", - "src": "@keep-network/tbtc-v2/contracts/l2/L1BitcoinDepositor.sol:119" + "src": "contracts/sepolia/L1BitcoinDepositor.sol:119" }, { "label": "l2ChainId", @@ -153,7 +768,7 @@ "slot": "205", "type": "t_uint16", "contract": "L1BitcoinDepositor", - "src": "@keep-network/tbtc-v2/contracts/l2/L1BitcoinDepositor.sol:121" + "src": "contracts/sepolia/L1BitcoinDepositor.sol:121" }, { "label": "l2BitcoinDepositor", @@ -161,7 +776,7 @@ "slot": "206", "type": "t_address", "contract": "L1BitcoinDepositor", - "src": "@keep-network/tbtc-v2/contracts/l2/L1BitcoinDepositor.sol:123" + "src": "contracts/sepolia/L1BitcoinDepositor.sol:123" }, { "label": "l2FinalizeDepositGasLimit", @@ -169,15 +784,15 @@ "slot": "207", "type": "t_uint256", "contract": "L1BitcoinDepositor", - "src": "@keep-network/tbtc-v2/contracts/l2/L1BitcoinDepositor.sol:128" + "src": "contracts/sepolia/L1BitcoinDepositor.sol:128" }, { "label": "gasReimbursements", "offset": 0, "slot": "208", - "type": "t_mapping(t_uint256,t_struct(GasReimbursement)3472_storage)", + "type": "t_mapping(t_uint256,t_struct(GasReimbursement)5286_storage)", "contract": "L1BitcoinDepositor", - "src": "@keep-network/tbtc-v2/contracts/l2/L1BitcoinDepositor.sol:137" + "src": "contracts/sepolia/L1BitcoinDepositor.sol:137" }, { "label": "initializeDepositGasOffset", @@ -185,7 +800,7 @@ "slot": "209", "type": "t_uint256", "contract": "L1BitcoinDepositor", - "src": "@keep-network/tbtc-v2/contracts/l2/L1BitcoinDepositor.sol:146" + "src": "contracts/sepolia/L1BitcoinDepositor.sol:140" }, { "label": "finalizeDepositGasOffset", @@ -193,7 +808,23 @@ "slot": "210", "type": "t_uint256", "contract": "L1BitcoinDepositor", - "src": "@keep-network/tbtc-v2/contracts/l2/L1BitcoinDepositor.sol:153" + "src": "contracts/sepolia/L1BitcoinDepositor.sol:144" + }, + { + "label": "reimbursementAuthorizations", + "offset": 0, + "slot": "211", + "type": "t_mapping(t_address,t_bool)", + "contract": "L1BitcoinDepositor", + "src": "contracts/sepolia/L1BitcoinDepositor.sol:150" + }, + { + "label": "reimburseTxMaxFee", + "offset": 0, + "slot": "212", + "type": "t_bool", + "contract": "L1BitcoinDepositor", + "src": "contracts/sepolia/L1BitcoinDepositor.sol:165" } ], "types": { @@ -217,27 +848,27 @@ "label": "bool", "numberOfBytes": "1" }, - "t_contract(IBridge)3414": { + "t_contract(IBridge)5228": { "label": "contract IBridge", "numberOfBytes": "20" }, - "t_contract(IERC20Upgradeable)6699": { + "t_contract(IERC20Upgradeable)3379": { "label": "contract IERC20Upgradeable", "numberOfBytes": "20" }, - "t_contract(ITBTCVault)3440": { + "t_contract(ITBTCVault)5254": { "label": "contract ITBTCVault", "numberOfBytes": "20" }, - "t_contract(IWormhole)5318": { + "t_contract(IWormhole)6149": { "label": "contract IWormhole", "numberOfBytes": "20" }, - "t_contract(IWormholeRelayer)5358": { + "t_contract(IWormholeRelayer)6189": { "label": "contract IWormholeRelayer", "numberOfBytes": "20" }, - "t_contract(IWormholeTokenBridge)5443": { + "t_contract(IWormholeTokenBridge)6274": { "label": "contract IWormholeTokenBridge", "numberOfBytes": "20" }, @@ -245,7 +876,7 @@ "label": "contract ReimbursementPool", "numberOfBytes": "20" }, - "t_enum(DepositState)3465": { + "t_enum(DepositState)5279": { "label": "enum L1BitcoinDepositor.DepositState", "members": [ "Unknown", @@ -254,15 +885,19 @@ ], "numberOfBytes": "1" }, - "t_mapping(t_uint256,t_enum(DepositState)3465)": { + "t_mapping(t_address,t_bool)": { + "label": "mapping(address => bool)", + "numberOfBytes": "32" + }, + "t_mapping(t_uint256,t_enum(DepositState)5279)": { "label": "mapping(uint256 => enum L1BitcoinDepositor.DepositState)", "numberOfBytes": "32" }, - "t_mapping(t_uint256,t_struct(GasReimbursement)3472_storage)": { + "t_mapping(t_uint256,t_struct(GasReimbursement)5286_storage)": { "label": "mapping(uint256 => struct L1BitcoinDepositor.GasReimbursement)", "numberOfBytes": "32" }, - "t_struct(GasReimbursement)3472_storage": { + "t_struct(GasReimbursement)5286_storage": { "label": "struct L1BitcoinDepositor.GasReimbursement", "members": [ { @@ -296,7 +931,8 @@ "label": "uint96", "numberOfBytes": "12" } - } + }, + "namespaces": {} } } } diff --git a/cross-chain/base/deployments/baseSepolia/BaseL2BitcoinDepositor.json b/cross-chain/base/deployments/baseSepolia/BaseL2BitcoinDepositor.json index a4f4e4337..dc687fb70 100644 --- a/cross-chain/base/deployments/baseSepolia/BaseL2BitcoinDepositor.json +++ b/cross-chain/base/deployments/baseSepolia/BaseL2BitcoinDepositor.json @@ -1,5 +1,5 @@ { - "address": "0x04BE8F183572ec802aD26756F3E9398098700E76", + "address": "0x4dC7F374226FDe3395fEdDF4A591F6bfc02Ef9Cf", "abi": [ { "inputs": [], @@ -355,75 +355,75 @@ "type": "function" } ], - "transactionHash": "0xaeb9ee6679e0f96108788abffa9ed78c943c09565686dfdb826378e9bd1487df", + "transactionHash": "0x71ab0fe261eb0384d92fa4867462ddec5da79471b4dbeb91d3910baab5bd76b6", "receipt": { "to": null, - "from": "0x68ad60CC5e8f3B7cC53beaB321cf0e6036962dBc", - "contractAddress": "0x04BE8F183572ec802aD26756F3E9398098700E76", - "transactionIndex": 2, - "gasUsed": "704802", - "logsBloom": "0x00000000000000000000000000000000400000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000202000001000000000000000000000000000000000000020000000000000000000800000000800000000000000000000000400002000200000000000000000000000000000000000080000000000000800080000000000000000000000000000400000000000100000000000000000000000000000020000000000000000020040000000008000400000000000000000020000000000000000000080000000000000000000000000000000000000000400000", - "blockHash": "0xcb1f5aa73f2f63d359224b51e7abf66a431e3420daa6940b72a3a58dd5a00c85", - "transactionHash": "0xaeb9ee6679e0f96108788abffa9ed78c943c09565686dfdb826378e9bd1487df", + "from": "0x353C5c3DE81EDb53FFB398f6416f962b90ae8611", + "contractAddress": "0x4dC7F374226FDe3395fEdDF4A591F6bfc02Ef9Cf", + "transactionIndex": 28, + "gasUsed": "704872", + "logsBloom": "0x00000800000000000000000000000000400000000000000000800000000000020000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000002000001000000000000000000000000000000000000020000000000000000000800000000800000000000000000000000400000000000000000000000000000000000000000000084000004000000800000000000000000000000020000000400000000000200000000000000000000000000000020000000000000000000040000000000000400000000000010000020100000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0x926a4c7206d730a0f552b6ac95551464ec8919568cfd3b7735e01c9c64f89880", + "transactionHash": "0x71ab0fe261eb0384d92fa4867462ddec5da79471b4dbeb91d3910baab5bd76b6", "logs": [ { - "transactionIndex": 2, - "blockNumber": 7063584, - "transactionHash": "0xaeb9ee6679e0f96108788abffa9ed78c943c09565686dfdb826378e9bd1487df", - "address": "0x04BE8F183572ec802aD26756F3E9398098700E76", + "transactionIndex": 28, + "blockNumber": 21133582, + "transactionHash": "0x71ab0fe261eb0384d92fa4867462ddec5da79471b4dbeb91d3910baab5bd76b6", + "address": "0x4dC7F374226FDe3395fEdDF4A591F6bfc02Ef9Cf", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000001ecd87c8d510a7390a561ae0ac54fbe7e5125bcf" + "0x0000000000000000000000001fe7385497a45191c5321fdd903d880491e47dd7" ], "data": "0x", - "logIndex": 1, - "blockHash": "0xcb1f5aa73f2f63d359224b51e7abf66a431e3420daa6940b72a3a58dd5a00c85" + "logIndex": 86, + "blockHash": "0x926a4c7206d730a0f552b6ac95551464ec8919568cfd3b7735e01c9c64f89880" }, { - "transactionIndex": 2, - "blockNumber": 7063584, - "transactionHash": "0xaeb9ee6679e0f96108788abffa9ed78c943c09565686dfdb826378e9bd1487df", - "address": "0x04BE8F183572ec802aD26756F3E9398098700E76", + "transactionIndex": 28, + "blockNumber": 21133582, + "transactionHash": "0x71ab0fe261eb0384d92fa4867462ddec5da79471b4dbeb91d3910baab5bd76b6", + "address": "0x4dC7F374226FDe3395fEdDF4A591F6bfc02Ef9Cf", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000068ad60cc5e8f3b7cc53beab321cf0e6036962dbc" + "0x000000000000000000000000353c5c3de81edb53ffb398f6416f962b90ae8611" ], "data": "0x", - "logIndex": 2, - "blockHash": "0xcb1f5aa73f2f63d359224b51e7abf66a431e3420daa6940b72a3a58dd5a00c85" + "logIndex": 87, + "blockHash": "0x926a4c7206d730a0f552b6ac95551464ec8919568cfd3b7735e01c9c64f89880" }, { - "transactionIndex": 2, - "blockNumber": 7063584, - "transactionHash": "0xaeb9ee6679e0f96108788abffa9ed78c943c09565686dfdb826378e9bd1487df", - "address": "0x04BE8F183572ec802aD26756F3E9398098700E76", + "transactionIndex": 28, + "blockNumber": 21133582, + "transactionHash": "0x71ab0fe261eb0384d92fa4867462ddec5da79471b4dbeb91d3910baab5bd76b6", + "address": "0x4dC7F374226FDe3395fEdDF4A591F6bfc02Ef9Cf", "topics": [ "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" ], "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "logIndex": 3, - "blockHash": "0xcb1f5aa73f2f63d359224b51e7abf66a431e3420daa6940b72a3a58dd5a00c85" + "logIndex": 88, + "blockHash": "0x926a4c7206d730a0f552b6ac95551464ec8919568cfd3b7735e01c9c64f89880" }, { - "transactionIndex": 2, - "blockNumber": 7063584, - "transactionHash": "0xaeb9ee6679e0f96108788abffa9ed78c943c09565686dfdb826378e9bd1487df", - "address": "0x04BE8F183572ec802aD26756F3E9398098700E76", + "transactionIndex": 28, + "blockNumber": 21133582, + "transactionHash": "0x71ab0fe261eb0384d92fa4867462ddec5da79471b4dbeb91d3910baab5bd76b6", + "address": "0x4dC7F374226FDe3395fEdDF4A591F6bfc02Ef9Cf", "topics": [ "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b2f6c5b73239c39360ee0ea95047565dab13e3c7", - "logIndex": 4, - "blockHash": "0xcb1f5aa73f2f63d359224b51e7abf66a431e3420daa6940b72a3a58dd5a00c85" + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d5d30fafca5a5d371a46f77cacc4db5f811ef917", + "logIndex": 89, + "blockHash": "0x926a4c7206d730a0f552b6ac95551464ec8919568cfd3b7735e01c9c64f89880" } ], - "blockNumber": 7063584, - "cumulativeGasUsed": "804788", + "blockNumber": 21133582, + "cumulativeGasUsed": "4323019", "status": 1, "byzantium": true }, "numDeployments": 1, - "implementation": "0x1Ecd87C8D510A7390a561AE0Ac54FBe7e5125BcF", + "implementation": "0x1Fe7385497a45191C5321FDd903d880491e47dD7", "devdoc": "Contract deployed as upgradable proxy" } \ No newline at end of file diff --git a/cross-chain/base/deployments/sepolia/BaseL1BitcoinDepositor.json b/cross-chain/base/deployments/sepolia/BaseL1BitcoinDepositor.json index 1826e6b36..4c11de7b9 100644 --- a/cross-chain/base/deployments/sepolia/BaseL1BitcoinDepositor.json +++ b/cross-chain/base/deployments/sepolia/BaseL1BitcoinDepositor.json @@ -1,5 +1,5 @@ { - "address": "0x0c5e36731008f4AFC1AF5Da2C4D5E07eE4a3EB69", + "address": "0x39dd60293D1D435aEFa75c3773b92D86Cd47c582", "abi": [ { "inputs": [], @@ -132,6 +132,38 @@ "name": "OwnershipTransferred", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bool", + "name": "reimburseTxMaxFee", + "type": "bool" + } + ], + "name": "ReimburseTxMaxFeeUpdated", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "_address", + "type": "address" + }, + { + "indexed": false, + "internalType": "bool", + "name": "authorization", + "type": "bool" + } + ], + "name": "ReimbursementAuthorizationUpdated", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -464,6 +496,38 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "reimburseTxMaxFee", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "reimbursementAuthorizations", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [], "name": "reimbursementPool", @@ -484,6 +548,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "bool", + "name": "_reimburseTxMaxFee", + "type": "bool" + } + ], + "name": "setReimburseTxMaxFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], "name": "tbtcToken", @@ -554,6 +631,24 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "_address", + "type": "address" + }, + { + "internalType": "bool", + "name": "authorization", + "type": "bool" + } + ], + "name": "updateReimbursementAuthorization", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [ { @@ -607,75 +702,75 @@ "type": "function" } ], - "transactionHash": "0x5a405183332f623649fcf19f8506cf2582882d5dc2b05582e0066388ef122229", + "transactionHash": "0x79e534abfe3409af61a5d2454c1527c17c165854926254a866dc6a2d8d802fd9", "receipt": { "to": null, - "from": "0x68ad60CC5e8f3B7cC53beaB321cf0e6036962dBc", - "contractAddress": "0x0c5e36731008f4AFC1AF5Da2C4D5E07eE4a3EB69", - "transactionIndex": 94, - "gasUsed": "887851", - "logsBloom": "0x00000000000000000000000000000000400000000000000400800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000202000001000000000000000000000000000000000000020000000000000000000800000000800000000000000008000000400000000200000000000000000000000000000040000080000000000000800000000000000000000000000000000400000000000000000000000000000010000000000020000000000000200020040000000000000400000000000000000020000000000000000000000000000000100000000000000000000000000000000000", - "blockHash": "0x9d4a08d2b6fd26df76447aa1b5e0054686b1d462dc12be4d271dca1299060a2c", - "transactionHash": "0x5a405183332f623649fcf19f8506cf2582882d5dc2b05582e0066388ef122229", + "from": "0x353C5c3DE81EDb53FFB398f6416f962b90ae8611", + "contractAddress": "0x39dd60293D1D435aEFa75c3773b92D86Cd47c582", + "transactionIndex": 163, + "gasUsed": "890221", + "logsBloom": "0x00000800000000000000000000000000400000000000000000800000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000002000001000000000000000000000000000000000000020000000000000000000800000000800000000000200000000000400000000000000000000000000000000000000000000080000004000000800000000000000000000000020000000400000000000200000000000000000000000000000020000000000000000000040010000000000400000000000000000028100000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0xebac2a7b6d9da294a139a27df2e0eafcb489d3d24603dddf1ea85afa13ad31f0", + "transactionHash": "0x79e534abfe3409af61a5d2454c1527c17c165854926254a866dc6a2d8d802fd9", "logs": [ { - "transactionIndex": 94, - "blockNumber": 5441536, - "transactionHash": "0x5a405183332f623649fcf19f8506cf2582882d5dc2b05582e0066388ef122229", - "address": "0x0c5e36731008f4AFC1AF5Da2C4D5E07eE4a3EB69", + "transactionIndex": 163, + "blockNumber": 7585981, + "transactionHash": "0x79e534abfe3409af61a5d2454c1527c17c165854926254a866dc6a2d8d802fd9", + "address": "0x39dd60293D1D435aEFa75c3773b92D86Cd47c582", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x000000000000000000000000720cb49a8b3c03e199075544f7f1f4d772dd6d06" + "0x0000000000000000000000001fe7385497a45191c5321fdd903d880491e47dd7" ], "data": "0x", - "logIndex": 75, - "blockHash": "0x9d4a08d2b6fd26df76447aa1b5e0054686b1d462dc12be4d271dca1299060a2c" + "logIndex": 290, + "blockHash": "0xebac2a7b6d9da294a139a27df2e0eafcb489d3d24603dddf1ea85afa13ad31f0" }, { - "transactionIndex": 94, - "blockNumber": 5441536, - "transactionHash": "0x5a405183332f623649fcf19f8506cf2582882d5dc2b05582e0066388ef122229", - "address": "0x0c5e36731008f4AFC1AF5Da2C4D5E07eE4a3EB69", + "transactionIndex": 163, + "blockNumber": 7585981, + "transactionHash": "0x79e534abfe3409af61a5d2454c1527c17c165854926254a866dc6a2d8d802fd9", + "address": "0x39dd60293D1D435aEFa75c3773b92D86Cd47c582", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000068ad60cc5e8f3b7cc53beab321cf0e6036962dbc" + "0x000000000000000000000000353c5c3de81edb53ffb398f6416f962b90ae8611" ], "data": "0x", - "logIndex": 76, - "blockHash": "0x9d4a08d2b6fd26df76447aa1b5e0054686b1d462dc12be4d271dca1299060a2c" + "logIndex": 291, + "blockHash": "0xebac2a7b6d9da294a139a27df2e0eafcb489d3d24603dddf1ea85afa13ad31f0" }, { - "transactionIndex": 94, - "blockNumber": 5441536, - "transactionHash": "0x5a405183332f623649fcf19f8506cf2582882d5dc2b05582e0066388ef122229", - "address": "0x0c5e36731008f4AFC1AF5Da2C4D5E07eE4a3EB69", + "transactionIndex": 163, + "blockNumber": 7585981, + "transactionHash": "0x79e534abfe3409af61a5d2454c1527c17c165854926254a866dc6a2d8d802fd9", + "address": "0x39dd60293D1D435aEFa75c3773b92D86Cd47c582", "topics": [ "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" ], "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "logIndex": 77, - "blockHash": "0x9d4a08d2b6fd26df76447aa1b5e0054686b1d462dc12be4d271dca1299060a2c" + "logIndex": 292, + "blockHash": "0xebac2a7b6d9da294a139a27df2e0eafcb489d3d24603dddf1ea85afa13ad31f0" }, { - "transactionIndex": 94, - "blockNumber": 5441536, - "transactionHash": "0x5a405183332f623649fcf19f8506cf2582882d5dc2b05582e0066388ef122229", - "address": "0x0c5e36731008f4AFC1AF5Da2C4D5E07eE4a3EB69", + "transactionIndex": 163, + "blockNumber": 7585981, + "transactionHash": "0x79e534abfe3409af61a5d2454c1527c17c165854926254a866dc6a2d8d802fd9", + "address": "0x39dd60293D1D435aEFa75c3773b92D86Cd47c582", "topics": [ "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000dd0007713cb99564b7835fd628a1718e8f9f9785", - "logIndex": 78, - "blockHash": "0x9d4a08d2b6fd26df76447aa1b5e0054686b1d462dc12be4d271dca1299060a2c" + "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000008d58747ef805317270ff7f8e51a8018d3488b17b", + "logIndex": 293, + "blockHash": "0xebac2a7b6d9da294a139a27df2e0eafcb489d3d24603dddf1ea85afa13ad31f0" } ], - "blockNumber": 5441536, - "cumulativeGasUsed": "8903785", + "blockNumber": 7585981, + "cumulativeGasUsed": "22707418", "status": 1, "byzantium": true }, "numDeployments": 1, - "implementation": "0x720Cb49A8b3c03E199075544F7f1F4d772Dd6d06", + "implementation": "0x1Fe7385497a45191C5321FDd903d880491e47dD7", "devdoc": "Contract deployed as upgradable proxy" } \ No newline at end of file diff --git a/solidity/contracts/l2/L1BitcoinDepositor.sol b/solidity/contracts/l2/L1BitcoinDepositor.sol index 5247eaef2..f36eb4df7 100644 --- a/solidity/contracts/l2/L1BitcoinDepositor.sol +++ b/solidity/contracts/l2/L1BitcoinDepositor.sol @@ -140,6 +140,12 @@ contract L1BitcoinDepositor is /// granted by the contract owner. mapping(address => bool) public reimbursementAuthorizations; + /// @notice **Feature Flag** controlling whether the deposit transaction max fee + /// is **reimbursed** (added to the user’s TBTC) or **deducted**. + /// - `true` => Add `txMaxFee` to the minted TBTC amount + /// - `false` => Subtract `txMaxFee` from the minted TBTC amount + bool public reimburseTxMaxFee; + event DepositInitialized( uint256 indexed depositKey, address indexed l2DepositOwner, @@ -166,6 +172,10 @@ contract L1BitcoinDepositor is bool authorization ); + /// @notice Emitted whenever the owner toggles the reimbursement of the deposit + /// transaction max fee. + event ReimburseTxMaxFeeUpdated(bool reimburseTxMaxFee); + /// @dev This modifier comes from the `Reimbursable` base contract and /// must be overridden to protect the `updateReimbursementPool` call. modifier onlyReimbursableAdmin() override { @@ -214,6 +224,7 @@ contract L1BitcoinDepositor is l2FinalizeDepositGasLimit = 500_000; initializeDepositGasOffset = 60_000; finalizeDepositGasOffset = 20_000; + reimburseTxMaxFee = false; } /// @notice Sets the address of the `L2BitcoinDepositor` contract on the @@ -284,6 +295,15 @@ contract L1BitcoinDepositor is reimbursementAuthorizations[_address] = authorization; } + /// @notice Toggles whether the deposit transaction max fee is reimbursed + /// or deducted. Only callable by the contract owner. + /// @param _reimburseTxMaxFee `true` => reimburse (add) the deposit tx max fee, + /// `false` => deduct the deposit tx max fee. + function setReimburseTxMaxFee(bool _reimburseTxMaxFee) external onlyOwner { + reimburseTxMaxFee = _reimburseTxMaxFee; + emit ReimburseTxMaxFeeUpdated(_reimburseTxMaxFee); + } + /// @notice Initializes the deposit process on L1 by revealing the deposit /// data (funding transaction and components of the P2(W)SH deposit /// address) to the tBTC Bridge. Once tBTC minting is completed, @@ -461,17 +481,16 @@ contract L1BitcoinDepositor is bytes32 l2DepositOwner ) = _finalizeDeposit(depositKey); - // The deposit transaction max fee is in the 1e8 satoshi precision. - // We need to convert them to the 1e18 TBTC precision. - (, , uint64 depositTxMaxFee, ) = bridge.depositParameters(); - uint256 txMaxFee = depositTxMaxFee * SATOSHI_MULTIPLIER; - - // The Threshold DAO decided the deposit transaction max fee to be 0. - // Instead of changing the deposit parameters, we add the fee to the - // amount of TBTC that is transferred to the L2 deposit owner. - tbtcAmount += txMaxFee; - - // slither-disable-next-line reentrancy-events + // ---------------------------- + // Reimburse or Deduct Max Fee + // ---------------------------- + if (reimburseTxMaxFee) { + // Retrieve deposit tx max fee in 1e8 sat precision -> scale it to 1e18. + (, , uint64 depositTxMaxFee, ) = bridge.depositParameters(); + uint256 txMaxFee = depositTxMaxFee * SATOSHI_MULTIPLIER; + // The DAO is "refunding" it by adding it to the TBTC minted. + tbtcAmount += txMaxFee; + } emit DepositFinalized( depositKey, WormholeUtils.fromWormholeAddress(l2DepositOwner), diff --git a/solidity/test/l2/L1BitcoinDepositor.test.ts b/solidity/test/l2/L1BitcoinDepositor.test.ts index 619f082b1..43db8b106 100644 --- a/solidity/test/l2/L1BitcoinDepositor.test.ts +++ b/solidity/test/l2/L1BitcoinDepositor.test.ts @@ -46,7 +46,7 @@ describe("L1BitcoinDepositor", () => { // pass the vault address check in the initializeDeposit function. address: tbtcVaultAddress, }) - // Attack the tbtcToken mock to the tbtcVault mock. + // Attach the tbtcToken mock to the tbtcVault mock. tbtcVault.tbtcToken.returns(tbtcToken.address) const wormhole = await smock.fake("IWormhole") @@ -1123,7 +1123,7 @@ describe("L1BitcoinDepositor", () => { // omFee = amountSubTreasury / optimisticMintingFeeDivisor = 4975 * 1e10 // txMaxFee = depositTxMaxFee * satoshiMultiplier = 1000 * 1e10 // tbtcAmount = amountSubTreasury - omFee - txMaxFee = 93525 * 1e10 - const expectedTbtcAmount = to1ePrecision(94525, 10) + const expectedTbtcAmount = to1ePrecision(93525, 10) let tx: ContractTransaction @@ -1810,6 +1810,115 @@ describe("L1BitcoinDepositor", () => { expect(cost).to.be.equal(6000) // delivery cost + message fee }) }) + + context("when reimburseTxMaxFee is true", () => { + const satoshiMultiplier = to1ePrecision(1, 10) + const messageFee = 1000 + const deliveryCost = 5000 + const depositTxMaxFee = BigNumber.from(1000) + const depositAmount = BigNumber.from(100000) + const treasuryFee = BigNumber.from(500) + const optimisticMintingFeeDivisor = 20 + + // For depositAmount=100000 & treasuryFee=500: + // (depositAmount - treasuryFee)=99500 + // => *1e10 => 99500e10 + // => omFee= (99500e10 /20)=4975e10 + // => depositTxMaxFee => 1000e10 + // + // The standard _calculateTbtcAmount would do: 99500e10 -4975e10 -1000e10=93525e10 + // Because we reimburse depositTxMaxFee, we add 1000e10 back => 94525e10 + const expectedTbtcAmountReimbursed = to1ePrecision(94525, 10) + + before(async () => { + await createSnapshot() + + // Turn the feature flag on + await l1BitcoinDepositor.connect(governance).setReimburseTxMaxFee(true) + + // The L2BitcoinDepositor contract must be attached + if ( + (await l1BitcoinDepositor.l2BitcoinDepositor()) === + ethers.constants.AddressZero + ) { + await l1BitcoinDepositor + .connect(governance) + .attachL2BitcoinDepositor(l2BitcoinDepositor) + } + }) + + after(async () => { + await restoreSnapshot() + }) + + it("should add depositTxMaxFee back to the minted TBTC amount", async () => { + // 1) Initialize deposit + await l1BitcoinDepositor + .connect(relayer) + .initializeDeposit( + initializeDepositFixture.fundingTx, + initializeDepositFixture.reveal, + initializeDepositFixture.l2DepositOwner + ) + + // 2) Setup Bridge deposit parameters + bridge.depositParameters.returns({ + depositDustThreshold: 0, + depositTreasuryFeeDivisor: 0, + depositTxMaxFee, + depositRevealAheadPeriod: 0, + }) + // 3) Setup vault fees + tbtcVault.optimisticMintingFeeDivisor.returns(optimisticMintingFeeDivisor) + + // 4) Prepare deposit finalization + const revealedAt = (await lastBlockTime()) - 7200 + const finalizedAt = await lastBlockTime() + bridge.deposits + .whenCalledWith(initializeDepositFixture.depositKey) + .returns({ + depositor: l1BitcoinDepositor.address, + amount: depositAmount, + revealedAt, + vault: initializeDepositFixture.reveal.vault, + treasuryFee, + sweptAt: finalizedAt, + extraData: toWormholeAddress(initializeDepositFixture.l2DepositOwner), + }) + tbtcVault.optimisticMintingRequests + .whenCalledWith(initializeDepositFixture.depositKey) + .returns([revealedAt, finalizedAt]) + + // 5) Setup Wormhole cost + wormhole.messageFee.returns(messageFee) + wormholeRelayer.quoteEVMDeliveryPrice.returns({ + nativePriceQuote: BigNumber.from(deliveryCost), + targetChainRefundPerGasUnused: BigNumber.from(0), + }) + + // 6) The bridging calls + wormholeTokenBridge.transferTokensWithPayload.returns(555) + wormholeRelayer.sendVaasToEvm.returns(999) + + // 7) Now finalize with enough payment + const tx = await l1BitcoinDepositor + .connect(relayer) + .finalizeDeposit(initializeDepositFixture.depositKey, { + value: messageFee + deliveryCost, + }) + + // 8) The final minted TBTC should be 94525e10 + await expect(tx) + .to.emit(l1BitcoinDepositor, "DepositFinalized") + .withArgs( + initializeDepositFixture.depositKey, + initializeDepositFixture.l2DepositOwner, + relayer.address, + depositAmount.mul(satoshiMultiplier), + expectedTbtcAmountReimbursed + ) + }) + }) }) // Just an arbitrary TBTCVault address. diff --git a/typescript/src/lib/base/artifacts/baseSepolia/BaseL2BitcoinDepositor.json b/typescript/src/lib/base/artifacts/baseSepolia/BaseL2BitcoinDepositor.json index 6ed5a21d0..dc687fb70 100644 --- a/typescript/src/lib/base/artifacts/baseSepolia/BaseL2BitcoinDepositor.json +++ b/typescript/src/lib/base/artifacts/baseSepolia/BaseL2BitcoinDepositor.json @@ -1,5 +1,5 @@ { - "address": "0x04BE8F183572ec802aD26756F3E9398098700E76", + "address": "0x4dC7F374226FDe3395fEdDF4A591F6bfc02Ef9Cf", "abi": [ { "inputs": [], @@ -355,75 +355,75 @@ "type": "function" } ], - "transactionHash": "0xaeb9ee6679e0f96108788abffa9ed78c943c09565686dfdb826378e9bd1487df", + "transactionHash": "0x71ab0fe261eb0384d92fa4867462ddec5da79471b4dbeb91d3910baab5bd76b6", "receipt": { "to": null, - "from": "0x68ad60CC5e8f3B7cC53beaB321cf0e6036962dBc", - "contractAddress": "0x04BE8F183572ec802aD26756F3E9398098700E76", - "transactionIndex": 2, - "gasUsed": "704802", - "logsBloom": "0x00000000000000000000000000000000400000000000000000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000202000001000000000000000000000000000000000000020000000000000000000800000000800000000000000000000000400002000200000000000000000000000000000000000080000000000000800080000000000000000000000000000400000000000100000000000000000000000000000020000000000000000020040000000008000400000000000000000020000000000000000000080000000000000000000000000000000000000000400000", - "blockHash": "0xcb1f5aa73f2f63d359224b51e7abf66a431e3420daa6940b72a3a58dd5a00c85", - "transactionHash": "0xaeb9ee6679e0f96108788abffa9ed78c943c09565686dfdb826378e9bd1487df", + "from": "0x353C5c3DE81EDb53FFB398f6416f962b90ae8611", + "contractAddress": "0x4dC7F374226FDe3395fEdDF4A591F6bfc02Ef9Cf", + "transactionIndex": 28, + "gasUsed": "704872", + "logsBloom": "0x00000800000000000000000000000000400000000000000000800000000000020000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000002000001000000000000000000000000000000000000020000000000000000000800000000800000000000000000000000400000000000000000000000000000000000000000000084000004000000800000000000000000000000020000000400000000000200000000000000000000000000000020000000000000000000040000000000000400000000000010000020100000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0x926a4c7206d730a0f552b6ac95551464ec8919568cfd3b7735e01c9c64f89880", + "transactionHash": "0x71ab0fe261eb0384d92fa4867462ddec5da79471b4dbeb91d3910baab5bd76b6", "logs": [ { - "transactionIndex": 2, - "blockNumber": 7063584, - "transactionHash": "0xaeb9ee6679e0f96108788abffa9ed78c943c09565686dfdb826378e9bd1487df", - "address": "0x04BE8F183572ec802aD26756F3E9398098700E76", + "transactionIndex": 28, + "blockNumber": 21133582, + "transactionHash": "0x71ab0fe261eb0384d92fa4867462ddec5da79471b4dbeb91d3910baab5bd76b6", + "address": "0x4dC7F374226FDe3395fEdDF4A591F6bfc02Ef9Cf", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x0000000000000000000000001ecd87c8d510a7390a561ae0ac54fbe7e5125bcf" + "0x0000000000000000000000001fe7385497a45191c5321fdd903d880491e47dd7" ], "data": "0x", - "logIndex": 1, - "blockHash": "0xcb1f5aa73f2f63d359224b51e7abf66a431e3420daa6940b72a3a58dd5a00c85" + "logIndex": 86, + "blockHash": "0x926a4c7206d730a0f552b6ac95551464ec8919568cfd3b7735e01c9c64f89880" }, { - "transactionIndex": 2, - "blockNumber": 7063584, - "transactionHash": "0xaeb9ee6679e0f96108788abffa9ed78c943c09565686dfdb826378e9bd1487df", - "address": "0x04BE8F183572ec802aD26756F3E9398098700E76", + "transactionIndex": 28, + "blockNumber": 21133582, + "transactionHash": "0x71ab0fe261eb0384d92fa4867462ddec5da79471b4dbeb91d3910baab5bd76b6", + "address": "0x4dC7F374226FDe3395fEdDF4A591F6bfc02Ef9Cf", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x00000000000000000000000068ad60cc5e8f3b7cc53beab321cf0e6036962dbc" + "0x000000000000000000000000353c5c3de81edb53ffb398f6416f962b90ae8611" ], "data": "0x", - "logIndex": 2, - "blockHash": "0xcb1f5aa73f2f63d359224b51e7abf66a431e3420daa6940b72a3a58dd5a00c85" + "logIndex": 87, + "blockHash": "0x926a4c7206d730a0f552b6ac95551464ec8919568cfd3b7735e01c9c64f89880" }, { - "transactionIndex": 2, - "blockNumber": 7063584, - "transactionHash": "0xaeb9ee6679e0f96108788abffa9ed78c943c09565686dfdb826378e9bd1487df", - "address": "0x04BE8F183572ec802aD26756F3E9398098700E76", + "transactionIndex": 28, + "blockNumber": 21133582, + "transactionHash": "0x71ab0fe261eb0384d92fa4867462ddec5da79471b4dbeb91d3910baab5bd76b6", + "address": "0x4dC7F374226FDe3395fEdDF4A591F6bfc02Ef9Cf", "topics": [ "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" ], "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "logIndex": 3, - "blockHash": "0xcb1f5aa73f2f63d359224b51e7abf66a431e3420daa6940b72a3a58dd5a00c85" + "logIndex": 88, + "blockHash": "0x926a4c7206d730a0f552b6ac95551464ec8919568cfd3b7735e01c9c64f89880" }, { - "transactionIndex": 2, - "blockNumber": 7063584, - "transactionHash": "0xaeb9ee6679e0f96108788abffa9ed78c943c09565686dfdb826378e9bd1487df", - "address": "0x04BE8F183572ec802aD26756F3E9398098700E76", + "transactionIndex": 28, + "blockNumber": 21133582, + "transactionHash": "0x71ab0fe261eb0384d92fa4867462ddec5da79471b4dbeb91d3910baab5bd76b6", + "address": "0x4dC7F374226FDe3395fEdDF4A591F6bfc02Ef9Cf", "topics": [ "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" ], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b2f6c5b73239c39360ee0ea95047565dab13e3c7", - "logIndex": 4, - "blockHash": "0xcb1f5aa73f2f63d359224b51e7abf66a431e3420daa6940b72a3a58dd5a00c85" + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000d5d30fafca5a5d371a46f77cacc4db5f811ef917", + "logIndex": 89, + "blockHash": "0x926a4c7206d730a0f552b6ac95551464ec8919568cfd3b7735e01c9c64f89880" } ], - "blockNumber": 7063584, - "cumulativeGasUsed": "804788", + "blockNumber": 21133582, + "cumulativeGasUsed": "4323019", "status": 1, "byzantium": true }, "numDeployments": 1, - "implementation": "0x1Ecd87C8D510A7390a561AE0Ac54FBe7e5125BcF", + "implementation": "0x1Fe7385497a45191C5321FDd903d880491e47dD7", "devdoc": "Contract deployed as upgradable proxy" -} +} \ No newline at end of file diff --git a/typescript/src/lib/ethereum/artifacts/sepolia/BaseL1BitcoinDepositor.json b/typescript/src/lib/ethereum/artifacts/sepolia/BaseL1BitcoinDepositor.json index c7a0d3102..4c11de7b9 100644 --- a/typescript/src/lib/ethereum/artifacts/sepolia/BaseL1BitcoinDepositor.json +++ b/typescript/src/lib/ethereum/artifacts/sepolia/BaseL1BitcoinDepositor.json @@ -1,5 +1,5 @@ { - "address": "0x37169570D846Cc05D5848AAA30194d308b355638", + "address": "0x39dd60293D1D435aEFa75c3773b92D86Cd47c582", "abi": [ { "inputs": [], @@ -132,6 +132,19 @@ "name": "OwnershipTransferred", "type": "event" }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bool", + "name": "reimburseTxMaxFee", + "type": "bool" + } + ], + "name": "ReimburseTxMaxFeeUpdated", + "type": "event" + }, { "anonymous": false, "inputs": [ @@ -483,6 +496,19 @@ "stateMutability": "view", "type": "function" }, + { + "inputs": [], + "name": "reimburseTxMaxFee", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, { "inputs": [ { @@ -522,6 +548,19 @@ "stateMutability": "nonpayable", "type": "function" }, + { + "inputs": [ + { + "internalType": "bool", + "name": "_reimburseTxMaxFee", + "type": "bool" + } + ], + "name": "setReimburseTxMaxFee", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], "name": "tbtcToken", @@ -663,75 +702,75 @@ "type": "function" } ], - "transactionHash": "0xa484c7875f4a2f5e387316cc4490e348767004e351a2d0b312fd32eb509d0f96", + "transactionHash": "0x79e534abfe3409af61a5d2454c1527c17c165854926254a866dc6a2d8d802fd9", "receipt": { "to": null, - "from": "0x949f0ADFDA95351829E49aEec0f99371A227572d", - "contractAddress": "0x37169570D846Cc05D5848AAA30194d308b355638", - "transactionIndex": 14, - "gasUsed": "888024", - "logsBloom": "0x00000000000000000000000080001000400000000000000000800000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000002000001400000000000000000000000000000004000020000000000000000000800000000800000000000000000004000400000100000000000000000000000000000000200000080000000000000800000000000000000000000000000000400000000000000000000000000000000000000000020000000000000000000040000000000000400100000000000000020000000000000000000000000000000000000000000000000000000000000000000", - "blockHash": "0xbf3cf876ca6f3c6271e272fbf1ac1b2004ad949892f038fb0132c22552f5664b", - "transactionHash": "0xa484c7875f4a2f5e387316cc4490e348767004e351a2d0b312fd32eb509d0f96", + "from": "0x353C5c3DE81EDb53FFB398f6416f962b90ae8611", + "contractAddress": "0x39dd60293D1D435aEFa75c3773b92D86Cd47c582", + "transactionIndex": 163, + "gasUsed": "890221", + "logsBloom": "0x00000800000000000000000000000000400000000000000000800000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000002000001000000000000000000000000000000000000020000000000000000000800000000800000000000200000000000400000000000000000000000000000000000000000000080000004000000800000000000000000000000020000000400000000000200000000000000000000000000000020000000000000000000040010000000000400000000000000000028100000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0xebac2a7b6d9da294a139a27df2e0eafcb489d3d24603dddf1ea85afa13ad31f0", + "transactionHash": "0x79e534abfe3409af61a5d2454c1527c17c165854926254a866dc6a2d8d802fd9", "logs": [ { - "transactionIndex": 14, - "blockNumber": 6877156, - "transactionHash": "0xa484c7875f4a2f5e387316cc4490e348767004e351a2d0b312fd32eb509d0f96", - "address": "0x37169570D846Cc05D5848AAA30194d308b355638", + "transactionIndex": 163, + "blockNumber": 7585981, + "transactionHash": "0x79e534abfe3409af61a5d2454c1527c17c165854926254a866dc6a2d8d802fd9", + "address": "0x39dd60293D1D435aEFa75c3773b92D86Cd47c582", "topics": [ "0xbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b", - "0x000000000000000000000000ff79fca71751a5a0c4487a1ace268d6cd2a64db1" + "0x0000000000000000000000001fe7385497a45191c5321fdd903d880491e47dd7" ], "data": "0x", - "logIndex": 0, - "blockHash": "0xbf3cf876ca6f3c6271e272fbf1ac1b2004ad949892f038fb0132c22552f5664b" + "logIndex": 290, + "blockHash": "0xebac2a7b6d9da294a139a27df2e0eafcb489d3d24603dddf1ea85afa13ad31f0" }, { - "transactionIndex": 14, - "blockNumber": 6877156, - "transactionHash": "0xa484c7875f4a2f5e387316cc4490e348767004e351a2d0b312fd32eb509d0f96", - "address": "0x37169570D846Cc05D5848AAA30194d308b355638", + "transactionIndex": 163, + "blockNumber": 7585981, + "transactionHash": "0x79e534abfe3409af61a5d2454c1527c17c165854926254a866dc6a2d8d802fd9", + "address": "0x39dd60293D1D435aEFa75c3773b92D86Cd47c582", "topics": [ "0x8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0", "0x0000000000000000000000000000000000000000000000000000000000000000", - "0x000000000000000000000000949f0adfda95351829e49aeec0f99371a227572d" + "0x000000000000000000000000353c5c3de81edb53ffb398f6416f962b90ae8611" ], "data": "0x", - "logIndex": 1, - "blockHash": "0xbf3cf876ca6f3c6271e272fbf1ac1b2004ad949892f038fb0132c22552f5664b" + "logIndex": 291, + "blockHash": "0xebac2a7b6d9da294a139a27df2e0eafcb489d3d24603dddf1ea85afa13ad31f0" }, { - "transactionIndex": 14, - "blockNumber": 6877156, - "transactionHash": "0xa484c7875f4a2f5e387316cc4490e348767004e351a2d0b312fd32eb509d0f96", - "address": "0x37169570D846Cc05D5848AAA30194d308b355638", + "transactionIndex": 163, + "blockNumber": 7585981, + "transactionHash": "0x79e534abfe3409af61a5d2454c1527c17c165854926254a866dc6a2d8d802fd9", + "address": "0x39dd60293D1D435aEFa75c3773b92D86Cd47c582", "topics": [ "0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498" ], "data": "0x0000000000000000000000000000000000000000000000000000000000000001", - "logIndex": 2, - "blockHash": "0xbf3cf876ca6f3c6271e272fbf1ac1b2004ad949892f038fb0132c22552f5664b" + "logIndex": 292, + "blockHash": "0xebac2a7b6d9da294a139a27df2e0eafcb489d3d24603dddf1ea85afa13ad31f0" }, { - "transactionIndex": 14, - "blockNumber": 6877156, - "transactionHash": "0xa484c7875f4a2f5e387316cc4490e348767004e351a2d0b312fd32eb509d0f96", - "address": "0x37169570D846Cc05D5848AAA30194d308b355638", + "transactionIndex": 163, + "blockNumber": 7585981, + "transactionHash": "0x79e534abfe3409af61a5d2454c1527c17c165854926254a866dc6a2d8d802fd9", + "address": "0x39dd60293D1D435aEFa75c3773b92D86Cd47c582", "topics": [ "0x7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f" ], "data": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000008d58747ef805317270ff7f8e51a8018d3488b17b", - "logIndex": 3, - "blockHash": "0xbf3cf876ca6f3c6271e272fbf1ac1b2004ad949892f038fb0132c22552f5664b" + "logIndex": 293, + "blockHash": "0xebac2a7b6d9da294a139a27df2e0eafcb489d3d24603dddf1ea85afa13ad31f0" } ], - "blockNumber": 6877156, - "cumulativeGasUsed": "16670912", + "blockNumber": 7585981, + "cumulativeGasUsed": "22707418", "status": 1, "byzantium": true }, "numDeployments": 1, - "implementation": "0xFf79fca71751A5A0C4487a1aCE268d6cd2A64Db1", + "implementation": "0x1Fe7385497a45191C5321FDd903d880491e47dD7", "devdoc": "Contract deployed as upgradable proxy" } \ No newline at end of file