@clarigen/core 1.0.7 → 1.0.9

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
@@ -173,7 +173,7 @@ type Compact$1<T> = {
173
173
  type AbiTupleTo<T extends ReadonlyTuple> = Compact$1<UnionToIntersection$1<TupleTypeUnion<T['tuple'][number]>>>;
174
174
  type AbiTypeTo<T extends ClarityAbiType$1 | ReadonlyTuple> = T extends ClarityAbiTypePrimitive ? AbiPrimitiveTo<T> : T extends ClarityAbiTypeBuffer ? Uint8Array : T extends ClarityAbiTypeStringAscii ? string : T extends ClarityAbiTypeStringUtf8 ? string : T extends ClarityAbiTypeList ? AbiTypeTo<T['list']['type']>[] : T extends ClarityAbiTypeOptional ? AbiTypeTo<T['optional']> | null : T extends ClarityAbiTypeResponse ? Response<AbiTypeTo<T['response']['ok']>, AbiTypeTo<T['response']['error']>> : T extends ReadonlyTuple ? AbiTupleTo<T> : T;
175
175
  type FunctionReturnType<T> = T extends TypedAbiFunction<TypedAbiArg<unknown, string>[], infer R> ? R : never;
176
- type Jsonize<T> = T extends BigInt ? string : T extends Uint8Array ? string : T extends Array<infer V> ? Jsonize<V>[] : T extends Record<keyof T, unknown> ? {
176
+ type Jsonize<T> = T extends BigInt ? string : T extends Uint8Array ? string : T extends (infer V)[] ? Jsonize<V>[] : T extends Record<keyof T, unknown> ? {
177
177
  [K in keyof T as K]: Jsonize<T[K]>;
178
178
  } : T;
179
179
 
@@ -457,7 +457,7 @@ type JsonIfOption<O extends ApiOptions, R> = O extends ApiOptionsJsonize ? Jsoni
457
457
  declare function ro<O extends ApiOptions, T>(tx: ContractCall<T>, options: O): Promise<JsonIfOption<O, T>>;
458
458
  declare function roOk<O extends ApiOptions, Ok>(tx: ContractCall<Response<Ok, any>>, options: O): Promise<JsonIfOption<O, Ok>>;
459
459
  declare function roErr<O extends ApiOptions, Err>(tx: ContractCall<Response<any, Err>>, options: O): Promise<JsonIfOption<O, Err>>;
460
- declare function fetchMapGet<T extends ContractCalls.Map<any, Val>, Val>(map: T, options: ApiOptions): Promise<Val | null>;
460
+ declare function fetchMapGet<Key, Val>(contractId: string, map: TypedAbiMap<Key, Val>, key: Key, options: ApiOptions): Promise<Val | null>;
461
461
  declare function broadcast(transaction: StacksTransaction, options: ApiOptions): Promise<{
462
462
  txId: string;
463
463
  stacksTransaction: StacksTransaction;
@@ -572,5 +572,12 @@ declare function contractsFactory<T extends AllContracts>(contracts: T, deployer
572
572
  declare function functionsFactory<T extends ContractFunctions>(functions: T, identifier: string): FunctionsToContractCalls<T>;
573
573
  declare function contractFactory<T extends TypedAbi, Id extends string>(abi: T, identifier: Id): FullContractWithIdentifier<T, Id>;
574
574
  declare function deploymentFactory<T extends AllContracts>(contracts: T, deployer: DeploymentPlan): ContractFactory<T>;
575
+ type MapFactory<M extends TypedAbiMap<K, V>, K, V> = {
576
+ key: K;
577
+ _v?: V;
578
+ keyCV: ClarityValue;
579
+ map: M;
580
+ };
581
+ declare function mapFactory<Key, Val>(map: TypedAbiMap<Key, Val>, key: Key): MapFactory<TypedAbiMap<Key, Val>, Key, Val>;
575
582
 
576
- export { AbiPrimitiveTo, AbiTupleTo, AbiTypeTo, AllContracts, ApiOptions, ApiOptionsBase, ApiOptionsJsonize, ApiOptionsNoJson, ArgsRecord, ArgsTuple, ArgsType, 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, NftBurnEvent, NftMintEvent, NftTransferEvent, NonStandardClarityValue, OkType, Project, ProjectFactory, Response, ResponseErr, ResponseOk, ResultAssets, SimnetDeploymentPlan, SmartContractEvent, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TESTNET_BURN_ADDRESS, 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, ok, parseToCV, principalToString, projectFactory, pureProxy, ro, roErr, roOk, toCamelCase, toKebabCase, transformArgsArray, transformArgsToCV, transformObjectArgs };
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 };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var q=Object.defineProperty,z=Object.defineProperties;var H=Object.getOwnPropertyDescriptors;var h=Object.getOwnPropertySymbols;var G=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable;var O=(t,e,n)=>e in t?q(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,y=(t,e)=>{for(var n in e||(e={}))G.call(e,n)&&O(t,n,e[n]);if(h)for(var n of h(e))W.call(e,n)&&O(t,n,e[n]);return t},m=(t,e)=>z(t,H(e));var _clarity = require('micro-stacks/clarity');var Y="ST000000000000000000002AMW42H",Q= exports.MAINNET_BURN_ADDRESS ="SP000000000000000000002Q6VF78",d= 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(u=>{s+=u[0].toUpperCase()+u.slice(1)}),s};function S(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 X=t=>{let e=t.split("/"),n=e[e.length-1],[r]=n.split(".");return r},It= exports.getContractIdentifier =t=>`${t.address}.${t.name}`,Vt= exports.getContractPrincipalCV =t=>{let e=X(t.contractFile);return _clarity.contractPrincipalCV.call(void 0, t.address,e)};function Dt(t,e){return`${e?Q:Y}.${t}`}var tt=(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))(tt||{});function Mt(t,e){return t.filter(n=>n.type===e)}function Ut(t,e={}){let n={};for(let r in t){let a=t[r],i=e.deployerAddress||a.address,s=`${i}.${a.name}`,u=a.contract(i,a.name);n[r]={identifier:s,contract:u}}return n}var _transactions = require('micro-stacks/transactions');var _common = require('micro-stacks/common');function B(t){return{isOk:!0,value:t}}function I(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?I(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=d(a);return m(y({},r),{[s]:p(i)})},{});case _clarity.ClarityType.StringASCII:return t.data;case _clarity.ClarityType.StringUTF8:return t.data}}function Xt(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 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=E(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=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 l(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 l(t.value);case _clarity.ClarityType.ResponseErr:return e?I(l(t.value)):l(t.value);case _clarity.ClarityType.ResponseOk:return e?B(l(t.value)):l(t.value);case _clarity.ClarityType.PrincipalStandard:case _clarity.ClarityType.PrincipalContract:return b(t);case _clarity.ClarityType.List:return t.list.map(r=>l(r));case _clarity.ClarityType.Tuple:return Object.entries(t.data).reduce((r,[a,i])=>{let s=d(a);return m(y({},r),{[s]:l(i)})},{});case _clarity.ClarityType.StringASCII:return t.data;case _clarity.ClarityType.StringUTF8:return t.data}}function F(t,e){return t.args.map(n=>{let r=E(n.name,e),a=e[r];return T(a,n.type)})}function gt(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 F(t,n);if(typeof n=="object"&&!Array.isArray(n)&&n!==null)try{let r=!0;if(t.args.forEach(a=>{try{E(a.name,n)}catch (e2){r=!1}}),r)return F(t,n)}catch (e3){}return gt(t,e)}function E(t,e){let n=Object.keys(e).find(r=>{let a=t===r,i=t===S(r);return a||i});if(!n)throw new Error(`Error encoding JS tuple: ${t} not found in input.`);return n}function V(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 bt(t,e){let n=t.abi.functions.find(a=>d(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=>d(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 Et={get:bt},vt= exports.pureProxy =t=>new Proxy(t,Et);var _api = require('micro-stacks/api');function St(t){if(t.latest!==!1)return t.latest||typeof t.tip>"u"?"latest":t.tip}async function $(t,e){let n=St(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?l(r):p(r,!0)}async function ue(t,e){let n=await $(t,e);return V(n)}async function fe(t,e){let n=await $(t,e);return D(n)}async function de(t,e){let n=_clarity.cvToHex.call(void 0, t.key),r=await _api.fetchContractDataMapEntry.call(void 0, {contract_address:t.contractAddress,contract_name:t.contractName,map_name:t.map.name,lookup_key:n,tip:"latest",url:e.network.getCoreApiUrl(),proof:0}),a=_clarity.hexToCV.call(void 0, r.data);return p(a,!0)}async function ye(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}}function wt(t){let e=[];return t.forEach(n=>e.push(...n.transactions)),e}function M(t){return wt(t).filter(v)}function j(t){if(!v(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(!v(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 v(t){return!("contract-call"in t||"btc-transfer"in t||"emulated-contract-call"in t)}var Ne=["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,J(a,i)]),!1}),Object.fromEntries(n)}function Oe(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let a=`${e}.${r.contractName}`;return[n,J(r,a)]}))}function Pt(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let a=Object.assign((...i)=>{let s=g(r,i),[u,f]=e.split(".");return{functionArgs:s,contractAddress:u,contractName:f,function:r,functionName:r.name,nativeArgs:i}},{abi:r});return[n,a]}))}function J(t,e){let n=y({},t);return m(y(y({},Pt(t.functions,e)),n),{identifier:e})}function Se(t,e){let n={};return M(e.plan.batches).forEach(a=>{let i=U(a),[s,u]=i.split("."),f=d(u),K=t[f],C=t[f];if(typeof C>"u")throw new Error(`Clarigen error: mismatch for contract '${f}'`);n[f]=C,C.contractFile=j(a),C.identifier=i,Object.keys(t[f].functions).forEach(c=>{let A=c,L=(...k)=>{let N=K.functions[A];return{functionArgs:g(N,k),contractAddress:s,contractName:C.contractName,function:N,nativeArgs:k}};C[A]=L})}),n}exports.CoreNodeEventType = tt; exports.DEPLOYMENT_NETWORKS = Ne; exports.MAINNET_BURN_ADDRESS = Q; exports.TESTNET_BURN_ADDRESS = Y; exports.bootContractIdentifier = Dt; exports.broadcast = ye; exports.contractFactory = J; exports.contractsFactory = Oe; exports.cvToJSON = l; exports.cvToString = x; exports.cvToValue = p; exports.deploymentFactory = Se; exports.err = I; exports.expectErr = D; exports.expectOk = V; exports.fetchMapGet = de; exports.filterEvents = Mt; exports.findJsTupleKey = E; exports.functionsFactory = Pt; exports.getContractIdentifier = It; exports.getContractNameFromPath = X; exports.getContractPrincipalCV = Vt; exports.hexToCvValue = Xt; exports.makeContracts = Ut; exports.ok = B; exports.parseToCV = T; exports.principalToString = b; exports.projectFactory = he; exports.pureProxy = vt; exports.ro = $; exports.roErr = fe; exports.roOk = ue; exports.toCamelCase = d; exports.toKebabCase = S; exports.transformArgsArray = gt; exports.transformArgsToCV = g; exports.transformObjectArgs = F;
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var z=Object.defineProperty,H=Object.defineProperties;var G=Object.getOwnPropertyDescriptors;var O=Object.getOwnPropertySymbols;var W=Object.prototype.hasOwnProperty,Z=Object.prototype.propertyIsEnumerable;var S=(t,e,n)=>e in t?z(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,T=(t,e)=>{for(var n in e||(e={}))W.call(e,n)&&S(t,n,e[n]);if(O)for(var n of O(e))Z.call(e,n)&&S(t,n,e[n]);return t},m=(t,e)=>H(t,G(e));var _clarity = require('micro-stacks/clarity');var Q="ST000000000000000000002AMW42H",X= exports.MAINNET_BURN_ADDRESS ="SP000000000000000000002Q6VF78",d= 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 tt=t=>{let e=t.split("/"),n=e[e.length-1],[r]=n.split(".");return r},Vt= exports.getContractIdentifier =t=>`${t.address}.${t.name}`,Mt= exports.getContractPrincipalCV =t=>{let e=tt(t.contractFile);return _clarity.contractPrincipalCV.call(void 0, t.address,e)};function Dt(t,e){return`${e?X:Q}.${t}`}var et=(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))(et||{});function jt(t,e){return t.filter(n=>n.type===e)}function Kt(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 v(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 v(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=d(a);return m(T({},r),{[s]:p(i)})},{});case _clarity.ClarityType.StringASCII:return t.data;case _clarity.ClarityType.StringUTF8:return t.data}}function te(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=E(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`'${v(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 v(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=d(a);return m(T({},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=E(n.name,e),a=e[r];return y(a,n.type)})}function bt(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{E(a.name,n)}catch (e2){r=!1}}),r)return _(t,n)}catch (e3){}return bt(t,e)}function E(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 vt(t,e){let n=t.abi.functions.find(a=>d(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=>d(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 Et={get:vt},At= exports.pureProxy =t=>new Proxy(t,Et);var _api = require('micro-stacks/api');function kt(t){let e=[];return t.forEach(n=>e.push(...n.transactions)),e}function $(t){return kt(t).filter(A)}function j(t){if(!A(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(!A(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 A(t){return!("contract-call"in t||"btc-transfer"in t||"emulated-contract-call"in t)}var Ce=["devnet","simnet","testnet","mainnet"];function me(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 xe(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=T({},t);return m(T(T({},Nt(t.functions,e)),n),{identifier:e})}function ge(t,e){let n={};return $(e.plan.batches).forEach(a=>{let i=U(a),[s,l]=i.split("."),u=d(l),b=t[u],C=t[u];if(typeof C>"u")throw new Error(`Clarigen error: mismatch for contract '${u}'`);n[u]=C,C.contractFile=j(a),C.identifier=i,Object.keys(t[u].functions).forEach(c=>{let k=c,q=(...N)=>{let h=b.functions[k];return{functionArgs:g(h,N),contractAddress:s,contractName:C.contractName,function:h,nativeArgs:N}};C[k]=q})}),n}function J(t,e){let n=y(e,t.key);return{key:e,keyCV:n,map:t}}function Ft(t){if(t.latest!==!1)return t.latest||typeof t.tip>"u"?"latest":t.tip}async function L(t,e){let n=Ft(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 Se(t,e){let n=await L(t,e);return M(n)}async function we(t,e){let n=await L(t,e);return D(n)}async function Pe(t,e,n,r){let a=J(e,n),i=JSON.stringify(_clarity.cvToHex.call(void 0, a.keyCV)),[s,l]=t.split("."),u=await _api.fetchContractDataMapEntry.call(void 0, {contract_address:s,contract_name:l,map_name:a.map.name,lookup_key:i,tip:"latest",url:r.network.getCoreApiUrl(),proof:0}),b=_clarity.hexToCV.call(void 0, u.data);return p(b,!0)}async function Fe(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 = et; exports.DEPLOYMENT_NETWORKS = Ce; exports.MAINNET_BURN_ADDRESS = X; exports.TESTNET_BURN_ADDRESS = Q; exports.bootContractIdentifier = Dt; exports.broadcast = Fe; exports.contractFactory = K; exports.contractsFactory = xe; exports.cvToJSON = f; exports.cvToString = x; exports.cvToValue = p; exports.deploymentFactory = ge; exports.err = V; exports.expectErr = D; exports.expectOk = M; exports.fetchMapGet = Pe; exports.filterEvents = jt; exports.findJsTupleKey = E; exports.functionsFactory = Nt; exports.getContractIdentifier = Vt; exports.getContractNameFromPath = tt; exports.getContractPrincipalCV = Mt; exports.hexToCvValue = te; exports.makeContracts = Kt; exports.mapFactory = J; exports.ok = B; exports.parseToCV = y; exports.principalToString = v; exports.projectFactory = me; exports.pureProxy = At; exports.ro = L; exports.roErr = we; exports.roOk = Se; exports.toCamelCase = d; exports.toKebabCase = w; exports.transformArgsArray = bt; exports.transformArgsToCV = g; exports.transformObjectArgs = _;
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- var q=Object.defineProperty,z=Object.defineProperties;var H=Object.getOwnPropertyDescriptors;var h=Object.getOwnPropertySymbols;var G=Object.prototype.hasOwnProperty,W=Object.prototype.propertyIsEnumerable;var O=(t,e,n)=>e in t?q(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,y=(t,e)=>{for(var n in e||(e={}))G.call(e,n)&&O(t,n,e[n]);if(h)for(var n of h(e))W.call(e,n)&&O(t,n,e[n]);return t},m=(t,e)=>z(t,H(e));import{contractPrincipalCV as Z}from"micro-stacks/clarity";var Y="ST000000000000000000002AMW42H",Q="SP000000000000000000002Q6VF78",d=(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(u=>{s+=u[0].toUpperCase()+u.slice(1)}),s};function S(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 X=t=>{let e=t.split("/"),n=e[e.length-1],[r]=n.split(".");return r},It=t=>`${t.address}.${t.name}`,Vt=t=>{let e=X(t.contractFile);return Z(t.address,e)};function Dt(t,e){return`${e?Q:Y}.${t}`}var tt=(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))(tt||{});function Mt(t,e){return t.filter(n=>n.type===e)}function Ut(t,e={}){let n={};for(let r in t){let a=t[r],i=e.deployerAddress||a.address,s=`${i}.${a.name}`,u=a.contract(i,a.name);n[r]={identifier:s,contract:u}}return n}import{addressToString as w,ClarityType as o,uintCV as et,contractPrincipalCV as nt,intCV as rt,stringAsciiCV as ot,stringUtf8CV as at,noneCV as it,someCV as st,tupleCV as ct,listCV as pt,hexToCV as lt,bufferCV as ut}from"micro-stacks/clarity";import{isClarityAbiList as ft,isClarityAbiOptional as dt,isClarityAbiStringAscii as yt,isClarityAbiStringUtf8 as Tt,isClarityAbiTuple as Ct,isClarityAbiBuffer as mt,parseToCV as P}from"micro-stacks/transactions";import{bytesToAscii as xt,bytesToHex as _}from"micro-stacks/common";function B(t){return{isOk:!0,value:t}}function I(t){return{isOk:!1,value:t}}function b(t){if(t.type===o.PrincipalStandard)return w(t.address);if(t.type===o.PrincipalContract)return`${w(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?I(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=d(a);return m(y({},r),{[s]:p(i)})},{});case o.StringASCII:return t.data;case o.StringUTF8:return t.data}}function Xt(t,e=!1){return p(lt(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 T(t,e){if(Ct(e)){if(typeof t!="object")throw new Error("Invalid tuple input");let n={};return e.tuple.forEach(r=>{let a=E(r.name,t),i=t[a];n[r.name]=T(i,r.type)}),ct(n)}else if(ft(e)){let r=t.map(a=>T(a,e.list.type));return pt(r)}else{if(dt(e))return t?st(T(t,e.optional)):it();if(yt(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return ot(t)}else if(Tt(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return at(t)}else if(e==="bool"){let n=typeof t=="boolean"?t.toString():t;return P(n,e)}else if(e==="uint128"){let n=R(t);return et(n.toString())}else if(e==="int128"){let n=R(t);return rt(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 nt(n,r)}else if(mt(e))return ut(t)}return P(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=xt(t.buffer);if(/[ -~]/.test(n))return JSON.stringify(n)}return`0x${_(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 l(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 l(t.value);case o.ResponseErr:return e?I(l(t.value)):l(t.value);case o.ResponseOk:return e?B(l(t.value)):l(t.value);case o.PrincipalStandard:case o.PrincipalContract:return b(t);case o.List:return t.list.map(r=>l(r));case o.Tuple:return Object.entries(t.data).reduce((r,[a,i])=>{let s=d(a);return m(y({},r),{[s]:l(i)})},{});case o.StringASCII:return t.data;case o.StringUTF8:return t.data}}function F(t,e){return t.args.map(n=>{let r=E(n.name,e),a=e[r];return T(a,n.type)})}function gt(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 F(t,n);if(typeof n=="object"&&!Array.isArray(n)&&n!==null)try{let r=!0;if(t.args.forEach(a=>{try{E(a.name,n)}catch{r=!1}}),r)return F(t,n)}catch{}return gt(t,e)}function E(t,e){let n=Object.keys(e).find(r=>{let a=t===r,i=t===S(r);return a||i});if(!n)throw new Error(`Error encoding JS tuple: ${t} not found in input.`);return n}function V(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 bt(t,e){let n=t.abi.functions.find(a=>d(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=>d(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 Et={get:bt},vt=t=>new Proxy(t,Et);import{fetchContractDataMapEntry as At,callReadOnlyFunction as kt}from"micro-stacks/api";import{cvToHex as Nt,hexToCV as ht}from"micro-stacks/clarity";import{broadcastTransaction as Ot}from"micro-stacks/transactions";function St(t){if(t.latest!==!1)return t.latest||typeof t.tip>"u"?"latest":t.tip}async function $(t,e){let n=St(e),r=await kt({contractAddress:t.contractAddress,contractName:t.contractName,functionName:t.functionName,functionArgs:t.functionArgs,tip:n,network:e.network});return e.json?l(r):p(r,!0)}async function ue(t,e){let n=await $(t,e);return V(n)}async function fe(t,e){let n=await $(t,e);return D(n)}async function de(t,e){let n=Nt(t.key),r=await At({contract_address:t.contractAddress,contract_name:t.contractName,map_name:t.map.name,lookup_key:n,tip:"latest",url:e.network.getCoreApiUrl(),proof:0}),a=ht(r.data);return p(a,!0)}async function ye(t,e){let n=await Ot(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}}function wt(t){let e=[];return t.forEach(n=>e.push(...n.transactions)),e}function M(t){return wt(t).filter(v)}function j(t){if(!v(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(!v(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 v(t){return!("contract-call"in t||"btc-transfer"in t||"emulated-contract-call"in t)}var Ne=["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,J(a,i)]),!1}),Object.fromEntries(n)}function Oe(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let a=`${e}.${r.contractName}`;return[n,J(r,a)]}))}function Pt(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let a=Object.assign((...i)=>{let s=g(r,i),[u,f]=e.split(".");return{functionArgs:s,contractAddress:u,contractName:f,function:r,functionName:r.name,nativeArgs:i}},{abi:r});return[n,a]}))}function J(t,e){let n=y({},t);return m(y(y({},Pt(t.functions,e)),n),{identifier:e})}function Se(t,e){let n={};return M(e.plan.batches).forEach(a=>{let i=U(a),[s,u]=i.split("."),f=d(u),K=t[f],C=t[f];if(typeof C>"u")throw new Error(`Clarigen error: mismatch for contract '${f}'`);n[f]=C,C.contractFile=j(a),C.identifier=i,Object.keys(t[f].functions).forEach(c=>{let A=c,L=(...k)=>{let N=K.functions[A];return{functionArgs:g(N,k),contractAddress:s,contractName:C.contractName,function:N,nativeArgs:k}};C[A]=L})}),n}export{tt as CoreNodeEventType,Ne as DEPLOYMENT_NETWORKS,Q as MAINNET_BURN_ADDRESS,Y as TESTNET_BURN_ADDRESS,Dt as bootContractIdentifier,ye as broadcast,J as contractFactory,Oe as contractsFactory,l as cvToJSON,x as cvToString,p as cvToValue,Se as deploymentFactory,I as err,D as expectErr,V as expectOk,de as fetchMapGet,Mt as filterEvents,E as findJsTupleKey,Pt as functionsFactory,It as getContractIdentifier,X as getContractNameFromPath,Vt as getContractPrincipalCV,Xt as hexToCvValue,Ut as makeContracts,B as ok,T as parseToCV,b as principalToString,he as projectFactory,vt as pureProxy,$ as ro,fe as roErr,ue as roOk,d as toCamelCase,S as toKebabCase,gt as transformArgsArray,g as transformArgsToCV,F as transformObjectArgs};
1
+ var z=Object.defineProperty,H=Object.defineProperties;var G=Object.getOwnPropertyDescriptors;var O=Object.getOwnPropertySymbols;var W=Object.prototype.hasOwnProperty,Z=Object.prototype.propertyIsEnumerable;var S=(t,e,n)=>e in t?z(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,T=(t,e)=>{for(var n in e||(e={}))W.call(e,n)&&S(t,n,e[n]);if(O)for(var n of O(e))Z.call(e,n)&&S(t,n,e[n]);return t},m=(t,e)=>H(t,G(e));import{contractPrincipalCV as Y}from"micro-stacks/clarity";var Q="ST000000000000000000002AMW42H",X="SP000000000000000000002Q6VF78",d=(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 tt=t=>{let e=t.split("/"),n=e[e.length-1],[r]=n.split(".");return r},Vt=t=>`${t.address}.${t.name}`,Mt=t=>{let e=tt(t.contractFile);return Y(t.address,e)};function Dt(t,e){return`${e?X:Q}.${t}`}var et=(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))(et||{});function jt(t,e){return t.filter(n=>n.type===e)}function Kt(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 nt,contractPrincipalCV as rt,intCV as ot,stringAsciiCV as at,stringUtf8CV as it,noneCV as st,someCV as ct,tupleCV as pt,listCV as lt,hexToCV as ut,bufferCV as ft}from"micro-stacks/clarity";import{isClarityAbiList as yt,isClarityAbiOptional as dt,isClarityAbiStringAscii as Tt,isClarityAbiStringUtf8 as Ct,isClarityAbiTuple as mt,isClarityAbiBuffer as xt,parseToCV as F}from"micro-stacks/transactions";import{bytesToAscii as gt,bytesToHex as I}from"micro-stacks/common";function B(t){return{isOk:!0,value:t}}function V(t){return{isOk:!1,value:t}}function v(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 v(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=d(a);return m(T({},r),{[s]:p(i)})},{});case o.StringASCII:return t.data;case o.StringUTF8:return t.data}}function te(t,e=!1){return p(ut(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(mt(e)){if(typeof t!="object")throw new Error("Invalid tuple input");let n={};return e.tuple.forEach(r=>{let a=E(r.name,t),i=t[a];n[r.name]=y(i,r.type)}),pt(n)}else if(yt(e)){let r=t.map(a=>y(a,e.list.type));return lt(r)}else{if(dt(e))return t?ct(y(t,e.optional)):st();if(Tt(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return at(t)}else if(Ct(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return it(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 nt(n.toString())}else if(e==="int128"){let n=R(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 rt(n,r)}else if(xt(e))return ft(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=gt(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`'${v(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 v(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=d(a);return m(T({},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=E(n.name,e),a=e[r];return y(a,n.type)})}function bt(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{E(a.name,n)}catch{r=!1}}),r)return _(t,n)}catch{}return bt(t,e)}function E(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 vt(t,e){let n=t.abi.functions.find(a=>d(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=>d(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 Et={get:vt},At=t=>new Proxy(t,Et);import{fetchContractDataMapEntry as ht,callReadOnlyFunction as Ot}from"micro-stacks/api";import{cvToHex as St,hexToCV as wt}from"micro-stacks/clarity";import{broadcastTransaction as Pt}from"micro-stacks/transactions";function kt(t){let e=[];return t.forEach(n=>e.push(...n.transactions)),e}function $(t){return kt(t).filter(A)}function j(t){if(!A(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(!A(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 A(t){return!("contract-call"in t||"btc-transfer"in t||"emulated-contract-call"in t)}var Ce=["devnet","simnet","testnet","mainnet"];function me(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 xe(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=T({},t);return m(T(T({},Nt(t.functions,e)),n),{identifier:e})}function ge(t,e){let n={};return $(e.plan.batches).forEach(a=>{let i=U(a),[s,l]=i.split("."),u=d(l),b=t[u],C=t[u];if(typeof C>"u")throw new Error(`Clarigen error: mismatch for contract '${u}'`);n[u]=C,C.contractFile=j(a),C.identifier=i,Object.keys(t[u].functions).forEach(c=>{let k=c,q=(...N)=>{let h=b.functions[k];return{functionArgs:g(h,N),contractAddress:s,contractName:C.contractName,function:h,nativeArgs:N}};C[k]=q})}),n}function J(t,e){let n=y(e,t.key);return{key:e,keyCV:n,map:t}}function Ft(t){if(t.latest!==!1)return t.latest||typeof t.tip>"u"?"latest":t.tip}async function L(t,e){let n=Ft(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 Se(t,e){let n=await L(t,e);return M(n)}async function we(t,e){let n=await L(t,e);return D(n)}async function Pe(t,e,n,r){let a=J(e,n),i=JSON.stringify(St(a.keyCV)),[s,l]=t.split("."),u=await ht({contract_address:s,contract_name:l,map_name:a.map.name,lookup_key:i,tip:"latest",url:r.network.getCoreApiUrl(),proof:0}),b=wt(u.data);return p(b,!0)}async function Fe(t,e){let n=await Pt(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{et as CoreNodeEventType,Ce as DEPLOYMENT_NETWORKS,X as MAINNET_BURN_ADDRESS,Q as TESTNET_BURN_ADDRESS,Dt as bootContractIdentifier,Fe as broadcast,K as contractFactory,xe as contractsFactory,f as cvToJSON,x as cvToString,p as cvToValue,ge as deploymentFactory,V as err,D as expectErr,M as expectOk,Pe as fetchMapGet,jt as filterEvents,E as findJsTupleKey,Nt as functionsFactory,Vt as getContractIdentifier,tt as getContractNameFromPath,Mt as getContractPrincipalCV,te as hexToCvValue,Kt as makeContracts,J as mapFactory,B as ok,y as parseToCV,v as principalToString,me as projectFactory,At as pureProxy,L as ro,we as roErr,Se as roOk,d as toCamelCase,w as toKebabCase,bt as transformArgsArray,g as transformArgsToCV,_ as transformObjectArgs};
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "1.0.7",
2
+ "version": "1.0.9",
3
3
  "license": "MIT",
4
4
  "types": "./dist/index.d.ts",
5
5
  "main": "./dist/index.js",