@clarigen/core 1.0.0-next.18 → 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.
@@ -103,18 +103,18 @@ declare type TypedAbi = Readonly<{
103
103
  contractName: string;
104
104
  contractFile?: string;
105
105
  }>;
106
- interface ResponseOk<T> {
106
+ interface ResponseOk<T, E> {
107
107
  value: T;
108
108
  isOk: true;
109
109
  }
110
- interface ResponseErr<T> {
111
- value: T;
110
+ interface ResponseErr<T, E> {
111
+ value: E;
112
112
  isOk: false;
113
113
  }
114
- declare type Response<Ok, Err> = ResponseOk<Ok> | ResponseErr<Err>;
114
+ declare type Response<Ok, Err> = ResponseOk<Ok, Err> | ResponseErr<Ok, Err>;
115
115
 
116
- declare function ok<T>(value: T): ResponseOk<T>;
117
- declare function err<T>(value: T): ResponseErr<T>;
116
+ declare function ok<T, Err = never>(value: T): ResponseOk<T, Err>;
117
+ declare function err<Ok = never, T = unknown>(value: T): ResponseErr<Ok, T>;
118
118
  interface ClarityAbi extends Omit<ClarityAbi$1, 'maps'> {
119
119
  maps: ClarityAbiMap[];
120
120
  clarity_version?: string;
@@ -345,21 +345,19 @@ interface ContractCallTyped<Args, R> extends Omit<ContractCall<R>, 'nativeArgs'>
345
345
  declare type ContractFunctions = {
346
346
  [key: string]: TypedAbiFunction<unknown[], unknown>;
347
347
  };
348
- declare type AllContracts = {
349
- [contractName: string]: {
350
- functions: ContractFunctions;
351
- [key: string]: any;
352
- };
353
- };
348
+ declare type AllContracts = Record<string, TypedAbi>;
354
349
  declare type ContractCallFunction<Args extends any[], R> = (...args: Args) => ContractCallTyped<Args, R>;
355
350
  declare type FnToContractCall<T> = T extends TypedAbiFunction<infer Arg, infer R> ? ContractCallFunction<Arg, R> : never;
356
351
  declare type FunctionsToContractCalls<T> = T extends ContractFunctions ? {
357
352
  [key in keyof T]: FnToContractCall<T[key]>;
358
353
  } : never;
354
+ declare type FullContract<T> = T extends TypedAbi ? T & FunctionsToContractCalls<T['functions']> & {
355
+ identifier: string;
356
+ } : never;
359
357
  declare type ContractsToContractCalls<T> = T extends AllContracts ? {
360
- [key in keyof T]: FunctionsToContractCalls<T[key]['functions']>;
358
+ [key in keyof T]: FullContract<T[key]>;
361
359
  } : never;
362
- declare function contractFactory<T extends AllContracts>(contracts: T): ContractsToContractCalls<T>;
360
+ declare function contractFactory<T extends AllContracts>(contracts: T, deployer: string): ContractsToContractCalls<T>;
363
361
 
364
362
  interface PureContractInfo {
365
363
  abi: ClarityAbi;
@@ -397,4 +395,4 @@ declare function broadcast(transaction: StacksTransaction, options: ApiOptions):
397
395
  stacksTransaction: StacksTransaction;
398
396
  }>;
399
397
 
400
- 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, 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 };
398
+ export { AbiPrimitiveTo, AbiTupleTo, AbiTypeTo, AllContracts, ClarityAbi, ClarityAbiFunction, ClarityAbiMap, ClarityAbiType, ClarityAbiTypeBool, ClarityAbiTypeBuffer, ClarityAbiTypeFungibleToken, ClarityAbiTypeInt128, ClarityAbiTypeList, ClarityAbiTypeNonFungibleToken, ClarityAbiTypeNone, ClarityAbiTypeOptional, ClarityAbiTypePrimitive, ClarityAbiTypePrincipal, ClarityAbiTypeResponse, ClarityAbiTypeStringAscii, ClarityAbiTypeStringUtf8, ClarityAbiTypeTraitReference, ClarityAbiTypeTuple, ClarityAbiTypeUInt128, ClarityAbiVariable, Compact, Contract, ContractBuilder, ContractCall, ContractCallFunction, ContractCallTyped, ContractCalls, ContractFn, ContractFunctions, ContractInstance, ContractInstances, ContractReturn, ContractReturnErr, ContractReturnOk, Contracts, ContractsToContractCalls, CoreNodeEvent, CoreNodeEventBase, CoreNodeEventType, FnToContractCall, FtBurnEvent, FtMintEvent, FtTransferEvent, FullContract, FunctionsToContractCalls, MAINNET_BURN_ADDRESS, NftBurnEvent, NftMintEvent, NftTransferEvent, NonStandardClarityValue, Response, ResponseErr, ResponseOk, ResultAssets, SmartContractEvent, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TESTNET_BURN_ADDRESS, TypedAbi, TypedAbiFunction, TypedAbiMap, TypedAbiVariable, bootContractIdentifier, broadcast, contractFactory, cvToString, cvToValue, err, expectErr, expectOk, fetchMapGet, filterEvents, getContractIdentifier, getContractNameFromPath, getContractPrincipalCV, hexToCvValue, makeContracts, ok, parseToCV, pureProxy, ro, roErr, roOk, toCamelCase, transformArgsToCV };
@@ -1,2 +1,2 @@
1
1
  /// <reference path="./index.d.ts" />
2
- import{contractPrincipalCV as S}from"https://deno.land/x/microstacks/clarity.js";var _="ST000000000000000000002AMW42H",w="SP000000000000000000002Q6VF78",T=(t,e)=>{let n=typeof t=="string"?t:String(t),[o,...r]=n.replace("!","").replace("?","").split("-"),a=e?`${o[0].toUpperCase()}${o.slice(1)}`:o;return r.forEach(l=>{a+=l[0].toUpperCase()+l.slice(1)}),a},F=t=>{let e=t.split("/"),n=e[e.length-1],[o]=n.split(".");return o},pt=t=>`${t.address}.${t.name}`,lt=t=>{let e=F(t.contractFile);return S(t.address,e)};function yt(t,e){return`${e?w:_}.${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 Ct(t,e){return t.filter(n=>n.type===e)}function Tt(t,e={}){let n={};for(let o in t){let r=t[o],a=e.deployerAddress||r.address,l=`${a}.${r.name}`,s=r.contract(a,r.name);n[o]={identifier:l,contract:s}}return n}import{addressToString as x,ClarityType as i,uintCV as V,contractPrincipalCV as B,intCV as I,stringAsciiCV as P,stringUtf8CV as h,noneCV as M,someCV as $,tupleCV as U,listCV as j,hexToCV as L,bufferCV as K}from"https://deno.land/x/microstacks/clarity.js";import{isClarityAbiList as H,isClarityAbiOptional as G,isClarityAbiStringAscii as D,isClarityAbiStringUtf8 as J,isClarityAbiTuple as z,isClarityAbiBuffer as Q,parseToCV as b}from"https://deno.land/x/microstacks/transactions.js";import{bytesToAscii as W,bytesToHex as Z}from"https://deno.land/x/microstacks/common.js";function q(t){return{isOk:!0,value:t}}function X(t){return{isOk:!1,value:t}}function v(t){if(t.type===i.PrincipalStandard)return x(t.address);if(t.type===i.PrincipalContract)return`${x(t.address)}.${t.contractName.content}`;throw new Error(`Unexpected principal data: ${JSON.stringify(t)}`)}function p(t,e=!1){switch(t.type){case i.BoolTrue:return!0;case i.BoolFalse:return!1;case i.Int:case i.UInt:return t.value;case i.Buffer:return t.buffer;case i.OptionalNone:return null;case i.OptionalSome:return p(t.value);case i.ResponseErr:return e?X(p(t.value)):p(t.value);case i.ResponseOk:return e?q(p(t.value)):p(t.value);case i.PrincipalStandard:case i.PrincipalContract:return v(t);case i.List:return t.list.map(r=>p(r));case i.Tuple:let n={};return Object.keys(t.data).map(r=>[r,p(t.data[r])]).forEach(([r,a])=>{n[r]=a}),n;case i.StringASCII:return t.data;case i.StringUTF8:return t.data}}function St(t,e=!1){return p(L(t),e)}function A(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}function C(t,e){if(z(e)){if(typeof t!="object")throw new Error("Invalid tuple input");let n={};return e.tuple.forEach(o=>{let r=t[o.name];n[o.name]=C(r,o.type)}),U(n)}else if(H(e)){let o=t.map(r=>C(r,e.list.type));return j(o)}else{if(G(e))return t?$(C(t,e.optional)):M();if(D(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return P(t)}else if(J(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return h(t)}else if(e==="bool"){let n=typeof t=="boolean"?t.toString():t;return b(n,e)}else if(e==="uint128"){let n=A(t);return V(n.toString())}else if(e==="int128"){let n=A(t);return I(n.toString())}else if(e==="trait_reference"){if(typeof t!="string")throw new Error("Invalid input for trait_reference");let[n,o]=t.split(".");return B(n,o)}else if(Q(e))return K(t)}return b(t,e)}function f(t,e="hex"){switch(t.type){case i.BoolTrue:return"true";case i.BoolFalse:return"false";case i.Int:return t.value.toString();case i.UInt:return`u${t.value.toString()}`;case i.Buffer:if(e==="tryAscii"){let n=W(t.buffer);if(/[ -~]/.test(n))return JSON.stringify(n)}return`0x${Z(t.buffer)}`;case i.OptionalNone:return"none";case i.OptionalSome:return`(some ${f(t.value,e)})`;case i.ResponseErr:return`(err ${f(t.value,e)})`;case i.ResponseOk:return`(ok ${f(t.value,e)})`;case i.PrincipalStandard:case i.PrincipalContract:return`'${v(t)}`;case i.List:return`(list ${t.list.map(n=>f(n,e)).join(" ")})`;case i.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${f(t.data[n],e)})`).join(" ")})`;case i.StringASCII:return`"${t.data}"`;case i.StringUTF8:return`u"${t.data}"`}}function g(t,e){return e.map((n,o)=>C(n,t.args[o].type))}function m(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${t.value}`)}function E(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${t.value}`)}function d(t,e){return g(t,e)}function Y(t,e){let n=t.abi.functions.find(r=>T(r.name)===e);if(n)return function(...r){return{functionArgs:d(n,r),contractAddress:t.contractAddress,contractName:t.contractName,function:n,nativeArgs:r}};let o=t.abi.maps.find(r=>T(r.name)===e);if(o)return r=>{let a=C(r,o.key);return{contractAddress:t.contractAddress,contractName:t.contractName,map:o,nativeKey:r,key:a}};throw new Error(`Invalid function call: no function exists for ${String(e)}`)}var tt={get:Y},et=t=>new Proxy(t,tt);import{parseReadOnlyResponse as nt,fetchContractDataMapEntry as rt}from"https://deno.land/x/microstacks/api.js";import{cvToHex as k,hexToCV as ot}from"https://deno.land/x/microstacks/clarity.js";import{fetchPrivate as it}from"https://deno.land/x/microstacks/common.js";import{broadcastTransaction as at}from"https://deno.land/x/microstacks/transactions.js";async function N(t,e){let o=`${e.network.getReadOnlyFunctionCallApiUrl(t.contractAddress,t.contractName,t.function.name)}?tip=latest`,r=JSON.stringify({sender:t.contractAddress,arguments:t.functionArgs.map(s=>typeof s=="string"?s:k(s))}),a=await it(o,{method:"POST",body:r,headers:{"Content-Type":"application/json"}});if(!a.ok){let s="";try{s=await a.text()}catch{}throw new Error(`Error calling read-only function. Response ${a.status}: ${a.statusText}. Attempted to fetch ${o} and failed with the message: "${s}"`)}let l=nt(await a.json());return p(l,!0)}async function jt(t,e){let n=await N(t,e);return m(n)}async function Lt(t,e){let n=await N(t,e);return E(n)}async function Kt(t,e){let n=k(t.key),o=await rt({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=ot(o.data);return p(r,!0)}async function Ht(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}}function Jt(t){let e={};return Object.keys(t).forEach(n=>{e[n]={};let o=t[n];Object.keys(t[n].functions).forEach(r=>{let a=(...l)=>{let s=o.functions[r];return{functionArgs:d(s,l),contractAddress:"",contractName:o.contractName,function:s,nativeArgs:l}};e[n][r]=a})}),e}export{O as CoreNodeEventType,w as MAINNET_BURN_ADDRESS,_ as TESTNET_BURN_ADDRESS,yt as bootContractIdentifier,Ht as broadcast,Jt as contractFactory,f as cvToString,p as cvToValue,X as err,E as expectErr,m as expectOk,Kt as fetchMapGet,Ct as filterEvents,pt as getContractIdentifier,F as getContractNameFromPath,lt as getContractPrincipalCV,St as hexToCvValue,Tt as makeContracts,q as ok,C as parseToCV,et as pureProxy,N as ro,Lt as roErr,jt as roOk,T as toCamelCase,g as transformArgsToCV};
2
+ import{contractPrincipalCV as N}from"https://deno.land/x/microstacks/clarity.js";var S="ST000000000000000000002AMW42H",_="SP000000000000000000002Q6VF78",C=(t,e)=>{let n=typeof t=="string"?t:String(t),[r,...o]=n.replace("!","").replace("?","").split("-"),i=e?`${r[0].toUpperCase()}${r.slice(1)}`:r;return o.forEach(l=>{i+=l[0].toUpperCase()+l.slice(1)}),i},w=t=>{let e=t.split("/"),n=e[e.length-1],[r]=n.split(".");return r},ct=t=>`${t.address}.${t.name}`,pt=t=>{let e=w(t.contractFile);return N(t.address,e)};function lt(t,e){return`${e?_:S}.${t}`}var O=(c=>(c.ContractEvent="contract_event",c.StxTransferEvent="stx_transfer_event",c.StxMintEvent="stx_mint_event",c.StxBurnEvent="stx_burn_event",c.StxLockEvent="stx_lock_event",c.NftTransferEvent="nft_transfer_event",c.NftMintEvent="nft_mint_event",c.NftBurnEvent="nft_burn_event",c.FtTransferEvent="ft_transfer_event",c.FtMintEvent="ft_mint_event",c.FtBurnEvent="ft_burn_event",c))(O||{});function ft(t,e){return t.filter(n=>n.type===e)}function Ct(t,e={}){let n={};for(let r in t){let o=t[r],i=e.deployerAddress||o.address,l=`${i}.${o.name}`,s=o.contract(i,o.name);n[r]={identifier:l,contract:s}}return n}import{addressToString as T,ClarityType as a,uintCV as R,contractPrincipalCV as F,intCV as V,stringAsciiCV as B,stringUtf8CV as P,noneCV as I,someCV as h,tupleCV as $,listCV as M,hexToCV as U,bufferCV as j}from"https://deno.land/x/microstacks/clarity.js";import{isClarityAbiList as L,isClarityAbiOptional as K,isClarityAbiStringAscii as H,isClarityAbiStringUtf8 as G,isClarityAbiTuple as D,isClarityAbiBuffer as J,parseToCV as x}from"https://deno.land/x/microstacks/transactions.js";import{bytesToAscii as z,bytesToHex as Q}from"https://deno.land/x/microstacks/common.js";function W(t){return{isOk:!0,value:t}}function Z(t){return{isOk:!1,value:t}}function m(t){if(t.type===a.PrincipalStandard)return T(t.address);if(t.type===a.PrincipalContract)return`${T(t.address)}.${t.contractName.content}`;throw new Error(`Unexpected principal data: ${JSON.stringify(t)}`)}function p(t,e=!1){switch(t.type){case a.BoolTrue:return!0;case a.BoolFalse:return!1;case a.Int:case a.UInt:return t.value;case a.Buffer:return t.buffer;case a.OptionalNone:return null;case a.OptionalSome:return p(t.value);case a.ResponseErr:return e?Z(p(t.value)):p(t.value);case a.ResponseOk:return e?W(p(t.value)):p(t.value);case a.PrincipalStandard:case a.PrincipalContract:return m(t);case a.List:return t.list.map(o=>p(o));case a.Tuple:let n={};return Object.keys(t.data).map(o=>[o,p(t.data[o])]).forEach(([o,i])=>{n[o]=i}),n;case a.StringASCII:return t.data;case a.StringUTF8:return t.data}}function St(t,e=!1){return p(U(t),e)}function v(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}function u(t,e){if(D(e)){if(typeof t!="object")throw new Error("Invalid tuple input");let n={};return e.tuple.forEach(r=>{let o=t[r.name];n[r.name]=u(o,r.type)}),$(n)}else if(L(e)){let r=t.map(o=>u(o,e.list.type));return M(r)}else{if(K(e))return t?h(u(t,e.optional)):I();if(H(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return B(t)}else if(G(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return P(t)}else if(e==="bool"){let n=typeof t=="boolean"?t.toString():t;return x(n,e)}else if(e==="uint128"){let n=v(t);return R(n.toString())}else if(e==="int128"){let n=v(t);return V(n.toString())}else if(e==="trait_reference"){if(typeof t!="string")throw new Error("Invalid input for trait_reference");let[n,r]=t.split(".");return F(n,r)}else if(J(e))return j(t)}return x(t,e)}function f(t,e="hex"){switch(t.type){case a.BoolTrue:return"true";case a.BoolFalse:return"false";case a.Int:return t.value.toString();case a.UInt:return`u${t.value.toString()}`;case a.Buffer:if(e==="tryAscii"){let n=z(t.buffer);if(/[ -~]/.test(n))return JSON.stringify(n)}return`0x${Q(t.buffer)}`;case a.OptionalNone:return"none";case a.OptionalSome:return`(some ${f(t.value,e)})`;case a.ResponseErr:return`(err ${f(t.value,e)})`;case a.ResponseOk:return`(ok ${f(t.value,e)})`;case a.PrincipalStandard:case a.PrincipalContract:return`'${m(t)}`;case a.List:return`(list ${t.list.map(n=>f(n,e)).join(" ")})`;case a.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${f(t.data[n],e)})`).join(" ")})`;case a.StringASCII:return`"${t.data}"`;case a.StringUTF8:return`u"${t.data}"`}}function E(t,e){return e.map((n,r)=>u(n,t.args[r].type))}function g(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${t.value}`)}function A(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${t.value}`)}function d(t,e){return E(t,e)}function q(t,e){let n=t.abi.functions.find(o=>C(o.name)===e);if(n)return function(...o){return{functionArgs:d(n,o),contractAddress:t.contractAddress,contractName:t.contractName,function:n,nativeArgs:o}};let r=t.abi.maps.find(o=>C(o.name)===e);if(r)return o=>{let i=u(o,r.key);return{contractAddress:t.contractAddress,contractName:t.contractName,map:r,nativeKey:o,key:i}};throw new Error(`Invalid function call: no function exists for ${String(e)}`)}var X={get:q},Y=t=>new Proxy(t,X);import{parseReadOnlyResponse as tt,fetchContractDataMapEntry as et}from"https://deno.land/x/microstacks/api.js";import{cvToHex as b,hexToCV as nt}from"https://deno.land/x/microstacks/clarity.js";import{fetchPrivate as rt}from"https://deno.land/x/microstacks/common.js";import{broadcastTransaction as ot}from"https://deno.land/x/microstacks/transactions.js";async function k(t,e){let r=`${e.network.getReadOnlyFunctionCallApiUrl(t.contractAddress,t.contractName,t.function.name)}?tip=latest`,o=JSON.stringify({sender:t.contractAddress,arguments:t.functionArgs.map(s=>typeof s=="string"?s:b(s))}),i=await rt(r,{method:"POST",body:o,headers:{"Content-Type":"application/json"}});if(!i.ok){let s="";try{s=await i.text()}catch{}throw new Error(`Error calling read-only function. Response ${i.status}: ${i.statusText}. Attempted to fetch ${r} and failed with the message: "${s}"`)}let l=tt(await i.json());return p(l,!0)}async function Ut(t,e){let n=await k(t,e);return g(n)}async function jt(t,e){let n=await k(t,e);return A(n)}async function Lt(t,e){let n=b(t.key),r=await et({contract_address:t.contractAddress,contract_name:t.contractName,map_name:t.map.name,lookup_key:n,tip:"latest",url:e.network.getCoreApiUrl(),proof:0}),o=nt(r.data);return p(o,!0)}async function Kt(t,e){let n=await ot(t,e.network);if("error"in n)throw new Error(`Error broadcasting tx: ${n.error} - ${n.reason} - ${n.reason_data}`);return{txId:n.txid,stacksTransaction:t}}function Dt(t,e){let n=t;return Object.keys(t).forEach(r=>{n[r].identifier=`${e}.${r}`;let o=t[r];Object.keys(t[r].functions).forEach(i=>{let l=(...s)=>{let y=o.functions[i];return{functionArgs:d(y,s),contractAddress:"",contractName:o.contractName,function:y,nativeArgs:s}};n[r][i]=l})}),n}export{O as CoreNodeEventType,_ as MAINNET_BURN_ADDRESS,S as TESTNET_BURN_ADDRESS,lt as bootContractIdentifier,Kt as broadcast,Dt as contractFactory,f as cvToString,p as cvToValue,Z as err,A as expectErr,g as expectOk,Lt as fetchMapGet,ft as filterEvents,ct as getContractIdentifier,w as getContractNameFromPath,pt as getContractPrincipalCV,St as hexToCvValue,Ct as makeContracts,W as ok,u as parseToCV,Y as pureProxy,k as ro,jt as roErr,Ut as roOk,C as toCamelCase,E as transformArgsToCV};
package/dist/index.d.ts CHANGED
@@ -103,18 +103,18 @@ declare type TypedAbi = Readonly<{
103
103
  contractName: string;
104
104
  contractFile?: string;
105
105
  }>;
106
- interface ResponseOk<T> {
106
+ interface ResponseOk<T, E> {
107
107
  value: T;
108
108
  isOk: true;
109
109
  }
110
- interface ResponseErr<T> {
111
- value: T;
110
+ interface ResponseErr<T, E> {
111
+ value: E;
112
112
  isOk: false;
113
113
  }
114
- declare type Response<Ok, Err> = ResponseOk<Ok> | ResponseErr<Err>;
114
+ declare type Response<Ok, Err> = ResponseOk<Ok, Err> | ResponseErr<Ok, Err>;
115
115
 
116
- declare function ok<T>(value: T): ResponseOk<T>;
117
- declare function err<T>(value: T): ResponseErr<T>;
116
+ declare function ok<T, Err = never>(value: T): ResponseOk<T, Err>;
117
+ declare function err<Ok = never, T = unknown>(value: T): ResponseErr<Ok, T>;
118
118
  interface ClarityAbi extends Omit<ClarityAbi$1, 'maps'> {
119
119
  maps: ClarityAbiMap[];
120
120
  clarity_version?: string;
@@ -345,21 +345,19 @@ interface ContractCallTyped<Args, R> extends Omit<ContractCall<R>, 'nativeArgs'>
345
345
  declare type ContractFunctions = {
346
346
  [key: string]: TypedAbiFunction<unknown[], unknown>;
347
347
  };
348
- declare type AllContracts = {
349
- [contractName: string]: {
350
- functions: ContractFunctions;
351
- [key: string]: any;
352
- };
353
- };
348
+ declare type AllContracts = Record<string, TypedAbi>;
354
349
  declare type ContractCallFunction<Args extends any[], R> = (...args: Args) => ContractCallTyped<Args, R>;
355
350
  declare type FnToContractCall<T> = T extends TypedAbiFunction<infer Arg, infer R> ? ContractCallFunction<Arg, R> : never;
356
351
  declare type FunctionsToContractCalls<T> = T extends ContractFunctions ? {
357
352
  [key in keyof T]: FnToContractCall<T[key]>;
358
353
  } : never;
354
+ declare type FullContract<T> = T extends TypedAbi ? T & FunctionsToContractCalls<T['functions']> & {
355
+ identifier: string;
356
+ } : never;
359
357
  declare type ContractsToContractCalls<T> = T extends AllContracts ? {
360
- [key in keyof T]: FunctionsToContractCalls<T[key]['functions']>;
358
+ [key in keyof T]: FullContract<T[key]>;
361
359
  } : never;
362
- declare function contractFactory<T extends AllContracts>(contracts: T): ContractsToContractCalls<T>;
360
+ declare function contractFactory<T extends AllContracts>(contracts: T, deployer: string): ContractsToContractCalls<T>;
363
361
 
364
362
  interface PureContractInfo {
365
363
  abi: ClarityAbi;
@@ -397,4 +395,4 @@ declare function broadcast(transaction: StacksTransaction, options: ApiOptions):
397
395
  stacksTransaction: StacksTransaction;
398
396
  }>;
399
397
 
400
- 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, 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 };
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",_= exports.MAINNET_BURN_ADDRESS ="SP000000000000000000002Q6VF78",f= exports.toCamelCase =(t,e)=>{let n=typeof t=="string"?t:String(t),[o,...r]=n.replace("!","").replace("?","").split("-"),a=e?`${o[0].toUpperCase()}${o.slice(1)}`:o;return r.forEach(l=>{a+=l[0].toUpperCase()+l.slice(1)}),a},w= exports.getContractNameFromPath =t=>{let e=t.split("/"),n=e[e.length-1],[o]=n.split(".");return o},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 F=(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))(F||{});function ut(t,e){return t.filter(n=>n.type===e)}function ft(t,e={}){let n={};for(let o in t){let r=t[o],a=e.deployerAddress||r.address,l=`${a}.${r.name}`,s=r.contract(a,r.name);n[o]={identifier:l,contract:s}}return n}var _transactions = require('micro-stacks/transactions');var _common = require('micro-stacks/common');function Z(t){return{isOk:!0,value:t}}function q(t){return{isOk:!1,value:t}}function A(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?q(p(t.value)):p(t.value);case _clarity.ClarityType.ResponseOk:return e?Z(p(t.value)):p(t.value);case _clarity.ClarityType.PrincipalStandard:case _clarity.ClarityType.PrincipalContract:return A(t);case _clarity.ClarityType.List:return t.list.map(r=>p(r));case _clarity.ClarityType.Tuple:let n={};return Object.keys(t.data).map(r=>[r,p(t.data[r])]).forEach(([r,a])=>{n[r]=a}),n;case _clarity.ClarityType.StringASCII:return t.data;case _clarity.ClarityType.StringUTF8:return t.data}}function Rt(t,e=!1){return p(_clarity.hexToCV.call(void 0, t),e)}function b(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(o=>{let r=t[o.name];n[o.name]=u(r,o.type)}),_clarity.tupleCV.call(void 0, n)}else if(_transactions.isClarityAbiList.call(void 0, e)){let o=t.map(r=>u(r,e.list.type));return _clarity.listCV.call(void 0, o)}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=b(t);return _clarity.uintCV.call(void 0, n.toString())}else if(e==="int128"){let n=b(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,o]=t.split(".");return _clarity.contractPrincipalCV.call(void 0, n,o)}else if(_transactions.isClarityAbiBuffer.call(void 0, e))return _clarity.bufferCV.call(void 0, t)}return _transactions.parseToCV.call(void 0, t,e)}function C(t,e="hex"){switch(t.type){case _clarity.ClarityType.BoolTrue:return"true";case _clarity.ClarityType.BoolFalse:return"false";case _clarity.ClarityType.Int:return t.value.toString();case _clarity.ClarityType.UInt:return`u${t.value.toString()}`;case _clarity.ClarityType.Buffer:if(e==="tryAscii"){let n=_common.bytesToAscii.call(void 0, t.buffer);if(/[ -~]/.test(n))return JSON.stringify(n)}return`0x${_common.bytesToHex.call(void 0, t.buffer)}`;case _clarity.ClarityType.OptionalNone:return"none";case _clarity.ClarityType.OptionalSome:return`(some ${C(t.value,e)})`;case _clarity.ClarityType.ResponseErr:return`(err ${C(t.value,e)})`;case _clarity.ClarityType.ResponseOk:return`(ok ${C(t.value,e)})`;case _clarity.ClarityType.PrincipalStandard:case _clarity.ClarityType.PrincipalContract:return`'${A(t)}`;case _clarity.ClarityType.List:return`(list ${t.list.map(n=>C(n,e)).join(" ")})`;case _clarity.ClarityType.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${C(t.data[n],e)})`).join(" ")})`;case _clarity.ClarityType.StringASCII:return`"${t.data}"`;case _clarity.ClarityType.StringUTF8:return`u"${t.data}"`}}function v(t,e){return e.map((n,o)=>u(n,t.args[o].type))}function g(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${t.value}`)}function m(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${t.value}`)}function T(t,e){return v(t,e)}function X(t,e){let n=t.abi.functions.find(r=>f(r.name)===e);if(n)return function(...r){return{functionArgs:T(n,r),contractAddress:t.contractAddress,contractName:t.contractName,function:n,nativeArgs:r}};let o=t.abi.maps.find(r=>f(r.name)===e);if(o)return r=>{let a=u(r,o.key);return{contractAddress:t.contractAddress,contractName:t.contractName,map:o,nativeKey:r,key:a}};throw new Error(`Invalid function call: no function exists for ${String(e)}`)}var Y={get:X},tt= exports.pureProxy =t=>new Proxy(t,Y);var _api = require('micro-stacks/api');async function k(t,e){let o=`${e.network.getReadOnlyFunctionCallApiUrl(t.contractAddress,t.contractName,t.function.name)}?tip=latest`,r=JSON.stringify({sender:t.contractAddress,arguments:t.functionArgs.map(s=>typeof s=="string"?s:_clarity.cvToHex.call(void 0, s))}),a=await _common.fetchPrivate.call(void 0, o,{method:"POST",body:r,headers:{"Content-Type":"application/json"}});if(!a.ok){let s="";try{s=await a.text()}catch (e2){}throw new Error(`Error calling read-only function. Response ${a.status}: ${a.statusText}. Attempted to fetch ${o} and failed with the message: "${s}"`)}let l=_api.parseReadOnlyResponse.call(void 0, await a.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 m(n)}async function Lt(t,e){let n=_clarity.cvToHex.call(void 0, t.key),o=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, o.data);return p(r,!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){let e={};return Object.keys(t).forEach(n=>{e[n]={};let o=t[n];Object.keys(t[n].functions).forEach(r=>{let a=(...l)=>{let s=o.functions[r];return{functionArgs:T(s,l),contractAddress:"",contractName:o.contractName,function:s,nativeArgs:l}};e[n][r]=a})}),e}exports.CoreNodeEventType = F; exports.MAINNET_BURN_ADDRESS = _; exports.TESTNET_BURN_ADDRESS = S; exports.bootContractIdentifier = lt; exports.broadcast = Kt; exports.contractFactory = Dt; exports.cvToString = C; exports.cvToValue = p; exports.err = q; exports.expectErr = m; exports.expectOk = g; exports.fetchMapGet = Lt; exports.filterEvents = ut; exports.getContractIdentifier = ct; exports.getContractNameFromPath = w; exports.getContractPrincipalCV = pt; exports.hexToCvValue = Rt; exports.makeContracts = ft; exports.ok = Z; exports.parseToCV = u; exports.pureProxy = tt; exports.ro = k; exports.roErr = jt; exports.roOk = Ut; exports.toCamelCase = f; exports.transformArgsToCV = v;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _clarity = require('micro-stacks/clarity');var S="ST000000000000000000002AMW42H",_= exports.MAINNET_BURN_ADDRESS ="SP000000000000000000002Q6VF78",C= exports.toCamelCase =(t,e)=>{let n=typeof t=="string"?t:String(t),[r,...o]=n.replace("!","").replace("?","").split("-"),i=e?`${r[0].toUpperCase()}${r.slice(1)}`:r;return o.forEach(l=>{i+=l[0].toUpperCase()+l.slice(1)}),i},w= exports.getContractNameFromPath =t=>{let e=t.split("/"),n=e[e.length-1],[r]=n.split(".");return r},ct= exports.getContractIdentifier =t=>`${t.address}.${t.name}`,pt= exports.getContractPrincipalCV =t=>{let e=w(t.contractFile);return _clarity.contractPrincipalCV.call(void 0, t.address,e)};function lt(t,e){return`${e?_:S}.${t}`}var O=(c=>(c.ContractEvent="contract_event",c.StxTransferEvent="stx_transfer_event",c.StxMintEvent="stx_mint_event",c.StxBurnEvent="stx_burn_event",c.StxLockEvent="stx_lock_event",c.NftTransferEvent="nft_transfer_event",c.NftMintEvent="nft_mint_event",c.NftBurnEvent="nft_burn_event",c.FtTransferEvent="ft_transfer_event",c.FtMintEvent="ft_mint_event",c.FtBurnEvent="ft_burn_event",c))(O||{});function ft(t,e){return t.filter(n=>n.type===e)}function Ct(t,e={}){let n={};for(let r in t){let o=t[r],i=e.deployerAddress||o.address,l=`${i}.${o.name}`,s=o.contract(i,o.name);n[r]={identifier:l,contract:s}}return n}var _transactions = require('micro-stacks/transactions');var _common = require('micro-stacks/common');function W(t){return{isOk:!0,value:t}}function Z(t){return{isOk:!1,value:t}}function m(t){if(t.type===_clarity.ClarityType.PrincipalStandard)return _clarity.addressToString.call(void 0, t.address);if(t.type===_clarity.ClarityType.PrincipalContract)return`${_clarity.addressToString.call(void 0, t.address)}.${t.contractName.content}`;throw new Error(`Unexpected principal data: ${JSON.stringify(t)}`)}function p(t,e=!1){switch(t.type){case _clarity.ClarityType.BoolTrue:return!0;case _clarity.ClarityType.BoolFalse:return!1;case _clarity.ClarityType.Int:case _clarity.ClarityType.UInt:return t.value;case _clarity.ClarityType.Buffer:return t.buffer;case _clarity.ClarityType.OptionalNone:return null;case _clarity.ClarityType.OptionalSome:return p(t.value);case _clarity.ClarityType.ResponseErr:return e?Z(p(t.value)):p(t.value);case _clarity.ClarityType.ResponseOk:return e?W(p(t.value)):p(t.value);case _clarity.ClarityType.PrincipalStandard:case _clarity.ClarityType.PrincipalContract:return m(t);case _clarity.ClarityType.List:return t.list.map(o=>p(o));case _clarity.ClarityType.Tuple:let n={};return Object.keys(t.data).map(o=>[o,p(t.data[o])]).forEach(([o,i])=>{n[o]=i}),n;case _clarity.ClarityType.StringASCII:return t.data;case _clarity.ClarityType.StringUTF8:return t.data}}function St(t,e=!1){return p(_clarity.hexToCV.call(void 0, t),e)}function v(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}function u(t,e){if(_transactions.isClarityAbiTuple.call(void 0, e)){if(typeof t!="object")throw new Error("Invalid tuple input");let n={};return e.tuple.forEach(r=>{let o=t[r.name];n[r.name]=u(o,r.type)}),_clarity.tupleCV.call(void 0, n)}else if(_transactions.isClarityAbiList.call(void 0, e)){let r=t.map(o=>u(o,e.list.type));return _clarity.listCV.call(void 0, r)}else{if(_transactions.isClarityAbiOptional.call(void 0, e))return t?_clarity.someCV.call(void 0, u(t,e.optional)):_clarity.noneCV.call(void 0, );if(_transactions.isClarityAbiStringAscii.call(void 0, e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return _clarity.stringAsciiCV.call(void 0, t)}else if(_transactions.isClarityAbiStringUtf8.call(void 0, e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return _clarity.stringUtf8CV.call(void 0, t)}else if(e==="bool"){let n=typeof t=="boolean"?t.toString():t;return _transactions.parseToCV.call(void 0, n,e)}else if(e==="uint128"){let n=v(t);return _clarity.uintCV.call(void 0, n.toString())}else if(e==="int128"){let n=v(t);return _clarity.intCV.call(void 0, n.toString())}else if(e==="trait_reference"){if(typeof t!="string")throw new Error("Invalid input for trait_reference");let[n,r]=t.split(".");return _clarity.contractPrincipalCV.call(void 0, n,r)}else if(_transactions.isClarityAbiBuffer.call(void 0, e))return _clarity.bufferCV.call(void 0, t)}return _transactions.parseToCV.call(void 0, t,e)}function f(t,e="hex"){switch(t.type){case _clarity.ClarityType.BoolTrue:return"true";case _clarity.ClarityType.BoolFalse:return"false";case _clarity.ClarityType.Int:return t.value.toString();case _clarity.ClarityType.UInt:return`u${t.value.toString()}`;case _clarity.ClarityType.Buffer:if(e==="tryAscii"){let n=_common.bytesToAscii.call(void 0, t.buffer);if(/[ -~]/.test(n))return JSON.stringify(n)}return`0x${_common.bytesToHex.call(void 0, t.buffer)}`;case _clarity.ClarityType.OptionalNone:return"none";case _clarity.ClarityType.OptionalSome:return`(some ${f(t.value,e)})`;case _clarity.ClarityType.ResponseErr:return`(err ${f(t.value,e)})`;case _clarity.ClarityType.ResponseOk:return`(ok ${f(t.value,e)})`;case _clarity.ClarityType.PrincipalStandard:case _clarity.ClarityType.PrincipalContract:return`'${m(t)}`;case _clarity.ClarityType.List:return`(list ${t.list.map(n=>f(n,e)).join(" ")})`;case _clarity.ClarityType.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${f(t.data[n],e)})`).join(" ")})`;case _clarity.ClarityType.StringASCII:return`"${t.data}"`;case _clarity.ClarityType.StringUTF8:return`u"${t.data}"`}}function E(t,e){return e.map((n,r)=>u(n,t.args[r].type))}function g(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${t.value}`)}function A(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${t.value}`)}function d(t,e){return E(t,e)}function q(t,e){let n=t.abi.functions.find(o=>C(o.name)===e);if(n)return function(...o){return{functionArgs:d(n,o),contractAddress:t.contractAddress,contractName:t.contractName,function:n,nativeArgs:o}};let r=t.abi.maps.find(o=>C(o.name)===e);if(r)return o=>{let i=u(o,r.key);return{contractAddress:t.contractAddress,contractName:t.contractName,map:r,nativeKey:o,key:i}};throw new Error(`Invalid function call: no function exists for ${String(e)}`)}var X={get:q},Y= exports.pureProxy =t=>new Proxy(t,X);var _api = require('micro-stacks/api');async function k(t,e){let r=`${e.network.getReadOnlyFunctionCallApiUrl(t.contractAddress,t.contractName,t.function.name)}?tip=latest`,o=JSON.stringify({sender:t.contractAddress,arguments:t.functionArgs.map(s=>typeof s=="string"?s:_clarity.cvToHex.call(void 0, s))}),i=await _common.fetchPrivate.call(void 0, r,{method:"POST",body:o,headers:{"Content-Type":"application/json"}});if(!i.ok){let s="";try{s=await i.text()}catch (e2){}throw new Error(`Error calling read-only function. Response ${i.status}: ${i.statusText}. Attempted to fetch ${r} and failed with the message: "${s}"`)}let l=_api.parseReadOnlyResponse.call(void 0, await i.json());return p(l,!0)}async function Ut(t,e){let n=await k(t,e);return g(n)}async function jt(t,e){let n=await k(t,e);return A(n)}async function Lt(t,e){let n=_clarity.cvToHex.call(void 0, t.key),r=await _api.fetchContractDataMapEntry.call(void 0, {contract_address:t.contractAddress,contract_name:t.contractName,map_name:t.map.name,lookup_key:n,tip:"latest",url:e.network.getCoreApiUrl(),proof:0}),o=_clarity.hexToCV.call(void 0, r.data);return p(o,!0)}async function Kt(t,e){let n=await _transactions.broadcastTransaction.call(void 0, t,e.network);if("error"in n)throw new Error(`Error broadcasting tx: ${n.error} - ${n.reason} - ${n.reason_data}`);return{txId:n.txid,stacksTransaction:t}}function Dt(t,e){let n=t;return Object.keys(t).forEach(r=>{n[r].identifier=`${e}.${r}`;let o=t[r];Object.keys(t[r].functions).forEach(i=>{let l=(...s)=>{let y=o.functions[i];return{functionArgs:d(y,s),contractAddress:"",contractName:o.contractName,function:y,nativeArgs:s}};n[r][i]=l})}),n}exports.CoreNodeEventType = O; exports.MAINNET_BURN_ADDRESS = _; exports.TESTNET_BURN_ADDRESS = S; exports.bootContractIdentifier = lt; exports.broadcast = Kt; exports.contractFactory = Dt; exports.cvToString = f; exports.cvToValue = p; exports.err = Z; exports.expectErr = A; exports.expectOk = g; exports.fetchMapGet = Lt; exports.filterEvents = ft; exports.getContractIdentifier = ct; exports.getContractNameFromPath = w; exports.getContractPrincipalCV = pt; exports.hexToCvValue = St; exports.makeContracts = Ct; exports.ok = W; exports.parseToCV = u; exports.pureProxy = Y; exports.ro = k; exports.roErr = jt; exports.roOk = Ut; exports.toCamelCase = C; exports.transformArgsToCV = E;
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- import{contractPrincipalCV as S}from"micro-stacks/clarity";var _="ST000000000000000000002AMW42H",w="SP000000000000000000002Q6VF78",T=(t,e)=>{let n=typeof t=="string"?t:String(t),[o,...r]=n.replace("!","").replace("?","").split("-"),a=e?`${o[0].toUpperCase()}${o.slice(1)}`:o;return r.forEach(l=>{a+=l[0].toUpperCase()+l.slice(1)}),a},F=t=>{let e=t.split("/"),n=e[e.length-1],[o]=n.split(".");return o},pt=t=>`${t.address}.${t.name}`,lt=t=>{let e=F(t.contractFile);return S(t.address,e)};function yt(t,e){return`${e?w:_}.${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 Ct(t,e){return t.filter(n=>n.type===e)}function Tt(t,e={}){let n={};for(let o in t){let r=t[o],a=e.deployerAddress||r.address,l=`${a}.${r.name}`,s=r.contract(a,r.name);n[o]={identifier:l,contract:s}}return n}import{addressToString as x,ClarityType as i,uintCV as V,contractPrincipalCV as B,intCV as I,stringAsciiCV as P,stringUtf8CV as h,noneCV as M,someCV as $,tupleCV as U,listCV as j,hexToCV as L,bufferCV as K}from"micro-stacks/clarity";import{isClarityAbiList as H,isClarityAbiOptional as G,isClarityAbiStringAscii as D,isClarityAbiStringUtf8 as J,isClarityAbiTuple as z,isClarityAbiBuffer as Q,parseToCV as b}from"micro-stacks/transactions";import{bytesToAscii as W,bytesToHex as Z}from"micro-stacks/common";function q(t){return{isOk:!0,value:t}}function X(t){return{isOk:!1,value:t}}function v(t){if(t.type===i.PrincipalStandard)return x(t.address);if(t.type===i.PrincipalContract)return`${x(t.address)}.${t.contractName.content}`;throw new Error(`Unexpected principal data: ${JSON.stringify(t)}`)}function p(t,e=!1){switch(t.type){case i.BoolTrue:return!0;case i.BoolFalse:return!1;case i.Int:case i.UInt:return t.value;case i.Buffer:return t.buffer;case i.OptionalNone:return null;case i.OptionalSome:return p(t.value);case i.ResponseErr:return e?X(p(t.value)):p(t.value);case i.ResponseOk:return e?q(p(t.value)):p(t.value);case i.PrincipalStandard:case i.PrincipalContract:return v(t);case i.List:return t.list.map(r=>p(r));case i.Tuple:let n={};return Object.keys(t.data).map(r=>[r,p(t.data[r])]).forEach(([r,a])=>{n[r]=a}),n;case i.StringASCII:return t.data;case i.StringUTF8:return t.data}}function St(t,e=!1){return p(L(t),e)}function A(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}function C(t,e){if(z(e)){if(typeof t!="object")throw new Error("Invalid tuple input");let n={};return e.tuple.forEach(o=>{let r=t[o.name];n[o.name]=C(r,o.type)}),U(n)}else if(H(e)){let o=t.map(r=>C(r,e.list.type));return j(o)}else{if(G(e))return t?$(C(t,e.optional)):M();if(D(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return P(t)}else if(J(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return h(t)}else if(e==="bool"){let n=typeof t=="boolean"?t.toString():t;return b(n,e)}else if(e==="uint128"){let n=A(t);return V(n.toString())}else if(e==="int128"){let n=A(t);return I(n.toString())}else if(e==="trait_reference"){if(typeof t!="string")throw new Error("Invalid input for trait_reference");let[n,o]=t.split(".");return B(n,o)}else if(Q(e))return K(t)}return b(t,e)}function f(t,e="hex"){switch(t.type){case i.BoolTrue:return"true";case i.BoolFalse:return"false";case i.Int:return t.value.toString();case i.UInt:return`u${t.value.toString()}`;case i.Buffer:if(e==="tryAscii"){let n=W(t.buffer);if(/[ -~]/.test(n))return JSON.stringify(n)}return`0x${Z(t.buffer)}`;case i.OptionalNone:return"none";case i.OptionalSome:return`(some ${f(t.value,e)})`;case i.ResponseErr:return`(err ${f(t.value,e)})`;case i.ResponseOk:return`(ok ${f(t.value,e)})`;case i.PrincipalStandard:case i.PrincipalContract:return`'${v(t)}`;case i.List:return`(list ${t.list.map(n=>f(n,e)).join(" ")})`;case i.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${f(t.data[n],e)})`).join(" ")})`;case i.StringASCII:return`"${t.data}"`;case i.StringUTF8:return`u"${t.data}"`}}function g(t,e){return e.map((n,o)=>C(n,t.args[o].type))}function m(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${t.value}`)}function E(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${t.value}`)}function d(t,e){return g(t,e)}function Y(t,e){let n=t.abi.functions.find(r=>T(r.name)===e);if(n)return function(...r){return{functionArgs:d(n,r),contractAddress:t.contractAddress,contractName:t.contractName,function:n,nativeArgs:r}};let o=t.abi.maps.find(r=>T(r.name)===e);if(o)return r=>{let a=C(r,o.key);return{contractAddress:t.contractAddress,contractName:t.contractName,map:o,nativeKey:r,key:a}};throw new Error(`Invalid function call: no function exists for ${String(e)}`)}var tt={get:Y},et=t=>new Proxy(t,tt);import{parseReadOnlyResponse as nt,fetchContractDataMapEntry as rt}from"micro-stacks/api";import{cvToHex as k,hexToCV as ot}from"micro-stacks/clarity";import{fetchPrivate as it}from"micro-stacks/common";import{broadcastTransaction as at}from"micro-stacks/transactions";async function N(t,e){let o=`${e.network.getReadOnlyFunctionCallApiUrl(t.contractAddress,t.contractName,t.function.name)}?tip=latest`,r=JSON.stringify({sender:t.contractAddress,arguments:t.functionArgs.map(s=>typeof s=="string"?s:k(s))}),a=await it(o,{method:"POST",body:r,headers:{"Content-Type":"application/json"}});if(!a.ok){let s="";try{s=await a.text()}catch{}throw new Error(`Error calling read-only function. Response ${a.status}: ${a.statusText}. Attempted to fetch ${o} and failed with the message: "${s}"`)}let l=nt(await a.json());return p(l,!0)}async function jt(t,e){let n=await N(t,e);return m(n)}async function Lt(t,e){let n=await N(t,e);return E(n)}async function Kt(t,e){let n=k(t.key),o=await rt({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=ot(o.data);return p(r,!0)}async function Ht(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}}function Jt(t){let e={};return Object.keys(t).forEach(n=>{e[n]={};let o=t[n];Object.keys(t[n].functions).forEach(r=>{let a=(...l)=>{let s=o.functions[r];return{functionArgs:d(s,l),contractAddress:"",contractName:o.contractName,function:s,nativeArgs:l}};e[n][r]=a})}),e}export{O as CoreNodeEventType,w as MAINNET_BURN_ADDRESS,_ as TESTNET_BURN_ADDRESS,yt as bootContractIdentifier,Ht as broadcast,Jt as contractFactory,f as cvToString,p as cvToValue,X as err,E as expectErr,m as expectOk,Kt as fetchMapGet,Ct as filterEvents,pt as getContractIdentifier,F as getContractNameFromPath,lt as getContractPrincipalCV,St as hexToCvValue,Tt as makeContracts,q as ok,C as parseToCV,et as pureProxy,N as ro,Lt as roErr,jt as roOk,T as toCamelCase,g as transformArgsToCV};
1
+ import{contractPrincipalCV as N}from"micro-stacks/clarity";var S="ST000000000000000000002AMW42H",_="SP000000000000000000002Q6VF78",C=(t,e)=>{let n=typeof t=="string"?t:String(t),[r,...o]=n.replace("!","").replace("?","").split("-"),i=e?`${r[0].toUpperCase()}${r.slice(1)}`:r;return o.forEach(l=>{i+=l[0].toUpperCase()+l.slice(1)}),i},w=t=>{let e=t.split("/"),n=e[e.length-1],[r]=n.split(".");return r},ct=t=>`${t.address}.${t.name}`,pt=t=>{let e=w(t.contractFile);return N(t.address,e)};function lt(t,e){return`${e?_:S}.${t}`}var O=(c=>(c.ContractEvent="contract_event",c.StxTransferEvent="stx_transfer_event",c.StxMintEvent="stx_mint_event",c.StxBurnEvent="stx_burn_event",c.StxLockEvent="stx_lock_event",c.NftTransferEvent="nft_transfer_event",c.NftMintEvent="nft_mint_event",c.NftBurnEvent="nft_burn_event",c.FtTransferEvent="ft_transfer_event",c.FtMintEvent="ft_mint_event",c.FtBurnEvent="ft_burn_event",c))(O||{});function ft(t,e){return t.filter(n=>n.type===e)}function Ct(t,e={}){let n={};for(let r in t){let o=t[r],i=e.deployerAddress||o.address,l=`${i}.${o.name}`,s=o.contract(i,o.name);n[r]={identifier:l,contract:s}}return n}import{addressToString as T,ClarityType as a,uintCV as R,contractPrincipalCV as F,intCV as V,stringAsciiCV as B,stringUtf8CV as P,noneCV as I,someCV as h,tupleCV as $,listCV as M,hexToCV as U,bufferCV as j}from"micro-stacks/clarity";import{isClarityAbiList as L,isClarityAbiOptional as K,isClarityAbiStringAscii as H,isClarityAbiStringUtf8 as G,isClarityAbiTuple as D,isClarityAbiBuffer as J,parseToCV as x}from"micro-stacks/transactions";import{bytesToAscii as z,bytesToHex as Q}from"micro-stacks/common";function W(t){return{isOk:!0,value:t}}function Z(t){return{isOk:!1,value:t}}function m(t){if(t.type===a.PrincipalStandard)return T(t.address);if(t.type===a.PrincipalContract)return`${T(t.address)}.${t.contractName.content}`;throw new Error(`Unexpected principal data: ${JSON.stringify(t)}`)}function p(t,e=!1){switch(t.type){case a.BoolTrue:return!0;case a.BoolFalse:return!1;case a.Int:case a.UInt:return t.value;case a.Buffer:return t.buffer;case a.OptionalNone:return null;case a.OptionalSome:return p(t.value);case a.ResponseErr:return e?Z(p(t.value)):p(t.value);case a.ResponseOk:return e?W(p(t.value)):p(t.value);case a.PrincipalStandard:case a.PrincipalContract:return m(t);case a.List:return t.list.map(o=>p(o));case a.Tuple:let n={};return Object.keys(t.data).map(o=>[o,p(t.data[o])]).forEach(([o,i])=>{n[o]=i}),n;case a.StringASCII:return t.data;case a.StringUTF8:return t.data}}function St(t,e=!1){return p(U(t),e)}function v(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}function u(t,e){if(D(e)){if(typeof t!="object")throw new Error("Invalid tuple input");let n={};return e.tuple.forEach(r=>{let o=t[r.name];n[r.name]=u(o,r.type)}),$(n)}else if(L(e)){let r=t.map(o=>u(o,e.list.type));return M(r)}else{if(K(e))return t?h(u(t,e.optional)):I();if(H(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return B(t)}else if(G(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return P(t)}else if(e==="bool"){let n=typeof t=="boolean"?t.toString():t;return x(n,e)}else if(e==="uint128"){let n=v(t);return R(n.toString())}else if(e==="int128"){let n=v(t);return V(n.toString())}else if(e==="trait_reference"){if(typeof t!="string")throw new Error("Invalid input for trait_reference");let[n,r]=t.split(".");return F(n,r)}else if(J(e))return j(t)}return x(t,e)}function f(t,e="hex"){switch(t.type){case a.BoolTrue:return"true";case a.BoolFalse:return"false";case a.Int:return t.value.toString();case a.UInt:return`u${t.value.toString()}`;case a.Buffer:if(e==="tryAscii"){let n=z(t.buffer);if(/[ -~]/.test(n))return JSON.stringify(n)}return`0x${Q(t.buffer)}`;case a.OptionalNone:return"none";case a.OptionalSome:return`(some ${f(t.value,e)})`;case a.ResponseErr:return`(err ${f(t.value,e)})`;case a.ResponseOk:return`(ok ${f(t.value,e)})`;case a.PrincipalStandard:case a.PrincipalContract:return`'${m(t)}`;case a.List:return`(list ${t.list.map(n=>f(n,e)).join(" ")})`;case a.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${f(t.data[n],e)})`).join(" ")})`;case a.StringASCII:return`"${t.data}"`;case a.StringUTF8:return`u"${t.data}"`}}function E(t,e){return e.map((n,r)=>u(n,t.args[r].type))}function g(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${t.value}`)}function A(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${t.value}`)}function d(t,e){return E(t,e)}function q(t,e){let n=t.abi.functions.find(o=>C(o.name)===e);if(n)return function(...o){return{functionArgs:d(n,o),contractAddress:t.contractAddress,contractName:t.contractName,function:n,nativeArgs:o}};let r=t.abi.maps.find(o=>C(o.name)===e);if(r)return o=>{let i=u(o,r.key);return{contractAddress:t.contractAddress,contractName:t.contractName,map:r,nativeKey:o,key:i}};throw new Error(`Invalid function call: no function exists for ${String(e)}`)}var X={get:q},Y=t=>new Proxy(t,X);import{parseReadOnlyResponse as tt,fetchContractDataMapEntry as et}from"micro-stacks/api";import{cvToHex as b,hexToCV as nt}from"micro-stacks/clarity";import{fetchPrivate as rt}from"micro-stacks/common";import{broadcastTransaction as ot}from"micro-stacks/transactions";async function k(t,e){let r=`${e.network.getReadOnlyFunctionCallApiUrl(t.contractAddress,t.contractName,t.function.name)}?tip=latest`,o=JSON.stringify({sender:t.contractAddress,arguments:t.functionArgs.map(s=>typeof s=="string"?s:b(s))}),i=await rt(r,{method:"POST",body:o,headers:{"Content-Type":"application/json"}});if(!i.ok){let s="";try{s=await i.text()}catch{}throw new Error(`Error calling read-only function. Response ${i.status}: ${i.statusText}. Attempted to fetch ${r} and failed with the message: "${s}"`)}let l=tt(await i.json());return p(l,!0)}async function Ut(t,e){let n=await k(t,e);return g(n)}async function jt(t,e){let n=await k(t,e);return A(n)}async function Lt(t,e){let n=b(t.key),r=await et({contract_address:t.contractAddress,contract_name:t.contractName,map_name:t.map.name,lookup_key:n,tip:"latest",url:e.network.getCoreApiUrl(),proof:0}),o=nt(r.data);return p(o,!0)}async function Kt(t,e){let n=await ot(t,e.network);if("error"in n)throw new Error(`Error broadcasting tx: ${n.error} - ${n.reason} - ${n.reason_data}`);return{txId:n.txid,stacksTransaction:t}}function Dt(t,e){let n=t;return Object.keys(t).forEach(r=>{n[r].identifier=`${e}.${r}`;let o=t[r];Object.keys(t[r].functions).forEach(i=>{let l=(...s)=>{let y=o.functions[i];return{functionArgs:d(y,s),contractAddress:"",contractName:o.contractName,function:y,nativeArgs:s}};n[r][i]=l})}),n}export{O as CoreNodeEventType,_ as MAINNET_BURN_ADDRESS,S as TESTNET_BURN_ADDRESS,lt as bootContractIdentifier,Kt as broadcast,Dt as contractFactory,f as cvToString,p as cvToValue,Z as err,A as expectErr,g as expectOk,Lt as fetchMapGet,ft as filterEvents,ct as getContractIdentifier,w as getContractNameFromPath,pt as getContractPrincipalCV,St as hexToCvValue,Ct as makeContracts,W as ok,u as parseToCV,Y as pureProxy,k as ro,jt as roErr,Ut as roOk,C as toCamelCase,E as transformArgsToCV};
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.0-next.18",
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": "597b4b53e6c876336126bf40b4b8850d1385af8f"
32
+ "gitHead": "d6b6fc199e367698d566f38ee3343b04a418c829"
33
33
  }