Untitled

 avatar
unknown
javascript
2 years ago
1.9 kB
6
Indexable
const ethers = require('ethers');


async function myAsyncFunction() {

// Import the compiled contract bytecode and ABI
const bytecode = require('C:/Users/aleks/Desktop\GamePieces/artifacts/contracts/GamePieces.sol/GamePieces.json').bytecode;
const abi = require('C:/Users/aleks/Desktop\GamePieces/artifacts/contracts/GamePieces.sol/GamePieces.json').abi;

// Connect to the Ethereum network
const provider = new ethers.providers.JsonRpcProvider("http://localhost:8545");

// Create a wallet to sign transactions
const privateKey = "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80";
const wallet = new ethers.Wallet(privateKey, provider);

// Deploy the contract
const contractFactory = new ethers.ContractFactory(abi, bytecode, wallet);

const contract = await contractFactory.deploy();

// Wait for the contract to be deployed
await contract.deployed();

// Order struct
const order = {
    offerer: "0x5C743aD527b4F9B716E0a7b5c5f5f8D82E4840B5",
    offerings: [{
        itemType: 0,
        identifierOrCriteria: 1,
        startAmount: 2,
        endAmount: 3,
        token: "0x5C743aD527b4F9B716E0a7b5c5f5f8D82E4840B5"
    }],
    considerations: [{
        itemType: 0,
        identifierOrCriteria: 1,
        startAmount: 2,
        endAmount: 3,
        token: "0x5C743aD527b4F9B716E0a7b5c5f5f8D82E4840B5"
    }],
    startAt: 1,
    endAt: 2,
    salt: 3
};

// encode the order struct data
const encodedOrder = ethers.utils.defaultAbiCoder.encode([orderString], [order]);

//get domain separator
let domainSeparator = await contract.domainSeparator();
console.log(domainSeparator);

// Generate the EIP712 hash
const hash = ethers.utils.solidityKeccak256(
    ["bytes32", "bytes32", "bytes"],
    [domainSeparator, "Order(address,OfferItem[],OfferItem[],uint256,uint256,uint256)", encodedOrder]
);
console.log(hash);
}

myAsyncFunction();
Editor is loading...