Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
fc17c191
Commit
fc17c191
authored
Aug 03, 2023
by
Mark Tyneway
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
contracts-bedrock: cleanup
parent
cc577663
Changes
8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
27 additions
and
36 deletions
+27
-36
l1erc721bridge.go
op-bindings/bindings/l1erc721bridge.go
+1
-1
l1erc721bridge_more.go
op-bindings/bindings/l1erc721bridge_more.go
+2
-2
l2erc721bridge.go
op-bindings/bindings/l2erc721bridge.go
+1
-1
l2erc721bridge_more.go
op-bindings/bindings/l2erc721bridge_more.go
+2
-2
semver-lock.json
packages/contracts-bedrock/semver-lock.json
+2
-2
L1ERC721Bridge.sol
packages/contracts-bedrock/src/L1/L1ERC721Bridge.sol
+4
-2
L2ERC721Bridge.sol
packages/contracts-bedrock/src/L2/L2ERC721Bridge.sol
+7
-5
ERC721Bridge.sol
packages/contracts-bedrock/src/universal/ERC721Bridge.sol
+8
-21
No files found.
op-bindings/bindings/l1erc721bridge.go
View file @
fc17c191
This diff is collapsed.
Click to expand it.
op-bindings/bindings/l1erc721bridge_more.go
View file @
fc17c191
This diff is collapsed.
Click to expand it.
op-bindings/bindings/l2erc721bridge.go
View file @
fc17c191
This diff is collapsed.
Click to expand it.
op-bindings/bindings/l2erc721bridge_more.go
View file @
fc17c191
This diff is collapsed.
Click to expand it.
packages/contracts-bedrock/semver-lock.json
View file @
fc17c191
{
"src/L1/L1CrossDomainMessenger.sol"
:
"0x2b276f14475869cfd81868b03dc72b91dd726a787c9568caf4849fe34830b207"
,
"src/L1/L1ERC721Bridge.sol"
:
"0x
c9b9c88b7f46d928443c219d6c99955c6f6bc79f8cf7440d97433f13772dc441
"
,
"src/L1/L1ERC721Bridge.sol"
:
"0x
6aeb386bab56e1fa45692188ffc0dcb09c6719e17776e1fffd13278f7a5f40cc
"
,
"src/L1/L1StandardBridge.sol"
:
"0xa35dc0ab143043063c3bff73c8b065e401c23296a2017258ce8a87f4a4da9416"
,
"src/L1/L2OutputOracle.sol"
:
"0x8f32ccb4c5cb63a459a0e79ee412177dc03fd279fdaaf1dac69e8c714902e857"
,
"src/L1/OptimismPortal.sol"
:
"0xeaa47a63e8a3bcfdb7dfd3e6c8608369e34e362d9de82f3acf13cbc27c070bf7"
,
...
...
@@ -10,7 +10,7 @@
"src/L2/L1Block.sol"
:
"0x7fbfc8b4da630386636c665570321fdec287b0867dbe0f91c2e7cd5b7697c220"
,
"src/L2/L1FeeVault.sol"
:
"0x62bfe739ff939fc68f90916399ac4160936d31eb37749cb014dd9d0c5dd4183a"
,
"src/L2/L2CrossDomainMessenger.sol"
:
"0xc9641981f7aa79f44b5925100027098d8f76c6178c65aca99fafa859289182be"
,
"src/L2/L2ERC721Bridge.sol"
:
"0x
fedd00d6bbbfe12150b6fbe31047eede706c563fa0b25f2b145c16cb1655dd8a
"
,
"src/L2/L2ERC721Bridge.sol"
:
"0x
8c43c5f631a79df9f736c6e336af285065e798151e97f11b52bb7d722759f35f
"
,
"src/L2/L2StandardBridge.sol"
:
"0x67e202bc6751807b20a98b88b0b65bdff30420bf1e71f2c1c7948de448cfcdc0"
,
"src/L2/L2ToL1MessagePasser.sol"
:
"0xed800b600cb3f67e18a1ab10750e3934a8b3e42178f422bcacfde770a6e8e8bd"
,
"src/L2/SequencerFeeVault.sol"
:
"0xd57c143b1f042400430b991b806bf971628e6980406c751e82d19ae80eeb4e8d"
,
...
...
packages/contracts-bedrock/src/L1/L1ERC721Bridge.sol
View file @
fc17c191
...
...
@@ -31,7 +31,9 @@ contract L1ERC721Bridge is ERC721Bridge, Semver {
/// @notice Initializes the contract.
/// @param _messenger Address of the CrossDomainMessenger on this network.
function initialize(CrossDomainMessenger _messenger) public reinitializer(1) {
__ERC721Bridge_init(_messenger);
__ERC721Bridge_init({
_messenger: _messenger
});
}
/// @notice Completes an ERC721 bridge from the other domain and sends the ERC721 token to the
...
...
@@ -100,7 +102,7 @@ contract L1ERC721Bridge is ERC721Bridge, Semver {
IERC721(_localToken).transferFrom(_from, address(this), _tokenId);
// Send calldata into L2
_MESSENGER.sendMessage(_
OTHER_BRIDGE, message, _minGasLimit);
messenger.sendMessage(
OTHER_BRIDGE, message, _minGasLimit);
emit ERC721BridgeInitiated(_localToken, _remoteToken, _from, _to, _tokenId, _extraData);
}
}
packages/contracts-bedrock/src/L2/L2ERC721Bridge.sol
View file @
fc17c191
...
...
@@ -18,11 +18,11 @@ import { Semver } from "../universal/Semver.sol";
/// wait for the one-week challenge period to elapse before their Optimism-native NFT
/// can be refunded on L2.
contract L2ERC721Bridge is ERC721Bridge, Semver {
/// @custom:semver 1.
2
.0
/// @custom:semver 1.
3
.0
/// @notice Constructs the L2ERC721Bridge contract.
/// @param _otherBridge Address of the ERC721 bridge on the other network.
constructor(address _otherBridge)
Semver(1,
2, 1
)
Semver(1,
3, 0
)
ERC721Bridge(_otherBridge)
{
initialize({
...
...
@@ -32,8 +32,10 @@ contract L2ERC721Bridge is ERC721Bridge, Semver {
/// @notice Initializes the contract.
/// @param _messenger Address of the CrossDomainMessenger on this network.
function initialize(CrossDomainMessenger _messenger) public reinitializer(1) {
__ERC721Bridge_init(_messenger);
function initialize(CrossDomainMessenger _messenger) public reinitializer(2) {
__ERC721Bridge_init({
_messenger: _messenger
});
}
/// @notice Completes an ERC721 bridge from the other domain and sends the ERC721 token to the
...
...
@@ -119,7 +121,7 @@ contract L2ERC721Bridge is ERC721Bridge, Semver {
// Send message to L1 bridge
// slither-disable-next-line reentrancy-events
_MESSENGER.sendMessage(_
OTHER_BRIDGE, message, _minGasLimit);
messenger.sendMessage(
OTHER_BRIDGE, message, _minGasLimit);
// slither-disable-next-line reentrancy-events
emit ERC721BridgeInitiated(_localToken, remoteToken, _from, _to, _tokenId, _extraData);
...
...
packages/contracts-bedrock/src/universal/ERC721Bridge.sol
View file @
fc17c191
...
...
@@ -10,10 +10,11 @@ import { Initializable } from "@openzeppelin/contracts/proxy/utils/Initializable
abstract contract ERC721Bridge is Initializable {
/// @notice Messenger contract on this domain.
/// @custom:network-specific
CrossDomainMessenger
internal _MESSENGER
;
CrossDomainMessenger
public messenger
;
/// @notice Address of the bridge on the other network.
address internal immutable _OTHER_BRIDGE;
/// @custom:legacy
address public immutable OTHER_BRIDGE;
/// @notice Reserve extra slots (to a total of 50) in the storage layout for future upgrades.
uint256[48] private __gap;
...
...
@@ -53,7 +54,7 @@ abstract contract ERC721Bridge is Initializable {
/// @notice Ensures that the caller is a cross-chain message from the other bridge.
modifier onlyOtherBridge() {
require(
msg.sender == address(
_MESSENGER) && _MESSENGER.xDomainMessageSender() == _
OTHER_BRIDGE,
msg.sender == address(
messenger) && messenger.xDomainMessageSender() ==
OTHER_BRIDGE,
"ERC721Bridge: function can only be called from the other bridge"
);
_;
...
...
@@ -63,38 +64,24 @@ abstract contract ERC721Bridge is Initializable {
/// @param _otherBridge Address of the ERC721 bridge on the other network.
constructor(address _otherBridge) {
require(_otherBridge != address(0), "ERC721Bridge: other bridge cannot be address(0)");
_
OTHER_BRIDGE = _otherBridge;
OTHER_BRIDGE = _otherBridge;
}
// @notice Initializes the contract.
/// @param _messenger Address of the CrossDomainMessenger on this network.
function __ERC721Bridge_init(CrossDomainMessenger _messenger) internal onlyInitializing {
_MESSENGER
= _messenger;
messenger
= _messenger;
}
/// @notice Getter for messenger contract.
/// @return Messenger contract on this domain.
function messenger() external view returns (CrossDomainMessenger) {
return _MESSENGER;
}
/// @custom:legacy
/// @notice Getter for messenger contract.
function MESSENGER() external view returns (CrossDomainMessenger) {
return
_MESSENGER
;
return
messenger
;
}
/// @notice Getter for other bridge address.
/// @return Address of the bridge on the other network.
function otherBridge() external view returns (address) {
return _OTHER_BRIDGE;
}
/// @custom:legacy
/// @notice Getter for other bridge address.
/// @return Address of the bridge on the other network.
function OTHER_BRIDGE() external view returns (address) {
return _OTHER_BRIDGE;
return OTHER_BRIDGE;
}
/// @notice Initiates a bridge of an NFT to the caller's account on the other chain. Note that
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment