@clarigen/core 1.0.0-next.16 → 1.0.0-next.19

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.
@@ -1,23 +1,120 @@
1
- import { ClarityAbiType, ClarityAbi as ClarityAbi$1, ClarityValue, ClarityAbiFunction, ContractPrincipalCV } from 'https://deno.land/x/microstacks/clarity.js';
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
2
  import { StacksNetwork } from 'https://deno.land/x/microstacks/network.js';
3
3
  import { StacksTransaction } from 'https://deno.land/x/microstacks/transactions.js';
4
4
 
5
- interface ResponseOk<T> {
6
- value: T;
7
- isOk: true;
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
+ };
8
59
  }
9
- interface ResponseErr<T> {
10
- value: T;
11
- isOk: false;
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;
12
68
  }
13
- declare type Response<Ok, Err> = ResponseOk<Ok> | ResponseErr<Err>;
14
- declare function ok<T>(value: T): ResponseOk<T>;
15
- declare function err<T>(value: T): ResponseErr<T>;
69
+ declare type TypedAbiVariable<T> = ClarityAbiVariable & {
70
+ defaultValue: T;
71
+ };
16
72
  interface ClarityAbiMap {
17
73
  name: string;
18
74
  key: ClarityAbiType;
19
75
  value: ClarityAbiType;
20
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>;
21
118
  interface ClarityAbi extends Omit<ClarityAbi$1, 'maps'> {
22
119
  maps: ClarityAbiMap[];
23
120
  clarity_version?: string;
@@ -36,11 +133,24 @@ declare function cvToValue<T = any>(val: ClarityValue, returnResponse?: boolean)
36
133
  declare function hexToCvValue<T>(hex: string, jsonCompat?: boolean): any;
37
134
  declare type TupleInput = Record<string, any>;
38
135
  declare type CVInput = string | boolean | TupleInput | number | bigint;
39
- declare function parseToCV(input: CVInput, type: ClarityAbiType): ClarityValue;
136
+ declare function parseToCV(input: CVInput, type: ClarityAbiType$1): ClarityValue;
40
137
  declare function cvToString(val: ClarityValue, encoding?: 'tryAscii' | 'hex'): string;
41
- declare function transformArgsToCV(func: ClarityAbiFunction, args: any[]): ClarityValue[];
138
+ declare function transformArgsToCV(func: ClarityAbiFunction$1, args: any[]): ClarityValue[];
42
139
  declare function expectOk<Ok>(response: Response<Ok, any>): Ok;
43
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;
44
154
 
45
155
  interface ResultAssets {
46
156
  stx: Record<string, string>;
@@ -223,12 +333,32 @@ interface MakeContractsOptions {
223
333
  declare function makeContracts<T extends Contracts<any>>(contracts: T, options?: MakeContractsOptions): ContractInstances<T>;
224
334
 
225
335
  interface ContractCall<T> {
226
- function: ClarityAbiFunction;
336
+ function: ClarityAbiFunction$1;
227
337
  nativeArgs: any[];
228
338
  functionArgs: ClarityValue[];
229
339
  contractAddress: string;
230
340
  contractName: string;
231
341
  }
342
+ interface ContractCallTyped<Args, R> extends Omit<ContractCall<R>, 'nativeArgs'> {
343
+ nativeArgs: Args;
344
+ }
345
+ declare type ContractFunctions = {
346
+ [key: string]: TypedAbiFunction<unknown[], unknown>;
347
+ };
348
+ declare type AllContracts = Record<string, TypedAbi>;
349
+ declare type ContractCallFunction<Args extends any[], R> = (...args: Args) => ContractCallTyped<Args, R>;
350
+ declare type FnToContractCall<T> = T extends TypedAbiFunction<infer Arg, infer R> ? ContractCallFunction<Arg, R> : never;
351
+ declare type FunctionsToContractCalls<T> = T extends ContractFunctions ? {
352
+ [key in keyof T]: FnToContractCall<T[key]>;
353
+ } : never;
354
+ declare type FullContract<T> = T extends TypedAbi ? T & FunctionsToContractCalls<T['functions']> & {
355
+ identifier: string;
356
+ } : never;
357
+ declare type ContractsToContractCalls<T> = T extends AllContracts ? {
358
+ [key in keyof T]: FullContract<T[key]>;
359
+ } : never;
360
+ declare function contractFactory<T extends AllContracts>(contracts: T, deployer: string): ContractsToContractCalls<T>;
361
+
232
362
  interface PureContractInfo {
233
363
  abi: ClarityAbi;
234
364
  contractAddress: string;
@@ -265,4 +395,4 @@ declare function broadcast(transaction: StacksTransaction, options: ApiOptions):
265
395
  stacksTransaction: StacksTransaction;
266
396
  }>;
267
397
 
268
- export { ClarityAbi, ClarityAbiMap, Contract, ContractBuilder, ContractCall, ContractCalls, ContractFn, ContractInstance, ContractInstances, ContractReturn, ContractReturnErr, ContractReturnOk, Contracts, CoreNodeEvent, CoreNodeEventBase, CoreNodeEventType, FtBurnEvent, FtMintEvent, FtTransferEvent, MAINNET_BURN_ADDRESS, NftBurnEvent, NftMintEvent, NftTransferEvent, NonStandardClarityValue, Response, ResponseErr, ResponseOk, ResultAssets, SmartContractEvent, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TESTNET_BURN_ADDRESS, bootContractIdentifier, broadcast, cvToString, cvToValue, err, expectErr, expectOk, fetchMapGet, filterEvents, getContractIdentifier, getContractNameFromPath, getContractPrincipalCV, hexToCvValue, makeContracts, ok, parseToCV, pureProxy, ro, roErr, roOk, toCamelCase, transformArgsToCV };
398
+ 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, ContractFn, ContractFunctions, ContractInstance, ContractInstances, ContractReturn, ContractReturnErr, ContractReturnOk, Contracts, ContractsToContractCalls, CoreNodeEvent, CoreNodeEventBase, CoreNodeEventType, FnToContractCall, FtBurnEvent, FtMintEvent, FtTransferEvent, FullContract, FunctionsToContractCalls, MAINNET_BURN_ADDRESS, NftBurnEvent, NftMintEvent, NftTransferEvent, NonStandardClarityValue, Response, ResponseErr, ResponseOk, ResultAssets, SmartContractEvent, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TESTNET_BURN_ADDRESS, TypedAbi, TypedAbiFunction, TypedAbiMap, TypedAbiVariable, bootContractIdentifier, broadcast, contractFactory, cvToString, cvToValue, err, expectErr, expectOk, fetchMapGet, filterEvents, getContractIdentifier, getContractNameFromPath, getContractPrincipalCV, hexToCvValue, makeContracts, ok, parseToCV, pureProxy, ro, roErr, roOk, toCamelCase, transformArgsToCV };
@@ -1,2 +1,2 @@
1
1
  /// <reference path="./index.d.ts" />
2
- import{contractPrincipalCV as S}from"https://deno.land/x/microstacks/clarity.js";var A="ST000000000000000000002AMW42H",_="SP000000000000000000002Q6VF78",y=(t,e)=>{let n=typeof t=="string"?t:String(t),[a,...r]=n.replace("!","").replace("?","").split("-"),s=e?`${a[0].toUpperCase()}${a.slice(1)}`:a;return r.forEach(l=>{s+=l[0].toUpperCase()+l.slice(1)}),s},O=t=>{let e=t.split("/"),n=e[e.length-1],[a]=n.split(".");return a},pt=t=>`${t.address}.${t.name}`,ut=t=>{let e=O(t.contractFile);return S(t.address,e)};function ft(t,e){return`${e?_:A}.${t}`}var w=(i=>(i.ContractEvent="contract_event",i.StxTransferEvent="stx_transfer_event",i.StxMintEvent="stx_mint_event",i.StxBurnEvent="stx_burn_event",i.StxLockEvent="stx_lock_event",i.NftTransferEvent="nft_transfer_event",i.NftMintEvent="nft_mint_event",i.NftBurnEvent="nft_burn_event",i.FtTransferEvent="ft_transfer_event",i.FtMintEvent="ft_mint_event",i.FtBurnEvent="ft_burn_event",i))(w||{});function dt(t,e){return t.filter(n=>n.type===e)}function yt(t,e={}){let n={};for(let a in t){let r=t[a],s=e.deployerAddress||r.address,l=`${s}.${r.name}`,p=r.contract(s,r.name);n[a]={identifier:l,contract:p}}return n}import{addressToString as v,ClarityType as o,uintCV as R,contractPrincipalCV as V,intCV as B,stringAsciiCV as F,stringUtf8CV as I,noneCV as P,someCV as h,tupleCV as M,listCV as $,hexToCV as U,bufferCV as j}from"https://deno.land/x/microstacks/clarity.js";import{isClarityAbiList as L,isClarityAbiOptional as H,isClarityAbiStringAscii as K,isClarityAbiStringUtf8 as G,isClarityAbiTuple as D,isClarityAbiBuffer as J,parseToCV as x}from"https://deno.land/x/microstacks/transactions.js";import{bytesToAscii as z,bytesToHex as Q}from"https://deno.land/x/microstacks/common.js";function W(t){return{isOk:!0,value:t}}function q(t){return{isOk:!1,value:t}}function T(t){if(t.type===o.PrincipalStandard)return v(t.address);if(t.type===o.PrincipalContract)return`${v(t.address)}.${t.contractName.content}`;throw new Error(`Unexpected principal data: ${JSON.stringify(t)}`)}function c(t,e=!1){switch(t.type){case o.BoolTrue:return!0;case o.BoolFalse:return!1;case o.Int:case o.UInt:return t.value;case o.Buffer:return t.buffer;case o.OptionalNone:return null;case o.OptionalSome:return c(t.value);case o.ResponseErr:return e?q(c(t.value)):c(t.value);case o.ResponseOk:return e?W(c(t.value)):c(t.value);case o.PrincipalStandard:case o.PrincipalContract:return T(t);case o.List:return t.list.map(r=>c(r));case o.Tuple:let n={};return Object.keys(t.data).map(r=>[r,c(t.data[r])]).forEach(([r,s])=>{n[r]=s}),n;case o.StringASCII:return t.data;case o.StringUTF8:return t.data}}function _t(t,e=!1){return c(U(t),e)}function E(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}function d(t,e){if(D(e)){if(typeof t!="object")throw new Error("Invalid tuple input");let n={};return e.tuple.forEach(a=>{let r=t[a.name];n[a.name]=d(r,a.type)}),M(n)}else if(L(e)){let a=t.map(r=>d(r,e.list.type));return $(a)}else{if(H(e))return t?h(d(t,e.optional)):P();if(K(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return F(t)}else if(G(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return I(t)}else if(e==="bool"){let n=typeof t=="boolean"?t.toString():t;return x(n,e)}else if(e==="uint128"){let n=E(t);return R(n.toString())}else if(e==="int128"){let n=E(t);return B(n.toString())}else if(e==="trait_reference"){if(typeof t!="string")throw new Error("Invalid input for trait_reference");let[n,a]=t.split(".");return V(n,a)}else if(J(e))return j(t)}return x(t,e)}function C(t,e="hex"){switch(t.type){case o.BoolTrue:return"true";case o.BoolFalse:return"false";case o.Int:return t.value.toString();case o.UInt:return`u${t.value.toString()}`;case o.Buffer:if(e==="tryAscii"){let n=z(t.buffer);if(/[ -~]/.test(n))return JSON.stringify(n)}return`0x${Q(t.buffer)}`;case o.OptionalNone:return"none";case o.OptionalSome:return`(some ${C(t.value,e)})`;case o.ResponseErr:return`(err ${C(t.value,e)})`;case o.ResponseOk:return`(ok ${C(t.value,e)})`;case o.PrincipalStandard:case o.PrincipalContract:return`'${T(t)}`;case o.List:return`(list ${t.list.map(n=>C(n,e)).join(" ")})`;case o.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${C(t.data[n],e)})`).join(" ")})`;case o.StringASCII:return`"${t.data}"`;case o.StringUTF8:return`u"${t.data}"`}}function m(t,e){return e.map((n,a)=>d(n,t.args[a].type))}function g(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${t.value}`)}function N(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${t.value}`)}function X(t,e){return m(t,e)}function Y(t,e){let n=t.abi.functions.find(r=>y(r.name)===e);if(n)return function(...r){return{functionArgs:X(n,r),contractAddress:t.contractAddress,contractName:t.contractName,function:n,nativeArgs:r}};let a=t.abi.maps.find(r=>y(r.name)===e);if(a)return r=>{let s=d(r,a.key);return{contractAddress:t.contractAddress,contractName:t.contractName,map:a,nativeKey:r,key:s}};throw new Error(`Invalid function call: no function exists for ${String(e)}`)}var Z={get:Y},tt=t=>new Proxy(t,Z);import{parseReadOnlyResponse as et,fetchContractDataMapEntry as nt}from"https://deno.land/x/microstacks/api.js";import{cvToHex as k,hexToCV as rt}from"https://deno.land/x/microstacks/clarity.js";import{fetchPrivate as ot}from"https://deno.land/x/microstacks/common.js";import{broadcastTransaction as at}from"https://deno.land/x/microstacks/transactions.js";async function b(t,e){let a=`${e.network.getReadOnlyFunctionCallApiUrl(t.contractAddress,t.contractName,t.function.name)}?tip=latest`,r=JSON.stringify({sender:t.contractAddress,arguments:t.functionArgs.map(p=>typeof p=="string"?p:k(p))}),s=await ot(a,{method:"POST",body:r,headers:{"Content-Type":"application/json"}});if(!s.ok){let p="";try{p=await s.text()}catch{}throw new Error(`Error calling read-only function. Response ${s.status}: ${s.statusText}. Attempted to fetch ${a} and failed with the message: "${p}"`)}let l=et(await s.json());return c(l,!0)}async function Kt(t,e){let n=await b(t,e);return g(n)}async function Gt(t,e){let n=await b(t,e);return N(n)}async function Dt(t,e){let n=k(t.key),a=await nt({contract_address:t.contractAddress,contract_name:t.contractName,map_name:t.map.name,lookup_key:n,tip:"latest",url:e.network.getCoreApiUrl(),proof:0}),r=rt(a.data);return c(r,!0)}async function Jt(t,e){let n=await at(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}}export{w as CoreNodeEventType,_ as MAINNET_BURN_ADDRESS,A as TESTNET_BURN_ADDRESS,ft as bootContractIdentifier,Jt as broadcast,C as cvToString,c as cvToValue,q as err,N as expectErr,g as expectOk,Dt as fetchMapGet,dt as filterEvents,pt as getContractIdentifier,O as getContractNameFromPath,ut as getContractPrincipalCV,_t as hexToCvValue,yt as makeContracts,W as ok,d as parseToCV,tt as pureProxy,b as ro,Gt as roErr,Kt as roOk,y as toCamelCase,m as transformArgsToCV};
2
+ import{contractPrincipalCV as N}from"https://deno.land/x/microstacks/clarity.js";var S="ST000000000000000000002AMW42H",_="SP000000000000000000002Q6VF78",C=(t,e)=>{let n=typeof t=="string"?t:String(t),[r,...o]=n.replace("!","").replace("?","").split("-"),i=e?`${r[0].toUpperCase()}${r.slice(1)}`:r;return o.forEach(l=>{i+=l[0].toUpperCase()+l.slice(1)}),i},w=t=>{let e=t.split("/"),n=e[e.length-1],[r]=n.split(".");return r},ct=t=>`${t.address}.${t.name}`,pt=t=>{let e=w(t.contractFile);return N(t.address,e)};function lt(t,e){return`${e?_:S}.${t}`}var O=(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))(O||{});function ft(t,e){return t.filter(n=>n.type===e)}function Ct(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 T,ClarityType as a,uintCV as R,contractPrincipalCV as F,intCV as V,stringAsciiCV as B,stringUtf8CV as P,noneCV as I,someCV as h,tupleCV as $,listCV as M,hexToCV as U,bufferCV as j}from"https://deno.land/x/microstacks/clarity.js";import{isClarityAbiList as L,isClarityAbiOptional as K,isClarityAbiStringAscii as H,isClarityAbiStringUtf8 as G,isClarityAbiTuple as D,isClarityAbiBuffer as J,parseToCV as x}from"https://deno.land/x/microstacks/transactions.js";import{bytesToAscii as z,bytesToHex as Q}from"https://deno.land/x/microstacks/common.js";function W(t){return{isOk:!0,value:t}}function Z(t){return{isOk:!1,value:t}}function m(t){if(t.type===a.PrincipalStandard)return T(t.address);if(t.type===a.PrincipalContract)return`${T(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?Z(p(t.value)):p(t.value);case a.ResponseOk:return e?W(p(t.value)):p(t.value);case a.PrincipalStandard:case a.PrincipalContract:return m(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 St(t,e=!1){return p(U(t),e)}function v(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}function u(t,e){if(D(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]=u(o,r.type)}),$(n)}else if(L(e)){let r=t.map(o=>u(o,e.list.type));return M(r)}else{if(K(e))return t?h(u(t,e.optional)):I();if(H(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return B(t)}else if(G(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return P(t)}else if(e==="bool"){let n=typeof t=="boolean"?t.toString():t;return x(n,e)}else if(e==="uint128"){let n=v(t);return R(n.toString())}else if(e==="int128"){let n=v(t);return V(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 F(n,r)}else if(J(e))return j(t)}return x(t,e)}function f(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=z(t.buffer);if(/[ -~]/.test(n))return JSON.stringify(n)}return`0x${Q(t.buffer)}`;case a.OptionalNone:return"none";case a.OptionalSome:return`(some ${f(t.value,e)})`;case a.ResponseErr:return`(err ${f(t.value,e)})`;case a.ResponseOk:return`(ok ${f(t.value,e)})`;case a.PrincipalStandard:case a.PrincipalContract:return`'${m(t)}`;case a.List:return`(list ${t.list.map(n=>f(n,e)).join(" ")})`;case a.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${f(t.data[n],e)})`).join(" ")})`;case a.StringASCII:return`"${t.data}"`;case a.StringUTF8:return`u"${t.data}"`}}function E(t,e){return e.map((n,r)=>u(n,t.args[r].type))}function g(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${t.value}`)}function A(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${t.value}`)}function d(t,e){return E(t,e)}function q(t,e){let n=t.abi.functions.find(o=>C(o.name)===e);if(n)return function(...o){return{functionArgs:d(n,o),contractAddress:t.contractAddress,contractName:t.contractName,function:n,nativeArgs:o}};let r=t.abi.maps.find(o=>C(o.name)===e);if(r)return o=>{let i=u(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 X={get:q},Y=t=>new Proxy(t,X);import{parseReadOnlyResponse as tt,fetchContractDataMapEntry as et}from"https://deno.land/x/microstacks/api.js";import{cvToHex as b,hexToCV as nt}from"https://deno.land/x/microstacks/clarity.js";import{fetchPrivate as rt}from"https://deno.land/x/microstacks/common.js";import{broadcastTransaction as ot}from"https://deno.land/x/microstacks/transactions.js";async function k(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 rt(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 Ut(t,e){let n=await k(t,e);return g(n)}async function jt(t,e){let n=await k(t,e);return A(n)}async function Lt(t,e){let n=b(t.key),r=await et({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 Kt(t,e){let n=await ot(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 Dt(t,e){let n=t;return Object.keys(t).forEach(r=>{n[r].identifier=`${e}.${r}`;let o=t[r];Object.keys(t[r].functions).forEach(i=>{let l=(...s)=>{let y=o.functions[i];return{functionArgs:d(y,s),contractAddress:"",contractName:o.contractName,function:y,nativeArgs:s}};n[r][i]=l})}),n}export{O as CoreNodeEventType,_ as MAINNET_BURN_ADDRESS,S as TESTNET_BURN_ADDRESS,lt as bootContractIdentifier,Kt as broadcast,Dt as contractFactory,f as cvToString,p as cvToValue,Z as err,A as expectErr,g as expectOk,Lt as fetchMapGet,ft as filterEvents,ct as getContractIdentifier,w as getContractNameFromPath,pt as getContractPrincipalCV,St as hexToCvValue,Ct as makeContracts,W as ok,u as parseToCV,Y as pureProxy,k as ro,jt as roErr,Ut as roOk,C as toCamelCase,E as transformArgsToCV};
package/dist/index.d.ts CHANGED
@@ -1,23 +1,120 @@
1
- import { ClarityAbiType, ClarityAbi as ClarityAbi$1, ClarityValue, ClarityAbiFunction, ContractPrincipalCV } from 'micro-stacks/clarity';
1
+ import { ClarityAbi as ClarityAbi$1, ClarityValue, ClarityAbiType as ClarityAbiType$1, ClarityAbiFunction as ClarityAbiFunction$1, ClarityAbiTypeTuple as ClarityAbiTypeTuple$1, ContractPrincipalCV } from 'micro-stacks/clarity';
2
2
  import { StacksNetwork } from 'micro-stacks/network';
3
3
  import { StacksTransaction } from 'micro-stacks/transactions';
4
4
 
5
- interface ResponseOk<T> {
6
- value: T;
7
- isOk: true;
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
+ };
8
59
  }
9
- interface ResponseErr<T> {
10
- value: T;
11
- isOk: false;
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;
12
68
  }
13
- declare type Response<Ok, Err> = ResponseOk<Ok> | ResponseErr<Err>;
14
- declare function ok<T>(value: T): ResponseOk<T>;
15
- declare function err<T>(value: T): ResponseErr<T>;
69
+ declare type TypedAbiVariable<T> = ClarityAbiVariable & {
70
+ defaultValue: T;
71
+ };
16
72
  interface ClarityAbiMap {
17
73
  name: string;
18
74
  key: ClarityAbiType;
19
75
  value: ClarityAbiType;
20
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>;
21
118
  interface ClarityAbi extends Omit<ClarityAbi$1, 'maps'> {
22
119
  maps: ClarityAbiMap[];
23
120
  clarity_version?: string;
@@ -36,11 +133,24 @@ declare function cvToValue<T = any>(val: ClarityValue, returnResponse?: boolean)
36
133
  declare function hexToCvValue<T>(hex: string, jsonCompat?: boolean): any;
37
134
  declare type TupleInput = Record<string, any>;
38
135
  declare type CVInput = string | boolean | TupleInput | number | bigint;
39
- declare function parseToCV(input: CVInput, type: ClarityAbiType): ClarityValue;
136
+ declare function parseToCV(input: CVInput, type: ClarityAbiType$1): ClarityValue;
40
137
  declare function cvToString(val: ClarityValue, encoding?: 'tryAscii' | 'hex'): string;
41
- declare function transformArgsToCV(func: ClarityAbiFunction, args: any[]): ClarityValue[];
138
+ declare function transformArgsToCV(func: ClarityAbiFunction$1, args: any[]): ClarityValue[];
42
139
  declare function expectOk<Ok>(response: Response<Ok, any>): Ok;
43
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;
44
154
 
45
155
  interface ResultAssets {
46
156
  stx: Record<string, string>;
@@ -223,12 +333,32 @@ interface MakeContractsOptions {
223
333
  declare function makeContracts<T extends Contracts<any>>(contracts: T, options?: MakeContractsOptions): ContractInstances<T>;
224
334
 
225
335
  interface ContractCall<T> {
226
- function: ClarityAbiFunction;
336
+ function: ClarityAbiFunction$1;
227
337
  nativeArgs: any[];
228
338
  functionArgs: ClarityValue[];
229
339
  contractAddress: string;
230
340
  contractName: string;
231
341
  }
342
+ interface ContractCallTyped<Args, R> extends Omit<ContractCall<R>, 'nativeArgs'> {
343
+ nativeArgs: Args;
344
+ }
345
+ declare type ContractFunctions = {
346
+ [key: string]: TypedAbiFunction<unknown[], unknown>;
347
+ };
348
+ declare type AllContracts = Record<string, TypedAbi>;
349
+ declare type ContractCallFunction<Args extends any[], R> = (...args: Args) => ContractCallTyped<Args, R>;
350
+ declare type FnToContractCall<T> = T extends TypedAbiFunction<infer Arg, infer R> ? ContractCallFunction<Arg, R> : never;
351
+ declare type FunctionsToContractCalls<T> = T extends ContractFunctions ? {
352
+ [key in keyof T]: FnToContractCall<T[key]>;
353
+ } : never;
354
+ declare type FullContract<T> = T extends TypedAbi ? T & FunctionsToContractCalls<T['functions']> & {
355
+ identifier: string;
356
+ } : never;
357
+ declare type ContractsToContractCalls<T> = T extends AllContracts ? {
358
+ [key in keyof T]: FullContract<T[key]>;
359
+ } : never;
360
+ declare function contractFactory<T extends AllContracts>(contracts: T, deployer: string): ContractsToContractCalls<T>;
361
+
232
362
  interface PureContractInfo {
233
363
  abi: ClarityAbi;
234
364
  contractAddress: string;
@@ -265,4 +395,4 @@ declare function broadcast(transaction: StacksTransaction, options: ApiOptions):
265
395
  stacksTransaction: StacksTransaction;
266
396
  }>;
267
397
 
268
- export { ClarityAbi, ClarityAbiMap, Contract, ContractBuilder, ContractCall, ContractCalls, ContractFn, ContractInstance, ContractInstances, ContractReturn, ContractReturnErr, ContractReturnOk, Contracts, CoreNodeEvent, CoreNodeEventBase, CoreNodeEventType, FtBurnEvent, FtMintEvent, FtTransferEvent, MAINNET_BURN_ADDRESS, NftBurnEvent, NftMintEvent, NftTransferEvent, NonStandardClarityValue, Response, ResponseErr, ResponseOk, ResultAssets, SmartContractEvent, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TESTNET_BURN_ADDRESS, bootContractIdentifier, broadcast, cvToString, cvToValue, err, expectErr, expectOk, fetchMapGet, filterEvents, getContractIdentifier, getContractNameFromPath, getContractPrincipalCV, hexToCvValue, makeContracts, ok, parseToCV, pureProxy, ro, roErr, roOk, toCamelCase, transformArgsToCV };
398
+ 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, ContractFn, ContractFunctions, ContractInstance, ContractInstances, ContractReturn, ContractReturnErr, ContractReturnOk, Contracts, ContractsToContractCalls, CoreNodeEvent, CoreNodeEventBase, CoreNodeEventType, FnToContractCall, FtBurnEvent, FtMintEvent, FtTransferEvent, FullContract, FunctionsToContractCalls, MAINNET_BURN_ADDRESS, NftBurnEvent, NftMintEvent, NftTransferEvent, NonStandardClarityValue, Response, ResponseErr, ResponseOk, ResultAssets, SmartContractEvent, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TESTNET_BURN_ADDRESS, TypedAbi, TypedAbiFunction, TypedAbiMap, TypedAbiVariable, bootContractIdentifier, broadcast, contractFactory, cvToString, cvToValue, err, expectErr, expectOk, fetchMapGet, filterEvents, getContractIdentifier, getContractNameFromPath, getContractPrincipalCV, hexToCvValue, makeContracts, ok, parseToCV, pureProxy, ro, roErr, roOk, toCamelCase, transformArgsToCV };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _clarity = require('micro-stacks/clarity');var S="ST000000000000000000002AMW42H",A= exports.MAINNET_BURN_ADDRESS ="SP000000000000000000002Q6VF78",C= exports.toCamelCase =(t,e)=>{let n=typeof t=="string"?t:String(t),[a,...r]=n.replace("!","").replace("?","").split("-"),s=e?`${a[0].toUpperCase()}${a.slice(1)}`:a;return r.forEach(f=>{s+=f[0].toUpperCase()+f.slice(1)}),s},_= exports.getContractNameFromPath =t=>{let e=t.split("/"),n=e[e.length-1],[a]=n.split(".");return a},ct= exports.getContractIdentifier =t=>`${t.address}.${t.name}`,pt= exports.getContractPrincipalCV =t=>{let e=_(t.contractFile);return _clarity.contractPrincipalCV.call(void 0, t.address,e)};function ut(t,e){return`${e?A:S}.${t}`}var O=(i=>(i.ContractEvent="contract_event",i.StxTransferEvent="stx_transfer_event",i.StxMintEvent="stx_mint_event",i.StxBurnEvent="stx_burn_event",i.StxLockEvent="stx_lock_event",i.NftTransferEvent="nft_transfer_event",i.NftMintEvent="nft_mint_event",i.NftBurnEvent="nft_burn_event",i.FtTransferEvent="ft_transfer_event",i.FtMintEvent="ft_mint_event",i.FtBurnEvent="ft_burn_event",i))(O||{});function lt(t,e){return t.filter(n=>n.type===e)}function Ct(t,e={}){let n={};for(let a in t){let r=t[a],s=e.deployerAddress||r.address,f=`${s}.${r.name}`,p=r.contract(s,r.name);n[a]={identifier:f,contract:p}}return n}var _transactions = require('micro-stacks/transactions');var _common = require('micro-stacks/common');function Q(t){return{isOk:!0,value:t}}function W(t){return{isOk:!1,value:t}}function E(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 c(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 c(t.value);case _clarity.ClarityType.ResponseErr:return e?W(c(t.value)):c(t.value);case _clarity.ClarityType.ResponseOk:return e?Q(c(t.value)):c(t.value);case _clarity.ClarityType.PrincipalStandard:case _clarity.ClarityType.PrincipalContract:return E(t);case _clarity.ClarityType.List:return t.list.map(r=>c(r));case _clarity.ClarityType.Tuple:let n={};return Object.keys(t.data).map(r=>[r,c(t.data[r])]).forEach(([r,s])=>{n[r]=s}),n;case _clarity.ClarityType.StringASCII:return t.data;case _clarity.ClarityType.StringUTF8:return t.data}}function At(t,e=!1){return c(_clarity.hexToCV.call(void 0, t),e)}function x(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}function l(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(a=>{let r=t[a.name];n[a.name]=l(r,a.type)}),_clarity.tupleCV.call(void 0, n)}else if(_transactions.isClarityAbiList.call(void 0, e)){let a=t.map(r=>l(r,e.list.type));return _clarity.listCV.call(void 0, a)}else{if(_transactions.isClarityAbiOptional.call(void 0, e))return t?_clarity.someCV.call(void 0, l(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=x(t);return _clarity.uintCV.call(void 0, n.toString())}else if(e==="int128"){let n=x(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,a]=t.split(".");return _clarity.contractPrincipalCV.call(void 0, n,a)}else if(_transactions.isClarityAbiBuffer.call(void 0, e))return _clarity.bufferCV.call(void 0, t)}return _transactions.parseToCV.call(void 0, t,e)}function d(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 ${d(t.value,e)})`;case _clarity.ClarityType.ResponseErr:return`(err ${d(t.value,e)})`;case _clarity.ClarityType.ResponseOk:return`(ok ${d(t.value,e)})`;case _clarity.ClarityType.PrincipalStandard:case _clarity.ClarityType.PrincipalContract:return`'${E(t)}`;case _clarity.ClarityType.List:return`(list ${t.list.map(n=>d(n,e)).join(" ")})`;case _clarity.ClarityType.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${d(t.data[n],e)})`).join(" ")})`;case _clarity.ClarityType.StringASCII:return`"${t.data}"`;case _clarity.ClarityType.StringUTF8:return`u"${t.data}"`}}function T(t,e){return e.map((n,a)=>l(n,t.args[a].type))}function m(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${t.value}`)}function g(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${t.value}`)}function q(t,e){return T(t,e)}function X(t,e){let n=t.abi.functions.find(r=>C(r.name)===e);if(n)return function(...r){return{functionArgs:q(n,r),contractAddress:t.contractAddress,contractName:t.contractName,function:n,nativeArgs:r}};let a=t.abi.maps.find(r=>C(r.name)===e);if(a)return r=>{let s=l(r,a.key);return{contractAddress:t.contractAddress,contractName:t.contractName,map:a,nativeKey:r,key:s}};throw new Error(`Invalid function call: no function exists for ${String(e)}`)}var Y={get:X},Z= exports.pureProxy =t=>new Proxy(t,Y);var _api = require('micro-stacks/api');async function k(t,e){let a=`${e.network.getReadOnlyFunctionCallApiUrl(t.contractAddress,t.contractName,t.function.name)}?tip=latest`,r=JSON.stringify({sender:t.contractAddress,arguments:t.functionArgs.map(p=>typeof p=="string"?p:_clarity.cvToHex.call(void 0, p))}),s=await _common.fetchPrivate.call(void 0, a,{method:"POST",body:r,headers:{"Content-Type":"application/json"}});if(!s.ok){let p="";try{p=await s.text()}catch (e2){}throw new Error(`Error calling read-only function. Response ${s.status}: ${s.statusText}. Attempted to fetch ${a} and failed with the message: "${p}"`)}let f=_api.parseReadOnlyResponse.call(void 0, await s.json());return c(f,!0)}async function Ht(t,e){let n=await k(t,e);return m(n)}async function Kt(t,e){let n=await k(t,e);return g(n)}async function Gt(t,e){let n=_clarity.cvToHex.call(void 0, t.key),a=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}),r=_clarity.hexToCV.call(void 0, a.data);return c(r,!0)}async function Dt(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}}exports.CoreNodeEventType = O; exports.MAINNET_BURN_ADDRESS = A; exports.TESTNET_BURN_ADDRESS = S; exports.bootContractIdentifier = ut; exports.broadcast = Dt; exports.cvToString = d; exports.cvToValue = c; exports.err = W; exports.expectErr = g; exports.expectOk = m; exports.fetchMapGet = Gt; exports.filterEvents = lt; exports.getContractIdentifier = ct; exports.getContractNameFromPath = _; exports.getContractPrincipalCV = pt; exports.hexToCvValue = At; exports.makeContracts = Ct; exports.ok = Q; exports.parseToCV = l; exports.pureProxy = Z; exports.ro = k; exports.roErr = Kt; exports.roOk = Ht; exports.toCamelCase = C; exports.transformArgsToCV = T;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _clarity = require('micro-stacks/clarity');var S="ST000000000000000000002AMW42H",_= exports.MAINNET_BURN_ADDRESS ="SP000000000000000000002Q6VF78",C= exports.toCamelCase =(t,e)=>{let n=typeof t=="string"?t:String(t),[r,...o]=n.replace("!","").replace("?","").split("-"),i=e?`${r[0].toUpperCase()}${r.slice(1)}`:r;return o.forEach(l=>{i+=l[0].toUpperCase()+l.slice(1)}),i},w= exports.getContractNameFromPath =t=>{let e=t.split("/"),n=e[e.length-1],[r]=n.split(".");return r},ct= exports.getContractIdentifier =t=>`${t.address}.${t.name}`,pt= exports.getContractPrincipalCV =t=>{let e=w(t.contractFile);return _clarity.contractPrincipalCV.call(void 0, t.address,e)};function lt(t,e){return`${e?_:S}.${t}`}var O=(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))(O||{});function ft(t,e){return t.filter(n=>n.type===e)}function Ct(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 W(t){return{isOk:!0,value:t}}function Z(t){return{isOk:!1,value:t}}function m(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?Z(p(t.value)):p(t.value);case _clarity.ClarityType.ResponseOk:return e?W(p(t.value)):p(t.value);case _clarity.ClarityType.PrincipalStandard:case _clarity.ClarityType.PrincipalContract:return m(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 St(t,e=!1){return p(_clarity.hexToCV.call(void 0, t),e)}function v(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}function u(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]=u(o,r.type)}),_clarity.tupleCV.call(void 0, n)}else if(_transactions.isClarityAbiList.call(void 0, e)){let r=t.map(o=>u(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, u(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=v(t);return _clarity.uintCV.call(void 0, n.toString())}else if(e==="int128"){let n=v(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 f(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 ${f(t.value,e)})`;case _clarity.ClarityType.ResponseErr:return`(err ${f(t.value,e)})`;case _clarity.ClarityType.ResponseOk:return`(ok ${f(t.value,e)})`;case _clarity.ClarityType.PrincipalStandard:case _clarity.ClarityType.PrincipalContract:return`'${m(t)}`;case _clarity.ClarityType.List:return`(list ${t.list.map(n=>f(n,e)).join(" ")})`;case _clarity.ClarityType.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${f(t.data[n],e)})`).join(" ")})`;case _clarity.ClarityType.StringASCII:return`"${t.data}"`;case _clarity.ClarityType.StringUTF8:return`u"${t.data}"`}}function E(t,e){return e.map((n,r)=>u(n,t.args[r].type))}function g(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${t.value}`)}function A(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${t.value}`)}function d(t,e){return E(t,e)}function q(t,e){let n=t.abi.functions.find(o=>C(o.name)===e);if(n)return function(...o){return{functionArgs:d(n,o),contractAddress:t.contractAddress,contractName:t.contractName,function:n,nativeArgs:o}};let r=t.abi.maps.find(o=>C(o.name)===e);if(r)return o=>{let i=u(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 X={get:q},Y= exports.pureProxy =t=>new Proxy(t,X);var _api = require('micro-stacks/api');async function k(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 Ut(t,e){let n=await k(t,e);return g(n)}async function jt(t,e){let n=await k(t,e);return A(n)}async function Lt(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 Kt(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 Dt(t,e){let n=t;return Object.keys(t).forEach(r=>{n[r].identifier=`${e}.${r}`;let o=t[r];Object.keys(t[r].functions).forEach(i=>{let l=(...s)=>{let y=o.functions[i];return{functionArgs:d(y,s),contractAddress:"",contractName:o.contractName,function:y,nativeArgs:s}};n[r][i]=l})}),n}exports.CoreNodeEventType = O; exports.MAINNET_BURN_ADDRESS = _; exports.TESTNET_BURN_ADDRESS = S; exports.bootContractIdentifier = lt; exports.broadcast = Kt; exports.contractFactory = Dt; exports.cvToString = f; exports.cvToValue = p; exports.err = Z; exports.expectErr = A; exports.expectOk = g; exports.fetchMapGet = Lt; exports.filterEvents = ft; exports.getContractIdentifier = ct; exports.getContractNameFromPath = w; exports.getContractPrincipalCV = pt; exports.hexToCvValue = St; exports.makeContracts = Ct; exports.ok = W; exports.parseToCV = u; exports.pureProxy = Y; exports.ro = k; exports.roErr = jt; exports.roOk = Ut; exports.toCamelCase = C; exports.transformArgsToCV = E;
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{contractPrincipalCV as S}from"micro-stacks/clarity";var A="ST000000000000000000002AMW42H",_="SP000000000000000000002Q6VF78",y=(t,e)=>{let n=typeof t=="string"?t:String(t),[a,...r]=n.replace("!","").replace("?","").split("-"),s=e?`${a[0].toUpperCase()}${a.slice(1)}`:a;return r.forEach(l=>{s+=l[0].toUpperCase()+l.slice(1)}),s},O=t=>{let e=t.split("/"),n=e[e.length-1],[a]=n.split(".");return a},pt=t=>`${t.address}.${t.name}`,ut=t=>{let e=O(t.contractFile);return S(t.address,e)};function ft(t,e){return`${e?_:A}.${t}`}var w=(i=>(i.ContractEvent="contract_event",i.StxTransferEvent="stx_transfer_event",i.StxMintEvent="stx_mint_event",i.StxBurnEvent="stx_burn_event",i.StxLockEvent="stx_lock_event",i.NftTransferEvent="nft_transfer_event",i.NftMintEvent="nft_mint_event",i.NftBurnEvent="nft_burn_event",i.FtTransferEvent="ft_transfer_event",i.FtMintEvent="ft_mint_event",i.FtBurnEvent="ft_burn_event",i))(w||{});function dt(t,e){return t.filter(n=>n.type===e)}function yt(t,e={}){let n={};for(let a in t){let r=t[a],s=e.deployerAddress||r.address,l=`${s}.${r.name}`,p=r.contract(s,r.name);n[a]={identifier:l,contract:p}}return n}import{addressToString as v,ClarityType as o,uintCV as R,contractPrincipalCV as V,intCV as B,stringAsciiCV as F,stringUtf8CV as I,noneCV as P,someCV as h,tupleCV as M,listCV as $,hexToCV as U,bufferCV as j}from"micro-stacks/clarity";import{isClarityAbiList as L,isClarityAbiOptional as H,isClarityAbiStringAscii as K,isClarityAbiStringUtf8 as G,isClarityAbiTuple as D,isClarityAbiBuffer as J,parseToCV as x}from"micro-stacks/transactions";import{bytesToAscii as z,bytesToHex as Q}from"micro-stacks/common";function W(t){return{isOk:!0,value:t}}function q(t){return{isOk:!1,value:t}}function T(t){if(t.type===o.PrincipalStandard)return v(t.address);if(t.type===o.PrincipalContract)return`${v(t.address)}.${t.contractName.content}`;throw new Error(`Unexpected principal data: ${JSON.stringify(t)}`)}function c(t,e=!1){switch(t.type){case o.BoolTrue:return!0;case o.BoolFalse:return!1;case o.Int:case o.UInt:return t.value;case o.Buffer:return t.buffer;case o.OptionalNone:return null;case o.OptionalSome:return c(t.value);case o.ResponseErr:return e?q(c(t.value)):c(t.value);case o.ResponseOk:return e?W(c(t.value)):c(t.value);case o.PrincipalStandard:case o.PrincipalContract:return T(t);case o.List:return t.list.map(r=>c(r));case o.Tuple:let n={};return Object.keys(t.data).map(r=>[r,c(t.data[r])]).forEach(([r,s])=>{n[r]=s}),n;case o.StringASCII:return t.data;case o.StringUTF8:return t.data}}function _t(t,e=!1){return c(U(t),e)}function E(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}function d(t,e){if(D(e)){if(typeof t!="object")throw new Error("Invalid tuple input");let n={};return e.tuple.forEach(a=>{let r=t[a.name];n[a.name]=d(r,a.type)}),M(n)}else if(L(e)){let a=t.map(r=>d(r,e.list.type));return $(a)}else{if(H(e))return t?h(d(t,e.optional)):P();if(K(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return F(t)}else if(G(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return I(t)}else if(e==="bool"){let n=typeof t=="boolean"?t.toString():t;return x(n,e)}else if(e==="uint128"){let n=E(t);return R(n.toString())}else if(e==="int128"){let n=E(t);return B(n.toString())}else if(e==="trait_reference"){if(typeof t!="string")throw new Error("Invalid input for trait_reference");let[n,a]=t.split(".");return V(n,a)}else if(J(e))return j(t)}return x(t,e)}function C(t,e="hex"){switch(t.type){case o.BoolTrue:return"true";case o.BoolFalse:return"false";case o.Int:return t.value.toString();case o.UInt:return`u${t.value.toString()}`;case o.Buffer:if(e==="tryAscii"){let n=z(t.buffer);if(/[ -~]/.test(n))return JSON.stringify(n)}return`0x${Q(t.buffer)}`;case o.OptionalNone:return"none";case o.OptionalSome:return`(some ${C(t.value,e)})`;case o.ResponseErr:return`(err ${C(t.value,e)})`;case o.ResponseOk:return`(ok ${C(t.value,e)})`;case o.PrincipalStandard:case o.PrincipalContract:return`'${T(t)}`;case o.List:return`(list ${t.list.map(n=>C(n,e)).join(" ")})`;case o.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${C(t.data[n],e)})`).join(" ")})`;case o.StringASCII:return`"${t.data}"`;case o.StringUTF8:return`u"${t.data}"`}}function m(t,e){return e.map((n,a)=>d(n,t.args[a].type))}function g(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${t.value}`)}function N(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${t.value}`)}function X(t,e){return m(t,e)}function Y(t,e){let n=t.abi.functions.find(r=>y(r.name)===e);if(n)return function(...r){return{functionArgs:X(n,r),contractAddress:t.contractAddress,contractName:t.contractName,function:n,nativeArgs:r}};let a=t.abi.maps.find(r=>y(r.name)===e);if(a)return r=>{let s=d(r,a.key);return{contractAddress:t.contractAddress,contractName:t.contractName,map:a,nativeKey:r,key:s}};throw new Error(`Invalid function call: no function exists for ${String(e)}`)}var Z={get:Y},tt=t=>new Proxy(t,Z);import{parseReadOnlyResponse as et,fetchContractDataMapEntry as nt}from"micro-stacks/api";import{cvToHex as k,hexToCV as rt}from"micro-stacks/clarity";import{fetchPrivate as ot}from"micro-stacks/common";import{broadcastTransaction as at}from"micro-stacks/transactions";async function b(t,e){let a=`${e.network.getReadOnlyFunctionCallApiUrl(t.contractAddress,t.contractName,t.function.name)}?tip=latest`,r=JSON.stringify({sender:t.contractAddress,arguments:t.functionArgs.map(p=>typeof p=="string"?p:k(p))}),s=await ot(a,{method:"POST",body:r,headers:{"Content-Type":"application/json"}});if(!s.ok){let p="";try{p=await s.text()}catch{}throw new Error(`Error calling read-only function. Response ${s.status}: ${s.statusText}. Attempted to fetch ${a} and failed with the message: "${p}"`)}let l=et(await s.json());return c(l,!0)}async function Kt(t,e){let n=await b(t,e);return g(n)}async function Gt(t,e){let n=await b(t,e);return N(n)}async function Dt(t,e){let n=k(t.key),a=await nt({contract_address:t.contractAddress,contract_name:t.contractName,map_name:t.map.name,lookup_key:n,tip:"latest",url:e.network.getCoreApiUrl(),proof:0}),r=rt(a.data);return c(r,!0)}async function Jt(t,e){let n=await at(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}}export{w as CoreNodeEventType,_ as MAINNET_BURN_ADDRESS,A as TESTNET_BURN_ADDRESS,ft as bootContractIdentifier,Jt as broadcast,C as cvToString,c as cvToValue,q as err,N as expectErr,g as expectOk,Dt as fetchMapGet,dt as filterEvents,pt as getContractIdentifier,O as getContractNameFromPath,ut as getContractPrincipalCV,_t as hexToCvValue,yt as makeContracts,W as ok,d as parseToCV,tt as pureProxy,b as ro,Gt as roErr,Kt as roOk,y as toCamelCase,m as transformArgsToCV};
1
+ import{contractPrincipalCV as N}from"micro-stacks/clarity";var S="ST000000000000000000002AMW42H",_="SP000000000000000000002Q6VF78",C=(t,e)=>{let n=typeof t=="string"?t:String(t),[r,...o]=n.replace("!","").replace("?","").split("-"),i=e?`${r[0].toUpperCase()}${r.slice(1)}`:r;return o.forEach(l=>{i+=l[0].toUpperCase()+l.slice(1)}),i},w=t=>{let e=t.split("/"),n=e[e.length-1],[r]=n.split(".");return r},ct=t=>`${t.address}.${t.name}`,pt=t=>{let e=w(t.contractFile);return N(t.address,e)};function lt(t,e){return`${e?_:S}.${t}`}var O=(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))(O||{});function ft(t,e){return t.filter(n=>n.type===e)}function Ct(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 T,ClarityType as a,uintCV as R,contractPrincipalCV as F,intCV as V,stringAsciiCV as B,stringUtf8CV as P,noneCV as I,someCV as h,tupleCV as $,listCV as M,hexToCV as U,bufferCV as j}from"micro-stacks/clarity";import{isClarityAbiList as L,isClarityAbiOptional as K,isClarityAbiStringAscii as H,isClarityAbiStringUtf8 as G,isClarityAbiTuple as D,isClarityAbiBuffer as J,parseToCV as x}from"micro-stacks/transactions";import{bytesToAscii as z,bytesToHex as Q}from"micro-stacks/common";function W(t){return{isOk:!0,value:t}}function Z(t){return{isOk:!1,value:t}}function m(t){if(t.type===a.PrincipalStandard)return T(t.address);if(t.type===a.PrincipalContract)return`${T(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?Z(p(t.value)):p(t.value);case a.ResponseOk:return e?W(p(t.value)):p(t.value);case a.PrincipalStandard:case a.PrincipalContract:return m(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 St(t,e=!1){return p(U(t),e)}function v(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}function u(t,e){if(D(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]=u(o,r.type)}),$(n)}else if(L(e)){let r=t.map(o=>u(o,e.list.type));return M(r)}else{if(K(e))return t?h(u(t,e.optional)):I();if(H(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return B(t)}else if(G(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return P(t)}else if(e==="bool"){let n=typeof t=="boolean"?t.toString():t;return x(n,e)}else if(e==="uint128"){let n=v(t);return R(n.toString())}else if(e==="int128"){let n=v(t);return V(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 F(n,r)}else if(J(e))return j(t)}return x(t,e)}function f(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=z(t.buffer);if(/[ -~]/.test(n))return JSON.stringify(n)}return`0x${Q(t.buffer)}`;case a.OptionalNone:return"none";case a.OptionalSome:return`(some ${f(t.value,e)})`;case a.ResponseErr:return`(err ${f(t.value,e)})`;case a.ResponseOk:return`(ok ${f(t.value,e)})`;case a.PrincipalStandard:case a.PrincipalContract:return`'${m(t)}`;case a.List:return`(list ${t.list.map(n=>f(n,e)).join(" ")})`;case a.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${f(t.data[n],e)})`).join(" ")})`;case a.StringASCII:return`"${t.data}"`;case a.StringUTF8:return`u"${t.data}"`}}function E(t,e){return e.map((n,r)=>u(n,t.args[r].type))}function g(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${t.value}`)}function A(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${t.value}`)}function d(t,e){return E(t,e)}function q(t,e){let n=t.abi.functions.find(o=>C(o.name)===e);if(n)return function(...o){return{functionArgs:d(n,o),contractAddress:t.contractAddress,contractName:t.contractName,function:n,nativeArgs:o}};let r=t.abi.maps.find(o=>C(o.name)===e);if(r)return o=>{let i=u(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 X={get:q},Y=t=>new Proxy(t,X);import{parseReadOnlyResponse as tt,fetchContractDataMapEntry as et}from"micro-stacks/api";import{cvToHex as b,hexToCV as nt}from"micro-stacks/clarity";import{fetchPrivate as rt}from"micro-stacks/common";import{broadcastTransaction as ot}from"micro-stacks/transactions";async function k(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 rt(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 Ut(t,e){let n=await k(t,e);return g(n)}async function jt(t,e){let n=await k(t,e);return A(n)}async function Lt(t,e){let n=b(t.key),r=await et({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 Kt(t,e){let n=await ot(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 Dt(t,e){let n=t;return Object.keys(t).forEach(r=>{n[r].identifier=`${e}.${r}`;let o=t[r];Object.keys(t[r].functions).forEach(i=>{let l=(...s)=>{let y=o.functions[i];return{functionArgs:d(y,s),contractAddress:"",contractName:o.contractName,function:y,nativeArgs:s}};n[r][i]=l})}),n}export{O as CoreNodeEventType,_ as MAINNET_BURN_ADDRESS,S as TESTNET_BURN_ADDRESS,lt as bootContractIdentifier,Kt as broadcast,Dt as contractFactory,f as cvToString,p as cvToValue,Z as err,A as expectErr,g as expectOk,Lt as fetchMapGet,ft as filterEvents,ct as getContractIdentifier,w as getContractNameFromPath,pt as getContractPrincipalCV,St as hexToCvValue,Ct as makeContracts,W as ok,u as parseToCV,Y as pureProxy,k as ro,jt as roErr,Ut as roOk,C as toCamelCase,E as transformArgsToCV};
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.0-next.16",
2
+ "version": "1.0.0-next.19",
3
3
  "license": "MIT",
4
4
  "types": "./dist/index.d.ts",
5
5
  "main": "./dist/index.js",
@@ -29,5 +29,5 @@
29
29
  "publishConfig": {
30
30
  "access": "public"
31
31
  },
32
- "gitHead": "cc40e90b2dc188debd134f25fe05b1ef5eb14ff2"
32
+ "gitHead": "d6b6fc199e367698d566f38ee3343b04a418c829"
33
33
  }