UNPKG

@antefinance/ante-sdk

Version:

Library for interacting with Ante smart contracts

23 lines (22 loc) 989 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AllowlistGate = void 0; const merkle_tree_1 = require("@openzeppelin/merkle-tree"); const viem_1 = require("viem"); const buildMerkleTree = (addresses) => { return merkle_tree_1.StandardMerkleTree.of(addresses.map((address) => [(0, viem_1.getAddress)(address)]), ['address'], { sortLeaves: true }); }; const buildConfiguration = (manager, addresses) => { const tree = buildMerkleTree(addresses); const root = tree.root; return (0, viem_1.encodeAbiParameters)([{ type: 'address' }, { type: 'bytes' }], [manager, (0, viem_1.encodeAbiParameters)([{ type: 'bytes32' }], [root])]); }; const getProof = (candidate, addresses) => { const tree = buildMerkleTree(addresses); const proof = tree.getProof([(0, viem_1.getAddress)(candidate)]); return (0, viem_1.encodeAbiParameters)([{ type: 'bytes32[]' }], [proof]); }; exports.AllowlistGate = { buildConfiguration, getProof, };