@clarigen/core 2.0.0 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -27,7 +27,7 @@ type ClarityAbiTypeOptional = {
27
27
  optional: ClarityAbiType;
28
28
  };
29
29
  type ClarityAbiTypeTuple = {
30
- tuple: {
30
+ tuple: readonly {
31
31
  name: string;
32
32
  type: ClarityAbiType;
33
33
  }[];
@@ -71,9 +71,7 @@ interface ClarityAbiVariable {
71
71
  access: 'variable' | 'constant';
72
72
  type: ClarityAbiType;
73
73
  }
74
- type TypedAbiVariable<T> = ClarityAbiVariable & {
75
- defaultValue: T;
76
- };
74
+ type TypedAbiVariable<T> = ClarityAbiVariable & {};
77
75
  interface ClarityAbiMap {
78
76
  name: string;
79
77
  key: ClarityAbiType;
@@ -189,6 +187,7 @@ type FunctionReturnType<T> = T extends TypedAbiFunction<TypedAbiArg<unknown, str
189
187
  type Jsonize<T> = T extends BigInt ? string : T extends Uint8Array ? string : T extends (infer V)[] ? Jsonize<V>[] : T extends Record<keyof T, unknown> ? {
190
188
  [K in keyof T as K]: Jsonize<T[K]>;
191
189
  } : T;
190
+ declare function getTypeString(val: ClarityAbiType): string;
192
191
 
193
192
  interface ResultAssets {
194
193
  stx: Record<string, string>;
@@ -639,4 +638,4 @@ type RawClarityTypeTo<T extends ClarityAbiType, A = any> = T extends ClarityAbiT
639
638
  type ResponseType<F extends TypedAbiFunction<UnknownArgs, any>> = F extends TypedAbiFunction<infer A, infer R> ? R : never;
640
639
  declare function rawClarityToValue<T = any>(input: string, type: ClarityAbiType): T;
641
640
 
642
- export { AbiPrimitiveTo, AbiTupleTo, AbiTypeTo, AllContracts, ApiOptions, ApiOptionsBase, ApiOptionsJsonize, ApiOptionsNetwork, ApiOptionsNoJson, ApiOptionsUrl, ArgsRecord, ArgsTuple, ArgsType, AssetNames, CVInput, ClarigenClient, ClarityAbi, ClarityAbiArg, ClarityAbiFunction, ClarityAbiMap, ClarityAbiType, ClarityAbiTypeBool, ClarityAbiTypeBuffer, ClarityAbiTypeFungibleToken, ClarityAbiTypeInt128, ClarityAbiTypeList, ClarityAbiTypeNonFungibleToken, ClarityAbiTypeNone, ClarityAbiTypeOptional, ClarityAbiTypePrimitive, ClarityAbiTypePrincipal, ClarityAbiTypeResponse, ClarityAbiTypeStringAscii, ClarityAbiTypeStringUtf8, ClarityAbiTypeTraitReference, ClarityAbiTypeTuple, ClarityAbiTypeUInt128, ClarityAbiVariable, ClarityVersion, Contract, ContractBuilder, ContractCall, ContractCallFunction, ContractCallTyped, ContractCalls, ContractDeployments, ContractFactory, ContractFn, ContractFunctions, ContractInstance, ContractInstances, ContractReturn, ContractReturnErr, ContractReturnOk, Contracts, ContractsToContractCalls, CoreNodeEvent, CoreNodeEventBase, CoreNodeEventType, DEPLOYMENT_NETWORKS, DeploymentNetwork, DeploymentPlan, DeploymentsForContracts, ErrType, ExtractArgs, ExtractArgsRecord, FnToContractCall, FtBurnEvent, FtMintEvent, FtTransferEvent, FullContract, FullContractWithIdentifier, FunctionReturnType, FunctionsToContractCalls, JsonIfOption, Jsonize, Kebab, KebabObject, MAINNET_BURN_ADDRESS, MapFactory, Network, NftAssetType, NftBurnEvent, NftMintEvent, NftTransferEvent, NonStandardClarityValue, OkType, Project, ProjectFactory, RawClarityTypeTo, ReadonlyTuple, Response, ResponseErr, ResponseOk, ResponseType, ResultAssets, SimnetDeploymentPlan, SmartContractEvent, StacksEpochId, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TESTNET_BURN_ADDRESS, TupleInput, TypedAbi, TypedAbiArg, TypedAbiFunction, TypedAbiMap, TypedAbiVariable, UnionToIntersection, UnknownArg, UnknownArgs, bootContractIdentifier, broadcast, bytesToAscii, bytesToHex, contractFactory, contractsFactory, createAssetInfo, cvToJSON, cvToString, cvToValue, deploymentFactory, err, expectErr, expectOk, fetchMapGet, filterEvents, findJsTupleKey, functionsFactory, getApiUrl, getContractIdentifier, getContractName, getContractNameFromPath, getContractPrincipalCV, hexToBytes, hexToCvValue, isClarityAbiBuffer, isClarityAbiList, isClarityAbiOptional, isClarityAbiPrimitive, isClarityAbiResponse, isClarityAbiStringAscii, isClarityAbiStringUtf8, isClarityAbiTraitReference, isClarityAbiTuple, isNumber, isResponse, makeContracts, makeFungiblePostCondition, makeNonFungiblePostCondition, mapFactory, ok, parseToCV, principalToString, projectFactory, pureProxy, rawClarityToValue, ro, roErr, roOk, toCamelCase, toKebabCase, transformArgsArray, transformArgsToCV, transformObjectArgs };
641
+ export { AbiPrimitiveTo, AbiTupleTo, AbiTypeTo, AllContracts, ApiOptions, ApiOptionsBase, ApiOptionsJsonize, ApiOptionsNetwork, ApiOptionsNoJson, ApiOptionsUrl, ArgsRecord, ArgsTuple, ArgsType, AssetNames, CVInput, ClarigenClient, ClarityAbi, ClarityAbiArg, ClarityAbiFunction, ClarityAbiMap, ClarityAbiType, ClarityAbiTypeBool, ClarityAbiTypeBuffer, ClarityAbiTypeFungibleToken, ClarityAbiTypeInt128, ClarityAbiTypeList, ClarityAbiTypeNonFungibleToken, ClarityAbiTypeNone, ClarityAbiTypeOptional, ClarityAbiTypePrimitive, ClarityAbiTypePrincipal, ClarityAbiTypeResponse, ClarityAbiTypeStringAscii, ClarityAbiTypeStringUtf8, ClarityAbiTypeTraitReference, ClarityAbiTypeTuple, ClarityAbiTypeUInt128, ClarityAbiVariable, ClarityVersion, Contract, ContractBuilder, ContractCall, ContractCallFunction, ContractCallTyped, ContractCalls, ContractDeployments, ContractFactory, ContractFn, ContractFunctions, ContractInstance, ContractInstances, ContractReturn, ContractReturnErr, ContractReturnOk, Contracts, ContractsToContractCalls, CoreNodeEvent, CoreNodeEventBase, CoreNodeEventType, DEPLOYMENT_NETWORKS, DeploymentNetwork, DeploymentPlan, DeploymentsForContracts, ErrType, ExtractArgs, ExtractArgsRecord, FnToContractCall, FtBurnEvent, FtMintEvent, FtTransferEvent, FullContract, FullContractWithIdentifier, FunctionReturnType, FunctionsToContractCalls, JsonIfOption, Jsonize, Kebab, KebabObject, MAINNET_BURN_ADDRESS, MapFactory, Network, NftAssetType, NftBurnEvent, NftMintEvent, NftTransferEvent, NonStandardClarityValue, OkType, Project, ProjectFactory, RawClarityTypeTo, ReadonlyTuple, Response, ResponseErr, ResponseOk, ResponseType, ResultAssets, SimnetDeploymentPlan, SmartContractEvent, StacksEpochId, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TESTNET_BURN_ADDRESS, TupleInput, TypedAbi, TypedAbiArg, TypedAbiFunction, TypedAbiMap, TypedAbiVariable, UnionToIntersection, UnknownArg, UnknownArgs, bootContractIdentifier, broadcast, bytesToAscii, bytesToHex, contractFactory, contractsFactory, createAssetInfo, cvToJSON, cvToString, cvToValue, deploymentFactory, err, expectErr, expectOk, fetchMapGet, filterEvents, findJsTupleKey, functionsFactory, getApiUrl, getContractIdentifier, getContractName, getContractNameFromPath, getContractPrincipalCV, getTypeString, hexToBytes, hexToCvValue, isClarityAbiBuffer, isClarityAbiList, isClarityAbiOptional, isClarityAbiPrimitive, isClarityAbiResponse, isClarityAbiStringAscii, isClarityAbiStringUtf8, isClarityAbiTraitReference, isClarityAbiTuple, isNumber, isResponse, makeContracts, makeFungiblePostCondition, makeNonFungiblePostCondition, mapFactory, ok, parseToCV, principalToString, projectFactory, pureProxy, rawClarityToValue, ro, roErr, roOk, toCamelCase, toKebabCase, transformArgsArray, transformArgsToCV, transformObjectArgs };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var Tt=Object.defineProperty,Ct=Object.defineProperties;var mt=Object.getOwnPropertyDescriptors;var M=Object.getOwnPropertySymbols;var gt=Object.prototype.hasOwnProperty,xt=Object.prototype.propertyIsEnumerable;var j=(t,e,n)=>e in t?Tt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,u=(t,e)=>{for(var n in e||(e={}))gt.call(e,n)&&j(t,n,e[n]);if(M)for(var n of M(e))xt.call(e,n)&&j(t,n,e[n]);return t},T=(t,e)=>Ct(t,mt(e));var _transactions = require('@stacks/transactions');var _base = require('@scure/base');var At="ST000000000000000000002AMW42H",ht= exports.MAINNET_BURN_ADDRESS ="SP000000000000000000002Q6VF78",f= exports.toCamelCase =(t,e)=>{let n=typeof t=="string"?t:String(t);if(/^[A-Z_]+$/.test(n))return n;let[o,...i]=n.replace("!","_x").replace("?","_q").split("-"),c=`${e?o[0].toUpperCase():o[0].toLowerCase()}${o.slice(1)}`;return i.forEach(l=>{c+=l[0].toUpperCase()+l.slice(1)}),c};function K(t){let e=t.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g);return e?e.join("-").toLowerCase():t}function ue(t,e=!0){let n=t.split(".")[1];return e?f(n):n}var Et=t=>{let e=t.split("/"),n=e[e.length-1],[r]=n.split(".");return r},fe= exports.getContractIdentifier =t=>`${t.address}.${t.name}`,ye= exports.getContractPrincipalCV =t=>{let e=Et(t.contractFile);return _transactions.contractPrincipalCV.call(void 0, t.address,e)};function de(t,e){return`${e?ht:At}.${t}`}function v(t){return _base.hex.encode(t)}function L(t){return _base.hex.decode(t)}function q(t){let e=Array.from(t);return String.fromCharCode.apply(null,e)}var W=t=>typeof t=="number";var vt=(p=>(p.ContractEvent="contract_event",p.StxTransferEvent="stx_transfer_event",p.StxMintEvent="stx_mint_event",p.StxBurnEvent="stx_burn_event",p.StxLockEvent="stx_lock_event",p.NftTransferEvent="nft_transfer_event",p.NftMintEvent="nft_mint_event",p.NftBurnEvent="nft_burn_event",p.FtTransferEvent="ft_transfer_event",p.FtMintEvent="ft_mint_event",p.FtBurnEvent="ft_burn_event",p))(vt||{});function Ce(t,e){return t.filter(n=>n.type===e)}function ge(t,e={}){let n={};for(let r in t){let o=t[r],i=e.deployerAddress||o.address,a=`${i}.${o.name}`,c=o.contract(i,o.name);n[r]={identifier:a,contract:c}}return n}function h(t){return{isOk:!0,value:t}}function E(t){return{isOk:!1,value:t}}function Oe(t){return typeof t=="object"&&t!==null&&"isOk"in t}function k(t){if(t.type===_transactions.ClarityType.PrincipalStandard)return _transactions.addressToString.call(void 0, t.address);if(t.type===_transactions.ClarityType.PrincipalContract)return`${_transactions.addressToString.call(void 0, t.address)}.${t.contractName.content}`;throw new Error(`Unexpected principal data: ${JSON.stringify(t)}`)}function y(t,e=!1){switch(t.type){case _transactions.ClarityType.BoolTrue:return!0;case _transactions.ClarityType.BoolFalse:return!1;case _transactions.ClarityType.Int:case _transactions.ClarityType.UInt:return t.value;case _transactions.ClarityType.Buffer:return t.buffer;case _transactions.ClarityType.OptionalNone:return null;case _transactions.ClarityType.OptionalSome:return y(t.value);case _transactions.ClarityType.ResponseErr:return e?E(y(t.value)):y(t.value);case _transactions.ClarityType.ResponseOk:return e?h(y(t.value)):y(t.value);case _transactions.ClarityType.PrincipalStandard:case _transactions.ClarityType.PrincipalContract:return k(t);case _transactions.ClarityType.List:return t.list.map(r=>y(r));case _transactions.ClarityType.Tuple:return Object.entries(t.data).reduce((r,[o,i])=>{let a=f(o);return T(u({},r),{[a]:y(i,e)})},{});case _transactions.ClarityType.StringASCII:return t.data;case _transactions.ClarityType.StringUTF8:return t.data}}function Ne(t,e=!1){return y(_transactions.hexToCV.call(void 0, t),e)}function G(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}var Se=t=>typeof t=="string",w= exports.isClarityAbiBuffer =t=>t.buffer!==void 0,O= exports.isClarityAbiStringAscii =t=>t["string-ascii"]!==void 0,N= exports.isClarityAbiStringUtf8 =t=>t["string-utf8"]!==void 0,Q= exports.isClarityAbiResponse =t=>t.response!==void 0,S= exports.isClarityAbiOptional =t=>t.optional!==void 0,P= exports.isClarityAbiTuple =t=>t.tuple!==void 0,R= exports.isClarityAbiList =t=>t.list!==void 0,Pe= exports.isClarityAbiTraitReference =t=>t==="trait_reference";function d(t,e){if(P(e)){if(typeof t!="object")throw new Error("Invalid tuple input");let n={};return e.tuple.forEach(r=>{let o=F(r.name,t),i=t[o];n[r.name]=d(i,r.type)}),_transactions.tupleCV.call(void 0, n)}else if(R(e)){let r=t.map(o=>d(o,e.list.type));return _transactions.listCV.call(void 0, r)}else{if(S(e))return t===null?_transactions.noneCV.call(void 0, ):_transactions.someCV.call(void 0, d(t,e.optional));if(O(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return _transactions.stringAsciiCV.call(void 0, t)}else if(N(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return _transactions.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=G(t);return _transactions.uintCV.call(void 0, n.toString())}else if(e==="int128"){let n=G(t);return _transactions.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 _transactions.contractPrincipalCV.call(void 0, n,r)}else if(w(e))return _transactions.bufferCV.call(void 0, t)}return _transactions.parseToCV.call(void 0, t,e)}function x(t,e="hex"){switch(t.type){case _transactions.ClarityType.BoolTrue:return"true";case _transactions.ClarityType.BoolFalse:return"false";case _transactions.ClarityType.Int:return t.value.toString();case _transactions.ClarityType.UInt:return`u${t.value.toString()}`;case _transactions.ClarityType.Buffer:if(e==="tryAscii"){let n=q(t.buffer);if(/[ -~]/.test(n))return JSON.stringify(n)}return`0x${v(t.buffer)}`;case _transactions.ClarityType.OptionalNone:return"none";case _transactions.ClarityType.OptionalSome:return`(some ${x(t.value,e)})`;case _transactions.ClarityType.ResponseErr:return`(err ${x(t.value,e)})`;case _transactions.ClarityType.ResponseOk:return`(ok ${x(t.value,e)})`;case _transactions.ClarityType.PrincipalStandard:case _transactions.ClarityType.PrincipalContract:return`'${k(t)}`;case _transactions.ClarityType.List:return`(list ${t.list.map(n=>x(n,e)).join(" ")})`;case _transactions.ClarityType.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${x(t.data[n],e)})`).join(" ")})`;case _transactions.ClarityType.StringASCII:return`"${t.data}"`;case _transactions.ClarityType.StringUTF8:return`u"${t.data}"`}}function C(t,e=!1){switch(t.type){case _transactions.ClarityType.BoolTrue:return!0;case _transactions.ClarityType.BoolFalse:return!1;case _transactions.ClarityType.Int:case _transactions.ClarityType.UInt:return`${t.value}`;case _transactions.ClarityType.Buffer:return v(t.buffer);case _transactions.ClarityType.OptionalNone:return null;case _transactions.ClarityType.OptionalSome:return C(t.value);case _transactions.ClarityType.ResponseErr:return e?E(C(t.value)):C(t.value);case _transactions.ClarityType.ResponseOk:return e?h(C(t.value)):C(t.value);case _transactions.ClarityType.PrincipalStandard:case _transactions.ClarityType.PrincipalContract:return k(t);case _transactions.ClarityType.List:return t.list.map(r=>C(r));case _transactions.ClarityType.Tuple:return Object.entries(t.data).reduce((r,[o,i])=>{let a=f(o);return T(u({},r),{[a]:C(i)})},{});case _transactions.ClarityType.StringASCII:return t.data;case _transactions.ClarityType.StringUTF8:return t.data}}function Z(t,e){return t.args.map(n=>{let r=F(n.name,e),o=e[r];return d(o,n.type)})}function Bt(t,e){return e.map((n,r)=>d(n,t.args[r].type))}function b(t,e){if(e.length===0)return[];let[n]=e;if(e.length===1&&t.args.length!==1)return Z(t,n);if(typeof n=="object"&&!Array.isArray(n)&&n!==null)try{let r=!0;if(t.args.forEach(o=>{try{F(o.name,n)}catch (e2){r=!1}}),r)return Z(t,n)}catch (e3){}return Bt(t,e)}function F(t,e){let n=Object.keys(e).find(r=>{let o=t===r,i=t===K(r);return o||i});if(!n)throw new Error(`Error encoding JS tuple: ${t} not found in input.`);return n}function Y(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${String(t.value)}`)}function X(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${String(t.value)}`)}function $t(t,e){let n=t.abi.functions.find(o=>f(o.name)===e);if(n)return function(...o){return{functionArgs:b(n,o),contractAddress:t.contractAddress,contractName:t.contractName,function:n,functionName:n.name,nativeArgs:o}};let r=t.abi.maps.find(o=>f(o.name)===e);if(r)return o=>{let i=d(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 Ut={get:$t},Dt= exports.pureProxy =t=>new Proxy(t,Ut);function Mt(t){let e=[];return t.forEach(n=>e.push(...n.transactions)),e}function tt(t){return Mt(t).filter(I)}function et(t){if(!I(t))throw new Error("Unable to get path for tx type.");if("requirement-publish"in t)return t["requirement-publish"].path;if("emulated-contract-publish"in t)return t["emulated-contract-publish"].path;if("contract-publish"in t)return t["contract-publish"].path;throw new Error("Couldnt get path for deployment tx.")}function nt(t){if(!I(t))throw new Error("Unable to get ID for tx type.");if("requirement-publish"in t){let e=t["requirement-publish"],[n,r]=e["contract-id"].split(".");return`${e["remap-sender"]}.${r}`}else if("emulated-contract-publish"in t){let e=t["emulated-contract-publish"];return`${e["emulated-sender"]}.${e["contract-name"]}`}else if("contract-publish"in t){let e=t["contract-publish"];return`${e["expected-sender"]}.${e["contract-name"]}`}throw new Error("Unable to find ID for contract.")}function I(t){return!("contract-call"in t||"btc-transfer"in t||"emulated-contract-call"in t)}var We=["devnet","simnet","testnet","mainnet"];function ze(t,e){let n=[];return Object.entries(t.contracts).forEach(([r,o])=>{let i=t.deployments[r][e];return i&&n.push([r,rt(o,i)]),!1}),Object.fromEntries(n)}function He(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let o=`${e}.${r.contractName}`;return[n,rt(r,o)]}))}function jt(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let o=Object.assign((...i)=>{let a=b(r,i),[c,l]=e.split(".");return{functionArgs:a,contractAddress:c,contractName:l,function:r,functionName:r.name,nativeArgs:i}},{abi:r});return[n,o]}))}function rt(t,e){let n=u({},t);return T(u(u({},jt(t.functions,e)),n),{identifier:e})}function Ge(t,e){let n={};return tt(e.plan.batches).forEach(o=>{let i=nt(o),[a,c]=i.split("."),l=f(c),m=t[l],g=t[l];if(typeof g>"u")throw new Error(`Clarigen error: mismatch for contract '${l}'`);n[l]=g,g.contractFile=et(o),g.identifier=i,Object.keys(t[l].functions).forEach(p=>{let $=p,dt=(...U)=>{let D=m.functions[$];return{functionArgs:b(D,U),contractAddress:a,contractName:g.contractName,function:D,nativeArgs:U}};g[$]=dt})}),n}function ot(t,e){let n=d(e,t.key);return{key:e,keyCV:n,map:t}}var _blockchainapiclient = require('@stacks/blockchain-api-client');function it(t){return new (0, _blockchainapiclient.SmartContractsApi)(new (0, _blockchainapiclient.Configuration)({basePath:t}))}function st(t){return`${t}/v2`}var at=(t,e)=>{try{let n=new URL(t);return Object.keys(e).forEach(r=>{let o=e[r];if(!!o){if(Array.isArray(o))return o.length===0?void 0:n.searchParams.set(`${r}[]`,Lt(r,o));if(typeof o=="boolean"||W(o))return n.searchParams.set(r,String(o));n.searchParams.set(r,o)}}),n.toString()}catch(n){return console.error("generateUrl"),console.error(n),t}},Lt=(t,e)=>e!=null&&e.length?`${e.map((n,r)=>`${r>0?encodeURIComponent(`${t}[]`):""}=${encodeURIComponent(n)}`).join("&")}`:"";function zt(t){if(t.okay)return _transactions.hexToCV.call(void 0, t.result);throw new Error(t.cause)}async function ct(t){let{contractAddress:e,functionArgs:n,senderAddress:r=e,url:o}=t,i=await it(o).callReadOnlyFunction(T(u({},t),{readOnlyFunctionArgs:{sender:r,arguments:n.map(c=>typeof c=="string"?c:_transactions.cvToHex.call(void 0, c))}}));return zt(i)}var _network = require('@stacks/network');function pt(t){if(t.latest!==!1)return t.latest||typeof t.tip>"u"?"latest":t.tip}async function V(t,e){let n=pt(e),r=await ct({contractAddress:t.contractAddress,contractName:t.contractName,functionName:t.functionName,functionArgs:t.functionArgs,tip:n,url:ut(e)});return e.json?C(r):y(r,!0)}async function Qt(t,e){let n=await V(t,e);return Y(n)}async function Yt(t,e){let n=await V(t,e);return X(n)}function ut(t){return t.network?_network.StacksNetwork.fromNameOrNetwork(t.network).coreApiUrl:t.url}async function gn(t,e,n,r){let o=ot(e,n),i=JSON.stringify(_transactions.cvToHex.call(void 0, o.keyCV)),[a,c]=t.split("."),l=at(`${st(ut(r))}/map_entry/${a}/${c}/${o.map.name}`,{proof:0,tip:pt(r)}),g=await(await fetch(l,{method:"POST",body:i,headers:{"Content-Type":"application/json",Accept:"application/json"}})).json(),p=_transactions.hexToCV.call(void 0, g.data);return y(p,!0)}async function xn(t,e){let n="network"in e?e.network:new (0, _network.StacksNetwork)({url:e.url}),r=await _transactions.broadcastTransaction.call(void 0, t,n);if(r.error)throw new Error(`Error broadcasting tx: ${r.error} - ${r.reason} - ${JSON.stringify(r.reason_data)}`);return{txId:r.txid,stacksTransaction:t}}var lt=class{constructor(e){typeof e=="string"?this.url=e:this.url=_network.StacksNetwork.fromNameOrNetwork(e).coreApiUrl}roOptions(e){return u({url:this.url},e)}ro(e,n){return V(e,this.roOptions(n||{}))}roOk(e,n){return Qt(e,this.roOptions(n||{}))}roErr(e,n){return Yt(e,this.roOptions(n||{}))}};function yt(t,e){if(!("identifier"in t))throw new Error("Invalid contract");let[n,r]=t.identifier.split(".");for(let o of t.non_fungible_tokens)if(o.name===e)return _transactions.createAssetInfo.call(void 0, n,r,o.name);for(let o of t.fungible_tokens)if(o.name===e)return _transactions.createAssetInfo.call(void 0, n,r,o.name);throw new Error(`Invalid asset: "${e}" is not an asset in contract.`)}function Sn(t,e,n,r){let[o,i]=e.split("."),[a]=t.non_fungible_tokens,c=yt(t,a.name),l=a.type,m=d(r,l);return typeof i>"u"?_transactions.makeStandardNonFungiblePostCondition.call(void 0, o,n,c,m):_transactions.makeContractNonFungiblePostCondition.call(void 0, o,i,n,c,m)}function Pn(t,e,n,r){let[o,i]=e.split("."),[a]=t.fungible_tokens,c=yt(t,a.name);return typeof i>"u"?_transactions.makeStandardFungiblePostCondition.call(void 0, o,n,r,c):_transactions.makeContractFungiblePostCondition.call(void 0, o,i,n,r,c)}function B(t,e=""){return t.slice(e.length+2,-1)}function A(t,e){if(P(e)){let n=ie(t),r={},o=Object.entries(n).reduce((i,[a,c])=>{let l=a.trim();return T(u({},i),{[l]:c.trim()})},{});return e.tuple.forEach(({name:i,type:a})=>{let c=f(i);r[c]=A(o[i],a)}),r}else{if(R(e))return oe(t).map(r=>A(r,e.list.type));if(S(e))return t==="none"?null:A(B(t,"some"),e.optional);if(O(e))return t.slice(1,-1);if(N(e))return t.slice(2,-1);if(e==="bool")return t==="true";if(e==="uint128")return BigInt(t.slice(1));if(e==="int128")return BigInt(t);if(e==="trait_reference")return t.replace(/^\'/,"");if(e==="principal")return t.replace(/^\'/,"");if(e==="none")return null;if(w(e))return L(t.slice(2));if(Q(e)){if(t.startsWith("(ok")){let r=B(t,"ok");return h(A(r,e.response.ok))}let n=B(t,"err");return E(A(n,e.response.error))}}throw new Error(`Unable to parse cv string to value: ${t} ${JSON.stringify(e,null,2)}`)}var re=new Array(255);for(let t=0;t<=255;++t)re[t]=t.toString(16).padStart(2,"0");function oe(t){if(t.charAt(0)!=="["||t.charAt(t.length-1)!=="]")throw new Error(`Expected (list ..), got ${t.toString()}`);let e=[],n=[],r=1;for(let i=0;i<t.length;i++)t.charAt(i)===","&&e.length==1&&(n.push(t.substring(r,i)),r=i+2),["(","[","{"].includes(t.charAt(i))&&e.push(t.charAt(i)),t.charAt(i)===")"&&e[e.length-1]==="("&&e.pop(),t.charAt(i)==="}"&&e[e.length-1]==="{"&&e.pop(),t.charAt(i)==="]"&&e[e.length-1]==="["&&e.pop();let o=t.substring(r,t.length-1);return o.length>0&&n.push(o),n}function ie(t){if(t.charAt(0)!=="{"||t.charAt(t.length-1)!=="}")throw new Error(`Expected '(tuple ..)', got ${t.toString()}`);let e=1,n=[],r=[];for(let a=0;a<t.length;a++)t.charAt(a)===","&&n.length==1&&(r.push(t.substring(e,a)),e=a+2),["(","[","{"].includes(t.charAt(a))&&n.push(t.charAt(a)),t.charAt(a)===")"&&n[n.length-1]==="("&&n.pop(),t.charAt(a)==="}"&&n[n.length-1]==="{"&&n.pop(),t.charAt(a)==="]"&&n[n.length-1]==="["&&n.pop();let o=t.substring(e,t.length-1);o.length>0&&r.push(o);let i={};for(let a of r)for(let c=0;c<a.length;c++)if(a.charAt(c)===":"){let l=a.substring(0,c),m=a.substring(c+2,a.length);i[l]=m;break}return i}exports.ClarigenClient = lt; exports.CoreNodeEventType = vt; exports.DEPLOYMENT_NETWORKS = We; exports.MAINNET_BURN_ADDRESS = ht; exports.TESTNET_BURN_ADDRESS = At; exports.bootContractIdentifier = de; exports.broadcast = xn; exports.bytesToAscii = q; exports.bytesToHex = v; exports.contractFactory = rt; exports.contractsFactory = He; exports.createAssetInfo = yt; exports.cvToJSON = C; exports.cvToString = x; exports.cvToValue = y; exports.deploymentFactory = Ge; exports.err = E; exports.expectErr = X; exports.expectOk = Y; exports.fetchMapGet = gn; exports.filterEvents = Ce; exports.findJsTupleKey = F; exports.functionsFactory = jt; exports.getApiUrl = ut; exports.getContractIdentifier = fe; exports.getContractName = ue; exports.getContractNameFromPath = Et; exports.getContractPrincipalCV = ye; exports.hexToBytes = L; exports.hexToCvValue = Ne; exports.isClarityAbiBuffer = w; exports.isClarityAbiList = R; exports.isClarityAbiOptional = S; exports.isClarityAbiPrimitive = Se; exports.isClarityAbiResponse = Q; exports.isClarityAbiStringAscii = O; exports.isClarityAbiStringUtf8 = N; exports.isClarityAbiTraitReference = Pe; exports.isClarityAbiTuple = P; exports.isNumber = W; exports.isResponse = Oe; exports.makeContracts = ge; exports.makeFungiblePostCondition = Pn; exports.makeNonFungiblePostCondition = Sn; exports.mapFactory = ot; exports.ok = h; exports.parseToCV = d; exports.principalToString = k; exports.projectFactory = ze; exports.pureProxy = Dt; exports.rawClarityToValue = A; exports.ro = V; exports.roErr = Yt; exports.roOk = Qt; exports.toCamelCase = f; exports.toKebabCase = K; exports.transformArgsArray = Bt; exports.transformArgsToCV = b; exports.transformObjectArgs = Z;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var Ct=Object.defineProperty,mt=Object.defineProperties;var gt=Object.getOwnPropertyDescriptors;var J=Object.getOwnPropertySymbols;var xt=Object.prototype.hasOwnProperty,bt=Object.prototype.propertyIsEnumerable;var K=(t,e,n)=>e in t?Ct(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,u=(t,e)=>{for(var n in e||(e={}))xt.call(e,n)&&K(t,n,e[n]);if(J)for(var n of J(e))bt.call(e,n)&&K(t,n,e[n]);return t},T=(t,e)=>mt(t,gt(e));var _transactions = require('@stacks/transactions');var _base = require('@scure/base');var ht="ST000000000000000000002AMW42H",Et= exports.MAINNET_BURN_ADDRESS ="SP000000000000000000002Q6VF78",f= exports.toCamelCase =(t,e)=>{let n=typeof t=="string"?t:String(t);if(/^[A-Z_]+$/.test(n))return n;let[o,...i]=n.replace("!","_x").replace("?","_q").split("-"),c=`${e?o[0].toUpperCase():o[0].toLowerCase()}${o.slice(1)}`;return i.forEach(l=>{c+=l[0].toUpperCase()+l.slice(1)}),c};function q(t){let e=t.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g);return e?e.join("-").toLowerCase():t}function ye(t,e=!0){let n=t.split(".")[1];return e?f(n):n}var vt=t=>{let e=t.split("/"),n=e[e.length-1],[r]=n.split(".");return r},de= exports.getContractIdentifier =t=>`${t.address}.${t.name}`,Te= exports.getContractPrincipalCV =t=>{let e=vt(t.contractFile);return _transactions.contractPrincipalCV.call(void 0, t.address,e)};function Ce(t,e){return`${e?Et:ht}.${t}`}function R(t){return _base.hex.encode(t)}function W(t){return _base.hex.decode(t)}function z(t){let e=Array.from(t);return String.fromCharCode.apply(null,e)}var H=t=>typeof t=="number";var kt=(p=>(p.ContractEvent="contract_event",p.StxTransferEvent="stx_transfer_event",p.StxMintEvent="stx_mint_event",p.StxBurnEvent="stx_burn_event",p.StxLockEvent="stx_lock_event",p.NftTransferEvent="nft_transfer_event",p.NftMintEvent="nft_mint_event",p.NftBurnEvent="nft_burn_event",p.FtTransferEvent="ft_transfer_event",p.FtMintEvent="ft_mint_event",p.FtBurnEvent="ft_burn_event",p))(kt||{});function ge(t,e){return t.filter(n=>n.type===e)}function be(t,e={}){let n={};for(let r in t){let o=t[r],i=e.deployerAddress||o.address,a=`${i}.${o.name}`,c=o.contract(i,o.name);n[r]={identifier:a,contract:c}}return n}function E(t){return{isOk:!0,value:t}}function v(t){return{isOk:!1,value:t}}function Se(t){return typeof t=="object"&&t!==null&&"isOk"in t}function F(t){if(t.type===_transactions.ClarityType.PrincipalStandard)return _transactions.addressToString.call(void 0, t.address);if(t.type===_transactions.ClarityType.PrincipalContract)return`${_transactions.addressToString.call(void 0, t.address)}.${t.contractName.content}`;throw new Error(`Unexpected principal data: ${JSON.stringify(t)}`)}function y(t,e=!1){switch(t.type){case _transactions.ClarityType.BoolTrue:return!0;case _transactions.ClarityType.BoolFalse:return!1;case _transactions.ClarityType.Int:case _transactions.ClarityType.UInt:return t.value;case _transactions.ClarityType.Buffer:return t.buffer;case _transactions.ClarityType.OptionalNone:return null;case _transactions.ClarityType.OptionalSome:return y(t.value);case _transactions.ClarityType.ResponseErr:return e?v(y(t.value)):y(t.value);case _transactions.ClarityType.ResponseOk:return e?E(y(t.value)):y(t.value);case _transactions.ClarityType.PrincipalStandard:case _transactions.ClarityType.PrincipalContract:return F(t);case _transactions.ClarityType.List:return t.list.map(r=>y(r));case _transactions.ClarityType.Tuple:return Object.entries(t.data).reduce((r,[o,i])=>{let a=f(o);return T(u({},r),{[a]:y(i,e)})},{});case _transactions.ClarityType.StringASCII:return t.data;case _transactions.ClarityType.StringUTF8:return t.data}}function Pe(t,e=!1){return y(_transactions.hexToCV.call(void 0, t),e)}function Q(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}var Bt=t=>typeof t=="string",k= exports.isClarityAbiBuffer =t=>t.buffer!==void 0,w= exports.isClarityAbiStringAscii =t=>t["string-ascii"]!==void 0,O= exports.isClarityAbiStringUtf8 =t=>t["string-utf8"]!==void 0,I= exports.isClarityAbiResponse =t=>t.response!==void 0,N= exports.isClarityAbiOptional =t=>t.optional!==void 0,S= exports.isClarityAbiTuple =t=>t.tuple!==void 0,P= exports.isClarityAbiList =t=>t.list!==void 0,Re= exports.isClarityAbiTraitReference =t=>t==="trait_reference";function d(t,e){if(S(e)){if(typeof t!="object")throw new Error("Invalid tuple input");let n={};return e.tuple.forEach(r=>{let o=_(r.name,t),i=t[o];n[r.name]=d(i,r.type)}),_transactions.tupleCV.call(void 0, n)}else if(P(e)){let r=t.map(o=>d(o,e.list.type));return _transactions.listCV.call(void 0, r)}else{if(N(e))return t===null?_transactions.noneCV.call(void 0, ):_transactions.someCV.call(void 0, d(t,e.optional));if(w(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return _transactions.stringAsciiCV.call(void 0, t)}else if(O(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return _transactions.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=Q(t);return _transactions.uintCV.call(void 0, n.toString())}else if(e==="int128"){let n=Q(t);return _transactions.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 _transactions.contractPrincipalCV.call(void 0, n,r)}else if(k(e))return _transactions.bufferCV.call(void 0, t)}return _transactions.parseToCV.call(void 0, t,e)}function x(t,e="hex"){switch(t.type){case _transactions.ClarityType.BoolTrue:return"true";case _transactions.ClarityType.BoolFalse:return"false";case _transactions.ClarityType.Int:return t.value.toString();case _transactions.ClarityType.UInt:return`u${t.value.toString()}`;case _transactions.ClarityType.Buffer:if(e==="tryAscii"){let n=z(t.buffer);if(/[ -~]/.test(n))return JSON.stringify(n)}return`0x${R(t.buffer)}`;case _transactions.ClarityType.OptionalNone:return"none";case _transactions.ClarityType.OptionalSome:return`(some ${x(t.value,e)})`;case _transactions.ClarityType.ResponseErr:return`(err ${x(t.value,e)})`;case _transactions.ClarityType.ResponseOk:return`(ok ${x(t.value,e)})`;case _transactions.ClarityType.PrincipalStandard:case _transactions.ClarityType.PrincipalContract:return`'${F(t)}`;case _transactions.ClarityType.List:return`(list ${t.list.map(n=>x(n,e)).join(" ")})`;case _transactions.ClarityType.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${x(t.data[n],e)})`).join(" ")})`;case _transactions.ClarityType.StringASCII:return`"${t.data}"`;case _transactions.ClarityType.StringUTF8:return`u"${t.data}"`}}function C(t,e=!1){switch(t.type){case _transactions.ClarityType.BoolTrue:return!0;case _transactions.ClarityType.BoolFalse:return!1;case _transactions.ClarityType.Int:case _transactions.ClarityType.UInt:return`${t.value}`;case _transactions.ClarityType.Buffer:return R(t.buffer);case _transactions.ClarityType.OptionalNone:return null;case _transactions.ClarityType.OptionalSome:return C(t.value);case _transactions.ClarityType.ResponseErr:return e?v(C(t.value)):C(t.value);case _transactions.ClarityType.ResponseOk:return e?E(C(t.value)):C(t.value);case _transactions.ClarityType.PrincipalStandard:case _transactions.ClarityType.PrincipalContract:return F(t);case _transactions.ClarityType.List:return t.list.map(r=>C(r));case _transactions.ClarityType.Tuple:return Object.entries(t.data).reduce((r,[o,i])=>{let a=f(o);return T(u({},r),{[a]:C(i)})},{});case _transactions.ClarityType.StringASCII:return t.data;case _transactions.ClarityType.StringUTF8:return t.data}}function Y(t,e){return t.args.map(n=>{let r=_(n.name,e),o=e[r];return d(o,n.type)})}function Ut(t,e){return e.map((n,r)=>d(n,t.args[r].type))}function A(t,e){if(e.length===0)return[];let[n]=e;if(e.length===1&&t.args.length!==1)return Y(t,n);if(typeof n=="object"&&!Array.isArray(n)&&n!==null)try{let r=!0;if(t.args.forEach(o=>{try{_(o.name,n)}catch (e2){r=!1}}),r)return Y(t,n)}catch (e3){}return Ut(t,e)}function _(t,e){let n=Object.keys(e).find(r=>{let o=t===r,i=t===q(r);return o||i});if(!n)throw new Error(`Error encoding JS tuple: ${t} not found in input.`);return n}function X(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${String(t.value)}`)}function tt(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${String(t.value)}`)}function b(t){if(Bt(t))return t==="int128"?"int":t==="uint128"?"uint":t;if(k(t))return`(buff ${t.buffer.length})`;if(w(t))return`(string-ascii ${t["string-ascii"].length})`;if(O(t))return`(string-utf8 ${t["string-utf8"].length})`;if(I(t))return`(response ${b(t.response.ok)} ${b(t.response.error)})`;if(N(t))return`(optional ${b(t.optional)})`;if(S(t))return`(tuple ${t.tuple.map(e=>`(${e.name} ${b(e.type)})`).join(" ")})`;if(P(t))return`(list ${t.list.length} ${b(t.list.type)})`;throw new Error(`Type string unsupported for Clarity type: ${JSON.stringify(t)}`)}function Dt(t,e){let n=t.abi.functions.find(o=>f(o.name)===e);if(n)return function(...o){return{functionArgs:A(n,o),contractAddress:t.contractAddress,contractName:t.contractName,function:n,functionName:n.name,nativeArgs:o}};let r=t.abi.maps.find(o=>f(o.name)===e);if(r)return o=>{let i=d(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 Mt={get:Dt},jt= exports.pureProxy =t=>new Proxy(t,Mt);function Jt(t){let e=[];return t.forEach(n=>e.push(...n.transactions)),e}function et(t){return Jt(t).filter($)}function nt(t){if(!$(t))throw new Error("Unable to get path for tx type.");if("requirement-publish"in t)return t["requirement-publish"].path;if("emulated-contract-publish"in t)return t["emulated-contract-publish"].path;if("contract-publish"in t)return t["contract-publish"].path;throw new Error("Couldnt get path for deployment tx.")}function rt(t){if(!$(t))throw new Error("Unable to get ID for tx type.");if("requirement-publish"in t){let e=t["requirement-publish"],[n,r]=e["contract-id"].split(".");return`${e["remap-sender"]}.${r}`}else if("emulated-contract-publish"in t){let e=t["emulated-contract-publish"];return`${e["emulated-sender"]}.${e["contract-name"]}`}else if("contract-publish"in t){let e=t["contract-publish"];return`${e["expected-sender"]}.${e["contract-name"]}`}throw new Error("Unable to find ID for contract.")}function $(t){return!("contract-call"in t||"btc-transfer"in t||"emulated-contract-call"in t)}var ze=["devnet","simnet","testnet","mainnet"];function He(t,e){let n=[];return Object.entries(t.contracts).forEach(([r,o])=>{let i=t.deployments[r][e];return i&&n.push([r,ot(o,i)]),!1}),Object.fromEntries(n)}function Ge(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let o=`${e}.${r.contractName}`;return[n,ot(r,o)]}))}function Kt(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let o=Object.assign((...i)=>{let a=A(r,i),[c,l]=e.split(".");return{functionArgs:a,contractAddress:c,contractName:l,function:r,functionName:r.name,nativeArgs:i}},{abi:r});return[n,o]}))}function ot(t,e){let n=u({},t);return T(u(u({},Kt(t.functions,e)),n),{identifier:e})}function Ze(t,e){let n={};return et(e.plan.batches).forEach(o=>{let i=rt(o),[a,c]=i.split("."),l=f(c),m=t[l],g=t[l];if(typeof g>"u")throw new Error(`Clarigen error: mismatch for contract '${l}'`);n[l]=g,g.contractFile=nt(o),g.identifier=i,Object.keys(t[l].functions).forEach(p=>{let D=p,Tt=(...M)=>{let j=m.functions[D];return{functionArgs:A(j,M),contractAddress:a,contractName:g.contractName,function:j,nativeArgs:M}};g[D]=Tt})}),n}function it(t,e){let n=d(e,t.key);return{key:e,keyCV:n,map:t}}var _blockchainapiclient = require('@stacks/blockchain-api-client');function st(t){return new (0, _blockchainapiclient.SmartContractsApi)(new (0, _blockchainapiclient.Configuration)({basePath:t}))}function at(t){return`${t}/v2`}var ct=(t,e)=>{try{let n=new URL(t);return Object.keys(e).forEach(r=>{let o=e[r];if(!!o){if(Array.isArray(o))return o.length===0?void 0:n.searchParams.set(`${r}[]`,Wt(r,o));if(typeof o=="boolean"||H(o))return n.searchParams.set(r,String(o));n.searchParams.set(r,o)}}),n.toString()}catch(n){return console.error("generateUrl"),console.error(n),t}},Wt=(t,e)=>e!=null&&e.length?`${e.map((n,r)=>`${r>0?encodeURIComponent(`${t}[]`):""}=${encodeURIComponent(n)}`).join("&")}`:"";function Gt(t){if(t.okay)return _transactions.hexToCV.call(void 0, t.result);throw new Error(t.cause)}async function lt(t){let{contractAddress:e,functionArgs:n,senderAddress:r=e,url:o}=t,i=await st(o).callReadOnlyFunction(T(u({},t),{readOnlyFunctionArgs:{sender:r,arguments:n.map(c=>typeof c=="string"?c:_transactions.cvToHex.call(void 0, c))}}));return Gt(i)}var _network = require('@stacks/network');function ut(t){if(t.latest!==!1)return t.latest||typeof t.tip>"u"?"latest":t.tip}async function B(t,e){let n=ut(e),r=await lt({contractAddress:t.contractAddress,contractName:t.contractName,functionName:t.functionName,functionArgs:t.functionArgs,tip:n,url:ft(e)});return e.json?C(r):y(r,!0)}async function Xt(t,e){let n=await B(t,e);return X(n)}async function te(t,e){let n=await B(t,e);return tt(n)}function ft(t){return t.network?_network.StacksNetwork.fromNameOrNetwork(t.network).coreApiUrl:t.url}async function xn(t,e,n,r){let o=it(e,n),i=JSON.stringify(_transactions.cvToHex.call(void 0, o.keyCV)),[a,c]=t.split("."),l=ct(`${at(ft(r))}/map_entry/${a}/${c}/${o.map.name}`,{proof:0,tip:ut(r)}),g=await(await fetch(l,{method:"POST",body:i,headers:{"Content-Type":"application/json",Accept:"application/json"}})).json(),p=_transactions.hexToCV.call(void 0, g.data);return y(p,!0)}async function bn(t,e){let n="network"in e?e.network:new (0, _network.StacksNetwork)({url:e.url}),r=await _transactions.broadcastTransaction.call(void 0, t,n);if(r.error)throw new Error(`Error broadcasting tx: ${r.error} - ${r.reason} - ${JSON.stringify(r.reason_data)}`);return{txId:r.txid,stacksTransaction:t}}var pt=class{constructor(e){typeof e=="string"?this.url=e:this.url=_network.StacksNetwork.fromNameOrNetwork(e).coreApiUrl}roOptions(e){return u({url:this.url},e)}ro(e,n){return B(e,this.roOptions(n||{}))}roOk(e,n){return Xt(e,this.roOptions(n||{}))}roErr(e,n){return te(e,this.roOptions(n||{}))}};function dt(t,e){if(!("identifier"in t))throw new Error("Invalid contract");let[n,r]=t.identifier.split(".");for(let o of t.non_fungible_tokens)if(o.name===e)return _transactions.createAssetInfo.call(void 0, n,r,o.name);for(let o of t.fungible_tokens)if(o.name===e)return _transactions.createAssetInfo.call(void 0, n,r,o.name);throw new Error(`Invalid asset: "${e}" is not an asset in contract.`)}function Pn(t,e,n,r){let[o,i]=e.split("."),[a]=t.non_fungible_tokens,c=dt(t,a.name),l=a.type,m=d(r,l);return typeof i>"u"?_transactions.makeStandardNonFungiblePostCondition.call(void 0, o,n,c,m):_transactions.makeContractNonFungiblePostCondition.call(void 0, o,i,n,c,m)}function Rn(t,e,n,r){let[o,i]=e.split("."),[a]=t.fungible_tokens,c=dt(t,a.name);return typeof i>"u"?_transactions.makeStandardFungiblePostCondition.call(void 0, o,n,r,c):_transactions.makeContractFungiblePostCondition.call(void 0, o,i,n,r,c)}function U(t,e=""){return t.slice(e.length+2,-1)}function h(t,e){if(S(e)){let n=ae(t),r={},o=Object.entries(n).reduce((i,[a,c])=>{let l=a.trim();return T(u({},i),{[l]:c.trim()})},{});return e.tuple.forEach(({name:i,type:a})=>{let c=f(i);r[c]=h(o[i],a)}),r}else{if(P(e))return se(t).map(r=>h(r,e.list.type));if(N(e))return t==="none"?null:h(U(t,"some"),e.optional);if(w(e))return t.slice(1,-1);if(O(e))return t.slice(2,-1);if(e==="bool")return t==="true";if(e==="uint128")return BigInt(t.slice(1));if(e==="int128")return BigInt(t);if(e==="trait_reference")return t.replace(/^\'/,"");if(e==="principal")return t.replace(/^\'/,"");if(e==="none")return null;if(k(e))return W(t.slice(2));if(I(e)){if(t.startsWith("(ok")){let r=U(t,"ok");return E(h(r,e.response.ok))}let n=U(t,"err");return v(h(n,e.response.error))}}throw new Error(`Unable to parse cv string to value: ${t} ${JSON.stringify(e,null,2)}`)}var ie=new Array(255);for(let t=0;t<=255;++t)ie[t]=t.toString(16).padStart(2,"0");function se(t){if(t.charAt(0)!=="["||t.charAt(t.length-1)!=="]")throw new Error(`Expected (list ..), got ${t.toString()}`);let e=[],n=[],r=1;for(let i=0;i<t.length;i++)t.charAt(i)===","&&e.length==1&&(n.push(t.substring(r,i)),r=i+2),["(","[","{"].includes(t.charAt(i))&&e.push(t.charAt(i)),t.charAt(i)===")"&&e[e.length-1]==="("&&e.pop(),t.charAt(i)==="}"&&e[e.length-1]==="{"&&e.pop(),t.charAt(i)==="]"&&e[e.length-1]==="["&&e.pop();let o=t.substring(r,t.length-1);return o.length>0&&n.push(o),n}function ae(t){if(t.charAt(0)!=="{"||t.charAt(t.length-1)!=="}")throw new Error(`Expected '(tuple ..)', got ${t.toString()}`);let e=1,n=[],r=[];for(let a=0;a<t.length;a++)t.charAt(a)===","&&n.length==1&&(r.push(t.substring(e,a)),e=a+2),["(","[","{"].includes(t.charAt(a))&&n.push(t.charAt(a)),t.charAt(a)===")"&&n[n.length-1]==="("&&n.pop(),t.charAt(a)==="}"&&n[n.length-1]==="{"&&n.pop(),t.charAt(a)==="]"&&n[n.length-1]==="["&&n.pop();let o=t.substring(e,t.length-1);o.length>0&&r.push(o);let i={};for(let a of r)for(let c=0;c<a.length;c++)if(a.charAt(c)===":"){let l=a.substring(0,c),m=a.substring(c+2,a.length);i[l]=m;break}return i}exports.ClarigenClient = pt; exports.CoreNodeEventType = kt; exports.DEPLOYMENT_NETWORKS = ze; exports.MAINNET_BURN_ADDRESS = Et; exports.TESTNET_BURN_ADDRESS = ht; exports.bootContractIdentifier = Ce; exports.broadcast = bn; exports.bytesToAscii = z; exports.bytesToHex = R; exports.contractFactory = ot; exports.contractsFactory = Ge; exports.createAssetInfo = dt; exports.cvToJSON = C; exports.cvToString = x; exports.cvToValue = y; exports.deploymentFactory = Ze; exports.err = v; exports.expectErr = tt; exports.expectOk = X; exports.fetchMapGet = xn; exports.filterEvents = ge; exports.findJsTupleKey = _; exports.functionsFactory = Kt; exports.getApiUrl = ft; exports.getContractIdentifier = de; exports.getContractName = ye; exports.getContractNameFromPath = vt; exports.getContractPrincipalCV = Te; exports.getTypeString = b; exports.hexToBytes = W; exports.hexToCvValue = Pe; exports.isClarityAbiBuffer = k; exports.isClarityAbiList = P; exports.isClarityAbiOptional = N; exports.isClarityAbiPrimitive = Bt; exports.isClarityAbiResponse = I; exports.isClarityAbiStringAscii = w; exports.isClarityAbiStringUtf8 = O; exports.isClarityAbiTraitReference = Re; exports.isClarityAbiTuple = S; exports.isNumber = H; exports.isResponse = Se; exports.makeContracts = be; exports.makeFungiblePostCondition = Rn; exports.makeNonFungiblePostCondition = Pn; exports.mapFactory = it; exports.ok = E; exports.parseToCV = d; exports.principalToString = F; exports.projectFactory = He; exports.pureProxy = jt; exports.rawClarityToValue = h; exports.ro = B; exports.roErr = te; exports.roOk = Xt; exports.toCamelCase = f; exports.toKebabCase = q; exports.transformArgsArray = Ut; exports.transformArgsToCV = A; exports.transformObjectArgs = Y;
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- var Tt=Object.defineProperty,Ct=Object.defineProperties;var mt=Object.getOwnPropertyDescriptors;var M=Object.getOwnPropertySymbols;var gt=Object.prototype.hasOwnProperty,xt=Object.prototype.propertyIsEnumerable;var j=(t,e,n)=>e in t?Tt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,u=(t,e)=>{for(var n in e||(e={}))gt.call(e,n)&&j(t,n,e[n]);if(M)for(var n of M(e))xt.call(e,n)&&j(t,n,e[n]);return t},T=(t,e)=>Ct(t,mt(e));import{contractPrincipalCV as bt}from"@stacks/transactions";import{hex as J}from"@scure/base";var At="ST000000000000000000002AMW42H",ht="SP000000000000000000002Q6VF78",f=(t,e)=>{let n=typeof t=="string"?t:String(t);if(/^[A-Z_]+$/.test(n))return n;let[o,...i]=n.replace("!","_x").replace("?","_q").split("-"),c=`${e?o[0].toUpperCase():o[0].toLowerCase()}${o.slice(1)}`;return i.forEach(l=>{c+=l[0].toUpperCase()+l.slice(1)}),c};function K(t){let e=t.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g);return e?e.join("-").toLowerCase():t}function ue(t,e=!0){let n=t.split(".")[1];return e?f(n):n}var Et=t=>{let e=t.split("/"),n=e[e.length-1],[r]=n.split(".");return r},fe=t=>`${t.address}.${t.name}`,ye=t=>{let e=Et(t.contractFile);return bt(t.address,e)};function de(t,e){return`${e?ht:At}.${t}`}function v(t){return J.encode(t)}function L(t){return J.decode(t)}function q(t){let e=Array.from(t);return String.fromCharCode.apply(null,e)}var W=t=>typeof t=="number";var vt=(p=>(p.ContractEvent="contract_event",p.StxTransferEvent="stx_transfer_event",p.StxMintEvent="stx_mint_event",p.StxBurnEvent="stx_burn_event",p.StxLockEvent="stx_lock_event",p.NftTransferEvent="nft_transfer_event",p.NftMintEvent="nft_mint_event",p.NftBurnEvent="nft_burn_event",p.FtTransferEvent="ft_transfer_event",p.FtMintEvent="ft_mint_event",p.FtBurnEvent="ft_burn_event",p))(vt||{});function Ce(t,e){return t.filter(n=>n.type===e)}function ge(t,e={}){let n={};for(let r in t){let o=t[r],i=e.deployerAddress||o.address,a=`${i}.${o.name}`,c=o.contract(i,o.name);n[r]={identifier:a,contract:c}}return n}import{addressToString as z,ClarityType as s,uintCV as kt,contractPrincipalCV as wt,intCV as Ot,stringAsciiCV as Nt,stringUtf8CV as St,noneCV as Pt,someCV as Rt,tupleCV as Ft,listCV as It,hexToCV as _t,bufferCV as Vt,parseToCV as H}from"@stacks/transactions";function h(t){return{isOk:!0,value:t}}function E(t){return{isOk:!1,value:t}}function Oe(t){return typeof t=="object"&&t!==null&&"isOk"in t}function k(t){if(t.type===s.PrincipalStandard)return z(t.address);if(t.type===s.PrincipalContract)return`${z(t.address)}.${t.contractName.content}`;throw new Error(`Unexpected principal data: ${JSON.stringify(t)}`)}function y(t,e=!1){switch(t.type){case s.BoolTrue:return!0;case s.BoolFalse:return!1;case s.Int:case s.UInt:return t.value;case s.Buffer:return t.buffer;case s.OptionalNone:return null;case s.OptionalSome:return y(t.value);case s.ResponseErr:return e?E(y(t.value)):y(t.value);case s.ResponseOk:return e?h(y(t.value)):y(t.value);case s.PrincipalStandard:case s.PrincipalContract:return k(t);case s.List:return t.list.map(r=>y(r));case s.Tuple:return Object.entries(t.data).reduce((r,[o,i])=>{let a=f(o);return T(u({},r),{[a]:y(i,e)})},{});case s.StringASCII:return t.data;case s.StringUTF8:return t.data}}function Ne(t,e=!1){return y(_t(t),e)}function G(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}var Se=t=>typeof t=="string",w=t=>t.buffer!==void 0,O=t=>t["string-ascii"]!==void 0,N=t=>t["string-utf8"]!==void 0,Q=t=>t.response!==void 0,S=t=>t.optional!==void 0,P=t=>t.tuple!==void 0,R=t=>t.list!==void 0,Pe=t=>t==="trait_reference";function d(t,e){if(P(e)){if(typeof t!="object")throw new Error("Invalid tuple input");let n={};return e.tuple.forEach(r=>{let o=F(r.name,t),i=t[o];n[r.name]=d(i,r.type)}),Ft(n)}else if(R(e)){let r=t.map(o=>d(o,e.list.type));return It(r)}else{if(S(e))return t===null?Pt():Rt(d(t,e.optional));if(O(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return Nt(t)}else if(N(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return St(t)}else if(e==="bool"){let n=typeof t=="boolean"?t.toString():t;return H(n,e)}else if(e==="uint128"){let n=G(t);return kt(n.toString())}else if(e==="int128"){let n=G(t);return Ot(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 wt(n,r)}else if(w(e))return Vt(t)}return H(t,e)}function x(t,e="hex"){switch(t.type){case s.BoolTrue:return"true";case s.BoolFalse:return"false";case s.Int:return t.value.toString();case s.UInt:return`u${t.value.toString()}`;case s.Buffer:if(e==="tryAscii"){let n=q(t.buffer);if(/[ -~]/.test(n))return JSON.stringify(n)}return`0x${v(t.buffer)}`;case s.OptionalNone:return"none";case s.OptionalSome:return`(some ${x(t.value,e)})`;case s.ResponseErr:return`(err ${x(t.value,e)})`;case s.ResponseOk:return`(ok ${x(t.value,e)})`;case s.PrincipalStandard:case s.PrincipalContract:return`'${k(t)}`;case s.List:return`(list ${t.list.map(n=>x(n,e)).join(" ")})`;case s.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${x(t.data[n],e)})`).join(" ")})`;case s.StringASCII:return`"${t.data}"`;case s.StringUTF8:return`u"${t.data}"`}}function C(t,e=!1){switch(t.type){case s.BoolTrue:return!0;case s.BoolFalse:return!1;case s.Int:case s.UInt:return`${t.value}`;case s.Buffer:return v(t.buffer);case s.OptionalNone:return null;case s.OptionalSome:return C(t.value);case s.ResponseErr:return e?E(C(t.value)):C(t.value);case s.ResponseOk:return e?h(C(t.value)):C(t.value);case s.PrincipalStandard:case s.PrincipalContract:return k(t);case s.List:return t.list.map(r=>C(r));case s.Tuple:return Object.entries(t.data).reduce((r,[o,i])=>{let a=f(o);return T(u({},r),{[a]:C(i)})},{});case s.StringASCII:return t.data;case s.StringUTF8:return t.data}}function Z(t,e){return t.args.map(n=>{let r=F(n.name,e),o=e[r];return d(o,n.type)})}function Bt(t,e){return e.map((n,r)=>d(n,t.args[r].type))}function b(t,e){if(e.length===0)return[];let[n]=e;if(e.length===1&&t.args.length!==1)return Z(t,n);if(typeof n=="object"&&!Array.isArray(n)&&n!==null)try{let r=!0;if(t.args.forEach(o=>{try{F(o.name,n)}catch{r=!1}}),r)return Z(t,n)}catch{}return Bt(t,e)}function F(t,e){let n=Object.keys(e).find(r=>{let o=t===r,i=t===K(r);return o||i});if(!n)throw new Error(`Error encoding JS tuple: ${t} not found in input.`);return n}function Y(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${String(t.value)}`)}function X(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${String(t.value)}`)}function $t(t,e){let n=t.abi.functions.find(o=>f(o.name)===e);if(n)return function(...o){return{functionArgs:b(n,o),contractAddress:t.contractAddress,contractName:t.contractName,function:n,functionName:n.name,nativeArgs:o}};let r=t.abi.maps.find(o=>f(o.name)===e);if(r)return o=>{let i=d(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 Ut={get:$t},Dt=t=>new Proxy(t,Ut);import{cvToHex as Ht,hexToCV as Gt}from"@stacks/transactions";import{broadcastTransaction as Zt}from"@stacks/transactions";function Mt(t){let e=[];return t.forEach(n=>e.push(...n.transactions)),e}function tt(t){return Mt(t).filter(I)}function et(t){if(!I(t))throw new Error("Unable to get path for tx type.");if("requirement-publish"in t)return t["requirement-publish"].path;if("emulated-contract-publish"in t)return t["emulated-contract-publish"].path;if("contract-publish"in t)return t["contract-publish"].path;throw new Error("Couldnt get path for deployment tx.")}function nt(t){if(!I(t))throw new Error("Unable to get ID for tx type.");if("requirement-publish"in t){let e=t["requirement-publish"],[n,r]=e["contract-id"].split(".");return`${e["remap-sender"]}.${r}`}else if("emulated-contract-publish"in t){let e=t["emulated-contract-publish"];return`${e["emulated-sender"]}.${e["contract-name"]}`}else if("contract-publish"in t){let e=t["contract-publish"];return`${e["expected-sender"]}.${e["contract-name"]}`}throw new Error("Unable to find ID for contract.")}function I(t){return!("contract-call"in t||"btc-transfer"in t||"emulated-contract-call"in t)}var We=["devnet","simnet","testnet","mainnet"];function ze(t,e){let n=[];return Object.entries(t.contracts).forEach(([r,o])=>{let i=t.deployments[r][e];return i&&n.push([r,rt(o,i)]),!1}),Object.fromEntries(n)}function He(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let o=`${e}.${r.contractName}`;return[n,rt(r,o)]}))}function jt(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let o=Object.assign((...i)=>{let a=b(r,i),[c,l]=e.split(".");return{functionArgs:a,contractAddress:c,contractName:l,function:r,functionName:r.name,nativeArgs:i}},{abi:r});return[n,o]}))}function rt(t,e){let n=u({},t);return T(u(u({},jt(t.functions,e)),n),{identifier:e})}function Ge(t,e){let n={};return tt(e.plan.batches).forEach(o=>{let i=nt(o),[a,c]=i.split("."),l=f(c),m=t[l],g=t[l];if(typeof g>"u")throw new Error(`Clarigen error: mismatch for contract '${l}'`);n[l]=g,g.contractFile=et(o),g.identifier=i,Object.keys(t[l].functions).forEach(p=>{let $=p,dt=(...U)=>{let D=m.functions[$];return{functionArgs:b(D,U),contractAddress:a,contractName:g.contractName,function:D,nativeArgs:U}};g[$]=dt})}),n}function ot(t,e){let n=d(e,t.key);return{key:e,keyCV:n,map:t}}import{cvToHex as qt,hexToCV as Wt}from"@stacks/transactions";import{SmartContractsApi as Jt,Configuration as Kt,TransactionsApi as Ye}from"@stacks/blockchain-api-client";function it(t){return new Jt(new Kt({basePath:t}))}function st(t){return`${t}/v2`}var at=(t,e)=>{try{let n=new URL(t);return Object.keys(e).forEach(r=>{let o=e[r];if(!!o){if(Array.isArray(o))return o.length===0?void 0:n.searchParams.set(`${r}[]`,Lt(r,o));if(typeof o=="boolean"||W(o))return n.searchParams.set(r,String(o));n.searchParams.set(r,o)}}),n.toString()}catch(n){return console.error("generateUrl"),console.error(n),t}},Lt=(t,e)=>e!=null&&e.length?`${e.map((n,r)=>`${r>0?encodeURIComponent(`${t}[]`):""}=${encodeURIComponent(n)}`).join("&")}`:"";function zt(t){if(t.okay)return Wt(t.result);throw new Error(t.cause)}async function ct(t){let{contractAddress:e,functionArgs:n,senderAddress:r=e,url:o}=t,i=await it(o).callReadOnlyFunction(T(u({},t),{readOnlyFunctionArgs:{sender:r,arguments:n.map(c=>typeof c=="string"?c:qt(c))}}));return zt(i)}import{StacksNetwork as _}from"@stacks/network";function pt(t){if(t.latest!==!1)return t.latest||typeof t.tip>"u"?"latest":t.tip}async function V(t,e){let n=pt(e),r=await ct({contractAddress:t.contractAddress,contractName:t.contractName,functionName:t.functionName,functionArgs:t.functionArgs,tip:n,url:ut(e)});return e.json?C(r):y(r,!0)}async function Qt(t,e){let n=await V(t,e);return Y(n)}async function Yt(t,e){let n=await V(t,e);return X(n)}function ut(t){return t.network?_.fromNameOrNetwork(t.network).coreApiUrl:t.url}async function gn(t,e,n,r){let o=ot(e,n),i=JSON.stringify(Ht(o.keyCV)),[a,c]=t.split("."),l=at(`${st(ut(r))}/map_entry/${a}/${c}/${o.map.name}`,{proof:0,tip:pt(r)}),g=await(await fetch(l,{method:"POST",body:i,headers:{"Content-Type":"application/json",Accept:"application/json"}})).json(),p=Gt(g.data);return y(p,!0)}async function xn(t,e){let n="network"in e?e.network:new _({url:e.url}),r=await Zt(t,n);if(r.error)throw new Error(`Error broadcasting tx: ${r.error} - ${r.reason} - ${JSON.stringify(r.reason_data)}`);return{txId:r.txid,stacksTransaction:t}}var lt=class{url;constructor(e){typeof e=="string"?this.url=e:this.url=_.fromNameOrNetwork(e).coreApiUrl}roOptions(e){return u({url:this.url},e)}ro(e,n){return V(e,this.roOptions(n||{}))}roOk(e,n){return Qt(e,this.roOptions(n||{}))}roErr(e,n){return Yt(e,this.roOptions(n||{}))}};import{createAssetInfo as ft,makeContractFungiblePostCondition as Xt,makeContractNonFungiblePostCondition as te,makeStandardFungiblePostCondition as ee,makeStandardNonFungiblePostCondition as ne}from"@stacks/transactions";function yt(t,e){if(!("identifier"in t))throw new Error("Invalid contract");let[n,r]=t.identifier.split(".");for(let o of t.non_fungible_tokens)if(o.name===e)return ft(n,r,o.name);for(let o of t.fungible_tokens)if(o.name===e)return ft(n,r,o.name);throw new Error(`Invalid asset: "${e}" is not an asset in contract.`)}function Sn(t,e,n,r){let[o,i]=e.split("."),[a]=t.non_fungible_tokens,c=yt(t,a.name),l=a.type,m=d(r,l);return typeof i>"u"?ne(o,n,c,m):te(o,i,n,c,m)}function Pn(t,e,n,r){let[o,i]=e.split("."),[a]=t.fungible_tokens,c=yt(t,a.name);return typeof i>"u"?ee(o,n,r,c):Xt(o,i,n,r,c)}function B(t,e=""){return t.slice(e.length+2,-1)}function A(t,e){if(P(e)){let n=ie(t),r={},o=Object.entries(n).reduce((i,[a,c])=>{let l=a.trim();return T(u({},i),{[l]:c.trim()})},{});return e.tuple.forEach(({name:i,type:a})=>{let c=f(i);r[c]=A(o[i],a)}),r}else{if(R(e))return oe(t).map(r=>A(r,e.list.type));if(S(e))return t==="none"?null:A(B(t,"some"),e.optional);if(O(e))return t.slice(1,-1);if(N(e))return t.slice(2,-1);if(e==="bool")return t==="true";if(e==="uint128")return BigInt(t.slice(1));if(e==="int128")return BigInt(t);if(e==="trait_reference")return t.replace(/^\'/,"");if(e==="principal")return t.replace(/^\'/,"");if(e==="none")return null;if(w(e))return L(t.slice(2));if(Q(e)){if(t.startsWith("(ok")){let r=B(t,"ok");return h(A(r,e.response.ok))}let n=B(t,"err");return E(A(n,e.response.error))}}throw new Error(`Unable to parse cv string to value: ${t} ${JSON.stringify(e,null,2)}`)}var re=new Array(255);for(let t=0;t<=255;++t)re[t]=t.toString(16).padStart(2,"0");function oe(t){if(t.charAt(0)!=="["||t.charAt(t.length-1)!=="]")throw new Error(`Expected (list ..), got ${t.toString()}`);let e=[],n=[],r=1;for(let i=0;i<t.length;i++)t.charAt(i)===","&&e.length==1&&(n.push(t.substring(r,i)),r=i+2),["(","[","{"].includes(t.charAt(i))&&e.push(t.charAt(i)),t.charAt(i)===")"&&e[e.length-1]==="("&&e.pop(),t.charAt(i)==="}"&&e[e.length-1]==="{"&&e.pop(),t.charAt(i)==="]"&&e[e.length-1]==="["&&e.pop();let o=t.substring(r,t.length-1);return o.length>0&&n.push(o),n}function ie(t){if(t.charAt(0)!=="{"||t.charAt(t.length-1)!=="}")throw new Error(`Expected '(tuple ..)', got ${t.toString()}`);let e=1,n=[],r=[];for(let a=0;a<t.length;a++)t.charAt(a)===","&&n.length==1&&(r.push(t.substring(e,a)),e=a+2),["(","[","{"].includes(t.charAt(a))&&n.push(t.charAt(a)),t.charAt(a)===")"&&n[n.length-1]==="("&&n.pop(),t.charAt(a)==="}"&&n[n.length-1]==="{"&&n.pop(),t.charAt(a)==="]"&&n[n.length-1]==="["&&n.pop();let o=t.substring(e,t.length-1);o.length>0&&r.push(o);let i={};for(let a of r)for(let c=0;c<a.length;c++)if(a.charAt(c)===":"){let l=a.substring(0,c),m=a.substring(c+2,a.length);i[l]=m;break}return i}export{lt as ClarigenClient,vt as CoreNodeEventType,We as DEPLOYMENT_NETWORKS,ht as MAINNET_BURN_ADDRESS,At as TESTNET_BURN_ADDRESS,de as bootContractIdentifier,xn as broadcast,q as bytesToAscii,v as bytesToHex,rt as contractFactory,He as contractsFactory,yt as createAssetInfo,C as cvToJSON,x as cvToString,y as cvToValue,Ge as deploymentFactory,E as err,X as expectErr,Y as expectOk,gn as fetchMapGet,Ce as filterEvents,F as findJsTupleKey,jt as functionsFactory,ut as getApiUrl,fe as getContractIdentifier,ue as getContractName,Et as getContractNameFromPath,ye as getContractPrincipalCV,L as hexToBytes,Ne as hexToCvValue,w as isClarityAbiBuffer,R as isClarityAbiList,S as isClarityAbiOptional,Se as isClarityAbiPrimitive,Q as isClarityAbiResponse,O as isClarityAbiStringAscii,N as isClarityAbiStringUtf8,Pe as isClarityAbiTraitReference,P as isClarityAbiTuple,W as isNumber,Oe as isResponse,ge as makeContracts,Pn as makeFungiblePostCondition,Sn as makeNonFungiblePostCondition,ot as mapFactory,h as ok,d as parseToCV,k as principalToString,ze as projectFactory,Dt as pureProxy,A as rawClarityToValue,V as ro,Yt as roErr,Qt as roOk,f as toCamelCase,K as toKebabCase,Bt as transformArgsArray,b as transformArgsToCV,Z as transformObjectArgs};
1
+ var Ct=Object.defineProperty,mt=Object.defineProperties;var gt=Object.getOwnPropertyDescriptors;var J=Object.getOwnPropertySymbols;var xt=Object.prototype.hasOwnProperty,bt=Object.prototype.propertyIsEnumerable;var K=(t,e,n)=>e in t?Ct(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,u=(t,e)=>{for(var n in e||(e={}))xt.call(e,n)&&K(t,n,e[n]);if(J)for(var n of J(e))bt.call(e,n)&&K(t,n,e[n]);return t},T=(t,e)=>mt(t,gt(e));import{contractPrincipalCV as At}from"@stacks/transactions";import{hex as L}from"@scure/base";var ht="ST000000000000000000002AMW42H",Et="SP000000000000000000002Q6VF78",f=(t,e)=>{let n=typeof t=="string"?t:String(t);if(/^[A-Z_]+$/.test(n))return n;let[o,...i]=n.replace("!","_x").replace("?","_q").split("-"),c=`${e?o[0].toUpperCase():o[0].toLowerCase()}${o.slice(1)}`;return i.forEach(l=>{c+=l[0].toUpperCase()+l.slice(1)}),c};function q(t){let e=t.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g);return e?e.join("-").toLowerCase():t}function ye(t,e=!0){let n=t.split(".")[1];return e?f(n):n}var vt=t=>{let e=t.split("/"),n=e[e.length-1],[r]=n.split(".");return r},de=t=>`${t.address}.${t.name}`,Te=t=>{let e=vt(t.contractFile);return At(t.address,e)};function Ce(t,e){return`${e?Et:ht}.${t}`}function R(t){return L.encode(t)}function W(t){return L.decode(t)}function z(t){let e=Array.from(t);return String.fromCharCode.apply(null,e)}var H=t=>typeof t=="number";var kt=(p=>(p.ContractEvent="contract_event",p.StxTransferEvent="stx_transfer_event",p.StxMintEvent="stx_mint_event",p.StxBurnEvent="stx_burn_event",p.StxLockEvent="stx_lock_event",p.NftTransferEvent="nft_transfer_event",p.NftMintEvent="nft_mint_event",p.NftBurnEvent="nft_burn_event",p.FtTransferEvent="ft_transfer_event",p.FtMintEvent="ft_mint_event",p.FtBurnEvent="ft_burn_event",p))(kt||{});function ge(t,e){return t.filter(n=>n.type===e)}function be(t,e={}){let n={};for(let r in t){let o=t[r],i=e.deployerAddress||o.address,a=`${i}.${o.name}`,c=o.contract(i,o.name);n[r]={identifier:a,contract:c}}return n}import{addressToString as G,ClarityType as s,uintCV as wt,contractPrincipalCV as Ot,intCV as Nt,stringAsciiCV as St,stringUtf8CV as Pt,noneCV as Rt,someCV as Ft,tupleCV as It,listCV as _t,hexToCV as $t,bufferCV as Vt,parseToCV as Z}from"@stacks/transactions";function E(t){return{isOk:!0,value:t}}function v(t){return{isOk:!1,value:t}}function Se(t){return typeof t=="object"&&t!==null&&"isOk"in t}function F(t){if(t.type===s.PrincipalStandard)return G(t.address);if(t.type===s.PrincipalContract)return`${G(t.address)}.${t.contractName.content}`;throw new Error(`Unexpected principal data: ${JSON.stringify(t)}`)}function y(t,e=!1){switch(t.type){case s.BoolTrue:return!0;case s.BoolFalse:return!1;case s.Int:case s.UInt:return t.value;case s.Buffer:return t.buffer;case s.OptionalNone:return null;case s.OptionalSome:return y(t.value);case s.ResponseErr:return e?v(y(t.value)):y(t.value);case s.ResponseOk:return e?E(y(t.value)):y(t.value);case s.PrincipalStandard:case s.PrincipalContract:return F(t);case s.List:return t.list.map(r=>y(r));case s.Tuple:return Object.entries(t.data).reduce((r,[o,i])=>{let a=f(o);return T(u({},r),{[a]:y(i,e)})},{});case s.StringASCII:return t.data;case s.StringUTF8:return t.data}}function Pe(t,e=!1){return y($t(t),e)}function Q(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}var Bt=t=>typeof t=="string",k=t=>t.buffer!==void 0,w=t=>t["string-ascii"]!==void 0,O=t=>t["string-utf8"]!==void 0,I=t=>t.response!==void 0,N=t=>t.optional!==void 0,S=t=>t.tuple!==void 0,P=t=>t.list!==void 0,Re=t=>t==="trait_reference";function d(t,e){if(S(e)){if(typeof t!="object")throw new Error("Invalid tuple input");let n={};return e.tuple.forEach(r=>{let o=_(r.name,t),i=t[o];n[r.name]=d(i,r.type)}),It(n)}else if(P(e)){let r=t.map(o=>d(o,e.list.type));return _t(r)}else{if(N(e))return t===null?Rt():Ft(d(t,e.optional));if(w(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return St(t)}else if(O(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return Pt(t)}else if(e==="bool"){let n=typeof t=="boolean"?t.toString():t;return Z(n,e)}else if(e==="uint128"){let n=Q(t);return wt(n.toString())}else if(e==="int128"){let n=Q(t);return Nt(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 Ot(n,r)}else if(k(e))return Vt(t)}return Z(t,e)}function x(t,e="hex"){switch(t.type){case s.BoolTrue:return"true";case s.BoolFalse:return"false";case s.Int:return t.value.toString();case s.UInt:return`u${t.value.toString()}`;case s.Buffer:if(e==="tryAscii"){let n=z(t.buffer);if(/[ -~]/.test(n))return JSON.stringify(n)}return`0x${R(t.buffer)}`;case s.OptionalNone:return"none";case s.OptionalSome:return`(some ${x(t.value,e)})`;case s.ResponseErr:return`(err ${x(t.value,e)})`;case s.ResponseOk:return`(ok ${x(t.value,e)})`;case s.PrincipalStandard:case s.PrincipalContract:return`'${F(t)}`;case s.List:return`(list ${t.list.map(n=>x(n,e)).join(" ")})`;case s.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${x(t.data[n],e)})`).join(" ")})`;case s.StringASCII:return`"${t.data}"`;case s.StringUTF8:return`u"${t.data}"`}}function C(t,e=!1){switch(t.type){case s.BoolTrue:return!0;case s.BoolFalse:return!1;case s.Int:case s.UInt:return`${t.value}`;case s.Buffer:return R(t.buffer);case s.OptionalNone:return null;case s.OptionalSome:return C(t.value);case s.ResponseErr:return e?v(C(t.value)):C(t.value);case s.ResponseOk:return e?E(C(t.value)):C(t.value);case s.PrincipalStandard:case s.PrincipalContract:return F(t);case s.List:return t.list.map(r=>C(r));case s.Tuple:return Object.entries(t.data).reduce((r,[o,i])=>{let a=f(o);return T(u({},r),{[a]:C(i)})},{});case s.StringASCII:return t.data;case s.StringUTF8:return t.data}}function Y(t,e){return t.args.map(n=>{let r=_(n.name,e),o=e[r];return d(o,n.type)})}function Ut(t,e){return e.map((n,r)=>d(n,t.args[r].type))}function A(t,e){if(e.length===0)return[];let[n]=e;if(e.length===1&&t.args.length!==1)return Y(t,n);if(typeof n=="object"&&!Array.isArray(n)&&n!==null)try{let r=!0;if(t.args.forEach(o=>{try{_(o.name,n)}catch{r=!1}}),r)return Y(t,n)}catch{}return Ut(t,e)}function _(t,e){let n=Object.keys(e).find(r=>{let o=t===r,i=t===q(r);return o||i});if(!n)throw new Error(`Error encoding JS tuple: ${t} not found in input.`);return n}function X(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${String(t.value)}`)}function tt(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${String(t.value)}`)}function b(t){if(Bt(t))return t==="int128"?"int":t==="uint128"?"uint":t;if(k(t))return`(buff ${t.buffer.length})`;if(w(t))return`(string-ascii ${t["string-ascii"].length})`;if(O(t))return`(string-utf8 ${t["string-utf8"].length})`;if(I(t))return`(response ${b(t.response.ok)} ${b(t.response.error)})`;if(N(t))return`(optional ${b(t.optional)})`;if(S(t))return`(tuple ${t.tuple.map(e=>`(${e.name} ${b(e.type)})`).join(" ")})`;if(P(t))return`(list ${t.list.length} ${b(t.list.type)})`;throw new Error(`Type string unsupported for Clarity type: ${JSON.stringify(t)}`)}function Dt(t,e){let n=t.abi.functions.find(o=>f(o.name)===e);if(n)return function(...o){return{functionArgs:A(n,o),contractAddress:t.contractAddress,contractName:t.contractName,function:n,functionName:n.name,nativeArgs:o}};let r=t.abi.maps.find(o=>f(o.name)===e);if(r)return o=>{let i=d(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 Mt={get:Dt},jt=t=>new Proxy(t,Mt);import{cvToHex as Zt,hexToCV as Qt}from"@stacks/transactions";import{broadcastTransaction as Yt}from"@stacks/transactions";function Jt(t){let e=[];return t.forEach(n=>e.push(...n.transactions)),e}function et(t){return Jt(t).filter($)}function nt(t){if(!$(t))throw new Error("Unable to get path for tx type.");if("requirement-publish"in t)return t["requirement-publish"].path;if("emulated-contract-publish"in t)return t["emulated-contract-publish"].path;if("contract-publish"in t)return t["contract-publish"].path;throw new Error("Couldnt get path for deployment tx.")}function rt(t){if(!$(t))throw new Error("Unable to get ID for tx type.");if("requirement-publish"in t){let e=t["requirement-publish"],[n,r]=e["contract-id"].split(".");return`${e["remap-sender"]}.${r}`}else if("emulated-contract-publish"in t){let e=t["emulated-contract-publish"];return`${e["emulated-sender"]}.${e["contract-name"]}`}else if("contract-publish"in t){let e=t["contract-publish"];return`${e["expected-sender"]}.${e["contract-name"]}`}throw new Error("Unable to find ID for contract.")}function $(t){return!("contract-call"in t||"btc-transfer"in t||"emulated-contract-call"in t)}var ze=["devnet","simnet","testnet","mainnet"];function He(t,e){let n=[];return Object.entries(t.contracts).forEach(([r,o])=>{let i=t.deployments[r][e];return i&&n.push([r,ot(o,i)]),!1}),Object.fromEntries(n)}function Ge(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let o=`${e}.${r.contractName}`;return[n,ot(r,o)]}))}function Kt(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let o=Object.assign((...i)=>{let a=A(r,i),[c,l]=e.split(".");return{functionArgs:a,contractAddress:c,contractName:l,function:r,functionName:r.name,nativeArgs:i}},{abi:r});return[n,o]}))}function ot(t,e){let n=u({},t);return T(u(u({},Kt(t.functions,e)),n),{identifier:e})}function Ze(t,e){let n={};return et(e.plan.batches).forEach(o=>{let i=rt(o),[a,c]=i.split("."),l=f(c),m=t[l],g=t[l];if(typeof g>"u")throw new Error(`Clarigen error: mismatch for contract '${l}'`);n[l]=g,g.contractFile=nt(o),g.identifier=i,Object.keys(t[l].functions).forEach(p=>{let D=p,Tt=(...M)=>{let j=m.functions[D];return{functionArgs:A(j,M),contractAddress:a,contractName:g.contractName,function:j,nativeArgs:M}};g[D]=Tt})}),n}function it(t,e){let n=d(e,t.key);return{key:e,keyCV:n,map:t}}import{cvToHex as zt,hexToCV as Ht}from"@stacks/transactions";import{SmartContractsApi as Lt,Configuration as qt,TransactionsApi as Xe}from"@stacks/blockchain-api-client";function st(t){return new Lt(new qt({basePath:t}))}function at(t){return`${t}/v2`}var ct=(t,e)=>{try{let n=new URL(t);return Object.keys(e).forEach(r=>{let o=e[r];if(!!o){if(Array.isArray(o))return o.length===0?void 0:n.searchParams.set(`${r}[]`,Wt(r,o));if(typeof o=="boolean"||H(o))return n.searchParams.set(r,String(o));n.searchParams.set(r,o)}}),n.toString()}catch(n){return console.error("generateUrl"),console.error(n),t}},Wt=(t,e)=>e!=null&&e.length?`${e.map((n,r)=>`${r>0?encodeURIComponent(`${t}[]`):""}=${encodeURIComponent(n)}`).join("&")}`:"";function Gt(t){if(t.okay)return Ht(t.result);throw new Error(t.cause)}async function lt(t){let{contractAddress:e,functionArgs:n,senderAddress:r=e,url:o}=t,i=await st(o).callReadOnlyFunction(T(u({},t),{readOnlyFunctionArgs:{sender:r,arguments:n.map(c=>typeof c=="string"?c:zt(c))}}));return Gt(i)}import{StacksNetwork as V}from"@stacks/network";function ut(t){if(t.latest!==!1)return t.latest||typeof t.tip>"u"?"latest":t.tip}async function B(t,e){let n=ut(e),r=await lt({contractAddress:t.contractAddress,contractName:t.contractName,functionName:t.functionName,functionArgs:t.functionArgs,tip:n,url:ft(e)});return e.json?C(r):y(r,!0)}async function Xt(t,e){let n=await B(t,e);return X(n)}async function te(t,e){let n=await B(t,e);return tt(n)}function ft(t){return t.network?V.fromNameOrNetwork(t.network).coreApiUrl:t.url}async function xn(t,e,n,r){let o=it(e,n),i=JSON.stringify(Zt(o.keyCV)),[a,c]=t.split("."),l=ct(`${at(ft(r))}/map_entry/${a}/${c}/${o.map.name}`,{proof:0,tip:ut(r)}),g=await(await fetch(l,{method:"POST",body:i,headers:{"Content-Type":"application/json",Accept:"application/json"}})).json(),p=Qt(g.data);return y(p,!0)}async function bn(t,e){let n="network"in e?e.network:new V({url:e.url}),r=await Yt(t,n);if(r.error)throw new Error(`Error broadcasting tx: ${r.error} - ${r.reason} - ${JSON.stringify(r.reason_data)}`);return{txId:r.txid,stacksTransaction:t}}var pt=class{url;constructor(e){typeof e=="string"?this.url=e:this.url=V.fromNameOrNetwork(e).coreApiUrl}roOptions(e){return u({url:this.url},e)}ro(e,n){return B(e,this.roOptions(n||{}))}roOk(e,n){return Xt(e,this.roOptions(n||{}))}roErr(e,n){return te(e,this.roOptions(n||{}))}};import{createAssetInfo as yt,makeContractFungiblePostCondition as ee,makeContractNonFungiblePostCondition as ne,makeStandardFungiblePostCondition as re,makeStandardNonFungiblePostCondition as oe}from"@stacks/transactions";function dt(t,e){if(!("identifier"in t))throw new Error("Invalid contract");let[n,r]=t.identifier.split(".");for(let o of t.non_fungible_tokens)if(o.name===e)return yt(n,r,o.name);for(let o of t.fungible_tokens)if(o.name===e)return yt(n,r,o.name);throw new Error(`Invalid asset: "${e}" is not an asset in contract.`)}function Pn(t,e,n,r){let[o,i]=e.split("."),[a]=t.non_fungible_tokens,c=dt(t,a.name),l=a.type,m=d(r,l);return typeof i>"u"?oe(o,n,c,m):ne(o,i,n,c,m)}function Rn(t,e,n,r){let[o,i]=e.split("."),[a]=t.fungible_tokens,c=dt(t,a.name);return typeof i>"u"?re(o,n,r,c):ee(o,i,n,r,c)}function U(t,e=""){return t.slice(e.length+2,-1)}function h(t,e){if(S(e)){let n=ae(t),r={},o=Object.entries(n).reduce((i,[a,c])=>{let l=a.trim();return T(u({},i),{[l]:c.trim()})},{});return e.tuple.forEach(({name:i,type:a})=>{let c=f(i);r[c]=h(o[i],a)}),r}else{if(P(e))return se(t).map(r=>h(r,e.list.type));if(N(e))return t==="none"?null:h(U(t,"some"),e.optional);if(w(e))return t.slice(1,-1);if(O(e))return t.slice(2,-1);if(e==="bool")return t==="true";if(e==="uint128")return BigInt(t.slice(1));if(e==="int128")return BigInt(t);if(e==="trait_reference")return t.replace(/^\'/,"");if(e==="principal")return t.replace(/^\'/,"");if(e==="none")return null;if(k(e))return W(t.slice(2));if(I(e)){if(t.startsWith("(ok")){let r=U(t,"ok");return E(h(r,e.response.ok))}let n=U(t,"err");return v(h(n,e.response.error))}}throw new Error(`Unable to parse cv string to value: ${t} ${JSON.stringify(e,null,2)}`)}var ie=new Array(255);for(let t=0;t<=255;++t)ie[t]=t.toString(16).padStart(2,"0");function se(t){if(t.charAt(0)!=="["||t.charAt(t.length-1)!=="]")throw new Error(`Expected (list ..), got ${t.toString()}`);let e=[],n=[],r=1;for(let i=0;i<t.length;i++)t.charAt(i)===","&&e.length==1&&(n.push(t.substring(r,i)),r=i+2),["(","[","{"].includes(t.charAt(i))&&e.push(t.charAt(i)),t.charAt(i)===")"&&e[e.length-1]==="("&&e.pop(),t.charAt(i)==="}"&&e[e.length-1]==="{"&&e.pop(),t.charAt(i)==="]"&&e[e.length-1]==="["&&e.pop();let o=t.substring(r,t.length-1);return o.length>0&&n.push(o),n}function ae(t){if(t.charAt(0)!=="{"||t.charAt(t.length-1)!=="}")throw new Error(`Expected '(tuple ..)', got ${t.toString()}`);let e=1,n=[],r=[];for(let a=0;a<t.length;a++)t.charAt(a)===","&&n.length==1&&(r.push(t.substring(e,a)),e=a+2),["(","[","{"].includes(t.charAt(a))&&n.push(t.charAt(a)),t.charAt(a)===")"&&n[n.length-1]==="("&&n.pop(),t.charAt(a)==="}"&&n[n.length-1]==="{"&&n.pop(),t.charAt(a)==="]"&&n[n.length-1]==="["&&n.pop();let o=t.substring(e,t.length-1);o.length>0&&r.push(o);let i={};for(let a of r)for(let c=0;c<a.length;c++)if(a.charAt(c)===":"){let l=a.substring(0,c),m=a.substring(c+2,a.length);i[l]=m;break}return i}export{pt as ClarigenClient,kt as CoreNodeEventType,ze as DEPLOYMENT_NETWORKS,Et as MAINNET_BURN_ADDRESS,ht as TESTNET_BURN_ADDRESS,Ce as bootContractIdentifier,bn as broadcast,z as bytesToAscii,R as bytesToHex,ot as contractFactory,Ge as contractsFactory,dt as createAssetInfo,C as cvToJSON,x as cvToString,y as cvToValue,Ze as deploymentFactory,v as err,tt as expectErr,X as expectOk,xn as fetchMapGet,ge as filterEvents,_ as findJsTupleKey,Kt as functionsFactory,ft as getApiUrl,de as getContractIdentifier,ye as getContractName,vt as getContractNameFromPath,Te as getContractPrincipalCV,b as getTypeString,W as hexToBytes,Pe as hexToCvValue,k as isClarityAbiBuffer,P as isClarityAbiList,N as isClarityAbiOptional,Bt as isClarityAbiPrimitive,I as isClarityAbiResponse,w as isClarityAbiStringAscii,O as isClarityAbiStringUtf8,Re as isClarityAbiTraitReference,S as isClarityAbiTuple,H as isNumber,Se as isResponse,be as makeContracts,Rn as makeFungiblePostCondition,Pn as makeNonFungiblePostCondition,it as mapFactory,E as ok,d as parseToCV,F as principalToString,He as projectFactory,jt as pureProxy,h as rawClarityToValue,B as ro,te as roErr,Xt as roOk,f as toCamelCase,q as toKebabCase,Ut as transformArgsArray,A as transformArgsToCV,Y as transformObjectArgs};
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.0.0",
2
+ "version": "2.0.2",
3
3
  "license": "MIT",
4
4
  "types": "./dist/index.d.ts",
5
5
  "main": "./dist/index.js",