lampamazaza-new2-contract-types
v0.6.2
Published
This package provides TypeScript type definitions for Defuse Protocol contracts. It contains automatically generated TypeScript interfaces derived from the Defuse Protocol contract ABI.
Downloads
100
Readme
@defuse-protocol/contract-types
This package provides TypeScript type definitions for Defuse Protocol contracts. It contains automatically generated TypeScript interfaces derived from the Defuse Protocol contract ABI.
Installation
npm install @defuse-protocol/contract-typesStandard Schema
Validators are Standard Schema compliant and work with any library that accepts the spec (TanStack Form, Hono, tRPC, etc.). See standard-schema.test.ts for usage examples.
Using with Schema Libraries
class-validator (NestJS)
See class-validator.test.ts for the ValidateWithSchema decorator that works with NestJS validation pipes.
Zod
Two options available in zod.test.ts:
z.fromJSONSchema()- validates raw structure only, no JSON string parsingtoZodSchema()wrapper - validates and parses inner JSON strings
Valibot
See valibot.test.ts for the wrapper function.
ArkType
See arktype.test.ts for the wrapper function.
Usage
import { Intent } from '@defuse-protocol/contract-types';
// Use the generated types in your application
const transferIntent: Intent = {
intent: "transfer",
receiver_id: "receiver.near",
tokens: {
"token.near": "1000000000000000000000000"
}
};Available Types
This package exports the following TypeScript types:
Intent- Types for various intent actions (transfer, add_public_key, remove_public_key, etc.)- And other contract-related types derived from the Defuse Protocol ABI
Development
Prerequisites
- PNPM (v10.14.0)
Build
pnpm run buildGenerating Types
The types are automatically generated from the Defuse Protocol contract ABI using the script at scripts/gen-defuse-types.ts. This script extracts the type definitions from the contract ABI and converts them to TypeScript interfaces.
To regenerate the types:
# Run the type generation script
cd packages/contract-types
pnpm run gen-defuse-typesDevelopment Mode
pnpm run devLint
pnpm run lintLicense
MIT License © 2025 NEAR Foundation
