@etherspot/contracts
Version:
Etherspot Solidity contracts
688 lines • 16.4 kB
JSON
{
"compiler": {
"version": "0.8.4+commit.c7e474f2"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [],
"name": "InvalidAmount",
"type": "error"
},
{
"inputs": [],
"name": "InvalidConfig",
"type": "error"
},
{
"inputs": [],
"name": "InvalidSourcePoolId",
"type": "error"
},
{
"inputs": [],
"name": "ReentrancyError",
"type": "error"
},
{
"inputs": [],
"name": "SenderNotStargateRouter",
"type": "error"
},
{
"inputs": [],
"name": "StargateRouterAddressZero",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint16",
"name": "chainId",
"type": "uint16"
},
{
"indexed": false,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint16",
"name": "poolId",
"type": "uint16"
}
],
"name": "SGAddedPool",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "stargate",
"type": "address"
},
{
"indexed": false,
"internalType": "uint16",
"name": "chainId",
"type": "uint16"
}
],
"name": "SGInitialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "token",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "SGReceivedOnDestination",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "string",
"name": "bridgeUsed",
"type": "string"
},
{
"indexed": false,
"internalType": "address",
"name": "fromToken",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "toToken",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint16",
"name": "chainIdTo",
"type": "uint16"
}
],
"name": "SGTransferStarted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "newAddress",
"type": "address"
}
],
"name": "SGUpdatedRouter",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "newSlippage",
"type": "uint256"
}
],
"name": "SGUpdatedSlippageTolerance",
"type": "event"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "_chainId",
"type": "uint16"
},
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "uint16",
"name": "_poolId",
"type": "uint16"
}
],
"name": "sgAddPool",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "uint256",
"name": "qty",
"type": "uint256"
},
{
"internalType": "address",
"name": "fromToken",
"type": "address"
},
{
"internalType": "address",
"name": "toToken",
"type": "address"
},
{
"internalType": "uint16",
"name": "dstChainId",
"type": "uint16"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "address",
"name": "destStargateComposed",
"type": "address"
}
],
"internalType": "struct StargateFacet.StargateData",
"name": "_sgData",
"type": "tuple"
}
],
"name": "sgBridgeTokens",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "_destChain",
"type": "uint16"
},
{
"internalType": "address",
"name": "_receiver",
"type": "address"
},
{
"internalType": "address",
"name": "_router",
"type": "address"
}
],
"name": "sgCalculateFees",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "_chainId",
"type": "uint16"
},
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "uint16",
"name": "_poolId",
"type": "uint16"
}
],
"name": "sgCheckPoolId",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_stargateRouter",
"type": "address"
},
{
"internalType": "uint16",
"name": "_chainId",
"type": "uint16"
}
],
"name": "sgInitialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "sgMinAmountOut",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "_chainId",
"type": "uint16"
},
{
"internalType": "bytes",
"name": "_srcAddress",
"type": "bytes"
},
{
"internalType": "uint256",
"name": "_nonce",
"type": "uint256"
},
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "uint256",
"name": "amountLD",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_payload",
"type": "bytes"
}
],
"name": "sgReceive",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "_chainId",
"type": "uint16"
},
{
"internalType": "address",
"name": "_token",
"type": "address"
}
],
"name": "sgRetrievePoolId",
"outputs": [
{
"internalType": "uint16",
"name": "",
"type": "uint16"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_newAddress",
"type": "address"
}
],
"name": "sgUpdateRouter",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_newSlippage",
"type": "uint256"
}
],
"name": "sgUpdateSlippageTolerance",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "address",
"name": "_user",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
}
],
"name": "sgWithdraw",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"devdoc": {
"author": "Luke Wickens <luke@pillarproject.io>",
"kind": "dev",
"methods": {
"sgAddPool(uint16,address,uint16)": {
"params": {
"_chainId": "Chain id of new pool (NOT actual chain id - check stargate pool ids docs)",
"_poolId": "Pool id (check stargate pool ids docs)",
"_token": "Address of token"
}
},
"sgBridgeTokens((uint256,address,address,uint16,address,address))": {
"params": {
"_sgData": "- struct containing information required to execute bridge"
}
},
"sgCalculateFees(uint16,address,address)": {
"params": {
"_destChain": "Destination chain id",
"_receiver": "Receiver on destination chain",
"_router": "Address of stargate router"
}
},
"sgCheckPoolId(uint16,address,uint16)": {
"params": {
"_chainId": "Chain id of new pool (NOT actual chain id - check stargate pool ids docs)",
"_poolId": "Pool id (check stargate pool ids docs)",
"_token": "Address of token"
}
},
"sgInitialize(address,uint16)": {
"params": {
"_chainId": "- current chain id",
"_stargateRouter": "- address of the Stargate router contract"
}
},
"sgMinAmountOut(uint256)": {
"params": {
"_amount": "Transfer amount"
}
},
"sgReceive(uint16,bytes,uint256,address,uint256,bytes)": {
"params": {
"_chainId": "The remote chainId sending the tokens",
"_nonce": "The message ordering nonce",
"_payload": "The bytes containing the toAddress",
"_srcAddress": "The remote Bridge address",
"_token": "The token contract on the local chain",
"amountLD": "The qty of local _token contract tokens"
}
},
"sgRetrievePoolId(uint16,address)": {
"params": {
"_chainId": "Chain id of new pool (NOT actual chain id - check stargate pool ids docs)",
"_token": "Address of token"
}
},
"sgUpdateRouter(address)": {
"params": {
"_newAddress": "Address of the new router"
}
},
"sgUpdateSlippageTolerance(uint256)": {
"params": {
"_newSlippage": "New slippage amount"
}
},
"sgWithdraw(address,address,uint256)": {
"params": {
"_amount": "Amount to withdraw",
"_token": "Address of token",
"_user": "Address of receiver of tokens"
}
}
},
"title": "StargateFacet",
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"sgAddPool(uint16,address,uint16)": {
"notice": "Adds a new pool for a specific token and chain"
},
"sgBridgeTokens((uint256,address,address,uint16,address,address))": {
"notice": "initializes state variables for the stargate facet"
},
"sgCalculateFees(uint16,address,address)": {
"notice": "Calculates cross chain fee"
},
"sgCheckPoolId(uint16,address,uint16)": {
"notice": "Checks for a valid token pool on specific chain"
},
"sgInitialize(address,uint16)": {
"notice": "initializes state variables for the Stargate facet"
},
"sgMinAmountOut(uint256)": {
"notice": "Calculates the minimum amount out using slippage tolerance"
},
"sgReceive(uint16,bytes,uint256,address,uint256,bytes)": {
"notice": "required to receive tokens on destination chain"
},
"sgRetrievePoolId(uint16,address)": {
"notice": "Retrieves pool id for a token on a specified chain"
},
"sgUpdateRouter(address)": {
"notice": "Updates stargate router address for deployed chain"
},
"sgUpdateSlippageTolerance(uint256)": {
"notice": "Updates slippage tolerance amount"
},
"sgWithdraw(address,address,uint256)": {
"notice": "Withdraws tokens on contract"
}
},
"notice": "Stargate/LayerZero intergration for bridging tokens",
"version": 1
}
},
"settings": {
"compilationTarget": {
"bridges/facets/StargateFacet.sol": "StargateFacet"
},
"evmVersion": "istanbul",
"libraries": {},
"metadata": {
"bytecodeHash": "ipfs"
},
"optimizer": {
"enabled": false,
"runs": 200
},
"remappings": []
},
"sources": {
"@openzeppelin/contracts/token/ERC20/IERC20.sol": {
"keccak256": "0x9750c6b834f7b43000631af5cc30001c5f547b3ceb3635488f140f60e897ea6b",
"license": "MIT",
"urls": [
"bzz-raw://5a7d5b1ef5d8d5889ad2ed89d8619c09383b80b72ab226e0fe7bde1636481e34",
"dweb:/ipfs/QmebXWgtEfumQGBdVeM6c71McLixYXQP5Bk6kKXuoY4Bmr"
]
},
"@openzeppelin/contracts/token/ERC20/extensions/draft-IERC20Permit.sol": {
"keccak256": "0xf41ca991f30855bf80ffd11e9347856a517b977f0a6c2d52e6421a99b7840329",
"license": "MIT",
"urls": [
"bzz-raw://b2717fd2bdac99daa960a6de500754ea1b932093c946388c381da48658234b95",
"dweb:/ipfs/QmP6QVMn6UeA3ByahyJbYQr5M6coHKBKsf3ySZSfbyA8R7"
]
},
"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol": {
"keccak256": "0x032807210d1d7d218963d7355d62e021a84bf1b3339f4f50be2f63b53cccaf29",
"license": "MIT",
"urls": [
"bzz-raw://11756f42121f6541a35a8339ea899ee7514cfaa2e6d740625fcc844419296aa6",
"dweb:/ipfs/QmekMuk6BY4DAjzeXr4MSbKdgoqqsZnA8JPtuyWc6CwXHf"
]
},
"@openzeppelin/contracts/utils/Address.sol": {
"keccak256": "0xd6153ce99bcdcce22b124f755e72553295be6abcd63804cfdffceb188b8bef10",
"license": "MIT",
"urls": [
"bzz-raw://35c47bece3c03caaa07fab37dd2bb3413bfbca20db7bd9895024390e0a469487",
"dweb:/ipfs/QmPGWT2x3QHcKxqe6gRmAkdakhbaRgx3DLzcakHz5M4eXG"
]
},
"bridges/errors/GenericErrors.sol": {
"keccak256": "0x428005532c28e5c7ab8caf0683f3df926d36d9e4c4d2d84ada50961bbbafc946",
"license": "MIT",
"urls": [
"bzz-raw://c6c8c43e7ff4ed53a714221d42c73aebc8b9bb617f83c6fa39cb0f84ee85ed48",
"dweb:/ipfs/QmRHpwL8iZVmykWEzbqhF6Are4duCKy4fp66JQgtrPnoUT"
]
},
"bridges/errors/StargateErrors.sol": {
"keccak256": "0xc5c2c151907a2b71761be3cb2c1e4dcb65e29f6ef67ed8056a7f3845a770dde5",
"license": "MIT",
"urls": [
"bzz-raw://6a5964bdd4c309a86bbce8050e3cb944a3bbfa38b326d43f441652d55557f5f7",
"dweb:/ipfs/QmRXp3hJAFMMdJEw3nX9yNNwdoF35X7nFP1MRB3NCqiVA8"
]
},
"bridges/facets/StargateFacet.sol": {
"keccak256": "0xc591fc75e7b2ad1604897e961a5ef65c4329b94d7dd32f84452ca10bbdd2dc6f",
"license": "MIT",
"urls": [
"bzz-raw://755302a0774e842774bf8ae1f97bf281d80e828d0ed85f6cd85aef62e8c5990a",
"dweb:/ipfs/QmUiEmskPBwZ7AkLZqrdqtnTtAsQpikc96sY9rdtRu4Uwi"
]
},
"bridges/interfaces/IDiamondCut.sol": {
"keccak256": "0x895069af98e2df3257996711d1f870eff1d97a445c952d5f89621ea508dafbd6",
"license": "MIT",
"urls": [
"bzz-raw://97f085c1d787a64ec56dcb4c6d03dc84bb457006bf2e2761c69f3b2873fc1d71",
"dweb:/ipfs/Qmd8JyuZNP6icA9HqzpRSzQhFHP6CQvHbGEp7AhfGLEmP4"
]
},
"bridges/interfaces/IStargateReceiver.sol": {
"keccak256": "0x667379c5980740888b48e9db4d340402c049c131c182c29b50820519f18d74cc",
"license": "MIT",
"urls": [
"bzz-raw://cc4e7697aa186e644a2ca2ff9d605849c9a61d212a0a07746f8d5cf06a925c90",
"dweb:/ipfs/QmVLJX9wEKJk3RxWHA2MTU9AbjJuFhFhFv4hAfif8WqVfg"
]
},
"bridges/interfaces/IStargateRouter.sol": {
"keccak256": "0x9d11f889b2915d08282cb4787091858bfb72f811e4fb92f43d1fef8ae64394d7",
"license": "MIT",
"urls": [
"bzz-raw://bcf1285a378e2d6ad43db50a62d004532e0d4a43917fdf943b38cb2f133e328e",
"dweb:/ipfs/QmeS9zA4GzdUrNZiEdrpcUENuVGHVYPJ4iUJ2aRcYxiYub"
]
},
"bridges/libs/LibDiamond.sol": {
"keccak256": "0xf27658fee344f2b02d6881ee6c3b853868ecceafe72867256b9cb94d75888c52",
"license": "MIT",
"urls": [
"bzz-raw://409c3f67362abba3c74f31ef99f2f3692b5a4ca0c1fc025c62da1b8251d90df5",
"dweb:/ipfs/QmPryPC22UfHNj6xNp3B1CcB4nFan32iDc4jsM16EMiTuG"
]
},
"common/helpers/DiamondReentrancyGuard.sol": {
"keccak256": "0x80669f5e1b6d50ad0b4020e8caeb447f515e3b904b14cad5d03cc32e345753d5",
"license": "UNLICENSED",
"urls": [
"bzz-raw://5411c17875ae78dc626ca80fb00a2f57f8b1652234ba16d2bfa0c0d7822447a5",
"dweb:/ipfs/QmeY92iGRP7T7eNz7avJRwcA7AETSDNMhwujjEHarHJxY2"
]
}
},
"version": 1
}