Fullstack Interchain dApp on Linea with Axelar 🔥
- Clone the project
- Install dependencies with
npm install
- Run the project with
npm run dev
- Create a new folder called
truffle
with the following commandmkdir truffle
- cd into the folder
cd truffle
[ | |
{ | |
"inputs": [ | |
{ "internalType": "string", "name": "name_", "type": "string" }, | |
{ "internalType": "string", "name": "symbol_", "type": "string" }, | |
{ | |
"internalType": "uint256", | |
"name": "initialBalance_", | |
"type": "uint256" | |
}, |
[ | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "interchainTokenServiceAddress", | |
"type": "address" | |
} | |
], | |
"stateMutability": "nonpayable", |
[ | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "interchainTokenService_", | |
"type": "address" | |
} | |
], | |
"stateMutability": "nonpayable", |
[ | |
{ | |
"inputs": [ | |
{ | |
"internalType": "address", | |
"name": "tokenManagerDeployer_", | |
"type": "address" | |
}, | |
{ | |
"internalType": "address", |
// SPDX-License-Identifier: MIT | |
pragma solidity ^0.8.0; | |
import { IERC20 } from '@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IERC20.sol'; | |
/** | |
* @dev Implementation of the {IERC20} interface. | |
* | |
* This implementation is agnostic to the way tokens are created. This means |
// SPDX-License-Identifier: MIT | |
pragma solidity ^0.8.0; | |
import { IERC20 } from '@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IERC20.sol'; | |
/** | |
* @dev Implementation of the {IERC20} interface. | |
* | |
* This implementation is agnostic to the way tokens are created. This means |
// Axelar chains config https://github.com/axelarnetwork/axelar-contract-deployments/blob/d4b2a6ad23d3a24eaf5e94a5a2406e4a27c91431/axelar-chains-config/info/testnet.json#L1059 | |
// Base Goerli test | |
const hre = require("hardhat"); | |
const crypto = require("crypto"); | |
const ITSContractABI = require("../utils/its/abi"); | |
const tokenManagerMintBurnABI = require("../utils/its/tokenManagerMintBurnABI"); | |
const MINT_BURN = 0; | |
const LOCK_UNLOCK = 2; |
{ | |
"compilerOptions": { | |
/* Visit https://aka.ms/tsconfig to read more about this file */ | |
/* Projects */ | |
// "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ | |
// "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ | |
// "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ | |
// "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ | |
// "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ |
// SPDX-License-Identifier: MIT | |
pragma solidity ^0.8.0; | |
import { AxelarExecutable } from '@axelar-network/axelar-gmp-sdk-solidity/contracts/executable/AxelarExecutable.sol'; | |
import { IAxelarGateway } from '@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IAxelarGateway.sol'; | |
import { IAxelarGasService } from '@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IAxelarGasService.sol'; | |
import { IERC20 } from '@axelar-network/axelar-gmp-sdk-solidity/contracts/interfaces/IERC20.sol'; | |
contract ExecutableSample is AxelarExecutable { | |
string public message; |