Skip to main content
Glama

OpenZeppelin Contracts MCP Server

Official
by OpenZeppelin
zip-scaffold.compile.test.ts2.42 kB
import type { ExecutionContext } from 'ava'; import { zipScaffoldProject } from './zip-scaffold'; import util from 'util'; import child from 'child_process'; import type { GenericOptions } from './build-generic'; import { contractOptionsToContractName } from './zip-shared'; import { runCargoTest, withTemporaryFolderDo, type MakeContract } from './utils/compile-test'; import { assertLayout, expandPathsFromFilesPaths, extractPackage, snapshotZipContents } from './utils/zip-test'; import { buildFungible } from './fungible'; import test from 'ava'; const asyncExec = util.promisify(child.exec); async function runProjectSetUp(t: ExecutionContext, folderPath: string) { const result = await asyncExec(`cd "${folderPath}" && bash setup.sh`); t.regex(result.stdout, /Installation complete/); } const runScaffoldCompilationTest = withTemporaryFolderDo( async (makeContract: MakeContract, opts: GenericOptions, test: ExecutionContext, folderPath: string) => { test.timeout(3_000_000); const scaffoldContractName = contractOptionsToContractName(opts?.kind || 'contract'); const expectedZipFiles = [ 'Cargo.toml', `contracts/${scaffoldContractName}/src/contract.rs`, `contracts/${scaffoldContractName}/src/test.rs`, `contracts/${scaffoldContractName}/src/lib.rs`, `contracts/${scaffoldContractName}/Cargo.toml`, 'setup.sh', 'README-WIZARD.md', ]; const zip = await zipScaffoldProject(makeContract(opts), opts); assertLayout(test, zip, expandPathsFromFilesPaths(expectedZipFiles)); await extractPackage(zip, folderPath); await runCargoTest(test, folderPath); await runProjectSetUp(test, folderPath); await snapshotZipContents(test, zip, expectedZipFiles); }, ); test('placeholder', t => t.assert(true)); // test.serial( // 'zip scaffold fungible simple', // runScaffoldCompilationTest(buildFungible, { // kind: 'Fungible', // name: 'MyToken', // symbol: 'MTK', // premint: undefined, // burnable: false, // mintable: false, // pausable: false, // upgradeable: false, // }), // ); // test.serial( // 'zip scaffold fungible full', // runScaffoldCompilationTest(buildFungible, { // kind: 'Fungible', // name: 'MyToken', // symbol: 'MTK', // premint: '2000', // burnable: true, // mintable: true, // pausable: true, // upgradeable: true, // }), // );

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/OpenZeppelin/contracts-wizard'

If you have feedback or need assistance with the MCP directory API, please join our Discord server