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
7249dec1
Unverified
Commit
7249dec1
authored
Dec 14, 2022
by
Mark Tyneway
Committed by
GitHub
Dec 14, 2022
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #4451 from ethereum-optimism/sc/ctb-token-interfaces
feat(ctb): break out token interfaces
parents
87bd8367
9b84a638
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
40 additions
and
37 deletions
+40
-37
L2ERC721Bridge.sol
packages/contracts-bedrock/contracts/L2/L2ERC721Bridge.sol
+1
-1
OptimismMintableERC20.t.sol
...tracts-bedrock/contracts/test/OptimismMintableERC20.t.sol
+1
-1
IOptimismMintableERC20.sol
...ts-bedrock/contracts/universal/IOptimismMintableERC20.sol
+34
-0
IOptimismMintableERC721.sol
...s-bedrock/contracts/universal/IOptimismMintableERC721.sol
+0
-32
OptimismMintableERC20.sol
...cts-bedrock/contracts/universal/OptimismMintableERC20.sol
+2
-1
OptimismMintableERC721.sol
...ts-bedrock/contracts/universal/OptimismMintableERC721.sol
+1
-1
StandardBridge.sol
.../contracts-bedrock/contracts/universal/StandardBridge.sol
+1
-1
No files found.
packages/contracts-bedrock/contracts/L2/L2ERC721Bridge.sol
View file @
7249dec1
...
@@ -4,7 +4,7 @@ pragma solidity 0.8.15;
...
@@ -4,7 +4,7 @@ pragma solidity 0.8.15;
import { ERC721Bridge } from "../universal/ERC721Bridge.sol";
import { ERC721Bridge } from "../universal/ERC721Bridge.sol";
import { ERC165Checker } from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
import { ERC165Checker } from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol";
import { L1ERC721Bridge } from "../L1/L1ERC721Bridge.sol";
import { L1ERC721Bridge } from "../L1/L1ERC721Bridge.sol";
import { IOptimismMintableERC721 } from "../universal/
SupportedInterfaces
.sol";
import { IOptimismMintableERC721 } from "../universal/
IOptimismMintableERC721
.sol";
import { Semver } from "../universal/Semver.sol";
import { Semver } from "../universal/Semver.sol";
/**
/**
...
...
packages/contracts-bedrock/contracts/test/OptimismMintableERC20.t.sol
View file @
7249dec1
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
pragma solidity 0.8.15;
pragma solidity 0.8.15;
import { Bridge_Initializer } from "./CommonTest.t.sol";
import { Bridge_Initializer } from "./CommonTest.t.sol";
import { ILegacyMintableERC20, IOptimismMintableERC20 } from "../universal/
SupportedInterfaces
.sol";
import { ILegacyMintableERC20, IOptimismMintableERC20 } from "../universal/
IOptimismMintableERC20
.sol";
import { IERC165 } from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
import { IERC165 } from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
contract OptimismMintableERC20_Test is Bridge_Initializer {
contract OptimismMintableERC20_Test is Bridge_Initializer {
...
...
packages/contracts-bedrock/contracts/universal/IOptimismMintableERC20.sol
0 → 100644
View file @
7249dec1
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
import { IERC165 } from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
/**
* @title IOptimismMintableERC20
* @notice This interface is available on the OptimismMintableERC20 contract. We declare it as a
* separate interface so that it can be used in custom implementations of
* OptimismMintableERC20.
*/
interface IOptimismMintableERC20 {
function remoteToken() external returns (address);
function bridge() external returns (address);
function mint(address _to, uint256 _amount) external;
function burn(address _from, uint256 _amount) external;
}
/**
* @custom:legacy
* @title ILegacyMintableERC20
* @notice This interface was available on the legacy L2StandardERC20 contract. It remains available
* on the OptimismMintableERC20 contract for backwards compatibility.
*/
interface ILegacyMintableERC20 is IERC165 {
function l1Token() external returns (address);
function mint(address _to, uint256 _amount) external;
function burn(address _from, uint256 _amount) external;
}
packages/contracts-bedrock/contracts/universal/
SupportedInterfaces
.sol
→
packages/contracts-bedrock/contracts/universal/
IOptimismMintableERC721
.sol
View file @
7249dec1
// SPDX-License-Identifier: MIT
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;
pragma solidity ^0.8.0;
// Import this here to make it available just by importing this file
import { IERC165 } from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
import {
import {
IERC721Enumerable
IERC721Enumerable
} from "@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol";
} from "@openzeppelin/contracts/token/ERC721/extensions/IERC721Enumerable.sol";
/**
* @title IOptimismMintableERC20
* @notice This interface is available on the OptimismMintableERC20 contract. We declare it as a
* separate interface so that it can be used in custom implementations of
* OptimismMintableERC20.
*/
interface IOptimismMintableERC20 {
function remoteToken() external returns (address);
function bridge() external returns (address);
function mint(address _to, uint256 _amount) external;
function burn(address _from, uint256 _amount) external;
}
/**
* @custom:legacy
* @title ILegacyMintableERC20
* @notice This interface was available on the legacy L2StandardERC20 contract. It remains available
* on the OptimismMintableERC20 contract for backwards compatibility.
*/
interface ILegacyMintableERC20 {
function l1Token() external returns (address);
function mint(address _to, uint256 _amount) external;
function burn(address _from, uint256 _amount) external;
}
/**
/**
* @title IOptimismMintableERC721
* @title IOptimismMintableERC721
* @notice Interface for contracts that are compatible with the OptimismMintableERC721 standard.
* @notice Interface for contracts that are compatible with the OptimismMintableERC721 standard.
...
...
packages/contracts-bedrock/contracts/universal/OptimismMintableERC20.sol
View file @
7249dec1
...
@@ -2,7 +2,8 @@
...
@@ -2,7 +2,8 @@
pragma solidity 0.8.15;
pragma solidity 0.8.15;
import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import { ERC20 } from "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import { IERC165, ILegacyMintableERC20, IOptimismMintableERC20 } from "./SupportedInterfaces.sol";
import { IERC165 } from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
import { ILegacyMintableERC20, IOptimismMintableERC20 } from "./IOptimismMintableERC20.sol";
/**
/**
* @title OptimismMintableERC20
* @title OptimismMintableERC20
...
...
packages/contracts-bedrock/contracts/universal/OptimismMintableERC721.sol
View file @
7249dec1
...
@@ -7,7 +7,7 @@ import {
...
@@ -7,7 +7,7 @@ import {
import { ERC721 } from "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import { ERC721 } from "@openzeppelin/contracts/token/ERC721/ERC721.sol";
import { IERC165 } from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
import { IERC165 } from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
import { Strings } from "@openzeppelin/contracts/utils/Strings.sol";
import { Strings } from "@openzeppelin/contracts/utils/Strings.sol";
import { IOptimismMintableERC721 } from "./
SupportedInterfaces
.sol";
import { IOptimismMintableERC721 } from "./
IOptimismMintableERC721
.sol";
/**
/**
* @title OptimismMintableERC721
* @title OptimismMintableERC721
...
...
packages/contracts-bedrock/contracts/universal/StandardBridge.sol
View file @
7249dec1
...
@@ -6,7 +6,7 @@ import { ERC165Checker } from "@openzeppelin/contracts/utils/introspection/ERC16
...
@@ -6,7 +6,7 @@ import { ERC165Checker } from "@openzeppelin/contracts/utils/introspection/ERC16
import { Address } from "@openzeppelin/contracts/utils/Address.sol";
import { Address } from "@openzeppelin/contracts/utils/Address.sol";
import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import { SafeERC20 } from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
import { SafeCall } from "../libraries/SafeCall.sol";
import { SafeCall } from "../libraries/SafeCall.sol";
import { IOptimismMintableERC20, ILegacyMintableERC20 } from "./
SupportedInterfaces
.sol";
import { IOptimismMintableERC20, ILegacyMintableERC20 } from "./
IOptimismMintableERC20
.sol";
import { CrossDomainMessenger } from "./CrossDomainMessenger.sol";
import { CrossDomainMessenger } from "./CrossDomainMessenger.sol";
import { OptimismMintableERC20 } from "./OptimismMintableERC20.sol";
import { OptimismMintableERC20 } from "./OptimismMintableERC20.sol";
...
...
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