diff --git a/.gitmodules b/.gitmodules index f27e450..56cf48f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -10,3 +10,12 @@ [submodule "lib/openzeppelin-foundry-upgrades"] path = lib/openzeppelin-foundry-upgrades url = https://github.com/OpenZeppelin/openzeppelin-foundry-upgrades +[submodule "lib/devtools"] + path = lib/devtools + url = https://github.com/layerzero-labs/devtools +[submodule "lib/LayerZero-v2"] + path = lib/LayerZero-v2 + url = https://github.com/layerzero-labs/LayerZero-v2 +[submodule "lib/solidity-bytes-utils"] + path = lib/solidity-bytes-utils + url = https://github.com/GNSPS/solidity-bytes-utils.git diff --git a/foundry.lock b/foundry.lock index 0ec0c87..4448473 100644 --- a/foundry.lock +++ b/foundry.lock @@ -1,4 +1,7 @@ { + "lib/devtools": { + "rev": "8b1a994804581232e791983cf8ed770c9abcf0fb" + }, "lib/forge-std": { "rev": "8bbcf6e3f8f62f419e5429a0bd89331c85c37824" }, diff --git a/foundry.toml b/foundry.toml index 98376fc..b6224a2 100644 --- a/foundry.toml +++ b/foundry.toml @@ -11,9 +11,14 @@ build_info = true extra_output = ["storageLayout"] remappings = [ + '@layerzerolabs/oft-evm/=lib/devtools/packages/oft-evm/', + '@layerzerolabs/oapp-evm/=lib/devtools/packages/oapp-evm/', + '@layerzerolabs/lz-evm-protocol-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/protocol', + '@layerzerolabs/lz-evm-messagelib-v2/=lib/layerzero-v2/packages/layerzero-v2/evm/messagelib', "@openzeppelin/contracts/=lib/openzeppelin-contracts-upgradeable/lib/openzeppelin-contracts/contracts/", "@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/", - "openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/" + "openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/", + 'solidity-bytes-utils/=lib/solidity-bytes-utils/', ] # Network configurations diff --git a/lib/LayerZero-v2 b/lib/LayerZero-v2 new file mode 160000 index 0000000..3801b99 --- /dev/null +++ b/lib/LayerZero-v2 @@ -0,0 +1 @@ +Subproject commit 3801b9929281261b907eb3482a82364ad00d7868 diff --git a/lib/devtools b/lib/devtools new file mode 160000 index 0000000..8b1a994 --- /dev/null +++ b/lib/devtools @@ -0,0 +1 @@ +Subproject commit 8b1a994804581232e791983cf8ed770c9abcf0fb diff --git a/lib/solidity-bytes-utils b/lib/solidity-bytes-utils new file mode 160000 index 0000000..fc50245 --- /dev/null +++ b/lib/solidity-bytes-utils @@ -0,0 +1 @@ +Subproject commit fc502455bb2a7e26a743378df042612dd50d1eb9 diff --git a/src/oft/StakedUSXOFT.sol b/src/oft/StakedUSXOFT.sol new file mode 100644 index 0000000..0b913a7 --- /dev/null +++ b/src/oft/StakedUSXOFT.sol @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.30; + +import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; +import {OFT} from "@layerzerolabs/oft-evm/contracts/OFT.sol"; + +contract StakedUSXOFT is OFT { + constructor( + string memory _name, + string memory _symbol, + address _lzEndpoint, + address _owner + ) OFT(_name, _symbol, _lzEndpoint, _owner) Ownable(_owner) {} +} diff --git a/src/oft/StakedUSXOFTAdaptor.sol b/src/oft/StakedUSXOFTAdaptor.sol new file mode 100644 index 0000000..76de320 --- /dev/null +++ b/src/oft/StakedUSXOFTAdaptor.sol @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.30; + +import {OFTAdapter} from "@layerzerolabs/oft-evm/contracts/OFTAdapter.sol"; +import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; + +contract StakedUSXOFTAdaptor is OFTAdapter { + constructor( + address _token, + address _lzEndpoint, + address _owner + ) OFTAdapter(_token, _lzEndpoint, _owner) Ownable(_owner) {} +} diff --git a/src/oft/USXOFT.sol b/src/oft/USXOFT.sol new file mode 100644 index 0000000..2ba08a0 --- /dev/null +++ b/src/oft/USXOFT.sol @@ -0,0 +1,14 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.30; + +import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; +import {OFT} from "@layerzerolabs/oft-evm/contracts/OFT.sol"; + +contract USXOFT is OFT { + constructor( + string memory _name, + string memory _symbol, + address _lzEndpoint, + address _owner + ) OFT(_name, _symbol, _lzEndpoint, _owner) Ownable(_owner) {} +} diff --git a/src/oft/USXOFTAdaptor.sol b/src/oft/USXOFTAdaptor.sol new file mode 100644 index 0000000..7c9f080 --- /dev/null +++ b/src/oft/USXOFTAdaptor.sol @@ -0,0 +1,13 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.30; + +import {OFTAdapter} from "@layerzerolabs/oft-evm/contracts/OFTAdapter.sol"; +import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; + +contract USXOFTAdaptor is OFTAdapter { + constructor( + address _token, + address _lzEndpoint, + address _owner + ) OFTAdapter(_token, _lzEndpoint, _owner) Ownable(_owner) {} +}