@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.
- package/dist/deno/index.d.ts +144 -14
- package/dist/deno/index.js +1 -1
- package/dist/index.d.ts +144 -14
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +2 -2
package/dist/deno/index.d.ts
CHANGED
|
@@ -1,23 +1,120 @@
|
|
|
1
|
-
import {
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
|
14
|
-
|
|
15
|
-
|
|
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/deno/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/// <reference path="./index.d.ts" />
|
|
2
|
-
import{contractPrincipalCV as
|
|
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 {
|
|
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
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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
|
-
|
|
10
|
-
|
|
11
|
-
|
|
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
|
|
14
|
-
|
|
15
|
-
|
|
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",
|
|
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
|
|
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.
|
|
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": "
|
|
32
|
+
"gitHead": "d6b6fc199e367698d566f38ee3343b04a418c829"
|
|
33
33
|
}
|