@clarigen/core 1.0.0-next.28 → 1.0.0-next.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -46,18 +46,23 @@ declare type ClarityAbiTypeTraitReference = 'trait_reference';
46
46
  declare type ClarityAbiTypeNone = 'none';
47
47
  declare type ClarityAbiTypePrimitive = ClarityAbiTypeUInt128 | ClarityAbiTypeInt128 | ClarityAbiTypeBool | ClarityAbiTypePrincipal | ClarityAbiTypeTraitReference | ClarityAbiTypeNone;
48
48
  declare type ClarityAbiType = ClarityAbiTypePrimitive | ClarityAbiTypeBuffer | ClarityAbiTypeResponse | ClarityAbiTypeOptional | ClarityAbiTypeTuple | ClarityAbiTypeList | ClarityAbiTypeStringAscii | ClarityAbiTypeStringUtf8 | ClarityAbiTypeTraitReference;
49
+ interface ClarityAbiArg {
50
+ name: string;
51
+ type: ClarityAbiType;
52
+ }
49
53
  interface ClarityAbiFunction {
50
54
  name: string;
51
55
  access: 'private' | 'public' | 'read_only';
52
- args: {
53
- name: string;
54
- type: ClarityAbiType;
55
- }[];
56
+ args: ClarityAbiArg[];
56
57
  outputs: {
57
58
  type: ClarityAbiType;
58
59
  };
59
60
  }
60
- declare type TypedAbiFunction<T extends any[], R> = ClarityAbiFunction & {
61
+ declare type TypedAbiArg<T, N extends string> = {
62
+ _t?: T;
63
+ name: N;
64
+ };
65
+ declare type TypedAbiFunction<T extends TypedAbiArg<unknown, string>[], R> = ClarityAbiFunction & {
61
66
  _t?: T;
62
67
  _r?: R;
63
68
  };
@@ -87,7 +92,7 @@ interface ClarityAbiTypeNonFungibleToken {
87
92
  }
88
93
  declare type TypedAbi = Readonly<{
89
94
  functions: {
90
- [key: string]: TypedAbiFunction<unknown[], unknown>;
95
+ [key: string]: TypedAbiFunction<TypedAbiArg<unknown, string>[], unknown>;
91
96
  };
92
97
  variables: {
93
98
  [key: string]: TypedAbiVariable<unknown>;
@@ -106,12 +111,16 @@ declare type TypedAbi = Readonly<{
106
111
  interface ResponseOk<T, E> {
107
112
  value: T;
108
113
  isOk: true;
114
+ _e?: E;
109
115
  }
110
116
  interface ResponseErr<T, E> {
111
117
  value: E;
112
118
  isOk: false;
119
+ _o?: T;
113
120
  }
114
121
  declare type Response<Ok, Err> = ResponseOk<Ok, Err> | ResponseErr<Ok, Err>;
122
+ declare type OkType<R> = R extends ResponseOk<infer V, unknown> ? V : never;
123
+ declare type ErrType<R> = R extends ResponseErr<unknown, infer V> ? V : never;
115
124
 
116
125
  declare function ok<T, Err = never>(value: T): ResponseOk<T, Err>;
117
126
  declare function err<Ok = never, T = unknown>(value: T): ResponseErr<Ok, T>;
@@ -135,7 +144,10 @@ declare type TupleInput = Record<string, any>;
135
144
  declare type CVInput = string | boolean | TupleInput | number | bigint;
136
145
  declare function parseToCV(input: CVInput, type: ClarityAbiType$1): ClarityValue;
137
146
  declare function cvToString(val: ClarityValue, encoding?: 'tryAscii' | 'hex'): string;
138
- declare function transformArgsToCV(func: ClarityAbiFunction$1, args: any[]): ClarityValue[];
147
+ declare function transformObjectArgs(func: ClarityAbiFunction$1, args: Record<string, any>): ClarityValue[];
148
+ declare function transformArgsArray(func: ClarityAbiFunction$1, args: any[]): ClarityValue[];
149
+ declare function transformArgsToCV(func: ClarityAbiFunction$1, args: any[] | [Record<string, any>]): ClarityValue[];
150
+ declare function findJsTupleKey(key: string, input: Record<string, any>): string;
139
151
  declare function expectOk<Ok>(response: Response<Ok, any>): Ok;
140
152
  declare function expectErr<Err>(response: Response<any, Err>): Err;
141
153
  declare type AbiPrimitiveTo<T extends ClarityAbiTypePrimitive> = T extends ClarityAbiTypeInt128 ? bigint : T extends ClarityAbiTypeUInt128 ? bigint : T extends ClarityAbiTypeBool ? boolean : T extends ClarityAbiTypePrincipal ? string : T extends ClarityAbiTypeTraitReference ? string : T extends ClarityAbiTypeNone ? never : T;
@@ -145,11 +157,11 @@ declare type ReadonlyTuple = {
145
157
  declare type TupleTypeUnion<T> = T extends Readonly<ClarityAbiTypeTuple$1['tuple'][number]> ? {
146
158
  -readonly [Z in T['name']]: AbiTypeTo<T['type']>;
147
159
  } : never;
148
- declare type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
149
- declare type Compact<T> = {
160
+ declare type UnionToIntersection$1<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
161
+ declare type Compact$1<T> = {
150
162
  [K in keyof T]: T[K];
151
163
  };
152
- declare type AbiTupleTo<T extends ReadonlyTuple> = Compact<UnionToIntersection<TupleTypeUnion<T['tuple'][number]>>>;
164
+ declare type AbiTupleTo<T extends ReadonlyTuple> = Compact$1<UnionToIntersection$1<TupleTypeUnion<T['tuple'][number]>>>;
153
165
  declare type AbiTypeTo<T extends ClarityAbiType$1 | ReadonlyTuple> = T extends ClarityAbiTypePrimitive ? AbiPrimitiveTo<T> : T extends ClarityAbiTypeBuffer ? Uint8Array : T extends ClarityAbiTypeStringAscii ? string : T extends ClarityAbiTypeStringUtf8 ? string : T extends ClarityAbiTypeList ? AbiTypeTo<T['list']['type']>[] : T extends ClarityAbiTypeOptional ? AbiTypeTo<T['optional']> | null : T extends ClarityAbiTypeResponse ? Response<AbiTypeTo<T['response']['ok']>, AbiTypeTo<T['response']['error']>> : T extends ReadonlyTuple ? AbiTupleTo<T> : T;
154
166
 
155
167
  interface ResultAssets {
@@ -180,7 +192,8 @@ declare type ContractInstances<T extends Contracts<any>> = {
180
192
 
181
193
  declare const TESTNET_BURN_ADDRESS = "ST000000000000000000002AMW42H";
182
194
  declare const MAINNET_BURN_ADDRESS = "SP000000000000000000002Q6VF78";
183
- declare const toCamelCase: (input: string | number | symbol, titleCase?: boolean | undefined) => string;
195
+ declare const toCamelCase: (input: string | number | symbol, titleCase?: boolean) => string;
196
+ declare function toKebabCase(input: string): string;
184
197
  declare const getContractNameFromPath: (path: string) => string;
185
198
  declare const getContractIdentifier: <T>(contract: Contract<T>) => string;
186
199
  declare const getContractPrincipalCV: <T>(contract: Contract<T>) => ContractPrincipalCV;
@@ -332,6 +345,89 @@ interface MakeContractsOptions {
332
345
  }
333
346
  declare function makeContracts<T extends Contracts<any>>(contracts: T, options?: MakeContractsOptions): ContractInstances<T>;
334
347
 
348
+ interface ContractCall<T> {
349
+ function: ClarityAbiFunction;
350
+ nativeArgs: any[];
351
+ functionArgs: ClarityValue[];
352
+ contractAddress: string;
353
+ contractName: string;
354
+ _r?: T;
355
+ }
356
+ interface ContractCallTyped<Args extends UnknownArgs, R> extends Omit<ContractCall<R>, 'nativeArgs'> {
357
+ nativeArgs: ArgsType<Args>;
358
+ }
359
+ declare type ContractFunctions = {
360
+ [key: string]: TypedAbiFunction<UnknownArgs, unknown>;
361
+ };
362
+ declare type AllContracts = Record<string, TypedAbi>;
363
+ declare type UnknownArg = TypedAbiArg<unknown, string>;
364
+ declare type UnknownArgs = UnknownArg[];
365
+ declare type ArgsTuple<T extends UnknownArgs> = {
366
+ [K in keyof T]: T[K] extends TypedAbiArg<infer A, string> ? A : never;
367
+ };
368
+ declare type ArgsRecordUnion<T extends TypedAbiArg<unknown, string>> = T extends TypedAbiArg<infer A, infer N> ? {
369
+ [K in T as N]: A;
370
+ } : never;
371
+ declare type InnerUnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
372
+ declare type Compact<T> = {
373
+ [K in keyof T]: T[K];
374
+ };
375
+ declare type UnionToIntersection<T> = Compact<InnerUnionToIntersection<T>>;
376
+ declare type ArgsRecord<T extends UnknownArgs> = UnionToIntersection<ArgsRecordUnion<T[number]>>;
377
+ declare type ArgsType<T extends UnknownArgs> = [ArgsRecord<T>] | ArgsTuple<T>;
378
+ declare type ContractCallFunction<Args extends UnknownArgs, R> = (...args: ArgsType<Args>) => ContractCallTyped<Args, R>;
379
+ declare type FnToContractCall<T> = T extends TypedAbiFunction<infer Arg, infer R> ? ContractCallFunction<Arg, R> : never;
380
+ declare type FunctionsToContractCalls<T> = T extends ContractFunctions ? {
381
+ [key in keyof T]: FnToContractCall<T[key]>;
382
+ } : never;
383
+ declare type ContractsToContractCalls<T> = T extends AllContracts ? {
384
+ [key in keyof T]: FunctionsToContractCalls<T[key]['functions']>;
385
+ } : never;
386
+ declare type FullContract<T> = T extends TypedAbi ? FunctionsToContractCalls<T['functions']> & T & {
387
+ identifier: string;
388
+ } & {
389
+ contractFile: string;
390
+ } : never;
391
+ declare type ContractFactory<T extends AllContracts> = {
392
+ [key in keyof T]: FullContract<T[key]>;
393
+ };
394
+
395
+ interface PureContractInfo {
396
+ abi: ClarityAbi;
397
+ contractAddress: string;
398
+ contractName: string;
399
+ }
400
+ declare type ContractFn<T> = (args: any) => T;
401
+ declare type ContractReturn<C extends ContractFn<ContractCalls.ReadOnly<any>>> = C extends ContractFn<ContractCalls.ReadOnly<infer T>> ? T : unknown;
402
+ declare type ContractReturnOk<C extends ContractFn<ContractCalls.ReadOnly<any>>> = ContractReturn<C> extends Response<infer O, any> ? O : unknown;
403
+ declare type ContractReturnErr<C extends ContractFn<ContractCalls.ReadOnly<any>>> = ContractReturn<C> extends Response<any, infer E> ? E : unknown;
404
+ interface MapGet<Key, Val> {
405
+ map: ClarityAbiMap;
406
+ nativeKey: Key;
407
+ key: ClarityValue;
408
+ contractAddress: string;
409
+ contractName: string;
410
+ }
411
+ declare namespace ContractCalls {
412
+ type ReadOnly<T> = ContractCall<T>;
413
+ type Public<Ok, Err> = ContractCall<Response<Ok, Err>>;
414
+ type Private<T> = ContractCall<T>;
415
+ type Map<Key, Val> = MapGet<Key, Val>;
416
+ }
417
+ declare const pureProxy: <T extends object>(target: PureContractInfo) => T;
418
+
419
+ interface ApiOptions {
420
+ network: StacksNetwork;
421
+ }
422
+ declare function ro<T>(tx: ContractCall<T>, options: ApiOptions): Promise<T>;
423
+ declare function roOk<Ok>(tx: ContractCall<Response<Ok, any>>, options: ApiOptions): Promise<Ok>;
424
+ declare function roErr<Err>(tx: ContractCall<Response<any, Err>>, options: ApiOptions): Promise<Err>;
425
+ declare function fetchMapGet<T extends ContractCalls.Map<any, Val>, Val>(map: T, options: ApiOptions): Promise<Val | null>;
426
+ declare function broadcast(transaction: StacksTransaction, options: ApiOptions): Promise<{
427
+ txId: string;
428
+ stacksTransaction: StacksTransaction;
429
+ }>;
430
+
335
431
  interface EmulatedContractPublishTransaction {
336
432
  'emulated-contract-publish': {
337
433
  'contract-name': string;
@@ -418,75 +514,28 @@ interface MainnetDeploymentPlan {
418
514
  }
419
515
  declare type DeploymentPlan = SimnetDeploymentPlan | DevnetDeploymentPlan | TestnetDeploymentPlan | MainnetDeploymentPlan;
420
516
 
421
- interface ContractCall<T> {
422
- function: ClarityAbiFunction$1;
423
- nativeArgs: any[];
424
- functionArgs: ClarityValue[];
425
- contractAddress: string;
426
- contractName: string;
427
- _r?: T;
428
- }
429
- interface ContractCallTyped<Args, R> extends Omit<ContractCall<R>, 'nativeArgs'> {
430
- nativeArgs: Args;
431
- }
432
- declare type ContractFunctions = {
433
- [key: string]: TypedAbiFunction<unknown[], unknown>;
517
+ declare const DEPLOYMENT_NETWORKS: readonly ["devnet", "simnet", "testnet", "mainnet"];
518
+ declare type DeploymentNetwork = typeof DEPLOYMENT_NETWORKS[number];
519
+ declare type DeploymentsForContracts<C extends AllContracts> = {
520
+ [K in keyof C]: ContractDeployments;
434
521
  };
435
- declare type AllContracts = Record<string, TypedAbi>;
436
- declare type ContractCallFunction<Args extends any[], R> = (...args: Args) => ContractCallTyped<Args, R>;
437
- declare type FnToContractCall<T> = T extends TypedAbiFunction<infer Arg, infer R> ? ContractCallFunction<Arg, R> : never;
438
- declare type FunctionsToContractCalls<T> = T extends ContractFunctions ? {
439
- [key in keyof T]: FnToContractCall<T[key]>;
440
- } : never;
441
- declare type FullContract<T> = T extends TypedAbi ? FunctionsToContractCalls<T['functions']> & T & {
442
- identifier: string;
443
- } & {
444
- contractFile: string;
445
- } : never;
446
- declare type ContractFactory<T extends AllContracts> = {
447
- [key in keyof T]: FullContract<T[key]>;
522
+ declare type ContractDeployments = {
523
+ [key in DeploymentNetwork]: string | null;
524
+ };
525
+ declare type Project<C extends AllContracts, D extends DeploymentsForContracts<C>> = {
526
+ contracts: C;
527
+ deployments: D;
528
+ };
529
+ declare type FullContractWithIdentifier<C extends TypedAbi, Id extends string> = FullContract<C> & {
530
+ identifier: Id;
448
531
  };
532
+ declare type ProjectFactory<P extends Project<any, any>, N extends DeploymentNetwork> = {
533
+ [ContractName in keyof P['contracts']]: P['deployments'][ContractName][N] extends string ? FullContractWithIdentifier<P['contracts'][ContractName], P['deployments'][ContractName][N]> : undefined;
534
+ };
535
+ declare function projectFactory<P extends Project<C, D>, N extends DeploymentNetwork, C extends AllContracts, D extends DeploymentsForContracts<C>>(project: P, network: N): ProjectFactory<P, N>;
449
536
  declare function contractsFactory<T extends AllContracts>(contracts: T, deployer: string): ContractFactory<T>;
450
537
  declare function functionsFactory<T extends ContractFunctions>(functions: T, identifier: string): FunctionsToContractCalls<T>;
451
- declare function contractFactory<T extends TypedAbi>(abi: T, identifier: string): {
452
- [x: string]: ContractCallFunction<unknown[], unknown>;
453
- } & FullContract<T>;
538
+ declare function contractFactory<T extends TypedAbi, Id extends string>(abi: T, identifier: Id): FullContractWithIdentifier<T, Id>;
454
539
  declare function deploymentFactory<T extends AllContracts>(contracts: T, deployer: DeploymentPlan): ContractFactory<T>;
455
540
 
456
- interface PureContractInfo {
457
- abi: ClarityAbi;
458
- contractAddress: string;
459
- contractName: string;
460
- }
461
- declare type ContractFn<T> = (args: any) => T;
462
- declare type ContractReturn<C extends ContractFn<ContractCalls.ReadOnly<any>>> = C extends ContractFn<ContractCalls.ReadOnly<infer T>> ? T : unknown;
463
- declare type ContractReturnOk<C extends ContractFn<ContractCalls.ReadOnly<any>>> = ContractReturn<C> extends Response<infer O, any> ? O : unknown;
464
- declare type ContractReturnErr<C extends ContractFn<ContractCalls.ReadOnly<any>>> = ContractReturn<C> extends Response<any, infer E> ? E : unknown;
465
- interface MapGet<Key, Val> {
466
- map: ClarityAbiMap;
467
- nativeKey: Key;
468
- key: ClarityValue;
469
- contractAddress: string;
470
- contractName: string;
471
- }
472
- declare namespace ContractCalls {
473
- type ReadOnly<T> = ContractCall<T>;
474
- type Public<Ok, Err> = ContractCall<Response<Ok, Err>>;
475
- type Private<T> = ContractCall<T>;
476
- type Map<Key, Val> = MapGet<Key, Val>;
477
- }
478
- declare const pureProxy: <T extends object>(target: PureContractInfo) => T;
479
-
480
- interface ApiOptions {
481
- network: StacksNetwork;
482
- }
483
- declare function ro<T>(tx: ContractCall<T>, options: ApiOptions): Promise<T>;
484
- declare function roOk<Ok>(tx: ContractCall<Response<Ok, any>>, options: ApiOptions): Promise<Ok>;
485
- declare function roErr<Err>(tx: ContractCall<Response<any, Err>>, options: ApiOptions): Promise<Err>;
486
- declare function fetchMapGet<T extends ContractCalls.Map<any, Val>, Val>(map: T, options: ApiOptions): Promise<Val | null>;
487
- declare function broadcast(transaction: StacksTransaction, options: ApiOptions): Promise<{
488
- txId: string;
489
- stacksTransaction: StacksTransaction;
490
- }>;
491
-
492
- export { AbiPrimitiveTo, AbiTupleTo, AbiTypeTo, AllContracts, ClarityAbi, ClarityAbiFunction, ClarityAbiMap, ClarityAbiType, ClarityAbiTypeBool, ClarityAbiTypeBuffer, ClarityAbiTypeFungibleToken, ClarityAbiTypeInt128, ClarityAbiTypeList, ClarityAbiTypeNonFungibleToken, ClarityAbiTypeNone, ClarityAbiTypeOptional, ClarityAbiTypePrimitive, ClarityAbiTypePrincipal, ClarityAbiTypeResponse, ClarityAbiTypeStringAscii, ClarityAbiTypeStringUtf8, ClarityAbiTypeTraitReference, ClarityAbiTypeTuple, ClarityAbiTypeUInt128, ClarityAbiVariable, Compact, Contract, ContractBuilder, ContractCall, ContractCallFunction, ContractCallTyped, ContractCalls, ContractFactory, ContractFn, ContractFunctions, ContractInstance, ContractInstances, ContractReturn, ContractReturnErr, ContractReturnOk, Contracts, CoreNodeEvent, CoreNodeEventBase, CoreNodeEventType, DeploymentPlan, FnToContractCall, FtBurnEvent, FtMintEvent, FtTransferEvent, FullContract, FunctionsToContractCalls, MAINNET_BURN_ADDRESS, NftBurnEvent, NftMintEvent, NftTransferEvent, NonStandardClarityValue, Response, ResponseErr, ResponseOk, ResultAssets, SimnetDeploymentPlan, SmartContractEvent, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TESTNET_BURN_ADDRESS, TypedAbi, TypedAbiFunction, TypedAbiMap, TypedAbiVariable, bootContractIdentifier, broadcast, contractFactory, contractsFactory, cvToString, cvToValue, deploymentFactory, err, expectErr, expectOk, fetchMapGet, filterEvents, functionsFactory, getContractIdentifier, getContractNameFromPath, getContractPrincipalCV, hexToCvValue, makeContracts, ok, parseToCV, pureProxy, ro, roErr, roOk, toCamelCase, transformArgsToCV };
541
+ export { AbiPrimitiveTo, AbiTupleTo, AbiTypeTo, AllContracts, ArgsType, ClarityAbi, ClarityAbiArg, ClarityAbiFunction, ClarityAbiMap, ClarityAbiType, ClarityAbiTypeBool, ClarityAbiTypeBuffer, ClarityAbiTypeFungibleToken, ClarityAbiTypeInt128, ClarityAbiTypeList, ClarityAbiTypeNonFungibleToken, ClarityAbiTypeNone, ClarityAbiTypeOptional, ClarityAbiTypePrimitive, ClarityAbiTypePrincipal, ClarityAbiTypeResponse, ClarityAbiTypeStringAscii, ClarityAbiTypeStringUtf8, ClarityAbiTypeTraitReference, ClarityAbiTypeTuple, ClarityAbiTypeUInt128, ClarityAbiVariable, Contract, ContractBuilder, ContractCall, ContractCallFunction, ContractCallTyped, ContractCalls, ContractDeployments, ContractFactory, ContractFn, ContractFunctions, ContractInstance, ContractInstances, ContractReturn, ContractReturnErr, ContractReturnOk, Contracts, ContractsToContractCalls, CoreNodeEvent, CoreNodeEventBase, CoreNodeEventType, DEPLOYMENT_NETWORKS, DeploymentNetwork, DeploymentPlan, DeploymentsForContracts, ErrType, FnToContractCall, FtBurnEvent, FtMintEvent, FtTransferEvent, FullContract, FullContractWithIdentifier, FunctionsToContractCalls, MAINNET_BURN_ADDRESS, NftBurnEvent, NftMintEvent, NftTransferEvent, NonStandardClarityValue, OkType, Project, ProjectFactory, Response, ResponseErr, ResponseOk, ResultAssets, SimnetDeploymentPlan, SmartContractEvent, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TESTNET_BURN_ADDRESS, TypedAbi, TypedAbiArg, TypedAbiFunction, TypedAbiMap, TypedAbiVariable, UnionToIntersection, bootContractIdentifier, broadcast, contractFactory, contractsFactory, cvToString, cvToValue, deploymentFactory, err, expectErr, expectOk, fetchMapGet, filterEvents, findJsTupleKey, functionsFactory, getContractIdentifier, getContractNameFromPath, getContractPrincipalCV, hexToCvValue, makeContracts, ok, parseToCV, projectFactory, pureProxy, ro, roErr, roOk, toCamelCase, toKebabCase, transformArgsArray, transformArgsToCV, transformObjectArgs };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var M=Object.defineProperty;var E=Object.getOwnPropertySymbols;var D=Object.prototype.hasOwnProperty,U=Object.prototype.propertyIsEnumerable;var A=(t,e,n)=>e in t?M(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,T=(t,e)=>{for(var n in e||(e={}))D.call(e,n)&&A(t,n,e[n]);if(E)for(var n of E(e))U.call(e,n)&&A(t,n,e[n]);return t};var _clarity = require('micro-stacks/clarity');var L="ST000000000000000000002AMW42H",q= exports.MAINNET_BURN_ADDRESS ="SP000000000000000000002Q6VF78",d= exports.toCamelCase =(t,e)=>{let n=typeof t=="string"?t:String(t),[r,...o]=n.replace("!","").replace("?","").split("-"),l=`${e?r[0].toUpperCase():r[0].toLowerCase()}${r.slice(1)}`;return o.forEach(s=>{l+=s[0].toUpperCase()+s.slice(1)}),l},K= exports.getContractNameFromPath =t=>{let e=t.split("/"),n=e[e.length-1],[r]=n.split(".");return r},wt= exports.getContractIdentifier =t=>`${t.address}.${t.name}`,Pt= exports.getContractPrincipalCV =t=>{let e=K(t.contractFile);return _clarity.contractPrincipalCV.call(void 0, t.address,e)};function Ft(t,e){return`${e?q:L}.${t}`}var H=(c=>(c.ContractEvent="contract_event",c.StxTransferEvent="stx_transfer_event",c.StxMintEvent="stx_mint_event",c.StxBurnEvent="stx_burn_event",c.StxLockEvent="stx_lock_event",c.NftTransferEvent="nft_transfer_event",c.NftMintEvent="nft_mint_event",c.NftBurnEvent="nft_burn_event",c.FtTransferEvent="ft_transfer_event",c.FtMintEvent="ft_mint_event",c.FtBurnEvent="ft_burn_event",c))(H||{});function _t(t,e){return t.filter(n=>n.type===e)}function Bt(t,e={}){let n={};for(let r in t){let o=t[r],i=e.deployerAddress||o.address,l=`${i}.${o.name}`,s=o.contract(i,o.name);n[r]={identifier:l,contract:s}}return n}var _transactions = require('micro-stacks/transactions');var _common = require('micro-stacks/common');function ut(t){return{isOk:!0,value:t}}function ft(t){return{isOk:!1,value:t}}function S(t){if(t.type===_clarity.ClarityType.PrincipalStandard)return _clarity.addressToString.call(void 0, t.address);if(t.type===_clarity.ClarityType.PrincipalContract)return`${_clarity.addressToString.call(void 0, t.address)}.${t.contractName.content}`;throw new Error(`Unexpected principal data: ${JSON.stringify(t)}`)}function p(t,e=!1){switch(t.type){case _clarity.ClarityType.BoolTrue:return!0;case _clarity.ClarityType.BoolFalse:return!1;case _clarity.ClarityType.Int:case _clarity.ClarityType.UInt:return t.value;case _clarity.ClarityType.Buffer:return t.buffer;case _clarity.ClarityType.OptionalNone:return null;case _clarity.ClarityType.OptionalSome:return p(t.value);case _clarity.ClarityType.ResponseErr:return e?ft(p(t.value)):p(t.value);case _clarity.ClarityType.ResponseOk:return e?ut(p(t.value)):p(t.value);case _clarity.ClarityType.PrincipalStandard:case _clarity.ClarityType.PrincipalContract:return S(t);case _clarity.ClarityType.List:return t.list.map(o=>p(o));case _clarity.ClarityType.Tuple:let n={};return Object.keys(t.data).map(o=>[o,p(t.data[o])]).forEach(([o,i])=>{n[o]=i}),n;case _clarity.ClarityType.StringASCII:return t.data;case _clarity.ClarityType.StringUTF8:return t.data}}function Gt(t,e=!1){return p(_clarity.hexToCV.call(void 0, t),e)}function N(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}function y(t,e){if(_transactions.isClarityAbiTuple.call(void 0, e)){if(typeof t!="object")throw new Error("Invalid tuple input");let n={};return e.tuple.forEach(r=>{let o=t[r.name];n[r.name]=y(o,r.type)}),_clarity.tupleCV.call(void 0, n)}else if(_transactions.isClarityAbiList.call(void 0, e)){let r=t.map(o=>y(o,e.list.type));return _clarity.listCV.call(void 0, r)}else{if(_transactions.isClarityAbiOptional.call(void 0, e))return t?_clarity.someCV.call(void 0, y(t,e.optional)):_clarity.noneCV.call(void 0, );if(_transactions.isClarityAbiStringAscii.call(void 0, e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return _clarity.stringAsciiCV.call(void 0, t)}else if(_transactions.isClarityAbiStringUtf8.call(void 0, e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return _clarity.stringUtf8CV.call(void 0, t)}else if(e==="bool"){let n=typeof t=="boolean"?t.toString():t;return _transactions.parseToCV.call(void 0, n,e)}else if(e==="uint128"){let n=N(t);return _clarity.uintCV.call(void 0, n.toString())}else if(e==="int128"){let n=N(t);return _clarity.intCV.call(void 0, n.toString())}else if(e==="trait_reference"){if(typeof t!="string")throw new Error("Invalid input for trait_reference");let[n,r]=t.split(".");return _clarity.contractPrincipalCV.call(void 0, n,r)}else if(_transactions.isClarityAbiBuffer.call(void 0, e))return _clarity.bufferCV.call(void 0, t)}return _transactions.parseToCV.call(void 0, t,e)}function C(t,e="hex"){switch(t.type){case _clarity.ClarityType.BoolTrue:return"true";case _clarity.ClarityType.BoolFalse:return"false";case _clarity.ClarityType.Int:return t.value.toString();case _clarity.ClarityType.UInt:return`u${t.value.toString()}`;case _clarity.ClarityType.Buffer:if(e==="tryAscii"){let n=_common.bytesToAscii.call(void 0, t.buffer);if(/[ -~]/.test(n))return JSON.stringify(n)}return`0x${_common.bytesToHex.call(void 0, t.buffer)}`;case _clarity.ClarityType.OptionalNone:return"none";case _clarity.ClarityType.OptionalSome:return`(some ${C(t.value,e)})`;case _clarity.ClarityType.ResponseErr:return`(err ${C(t.value,e)})`;case _clarity.ClarityType.ResponseOk:return`(ok ${C(t.value,e)})`;case _clarity.ClarityType.PrincipalStandard:case _clarity.ClarityType.PrincipalContract:return`'${S(t)}`;case _clarity.ClarityType.List:return`(list ${t.list.map(n=>C(n,e)).join(" ")})`;case _clarity.ClarityType.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${C(t.data[n],e)})`).join(" ")})`;case _clarity.ClarityType.StringASCII:return`"${t.data}"`;case _clarity.ClarityType.StringUTF8:return`u"${t.data}"`}}function w(t,e){return e.map((n,r)=>y(n,t.args[r].type))}function P(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${String(t.value)}`)}function F(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${String(t.value)}`)}function m(t,e){return w(t,e)}function yt(t,e){let n=t.abi.functions.find(o=>d(o.name)===e);if(n)return function(...o){return{functionArgs:m(n,o),contractAddress:t.contractAddress,contractName:t.contractName,function:n,nativeArgs:o}};let r=t.abi.maps.find(o=>d(o.name)===e);if(r)return o=>{let i=y(o,r.key);return{contractAddress:t.contractAddress,contractName:t.contractName,map:r,nativeKey:o,key:i}};throw new Error(`Invalid function call: no function exists for ${String(e)}`)}var dt={get:yt},Ct= exports.pureProxy =t=>new Proxy(t,dt);var _api = require('micro-stacks/api');async function _(t,e){let r=`${e.network.getReadOnlyFunctionCallApiUrl(t.contractAddress,t.contractName,t.function.name)}?tip=latest`,o=JSON.stringify({sender:t.contractAddress,arguments:t.functionArgs.map(s=>typeof s=="string"?s:_clarity.cvToHex.call(void 0, s))}),i=await _common.fetchPrivate.call(void 0, r,{method:"POST",body:o,headers:{"Content-Type":"application/json"}});if(!i.ok){let s="";try{s=await i.text()}catch (e2){}throw new Error(`Error calling read-only function. Response ${i.status}: ${i.statusText}. Attempted to fetch ${r} and failed with the message: "${s}"`)}let l=_api.parseReadOnlyResponse.call(void 0, await i.json());return p(l,!0)}async function ae(t,e){let n=await _(t,e);return P(n)}async function ie(t,e){let n=await _(t,e);return F(n)}async function se(t,e){let n=_clarity.cvToHex.call(void 0, t.key),r=await _api.fetchContractDataMapEntry.call(void 0, {contract_address:t.contractAddress,contract_name:t.contractName,map_name:t.map.name,lookup_key:n,tip:"latest",url:e.network.getCoreApiUrl(),proof:0}),o=_clarity.hexToCV.call(void 0, r.data);return p(o,!0)}async function ce(t,e){let n=await _transactions.broadcastTransaction.call(void 0, t,e.network);if("error"in n)throw new Error(`Error broadcasting tx: ${n.error} - ${n.reason} - ${n.reason_data}`);return{txId:n.txid,stacksTransaction:t}}function bt(t){let e=[];return t.forEach(n=>e.push(...n.transactions)),e}function O(t){return bt(t).filter(x)}function B(t){if(!x(t))throw new Error("Unable to get path for tx type.");if("requirement-publish"in t)return t["requirement-publish"].path;if("emulated-contract-publish"in t)return t["emulated-contract-publish"].path;if("contract-publish"in t)return t["contract-publish"].path;throw new Error("Couldnt get path for deployment tx.")}function V(t){if(!x(t))throw new Error("Unable to get ID for tx type.");if("requirement-publish"in t){let e=t["requirement-publish"],[n,r]=e["contract-id"].split(".");return`${e["remap-sender"]}.${r}`}else if("emulated-contract-publish"in t){let e=t["emulated-contract-publish"];return`${e["emulated-sender"]}.${e["contract-name"]}`}else if("contract-publish"in t){let e=t["contract-publish"];return`${e["expected-sender"]}.${e["contract-name"]}`}throw new Error("Unable to find ID for contract.")}function x(t){return!("contract-call"in t||"btc-transfer"in t||"emulated-contract-call"in t)}function ge(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let o=`${e}.${r.contractName}`;return[n,At(r,o)]}))}function Et(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>[n,(...i)=>{let l=m(r,i),[s,u]=e.split(".");return{functionArgs:l,contractAddress:s,contractName:u,function:r,nativeArgs:i}}]))}function At(t,e){let n=T({},t);return n.identifier=e,T(T({},Et(t.functions,e)),n)}function ve(t,e){let n={};return O(e.plan.batches).forEach(o=>{let i=V(o),[l,s]=i.split("."),u=d(s),I=t[u],f=t[u];if(typeof f>"u")throw new Error(`Clarigen error: mismatch for contract '${u}'`);n[u]=f,f.contractFile=B(o),f.identifier=i,Object.keys(t[u].functions).forEach(c=>{let g=c,$=(...v)=>{let b=I.functions[g];return{functionArgs:m(b,v),contractAddress:l,contractName:f.contractName,function:b,nativeArgs:v}};f[g]=$})}),n}exports.CoreNodeEventType = H; exports.MAINNET_BURN_ADDRESS = q; exports.TESTNET_BURN_ADDRESS = L; exports.bootContractIdentifier = Ft; exports.broadcast = ce; exports.contractFactory = At; exports.contractsFactory = ge; exports.cvToString = C; exports.cvToValue = p; exports.deploymentFactory = ve; exports.err = ft; exports.expectErr = F; exports.expectOk = P; exports.fetchMapGet = se; exports.filterEvents = _t; exports.functionsFactory = Et; exports.getContractIdentifier = wt; exports.getContractNameFromPath = K; exports.getContractPrincipalCV = Pt; exports.hexToCvValue = Gt; exports.makeContracts = Bt; exports.ok = ut; exports.parseToCV = y; exports.pureProxy = Ct; exports.ro = _; exports.roErr = ie; exports.roOk = ae; exports.toCamelCase = d; exports.transformArgsToCV = w;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var K=Object.defineProperty,L=Object.defineProperties;var q=Object.getOwnPropertyDescriptors;var h=Object.getOwnPropertySymbols;var H=Object.prototype.hasOwnProperty,G=Object.prototype.propertyIsEnumerable;var N=(t,e,n)=>e in t?K(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,C=(t,e)=>{for(var n in e||(e={}))H.call(e,n)&&N(t,n,e[n]);if(h)for(var n of h(e))G.call(e,n)&&N(t,n,e[n]);return t},x=(t,e)=>L(t,q(e));var _clarity = require('micro-stacks/clarity');var W="ST000000000000000000002AMW42H",Z= exports.MAINNET_BURN_ADDRESS ="SP000000000000000000002Q6VF78",f= exports.toCamelCase =(t,e)=>{let n=typeof t=="string"?t:String(t),[r,...o]=n.replace("!","").replace("?","").split("-"),c=`${e?r[0].toUpperCase():r[0].toLowerCase()}${r.slice(1)}`;return o.forEach(s=>{c+=s[0].toUpperCase()+s.slice(1)}),c};function k(t){let e=t.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g);return e?e.join("-").toLowerCase():t}var z=t=>{let e=t.split("/"),n=e[e.length-1],[r]=n.split(".");return r},Bt= exports.getContractIdentifier =t=>`${t.address}.${t.name}`,It= exports.getContractPrincipalCV =t=>{let e=z(t.contractFile);return _clarity.contractPrincipalCV.call(void 0, t.address,e)};function Vt(t,e){return`${e?Z:W}.${t}`}var Y=(l=>(l.ContractEvent="contract_event",l.StxTransferEvent="stx_transfer_event",l.StxMintEvent="stx_mint_event",l.StxBurnEvent="stx_burn_event",l.StxLockEvent="stx_lock_event",l.NftTransferEvent="nft_transfer_event",l.NftMintEvent="nft_mint_event",l.NftBurnEvent="nft_burn_event",l.FtTransferEvent="ft_transfer_event",l.FtMintEvent="ft_mint_event",l.FtBurnEvent="ft_burn_event",l))(Y||{});function $t(t,e){return t.filter(n=>n.type===e)}function Ut(t,e={}){let n={};for(let r in t){let o=t[r],i=e.deployerAddress||o.address,c=`${i}.${o.name}`,s=o.contract(i,o.name);n[r]={identifier:c,contract:s}}return n}var _transactions = require('micro-stacks/transactions');var _common = require('micro-stacks/common');function mt(t){return{isOk:!0,value:t}}function xt(t){return{isOk:!1,value:t}}function R(t){if(t.type===_clarity.ClarityType.PrincipalStandard)return _clarity.addressToString.call(void 0, t.address);if(t.type===_clarity.ClarityType.PrincipalContract)return`${_clarity.addressToString.call(void 0, t.address)}.${t.contractName.content}`;throw new Error(`Unexpected principal data: ${JSON.stringify(t)}`)}function p(t,e=!1){switch(t.type){case _clarity.ClarityType.BoolTrue:return!0;case _clarity.ClarityType.BoolFalse:return!1;case _clarity.ClarityType.Int:case _clarity.ClarityType.UInt:return t.value;case _clarity.ClarityType.Buffer:return t.buffer;case _clarity.ClarityType.OptionalNone:return null;case _clarity.ClarityType.OptionalSome:return p(t.value);case _clarity.ClarityType.ResponseErr:return e?xt(p(t.value)):p(t.value);case _clarity.ClarityType.ResponseOk:return e?mt(p(t.value)):p(t.value);case _clarity.ClarityType.PrincipalStandard:case _clarity.ClarityType.PrincipalContract:return R(t);case _clarity.ClarityType.List:return t.list.map(r=>p(r));case _clarity.ClarityType.Tuple:return Object.entries(t.data).reduce((r,[o,i])=>{let c=f(o);return x(C({},r),{[c]:p(i)})},{});case _clarity.ClarityType.StringASCII:return t.data;case _clarity.ClarityType.StringUTF8:return t.data}}function Xt(t,e=!1){return p(_clarity.hexToCV.call(void 0, t),e)}function w(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}function y(t,e){if(_transactions.isClarityAbiTuple.call(void 0, e)){if(typeof t!="object")throw new Error("Invalid tuple input");let n={};return e.tuple.forEach(r=>{let o=g(r.name,t),i=t[o];n[r.name]=y(i,r.type)}),_clarity.tupleCV.call(void 0, n)}else if(_transactions.isClarityAbiList.call(void 0, e)){let r=t.map(o=>y(o,e.list.type));return _clarity.listCV.call(void 0, r)}else{if(_transactions.isClarityAbiOptional.call(void 0, e))return t?_clarity.someCV.call(void 0, y(t,e.optional)):_clarity.noneCV.call(void 0, );if(_transactions.isClarityAbiStringAscii.call(void 0, e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return _clarity.stringAsciiCV.call(void 0, t)}else if(_transactions.isClarityAbiStringUtf8.call(void 0, e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return _clarity.stringUtf8CV.call(void 0, t)}else if(e==="bool"){let n=typeof t=="boolean"?t.toString():t;return _transactions.parseToCV.call(void 0, n,e)}else if(e==="uint128"){let n=w(t);return _clarity.uintCV.call(void 0, n.toString())}else if(e==="int128"){let n=w(t);return _clarity.intCV.call(void 0, n.toString())}else if(e==="trait_reference"){if(typeof t!="string")throw new Error("Invalid input for trait_reference");let[n,r]=t.split(".");return _clarity.contractPrincipalCV.call(void 0, n,r)}else if(_transactions.isClarityAbiBuffer.call(void 0, e))return _clarity.bufferCV.call(void 0, t)}return _transactions.parseToCV.call(void 0, t,e)}function T(t,e="hex"){switch(t.type){case _clarity.ClarityType.BoolTrue:return"true";case _clarity.ClarityType.BoolFalse:return"false";case _clarity.ClarityType.Int:return t.value.toString();case _clarity.ClarityType.UInt:return`u${t.value.toString()}`;case _clarity.ClarityType.Buffer:if(e==="tryAscii"){let n=_common.bytesToAscii.call(void 0, t.buffer);if(/[ -~]/.test(n))return JSON.stringify(n)}return`0x${_common.bytesToHex.call(void 0, t.buffer)}`;case _clarity.ClarityType.OptionalNone:return"none";case _clarity.ClarityType.OptionalSome:return`(some ${T(t.value,e)})`;case _clarity.ClarityType.ResponseErr:return`(err ${T(t.value,e)})`;case _clarity.ClarityType.ResponseOk:return`(ok ${T(t.value,e)})`;case _clarity.ClarityType.PrincipalStandard:case _clarity.ClarityType.PrincipalContract:return`'${R(t)}`;case _clarity.ClarityType.List:return`(list ${t.list.map(n=>T(n,e)).join(" ")})`;case _clarity.ClarityType.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${T(t.data[n],e)})`).join(" ")})`;case _clarity.ClarityType.StringASCII:return`"${t.data}"`;case _clarity.ClarityType.StringUTF8:return`u"${t.data}"`}}function F(t,e){return t.args.map(n=>{let r=g(n.name,e),o=e[r];return y(o,n.type)})}function gt(t,e){return e.map((n,r)=>y(n,t.args[r].type))}function m(t,e){if(e.length===0)return[];let[n]=e;if(e.length===1&&t.args.length!==1)return F(t,n);if(typeof n=="object"&&!Array.isArray(n)&&n!==null)try{let r=!0;if(t.args.forEach(o=>{try{g(o.name,n)}catch (e2){r=!1}}),r)return F(t,n)}catch (e3){}return gt(t,e)}function g(t,e){let n=Object.keys(e).find(r=>{let o=t===r,i=t===k(r);return o||i});if(!n)throw new Error(`Error encoding JS tuple: ${t} not found in input.`);return n}function _(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${String(t.value)}`)}function O(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${String(t.value)}`)}function vt(t,e){let n=t.abi.functions.find(o=>f(o.name)===e);if(n)return function(...o){return{functionArgs:m(n,o),contractAddress:t.contractAddress,contractName:t.contractName,function:n,nativeArgs:o}};let r=t.abi.maps.find(o=>f(o.name)===e);if(r)return o=>{let i=y(o,r.key);return{contractAddress:t.contractAddress,contractName:t.contractName,map:r,nativeKey:o,key:i}};throw new Error(`Invalid function call: no function exists for ${String(e)}`)}var Et={get:vt},bt= exports.pureProxy =t=>new Proxy(t,Et);var _api = require('micro-stacks/api');async function I(t,e){let r=`${e.network.getReadOnlyFunctionCallApiUrl(t.contractAddress,t.contractName,t.function.name)}?tip=latest`,o=JSON.stringify({sender:t.contractAddress,arguments:t.functionArgs.map(s=>typeof s=="string"?s:_clarity.cvToHex.call(void 0, s))}),i=await _common.fetchPrivate.call(void 0, r,{method:"POST",body:o,headers:{"Content-Type":"application/json"}});if(!i.ok){let s="";try{s=await i.text()}catch (e4){}throw new Error(`Error calling read-only function. Response ${i.status}: ${i.statusText}. Attempted to fetch ${r} and failed with the message: "${s}"`)}let c=_api.parseReadOnlyResponse.call(void 0, await i.json());return p(c,!0)}async function fe(t,e){let n=await I(t,e);return _(n)}async function ye(t,e){let n=await I(t,e);return O(n)}async function de(t,e){let n=_clarity.cvToHex.call(void 0, t.key),r=await _api.fetchContractDataMapEntry.call(void 0, {contract_address:t.contractAddress,contract_name:t.contractName,map_name:t.map.name,lookup_key:n,tip:"latest",url:e.network.getCoreApiUrl(),proof:0}),o=_clarity.hexToCV.call(void 0, r.data);return p(o,!0)}async function Ce(t,e){let n=await _transactions.broadcastTransaction.call(void 0, t,e.network);if("error"in n)throw new Error(`Error broadcasting tx: ${n.error} - ${n.reason} - ${n.reason_data}`);return{txId:n.txid,stacksTransaction:t}}function Pt(t){let e=[];return t.forEach(n=>e.push(...n.transactions)),e}function V(t){return Pt(t).filter(v)}function D(t){if(!v(t))throw new Error("Unable to get path for tx type.");if("requirement-publish"in t)return t["requirement-publish"].path;if("emulated-contract-publish"in t)return t["emulated-contract-publish"].path;if("contract-publish"in t)return t["contract-publish"].path;throw new Error("Couldnt get path for deployment tx.")}function $(t){if(!v(t))throw new Error("Unable to get ID for tx type.");if("requirement-publish"in t){let e=t["requirement-publish"],[n,r]=e["contract-id"].split(".");return`${e["remap-sender"]}.${r}`}else if("emulated-contract-publish"in t){let e=t["emulated-contract-publish"];return`${e["emulated-sender"]}.${e["contract-name"]}`}else if("contract-publish"in t){let e=t["contract-publish"];return`${e["expected-sender"]}.${e["contract-name"]}`}throw new Error("Unable to find ID for contract.")}function v(t){return!("contract-call"in t||"btc-transfer"in t||"emulated-contract-call"in t)}var ke=["devnet","simnet","testnet","mainnet"];function Se(t,e){let n=[];return Object.entries(t.contracts).forEach(([r,o])=>{let i=t.deployments[r][e];return i&&n.push([r,M(o,i)]),!1}),Object.fromEntries(n)}function Pe(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let o=`${e}.${r.contractName}`;return[n,M(r,o)]}))}function wt(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>[n,(...i)=>{let c=m(r,i),[s,u]=e.split(".");return{functionArgs:c,contractAddress:s,contractName:u,function:r,nativeArgs:i}}]))}function M(t,e){let n=C({},t);return x(C(C({},wt(t.functions,e)),n),{identifier:e})}function we(t,e){let n={};return V(e.plan.batches).forEach(o=>{let i=$(o),[c,s]=i.split("."),u=f(s),U=t[u],d=t[u];if(typeof d>"u")throw new Error(`Clarigen error: mismatch for contract '${u}'`);n[u]=d,d.contractFile=D(o),d.identifier=i,Object.keys(t[u].functions).forEach(l=>{let E=l,j=(...b)=>{let A=U.functions[E];return{functionArgs:m(A,b),contractAddress:c,contractName:d.contractName,function:A,nativeArgs:b}};d[E]=j})}),n}exports.CoreNodeEventType = Y; exports.DEPLOYMENT_NETWORKS = ke; exports.MAINNET_BURN_ADDRESS = Z; exports.TESTNET_BURN_ADDRESS = W; exports.bootContractIdentifier = Vt; exports.broadcast = Ce; exports.contractFactory = M; exports.contractsFactory = Pe; exports.cvToString = T; exports.cvToValue = p; exports.deploymentFactory = we; exports.err = xt; exports.expectErr = O; exports.expectOk = _; exports.fetchMapGet = de; exports.filterEvents = $t; exports.findJsTupleKey = g; exports.functionsFactory = wt; exports.getContractIdentifier = Bt; exports.getContractNameFromPath = z; exports.getContractPrincipalCV = It; exports.hexToCvValue = Xt; exports.makeContracts = Ut; exports.ok = mt; exports.parseToCV = y; exports.projectFactory = Se; exports.pureProxy = bt; exports.ro = I; exports.roErr = ye; exports.roOk = fe; exports.toCamelCase = f; exports.toKebabCase = k; exports.transformArgsArray = gt; exports.transformArgsToCV = m; exports.transformObjectArgs = F;
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- var M=Object.defineProperty;var E=Object.getOwnPropertySymbols;var D=Object.prototype.hasOwnProperty,U=Object.prototype.propertyIsEnumerable;var A=(t,e,n)=>e in t?M(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,T=(t,e)=>{for(var n in e||(e={}))D.call(e,n)&&A(t,n,e[n]);if(E)for(var n of E(e))U.call(e,n)&&A(t,n,e[n]);return t};import{contractPrincipalCV as j}from"micro-stacks/clarity";var L="ST000000000000000000002AMW42H",q="SP000000000000000000002Q6VF78",d=(t,e)=>{let n=typeof t=="string"?t:String(t),[r,...o]=n.replace("!","").replace("?","").split("-"),l=`${e?r[0].toUpperCase():r[0].toLowerCase()}${r.slice(1)}`;return o.forEach(s=>{l+=s[0].toUpperCase()+s.slice(1)}),l},K=t=>{let e=t.split("/"),n=e[e.length-1],[r]=n.split(".");return r},wt=t=>`${t.address}.${t.name}`,Pt=t=>{let e=K(t.contractFile);return j(t.address,e)};function Ft(t,e){return`${e?q:L}.${t}`}var H=(c=>(c.ContractEvent="contract_event",c.StxTransferEvent="stx_transfer_event",c.StxMintEvent="stx_mint_event",c.StxBurnEvent="stx_burn_event",c.StxLockEvent="stx_lock_event",c.NftTransferEvent="nft_transfer_event",c.NftMintEvent="nft_mint_event",c.NftBurnEvent="nft_burn_event",c.FtTransferEvent="ft_transfer_event",c.FtMintEvent="ft_mint_event",c.FtBurnEvent="ft_burn_event",c))(H||{});function _t(t,e){return t.filter(n=>n.type===e)}function Bt(t,e={}){let n={};for(let r in t){let o=t[r],i=e.deployerAddress||o.address,l=`${i}.${o.name}`,s=o.contract(i,o.name);n[r]={identifier:l,contract:s}}return n}import{addressToString as h,ClarityType as a,uintCV as G,contractPrincipalCV as J,intCV as z,stringAsciiCV as Q,stringUtf8CV as W,noneCV as Z,someCV as X,tupleCV as Y,listCV as tt,hexToCV as et,bufferCV as nt}from"micro-stacks/clarity";import{isClarityAbiList as rt,isClarityAbiOptional as ot,isClarityAbiStringAscii as at,isClarityAbiStringUtf8 as it,isClarityAbiTuple as st,isClarityAbiBuffer as ct,parseToCV as k}from"micro-stacks/transactions";import{bytesToAscii as lt,bytesToHex as pt}from"micro-stacks/common";function ut(t){return{isOk:!0,value:t}}function ft(t){return{isOk:!1,value:t}}function S(t){if(t.type===a.PrincipalStandard)return h(t.address);if(t.type===a.PrincipalContract)return`${h(t.address)}.${t.contractName.content}`;throw new Error(`Unexpected principal data: ${JSON.stringify(t)}`)}function p(t,e=!1){switch(t.type){case a.BoolTrue:return!0;case a.BoolFalse:return!1;case a.Int:case a.UInt:return t.value;case a.Buffer:return t.buffer;case a.OptionalNone:return null;case a.OptionalSome:return p(t.value);case a.ResponseErr:return e?ft(p(t.value)):p(t.value);case a.ResponseOk:return e?ut(p(t.value)):p(t.value);case a.PrincipalStandard:case a.PrincipalContract:return S(t);case a.List:return t.list.map(o=>p(o));case a.Tuple:let n={};return Object.keys(t.data).map(o=>[o,p(t.data[o])]).forEach(([o,i])=>{n[o]=i}),n;case a.StringASCII:return t.data;case a.StringUTF8:return t.data}}function Gt(t,e=!1){return p(et(t),e)}function N(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}function y(t,e){if(st(e)){if(typeof t!="object")throw new Error("Invalid tuple input");let n={};return e.tuple.forEach(r=>{let o=t[r.name];n[r.name]=y(o,r.type)}),Y(n)}else if(rt(e)){let r=t.map(o=>y(o,e.list.type));return tt(r)}else{if(ot(e))return t?X(y(t,e.optional)):Z();if(at(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return Q(t)}else if(it(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return W(t)}else if(e==="bool"){let n=typeof t=="boolean"?t.toString():t;return k(n,e)}else if(e==="uint128"){let n=N(t);return G(n.toString())}else if(e==="int128"){let n=N(t);return z(n.toString())}else if(e==="trait_reference"){if(typeof t!="string")throw new Error("Invalid input for trait_reference");let[n,r]=t.split(".");return J(n,r)}else if(ct(e))return nt(t)}return k(t,e)}function C(t,e="hex"){switch(t.type){case a.BoolTrue:return"true";case a.BoolFalse:return"false";case a.Int:return t.value.toString();case a.UInt:return`u${t.value.toString()}`;case a.Buffer:if(e==="tryAscii"){let n=lt(t.buffer);if(/[ -~]/.test(n))return JSON.stringify(n)}return`0x${pt(t.buffer)}`;case a.OptionalNone:return"none";case a.OptionalSome:return`(some ${C(t.value,e)})`;case a.ResponseErr:return`(err ${C(t.value,e)})`;case a.ResponseOk:return`(ok ${C(t.value,e)})`;case a.PrincipalStandard:case a.PrincipalContract:return`'${S(t)}`;case a.List:return`(list ${t.list.map(n=>C(n,e)).join(" ")})`;case a.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${C(t.data[n],e)})`).join(" ")})`;case a.StringASCII:return`"${t.data}"`;case a.StringUTF8:return`u"${t.data}"`}}function w(t,e){return e.map((n,r)=>y(n,t.args[r].type))}function P(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${String(t.value)}`)}function F(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${String(t.value)}`)}function m(t,e){return w(t,e)}function yt(t,e){let n=t.abi.functions.find(o=>d(o.name)===e);if(n)return function(...o){return{functionArgs:m(n,o),contractAddress:t.contractAddress,contractName:t.contractName,function:n,nativeArgs:o}};let r=t.abi.maps.find(o=>d(o.name)===e);if(r)return o=>{let i=y(o,r.key);return{contractAddress:t.contractAddress,contractName:t.contractName,map:r,nativeKey:o,key:i}};throw new Error(`Invalid function call: no function exists for ${String(e)}`)}var dt={get:yt},Ct=t=>new Proxy(t,dt);import{parseReadOnlyResponse as Tt,fetchContractDataMapEntry as mt}from"micro-stacks/api";import{cvToHex as R,hexToCV as xt}from"micro-stacks/clarity";import{fetchPrivate as gt}from"micro-stacks/common";import{broadcastTransaction as vt}from"micro-stacks/transactions";async function _(t,e){let r=`${e.network.getReadOnlyFunctionCallApiUrl(t.contractAddress,t.contractName,t.function.name)}?tip=latest`,o=JSON.stringify({sender:t.contractAddress,arguments:t.functionArgs.map(s=>typeof s=="string"?s:R(s))}),i=await gt(r,{method:"POST",body:o,headers:{"Content-Type":"application/json"}});if(!i.ok){let s="";try{s=await i.text()}catch{}throw new Error(`Error calling read-only function. Response ${i.status}: ${i.statusText}. Attempted to fetch ${r} and failed with the message: "${s}"`)}let l=Tt(await i.json());return p(l,!0)}async function ae(t,e){let n=await _(t,e);return P(n)}async function ie(t,e){let n=await _(t,e);return F(n)}async function se(t,e){let n=R(t.key),r=await mt({contract_address:t.contractAddress,contract_name:t.contractName,map_name:t.map.name,lookup_key:n,tip:"latest",url:e.network.getCoreApiUrl(),proof:0}),o=xt(r.data);return p(o,!0)}async function ce(t,e){let n=await vt(t,e.network);if("error"in n)throw new Error(`Error broadcasting tx: ${n.error} - ${n.reason} - ${n.reason_data}`);return{txId:n.txid,stacksTransaction:t}}function bt(t){let e=[];return t.forEach(n=>e.push(...n.transactions)),e}function O(t){return bt(t).filter(x)}function B(t){if(!x(t))throw new Error("Unable to get path for tx type.");if("requirement-publish"in t)return t["requirement-publish"].path;if("emulated-contract-publish"in t)return t["emulated-contract-publish"].path;if("contract-publish"in t)return t["contract-publish"].path;throw new Error("Couldnt get path for deployment tx.")}function V(t){if(!x(t))throw new Error("Unable to get ID for tx type.");if("requirement-publish"in t){let e=t["requirement-publish"],[n,r]=e["contract-id"].split(".");return`${e["remap-sender"]}.${r}`}else if("emulated-contract-publish"in t){let e=t["emulated-contract-publish"];return`${e["emulated-sender"]}.${e["contract-name"]}`}else if("contract-publish"in t){let e=t["contract-publish"];return`${e["expected-sender"]}.${e["contract-name"]}`}throw new Error("Unable to find ID for contract.")}function x(t){return!("contract-call"in t||"btc-transfer"in t||"emulated-contract-call"in t)}function ge(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let o=`${e}.${r.contractName}`;return[n,At(r,o)]}))}function Et(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>[n,(...i)=>{let l=m(r,i),[s,u]=e.split(".");return{functionArgs:l,contractAddress:s,contractName:u,function:r,nativeArgs:i}}]))}function At(t,e){let n=T({},t);return n.identifier=e,T(T({},Et(t.functions,e)),n)}function ve(t,e){let n={};return O(e.plan.batches).forEach(o=>{let i=V(o),[l,s]=i.split("."),u=d(s),I=t[u],f=t[u];if(typeof f>"u")throw new Error(`Clarigen error: mismatch for contract '${u}'`);n[u]=f,f.contractFile=B(o),f.identifier=i,Object.keys(t[u].functions).forEach(c=>{let g=c,$=(...v)=>{let b=I.functions[g];return{functionArgs:m(b,v),contractAddress:l,contractName:f.contractName,function:b,nativeArgs:v}};f[g]=$})}),n}export{H as CoreNodeEventType,q as MAINNET_BURN_ADDRESS,L as TESTNET_BURN_ADDRESS,Ft as bootContractIdentifier,ce as broadcast,At as contractFactory,ge as contractsFactory,C as cvToString,p as cvToValue,ve as deploymentFactory,ft as err,F as expectErr,P as expectOk,se as fetchMapGet,_t as filterEvents,Et as functionsFactory,wt as getContractIdentifier,K as getContractNameFromPath,Pt as getContractPrincipalCV,Gt as hexToCvValue,Bt as makeContracts,ut as ok,y as parseToCV,Ct as pureProxy,_ as ro,ie as roErr,ae as roOk,d as toCamelCase,w as transformArgsToCV};
1
+ var K=Object.defineProperty,L=Object.defineProperties;var q=Object.getOwnPropertyDescriptors;var h=Object.getOwnPropertySymbols;var H=Object.prototype.hasOwnProperty,G=Object.prototype.propertyIsEnumerable;var N=(t,e,n)=>e in t?K(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,C=(t,e)=>{for(var n in e||(e={}))H.call(e,n)&&N(t,n,e[n]);if(h)for(var n of h(e))G.call(e,n)&&N(t,n,e[n]);return t},x=(t,e)=>L(t,q(e));import{contractPrincipalCV as J}from"micro-stacks/clarity";var W="ST000000000000000000002AMW42H",Z="SP000000000000000000002Q6VF78",f=(t,e)=>{let n=typeof t=="string"?t:String(t),[r,...o]=n.replace("!","").replace("?","").split("-"),c=`${e?r[0].toUpperCase():r[0].toLowerCase()}${r.slice(1)}`;return o.forEach(s=>{c+=s[0].toUpperCase()+s.slice(1)}),c};function k(t){let e=t.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g);return e?e.join("-").toLowerCase():t}var z=t=>{let e=t.split("/"),n=e[e.length-1],[r]=n.split(".");return r},Bt=t=>`${t.address}.${t.name}`,It=t=>{let e=z(t.contractFile);return J(t.address,e)};function Vt(t,e){return`${e?Z:W}.${t}`}var Y=(l=>(l.ContractEvent="contract_event",l.StxTransferEvent="stx_transfer_event",l.StxMintEvent="stx_mint_event",l.StxBurnEvent="stx_burn_event",l.StxLockEvent="stx_lock_event",l.NftTransferEvent="nft_transfer_event",l.NftMintEvent="nft_mint_event",l.NftBurnEvent="nft_burn_event",l.FtTransferEvent="ft_transfer_event",l.FtMintEvent="ft_mint_event",l.FtBurnEvent="ft_burn_event",l))(Y||{});function $t(t,e){return t.filter(n=>n.type===e)}function Ut(t,e={}){let n={};for(let r in t){let o=t[r],i=e.deployerAddress||o.address,c=`${i}.${o.name}`,s=o.contract(i,o.name);n[r]={identifier:c,contract:s}}return n}import{addressToString as S,ClarityType as a,uintCV as Q,contractPrincipalCV as X,intCV as tt,stringAsciiCV as et,stringUtf8CV as nt,noneCV as rt,someCV as ot,tupleCV as at,listCV as it,hexToCV as st,bufferCV as ct}from"micro-stacks/clarity";import{isClarityAbiList as lt,isClarityAbiOptional as pt,isClarityAbiStringAscii as ut,isClarityAbiStringUtf8 as ft,isClarityAbiTuple as yt,isClarityAbiBuffer as dt,parseToCV as P}from"micro-stacks/transactions";import{bytesToAscii as Ct,bytesToHex as Tt}from"micro-stacks/common";function mt(t){return{isOk:!0,value:t}}function xt(t){return{isOk:!1,value:t}}function R(t){if(t.type===a.PrincipalStandard)return S(t.address);if(t.type===a.PrincipalContract)return`${S(t.address)}.${t.contractName.content}`;throw new Error(`Unexpected principal data: ${JSON.stringify(t)}`)}function p(t,e=!1){switch(t.type){case a.BoolTrue:return!0;case a.BoolFalse:return!1;case a.Int:case a.UInt:return t.value;case a.Buffer:return t.buffer;case a.OptionalNone:return null;case a.OptionalSome:return p(t.value);case a.ResponseErr:return e?xt(p(t.value)):p(t.value);case a.ResponseOk:return e?mt(p(t.value)):p(t.value);case a.PrincipalStandard:case a.PrincipalContract:return R(t);case a.List:return t.list.map(r=>p(r));case a.Tuple:return Object.entries(t.data).reduce((r,[o,i])=>{let c=f(o);return x(C({},r),{[c]:p(i)})},{});case a.StringASCII:return t.data;case a.StringUTF8:return t.data}}function Xt(t,e=!1){return p(st(t),e)}function w(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}function y(t,e){if(yt(e)){if(typeof t!="object")throw new Error("Invalid tuple input");let n={};return e.tuple.forEach(r=>{let o=g(r.name,t),i=t[o];n[r.name]=y(i,r.type)}),at(n)}else if(lt(e)){let r=t.map(o=>y(o,e.list.type));return it(r)}else{if(pt(e))return t?ot(y(t,e.optional)):rt();if(ut(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return et(t)}else if(ft(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return nt(t)}else if(e==="bool"){let n=typeof t=="boolean"?t.toString():t;return P(n,e)}else if(e==="uint128"){let n=w(t);return Q(n.toString())}else if(e==="int128"){let n=w(t);return tt(n.toString())}else if(e==="trait_reference"){if(typeof t!="string")throw new Error("Invalid input for trait_reference");let[n,r]=t.split(".");return X(n,r)}else if(dt(e))return ct(t)}return P(t,e)}function T(t,e="hex"){switch(t.type){case a.BoolTrue:return"true";case a.BoolFalse:return"false";case a.Int:return t.value.toString();case a.UInt:return`u${t.value.toString()}`;case a.Buffer:if(e==="tryAscii"){let n=Ct(t.buffer);if(/[ -~]/.test(n))return JSON.stringify(n)}return`0x${Tt(t.buffer)}`;case a.OptionalNone:return"none";case a.OptionalSome:return`(some ${T(t.value,e)})`;case a.ResponseErr:return`(err ${T(t.value,e)})`;case a.ResponseOk:return`(ok ${T(t.value,e)})`;case a.PrincipalStandard:case a.PrincipalContract:return`'${R(t)}`;case a.List:return`(list ${t.list.map(n=>T(n,e)).join(" ")})`;case a.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${T(t.data[n],e)})`).join(" ")})`;case a.StringASCII:return`"${t.data}"`;case a.StringUTF8:return`u"${t.data}"`}}function F(t,e){return t.args.map(n=>{let r=g(n.name,e),o=e[r];return y(o,n.type)})}function gt(t,e){return e.map((n,r)=>y(n,t.args[r].type))}function m(t,e){if(e.length===0)return[];let[n]=e;if(e.length===1&&t.args.length!==1)return F(t,n);if(typeof n=="object"&&!Array.isArray(n)&&n!==null)try{let r=!0;if(t.args.forEach(o=>{try{g(o.name,n)}catch{r=!1}}),r)return F(t,n)}catch{}return gt(t,e)}function g(t,e){let n=Object.keys(e).find(r=>{let o=t===r,i=t===k(r);return o||i});if(!n)throw new Error(`Error encoding JS tuple: ${t} not found in input.`);return n}function _(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${String(t.value)}`)}function O(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${String(t.value)}`)}function vt(t,e){let n=t.abi.functions.find(o=>f(o.name)===e);if(n)return function(...o){return{functionArgs:m(n,o),contractAddress:t.contractAddress,contractName:t.contractName,function:n,nativeArgs:o}};let r=t.abi.maps.find(o=>f(o.name)===e);if(r)return o=>{let i=y(o,r.key);return{contractAddress:t.contractAddress,contractName:t.contractName,map:r,nativeKey:o,key:i}};throw new Error(`Invalid function call: no function exists for ${String(e)}`)}var Et={get:vt},bt=t=>new Proxy(t,Et);import{parseReadOnlyResponse as At,fetchContractDataMapEntry as ht}from"micro-stacks/api";import{cvToHex as B,hexToCV as Nt}from"micro-stacks/clarity";import{fetchPrivate as kt}from"micro-stacks/common";import{broadcastTransaction as St}from"micro-stacks/transactions";async function I(t,e){let r=`${e.network.getReadOnlyFunctionCallApiUrl(t.contractAddress,t.contractName,t.function.name)}?tip=latest`,o=JSON.stringify({sender:t.contractAddress,arguments:t.functionArgs.map(s=>typeof s=="string"?s:B(s))}),i=await kt(r,{method:"POST",body:o,headers:{"Content-Type":"application/json"}});if(!i.ok){let s="";try{s=await i.text()}catch{}throw new Error(`Error calling read-only function. Response ${i.status}: ${i.statusText}. Attempted to fetch ${r} and failed with the message: "${s}"`)}let c=At(await i.json());return p(c,!0)}async function fe(t,e){let n=await I(t,e);return _(n)}async function ye(t,e){let n=await I(t,e);return O(n)}async function de(t,e){let n=B(t.key),r=await ht({contract_address:t.contractAddress,contract_name:t.contractName,map_name:t.map.name,lookup_key:n,tip:"latest",url:e.network.getCoreApiUrl(),proof:0}),o=Nt(r.data);return p(o,!0)}async function Ce(t,e){let n=await St(t,e.network);if("error"in n)throw new Error(`Error broadcasting tx: ${n.error} - ${n.reason} - ${n.reason_data}`);return{txId:n.txid,stacksTransaction:t}}function Pt(t){let e=[];return t.forEach(n=>e.push(...n.transactions)),e}function V(t){return Pt(t).filter(v)}function D(t){if(!v(t))throw new Error("Unable to get path for tx type.");if("requirement-publish"in t)return t["requirement-publish"].path;if("emulated-contract-publish"in t)return t["emulated-contract-publish"].path;if("contract-publish"in t)return t["contract-publish"].path;throw new Error("Couldnt get path for deployment tx.")}function $(t){if(!v(t))throw new Error("Unable to get ID for tx type.");if("requirement-publish"in t){let e=t["requirement-publish"],[n,r]=e["contract-id"].split(".");return`${e["remap-sender"]}.${r}`}else if("emulated-contract-publish"in t){let e=t["emulated-contract-publish"];return`${e["emulated-sender"]}.${e["contract-name"]}`}else if("contract-publish"in t){let e=t["contract-publish"];return`${e["expected-sender"]}.${e["contract-name"]}`}throw new Error("Unable to find ID for contract.")}function v(t){return!("contract-call"in t||"btc-transfer"in t||"emulated-contract-call"in t)}var ke=["devnet","simnet","testnet","mainnet"];function Se(t,e){let n=[];return Object.entries(t.contracts).forEach(([r,o])=>{let i=t.deployments[r][e];return i&&n.push([r,M(o,i)]),!1}),Object.fromEntries(n)}function Pe(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let o=`${e}.${r.contractName}`;return[n,M(r,o)]}))}function wt(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>[n,(...i)=>{let c=m(r,i),[s,u]=e.split(".");return{functionArgs:c,contractAddress:s,contractName:u,function:r,nativeArgs:i}}]))}function M(t,e){let n=C({},t);return x(C(C({},wt(t.functions,e)),n),{identifier:e})}function we(t,e){let n={};return V(e.plan.batches).forEach(o=>{let i=$(o),[c,s]=i.split("."),u=f(s),U=t[u],d=t[u];if(typeof d>"u")throw new Error(`Clarigen error: mismatch for contract '${u}'`);n[u]=d,d.contractFile=D(o),d.identifier=i,Object.keys(t[u].functions).forEach(l=>{let E=l,j=(...b)=>{let A=U.functions[E];return{functionArgs:m(A,b),contractAddress:c,contractName:d.contractName,function:A,nativeArgs:b}};d[E]=j})}),n}export{Y as CoreNodeEventType,ke as DEPLOYMENT_NETWORKS,Z as MAINNET_BURN_ADDRESS,W as TESTNET_BURN_ADDRESS,Vt as bootContractIdentifier,Ce as broadcast,M as contractFactory,Pe as contractsFactory,T as cvToString,p as cvToValue,we as deploymentFactory,xt as err,O as expectErr,_ as expectOk,de as fetchMapGet,$t as filterEvents,g as findJsTupleKey,wt as functionsFactory,Bt as getContractIdentifier,z as getContractNameFromPath,It as getContractPrincipalCV,Xt as hexToCvValue,Ut as makeContracts,mt as ok,y as parseToCV,Se as projectFactory,bt as pureProxy,I as ro,ye as roErr,fe as roOk,f as toCamelCase,k as toKebabCase,gt as transformArgsArray,m as transformArgsToCV,F as transformObjectArgs};
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.0-next.28",
2
+ "version": "1.0.0-next.30",
3
3
  "license": "MIT",
4
4
  "types": "./dist/index.d.ts",
5
5
  "main": "./dist/index.js",
@@ -23,10 +23,11 @@
23
23
  "scripts": {
24
24
  "start": "tsup --watch",
25
25
  "dev": "tsup --watch",
26
- "build": "shx rm -rf ./dist && tsup && node make-deno.js",
26
+ "build": "shx rm -rf ./dist && tsup",
27
27
  "test": "jest",
28
28
  "lint": "eslint \"src/**/*.{ts,tsx}\" && prettier --check src/**/*.ts",
29
29
  "typecheck": "tsc --noEmit",
30
- "publish:dev": "pnpm build && yalc publish --push"
30
+ "publish:dev": "pnpm build && yalc publish --push",
31
+ "copy-types": "node copy-types.js"
31
32
  }
32
33
  }
@@ -1,492 +0,0 @@
1
- import { ClarityAbi as ClarityAbi$1, ClarityValue, ClarityAbiType as ClarityAbiType$1, ClarityAbiFunction as ClarityAbiFunction$1, ClarityAbiTypeTuple as ClarityAbiTypeTuple$1, ContractPrincipalCV } from 'https://deno.land/x/microstacks/clarity.js';
2
- import { StacksNetwork } from 'https://deno.land/x/microstacks/network.js';
3
- import { StacksTransaction } from 'https://deno.land/x/microstacks/transactions.js';
4
-
5
- declare type ClarityAbiTypeBuffer = {
6
- buffer: {
7
- length: number;
8
- };
9
- };
10
- declare type ClarityAbiTypeStringAscii = {
11
- 'string-ascii': {
12
- length: number;
13
- };
14
- };
15
- declare type ClarityAbiTypeStringUtf8 = {
16
- 'string-utf8': {
17
- length: number;
18
- };
19
- };
20
- declare type ClarityAbiTypeResponse = {
21
- response: {
22
- ok: ClarityAbiType;
23
- error: ClarityAbiType;
24
- };
25
- };
26
- declare type ClarityAbiTypeOptional = {
27
- optional: ClarityAbiType;
28
- };
29
- declare type ClarityAbiTypeTuple = {
30
- tuple: {
31
- name: string;
32
- type: ClarityAbiType;
33
- }[];
34
- };
35
- declare type ClarityAbiTypeList = {
36
- list: {
37
- type: ClarityAbiType;
38
- length: number;
39
- };
40
- };
41
- declare type ClarityAbiTypeUInt128 = 'uint128';
42
- declare type ClarityAbiTypeInt128 = 'int128';
43
- declare type ClarityAbiTypeBool = 'bool';
44
- declare type ClarityAbiTypePrincipal = 'principal';
45
- declare type ClarityAbiTypeTraitReference = 'trait_reference';
46
- declare type ClarityAbiTypeNone = 'none';
47
- declare type ClarityAbiTypePrimitive = ClarityAbiTypeUInt128 | ClarityAbiTypeInt128 | ClarityAbiTypeBool | ClarityAbiTypePrincipal | ClarityAbiTypeTraitReference | ClarityAbiTypeNone;
48
- declare type ClarityAbiType = ClarityAbiTypePrimitive | ClarityAbiTypeBuffer | ClarityAbiTypeResponse | ClarityAbiTypeOptional | ClarityAbiTypeTuple | ClarityAbiTypeList | ClarityAbiTypeStringAscii | ClarityAbiTypeStringUtf8 | ClarityAbiTypeTraitReference;
49
- interface ClarityAbiFunction {
50
- name: string;
51
- access: 'private' | 'public' | 'read_only';
52
- args: {
53
- name: string;
54
- type: ClarityAbiType;
55
- }[];
56
- outputs: {
57
- type: ClarityAbiType;
58
- };
59
- }
60
- declare type TypedAbiFunction<T extends any[], R> = ClarityAbiFunction & {
61
- _t?: T;
62
- _r?: R;
63
- };
64
- interface ClarityAbiVariable {
65
- name: string;
66
- access: 'variable' | 'constant';
67
- type: ClarityAbiType;
68
- }
69
- declare type TypedAbiVariable<T> = ClarityAbiVariable & {
70
- defaultValue: T;
71
- };
72
- interface ClarityAbiMap {
73
- name: string;
74
- key: ClarityAbiType;
75
- value: ClarityAbiType;
76
- }
77
- declare type TypedAbiMap<K, V> = ClarityAbiMap & {
78
- _k?: K;
79
- _v?: V;
80
- };
81
- interface ClarityAbiTypeFungibleToken {
82
- name: string;
83
- }
84
- interface ClarityAbiTypeNonFungibleToken {
85
- name: string;
86
- type: ClarityAbiType;
87
- }
88
- declare type TypedAbi = Readonly<{
89
- functions: {
90
- [key: string]: TypedAbiFunction<unknown[], unknown>;
91
- };
92
- variables: {
93
- [key: string]: TypedAbiVariable<unknown>;
94
- };
95
- maps: {
96
- [key: string]: TypedAbiMap<unknown, unknown>;
97
- };
98
- constants: {
99
- [key: string]: any;
100
- };
101
- fungible_tokens: Readonly<ClarityAbiTypeFungibleToken[]>;
102
- non_fungible_tokens: Readonly<ClarityAbiTypeNonFungibleToken[]>;
103
- contractName: string;
104
- contractFile?: string;
105
- }>;
106
- interface ResponseOk<T, E> {
107
- value: T;
108
- isOk: true;
109
- }
110
- interface ResponseErr<T, E> {
111
- value: E;
112
- isOk: false;
113
- }
114
- declare type Response<Ok, Err> = ResponseOk<Ok, Err> | ResponseErr<Ok, Err>;
115
-
116
- declare function ok<T, Err = never>(value: T): ResponseOk<T, Err>;
117
- declare function err<Ok = never, T = unknown>(value: T): ResponseErr<Ok, T>;
118
- interface ClarityAbi extends Omit<ClarityAbi$1, 'maps'> {
119
- maps: ClarityAbiMap[];
120
- clarity_version?: string;
121
- }
122
- /**
123
- * @param val - ClarityValue
124
- * @param returnResponse - if true, this will return a "response" object.
125
- * Otherwise, it returns the inner value of the response (whether ok or err)
126
- */
127
- declare function cvToValue<T = any>(val: ClarityValue, returnResponse?: boolean): T;
128
- /**
129
- * Converts a hex encoded string to the javascript clarity value object {type: string; value: any}
130
- * @param hex - the hex encoded string with or without `0x` prefix
131
- * @param jsonCompat - enable to serialize bigints to strings
132
- */
133
- declare function hexToCvValue<T>(hex: string, jsonCompat?: boolean): any;
134
- declare type TupleInput = Record<string, any>;
135
- declare type CVInput = string | boolean | TupleInput | number | bigint;
136
- declare function parseToCV(input: CVInput, type: ClarityAbiType$1): ClarityValue;
137
- declare function cvToString(val: ClarityValue, encoding?: 'tryAscii' | 'hex'): string;
138
- declare function transformArgsToCV(func: ClarityAbiFunction$1, args: any[]): ClarityValue[];
139
- declare function expectOk<Ok>(response: Response<Ok, any>): Ok;
140
- declare function expectErr<Err>(response: Response<any, Err>): Err;
141
- declare type AbiPrimitiveTo<T extends ClarityAbiTypePrimitive> = T extends ClarityAbiTypeInt128 ? bigint : T extends ClarityAbiTypeUInt128 ? bigint : T extends ClarityAbiTypeBool ? boolean : T extends ClarityAbiTypePrincipal ? string : T extends ClarityAbiTypeTraitReference ? string : T extends ClarityAbiTypeNone ? never : T;
142
- declare type ReadonlyTuple = {
143
- readonly tuple: Readonly<ClarityAbiTypeTuple$1['tuple']>;
144
- };
145
- declare type TupleTypeUnion<T> = T extends Readonly<ClarityAbiTypeTuple$1['tuple'][number]> ? {
146
- -readonly [Z in T['name']]: AbiTypeTo<T['type']>;
147
- } : never;
148
- declare type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
149
- declare type Compact<T> = {
150
- [K in keyof T]: T[K];
151
- };
152
- declare type AbiTupleTo<T extends ReadonlyTuple> = Compact<UnionToIntersection<TupleTypeUnion<T['tuple'][number]>>>;
153
- declare type AbiTypeTo<T extends ClarityAbiType$1 | ReadonlyTuple> = T extends ClarityAbiTypePrimitive ? AbiPrimitiveTo<T> : T extends ClarityAbiTypeBuffer ? Uint8Array : T extends ClarityAbiTypeStringAscii ? string : T extends ClarityAbiTypeStringUtf8 ? string : T extends ClarityAbiTypeList ? AbiTypeTo<T['list']['type']>[] : T extends ClarityAbiTypeOptional ? AbiTypeTo<T['optional']> | null : T extends ClarityAbiTypeResponse ? Response<AbiTypeTo<T['response']['ok']>, AbiTypeTo<T['response']['error']>> : T extends ReadonlyTuple ? AbiTupleTo<T> : T;
154
-
155
- interface ResultAssets {
156
- stx: Record<string, string>;
157
- burns: Record<string, string>;
158
- tokens: Record<string, Record<string, string>>;
159
- assets: Record<string, Record<string, string>>;
160
- }
161
-
162
- declare type ContractBuilder<T> = (contractAddress: string, contractName: string) => T;
163
- interface Contract<T> {
164
- address: string;
165
- contractFile: string;
166
- contract: ContractBuilder<T>;
167
- abi: ClarityAbi;
168
- name: string;
169
- }
170
- interface Contracts<T> {
171
- [key: string]: Contract<T>;
172
- }
173
- interface ContractInstance<T> {
174
- identifier: string;
175
- contract: T;
176
- }
177
- declare type ContractInstances<T extends Contracts<any>> = {
178
- [Name in keyof T]: ContractInstance<ReturnType<T[Name]['contract']>>;
179
- };
180
-
181
- declare const TESTNET_BURN_ADDRESS = "ST000000000000000000002AMW42H";
182
- declare const MAINNET_BURN_ADDRESS = "SP000000000000000000002Q6VF78";
183
- declare const toCamelCase: (input: string | number | symbol, titleCase?: boolean | undefined) => string;
184
- declare const getContractNameFromPath: (path: string) => string;
185
- declare const getContractIdentifier: <T>(contract: Contract<T>) => string;
186
- declare const getContractPrincipalCV: <T>(contract: Contract<T>) => ContractPrincipalCV;
187
- declare function bootContractIdentifier(name: string, mainnet: boolean): string;
188
-
189
- declare enum CoreNodeEventType {
190
- ContractEvent = "contract_event",
191
- StxTransferEvent = "stx_transfer_event",
192
- StxMintEvent = "stx_mint_event",
193
- StxBurnEvent = "stx_burn_event",
194
- StxLockEvent = "stx_lock_event",
195
- NftTransferEvent = "nft_transfer_event",
196
- NftMintEvent = "nft_mint_event",
197
- NftBurnEvent = "nft_burn_event",
198
- FtTransferEvent = "ft_transfer_event",
199
- FtMintEvent = "ft_mint_event",
200
- FtBurnEvent = "ft_burn_event"
201
- }
202
- declare type NonStandardClarityValue = unknown;
203
- interface CoreNodeEventBase {
204
- /** 0x-prefix transaction hash. */
205
- txid: string;
206
- event_index: number;
207
- committed: boolean;
208
- }
209
- interface SmartContractEvent extends CoreNodeEventBase {
210
- type: CoreNodeEventType.ContractEvent;
211
- contract_event: {
212
- /** Fully qualified contract ID, e.g. "ST2ZRX0K27GW0SP3GJCEMHD95TQGJMKB7G9Y0X1MH.kv-store" */
213
- contract_identifier: string;
214
- topic: string;
215
- value: NonStandardClarityValue;
216
- /** Hex encoded Clarity value. */
217
- raw_value: string;
218
- };
219
- }
220
- interface StxTransferEvent extends CoreNodeEventBase {
221
- type: CoreNodeEventType.StxTransferEvent;
222
- stx_transfer_event: {
223
- recipient: string;
224
- sender: string;
225
- amount: string;
226
- };
227
- }
228
- interface StxMintEvent extends CoreNodeEventBase {
229
- type: CoreNodeEventType.StxMintEvent;
230
- stx_mint_event: {
231
- recipient: string;
232
- amount: string;
233
- };
234
- }
235
- interface StxBurnEvent extends CoreNodeEventBase {
236
- type: CoreNodeEventType.StxBurnEvent;
237
- stx_burn_event: {
238
- sender: string;
239
- amount: string;
240
- };
241
- }
242
- interface StxLockEvent extends CoreNodeEventBase {
243
- type: CoreNodeEventType.StxLockEvent;
244
- /** TODO: what dis? */
245
- committed: boolean;
246
- stx_lock_event: {
247
- /** String quoted base10 integer. */
248
- locked_amount: string;
249
- /** String quoted base10 integer. */
250
- unlock_height: string;
251
- /** STX principal associated with the locked tokens. */
252
- locked_address: string;
253
- };
254
- }
255
- interface NftTransferEvent extends CoreNodeEventBase {
256
- type: CoreNodeEventType.NftTransferEvent;
257
- nft_transfer_event: {
258
- /** Fully qualified asset ID, e.g. "ST2ZRX0K27GW0SP3GJCEMHD95TQGJMKB7G9Y0X1MH.contract-name.asset-name" */
259
- asset_identifier: string;
260
- recipient: string;
261
- sender: string;
262
- value: NonStandardClarityValue;
263
- /** Hex encoded Clarity value. */
264
- raw_value: string;
265
- };
266
- }
267
- interface NftMintEvent extends CoreNodeEventBase {
268
- type: CoreNodeEventType.NftMintEvent;
269
- nft_mint_event: {
270
- /** Fully qualified asset ID, e.g. "ST2ZRX0K27GW0SP3GJCEMHD95TQGJMKB7G9Y0X1MH.contract-name.asset-name" */
271
- asset_identifier: string;
272
- recipient: string;
273
- value: NonStandardClarityValue;
274
- /** Hex encoded Clarity value. */
275
- raw_value: string;
276
- };
277
- }
278
- interface NftBurnEvent extends CoreNodeEventBase {
279
- type: CoreNodeEventType.NftBurnEvent;
280
- nft_burn_event: {
281
- /** Fully qualified asset ID, e.g. "ST2ZRX0K27GW0SP3GJCEMHD95TQGJMKB7G9Y0X1MH.contract-name.asset-name" */
282
- asset_identifier: string;
283
- sender: string;
284
- value: NonStandardClarityValue;
285
- /** Hex encoded Clarity value. */
286
- raw_value: string;
287
- };
288
- }
289
- interface FtTransferEvent extends CoreNodeEventBase {
290
- type: CoreNodeEventType.FtTransferEvent;
291
- ft_transfer_event: {
292
- /** Fully qualified asset ID, e.g. "ST2ZRX0K27GW0SP3GJCEMHD95TQGJMKB7G9Y0X1MH.contract-name.asset-name" */
293
- asset_identifier: string;
294
- recipient: string;
295
- sender: string;
296
- amount: string;
297
- };
298
- }
299
- interface FtMintEvent extends CoreNodeEventBase {
300
- type: CoreNodeEventType.FtMintEvent;
301
- ft_mint_event: {
302
- /** Fully qualified asset ID, e.g. "ST2ZRX0K27GW0SP3GJCEMHD95TQGJMKB7G9Y0X1MH.contract-name.asset-name" */
303
- asset_identifier: string;
304
- recipient: string;
305
- amount: string;
306
- };
307
- }
308
- interface FtBurnEvent extends CoreNodeEventBase {
309
- type: CoreNodeEventType.FtBurnEvent;
310
- ft_burn_event: {
311
- /** Fully qualified asset ID, e.g. "ST2ZRX0K27GW0SP3GJCEMHD95TQGJMKB7G9Y0X1MH.contract-name.asset-name" */
312
- asset_identifier: string;
313
- sender: string;
314
- amount: string;
315
- };
316
- }
317
- declare type CoreNodeEvent = SmartContractEvent | StxTransferEvent | StxMintEvent | StxBurnEvent | StxLockEvent | FtTransferEvent | FtMintEvent | FtBurnEvent | NftTransferEvent | NftMintEvent | NftBurnEvent;
318
- declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.ContractEvent): SmartContractEvent[];
319
- declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.StxTransferEvent): StxTransferEvent[];
320
- declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.StxMintEvent): StxMintEvent[];
321
- declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.StxBurnEvent): StxBurnEvent[];
322
- declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.StxLockEvent): StxLockEvent[];
323
- declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.NftTransferEvent): NftTransferEvent[];
324
- declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.NftMintEvent): NftMintEvent[];
325
- declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.NftBurnEvent): NftBurnEvent[];
326
- declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.FtTransferEvent): FtTransferEvent[];
327
- declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.FtMintEvent): FtMintEvent[];
328
- declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.FtBurnEvent): FtBurnEvent[];
329
-
330
- interface MakeContractsOptions {
331
- deployerAddress?: string;
332
- }
333
- declare function makeContracts<T extends Contracts<any>>(contracts: T, options?: MakeContractsOptions): ContractInstances<T>;
334
-
335
- interface EmulatedContractPublishTransaction {
336
- 'emulated-contract-publish': {
337
- 'contract-name': string;
338
- 'emulated-sender': string;
339
- path: string;
340
- };
341
- }
342
- interface RequirementPublishTransaction {
343
- 'requirement-publish': {
344
- 'contract-id': string;
345
- 'remap-sender': string;
346
- 'remap-principals': Record<string, string>;
347
- path: string;
348
- };
349
- }
350
- interface ContractPublishTransaction {
351
- 'contract-publish': {
352
- 'contract-name': string;
353
- 'expected-sender': string;
354
- path: string;
355
- };
356
- }
357
- interface ContractCallTransaction {
358
- 'contract-call': {
359
- 'contract-id': string;
360
- 'expected-sender': string;
361
- parameters: Readonly<string[]>;
362
- method: string;
363
- };
364
- }
365
- interface EmulatedContractCallTransaction {
366
- 'emulated-contract-call': {
367
- 'contract-id': string;
368
- 'emulated-sender': string;
369
- parameters: Readonly<string[]>;
370
- method: string;
371
- };
372
- }
373
- interface BtcTransferTransaction {
374
- 'btc-transfer': {
375
- 'expected-sender': string;
376
- recipient: string;
377
- 'sats-per-byte': string;
378
- 'sats-amount': string;
379
- };
380
- }
381
- declare type Transaction = EmulatedContractPublishTransaction | RequirementPublishTransaction | ContractPublishTransaction | EmulatedContractCallTransaction | BtcTransferTransaction | ContractCallTransaction;
382
- interface Batch<T extends Transaction> {
383
- id: number;
384
- transactions: Readonly<T[]>;
385
- }
386
- interface SimnetAccount {
387
- address: string;
388
- name: string;
389
- balance: string;
390
- }
391
- interface SimnetAccountDeployer extends SimnetAccount {
392
- name: 'deployer';
393
- }
394
- interface SimnetDeploymentPlan {
395
- network: 'simnet';
396
- genesis: {
397
- wallets: Readonly<[SimnetAccountDeployer, ...SimnetAccount[]]>;
398
- contracts: Readonly<string[]>;
399
- };
400
- plan: {
401
- batches: Readonly<Batch<EmulatedContractPublishTransaction | EmulatedContractCallTransaction>[]>;
402
- };
403
- }
404
- interface DevnetDeploymentPlan {
405
- network: 'devnet';
406
- plan: {
407
- batches: Readonly<Batch<RequirementPublishTransaction | ContractPublishTransaction | ContractCallTransaction | BtcTransferTransaction>[]>;
408
- };
409
- }
410
- declare type TestnetDeploymentPlan = Omit<DevnetDeploymentPlan, 'network'> & {
411
- network: 'testnet';
412
- };
413
- interface MainnetDeploymentPlan {
414
- network: 'mainnet';
415
- plan: {
416
- batches: Readonly<Batch<ContractPublishTransaction | ContractCallTransaction | BtcTransferTransaction>[]>;
417
- };
418
- }
419
- declare type DeploymentPlan = SimnetDeploymentPlan | DevnetDeploymentPlan | TestnetDeploymentPlan | MainnetDeploymentPlan;
420
-
421
- interface ContractCall<T> {
422
- function: ClarityAbiFunction$1;
423
- nativeArgs: any[];
424
- functionArgs: ClarityValue[];
425
- contractAddress: string;
426
- contractName: string;
427
- _r?: T;
428
- }
429
- interface ContractCallTyped<Args, R> extends Omit<ContractCall<R>, 'nativeArgs'> {
430
- nativeArgs: Args;
431
- }
432
- declare type ContractFunctions = {
433
- [key: string]: TypedAbiFunction<unknown[], unknown>;
434
- };
435
- declare type AllContracts = Record<string, TypedAbi>;
436
- declare type ContractCallFunction<Args extends any[], R> = (...args: Args) => ContractCallTyped<Args, R>;
437
- declare type FnToContractCall<T> = T extends TypedAbiFunction<infer Arg, infer R> ? ContractCallFunction<Arg, R> : never;
438
- declare type FunctionsToContractCalls<T> = T extends ContractFunctions ? {
439
- [key in keyof T]: FnToContractCall<T[key]>;
440
- } : never;
441
- declare type FullContract<T> = T extends TypedAbi ? FunctionsToContractCalls<T['functions']> & T & {
442
- identifier: string;
443
- } & {
444
- contractFile: string;
445
- } : never;
446
- declare type ContractFactory<T extends AllContracts> = {
447
- [key in keyof T]: FullContract<T[key]>;
448
- };
449
- declare function contractsFactory<T extends AllContracts>(contracts: T, deployer: string): ContractFactory<T>;
450
- declare function functionsFactory<T extends ContractFunctions>(functions: T, identifier: string): FunctionsToContractCalls<T>;
451
- declare function contractFactory<T extends TypedAbi>(abi: T, identifier: string): {
452
- [x: string]: ContractCallFunction<unknown[], unknown>;
453
- } & FullContract<T>;
454
- declare function deploymentFactory<T extends AllContracts>(contracts: T, deployer: DeploymentPlan): ContractFactory<T>;
455
-
456
- interface PureContractInfo {
457
- abi: ClarityAbi;
458
- contractAddress: string;
459
- contractName: string;
460
- }
461
- declare type ContractFn<T> = (args: any) => T;
462
- declare type ContractReturn<C extends ContractFn<ContractCalls.ReadOnly<any>>> = C extends ContractFn<ContractCalls.ReadOnly<infer T>> ? T : unknown;
463
- declare type ContractReturnOk<C extends ContractFn<ContractCalls.ReadOnly<any>>> = ContractReturn<C> extends Response<infer O, any> ? O : unknown;
464
- declare type ContractReturnErr<C extends ContractFn<ContractCalls.ReadOnly<any>>> = ContractReturn<C> extends Response<any, infer E> ? E : unknown;
465
- interface MapGet<Key, Val> {
466
- map: ClarityAbiMap;
467
- nativeKey: Key;
468
- key: ClarityValue;
469
- contractAddress: string;
470
- contractName: string;
471
- }
472
- declare namespace ContractCalls {
473
- type ReadOnly<T> = ContractCall<T>;
474
- type Public<Ok, Err> = ContractCall<Response<Ok, Err>>;
475
- type Private<T> = ContractCall<T>;
476
- type Map<Key, Val> = MapGet<Key, Val>;
477
- }
478
- declare const pureProxy: <T extends object>(target: PureContractInfo) => T;
479
-
480
- interface ApiOptions {
481
- network: StacksNetwork;
482
- }
483
- declare function ro<T>(tx: ContractCall<T>, options: ApiOptions): Promise<T>;
484
- declare function roOk<Ok>(tx: ContractCall<Response<Ok, any>>, options: ApiOptions): Promise<Ok>;
485
- declare function roErr<Err>(tx: ContractCall<Response<any, Err>>, options: ApiOptions): Promise<Err>;
486
- declare function fetchMapGet<T extends ContractCalls.Map<any, Val>, Val>(map: T, options: ApiOptions): Promise<Val | null>;
487
- declare function broadcast(transaction: StacksTransaction, options: ApiOptions): Promise<{
488
- txId: string;
489
- stacksTransaction: StacksTransaction;
490
- }>;
491
-
492
- export { AbiPrimitiveTo, AbiTupleTo, AbiTypeTo, AllContracts, ClarityAbi, ClarityAbiFunction, ClarityAbiMap, ClarityAbiType, ClarityAbiTypeBool, ClarityAbiTypeBuffer, ClarityAbiTypeFungibleToken, ClarityAbiTypeInt128, ClarityAbiTypeList, ClarityAbiTypeNonFungibleToken, ClarityAbiTypeNone, ClarityAbiTypeOptional, ClarityAbiTypePrimitive, ClarityAbiTypePrincipal, ClarityAbiTypeResponse, ClarityAbiTypeStringAscii, ClarityAbiTypeStringUtf8, ClarityAbiTypeTraitReference, ClarityAbiTypeTuple, ClarityAbiTypeUInt128, ClarityAbiVariable, Compact, Contract, ContractBuilder, ContractCall, ContractCallFunction, ContractCallTyped, ContractCalls, ContractFactory, ContractFn, ContractFunctions, ContractInstance, ContractInstances, ContractReturn, ContractReturnErr, ContractReturnOk, Contracts, CoreNodeEvent, CoreNodeEventBase, CoreNodeEventType, DeploymentPlan, FnToContractCall, FtBurnEvent, FtMintEvent, FtTransferEvent, FullContract, FunctionsToContractCalls, MAINNET_BURN_ADDRESS, NftBurnEvent, NftMintEvent, NftTransferEvent, NonStandardClarityValue, Response, ResponseErr, ResponseOk, ResultAssets, SimnetDeploymentPlan, SmartContractEvent, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TESTNET_BURN_ADDRESS, TypedAbi, TypedAbiFunction, TypedAbiMap, TypedAbiVariable, bootContractIdentifier, broadcast, contractFactory, contractsFactory, cvToString, cvToValue, deploymentFactory, err, expectErr, expectOk, fetchMapGet, filterEvents, functionsFactory, getContractIdentifier, getContractNameFromPath, getContractPrincipalCV, hexToCvValue, makeContracts, ok, parseToCV, pureProxy, ro, roErr, roOk, toCamelCase, transformArgsToCV };
@@ -1,2 +0,0 @@
1
- /// <reference path="./index.d.ts" />
2
- var M=Object.defineProperty;var E=Object.getOwnPropertySymbols;var D=Object.prototype.hasOwnProperty,U=Object.prototype.propertyIsEnumerable;var A=(t,e,n)=>e in t?M(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,T=(t,e)=>{for(var n in e||(e={}))D.call(e,n)&&A(t,n,e[n]);if(E)for(var n of E(e))U.call(e,n)&&A(t,n,e[n]);return t};import{contractPrincipalCV as j}from"https://deno.land/x/microstacks/clarity.js";var L="ST000000000000000000002AMW42H",q="SP000000000000000000002Q6VF78",d=(t,e)=>{let n=typeof t=="string"?t:String(t),[r,...o]=n.replace("!","").replace("?","").split("-"),l=`${e?r[0].toUpperCase():r[0].toLowerCase()}${r.slice(1)}`;return o.forEach(s=>{l+=s[0].toUpperCase()+s.slice(1)}),l},K=t=>{let e=t.split("/"),n=e[e.length-1],[r]=n.split(".");return r},wt=t=>`${t.address}.${t.name}`,Pt=t=>{let e=K(t.contractFile);return j(t.address,e)};function Ft(t,e){return`${e?q:L}.${t}`}var H=(c=>(c.ContractEvent="contract_event",c.StxTransferEvent="stx_transfer_event",c.StxMintEvent="stx_mint_event",c.StxBurnEvent="stx_burn_event",c.StxLockEvent="stx_lock_event",c.NftTransferEvent="nft_transfer_event",c.NftMintEvent="nft_mint_event",c.NftBurnEvent="nft_burn_event",c.FtTransferEvent="ft_transfer_event",c.FtMintEvent="ft_mint_event",c.FtBurnEvent="ft_burn_event",c))(H||{});function _t(t,e){return t.filter(n=>n.type===e)}function Bt(t,e={}){let n={};for(let r in t){let o=t[r],i=e.deployerAddress||o.address,l=`${i}.${o.name}`,s=o.contract(i,o.name);n[r]={identifier:l,contract:s}}return n}import{addressToString as h,ClarityType as a,uintCV as G,contractPrincipalCV as J,intCV as z,stringAsciiCV as Q,stringUtf8CV as W,noneCV as Z,someCV as X,tupleCV as Y,listCV as tt,hexToCV as et,bufferCV as nt}from"https://deno.land/x/microstacks/clarity.js";import{isClarityAbiList as rt,isClarityAbiOptional as ot,isClarityAbiStringAscii as at,isClarityAbiStringUtf8 as it,isClarityAbiTuple as st,isClarityAbiBuffer as ct,parseToCV as k}from"https://deno.land/x/microstacks/transactions.js";import{bytesToAscii as lt,bytesToHex as pt}from"https://deno.land/x/microstacks/common.js";function ut(t){return{isOk:!0,value:t}}function ft(t){return{isOk:!1,value:t}}function S(t){if(t.type===a.PrincipalStandard)return h(t.address);if(t.type===a.PrincipalContract)return`${h(t.address)}.${t.contractName.content}`;throw new Error(`Unexpected principal data: ${JSON.stringify(t)}`)}function p(t,e=!1){switch(t.type){case a.BoolTrue:return!0;case a.BoolFalse:return!1;case a.Int:case a.UInt:return t.value;case a.Buffer:return t.buffer;case a.OptionalNone:return null;case a.OptionalSome:return p(t.value);case a.ResponseErr:return e?ft(p(t.value)):p(t.value);case a.ResponseOk:return e?ut(p(t.value)):p(t.value);case a.PrincipalStandard:case a.PrincipalContract:return S(t);case a.List:return t.list.map(o=>p(o));case a.Tuple:let n={};return Object.keys(t.data).map(o=>[o,p(t.data[o])]).forEach(([o,i])=>{n[o]=i}),n;case a.StringASCII:return t.data;case a.StringUTF8:return t.data}}function Gt(t,e=!1){return p(et(t),e)}function N(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}function y(t,e){if(st(e)){if(typeof t!="object")throw new Error("Invalid tuple input");let n={};return e.tuple.forEach(r=>{let o=t[r.name];n[r.name]=y(o,r.type)}),Y(n)}else if(rt(e)){let r=t.map(o=>y(o,e.list.type));return tt(r)}else{if(ot(e))return t?X(y(t,e.optional)):Z();if(at(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return Q(t)}else if(it(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return W(t)}else if(e==="bool"){let n=typeof t=="boolean"?t.toString():t;return k(n,e)}else if(e==="uint128"){let n=N(t);return G(n.toString())}else if(e==="int128"){let n=N(t);return z(n.toString())}else if(e==="trait_reference"){if(typeof t!="string")throw new Error("Invalid input for trait_reference");let[n,r]=t.split(".");return J(n,r)}else if(ct(e))return nt(t)}return k(t,e)}function C(t,e="hex"){switch(t.type){case a.BoolTrue:return"true";case a.BoolFalse:return"false";case a.Int:return t.value.toString();case a.UInt:return`u${t.value.toString()}`;case a.Buffer:if(e==="tryAscii"){let n=lt(t.buffer);if(/[ -~]/.test(n))return JSON.stringify(n)}return`0x${pt(t.buffer)}`;case a.OptionalNone:return"none";case a.OptionalSome:return`(some ${C(t.value,e)})`;case a.ResponseErr:return`(err ${C(t.value,e)})`;case a.ResponseOk:return`(ok ${C(t.value,e)})`;case a.PrincipalStandard:case a.PrincipalContract:return`'${S(t)}`;case a.List:return`(list ${t.list.map(n=>C(n,e)).join(" ")})`;case a.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${C(t.data[n],e)})`).join(" ")})`;case a.StringASCII:return`"${t.data}"`;case a.StringUTF8:return`u"${t.data}"`}}function w(t,e){return e.map((n,r)=>y(n,t.args[r].type))}function P(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${String(t.value)}`)}function F(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${String(t.value)}`)}function m(t,e){return w(t,e)}function yt(t,e){let n=t.abi.functions.find(o=>d(o.name)===e);if(n)return function(...o){return{functionArgs:m(n,o),contractAddress:t.contractAddress,contractName:t.contractName,function:n,nativeArgs:o}};let r=t.abi.maps.find(o=>d(o.name)===e);if(r)return o=>{let i=y(o,r.key);return{contractAddress:t.contractAddress,contractName:t.contractName,map:r,nativeKey:o,key:i}};throw new Error(`Invalid function call: no function exists for ${String(e)}`)}var dt={get:yt},Ct=t=>new Proxy(t,dt);import{parseReadOnlyResponse as Tt,fetchContractDataMapEntry as mt}from"https://deno.land/x/microstacks/api.js";import{cvToHex as R,hexToCV as xt}from"https://deno.land/x/microstacks/clarity.js";import{fetchPrivate as gt}from"https://deno.land/x/microstacks/common.js";import{broadcastTransaction as vt}from"https://deno.land/x/microstacks/transactions.js";async function _(t,e){let r=`${e.network.getReadOnlyFunctionCallApiUrl(t.contractAddress,t.contractName,t.function.name)}?tip=latest`,o=JSON.stringify({sender:t.contractAddress,arguments:t.functionArgs.map(s=>typeof s=="string"?s:R(s))}),i=await gt(r,{method:"POST",body:o,headers:{"Content-Type":"application/json"}});if(!i.ok){let s="";try{s=await i.text()}catch{}throw new Error(`Error calling read-only function. Response ${i.status}: ${i.statusText}. Attempted to fetch ${r} and failed with the message: "${s}"`)}let l=Tt(await i.json());return p(l,!0)}async function ae(t,e){let n=await _(t,e);return P(n)}async function ie(t,e){let n=await _(t,e);return F(n)}async function se(t,e){let n=R(t.key),r=await mt({contract_address:t.contractAddress,contract_name:t.contractName,map_name:t.map.name,lookup_key:n,tip:"latest",url:e.network.getCoreApiUrl(),proof:0}),o=xt(r.data);return p(o,!0)}async function ce(t,e){let n=await vt(t,e.network);if("error"in n)throw new Error(`Error broadcasting tx: ${n.error} - ${n.reason} - ${n.reason_data}`);return{txId:n.txid,stacksTransaction:t}}function bt(t){let e=[];return t.forEach(n=>e.push(...n.transactions)),e}function O(t){return bt(t).filter(x)}function B(t){if(!x(t))throw new Error("Unable to get path for tx type.");if("requirement-publish"in t)return t["requirement-publish"].path;if("emulated-contract-publish"in t)return t["emulated-contract-publish"].path;if("contract-publish"in t)return t["contract-publish"].path;throw new Error("Couldnt get path for deployment tx.")}function V(t){if(!x(t))throw new Error("Unable to get ID for tx type.");if("requirement-publish"in t){let e=t["requirement-publish"],[n,r]=e["contract-id"].split(".");return`${e["remap-sender"]}.${r}`}else if("emulated-contract-publish"in t){let e=t["emulated-contract-publish"];return`${e["emulated-sender"]}.${e["contract-name"]}`}else if("contract-publish"in t){let e=t["contract-publish"];return`${e["expected-sender"]}.${e["contract-name"]}`}throw new Error("Unable to find ID for contract.")}function x(t){return!("contract-call"in t||"btc-transfer"in t||"emulated-contract-call"in t)}function ge(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let o=`${e}.${r.contractName}`;return[n,At(r,o)]}))}function Et(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>[n,(...i)=>{let l=m(r,i),[s,u]=e.split(".");return{functionArgs:l,contractAddress:s,contractName:u,function:r,nativeArgs:i}}]))}function At(t,e){let n=T({},t);return n.identifier=e,T(T({},Et(t.functions,e)),n)}function ve(t,e){let n={};return O(e.plan.batches).forEach(o=>{let i=V(o),[l,s]=i.split("."),u=d(s),I=t[u],f=t[u];if(typeof f>"u")throw new Error(`Clarigen error: mismatch for contract '${u}'`);n[u]=f,f.contractFile=B(o),f.identifier=i,Object.keys(t[u].functions).forEach(c=>{let g=c,$=(...v)=>{let b=I.functions[g];return{functionArgs:m(b,v),contractAddress:l,contractName:f.contractName,function:b,nativeArgs:v}};f[g]=$})}),n}export{H as CoreNodeEventType,q as MAINNET_BURN_ADDRESS,L as TESTNET_BURN_ADDRESS,Ft as bootContractIdentifier,ce as broadcast,At as contractFactory,ge as contractsFactory,C as cvToString,p as cvToValue,ve as deploymentFactory,ft as err,F as expectErr,P as expectOk,se as fetchMapGet,_t as filterEvents,Et as functionsFactory,wt as getContractIdentifier,K as getContractNameFromPath,Pt as getContractPrincipalCV,Gt as hexToCvValue,Bt as makeContracts,ut as ok,y as parseToCV,Ct as pureProxy,_ as ro,ie as roErr,ae as roOk,d as toCamelCase,w as transformArgsToCV};