Skip to content

Commit

Permalink
feat: remappings and renamings
Browse files Browse the repository at this point in the history
  • Loading branch information
0xShaito committed Aug 30, 2023
1 parent bc6834e commit 76d0e77
Show file tree
Hide file tree
Showing 16 changed files with 43 additions and 48 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/sync.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:

jobs:
sync:
if: github.repository == 'defi-wonderland/xTokens-private'
if: github.repository == 'defi-wonderland/xERC20-private'
runs-on: ubuntu-latest
steps:
- name: Check out github repository
Expand All @@ -22,7 +22,7 @@ jobs:
ssh-private-key: ${{ secrets.SYNC_SSH_PRIVATE_KEY }}

- name: Add Remote
run: git remote add public [email protected]:defi-wonderland/xTokens.git
run: git remote add public [email protected]:defi-wonderland/xERC20.git

- name: Sync branch
run: git push public ${{ github.ref_name }}
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# xTokens
# xERC20

xTokens is a standard for bridged tokens. A common interface to be used across different implementations of bridges to keep liquidity concentrated and improve user experience on-chain.
xERC20 is a standard for bridged tokens. A common interface to be used across different implementations of bridges to keep liquidity concentrated and improve user experience on-chain.

### Contracts

*XERC20*: The main logic behind the xTokens. XERC20 is a standard for bridges to manage the same liquidity when bridging. It allows its owner to approve bridges and add limits to them for minting and burning the XERC20 token. The XERC20 standard is compatible with two different types of bridge behaviours, bridges calling mint/burn from the user (or other function names through adapters) and bridges that transfer from the user to the bridge contract. On the latter, XERC20 tokens that are received by the bridge get burned and when a bridge transfers tokens out, they get minted again.
*XERC20*: A standard for bridges to manage the same liquidity when bridging. It allows its owner to approve bridges and add limits to them for minting and burning the XERC20 token. The XERC20 standard is compatible with two different types of bridge behaviours, bridges calling mint/burn from the user (or other function names through adapters) and bridges that transfer from the user to the bridge contract. On the latter, XERC20 tokens that are received by the bridge get burned and when a bridge transfers tokens out, they get minted again.

*XERC20Lockbox*: The lockbox works as a wrapper of an ERC20. It mints XERC20 tokens at a 1:1 ratio when receiving ERC20 tokens and it unlocks the ERC20 the other way around. The lockbox can be deployed on any chain that has a canonical token representation, chains that do not currently have a canonical representation can avoid deploying a Lockbox and use the XERC20 as the default implementation for the chain.

Expand Down
7 changes: 1 addition & 6 deletions remappings.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,4 @@ prb/test/=lib/prb-test/src/
forge-std/=lib/forge-std/src
isolmate/=lib/isolmate/src
@openzeppelin/=lib/openzeppelin-contracts
permit2/=lib/permit2

contracts/=solidity/contracts
interfaces/=solidity/interfaces
test/=solidity/test
libraries/=solidity/libraries
permit2/=lib/permit2
2 changes: 1 addition & 1 deletion solidity/contracts/XERC20.sol
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity >=0.8.4 <0.9.0;

import {IXERC20} from 'interfaces/IXERC20.sol';
import {IXERC20} from '../interfaces/IXERC20.sol';
import {ERC20} from '@openzeppelin/contracts/token/ERC20/ERC20.sol';
import {ERC20Permit} from '@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Permit.sol';
import {Ownable} from '@openzeppelin/contracts/access/Ownable.sol';
Expand Down
6 changes: 3 additions & 3 deletions solidity/contracts/XERC20Factory.sol
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity >=0.8.4 <0.9.0;

import {XERC20} from 'contracts/XERC20.sol';
import {IXERC20Factory} from 'interfaces/IXERC20Factory.sol';
import {XERC20Lockbox} from 'contracts/XERC20Lockbox.sol';
import {XERC20} from '../contracts/XERC20.sol';
import {IXERC20Factory} from '../interfaces/IXERC20Factory.sol';
import {XERC20Lockbox} from '../contracts/XERC20Lockbox.sol';
import {CREATE3} from 'isolmate/utils/CREATE3.sol';
import {EnumerableSet} from '@openzeppelin/contracts/utils/structs/EnumerableSet.sol';

Expand Down
4 changes: 2 additions & 2 deletions solidity/contracts/XERC20Lockbox.sol
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
// SPDX-License-Identifier: UNLICENSED
pragma solidity >=0.8.4 <0.9.0;

import {IXERC20} from 'interfaces/IXERC20.sol';
import {IXERC20} from '../interfaces/IXERC20.sol';
import {IERC20} from '@openzeppelin/contracts/token/ERC20/ERC20.sol';
import {SafeERC20} from '@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol';
import {SafeCast} from '@openzeppelin/contracts/utils/math/SafeCast.sol';
import {IXERC20Lockbox, IAllowanceTransfer} from 'interfaces/IXERC20Lockbox.sol';
import {IXERC20Lockbox, IAllowanceTransfer} from '../interfaces/IXERC20Lockbox.sol';
import {IPermit2} from 'permit2/src/interfaces/IPermit2.sol';

contract XERC20Lockbox is IXERC20Lockbox {
Expand Down
6 changes: 3 additions & 3 deletions solidity/scripts/MultichainCreateXERC20.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@ pragma solidity >=0.8.4 <0.9.0;

import {console} from 'forge-std/console.sol';
import {Test} from 'forge-std/Test.sol';
import {XERC20} from 'contracts/XERC20.sol';
import {XERC20Lockbox} from 'contracts/XERC20Lockbox.sol';
import {XERC20Factory, IXERC20Factory} from 'contracts/XERC20Factory.sol';
import {XERC20} from '../contracts/XERC20.sol';
import {XERC20Lockbox} from '../contracts/XERC20Lockbox.sol';
import {XERC20Factory, IXERC20Factory} from '../contracts/XERC20Factory.sol';
import {Script} from 'forge-std/Script.sol';
import {ScriptingLibrary} from './ScriptingLibrary/ScriptingLibrary.sol';

Expand Down
2 changes: 1 addition & 1 deletion solidity/scripts/MultichainDeploy.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ pragma solidity >=0.8.4 <0.9.0;

import {console} from 'forge-std/console.sol';
import {Test} from 'forge-std/Test.sol';
import {XERC20Factory, IXERC20Factory} from 'contracts/XERC20Factory.sol';
import {XERC20Factory, IXERC20Factory} from '../contracts/XERC20Factory.sol';
import {Script} from 'forge-std/Script.sol';
import {ScriptingLibrary} from './ScriptingLibrary/ScriptingLibrary.sol';

Expand Down
2 changes: 1 addition & 1 deletion solidity/scripts/ScriptingLibrary/ScriptingLibrary.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ pragma solidity >=0.8.4 <0.9.0;

import {console} from 'forge-std/console.sol';
import {Test} from 'forge-std/Test.sol';
import {XERC20Factory, IXERC20Factory} from 'contracts/XERC20Factory.sol';
import {XERC20Factory, IXERC20Factory} from '../../contracts/XERC20Factory.sol';
import {Script} from 'forge-std/Script.sol';

contract ScriptingLibrary {
Expand Down
8 changes: 4 additions & 4 deletions solidity/test/e2e/Common.sol
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.4 <0.9.0;

import {DSTestFull} from 'test/utils/DSTestFull.sol';
import {DSTestFull} from '../../test/utils/DSTestFull.sol';
import {console} from 'forge-std/console.sol';
import {IERC20} from 'isolmate/interfaces/tokens/IERC20.sol';
import {Test} from 'forge-std/Test.sol';
import {XERC20} from 'contracts/XERC20.sol';
import {XERC20Lockbox} from 'contracts/XERC20Lockbox.sol';
import {XERC20} from '../../contracts/XERC20.sol';
import {XERC20Lockbox} from '../../contracts/XERC20Lockbox.sol';

import {XERC20Factory, IXERC20Factory} from 'contracts/XERC20Factory.sol';
import {XERC20Factory, IXERC20Factory} from '../../contracts/XERC20Factory.sol';

contract CommonE2EBase is Test {
uint256 internal constant _FORK_BLOCK = 17_218_458;
Expand Down
4 changes: 2 additions & 2 deletions solidity/test/e2e/XERC20.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
pragma solidity >=0.8.4 <0.9.0;

import {CommonE2EBase} from './Common.sol';
import {XERC20Lockbox} from 'contracts/XERC20Lockbox.sol';
import {XERC20, IXERC20} from 'contracts/XERC20.sol';
import {XERC20Lockbox} from '../../contracts/XERC20Lockbox.sol';
import {XERC20, IXERC20} from '../../contracts/XERC20.sol';

contract E2EMintAndBurn is CommonE2EBase {
function testMint() public {
Expand Down
6 changes: 3 additions & 3 deletions solidity/test/e2e/XERC20Factory.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@
pragma solidity >=0.8.4 <0.9.0;

import {CommonE2EBase} from './Common.sol';
import {XERC20Lockbox} from 'contracts/XERC20Lockbox.sol';
import {XERC20} from 'contracts/XERC20.sol';
import {XERC20Factory, IXERC20Factory} from 'contracts/XERC20Factory.sol';
import {XERC20Lockbox} from '../../contracts/XERC20Lockbox.sol';
import {XERC20} from '../../contracts/XERC20.sol';
import {XERC20Factory, IXERC20Factory} from '../../contracts/XERC20Factory.sol';

contract E2EDeployment is CommonE2EBase {
function testDeploy() public {
Expand Down
4 changes: 2 additions & 2 deletions solidity/test/e2e/XERC20Lockbox.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ import {PermitHash} from 'permit2/src/libraries/PermitHash.sol';
import {IAllowanceTransfer} from 'permit2/src/interfaces/IAllowanceTransfer.sol';
import {PermitSignature} from 'permit2/test/utils/PermitSignature.sol';
import {IEIP712} from 'permit2/src/interfaces/IEIP712.sol';
import {XERC20Lockbox} from 'contracts/XERC20Lockbox.sol';
import {XERC20} from 'contracts/XERC20.sol';
import {XERC20Lockbox} from '../../contracts/XERC20Lockbox.sol';
import {XERC20} from '../../contracts/XERC20.sol';
import {console} from 'forge-std/console.sol';

contract E2ELockbox is CommonE2EBase, PermitSignature {
Expand Down
8 changes: 4 additions & 4 deletions solidity/test/unit/XERC20.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ pragma solidity >=0.8.4 <0.9.0;

import {Test} from 'forge-std/Test.sol';
import {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol';
import {DSTestFull} from 'test/utils/DSTestFull.sol';
import {XERC20} from 'contracts/XERC20.sol';
import {IXERC20Factory} from 'interfaces/IXERC20Factory.sol';
import {IXERC20} from 'interfaces/IXERC20.sol';
import {DSTestFull} from '../../test/utils/DSTestFull.sol';
import {XERC20} from '../../contracts/XERC20.sol';
import {IXERC20Factory} from '../../interfaces/IXERC20Factory.sol';
import {IXERC20} from '../../interfaces/IXERC20.sol';

abstract contract Base is Test {
address internal _owner = vm.addr(1);
Expand Down
12 changes: 6 additions & 6 deletions solidity/test/unit/XERC20Factory.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@ pragma solidity >=0.8.4 <0.9.0;

import {Test} from 'forge-std/Test.sol';
import {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol';
import {DSTestFull} from 'test/utils/DSTestFull.sol';
import {XERC20} from 'contracts/XERC20.sol';
import {XERC20Factory} from 'contracts/XERC20Factory.sol';
import {XERC20Lockbox} from 'contracts/XERC20Lockbox.sol';
import {IXERC20} from 'interfaces/IXERC20.sol';
import {IXERC20Factory} from 'interfaces/IXERC20Factory.sol';
import {DSTestFull} from '../../test/utils/DSTestFull.sol';
import {XERC20} from '../../contracts/XERC20.sol';
import {XERC20Factory} from '../../contracts/XERC20Factory.sol';
import {XERC20Lockbox} from '../../contracts/XERC20Lockbox.sol';
import {IXERC20} from '../../interfaces/IXERC20.sol';
import {IXERC20Factory} from '../../interfaces/IXERC20Factory.sol';
import {CREATE3} from 'isolmate/utils/CREATE3.sol';

contract XERC20FactoryForTest is XERC20Factory {
Expand Down
10 changes: 5 additions & 5 deletions solidity/test/unit/XERC20Lockbox.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ pragma solidity >=0.8.4 <0.9.0;
import {Test} from 'forge-std/Test.sol';
import {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol';
import {ERC20} from '@openzeppelin/contracts/token/ERC20/ERC20.sol';
import {DSTestFull} from 'test/utils/DSTestFull.sol';
import {XERC20} from 'contracts/XERC20.sol';
import {XERC20Lockbox} from 'contracts/XERC20Lockbox.sol';
import {IXERC20Lockbox} from 'interfaces/IXERC20Lockbox.sol';
import {IXERC20} from 'interfaces/IXERC20.sol';
import {DSTestFull} from '../../test/utils/DSTestFull.sol';
import {XERC20} from '../../contracts/XERC20.sol';
import {XERC20Lockbox} from '../../contracts/XERC20Lockbox.sol';
import {IXERC20Lockbox} from '../../interfaces/IXERC20Lockbox.sol';
import {IXERC20} from '../../interfaces/IXERC20.sol';
import {IAllowanceTransfer} from 'permit2/src/interfaces/IAllowanceTransfer.sol';
import {IPermit2} from 'permit2/src/interfaces/IPermit2.sol';

Expand Down

0 comments on commit 76d0e77

Please sign in to comment.