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

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.
@@ -0,0 +1,268 @@
1
+ import { ClarityAbiType, ClarityAbi as ClarityAbi$1, ClarityValue, ClarityAbiFunction, 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
+ interface ResponseOk<T> {
6
+ value: T;
7
+ isOk: true;
8
+ }
9
+ interface ResponseErr<T> {
10
+ value: T;
11
+ isOk: false;
12
+ }
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>;
16
+ interface ClarityAbiMap {
17
+ name: string;
18
+ key: ClarityAbiType;
19
+ value: ClarityAbiType;
20
+ }
21
+ interface ClarityAbi extends Omit<ClarityAbi$1, 'maps'> {
22
+ maps: ClarityAbiMap[];
23
+ clarity_version?: string;
24
+ }
25
+ /**
26
+ * @param val - ClarityValue
27
+ * @param returnResponse - if true, this will return a "response" object.
28
+ * Otherwise, it returns the inner value of the response (whether ok or err)
29
+ */
30
+ declare function cvToValue<T = any>(val: ClarityValue, returnResponse?: boolean): T;
31
+ /**
32
+ * Converts a hex encoded string to the javascript clarity value object {type: string; value: any}
33
+ * @param hex - the hex encoded string with or without `0x` prefix
34
+ * @param jsonCompat - enable to serialize bigints to strings
35
+ */
36
+ declare function hexToCvValue<T>(hex: string, jsonCompat?: boolean): any;
37
+ declare type TupleInput = Record<string, any>;
38
+ declare type CVInput = string | boolean | TupleInput | number | bigint;
39
+ declare function parseToCV(input: CVInput, type: ClarityAbiType): ClarityValue;
40
+ declare function cvToString(val: ClarityValue, encoding?: 'tryAscii' | 'hex'): string;
41
+ declare function transformArgsToCV(func: ClarityAbiFunction, args: any[]): ClarityValue[];
42
+ declare function expectOk<Ok>(response: Response<Ok, any>): Ok;
43
+ declare function expectErr<Err>(response: Response<any, Err>): Err;
44
+
45
+ interface ResultAssets {
46
+ stx: Record<string, string>;
47
+ burns: Record<string, string>;
48
+ tokens: Record<string, Record<string, string>>;
49
+ assets: Record<string, Record<string, string>>;
50
+ }
51
+
52
+ declare type ContractBuilder<T> = (contractAddress: string, contractName: string) => T;
53
+ interface Contract<T> {
54
+ address: string;
55
+ contractFile: string;
56
+ contract: ContractBuilder<T>;
57
+ abi: ClarityAbi;
58
+ name: string;
59
+ }
60
+ interface Contracts<T> {
61
+ [key: string]: Contract<T>;
62
+ }
63
+ interface ContractInstance<T> {
64
+ identifier: string;
65
+ contract: T;
66
+ }
67
+ declare type ContractInstances<T extends Contracts<any>> = {
68
+ [Name in keyof T]: ContractInstance<ReturnType<T[Name]['contract']>>;
69
+ };
70
+
71
+ declare const TESTNET_BURN_ADDRESS = "ST000000000000000000002AMW42H";
72
+ declare const MAINNET_BURN_ADDRESS = "SP000000000000000000002Q6VF78";
73
+ declare const toCamelCase: (input: string | number | symbol, titleCase?: boolean | undefined) => string;
74
+ declare const getContractNameFromPath: (path: string) => string;
75
+ declare const getContractIdentifier: <T>(contract: Contract<T>) => string;
76
+ declare const getContractPrincipalCV: <T>(contract: Contract<T>) => ContractPrincipalCV;
77
+ declare function bootContractIdentifier(name: string, mainnet: boolean): string;
78
+
79
+ declare enum CoreNodeEventType {
80
+ ContractEvent = "contract_event",
81
+ StxTransferEvent = "stx_transfer_event",
82
+ StxMintEvent = "stx_mint_event",
83
+ StxBurnEvent = "stx_burn_event",
84
+ StxLockEvent = "stx_lock_event",
85
+ NftTransferEvent = "nft_transfer_event",
86
+ NftMintEvent = "nft_mint_event",
87
+ NftBurnEvent = "nft_burn_event",
88
+ FtTransferEvent = "ft_transfer_event",
89
+ FtMintEvent = "ft_mint_event",
90
+ FtBurnEvent = "ft_burn_event"
91
+ }
92
+ declare type NonStandardClarityValue = unknown;
93
+ interface CoreNodeEventBase {
94
+ /** 0x-prefix transaction hash. */
95
+ txid: string;
96
+ event_index: number;
97
+ committed: boolean;
98
+ }
99
+ interface SmartContractEvent extends CoreNodeEventBase {
100
+ type: CoreNodeEventType.ContractEvent;
101
+ contract_event: {
102
+ /** Fully qualified contract ID, e.g. "ST2ZRX0K27GW0SP3GJCEMHD95TQGJMKB7G9Y0X1MH.kv-store" */
103
+ contract_identifier: string;
104
+ topic: string;
105
+ value: NonStandardClarityValue;
106
+ /** Hex encoded Clarity value. */
107
+ raw_value: string;
108
+ };
109
+ }
110
+ interface StxTransferEvent extends CoreNodeEventBase {
111
+ type: CoreNodeEventType.StxTransferEvent;
112
+ stx_transfer_event: {
113
+ recipient: string;
114
+ sender: string;
115
+ amount: string;
116
+ };
117
+ }
118
+ interface StxMintEvent extends CoreNodeEventBase {
119
+ type: CoreNodeEventType.StxMintEvent;
120
+ stx_mint_event: {
121
+ recipient: string;
122
+ amount: string;
123
+ };
124
+ }
125
+ interface StxBurnEvent extends CoreNodeEventBase {
126
+ type: CoreNodeEventType.StxBurnEvent;
127
+ stx_burn_event: {
128
+ sender: string;
129
+ amount: string;
130
+ };
131
+ }
132
+ interface StxLockEvent extends CoreNodeEventBase {
133
+ type: CoreNodeEventType.StxLockEvent;
134
+ /** TODO: what dis? */
135
+ committed: boolean;
136
+ stx_lock_event: {
137
+ /** String quoted base10 integer. */
138
+ locked_amount: string;
139
+ /** String quoted base10 integer. */
140
+ unlock_height: string;
141
+ /** STX principal associated with the locked tokens. */
142
+ locked_address: string;
143
+ };
144
+ }
145
+ interface NftTransferEvent extends CoreNodeEventBase {
146
+ type: CoreNodeEventType.NftTransferEvent;
147
+ nft_transfer_event: {
148
+ /** Fully qualified asset ID, e.g. "ST2ZRX0K27GW0SP3GJCEMHD95TQGJMKB7G9Y0X1MH.contract-name.asset-name" */
149
+ asset_identifier: string;
150
+ recipient: string;
151
+ sender: string;
152
+ value: NonStandardClarityValue;
153
+ /** Hex encoded Clarity value. */
154
+ raw_value: string;
155
+ };
156
+ }
157
+ interface NftMintEvent extends CoreNodeEventBase {
158
+ type: CoreNodeEventType.NftMintEvent;
159
+ nft_mint_event: {
160
+ /** Fully qualified asset ID, e.g. "ST2ZRX0K27GW0SP3GJCEMHD95TQGJMKB7G9Y0X1MH.contract-name.asset-name" */
161
+ asset_identifier: string;
162
+ recipient: string;
163
+ value: NonStandardClarityValue;
164
+ /** Hex encoded Clarity value. */
165
+ raw_value: string;
166
+ };
167
+ }
168
+ interface NftBurnEvent extends CoreNodeEventBase {
169
+ type: CoreNodeEventType.NftBurnEvent;
170
+ nft_burn_event: {
171
+ /** Fully qualified asset ID, e.g. "ST2ZRX0K27GW0SP3GJCEMHD95TQGJMKB7G9Y0X1MH.contract-name.asset-name" */
172
+ asset_identifier: string;
173
+ sender: string;
174
+ value: NonStandardClarityValue;
175
+ /** Hex encoded Clarity value. */
176
+ raw_value: string;
177
+ };
178
+ }
179
+ interface FtTransferEvent extends CoreNodeEventBase {
180
+ type: CoreNodeEventType.FtTransferEvent;
181
+ ft_transfer_event: {
182
+ /** Fully qualified asset ID, e.g. "ST2ZRX0K27GW0SP3GJCEMHD95TQGJMKB7G9Y0X1MH.contract-name.asset-name" */
183
+ asset_identifier: string;
184
+ recipient: string;
185
+ sender: string;
186
+ amount: string;
187
+ };
188
+ }
189
+ interface FtMintEvent extends CoreNodeEventBase {
190
+ type: CoreNodeEventType.FtMintEvent;
191
+ ft_mint_event: {
192
+ /** Fully qualified asset ID, e.g. "ST2ZRX0K27GW0SP3GJCEMHD95TQGJMKB7G9Y0X1MH.contract-name.asset-name" */
193
+ asset_identifier: string;
194
+ recipient: string;
195
+ amount: string;
196
+ };
197
+ }
198
+ interface FtBurnEvent extends CoreNodeEventBase {
199
+ type: CoreNodeEventType.FtBurnEvent;
200
+ ft_burn_event: {
201
+ /** Fully qualified asset ID, e.g. "ST2ZRX0K27GW0SP3GJCEMHD95TQGJMKB7G9Y0X1MH.contract-name.asset-name" */
202
+ asset_identifier: string;
203
+ sender: string;
204
+ amount: string;
205
+ };
206
+ }
207
+ declare type CoreNodeEvent = SmartContractEvent | StxTransferEvent | StxMintEvent | StxBurnEvent | StxLockEvent | FtTransferEvent | FtMintEvent | FtBurnEvent | NftTransferEvent | NftMintEvent | NftBurnEvent;
208
+ declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.ContractEvent): SmartContractEvent[];
209
+ declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.StxTransferEvent): StxTransferEvent[];
210
+ declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.StxMintEvent): StxMintEvent[];
211
+ declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.StxBurnEvent): StxBurnEvent[];
212
+ declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.StxLockEvent): StxLockEvent[];
213
+ declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.NftTransferEvent): NftTransferEvent[];
214
+ declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.NftMintEvent): NftMintEvent[];
215
+ declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.NftBurnEvent): NftBurnEvent[];
216
+ declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.FtTransferEvent): FtTransferEvent[];
217
+ declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.FtMintEvent): FtMintEvent[];
218
+ declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.FtBurnEvent): FtBurnEvent[];
219
+
220
+ interface MakeContractsOptions {
221
+ deployerAddress?: string;
222
+ }
223
+ declare function makeContracts<T extends Contracts<any>>(contracts: T, options?: MakeContractsOptions): ContractInstances<T>;
224
+
225
+ interface ContractCall<T> {
226
+ function: ClarityAbiFunction;
227
+ nativeArgs: any[];
228
+ functionArgs: ClarityValue[];
229
+ contractAddress: string;
230
+ contractName: string;
231
+ }
232
+ interface PureContractInfo {
233
+ abi: ClarityAbi;
234
+ contractAddress: string;
235
+ contractName: string;
236
+ }
237
+ declare type ContractFn<T> = (args: any) => T;
238
+ declare type ContractReturn<C extends ContractFn<ContractCalls.ReadOnly<any>>> = C extends ContractFn<ContractCalls.ReadOnly<infer T>> ? T : unknown;
239
+ declare type ContractReturnOk<C extends ContractFn<ContractCalls.ReadOnly<any>>> = ContractReturn<C> extends Response<infer O, any> ? O : unknown;
240
+ declare type ContractReturnErr<C extends ContractFn<ContractCalls.ReadOnly<any>>> = ContractReturn<C> extends Response<any, infer E> ? E : unknown;
241
+ interface MapGet<Key, Val> {
242
+ map: ClarityAbiMap;
243
+ nativeKey: Key;
244
+ key: ClarityValue;
245
+ contractAddress: string;
246
+ contractName: string;
247
+ }
248
+ declare namespace ContractCalls {
249
+ type ReadOnly<T> = ContractCall<T>;
250
+ type Public<Ok, Err> = ContractCall<Response<Ok, Err>>;
251
+ type Private<T> = ContractCall<T>;
252
+ type Map<Key, Val> = MapGet<Key, Val>;
253
+ }
254
+ declare const pureProxy: <T extends object>(target: PureContractInfo) => T;
255
+
256
+ interface ApiOptions {
257
+ network: StacksNetwork;
258
+ }
259
+ declare function ro<T>(tx: ContractCall<T>, options: ApiOptions): Promise<T>;
260
+ declare function roOk<Ok>(tx: ContractCall<Response<Ok, any>>, options: ApiOptions): Promise<Ok>;
261
+ declare function roErr<Err>(tx: ContractCall<Response<any, Err>>, options: ApiOptions): Promise<Err>;
262
+ declare function fetchMapGet<T extends ContractCalls.Map<any, Val>, Val>(map: T, options: ApiOptions): Promise<Val | null>;
263
+ declare function broadcast(transaction: StacksTransaction, options: ApiOptions): Promise<{
264
+ txId: string;
265
+ stacksTransaction: StacksTransaction;
266
+ }>;
267
+
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 };
@@ -0,0 +1,2 @@
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};
package/dist/index.d.ts CHANGED
@@ -1,11 +1,18 @@
1
- import { ClarityAbi as ClarityAbi$1, ClarityValue, ClarityAbiType, ClarityAbiFunction, ContractPrincipalCV } from 'micro-stacks/clarity';
2
- import { Result } from 'neverthrow';
3
- import { StacksTransaction, PostConditionMode, PostCondition } from 'micro-stacks/transactions';
1
+ import { ClarityAbiType, ClarityAbi as ClarityAbi$1, ClarityValue, ClarityAbiFunction, ContractPrincipalCV } from 'micro-stacks/clarity';
4
2
  import { StacksNetwork } from 'micro-stacks/network';
3
+ import { StacksTransaction } from 'micro-stacks/transactions';
5
4
 
6
- declare namespace ClarityTypes {
7
- type Response<Ok, Err> = Result<Ok, Err>;
5
+ interface ResponseOk<T> {
6
+ value: T;
7
+ isOk: true;
8
+ }
9
+ interface ResponseErr<T> {
10
+ value: T;
11
+ isOk: false;
8
12
  }
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>;
9
16
  interface ClarityAbiMap {
10
17
  name: string;
11
18
  key: ClarityAbiType;
@@ -17,8 +24,8 @@ interface ClarityAbi extends Omit<ClarityAbi$1, 'maps'> {
17
24
  }
18
25
  /**
19
26
  * @param val - ClarityValue
20
- * @param returnResponse - if true, this will return a "response" object from the `neverthrow`
21
- * library. Otherwise, it returns the inner value of the response (whether ok or err)
27
+ * @param returnResponse - if true, this will return a "response" object.
28
+ * Otherwise, it returns the inner value of the response (whether ok or err)
22
29
  */
23
30
  declare function cvToValue<T = any>(val: ClarityValue, returnResponse?: boolean): T;
24
31
  /**
@@ -31,8 +38,43 @@ declare type TupleInput = Record<string, any>;
31
38
  declare type CVInput = string | boolean | TupleInput | number | bigint;
32
39
  declare function parseToCV(input: CVInput, type: ClarityAbiType): ClarityValue;
33
40
  declare function cvToString(val: ClarityValue, encoding?: 'tryAscii' | 'hex'): string;
34
- declare function expectOk<Ok>(response: ClarityTypes.Response<Ok, any>): Ok;
35
- declare function expectErr<Err>(response: ClarityTypes.Response<any, Err>): Err;
41
+ declare function transformArgsToCV(func: ClarityAbiFunction, args: any[]): ClarityValue[];
42
+ declare function expectOk<Ok>(response: Response<Ok, any>): Ok;
43
+ declare function expectErr<Err>(response: Response<any, Err>): Err;
44
+
45
+ interface ResultAssets {
46
+ stx: Record<string, string>;
47
+ burns: Record<string, string>;
48
+ tokens: Record<string, Record<string, string>>;
49
+ assets: Record<string, Record<string, string>>;
50
+ }
51
+
52
+ declare type ContractBuilder<T> = (contractAddress: string, contractName: string) => T;
53
+ interface Contract<T> {
54
+ address: string;
55
+ contractFile: string;
56
+ contract: ContractBuilder<T>;
57
+ abi: ClarityAbi;
58
+ name: string;
59
+ }
60
+ interface Contracts<T> {
61
+ [key: string]: Contract<T>;
62
+ }
63
+ interface ContractInstance<T> {
64
+ identifier: string;
65
+ contract: T;
66
+ }
67
+ declare type ContractInstances<T extends Contracts<any>> = {
68
+ [Name in keyof T]: ContractInstance<ReturnType<T[Name]['contract']>>;
69
+ };
70
+
71
+ declare const TESTNET_BURN_ADDRESS = "ST000000000000000000002AMW42H";
72
+ declare const MAINNET_BURN_ADDRESS = "SP000000000000000000002Q6VF78";
73
+ declare const toCamelCase: (input: string | number | symbol, titleCase?: boolean | undefined) => string;
74
+ declare const getContractNameFromPath: (path: string) => string;
75
+ declare const getContractIdentifier: <T>(contract: Contract<T>) => string;
76
+ declare const getContractPrincipalCV: <T>(contract: Contract<T>) => ContractPrincipalCV;
77
+ declare function bootContractIdentifier(name: string, mainnet: boolean): string;
36
78
 
37
79
  declare enum CoreNodeEventType {
38
80
  ContractEvent = "contract_event",
@@ -175,105 +217,6 @@ declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.F
175
217
  declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.FtMintEvent): FtMintEvent[];
176
218
  declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.FtBurnEvent): FtBurnEvent[];
177
219
 
178
- interface ResultAssets {
179
- stx: Record<string, string>;
180
- burns: Record<string, string>;
181
- tokens: Record<string, Record<string, string>>;
182
- assets: Record<string, Record<string, string>>;
183
- }
184
- interface TransactionResultOk<Ok> {
185
- value: Ok;
186
- response: ResponseOk<Ok>;
187
- isOk: true;
188
- events: CoreNodeEvent[];
189
- costs: {
190
- [key: string]: any;
191
- runtime: number;
192
- };
193
- assets: ResultAssets;
194
- }
195
- interface TransactionResultErr<Err> {
196
- value: Err;
197
- response: ResponseErr<Err>;
198
- costs: {
199
- [key: string]: any;
200
- runtime: number;
201
- };
202
- isOk: false;
203
- }
204
- declare type TransactionResult<Ok, Err> = TransactionResultOk<Ok> | TransactionResultErr<Err>;
205
- interface TransactionReceiptBase<Ok, Err> {
206
- getResult: () => Promise<TransactionResult<Ok, Err>>;
207
- }
208
- interface WebTransactionReceipt<Ok, Err> extends TransactionReceiptBase<Ok, Err> {
209
- txId: string;
210
- stacksTransaction: StacksTransaction;
211
- }
212
- interface TestTransacionReceipt<Ok, Err> extends TransactionReceiptBase<Ok, Err> {
213
- result: TransactionResult<Ok, Err>;
214
- }
215
- declare type TransactionReceipt<Ok, Err> = WebTransactionReceipt<Ok, Err> | TestTransacionReceipt<Ok, Err> | TransactionReceiptBase<Ok, Err>;
216
- interface WebSignerOptions {
217
- postConditionMode?: PostConditionMode;
218
- postConditions?: PostCondition[];
219
- sponsored?: boolean;
220
- fee?: number;
221
- }
222
- interface TestSignerOptions {
223
- sender: string;
224
- }
225
- interface NodeSignerOptions {
226
- postConditionMode?: PostConditionMode;
227
- nonce?: number;
228
- postConditions?: PostCondition[];
229
- sponsored?: boolean;
230
- fee?: number;
231
- }
232
- declare type SubmitOptions = TestSignerOptions | WebSignerOptions | NodeSignerOptions;
233
- declare type Submitter<Ok, Err> = (options: SubmitOptions) => Promise<TransactionReceipt<Ok, Err>>;
234
- interface ResponseOk<Ok> {
235
- value: Ok;
236
- }
237
- interface ResponseErr<Err> {
238
- value: Err;
239
- }
240
- declare type Response<Ok, Err> = ResponseOk<Ok> | ResponseErr<Err>;
241
- interface Transaction<Ok, Err> {
242
- submit: Submitter<Ok, Err>;
243
- }
244
-
245
- declare abstract class BaseProvider {
246
- callReadOnly(func: ClarityAbiFunction, args: any[]): Promise<void>;
247
- callPublic(func: ClarityAbiFunction, args: any[]): Transaction<any, any>;
248
- }
249
-
250
- declare type ContractBuilder<T> = (contractAddress: string, contractName: string) => T;
251
- interface Contract<T> {
252
- address: string;
253
- contractFile: string;
254
- contract: ContractBuilder<T>;
255
- abi: ClarityAbi;
256
- name: string;
257
- }
258
- interface Contracts<T> {
259
- [key: string]: Contract<T>;
260
- }
261
- interface ContractInstance<T> {
262
- identifier: string;
263
- contract: T;
264
- }
265
- declare type ContractInstances<T extends Contracts<any>> = {
266
- [Name in keyof T]: ContractInstance<ReturnType<T[Name]['contract']>>;
267
- };
268
-
269
- declare const TESTNET_BURN_ADDRESS = "ST000000000000000000002AMW42H";
270
- declare const MAINNET_BURN_ADDRESS = "SP000000000000000000002Q6VF78";
271
- declare const toCamelCase: (input: string | number | symbol, titleCase?: boolean | undefined) => string;
272
- declare const getContractNameFromPath: (path: string) => string;
273
- declare const getContractIdentifier: <T>(contract: Contract<T>) => string;
274
- declare const getContractPrincipalCV: <T>(contract: Contract<T>) => ContractPrincipalCV;
275
- declare function bootContractIdentifier(name: string, mainnet: boolean): string;
276
-
277
220
  interface MakeContractsOptions {
278
221
  deployerAddress?: string;
279
222
  }
@@ -293,8 +236,8 @@ interface PureContractInfo {
293
236
  }
294
237
  declare type ContractFn<T> = (args: any) => T;
295
238
  declare type ContractReturn<C extends ContractFn<ContractCalls.ReadOnly<any>>> = C extends ContractFn<ContractCalls.ReadOnly<infer T>> ? T : unknown;
296
- declare type ContractReturnOk<C extends ContractFn<ContractCalls.ReadOnly<any>>> = ContractReturn<C> extends Result<infer O, any> ? O : unknown;
297
- declare type ContractReturnErr<C extends ContractFn<ContractCalls.ReadOnly<any>>> = ContractReturn<C> extends Result<any, infer E> ? E : unknown;
239
+ declare type ContractReturnOk<C extends ContractFn<ContractCalls.ReadOnly<any>>> = ContractReturn<C> extends Response<infer O, any> ? O : unknown;
240
+ declare type ContractReturnErr<C extends ContractFn<ContractCalls.ReadOnly<any>>> = ContractReturn<C> extends Response<any, infer E> ? E : unknown;
298
241
  interface MapGet<Key, Val> {
299
242
  map: ClarityAbiMap;
300
243
  nativeKey: Key;
@@ -304,7 +247,7 @@ interface MapGet<Key, Val> {
304
247
  }
305
248
  declare namespace ContractCalls {
306
249
  type ReadOnly<T> = ContractCall<T>;
307
- type Public<Ok, Err> = ContractCall<ClarityTypes.Response<Ok, Err>>;
250
+ type Public<Ok, Err> = ContractCall<Response<Ok, Err>>;
308
251
  type Private<T> = ContractCall<T>;
309
252
  type Map<Key, Val> = MapGet<Key, Val>;
310
253
  }
@@ -314,14 +257,12 @@ interface ApiOptions {
314
257
  network: StacksNetwork;
315
258
  }
316
259
  declare function ro<T>(tx: ContractCall<T>, options: ApiOptions): Promise<T>;
317
- declare function roOk<Ok>(tx: ContractCall<ClarityTypes.Response<Ok, any>>, options: ApiOptions): Promise<Ok>;
318
- declare function roErr<Err>(tx: ContractCall<ClarityTypes.Response<any, Err>>, options: ApiOptions): Promise<Err>;
260
+ declare function roOk<Ok>(tx: ContractCall<Response<Ok, any>>, options: ApiOptions): Promise<Ok>;
261
+ declare function roErr<Err>(tx: ContractCall<Response<any, Err>>, options: ApiOptions): Promise<Err>;
319
262
  declare function fetchMapGet<T extends ContractCalls.Map<any, Val>, Val>(map: T, options: ApiOptions): Promise<Val | null>;
320
263
  declare function broadcast(transaction: StacksTransaction, options: ApiOptions): Promise<{
321
264
  txId: string;
322
265
  stacksTransaction: StacksTransaction;
323
266
  }>;
324
267
 
325
- declare const proxy: <T extends object>(target: ClarityAbi, provider: BaseProvider) => T;
326
-
327
- export { BaseProvider, ClarityAbi, ClarityTypes, Contract, ContractBuilder, ContractCall, ContractCalls, ContractFn, ContractInstance, ContractInstances, ContractReturn, ContractReturnErr, ContractReturnOk, Contracts, CoreNodeEvent, CoreNodeEventBase, CoreNodeEventType, FtBurnEvent, FtMintEvent, FtTransferEvent, MAINNET_BURN_ADDRESS, NftBurnEvent, NftMintEvent, NftTransferEvent, NodeSignerOptions, NonStandardClarityValue, Response, ResultAssets, SmartContractEvent, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, SubmitOptions, Submitter, TESTNET_BURN_ADDRESS, TestSignerOptions, TestTransacionReceipt, Transaction, TransactionReceipt, TransactionReceiptBase, TransactionResult, TransactionResultErr, TransactionResultOk, WebSignerOptions, WebTransactionReceipt, bootContractIdentifier, broadcast, cvToString, cvToValue, expectErr, expectOk, fetchMapGet, filterEvents, getContractIdentifier, getContractNameFromPath, getContractPrincipalCV, hexToCvValue, makeContracts, parseToCV, proxy, pureProxy, ro, roErr, roOk, toCamelCase };
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 };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _clarity = require('micro-stacks/clarity');var O="ST000000000000000000002AMW42H",A= exports.MAINNET_BURN_ADDRESS ="SP000000000000000000002Q6VF78",C= exports.toCamelCase =(t,e)=>{let r=typeof t=="string"?t:String(t),[a,...n]=r.replace("!","").replace("?","").split("-"),s=e?`${a[0].toUpperCase()}${a.slice(1)}`:a;return n.forEach(u=>{s+=u[0].toUpperCase()+u.slice(1)}),s},R= exports.getContractNameFromPath =t=>{let e=t.split("/"),r=e[e.length-1],[a]=r.split(".");return a},ut= exports.getContractIdentifier =t=>`${t.address}.${t.name}`,ft= exports.getContractPrincipalCV =t=>{let e=R(t.contractFile);return _clarity.contractPrincipalCV.call(void 0, t.address,e)};function dt(t,e){return`${e?A:O}.${t}`}var _=(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))(_||{});function yt(t,e){return t.filter(r=>r.type===e)}function Tt(t,e={}){let r={};for(let a in t){let n=t[a],s=e.deployerAddress||n.address,u=`${s}.${n.name}`,p=n.contract(s,n.name);r[a]={identifier:u,contract:p}}return r}var _transactions = require('micro-stacks/transactions');var _common = require('micro-stacks/common');var _neverthrow = require('neverthrow');function g(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 i(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 i(t.value);case _clarity.ClarityType.ResponseErr:return e?_neverthrow.err.call(void 0, i(t.value)):i(t.value);case _clarity.ClarityType.ResponseOk:return e?_neverthrow.ok.call(void 0, i(t.value)):i(t.value);case _clarity.ClarityType.PrincipalStandard:case _clarity.ClarityType.PrincipalContract:return g(t);case _clarity.ClarityType.List:return t.list.map(n=>i(n));case _clarity.ClarityType.Tuple:let r={};return Object.keys(t.data).map(n=>[n,i(t.data[n])]).forEach(([n,s])=>{r[n]=s}),r;case _clarity.ClarityType.StringASCII:return t.data;case _clarity.ClarityType.StringUTF8:return t.data}}function X(t,e=!1){return i(_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 f(t,e){if(_transactions.isClarityAbiTuple.call(void 0, e)){if(typeof t!="object")throw new Error("Invalid tuple input");let r={};return e.tuple.forEach(a=>{let n=t[a.name];r[a.name]=f(n,a.type)}),_clarity.tupleCV.call(void 0, r)}else if(_transactions.isClarityAbiList.call(void 0, e)){let a=t.map(n=>f(n,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, f(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 r=typeof t=="boolean"?t.toString():t;return _transactions.parseToCV.call(void 0, r,e)}else if(e==="uint128"){let r=v(t);return _clarity.uintCV.call(void 0, r.toString())}else if(e==="int128"){let r=v(t);return _clarity.intCV.call(void 0, r.toString())}else if(e==="trait_reference"){if(typeof t!="string")throw new Error("Invalid input for trait_reference");let[r,a]=t.split(".");return _clarity.contractPrincipalCV.call(void 0, r,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 r=_common.bytesToAscii.call(void 0, t.buffer);if(/[ -~]/.test(r))return JSON.stringify(r)}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`'${g(t)}`;case _clarity.ClarityType.List:return`(list ${t.list.map(r=>d(r,e)).join(" ")})`;case _clarity.ClarityType.Tuple:return`(tuple ${Object.keys(t.data).map(r=>`(${r} ${d(t.data[r],e)})`).join(" ")})`;case _clarity.ClarityType.StringASCII:return`"${t.data}"`;case _clarity.ClarityType.StringUTF8:return`u"${t.data}"`}}function b(t,e){return e.map((r,a)=>f(r,t.args[a].type))}function y(t){return t.match(e=>e,e=>{throw new Error(`Expected OK, received error: ${e}`)})}function x(t){return t.match(e=>{throw new Error(`Expected Err, received Ok: ${e}`)},e=>e)}function Y(t,e){return b(t,e)}function Z(t,e){let r=t.abi.functions.find(n=>C(n.name)===e);if(r)return function(...n){return{functionArgs:Y(r,n),contractAddress:t.contractAddress,contractName:t.contractName,function:r,nativeArgs:n}};let a=t.abi.maps.find(n=>C(n.name)===e);if(a)return n=>{let s=f(n,a.key);return{contractAddress:t.contractAddress,contractName:t.contractName,map:a,nativeKey:n,key:s}};throw new Error(`Invalid function call: no function exists for ${String(e)}`)}var tt={get:Z},et= exports.pureProxy =t=>new Proxy(t,tt);var T=class{async callReadOnly(e,r){throw new Error("Not implemented")}callPublic(e,r){throw new Error("Not implemented")}};var _api = require('micro-stacks/api');async function N(t,e){let a=`${e.network.getReadOnlyFunctionCallApiUrl(t.contractAddress,t.contractName,t.function.name)}?tip=latest`,n=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:n,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 u=_api.parseReadOnlyResponse.call(void 0, await s.json());return i(u,!0)}async function Wt(t,e){let r=await N(t,e);return y(r)}async function Jt(t,e){let r=await N(t,e);return x(r)}async function zt(t,e){let r=_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:r,tip:"latest",url:e.network.getCoreApiUrl(),proof:0}),n=_clarity.hexToCV.call(void 0, a.data);return i(n,!0)}async function Qt(t,e){let r=await _transactions.broadcastTransaction.call(void 0, t,e.network);if("error"in r)throw new Error(`Error broadcasting tx: ${r.error} - ${r.reason} - ${r.reason_data}`);return{txId:r.txid,stacksTransaction:t}}var it=t=>({get:(r,a)=>{let n=r.functions.find(s=>C(s.name)===a);if(n){if(n.access==="read_only")return(...s)=>t.callReadOnly(n,s);if(n.access==="public")return(...s)=>t.callPublic(n,s)}return null}}),Yt= exports.proxy =(t,e)=>new Proxy(t,it(e));exports.BaseProvider = T; exports.CoreNodeEventType = _; exports.MAINNET_BURN_ADDRESS = A; exports.TESTNET_BURN_ADDRESS = O; exports.bootContractIdentifier = dt; exports.broadcast = Qt; exports.cvToString = d; exports.cvToValue = i; exports.expectErr = x; exports.expectOk = y; exports.fetchMapGet = zt; exports.filterEvents = yt; exports.getContractIdentifier = ut; exports.getContractNameFromPath = R; exports.getContractPrincipalCV = ft; exports.hexToCvValue = X; exports.makeContracts = Tt; exports.parseToCV = f; exports.proxy = Yt; exports.pureProxy = et; exports.ro = N; exports.roErr = Jt; exports.roOk = Wt; exports.toCamelCase = C;
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;
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{contractPrincipalCV as O}from"micro-stacks/clarity";var A="ST000000000000000000002AMW42H",R="SP000000000000000000002Q6VF78",y=(t,e)=>{let r=typeof t=="string"?t:String(t),[a,...n]=r.replace("!","").replace("?","").split("-"),s=e?`${a[0].toUpperCase()}${a.slice(1)}`:a;return n.forEach(f=>{s+=f[0].toUpperCase()+f.slice(1)}),s},_=t=>{let e=t.split("/"),r=e[e.length-1],[a]=r.split(".");return a},ft=t=>`${t.address}.${t.name}`,dt=t=>{let e=_(t.contractFile);return O(t.address,e)};function Ct(t,e){return`${e?R:A}.${t}`}var w=(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))(w||{});function xt(t,e){return t.filter(r=>r.type===e)}function Et(t,e={}){let r={};for(let a in t){let n=t[a],s=e.deployerAddress||n.address,f=`${s}.${n.name}`,p=n.contract(s,n.name);r[a]={identifier:f,contract:p}}return r}import{addressToString as m,ClarityType as o,uintCV as P,contractPrincipalCV as V,intCV as B,stringAsciiCV as h,stringUtf8CV as F,noneCV as I,someCV as M,tupleCV as $,listCV as j,hexToCV as U,bufferCV as H}from"micro-stacks/clarity";import{isClarityAbiList as L,isClarityAbiOptional as K,isClarityAbiStringAscii as G,isClarityAbiStringUtf8 as D,isClarityAbiTuple as W,isClarityAbiBuffer as J,parseToCV as v}from"micro-stacks/transactions";import{bytesToAscii as z,bytesToHex as Q}from"micro-stacks/common";import{ok as q,err as X}from"neverthrow";function b(t){if(t.type===o.PrincipalStandard)return m(t.address);if(t.type===o.PrincipalContract)return`${m(t.address)}.${t.contractName.content}`;throw new Error(`Unexpected principal data: ${JSON.stringify(t)}`)}function i(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 i(t.value);case o.ResponseErr:return e?X(i(t.value)):i(t.value);case o.ResponseOk:return e?q(i(t.value)):i(t.value);case o.PrincipalStandard:case o.PrincipalContract:return b(t);case o.List:return t.list.map(n=>i(n));case o.Tuple:let r={};return Object.keys(t.data).map(n=>[n,i(t.data[n])]).forEach(([n,s])=>{r[n]=s}),r;case o.StringASCII:return t.data;case o.StringUTF8:return t.data}}function Y(t,e=!1){return i(U(t),e)}function g(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(W(e)){if(typeof t!="object")throw new Error("Invalid tuple input");let r={};return e.tuple.forEach(a=>{let n=t[a.name];r[a.name]=d(n,a.type)}),$(r)}else if(L(e)){let a=t.map(n=>d(n,e.list.type));return j(a)}else{if(K(e))return t?M(d(t,e.optional)):I();if(G(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return h(t)}else if(D(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return F(t)}else if(e==="bool"){let r=typeof t=="boolean"?t.toString():t;return v(r,e)}else if(e==="uint128"){let r=g(t);return P(r.toString())}else if(e==="int128"){let r=g(t);return B(r.toString())}else if(e==="trait_reference"){if(typeof t!="string")throw new Error("Invalid input for trait_reference");let[r,a]=t.split(".");return V(r,a)}else if(J(e))return H(t)}return v(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 r=z(t.buffer);if(/[ -~]/.test(r))return JSON.stringify(r)}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`'${b(t)}`;case o.List:return`(list ${t.list.map(r=>C(r,e)).join(" ")})`;case o.Tuple:return`(tuple ${Object.keys(t.data).map(r=>`(${r} ${C(t.data[r],e)})`).join(" ")})`;case o.StringASCII:return`"${t.data}"`;case o.StringUTF8:return`u"${t.data}"`}}function k(t,e){return e.map((r,a)=>d(r,t.args[a].type))}function x(t){return t.match(e=>e,e=>{throw new Error(`Expected OK, received error: ${e}`)})}function T(t){return t.match(e=>{throw new Error(`Expected Err, received Ok: ${e}`)},e=>e)}function Z(t,e){return k(t,e)}function tt(t,e){let r=t.abi.functions.find(n=>y(n.name)===e);if(r)return function(...n){return{functionArgs:Z(r,n),contractAddress:t.contractAddress,contractName:t.contractName,function:r,nativeArgs:n}};let a=t.abi.maps.find(n=>y(n.name)===e);if(a)return n=>{let s=d(n,a.key);return{contractAddress:t.contractAddress,contractName:t.contractName,map:a,nativeKey:n,key:s}};throw new Error(`Invalid function call: no function exists for ${String(e)}`)}var et={get:tt},rt=t=>new Proxy(t,et);var E=class{async callReadOnly(e,r){throw new Error("Not implemented")}callPublic(e,r){throw new Error("Not implemented")}};import{parseReadOnlyResponse as nt,fetchContractDataMapEntry as ot}from"micro-stacks/api";import{cvToHex as N,hexToCV as at}from"micro-stacks/clarity";import{fetchPrivate as st}from"micro-stacks/common";import{broadcastTransaction as it}from"micro-stacks/transactions";async function S(t,e){let a=`${e.network.getReadOnlyFunctionCallApiUrl(t.contractAddress,t.contractName,t.function.name)}?tip=latest`,n=JSON.stringify({sender:t.contractAddress,arguments:t.functionArgs.map(p=>typeof p=="string"?p:N(p))}),s=await st(a,{method:"POST",body:n,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 f=nt(await s.json());return i(f,!0)}async function Jt(t,e){let r=await S(t,e);return x(r)}async function zt(t,e){let r=await S(t,e);return T(r)}async function Qt(t,e){let r=N(t.key),a=await ot({contract_address:t.contractAddress,contract_name:t.contractName,map_name:t.map.name,lookup_key:r,tip:"latest",url:e.network.getCoreApiUrl(),proof:0}),n=at(a.data);return i(n,!0)}async function qt(t,e){let r=await it(t,e.network);if("error"in r)throw new Error(`Error broadcasting tx: ${r.error} - ${r.reason} - ${r.reason_data}`);return{txId:r.txid,stacksTransaction:t}}var ct=t=>({get:(r,a)=>{let n=r.functions.find(s=>y(s.name)===a);if(n){if(n.access==="read_only")return(...s)=>t.callReadOnly(n,s);if(n.access==="public")return(...s)=>t.callPublic(n,s)}return null}}),Zt=(t,e)=>new Proxy(t,ct(e));export{E as BaseProvider,w as CoreNodeEventType,R as MAINNET_BURN_ADDRESS,A as TESTNET_BURN_ADDRESS,Ct as bootContractIdentifier,qt as broadcast,C as cvToString,i as cvToValue,T as expectErr,x as expectOk,Qt as fetchMapGet,xt as filterEvents,ft as getContractIdentifier,_ as getContractNameFromPath,dt as getContractPrincipalCV,Y as hexToCvValue,Et as makeContracts,d as parseToCV,Zt as proxy,rt as pureProxy,S as ro,zt as roErr,Jt as roOk,y as toCamelCase};
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};
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.0-next.11",
2
+ "version": "1.0.0-next.16",
3
3
  "license": "MIT",
4
4
  "types": "./dist/index.d.ts",
5
5
  "main": "./dist/index.js",
@@ -14,7 +14,7 @@
14
14
  "scripts": {
15
15
  "start": "tsup --watch",
16
16
  "dev": "tsup --watch",
17
- "build": "shx rm -rf ./dist && tsup",
17
+ "build": "shx rm -rf ./dist && tsup && node make-deno.js",
18
18
  "test": "jest",
19
19
  "lint": "eslint \"src/**/*.{ts,tsx}\" && prettier --check src/**/*.ts",
20
20
  "prepublishOnly": "yarn build",
@@ -24,11 +24,10 @@
24
24
  "name": "@clarigen/core",
25
25
  "author": "Hank Stoever",
26
26
  "dependencies": {
27
- "micro-stacks": "^0.2.0",
28
- "neverthrow": "4.2.1"
27
+ "micro-stacks": "^0.2.0"
29
28
  },
30
29
  "publishConfig": {
31
30
  "access": "public"
32
31
  },
33
- "gitHead": "ab39cc98dc1fca1b7c6f11e5e39b44df87f2b0f2"
32
+ "gitHead": "cc40e90b2dc188debd134f25fe05b1ef5eb14ff2"
34
33
  }