@clarigen/core 1.0.10 → 1.0.12

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
@@ -439,29 +439,47 @@ declare namespace ContractCalls {
439
439
  }
440
440
  declare const pureProxy: <T extends object>(target: PureContractInfo) => T;
441
441
 
442
- interface ApiOptionsBase {
442
+ interface ApiOptionsUrl {
443
+ url: string;
444
+ }
445
+ interface ApiOptionsNetwork {
443
446
  network: StacksNetwork;
447
+ }
448
+ type ApiOptionsBase = (ApiOptionsUrl | ApiOptionsNetwork) & {
444
449
  tip?: string;
445
450
  latest?: boolean;
446
- }
447
- interface ApiOptionsJsonize extends ApiOptionsBase {
451
+ };
452
+ type ApiOptionsJsonize = ApiOptionsBase & {
448
453
  json: true;
449
- }
450
- interface ApiOptionsNoJson extends ApiOptionsBase {
454
+ };
455
+ type ApiOptionsNoJson = ApiOptionsBase & {
451
456
  json?: false | undefined;
452
- }
453
- interface ApiOptions extends ApiOptionsBase {
457
+ };
458
+ type ApiOptions = ApiOptionsBase & {
454
459
  json?: boolean;
455
- }
460
+ };
456
461
  type JsonIfOption<O extends ApiOptions, R> = O extends ApiOptionsJsonize ? Jsonize<R> : R;
457
462
  declare function ro<O extends ApiOptions, T>(tx: ContractCall<T>, options: O): Promise<JsonIfOption<O, T>>;
458
463
  declare function roOk<O extends ApiOptions, Ok>(tx: ContractCall<Response<Ok, any>>, options: O): Promise<JsonIfOption<O, Ok>>;
459
464
  declare function roErr<O extends ApiOptions, Err>(tx: ContractCall<Response<any, Err>>, options: O): Promise<JsonIfOption<O, Err>>;
465
+ declare function getApiUrl(opts: ApiOptionsUrl | ApiOptionsNetwork): string;
460
466
  declare function fetchMapGet<Key, Val>(contractId: string, map: TypedAbiMap<Key, Val>, key: Key, options: ApiOptions): Promise<Val | null>;
461
467
  declare function broadcast(transaction: StacksTransaction, options: ApiOptions): Promise<{
462
468
  txId: string;
463
469
  stacksTransaction: StacksTransaction;
464
470
  }>;
471
+ type ClientOptions = Omit<ApiOptions, 'url'>;
472
+ type JsonIf<O extends ClientOptions, T> = JsonIfOption<O & {
473
+ url: string;
474
+ }, T>;
475
+ declare class ClarigenClient {
476
+ url: string;
477
+ constructor(networkOrUrl: StacksNetwork | string);
478
+ private roOptions;
479
+ ro<T, O extends ClientOptions>(tx: ContractCall<T>, options?: O): Promise<JsonIf<O, T>>;
480
+ roOk<T, O extends ClientOptions>(tx: ContractCall<Response<T, any>>, options?: O): Promise<JsonIf<O, T>>;
481
+ roErr<T, O extends ClientOptions>(tx: ContractCall<Response<any, T>>, options?: O): Promise<JsonIf<O, T>>;
482
+ }
465
483
 
466
484
  interface EmulatedContractPublishTransaction {
467
485
  'emulated-contract-publish': {
@@ -580,4 +598,4 @@ type MapFactory<M extends TypedAbiMap<K, V>, K, V> = {
580
598
  };
581
599
  declare function mapFactory<Key, Val>(map: TypedAbiMap<Key, Val>, key: Key): MapFactory<TypedAbiMap<Key, Val>, Key, Val>;
582
600
 
583
- export { AbiPrimitiveTo, AbiTupleTo, AbiTypeTo, AllContracts, ApiOptions, ApiOptionsBase, ApiOptionsJsonize, ApiOptionsNoJson, ArgsRecord, ArgsTuple, ArgsType, CVInput, ClarityAbi, ClarityAbiArg, ClarityAbiFunction, ClarityAbiMap, ClarityAbiType, ClarityAbiTypeBool, ClarityAbiTypeBuffer, ClarityAbiTypeFungibleToken, ClarityAbiTypeInt128, ClarityAbiTypeList, ClarityAbiTypeNonFungibleToken, ClarityAbiTypeNone, ClarityAbiTypeOptional, ClarityAbiTypePrimitive, ClarityAbiTypePrincipal, ClarityAbiTypeResponse, ClarityAbiTypeStringAscii, ClarityAbiTypeStringUtf8, ClarityAbiTypeTraitReference, ClarityAbiTypeTuple, ClarityAbiTypeUInt128, ClarityAbiVariable, 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, NftBurnEvent, NftMintEvent, NftTransferEvent, NonStandardClarityValue, OkType, Project, ProjectFactory, Response, ResponseErr, ResponseOk, ResultAssets, SimnetDeploymentPlan, SmartContractEvent, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TESTNET_BURN_ADDRESS, TupleInput, TypedAbi, TypedAbiArg, TypedAbiFunction, TypedAbiMap, TypedAbiVariable, UnionToIntersection, bootContractIdentifier, broadcast, contractFactory, contractsFactory, cvToJSON, cvToString, cvToValue, deploymentFactory, err, expectErr, expectOk, fetchMapGet, filterEvents, findJsTupleKey, functionsFactory, getContractIdentifier, getContractNameFromPath, getContractPrincipalCV, hexToCvValue, makeContracts, mapFactory, ok, parseToCV, principalToString, projectFactory, pureProxy, ro, roErr, roOk, toCamelCase, toKebabCase, transformArgsArray, transformArgsToCV, transformObjectArgs };
601
+ export { AbiPrimitiveTo, AbiTupleTo, AbiTypeTo, AllContracts, ApiOptions, ApiOptionsBase, ApiOptionsJsonize, ApiOptionsNetwork, ApiOptionsNoJson, ApiOptionsUrl, ArgsRecord, ArgsTuple, ArgsType, CVInput, ClarigenClient, ClarityAbi, ClarityAbiArg, ClarityAbiFunction, ClarityAbiMap, ClarityAbiType, ClarityAbiTypeBool, ClarityAbiTypeBuffer, ClarityAbiTypeFungibleToken, ClarityAbiTypeInt128, ClarityAbiTypeList, ClarityAbiTypeNonFungibleToken, ClarityAbiTypeNone, ClarityAbiTypeOptional, ClarityAbiTypePrimitive, ClarityAbiTypePrincipal, ClarityAbiTypeResponse, ClarityAbiTypeStringAscii, ClarityAbiTypeStringUtf8, ClarityAbiTypeTraitReference, ClarityAbiTypeTuple, ClarityAbiTypeUInt128, ClarityAbiVariable, 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, NftBurnEvent, NftMintEvent, NftTransferEvent, NonStandardClarityValue, OkType, Project, ProjectFactory, Response, ResponseErr, ResponseOk, ResultAssets, SimnetDeploymentPlan, SmartContractEvent, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TESTNET_BURN_ADDRESS, TupleInput, TypedAbi, TypedAbiArg, TypedAbiFunction, TypedAbiMap, TypedAbiVariable, UnionToIntersection, bootContractIdentifier, broadcast, contractFactory, contractsFactory, cvToJSON, cvToString, cvToValue, deploymentFactory, err, expectErr, expectOk, fetchMapGet, filterEvents, findJsTupleKey, functionsFactory, getApiUrl, getContractIdentifier, getContractNameFromPath, getContractPrincipalCV, hexToCvValue, makeContracts, mapFactory, ok, parseToCV, principalToString, projectFactory, pureProxy, 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 H=Object.defineProperty,G=Object.defineProperties;var W=Object.getOwnPropertyDescriptors;var O=Object.getOwnPropertySymbols;var Z=Object.prototype.hasOwnProperty,Y=Object.prototype.propertyIsEnumerable;var S=(t,e,n)=>e in t?H(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,C=(t,e)=>{for(var n in e||(e={}))Z.call(e,n)&&S(t,n,e[n]);if(O)for(var n of O(e))Y.call(e,n)&&S(t,n,e[n]);return t},m=(t,e)=>G(t,W(e));var _clarity = require('micro-stacks/clarity');var X="ST000000000000000000002AMW42H",tt= exports.MAINNET_BURN_ADDRESS ="SP000000000000000000002Q6VF78",T= exports.toCamelCase =(t,e)=>{let n=typeof t=="string"?t:String(t),[r,...a]=n.replace("!","").replace("?","").split("-"),s=`${e?r[0].toUpperCase():r[0].toLowerCase()}${r.slice(1)}`;return a.forEach(l=>{s+=l[0].toUpperCase()+l.slice(1)}),s};function w(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}var et=t=>{let e=t.split("/"),n=e[e.length-1],[r]=n.split(".");return r},Mt= exports.getContractIdentifier =t=>`${t.address}.${t.name}`,Dt= exports.getContractPrincipalCV =t=>{let e=et(t.contractFile);return _clarity.contractPrincipalCV.call(void 0, t.address,e)};function $t(t,e){return`${e?tt:X}.${t}`}var nt=(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))(nt||{});function Ut(t,e){return t.filter(n=>n.type===e)}function Jt(t,e={}){let n={};for(let r in t){let a=t[r],i=e.deployerAddress||a.address,s=`${i}.${a.name}`,l=a.contract(i,a.name);n[r]={identifier:s,contract:l}}return n}var _transactions = require('micro-stacks/transactions');var _common = require('micro-stacks/common');function B(t){return{isOk:!0,value:t}}function V(t){return{isOk:!1,value:t}}function b(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?V(p(t.value)):p(t.value);case _clarity.ClarityType.ResponseOk:return e?B(p(t.value)):p(t.value);case _clarity.ClarityType.PrincipalStandard:case _clarity.ClarityType.PrincipalContract:return b(t);case _clarity.ClarityType.List:return t.list.map(r=>p(r));case _clarity.ClarityType.Tuple:return Object.entries(t.data).reduce((r,[a,i])=>{let s=T(a);return m(C({},r),{[s]:p(i)})},{});case _clarity.ClarityType.StringASCII:return t.data;case _clarity.ClarityType.StringUTF8:return t.data}}function ee(t,e=!1){return p(_clarity.hexToCV.call(void 0, t),e)}function R(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}function y(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 a=v(r.name,t),i=t[a];n[r.name]=y(i,r.type)}),_clarity.tupleCV.call(void 0, n)}else if(_transactions.isClarityAbiList.call(void 0, e)){let r=t.map(a=>y(a,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, y(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=R(t);return _clarity.uintCV.call(void 0, n.toString())}else if(e==="int128"){let n=R(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 x(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 ${x(t.value,e)})`;case _clarity.ClarityType.ResponseErr:return`(err ${x(t.value,e)})`;case _clarity.ClarityType.ResponseOk:return`(ok ${x(t.value,e)})`;case _clarity.ClarityType.PrincipalStandard:case _clarity.ClarityType.PrincipalContract:return`'${b(t)}`;case _clarity.ClarityType.List:return`(list ${t.list.map(n=>x(n,e)).join(" ")})`;case _clarity.ClarityType.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${x(t.data[n],e)})`).join(" ")})`;case _clarity.ClarityType.StringASCII:return`"${t.data}"`;case _clarity.ClarityType.StringUTF8:return`u"${t.data}"`}}function f(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 _common.bytesToHex.call(void 0, t.buffer);case _clarity.ClarityType.OptionalNone:return null;case _clarity.ClarityType.OptionalSome:return f(t.value);case _clarity.ClarityType.ResponseErr:return e?V(f(t.value)):f(t.value);case _clarity.ClarityType.ResponseOk:return e?B(f(t.value)):f(t.value);case _clarity.ClarityType.PrincipalStandard:case _clarity.ClarityType.PrincipalContract:return b(t);case _clarity.ClarityType.List:return t.list.map(r=>f(r));case _clarity.ClarityType.Tuple:return Object.entries(t.data).reduce((r,[a,i])=>{let s=T(a);return m(C({},r),{[s]:f(i)})},{});case _clarity.ClarityType.StringASCII:return t.data;case _clarity.ClarityType.StringUTF8:return t.data}}function _(t,e){return t.args.map(n=>{let r=v(n.name,e),a=e[r];return y(a,n.type)})}function vt(t,e){return e.map((n,r)=>y(n,t.args[r].type))}function g(t,e){if(e.length===0)return[];let[n]=e;if(e.length===1&&t.args.length!==1)return _(t,n);if(typeof n=="object"&&!Array.isArray(n)&&n!==null)try{let r=!0;if(t.args.forEach(a=>{try{v(a.name,n)}catch (e2){r=!1}}),r)return _(t,n)}catch (e3){}return vt(t,e)}function v(t,e){let n=Object.keys(e).find(r=>{let a=t===r,i=t===w(r);return a||i});if(!n)throw new Error(`Error encoding JS tuple: ${t} not found in input.`);return n}function M(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${String(t.value)}`)}function D(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${String(t.value)}`)}function Et(t,e){let n=t.abi.functions.find(a=>T(a.name)===e);if(n)return function(...a){return{functionArgs:g(n,a),contractAddress:t.contractAddress,contractName:t.contractName,function:n,functionName:n.name,nativeArgs:a}};let r=t.abi.maps.find(a=>T(a.name)===e);if(r)return a=>{let i=y(a,r.key);return{contractAddress:t.contractAddress,contractName:t.contractName,map:r,nativeKey:a,key:i}};throw new Error(`Invalid function call: no function exists for ${String(e)}`)}var At={get:Et},kt= exports.pureProxy =t=>new Proxy(t,At);var _api = require('micro-stacks/api');function ht(t){let e=[];return t.forEach(n=>e.push(...n.transactions)),e}function $(t){return ht(t).filter(E)}function j(t){if(!E(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 U(t){if(!E(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 E(t){return!("contract-call"in t||"btc-transfer"in t||"emulated-contract-call"in t)}var me=["devnet","simnet","testnet","mainnet"];function xe(t,e){let n=[];return Object.entries(t.contracts).forEach(([r,a])=>{let i=t.deployments[r][e];return i&&n.push([r,K(a,i)]),!1}),Object.fromEntries(n)}function ge(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let a=`${e}.${r.contractName}`;return[n,K(r,a)]}))}function Nt(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let a=Object.assign((...i)=>{let s=g(r,i),[l,u]=e.split(".");return{functionArgs:s,contractAddress:l,contractName:u,function:r,functionName:r.name,nativeArgs:i}},{abi:r});return[n,a]}))}function K(t,e){let n=C({},t);return m(C(C({},Nt(t.functions,e)),n),{identifier:e})}function be(t,e){let n={};return $(e.plan.batches).forEach(a=>{let i=U(a),[s,l]=i.split("."),u=T(l),A=t[u],d=t[u];if(typeof d>"u")throw new Error(`Clarigen error: mismatch for contract '${u}'`);n[u]=d,d.contractFile=j(a),d.identifier=i,Object.keys(t[u].functions).forEach(c=>{let k=c,z=(...h)=>{let N=A.functions[k];return{functionArgs:g(N,h),contractAddress:s,contractName:d.contractName,function:N,nativeArgs:h}};d[k]=z})}),n}function J(t,e){let n=y(e,t.key);return{key:e,keyCV:n,map:t}}function L(t){if(t.latest!==!1)return t.latest||typeof t.tip>"u"?"latest":t.tip}async function q(t,e){let n=L(e),r=await _api.callReadOnlyFunction.call(void 0, {contractAddress:t.contractAddress,contractName:t.contractName,functionName:t.functionName,functionArgs:t.functionArgs,tip:n,network:e.network});return e.json?f(r):p(r,!0)}async function we(t,e){let n=await q(t,e);return M(n)}async function Pe(t,e){let n=await q(t,e);return D(n)}async function Fe(t,e,n,r){let a=J(e,n),i=JSON.stringify(_clarity.cvToHex.call(void 0, a.keyCV)),[s,l]=t.split("."),u=_api.generateUrl.call(void 0, `${_api.v2Endpoint.call(void 0, r.network.getCoreApiUrl())}/map_entry/${s}/${l}/${a.map.name}`,{proof:0,tip:L(r)}),d=await(await fetch(u,{method:"POST",body:i,headers:{"Content-Type":"application/json",Accept:"application/json"}})).json(),c=_clarity.hexToCV.call(void 0, d.data);return p(c,!0)}async function Re(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} - ${JSON.stringify(n.reason_data)}`);return{txId:n.txid,stacksTransaction:t}}exports.CoreNodeEventType = nt; exports.DEPLOYMENT_NETWORKS = me; exports.MAINNET_BURN_ADDRESS = tt; exports.TESTNET_BURN_ADDRESS = X; exports.bootContractIdentifier = $t; exports.broadcast = Re; exports.contractFactory = K; exports.contractsFactory = ge; exports.cvToJSON = f; exports.cvToString = x; exports.cvToValue = p; exports.deploymentFactory = be; exports.err = V; exports.expectErr = D; exports.expectOk = M; exports.fetchMapGet = Fe; exports.filterEvents = Ut; exports.findJsTupleKey = v; exports.functionsFactory = Nt; exports.getContractIdentifier = Mt; exports.getContractNameFromPath = et; exports.getContractPrincipalCV = Dt; exports.hexToCvValue = ee; exports.makeContracts = Jt; exports.mapFactory = J; exports.ok = B; exports.parseToCV = y; exports.principalToString = b; exports.projectFactory = xe; exports.pureProxy = kt; exports.ro = q; exports.roErr = Pe; exports.roOk = we; exports.toCamelCase = T; exports.toKebabCase = w; exports.transformArgsArray = vt; exports.transformArgsToCV = g; exports.transformObjectArgs = _;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var Z=Object.defineProperty,Y=Object.defineProperties;var Q=Object.getOwnPropertyDescriptors;var S=Object.getOwnPropertySymbols;var X=Object.prototype.hasOwnProperty,tt=Object.prototype.propertyIsEnumerable;var P=(t,e,n)=>e in t?Z(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,y=(t,e)=>{for(var n in e||(e={}))X.call(e,n)&&P(t,n,e[n]);if(S)for(var n of S(e))tt.call(e,n)&&P(t,n,e[n]);return t},m=(t,e)=>Y(t,Q(e));var _clarity = require('micro-stacks/clarity');var nt="ST000000000000000000002AMW42H",rt= exports.MAINNET_BURN_ADDRESS ="SP000000000000000000002Q6VF78",C= exports.toCamelCase =(t,e)=>{let n=typeof t=="string"?t:String(t),[r,...a]=n.replace("!","").replace("?","").split("-"),c=`${e?r[0].toUpperCase():r[0].toLowerCase()}${r.slice(1)}`;return a.forEach(u=>{c+=u[0].toUpperCase()+u.slice(1)}),c};function R(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}var ot=t=>{let e=t.split("/"),n=e[e.length-1],[r]=n.split(".");return r},Lt= exports.getContractIdentifier =t=>`${t.address}.${t.name}`,qt= exports.getContractPrincipalCV =t=>{let e=ot(t.contractFile);return _clarity.contractPrincipalCV.call(void 0, t.address,e)};function zt(t,e){return`${e?rt:nt}.${t}`}var at=(s=>(s.ContractEvent="contract_event",s.StxTransferEvent="stx_transfer_event",s.StxMintEvent="stx_mint_event",s.StxBurnEvent="stx_burn_event",s.StxLockEvent="stx_lock_event",s.NftTransferEvent="nft_transfer_event",s.NftMintEvent="nft_mint_event",s.NftBurnEvent="nft_burn_event",s.FtTransferEvent="ft_transfer_event",s.FtMintEvent="ft_mint_event",s.FtBurnEvent="ft_burn_event",s))(at||{});function Gt(t,e){return t.filter(n=>n.type===e)}function Zt(t,e={}){let n={};for(let r in t){let a=t[r],i=e.deployerAddress||a.address,c=`${i}.${a.name}`,u=a.contract(i,a.name);n[r]={identifier:c,contract:u}}return n}var _transactions = require('micro-stacks/transactions');var _common = require('micro-stacks/common');function $(t){return{isOk:!0,value:t}}function M(t){return{isOk:!1,value:t}}function E(t){if(t.type===_clarity.ClarityType.PrincipalStandard)return _clarity.addressToString.call(void 0, t.address);if(t.type===_clarity.ClarityType.PrincipalContract)return`${_clarity.addressToString.call(void 0, t.address)}.${t.contractName.content}`;throw new Error(`Unexpected principal data: ${JSON.stringify(t)}`)}function f(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 f(t.value);case _clarity.ClarityType.ResponseErr:return e?M(f(t.value)):f(t.value);case _clarity.ClarityType.ResponseOk:return e?$(f(t.value)):f(t.value);case _clarity.ClarityType.PrincipalStandard:case _clarity.ClarityType.PrincipalContract:return E(t);case _clarity.ClarityType.List:return t.list.map(r=>f(r));case _clarity.ClarityType.Tuple:return Object.entries(t.data).reduce((r,[a,i])=>{let c=C(a);return m(y({},r),{[c]:f(i)})},{});case _clarity.ClarityType.StringASCII:return t.data;case _clarity.ClarityType.StringUTF8:return t.data}}function ce(t,e=!1){return f(_clarity.hexToCV.call(void 0, t),e)}function _(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}function T(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 a=A(r.name,t),i=t[a];n[r.name]=T(i,r.type)}),_clarity.tupleCV.call(void 0, n)}else if(_transactions.isClarityAbiList.call(void 0, e)){let r=t.map(a=>T(a,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, T(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=_(t);return _clarity.uintCV.call(void 0, n.toString())}else if(e==="int128"){let n=_(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 x(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 ${x(t.value,e)})`;case _clarity.ClarityType.ResponseErr:return`(err ${x(t.value,e)})`;case _clarity.ClarityType.ResponseOk:return`(ok ${x(t.value,e)})`;case _clarity.ClarityType.PrincipalStandard:case _clarity.ClarityType.PrincipalContract:return`'${E(t)}`;case _clarity.ClarityType.List:return`(list ${t.list.map(n=>x(n,e)).join(" ")})`;case _clarity.ClarityType.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${x(t.data[n],e)})`).join(" ")})`;case _clarity.ClarityType.StringASCII:return`"${t.data}"`;case _clarity.ClarityType.StringUTF8:return`u"${t.data}"`}}function d(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 _common.bytesToHex.call(void 0, t.buffer);case _clarity.ClarityType.OptionalNone:return null;case _clarity.ClarityType.OptionalSome:return d(t.value);case _clarity.ClarityType.ResponseErr:return e?M(d(t.value)):d(t.value);case _clarity.ClarityType.ResponseOk:return e?$(d(t.value)):d(t.value);case _clarity.ClarityType.PrincipalStandard:case _clarity.ClarityType.PrincipalContract:return E(t);case _clarity.ClarityType.List:return t.list.map(r=>d(r));case _clarity.ClarityType.Tuple:return Object.entries(t.data).reduce((r,[a,i])=>{let c=C(a);return m(y({},r),{[c]:d(i)})},{});case _clarity.ClarityType.StringASCII:return t.data;case _clarity.ClarityType.StringUTF8:return t.data}}function V(t,e){return t.args.map(n=>{let r=A(n.name,e),a=e[r];return T(a,n.type)})}function Ot(t,e){return e.map((n,r)=>T(n,t.args[r].type))}function g(t,e){if(e.length===0)return[];let[n]=e;if(e.length===1&&t.args.length!==1)return V(t,n);if(typeof n=="object"&&!Array.isArray(n)&&n!==null)try{let r=!0;if(t.args.forEach(a=>{try{A(a.name,n)}catch (e2){r=!1}}),r)return V(t,n)}catch (e3){}return Ot(t,e)}function A(t,e){let n=Object.keys(e).find(r=>{let a=t===r,i=t===R(r);return a||i});if(!n)throw new Error(`Error encoding JS tuple: ${t} not found in input.`);return n}function D(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${String(t.value)}`)}function j(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${String(t.value)}`)}function ht(t,e){let n=t.abi.functions.find(a=>C(a.name)===e);if(n)return function(...a){return{functionArgs:g(n,a),contractAddress:t.contractAddress,contractName:t.contractName,function:n,functionName:n.name,nativeArgs:a}};let r=t.abi.maps.find(a=>C(a.name)===e);if(r)return a=>{let i=T(a,r.key);return{contractAddress:t.contractAddress,contractName:t.contractName,map:r,nativeKey:a,key:i}};throw new Error(`Invalid function call: no function exists for ${String(e)}`)}var kt={get:ht},Nt= exports.pureProxy =t=>new Proxy(t,kt);var _api = require('micro-stacks/api');function wt(t){let e=[];return t.forEach(n=>e.push(...n.transactions)),e}function U(t){return wt(t).filter(O)}function J(t){if(!O(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 K(t){if(!O(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 O(t){return!("contract-call"in t||"btc-transfer"in t||"emulated-contract-call"in t)}var Oe=["devnet","simnet","testnet","mainnet"];function he(t,e){let n=[];return Object.entries(t.contracts).forEach(([r,a])=>{let i=t.deployments[r][e];return i&&n.push([r,L(a,i)]),!1}),Object.fromEntries(n)}function ke(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let a=`${e}.${r.contractName}`;return[n,L(r,a)]}))}function St(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let a=Object.assign((...i)=>{let c=g(r,i),[u,p]=e.split(".");return{functionArgs:c,contractAddress:u,contractName:p,function:r,functionName:r.name,nativeArgs:i}},{abi:r});return[n,a]}))}function L(t,e){let n=y({},t);return m(y(y({},St(t.functions,e)),n),{identifier:e})}function Ne(t,e){let n={};return U(e.plan.batches).forEach(a=>{let i=K(a),[c,u]=i.split("."),p=C(u),b=t[p],l=t[p];if(typeof l>"u")throw new Error(`Clarigen error: mismatch for contract '${p}'`);n[p]=l,l.contractFile=J(a),l.identifier=i,Object.keys(t[p].functions).forEach(s=>{let v=s,W=(...N)=>{let w=b.functions[v];return{functionArgs:g(w,N),contractAddress:c,contractName:l.contractName,function:w,nativeArgs:N}};l[v]=W})}),n}function q(t,e){let n=T(e,t.key);return{key:e,keyCV:n,map:t}}async function z(t){let{contractName:e,contractAddress:n,functionName:r,functionArgs:a,senderAddress:i=n,tip:c,url:u}=t,p=`${u}/v2/contracts/call-read/${n}/${e}/${encodeURIComponent(r)}`;c&&(p+=`?tip=${c}`);let b=JSON.stringify({sender:i,arguments:a.map(s=>typeof s=="string"?s:_clarity.cvToHex.call(void 0, s))}),l=await _common.fetchPrivate.call(void 0, p,{method:"POST",body:b,headers:{"Content-Type":"application/json"}});if(!l.ok){let s="";try{s=await l.text()}catch (e4){}throw new Error(`Error calling read-only function. Response ${l.status}: ${l.statusText}. Attempted to fetch ${p} and failed with the message: "${s}"`)}return _api.parseReadOnlyResponse.call(void 0, await l.json())}function G(t){if(t.latest!==!1)return t.latest||typeof t.tip>"u"?"latest":t.tip}async function h(t,e){let n=G(e),r=await z({contractAddress:t.contractAddress,contractName:t.contractName,functionName:t.functionName,functionArgs:t.functionArgs,tip:n,url:k(e)});return e.json?d(r):f(r,!0)}async function Mt(t,e){let n=await h(t,e);return D(n)}async function Dt(t,e){let n=await h(t,e);return j(n)}function k(t){return"network"in t?t.network.getCoreApiUrl():t.url}async function qe(t,e,n,r){let a=q(e,n),i=JSON.stringify(_clarity.cvToHex.call(void 0, a.keyCV)),[c,u]=t.split("."),p=_api.generateUrl.call(void 0, `${_api.v2Endpoint.call(void 0, k(r))}/map_entry/${c}/${u}/${a.map.name}`,{proof:0,tip:G(r)}),l=await(await fetch(p,{method:"POST",body:i,headers:{"Content-Type":"application/json",Accept:"application/json"}})).json(),s=_clarity.hexToCV.call(void 0, l.data);return f(s,!0)}async function ze(t,e){let n=`${k(e)}/v2/transactions`,r=await _transactions.broadcastRawTransaction.call(void 0, t.serialize(),n);if("error"in r)throw new Error(`Error broadcasting tx: ${r.error} - ${r.reason} - ${JSON.stringify(r.reason_data)}`);return{txId:r.txid,stacksTransaction:t}}var H=class{constructor(e){typeof e=="string"?this.url=e:this.url=e.getCoreApiUrl()}roOptions(e){return y({url:this.url},e)}ro(e,n){return h(e,this.roOptions(n||{}))}roOk(e,n){return Mt(e,this.roOptions(n||{}))}roErr(e,n){return Dt(e,this.roOptions(n||{}))}};exports.ClarigenClient = H; exports.CoreNodeEventType = at; exports.DEPLOYMENT_NETWORKS = Oe; exports.MAINNET_BURN_ADDRESS = rt; exports.TESTNET_BURN_ADDRESS = nt; exports.bootContractIdentifier = zt; exports.broadcast = ze; exports.contractFactory = L; exports.contractsFactory = ke; exports.cvToJSON = d; exports.cvToString = x; exports.cvToValue = f; exports.deploymentFactory = Ne; exports.err = M; exports.expectErr = j; exports.expectOk = D; exports.fetchMapGet = qe; exports.filterEvents = Gt; exports.findJsTupleKey = A; exports.functionsFactory = St; exports.getApiUrl = k; exports.getContractIdentifier = Lt; exports.getContractNameFromPath = ot; exports.getContractPrincipalCV = qt; exports.hexToCvValue = ce; exports.makeContracts = Zt; exports.mapFactory = q; exports.ok = $; exports.parseToCV = T; exports.principalToString = E; exports.projectFactory = he; exports.pureProxy = Nt; exports.ro = h; exports.roErr = Dt; exports.roOk = Mt; exports.toCamelCase = C; exports.toKebabCase = R; exports.transformArgsArray = Ot; exports.transformArgsToCV = g; exports.transformObjectArgs = V;
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- var H=Object.defineProperty,G=Object.defineProperties;var W=Object.getOwnPropertyDescriptors;var O=Object.getOwnPropertySymbols;var Z=Object.prototype.hasOwnProperty,Y=Object.prototype.propertyIsEnumerable;var S=(t,e,n)=>e in t?H(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,C=(t,e)=>{for(var n in e||(e={}))Z.call(e,n)&&S(t,n,e[n]);if(O)for(var n of O(e))Y.call(e,n)&&S(t,n,e[n]);return t},m=(t,e)=>G(t,W(e));import{contractPrincipalCV as Q}from"micro-stacks/clarity";var X="ST000000000000000000002AMW42H",tt="SP000000000000000000002Q6VF78",T=(t,e)=>{let n=typeof t=="string"?t:String(t),[r,...a]=n.replace("!","").replace("?","").split("-"),s=`${e?r[0].toUpperCase():r[0].toLowerCase()}${r.slice(1)}`;return a.forEach(l=>{s+=l[0].toUpperCase()+l.slice(1)}),s};function w(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}var et=t=>{let e=t.split("/"),n=e[e.length-1],[r]=n.split(".");return r},Mt=t=>`${t.address}.${t.name}`,Dt=t=>{let e=et(t.contractFile);return Q(t.address,e)};function $t(t,e){return`${e?tt:X}.${t}`}var nt=(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))(nt||{});function Ut(t,e){return t.filter(n=>n.type===e)}function Jt(t,e={}){let n={};for(let r in t){let a=t[r],i=e.deployerAddress||a.address,s=`${i}.${a.name}`,l=a.contract(i,a.name);n[r]={identifier:s,contract:l}}return n}import{addressToString as P,ClarityType as o,uintCV as rt,contractPrincipalCV as ot,intCV as at,stringAsciiCV as it,stringUtf8CV as st,noneCV as ct,someCV as pt,tupleCV as lt,listCV as ut,hexToCV as ft,bufferCV as yt}from"micro-stacks/clarity";import{isClarityAbiList as dt,isClarityAbiOptional as Tt,isClarityAbiStringAscii as Ct,isClarityAbiStringUtf8 as mt,isClarityAbiTuple as xt,isClarityAbiBuffer as gt,parseToCV as F}from"micro-stacks/transactions";import{bytesToAscii as bt,bytesToHex as I}from"micro-stacks/common";function B(t){return{isOk:!0,value:t}}function V(t){return{isOk:!1,value:t}}function b(t){if(t.type===o.PrincipalStandard)return P(t.address);if(t.type===o.PrincipalContract)return`${P(t.address)}.${t.contractName.content}`;throw new Error(`Unexpected principal data: ${JSON.stringify(t)}`)}function p(t,e=!1){switch(t.type){case o.BoolTrue:return!0;case o.BoolFalse:return!1;case o.Int:case o.UInt:return t.value;case o.Buffer:return t.buffer;case o.OptionalNone:return null;case o.OptionalSome:return p(t.value);case o.ResponseErr:return e?V(p(t.value)):p(t.value);case o.ResponseOk:return e?B(p(t.value)):p(t.value);case o.PrincipalStandard:case o.PrincipalContract:return b(t);case o.List:return t.list.map(r=>p(r));case o.Tuple:return Object.entries(t.data).reduce((r,[a,i])=>{let s=T(a);return m(C({},r),{[s]:p(i)})},{});case o.StringASCII:return t.data;case o.StringUTF8:return t.data}}function ee(t,e=!1){return p(ft(t),e)}function R(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}function y(t,e){if(xt(e)){if(typeof t!="object")throw new Error("Invalid tuple input");let n={};return e.tuple.forEach(r=>{let a=v(r.name,t),i=t[a];n[r.name]=y(i,r.type)}),lt(n)}else if(dt(e)){let r=t.map(a=>y(a,e.list.type));return ut(r)}else{if(Tt(e))return t?pt(y(t,e.optional)):ct();if(Ct(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return it(t)}else if(mt(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 F(n,e)}else if(e==="uint128"){let n=R(t);return rt(n.toString())}else if(e==="int128"){let n=R(t);return at(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(gt(e))return yt(t)}return F(t,e)}function x(t,e="hex"){switch(t.type){case o.BoolTrue:return"true";case o.BoolFalse:return"false";case o.Int:return t.value.toString();case o.UInt:return`u${t.value.toString()}`;case o.Buffer:if(e==="tryAscii"){let n=bt(t.buffer);if(/[ -~]/.test(n))return JSON.stringify(n)}return`0x${I(t.buffer)}`;case o.OptionalNone:return"none";case o.OptionalSome:return`(some ${x(t.value,e)})`;case o.ResponseErr:return`(err ${x(t.value,e)})`;case o.ResponseOk:return`(ok ${x(t.value,e)})`;case o.PrincipalStandard:case o.PrincipalContract:return`'${b(t)}`;case o.List:return`(list ${t.list.map(n=>x(n,e)).join(" ")})`;case o.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${x(t.data[n],e)})`).join(" ")})`;case o.StringASCII:return`"${t.data}"`;case o.StringUTF8:return`u"${t.data}"`}}function f(t,e=!1){switch(t.type){case o.BoolTrue:return!0;case o.BoolFalse:return!1;case o.Int:case o.UInt:return`${t.value}`;case o.Buffer:return I(t.buffer);case o.OptionalNone:return null;case o.OptionalSome:return f(t.value);case o.ResponseErr:return e?V(f(t.value)):f(t.value);case o.ResponseOk:return e?B(f(t.value)):f(t.value);case o.PrincipalStandard:case o.PrincipalContract:return b(t);case o.List:return t.list.map(r=>f(r));case o.Tuple:return Object.entries(t.data).reduce((r,[a,i])=>{let s=T(a);return m(C({},r),{[s]:f(i)})},{});case o.StringASCII:return t.data;case o.StringUTF8:return t.data}}function _(t,e){return t.args.map(n=>{let r=v(n.name,e),a=e[r];return y(a,n.type)})}function vt(t,e){return e.map((n,r)=>y(n,t.args[r].type))}function g(t,e){if(e.length===0)return[];let[n]=e;if(e.length===1&&t.args.length!==1)return _(t,n);if(typeof n=="object"&&!Array.isArray(n)&&n!==null)try{let r=!0;if(t.args.forEach(a=>{try{v(a.name,n)}catch{r=!1}}),r)return _(t,n)}catch{}return vt(t,e)}function v(t,e){let n=Object.keys(e).find(r=>{let a=t===r,i=t===w(r);return a||i});if(!n)throw new Error(`Error encoding JS tuple: ${t} not found in input.`);return n}function M(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${String(t.value)}`)}function D(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${String(t.value)}`)}function Et(t,e){let n=t.abi.functions.find(a=>T(a.name)===e);if(n)return function(...a){return{functionArgs:g(n,a),contractAddress:t.contractAddress,contractName:t.contractName,function:n,functionName:n.name,nativeArgs:a}};let r=t.abi.maps.find(a=>T(a.name)===e);if(r)return a=>{let i=y(a,r.key);return{contractAddress:t.contractAddress,contractName:t.contractName,map:r,nativeKey:a,key:i}};throw new Error(`Invalid function call: no function exists for ${String(e)}`)}var At={get:Et},kt=t=>new Proxy(t,At);import{callReadOnlyFunction as Ot,v2Endpoint as St,generateUrl as wt}from"micro-stacks/api";import{cvToHex as Pt,hexToCV as Ft}from"micro-stacks/clarity";import{broadcastTransaction as Rt}from"micro-stacks/transactions";function ht(t){let e=[];return t.forEach(n=>e.push(...n.transactions)),e}function $(t){return ht(t).filter(E)}function j(t){if(!E(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 U(t){if(!E(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 E(t){return!("contract-call"in t||"btc-transfer"in t||"emulated-contract-call"in t)}var me=["devnet","simnet","testnet","mainnet"];function xe(t,e){let n=[];return Object.entries(t.contracts).forEach(([r,a])=>{let i=t.deployments[r][e];return i&&n.push([r,K(a,i)]),!1}),Object.fromEntries(n)}function ge(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let a=`${e}.${r.contractName}`;return[n,K(r,a)]}))}function Nt(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let a=Object.assign((...i)=>{let s=g(r,i),[l,u]=e.split(".");return{functionArgs:s,contractAddress:l,contractName:u,function:r,functionName:r.name,nativeArgs:i}},{abi:r});return[n,a]}))}function K(t,e){let n=C({},t);return m(C(C({},Nt(t.functions,e)),n),{identifier:e})}function be(t,e){let n={};return $(e.plan.batches).forEach(a=>{let i=U(a),[s,l]=i.split("."),u=T(l),A=t[u],d=t[u];if(typeof d>"u")throw new Error(`Clarigen error: mismatch for contract '${u}'`);n[u]=d,d.contractFile=j(a),d.identifier=i,Object.keys(t[u].functions).forEach(c=>{let k=c,z=(...h)=>{let N=A.functions[k];return{functionArgs:g(N,h),contractAddress:s,contractName:d.contractName,function:N,nativeArgs:h}};d[k]=z})}),n}function J(t,e){let n=y(e,t.key);return{key:e,keyCV:n,map:t}}function L(t){if(t.latest!==!1)return t.latest||typeof t.tip>"u"?"latest":t.tip}async function q(t,e){let n=L(e),r=await Ot({contractAddress:t.contractAddress,contractName:t.contractName,functionName:t.functionName,functionArgs:t.functionArgs,tip:n,network:e.network});return e.json?f(r):p(r,!0)}async function we(t,e){let n=await q(t,e);return M(n)}async function Pe(t,e){let n=await q(t,e);return D(n)}async function Fe(t,e,n,r){let a=J(e,n),i=JSON.stringify(Pt(a.keyCV)),[s,l]=t.split("."),u=wt(`${St(r.network.getCoreApiUrl())}/map_entry/${s}/${l}/${a.map.name}`,{proof:0,tip:L(r)}),d=await(await fetch(u,{method:"POST",body:i,headers:{"Content-Type":"application/json",Accept:"application/json"}})).json(),c=Ft(d.data);return p(c,!0)}async function Re(t,e){let n=await Rt(t,e.network);if("error"in n)throw new Error(`Error broadcasting tx: ${n.error} - ${n.reason} - ${JSON.stringify(n.reason_data)}`);return{txId:n.txid,stacksTransaction:t}}export{nt as CoreNodeEventType,me as DEPLOYMENT_NETWORKS,tt as MAINNET_BURN_ADDRESS,X as TESTNET_BURN_ADDRESS,$t as bootContractIdentifier,Re as broadcast,K as contractFactory,ge as contractsFactory,f as cvToJSON,x as cvToString,p as cvToValue,be as deploymentFactory,V as err,D as expectErr,M as expectOk,Fe as fetchMapGet,Ut as filterEvents,v as findJsTupleKey,Nt as functionsFactory,Mt as getContractIdentifier,et as getContractNameFromPath,Dt as getContractPrincipalCV,ee as hexToCvValue,Jt as makeContracts,J as mapFactory,B as ok,y as parseToCV,b as principalToString,xe as projectFactory,kt as pureProxy,q as ro,Pe as roErr,we as roOk,T as toCamelCase,w as toKebabCase,vt as transformArgsArray,g as transformArgsToCV,_ as transformObjectArgs};
1
+ var Z=Object.defineProperty,Y=Object.defineProperties;var Q=Object.getOwnPropertyDescriptors;var S=Object.getOwnPropertySymbols;var X=Object.prototype.hasOwnProperty,tt=Object.prototype.propertyIsEnumerable;var P=(t,e,n)=>e in t?Z(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,y=(t,e)=>{for(var n in e||(e={}))X.call(e,n)&&P(t,n,e[n]);if(S)for(var n of S(e))tt.call(e,n)&&P(t,n,e[n]);return t},m=(t,e)=>Y(t,Q(e));import{contractPrincipalCV as et}from"micro-stacks/clarity";var nt="ST000000000000000000002AMW42H",rt="SP000000000000000000002Q6VF78",C=(t,e)=>{let n=typeof t=="string"?t:String(t),[r,...a]=n.replace("!","").replace("?","").split("-"),c=`${e?r[0].toUpperCase():r[0].toLowerCase()}${r.slice(1)}`;return a.forEach(u=>{c+=u[0].toUpperCase()+u.slice(1)}),c};function R(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}var ot=t=>{let e=t.split("/"),n=e[e.length-1],[r]=n.split(".");return r},Lt=t=>`${t.address}.${t.name}`,qt=t=>{let e=ot(t.contractFile);return et(t.address,e)};function zt(t,e){return`${e?rt:nt}.${t}`}var at=(s=>(s.ContractEvent="contract_event",s.StxTransferEvent="stx_transfer_event",s.StxMintEvent="stx_mint_event",s.StxBurnEvent="stx_burn_event",s.StxLockEvent="stx_lock_event",s.NftTransferEvent="nft_transfer_event",s.NftMintEvent="nft_mint_event",s.NftBurnEvent="nft_burn_event",s.FtTransferEvent="ft_transfer_event",s.FtMintEvent="ft_mint_event",s.FtBurnEvent="ft_burn_event",s))(at||{});function Gt(t,e){return t.filter(n=>n.type===e)}function Zt(t,e={}){let n={};for(let r in t){let a=t[r],i=e.deployerAddress||a.address,c=`${i}.${a.name}`,u=a.contract(i,a.name);n[r]={identifier:c,contract:u}}return n}import{addressToString as F,ClarityType as o,uintCV as it,contractPrincipalCV as st,intCV as ct,stringAsciiCV as pt,stringUtf8CV as lt,noneCV as ut,someCV as ft,tupleCV as yt,listCV as dt,hexToCV as Tt,bufferCV as Ct}from"micro-stacks/clarity";import{isClarityAbiList as mt,isClarityAbiOptional as xt,isClarityAbiStringAscii as gt,isClarityAbiStringUtf8 as bt,isClarityAbiTuple as vt,isClarityAbiBuffer as Et,parseToCV as I}from"micro-stacks/transactions";import{bytesToAscii as At,bytesToHex as B}from"micro-stacks/common";function $(t){return{isOk:!0,value:t}}function M(t){return{isOk:!1,value:t}}function E(t){if(t.type===o.PrincipalStandard)return F(t.address);if(t.type===o.PrincipalContract)return`${F(t.address)}.${t.contractName.content}`;throw new Error(`Unexpected principal data: ${JSON.stringify(t)}`)}function f(t,e=!1){switch(t.type){case o.BoolTrue:return!0;case o.BoolFalse:return!1;case o.Int:case o.UInt:return t.value;case o.Buffer:return t.buffer;case o.OptionalNone:return null;case o.OptionalSome:return f(t.value);case o.ResponseErr:return e?M(f(t.value)):f(t.value);case o.ResponseOk:return e?$(f(t.value)):f(t.value);case o.PrincipalStandard:case o.PrincipalContract:return E(t);case o.List:return t.list.map(r=>f(r));case o.Tuple:return Object.entries(t.data).reduce((r,[a,i])=>{let c=C(a);return m(y({},r),{[c]:f(i)})},{});case o.StringASCII:return t.data;case o.StringUTF8:return t.data}}function ce(t,e=!1){return f(Tt(t),e)}function _(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}function T(t,e){if(vt(e)){if(typeof t!="object")throw new Error("Invalid tuple input");let n={};return e.tuple.forEach(r=>{let a=A(r.name,t),i=t[a];n[r.name]=T(i,r.type)}),yt(n)}else if(mt(e)){let r=t.map(a=>T(a,e.list.type));return dt(r)}else{if(xt(e))return t?ft(T(t,e.optional)):ut();if(gt(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return pt(t)}else if(bt(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return lt(t)}else if(e==="bool"){let n=typeof t=="boolean"?t.toString():t;return I(n,e)}else if(e==="uint128"){let n=_(t);return it(n.toString())}else if(e==="int128"){let n=_(t);return ct(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 st(n,r)}else if(Et(e))return Ct(t)}return I(t,e)}function x(t,e="hex"){switch(t.type){case o.BoolTrue:return"true";case o.BoolFalse:return"false";case o.Int:return t.value.toString();case o.UInt:return`u${t.value.toString()}`;case o.Buffer:if(e==="tryAscii"){let n=At(t.buffer);if(/[ -~]/.test(n))return JSON.stringify(n)}return`0x${B(t.buffer)}`;case o.OptionalNone:return"none";case o.OptionalSome:return`(some ${x(t.value,e)})`;case o.ResponseErr:return`(err ${x(t.value,e)})`;case o.ResponseOk:return`(ok ${x(t.value,e)})`;case o.PrincipalStandard:case o.PrincipalContract:return`'${E(t)}`;case o.List:return`(list ${t.list.map(n=>x(n,e)).join(" ")})`;case o.Tuple:return`(tuple ${Object.keys(t.data).map(n=>`(${n} ${x(t.data[n],e)})`).join(" ")})`;case o.StringASCII:return`"${t.data}"`;case o.StringUTF8:return`u"${t.data}"`}}function d(t,e=!1){switch(t.type){case o.BoolTrue:return!0;case o.BoolFalse:return!1;case o.Int:case o.UInt:return`${t.value}`;case o.Buffer:return B(t.buffer);case o.OptionalNone:return null;case o.OptionalSome:return d(t.value);case o.ResponseErr:return e?M(d(t.value)):d(t.value);case o.ResponseOk:return e?$(d(t.value)):d(t.value);case o.PrincipalStandard:case o.PrincipalContract:return E(t);case o.List:return t.list.map(r=>d(r));case o.Tuple:return Object.entries(t.data).reduce((r,[a,i])=>{let c=C(a);return m(y({},r),{[c]:d(i)})},{});case o.StringASCII:return t.data;case o.StringUTF8:return t.data}}function V(t,e){return t.args.map(n=>{let r=A(n.name,e),a=e[r];return T(a,n.type)})}function Ot(t,e){return e.map((n,r)=>T(n,t.args[r].type))}function g(t,e){if(e.length===0)return[];let[n]=e;if(e.length===1&&t.args.length!==1)return V(t,n);if(typeof n=="object"&&!Array.isArray(n)&&n!==null)try{let r=!0;if(t.args.forEach(a=>{try{A(a.name,n)}catch{r=!1}}),r)return V(t,n)}catch{}return Ot(t,e)}function A(t,e){let n=Object.keys(e).find(r=>{let a=t===r,i=t===R(r);return a||i});if(!n)throw new Error(`Error encoding JS tuple: ${t} not found in input.`);return n}function D(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${String(t.value)}`)}function j(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${String(t.value)}`)}function ht(t,e){let n=t.abi.functions.find(a=>C(a.name)===e);if(n)return function(...a){return{functionArgs:g(n,a),contractAddress:t.contractAddress,contractName:t.contractName,function:n,functionName:n.name,nativeArgs:a}};let r=t.abi.maps.find(a=>C(a.name)===e);if(r)return a=>{let i=T(a,r.key);return{contractAddress:t.contractAddress,contractName:t.contractName,map:r,nativeKey:a,key:i}};throw new Error(`Invalid function call: no function exists for ${String(e)}`)}var kt={get:ht},Nt=t=>new Proxy(t,kt);import{v2Endpoint as It,generateUrl as _t}from"micro-stacks/api";import{cvToHex as Vt,hexToCV as Bt}from"micro-stacks/clarity";import{broadcastRawTransaction as $t}from"micro-stacks/transactions";function wt(t){let e=[];return t.forEach(n=>e.push(...n.transactions)),e}function U(t){return wt(t).filter(O)}function J(t){if(!O(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 K(t){if(!O(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 O(t){return!("contract-call"in t||"btc-transfer"in t||"emulated-contract-call"in t)}var Oe=["devnet","simnet","testnet","mainnet"];function he(t,e){let n=[];return Object.entries(t.contracts).forEach(([r,a])=>{let i=t.deployments[r][e];return i&&n.push([r,L(a,i)]),!1}),Object.fromEntries(n)}function ke(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let a=`${e}.${r.contractName}`;return[n,L(r,a)]}))}function St(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let a=Object.assign((...i)=>{let c=g(r,i),[u,p]=e.split(".");return{functionArgs:c,contractAddress:u,contractName:p,function:r,functionName:r.name,nativeArgs:i}},{abi:r});return[n,a]}))}function L(t,e){let n=y({},t);return m(y(y({},St(t.functions,e)),n),{identifier:e})}function Ne(t,e){let n={};return U(e.plan.batches).forEach(a=>{let i=K(a),[c,u]=i.split("."),p=C(u),b=t[p],l=t[p];if(typeof l>"u")throw new Error(`Clarigen error: mismatch for contract '${p}'`);n[p]=l,l.contractFile=J(a),l.identifier=i,Object.keys(t[p].functions).forEach(s=>{let v=s,W=(...N)=>{let w=b.functions[v];return{functionArgs:g(w,N),contractAddress:c,contractName:l.contractName,function:w,nativeArgs:N}};l[v]=W})}),n}function q(t,e){let n=T(e,t.key);return{key:e,keyCV:n,map:t}}import{parseReadOnlyResponse as Pt}from"micro-stacks/api";import{cvToHex as Rt}from"micro-stacks/clarity";import{fetchPrivate as Ft}from"micro-stacks/common";async function z(t){let{contractName:e,contractAddress:n,functionName:r,functionArgs:a,senderAddress:i=n,tip:c,url:u}=t,p=`${u}/v2/contracts/call-read/${n}/${e}/${encodeURIComponent(r)}`;c&&(p+=`?tip=${c}`);let b=JSON.stringify({sender:i,arguments:a.map(s=>typeof s=="string"?s:Rt(s))}),l=await Ft(p,{method:"POST",body:b,headers:{"Content-Type":"application/json"}});if(!l.ok){let s="";try{s=await l.text()}catch{}throw new Error(`Error calling read-only function. Response ${l.status}: ${l.statusText}. Attempted to fetch ${p} and failed with the message: "${s}"`)}return Pt(await l.json())}function G(t){if(t.latest!==!1)return t.latest||typeof t.tip>"u"?"latest":t.tip}async function h(t,e){let n=G(e),r=await z({contractAddress:t.contractAddress,contractName:t.contractName,functionName:t.functionName,functionArgs:t.functionArgs,tip:n,url:k(e)});return e.json?d(r):f(r,!0)}async function Mt(t,e){let n=await h(t,e);return D(n)}async function Dt(t,e){let n=await h(t,e);return j(n)}function k(t){return"network"in t?t.network.getCoreApiUrl():t.url}async function qe(t,e,n,r){let a=q(e,n),i=JSON.stringify(Vt(a.keyCV)),[c,u]=t.split("."),p=_t(`${It(k(r))}/map_entry/${c}/${u}/${a.map.name}`,{proof:0,tip:G(r)}),l=await(await fetch(p,{method:"POST",body:i,headers:{"Content-Type":"application/json",Accept:"application/json"}})).json(),s=Bt(l.data);return f(s,!0)}async function ze(t,e){let n=`${k(e)}/v2/transactions`,r=await $t(t.serialize(),n);if("error"in r)throw new Error(`Error broadcasting tx: ${r.error} - ${r.reason} - ${JSON.stringify(r.reason_data)}`);return{txId:r.txid,stacksTransaction:t}}var H=class{constructor(e){typeof e=="string"?this.url=e:this.url=e.getCoreApiUrl()}roOptions(e){return y({url:this.url},e)}ro(e,n){return h(e,this.roOptions(n||{}))}roOk(e,n){return Mt(e,this.roOptions(n||{}))}roErr(e,n){return Dt(e,this.roOptions(n||{}))}};export{H as ClarigenClient,at as CoreNodeEventType,Oe as DEPLOYMENT_NETWORKS,rt as MAINNET_BURN_ADDRESS,nt as TESTNET_BURN_ADDRESS,zt as bootContractIdentifier,ze as broadcast,L as contractFactory,ke as contractsFactory,d as cvToJSON,x as cvToString,f as cvToValue,Ne as deploymentFactory,M as err,j as expectErr,D as expectOk,qe as fetchMapGet,Gt as filterEvents,A as findJsTupleKey,St as functionsFactory,k as getApiUrl,Lt as getContractIdentifier,ot as getContractNameFromPath,qt as getContractPrincipalCV,ce as hexToCvValue,Zt as makeContracts,q as mapFactory,$ as ok,T as parseToCV,E as principalToString,he as projectFactory,Nt as pureProxy,h as ro,Dt as roErr,Mt as roOk,C as toCamelCase,R as toKebabCase,Ot as transformArgsArray,g as transformArgsToCV,V as transformObjectArgs};
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.10",
2
+ "version": "1.0.12",
3
3
  "license": "MIT",
4
4
  "types": "./dist/index.d.ts",
5
5
  "main": "./dist/index.js",