@clarigen/core 4.0.0 → 4.0.2-alpha.0
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/deployment-B3q-81ej.d.cts +95 -0
- package/dist/deployment-BuEApfjy.mjs +1 -0
- package/dist/deployment-CJKAJJQx.cjs +1 -0
- package/dist/deployment-bCip1x1p.d.mts +95 -0
- package/dist/deployment.cjs +1 -0
- package/dist/deployment.d.cts +2 -0
- package/dist/deployment.d.mts +2 -0
- package/dist/deployment.mjs +1 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.cts +557 -0
- package/dist/index.d.mts +311 -413
- package/dist/index.mjs +1 -1
- package/package.json +17 -6
- package/dist/index.d.ts +0 -659
- package/dist/index.js +0 -1
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{contractPrincipalCV as lt}from"@stacks/transactions";import{hex as D}from"@scure/base";var pt="ST000000000000000000002AMW42H",ut="SP000000000000000000002Q6VF78",u=(t,e)=>{let n=typeof t=="string"?t:String(t);if(/^[A-Z_]+$/.test(n))return n;let[o,...i]=n.replace("!","_x").replace("?","_q").split("-"),c=`${e?o[0].toUpperCase():o[0].toLowerCase()}${o.slice(1)}`;return i.forEach(l=>{let C=l[0].toUpperCase()+l.slice(1);c+=C}),c};function j(t){let e=t.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g);return e?e.join("-").toLowerCase():t}function Yt(t,e=!0){let n=t.split(".")[1];return e?u(n):n}var ft=t=>{let e=t.split("/"),n=e[e.length-1],[r]=n.split(".");return r},Xt=t=>`${t.address}.${t.name}`,te=t=>{let e=ft(t.contractFile);return lt(t.address,e)};function ee(t,e){return`${e?ut:pt}.${t}`}function ne(t){return D.encode(t)}function m(t){return D.decode(t)}function M(t){let e=Array.from(t);return String.fromCharCode.apply(null,e)}var J=t=>typeof t=="number";function yt(t){let{constants:e}=t,n={};for(let r in e)if(r.toLowerCase().startsWith("err")){let o=e[r];typeof o=="object"&&o&&"isOk"in o&&!o.isOk&&"value"in o?n[r]=o.value:n[r]=o}return n}function re(t){let{contracts:e}=t,n={};for(let r in e)n[r]=yt(e[r]);return n}var dt=(p=>(p.ContractEvent="contract_event",p.StxTransferEvent="stx_transfer_event",p.StxMintEvent="stx_mint_event",p.StxBurnEvent="stx_burn_event",p.StxLockEvent="stx_lock_event",p.NftTransferEvent="nft_transfer_event",p.NftMintEvent="nft_mint_event",p.NftBurnEvent="nft_burn_event",p.FtTransferEvent="ft_transfer_event",p.FtMintEvent="ft_mint_event",p.FtBurnEvent="ft_burn_event",p))(dt||{});function ie(t,e){return t.filter(n=>n.type===e)}function ae(t,e={}){let n={};for(let r in t){let o=t[r],i=e.deployerAddress||o.address,a=`${i}.${o.name}`,c=o.contract(i,o.name);n[r]={identifier:a,contract:c}}return n}import{ClarityType as s,uintCV as Tt,contractPrincipalCV as Ct,intCV as mt,stringAsciiCV as gt,stringUtf8CV as xt,noneCV as bt,someCV as At,tupleCV as ht,listCV as Et,hexToCV as vt,bufferCV as kt,parseToCV as L}from"@stacks/transactions";function h(t){return{isOk:!0,value:t}}function E(t){return{isOk:!1,value:t}}function ge(t){return typeof t=="object"&&t!==null&&"isOk"in t}function P(t){return t.value}function f(t,e=!1){switch(t.type){case s.BoolTrue:return!0;case s.BoolFalse:return!1;case s.Int:case s.UInt:return t.value;case s.Buffer:return m(t.value);case s.OptionalNone:return null;case s.OptionalSome:return f(t.value);case s.ResponseErr:return e?E(f(t.value)):f(t.value);case s.ResponseOk:return e?h(f(t.value)):f(t.value);case s.PrincipalStandard:case s.PrincipalContract:return P(t);case s.List:return t.value.map(r=>f(r));case s.Tuple:return Object.entries(t.value).reduce((r,[o,i])=>{let a=u(o);return{...r,[a]:f(i,e)}},{});case s.StringASCII:return t.value;case s.StringUTF8:return t.value}}function xe(t,e=!1){return f(vt(t),e)}function q(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}var wt=t=>typeof t=="string",v=t=>t.buffer!==void 0,k=t=>t["string-ascii"]!==void 0,w=t=>t["string-utf8"]!==void 0,R=t=>t.response!==void 0,O=t=>t.optional!==void 0,N=t=>t.tuple!==void 0,S=t=>t.list!==void 0,be=t=>t==="trait_reference";function y(t,e){if(N(e)){if(typeof t!="object")throw new Error("Invalid tuple input");let n={};return e.tuple.forEach(r=>{let o=F(r.name,t),i=t[o];n[r.name]=y(i,r.type)}),ht(n)}else if(S(e)){let r=t.map(o=>y(o,e.list.type));return Et(r)}else{if(O(e))return t===null?bt():At(y(t,e.optional));if(k(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return gt(t)}else if(w(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return xt(t)}else if(e==="bool"){let n=typeof t=="boolean"?t.toString():t;return L(n,e)}else if(e==="uint128"){let n=q(t);return Tt(n.toString())}else if(e==="int128"){let n=q(t);return mt(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 Ct(n,r)}else if(v(e))return kt(t)}return L(t,e)}function g(t,e="hex"){switch(t.type){case s.BoolTrue:return"true";case s.BoolFalse:return"false";case s.Int:return t.value.toString();case s.UInt:return`u${t.value.toString()}`;case s.Buffer:if(e==="tryAscii"){let n=M(m(t.value));if(/[ -~]/.test(n))return JSON.stringify(n)}return`0x${t.value}`;case s.OptionalNone:return"none";case s.OptionalSome:return`(some ${g(t.value,e)})`;case s.ResponseErr:return`(err ${g(t.value,e)})`;case s.ResponseOk:return`(ok ${g(t.value,e)})`;case s.PrincipalStandard:case s.PrincipalContract:return`'${P(t)}`;case s.List:return`(list ${t.value.map(n=>g(n,e)).join(" ")})`;case s.Tuple:return`(tuple ${Object.keys(t.value).map(n=>`(${n} ${g(t.value[n],e)})`).join(" ")})`;case s.StringASCII:return`"${t.value}"`;case s.StringUTF8:return`u"${t.value}"`}}function d(t,e=!1){switch(t.type){case s.BoolTrue:return!0;case s.BoolFalse:return!1;case s.Int:case s.UInt:return`${t.value}`;case s.Buffer:return t.value;case s.OptionalNone:return null;case s.OptionalSome:return d(t.value);case s.ResponseErr:return e?E(d(t.value)):d(t.value);case s.ResponseOk:return e?h(d(t.value)):d(t.value);case s.PrincipalStandard:case s.PrincipalContract:return P(t);case s.List:return t.value.map(r=>d(r));case s.Tuple:return Object.entries(t.value).reduce((r,[o,i])=>{let a=u(o);return{...r,[a]:d(i)}},{});case s.StringASCII:return t.value;case s.StringUTF8:return t.value}}function W(t,e){return t.args.map(n=>{let r=F(n.name,e),o=e[r];return y(o,n.type)})}function Ot(t,e){return e.map((n,r)=>y(n,t.args[r].type))}function b(t,e){if(e.length===0)return[];let[n]=e;if(e.length===1&&t.args.length!==1)return W(t,n);if(typeof n=="object"&&!Array.isArray(n)&&n!==null)try{let r=!0;if(t.args.forEach(o=>{try{F(o.name,n)}catch{r=!1}}),r)return W(t,n)}catch{}return Ot(t,e)}function F(t,e){let n=Object.keys(e).find(r=>{let o=t===r,i=t===j(r);return o||i});if(!n)throw new Error(`Error encoding JS tuple: ${t} not found in input.`);return n}function H(t){if(t.isOk)return t.value;throw new Error(`Expected OK, received error: ${String(t.value)}`)}function z(t){if(!t.isOk)return t.value;throw new Error(`Expected Err, received ok: ${String(t.value)}`)}function x(t){if(wt(t))return t==="int128"?"int":t==="uint128"?"uint":t;if(v(t))return`(buff ${t.buffer.length})`;if(k(t))return`(string-ascii ${t["string-ascii"].length})`;if(w(t))return`(string-utf8 ${t["string-utf8"].length})`;if(R(t))return`(response ${x(t.response.ok)} ${x(t.response.error)})`;if(O(t))return`(optional ${x(t.optional)})`;if(N(t))return`(tuple ${t.tuple.map(e=>`(${e.name} ${x(e.type)})`).join(" ")})`;if(S(t))return`(list ${t.list.length} ${x(t.list.type)})`;throw new Error(`Type string unsupported for Clarity type: ${JSON.stringify(t)}`)}function Nt(t,e){let n=t.abi.functions.find(o=>u(o.name)===e);if(n)return function(...o){return{functionArgs:b(n,o),contractAddress:t.contractAddress,contractName:t.contractName,function:n,functionName:n.name,nativeArgs:o}};let r=t.abi.maps.find(o=>u(o.name)===e);if(r)return o=>{let i=y(o,r.key);return{contractAddress:t.contractAddress,contractName:t.contractName,map:r,nativeKey:o,key:i}};throw new Error(`Invalid function call: no function exists for ${String(e)}`)}var St={get:Nt},Pt=t=>new Proxy(t,St);import{cvToHex as Kt,hexToCV as Dt}from"@stacks/transactions";import{broadcastTransaction as jt}from"@stacks/transactions";function Rt(t){let e=[];return t.forEach(n=>e.push(...n.transactions)),e}function G(t){return Rt(t).filter(I)}function Z(t){if(!I(t))throw new Error("Unable to get path for tx type.");if("requirement-publish"in t)return t["requirement-publish"].path;if("emulated-contract-publish"in t)return t["emulated-contract-publish"].path;if("contract-publish"in t)return t["contract-publish"].path;throw new Error("Couldnt get path for deployment tx.")}function Q(t){if(!I(t))throw new Error("Unable to get ID for tx type.");if("requirement-publish"in t){let e=t["requirement-publish"],[n,r]=e["contract-id"].split(".");return`${e["remap-sender"]}.${r}`}else if("emulated-contract-publish"in t){let e=t["emulated-contract-publish"];return`${e["emulated-sender"]}.${e["contract-name"]}`}else if("contract-publish"in t){let e=t["contract-publish"];return`${e["expected-sender"]}.${e["contract-name"]}`}throw new Error("Unable to find ID for contract.")}function I(t){return!("contract-call"in t||"btc-transfer"in t||"emulated-contract-call"in t)}var Ve=["devnet","simnet","testnet","mainnet"];function Be(t,e){let n=[];return Object.entries(t.contracts).forEach(([r,o])=>{let i=t.deployments[r][e];return i&&n.push([r,Y(o,i)]),!1}),Object.fromEntries(n)}function Ue(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let o=`${e}.${r.contractName}`;return[n,Y(r,o)]}))}function Ft(t,e){return Object.fromEntries(Object.entries(t).map(([n,r])=>{let o=Object.assign((...i)=>{let a=b(r,i),[c,l]=e.split(".");return{functionArgs:a,contractAddress:c,contractName:l,function:r,functionName:r.name,nativeArgs:i}},{abi:r});return[n,o]}))}function Y(t,e){let n={...t};return{...Ft(t.functions,e),...n,identifier:e}}function Ke(t,e){let n={};return G(e.plan.batches).forEach(o=>{let i=Q(o),[a,c]=i.split("."),l=u(c),C=t[l],T=t[l];if(typeof T>"u")throw new Error(`Clarigen error: mismatch for contract '${l}'`);n[l]=T,T.contractFile=Z(o),T.identifier=i,Object.keys(t[l].functions).forEach(p=>{let B=p,ct=(...U)=>{let K=C.functions[B];return{functionArgs:b(K,U),contractAddress:a,contractName:T.contractName,function:K,nativeArgs:U}};T[B]=ct})}),n}function X(t,e){let n=y(e,t.key);return{key:e,keyCV:n,map:t}}import{cvToHex as Vt,hexToCV as Bt}from"@stacks/transactions";import{SmartContractsApi as It,Configuration as _t,TransactionsApi as Me}from"@stacks/blockchain-api-client";function _(t){let e={};return t&&(e["x-api-key"]=t),e}function tt(t,e){let n=_(e);return new It(new _t({basePath:t,headers:n}))}function et(t){return`${t}/v2`}var nt=(t,e)=>{try{let n=new URL(t);return Object.keys(e).forEach(r=>{let o=e[r];if(o){if(Array.isArray(o))return o.length===0?void 0:n.searchParams.set(`${r}[]`,$t(r,o));if(typeof o=="boolean"||J(o))return n.searchParams.set(r,String(o));n.searchParams.set(r,o)}}),n.toString()}catch(n){return console.error("generateUrl"),console.error(n),t}},$t=(t,e)=>e!=null&&e.length?`${e.map((n,r)=>`${r>0?encodeURIComponent(`${t}[]`):""}=${encodeURIComponent(n)}`).join("&")}`:"";function Ut(t){if(t.okay)return Bt(t.result);throw new Error(t.cause)}async function rt(t){let{contractAddress:e,functionArgs:n,senderAddress:r=e,url:o}=t,i=await tt(o,t.apiKey).callReadOnlyFunction({...t,readOnlyFunctionArgs:{sender:r,arguments:n.map(c=>typeof c=="string"?c:Vt(c))}});return Ut(i)}import{networkFrom as Mt}from"@stacks/network";function it(t){if(t.latest!==!1)return t.latest||typeof t.tip>"u"?"latest":t.tip}async function $(t,e){let n=it(e),r=await rt({contractAddress:t.contractAddress,contractName:t.contractName,functionName:t.functionName,functionArgs:t.functionArgs,tip:n,url:st(e),apiKey:e.apiKey});return e.json?d(r):f(r,!0)}async function Jt(t,e){let n=await $(t,e);return H(n)}async function Lt(t,e){let n=await $(t,e);return z(n)}function st(t){return Mt(t.network).client.baseUrl}async function cn(t,e,n,r){let o=X(e,n),i=JSON.stringify(Kt(o.keyCV)),[a,c]=t.split("."),l=nt(`${et(st(r))}/map_entry/${a}/${c}/${o.map.name}`,{proof:0,tip:it(r)}),T=await(await fetch(l,{method:"POST",body:i,headers:{"Content-Type":"application/json",Accept:"application/json",..._(r.apiKey)}})).json(),p=Dt(T.data);return f(p,!0)}async function ln(t,e){let n=e.network,r=await jt({transaction:t,network:n});if("error"in r)throw new Error(`Error broadcasting tx: ${r.error} - ${r.reason} - ${JSON.stringify("reason_data"in r?r.reason_data:void 0)}`);return{txId:r.txid,stacksTransaction:t}}var ot=class{network;apiKey;constructor(e,n){this.network=e,this.apiKey=n}roOptions(e){return{network:this.network,apiKey:this.apiKey,...e}}ro(e,n){return $(e,this.roOptions(n||{}))}roOk(e,n){return Jt(e,this.roOptions(n||{}))}roErr(e,n){return Lt(e,this.roOptions(n||{}))}};function at(t,e){let[n,r]=t.identifier.split(".");if(!("identifier"in t))throw new Error("Invalid contract");for(let o of t.non_fungible_tokens)if(o.name===e)return`${n}.${r}::${o.name}`;for(let o of t.fungible_tokens)if(o.name===e)return`${n}.${r}::${o.name}`;throw new Error(`Invalid asset: "${e}" is not an asset in contract.`)}function Tn(t,e,n,r){let[o]=t.non_fungible_tokens,i=at(t,o.name),a=o.type,c=y(r,a);return{type:"nft-postcondition",address:e,condition:n,asset:i,assetId:c}}function Cn(t,e,n,r){let[o,i]=e.split("."),[a]=t.fungible_tokens,c=at(t,a.name);return{type:"ft-postcondition",address:e,condition:n,asset:c,amount:r}}function V(t,e=""){return t.slice(e.length+2,-1)}function A(t,e){if(N(e)){let n=Ht(t),r={},o=Object.entries(n).reduce((i,[a,c])=>{let l=a.trim();return{...i,[l]:c.trim()}},{});return e.tuple.forEach(({name:i,type:a})=>{let c=u(i);r[c]=A(o[i],a)}),r}else{if(S(e))return Wt(t).map(r=>A(r,e.list.type));if(O(e))return t==="none"?null:A(V(t,"some"),e.optional);if(k(e))return t.slice(1,-1);if(w(e))return t.slice(2,-1);if(e==="bool")return t==="true";if(e==="uint128")return BigInt(t.slice(1));if(e==="int128")return BigInt(t);if(e==="trait_reference")return t.replace(/^\'/,"");if(e==="principal")return t.replace(/^\'/,"");if(e==="none")return null;if(v(e))return m(t.slice(2));if(R(e)){if(t.startsWith("(ok")){let r=V(t,"ok");return h(A(r,e.response.ok))}let n=V(t,"err");return E(A(n,e.response.error))}}throw new Error(`Unable to parse cv string to value: ${t} ${JSON.stringify(e,null,2)}`)}var qt=new Array(255);for(let t=0;t<=255;++t)qt[t]=t.toString(16).padStart(2,"0");function Wt(t){if(t.charAt(0)!=="["||t.charAt(t.length-1)!=="]")throw new Error(`Expected (list ..), got ${t.toString()}`);let e=[],n=[],r=1;for(let i=0;i<t.length;i++)t.charAt(i)===","&&e.length==1&&(n.push(t.substring(r,i)),r=i+2),["(","[","{"].includes(t.charAt(i))&&e.push(t.charAt(i)),t.charAt(i)===")"&&e[e.length-1]==="("&&e.pop(),t.charAt(i)==="}"&&e[e.length-1]==="{"&&e.pop(),t.charAt(i)==="]"&&e[e.length-1]==="["&&e.pop();let o=t.substring(r,t.length-1);return o.length>0&&n.push(o),n}function Ht(t){if(t.charAt(0)!=="{"||t.charAt(t.length-1)!=="}")throw new Error(`Expected '(tuple ..)', got ${t.toString()}`);let e=1,n=[],r=[];for(let a=0;a<t.length;a++)t.charAt(a)===","&&n.length==1&&(r.push(t.substring(e,a)),e=a+2),["(","[","{"].includes(t.charAt(a))&&n.push(t.charAt(a)),t.charAt(a)===")"&&n[n.length-1]==="("&&n.pop(),t.charAt(a)==="}"&&n[n.length-1]==="{"&&n.pop(),t.charAt(a)==="]"&&n[n.length-1]==="["&&n.pop();let o=t.substring(e,t.length-1);o.length>0&&r.push(o);let i={};for(let a of r)for(let c=0;c<a.length;c++)if(a.charAt(c)===":"){let l=a.substring(0,c),C=a.substring(c+2,a.length);i[l]=C;break}return i}export{ot as ClarigenClient,dt as CoreNodeEventType,Ve as DEPLOYMENT_NETWORKS,ut as MAINNET_BURN_ADDRESS,pt as TESTNET_BURN_ADDRESS,ee as bootContractIdentifier,ln as broadcast,M as bytesToAscii,ne as bytesToHex,Y as contractFactory,Ue as contractsFactory,at as createAssetInfo,d as cvToJSON,g as cvToString,f as cvToValue,Ke as deploymentFactory,E as err,z as expectErr,H as expectOk,yt as extractErrors,cn as fetchMapGet,ie as filterEvents,F as findJsTupleKey,Ft as functionsFactory,st as getApiUrl,Xt as getContractIdentifier,Yt as getContractName,ft as getContractNameFromPath,te as getContractPrincipalCV,x as getTypeString,m as hexToBytes,xe as hexToCvValue,v as isClarityAbiBuffer,S as isClarityAbiList,O as isClarityAbiOptional,wt as isClarityAbiPrimitive,R as isClarityAbiResponse,k as isClarityAbiStringAscii,w as isClarityAbiStringUtf8,be as isClarityAbiTraitReference,N as isClarityAbiTuple,J as isNumber,ge as isResponse,ae as makeContracts,Cn as makeFungiblePostCondition,Tn as makeNonFungiblePostCondition,X as mapFactory,h as ok,y as parseToCV,P as principalToString,re as projectErrors,Be as projectFactory,Pt as pureProxy,A as rawClarityToValue,$ as ro,Lt as roErr,Jt as roOk,u as toCamelCase,j as toKebabCase,Ot as transformArgsArray,b as transformArgsToCV,W as transformObjectArgs};
|
|
1
|
+
import{a as e,i as t,n}from"./deployment-BuEApfjy.mjs";import{ClarityType as r,broadcastTransaction as i,bufferCV as a,contractPrincipalCV as o,cvToHex as s,hexToCV as c,intCV as l,listCV as u,noneCV as ee,parseToCV as d,someCV as te,stringAsciiCV as ne,stringUtf8CV as re,tupleCV as ie,uintCV as ae}from"@stacks/transactions";import{hex as f}from"@scure/base";import{Configuration as oe,SmartContractsApi as se}from"@stacks/blockchain-api-client";import{networkFrom as ce}from"@stacks/network";const p=`ST000000000000000000002AMW42H`,m=`SP000000000000000000002Q6VF78`,h=(e,t)=>{let n=typeof e==`string`?e:String(e);if(/^[A-Z_]+$/.test(n))return n;let[r,...i]=n.replace(`!`,`_x`).replace(`?`,`_q`).split(`-`),a=`${t?r[0].toUpperCase():r[0].toLowerCase()}${r.slice(1)}`;return i.forEach(e=>{let t=e[0].toUpperCase()+e.slice(1);a+=t}),a};function g(e){let t=e.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g);return t?t.join(`-`).toLowerCase():e}function le(e,t=!0){let n=e.split(`.`)[1];return t?h(n):n}const _=e=>{let t=e.split(`/`),[n]=t[t.length-1].split(`.`);return n},ue=e=>`${e.address}.${e.name}`,de=e=>{let t=_(e.contractFile);return o(e.address,t)};function fe(e,t){return`${t?m:p}.${e}`}function pe(e){return f.encode(e)}function v(e){return f.decode(e)}function y(e){let t=Array.from(e);return String.fromCharCode.apply(null,t)}const b=e=>typeof e==`number`;function me(e){let{constants:t}=e,n={};for(let e in t)if(e.toLowerCase().startsWith(`err`)){let r=t[e];typeof r==`object`&&r&&`isOk`in r&&!r.isOk&&`value`in r?n[e]=r.value:n[e]=r}return n}function he(e){let{contracts:t}=e,n={};for(let e in t)n[e]=me(t[e]);return n}let ge=function(e){return e.ContractEvent=`contract_event`,e.StxTransferEvent=`stx_transfer_event`,e.StxMintEvent=`stx_mint_event`,e.StxBurnEvent=`stx_burn_event`,e.StxLockEvent=`stx_lock_event`,e.NftTransferEvent=`nft_transfer_event`,e.NftMintEvent=`nft_mint_event`,e.NftBurnEvent=`nft_burn_event`,e.FtTransferEvent=`ft_transfer_event`,e.FtMintEvent=`ft_mint_event`,e.FtBurnEvent=`ft_burn_event`,e}({});function _e(e,t){return e.filter(e=>e.type===t)}function ve(e,t={}){let n={};for(let r in e){let i=e[r],a=t.deployerAddress||i.address;n[r]={identifier:`${a}.${i.name}`,contract:i.contract(a,i.name)}}return n}function x(e){return{isOk:!0,value:e}}function S(e){return{isOk:!1,value:e}}function ye(e){return typeof e==`object`&&!!e&&`isOk`in e}function C(e){return e.value}function w(e,t=!1){switch(e.type){case r.BoolTrue:return!0;case r.BoolFalse:return!1;case r.Int:case r.UInt:return e.value;case r.Buffer:return v(e.value);case r.OptionalNone:return null;case r.OptionalSome:return w(e.value);case r.ResponseErr:return t?S(w(e.value)):w(e.value);case r.ResponseOk:return t?x(w(e.value)):w(e.value);case r.PrincipalStandard:case r.PrincipalContract:return C(e);case r.List:return e.value.map(e=>w(e));case r.Tuple:return Object.entries(e.value).reduce((e,[n,r])=>{let i=h(n);return{...e,[i]:w(r,t)}},{});case r.StringASCII:return e.value;case r.StringUTF8:return e.value}}function be(e,t=!1){return w(c(e),t)}function T(e){if(!(typeof e==`bigint`||typeof e==`number`||typeof e==`string`))throw Error(`Invalid input type for integer`);return BigInt(e)}const E=e=>typeof e==`string`,D=e=>e.buffer!==void 0,O=e=>e[`string-ascii`]!==void 0,k=e=>e[`string-utf8`]!==void 0,A=e=>e.response!==void 0,j=e=>e.optional!==void 0,M=e=>e.tuple!==void 0,N=e=>e.list!==void 0,xe=e=>e===`trait_reference`;function P(e,t){if(M(t)){if(typeof e!=`object`)throw Error(`Invalid tuple input`);let n={};return t.tuple.forEach(t=>{let r=e[B(t.name,e)];n[t.name]=P(r,t.type)}),ie(n)}else if(N(t))return u(e.map(e=>P(e,t.list.type)));else if(j(t))return e===null?ee():te(P(e,t.optional));else if(O(t)){if(typeof e!=`string`)throw Error(`Invalid string-ascii input`);return ne(e)}else if(k(t)){if(typeof e!=`string`)throw Error(`Invalid string-ascii input`);return re(e)}else if(t===`bool`)return d(typeof e==`boolean`?e.toString():e,t);else if(t===`uint128`)return ae(T(e).toString());else if(t===`int128`)return l(T(e).toString());else if(t===`trait_reference`){if(typeof e!=`string`)throw Error(`Invalid input for trait_reference`);let[t,n]=e.split(`.`);return o(t,n)}else if(D(t))return a(e);return d(e,t)}function F(e,t=`hex`){switch(e.type){case r.BoolTrue:return`true`;case r.BoolFalse:return`false`;case r.Int:return e.value.toString();case r.UInt:return`u${e.value.toString()}`;case r.Buffer:if(t===`tryAscii`){let t=y(v(e.value));if(/[ -~]/.test(t))return JSON.stringify(t)}return`0x${e.value}`;case r.OptionalNone:return`none`;case r.OptionalSome:return`(some ${F(e.value,t)})`;case r.ResponseErr:return`(err ${F(e.value,t)})`;case r.ResponseOk:return`(ok ${F(e.value,t)})`;case r.PrincipalStandard:case r.PrincipalContract:return`'${C(e)}`;case r.List:return`(list ${e.value.map(e=>F(e,t)).join(` `)})`;case r.Tuple:return`(tuple ${Object.keys(e.value).map(n=>`(${n} ${F(e.value[n],t)})`).join(` `)})`;case r.StringASCII:return`"${e.value}"`;case r.StringUTF8:return`u"${e.value}"`}}function I(e,t=!1){switch(e.type){case r.BoolTrue:return!0;case r.BoolFalse:return!1;case r.Int:case r.UInt:return`${e.value}`;case r.Buffer:return e.value;case r.OptionalNone:return null;case r.OptionalSome:return I(e.value);case r.ResponseErr:return t?S(I(e.value)):I(e.value);case r.ResponseOk:return t?x(I(e.value)):I(e.value);case r.PrincipalStandard:case r.PrincipalContract:return C(e);case r.List:return e.value.map(e=>I(e));case r.Tuple:return Object.entries(e.value).reduce((e,[t,n])=>{let r=h(t);return{...e,[r]:I(n)}},{});case r.StringASCII:return e.value;case r.StringUTF8:return e.value}}function L(e,t){return e.args.map(e=>{let n=t[B(e.name,t)];return P(n,e.type)})}function R(e,t){return t.map((t,n)=>P(t,e.args[n].type))}function z(e,t){if(t.length===0)return[];let[n]=t;if(t.length===1&&e.args.length!==1)return L(e,n);if(typeof n==`object`&&!Array.isArray(n)&&n!==null)try{let t=!0;if(e.args.forEach(e=>{try{B(e.name,n)}catch{t=!1}}),t)return L(e,n)}catch{}return R(e,t)}function B(e,t){let n=Object.keys(t).find(t=>{let n=e===t,r=e===g(t);return n||r});if(!n)throw Error(`Error encoding JS tuple: ${e} not found in input.`);return n}function V(e){if(e.isOk)return e.value;throw Error(`Expected OK, received error: ${String(e.value)}`)}function H(e){if(!e.isOk)return e.value;throw Error(`Expected Err, received ok: ${String(e.value)}`)}function U(e){if(E(e))return e===`int128`?`int`:e===`uint128`?`uint`:e;if(D(e))return`(buff ${e.buffer.length})`;if(O(e))return`(string-ascii ${e[`string-ascii`].length})`;if(k(e))return`(string-utf8 ${e[`string-utf8`].length})`;if(A(e))return`(response ${U(e.response.ok)} ${U(e.response.error)})`;if(j(e))return`(optional ${U(e.optional)})`;if(M(e))return`(tuple ${e.tuple.map(e=>`(${e.name} ${U(e.type)})`).join(` `)})`;if(N(e))return`(list ${e.list.length} ${U(e.list.type)})`;throw Error(`Type string unsupported for Clarity type: ${JSON.stringify(e)}`)}function Se(e,t){let n=e.abi.functions.find(e=>h(e.name)===t);if(n)return function(...t){return{functionArgs:z(n,t),contractAddress:e.contractAddress,contractName:e.contractName,function:n,functionName:n.name,nativeArgs:t}};let r=e.abi.maps.find(e=>h(e.name)===t);if(r)return t=>{let n=P(t,r.key);return{contractAddress:e.contractAddress,contractName:e.contractName,map:r,nativeKey:t,key:n}};throw Error(`Invalid function call: no function exists for ${String(t)}`)}const Ce={get:Se},we=e=>new Proxy(e,Ce),Te=[`devnet`,`simnet`,`testnet`,`mainnet`];function Ee(e,t){let n=[];return Object.entries(e.contracts).forEach(([r,i])=>{let a=e.deployments[r][t];return a&&n.push([r,G(i,a)]),!1}),Object.fromEntries(n)}function De(e,t){return Object.fromEntries(Object.entries(e).map(([e,n])=>[e,G(n,`${t}.${n.contractName}`)]))}function W(e,t){return Object.fromEntries(Object.entries(e).map(([e,n])=>[e,Object.assign((...e)=>{let r=z(n,e),[i,a]=t.split(`.`);return{functionArgs:r,contractAddress:i,contractName:a,function:n,functionName:n.name,nativeArgs:e}},{abi:n})]))}function G(e,t){let n={...e};return{...W(e.functions,t),...n,identifier:t}}function Oe(r,i){let a={};return n(i.plan.batches).forEach(n=>{let i=e(n),[o,s]=i.split(`.`),c=h(s),l=r[c],u=r[c];if(u===void 0)throw Error(`Clarigen error: mismatch for contract '${c}'`);a[c]=u,u.contractFile=t(n),u.identifier=i,Object.keys(r[c].functions).forEach(e=>{let t=e;u[t]=((...e)=>{let n=l.functions[t];return{functionArgs:z(n,e),contractAddress:o,contractName:u.contractName,function:n,nativeArgs:e}})})}),a}function K(e,t){return{key:t,keyCV:P(t,e.key),map:e}}function q(e,t={}){let n={...t};return e&&(n[`x-api-key`]=e),n}function ke(e,t,n){return new se(new oe({basePath:e,headers:q(t,n)}))}function Ae(e){return`${e}/v2`}const je=(e,t)=>{try{let n=new URL(e);return Object.keys(t).forEach(e=>{let r=t[e];if(r){if(Array.isArray(r))return r.length===0?void 0:n.searchParams.set(`${e}[]`,Me(e,r));if(typeof r==`boolean`||b(r))return n.searchParams.set(e,String(r));n.searchParams.set(e,r)}}),n.toString()}catch(t){return console.error(`generateUrl`),console.error(t),e}},Me=(e,t)=>t!=null&&t.length?`${t.map((t,n)=>`${n>0?encodeURIComponent(`${e}[]`):``}=${encodeURIComponent(t)}`).join(`&`)}`:``;function Ne(e){if(e.okay)return c(e.result);throw Error(e.cause)}async function Pe(e){let{contractAddress:t,functionArgs:n,senderAddress:r=t,url:i}=e;return Ne(await ke(i,e.apiKey,e.headers).callReadOnlyFunction({...e,readOnlyFunctionArgs:{sender:r,arguments:n.map(e=>typeof e==`string`?e:s(e))}}))}function J(e){if(e.latest!==!1)return e.latest||e.tip===void 0?`latest`:e.tip}async function Y(e,t){let n=J(t),r=await Pe({contractAddress:e.contractAddress,contractName:e.contractName,functionName:e.functionName,functionArgs:e.functionArgs,tip:n,url:X(t),apiKey:t.apiKey,headers:t.headers});return t.json?I(r):w(r,!0)}async function Fe(e,t){return V(await Y(e,t))}async function Ie(e,t){return H(await Y(e,t))}function X(e){return ce(e.network).client.baseUrl}async function Le(e,t,n,r){let i=K(t,n),a=JSON.stringify(s(i.keyCV)),[o,l]=e.split(`.`),u=je(`${Ae(X(r))}/map_entry/${o}/${l}/${i.map.name}`,{proof:0,tip:J(r)});return w(c((await(await fetch(u,{method:`POST`,body:a,headers:{"Content-Type":`application/json`,Accept:`application/json`,...q(r.apiKey,r.headers)}})).json()).data),!0)}async function Re(e,t){let n=t.network,r=await i({transaction:e,network:n});if(`error`in r)throw Error(`Error broadcasting tx: ${r.error} - ${r.reason} - ${JSON.stringify(`reason_data`in r?r.reason_data:void 0)}`);return{txId:r.txid,stacksTransaction:e}}var ze=class{network;constructor(e,t,n){this.apiKey=t,this.headers=n,this.network=e}roOptions(e){return{network:this.network,apiKey:this.apiKey,headers:this.headers,...e}}ro(e,t){return Y(e,this.roOptions(t||{}))}roOk(e,t){return Fe(e,this.roOptions(t||{}))}roErr(e,t){return Ie(e,this.roOptions(t||{}))}};function Z(e,t){let[n,r]=e.identifier.split(`.`);if(!(`identifier`in e))throw Error(`Invalid contract`);for(let i of e.non_fungible_tokens)if(i.name===t)return`${n}.${r}::${i.name}`;for(let i of e.fungible_tokens)if(i.name===t)return`${n}.${r}::${i.name}`;throw Error(`Invalid asset: "${t}" is not an asset in contract.`)}function Be(e,t,n,r){let[i]=e.non_fungible_tokens,a=Z(e,i.name),o=i.type;return{type:`nft-postcondition`,address:t,condition:n,asset:a,assetId:P(r,o)}}function Ve(e,t,n,r){let[i,a]=t.split(`.`),[o]=e.fungible_tokens;return{type:`ft-postcondition`,address:t,condition:n,asset:Z(e,o.name),amount:r}}function Q(e,t=``){return e.slice(t.length+2,-1)}function $(e,t){if(M(t)){let n=We(e),r={},i=Object.entries(n).reduce((e,[t,n])=>{let r=t.trim();return{...e,[r]:n.trim()}},{});return t.tuple.forEach(({name:e,type:t})=>{let n=h(e);r[n]=$(i[e],t)}),r}else if(N(t))return Ue(e).map(e=>$(e,t.list.type));else if(j(t))return e===`none`?null:$(Q(e,`some`),t.optional);else if(O(t))return e.slice(1,-1);else if(k(t))return e.slice(2,-1);else if(t===`bool`)return e===`true`;else if(t===`uint128`)return BigInt(e.slice(1));else if(t===`int128`)return BigInt(e);else if(t===`trait_reference`)return e.replace(/^\'/,``);else if(t===`principal`)return e.replace(/^\'/,``);else if(t===`none`)return null;else if(D(t))return v(e.slice(2));else if(A(t))return e.startsWith(`(ok`)?x($(Q(e,`ok`),t.response.ok)):S($(Q(e,`err`),t.response.error));throw Error(`Unable to parse cv string to value: ${e} ${JSON.stringify(t,null,2)}`)}const He=Array(255);for(let e=0;e<=255;++e)He[e]=e.toString(16).padStart(2,`0`);function Ue(e){if(e.charAt(0)!==`[`||e.charAt(e.length-1)!==`]`)throw Error(`Expected (list ..), got ${e.toString()}`);let t=[],n=[],r=1;for(let i=0;i<e.length;i++)e.charAt(i)===`,`&&t.length==1&&(n.push(e.substring(r,i)),r=i+2),[`(`,`[`,`{`].includes(e.charAt(i))&&t.push(e.charAt(i)),e.charAt(i)===`)`&&t[t.length-1]===`(`&&t.pop(),e.charAt(i)===`}`&&t[t.length-1]===`{`&&t.pop(),e.charAt(i)===`]`&&t[t.length-1]===`[`&&t.pop();let i=e.substring(r,e.length-1);return i.length>0&&n.push(i),n}function We(e){if(e.charAt(0)!==`{`||e.charAt(e.length-1)!==`}`)throw Error(`Expected '(tuple ..)', got ${e.toString()}`);let t=1,n=[],r=[];for(let i=0;i<e.length;i++)e.charAt(i)===`,`&&n.length==1&&(r.push(e.substring(t,i)),t=i+2),[`(`,`[`,`{`].includes(e.charAt(i))&&n.push(e.charAt(i)),e.charAt(i)===`)`&&n[n.length-1]===`(`&&n.pop(),e.charAt(i)===`}`&&n[n.length-1]===`{`&&n.pop(),e.charAt(i)===`]`&&n[n.length-1]===`[`&&n.pop();let i=e.substring(t,e.length-1);i.length>0&&r.push(i);let a={};for(let e of r)for(let t=0;t<e.length;t++)if(e.charAt(t)===`:`){let n=e.substring(0,t);a[n]=e.substring(t+2,e.length);break}return a}export{ze as ClarigenClient,ge as CoreNodeEventType,Te as DEPLOYMENT_NETWORKS,m as MAINNET_BURN_ADDRESS,p as TESTNET_BURN_ADDRESS,fe as bootContractIdentifier,Re as broadcast,y as bytesToAscii,pe as bytesToHex,G as contractFactory,De as contractsFactory,Z as createAssetInfo,I as cvToJSON,F as cvToString,w as cvToValue,Oe as deploymentFactory,S as err,H as expectErr,V as expectOk,me as extractErrors,Le as fetchMapGet,_e as filterEvents,B as findJsTupleKey,W as functionsFactory,X as getApiUrl,ue as getContractIdentifier,le as getContractName,_ as getContractNameFromPath,de as getContractPrincipalCV,U as getTypeString,v as hexToBytes,be as hexToCvValue,D as isClarityAbiBuffer,N as isClarityAbiList,j as isClarityAbiOptional,E as isClarityAbiPrimitive,A as isClarityAbiResponse,O as isClarityAbiStringAscii,k as isClarityAbiStringUtf8,xe as isClarityAbiTraitReference,M as isClarityAbiTuple,b as isNumber,ye as isResponse,ve as makeContracts,Ve as makeFungiblePostCondition,Be as makeNonFungiblePostCondition,K as mapFactory,x as ok,P as parseToCV,C as principalToString,he as projectErrors,Ee as projectFactory,we as pureProxy,$ as rawClarityToValue,Y as ro,Ie as roErr,Fe as roOk,h as toCamelCase,g as toKebabCase,R as transformArgsArray,z as transformArgsToCV,L as transformObjectArgs};
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "4.0.0",
|
|
2
|
+
"version": "4.0.2-alpha.0",
|
|
3
3
|
"license": "MIT",
|
|
4
|
-
"types": "./dist/index.d.
|
|
5
|
-
"main": "./dist/index.
|
|
4
|
+
"types": "./dist/index.d.cts",
|
|
5
|
+
"main": "./dist/index.cjs",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
7
7
|
"import": "./dist/index.mjs",
|
|
8
8
|
"files": [
|
|
@@ -26,10 +26,21 @@
|
|
|
26
26
|
"publishConfig": {
|
|
27
27
|
"access": "public"
|
|
28
28
|
},
|
|
29
|
+
"exports": {
|
|
30
|
+
".": {
|
|
31
|
+
"require": "./dist/index.cjs",
|
|
32
|
+
"import": "./dist/index.mjs"
|
|
33
|
+
},
|
|
34
|
+
"./deployment": {
|
|
35
|
+
"require": "./dist/deployment.cjs",
|
|
36
|
+
"import": "./dist/deployment.mjs"
|
|
37
|
+
},
|
|
38
|
+
"./package.json": "./package.json"
|
|
39
|
+
},
|
|
29
40
|
"scripts": {
|
|
30
|
-
"start": "
|
|
31
|
-
"dev": "
|
|
32
|
-
"build": "
|
|
41
|
+
"start": "tsdown --watch",
|
|
42
|
+
"dev": "tsdown --watch",
|
|
43
|
+
"build": "tsdown",
|
|
33
44
|
"test": "vitest run",
|
|
34
45
|
"lint": "eslint \"src/**/*.{ts,tsx}\" && prettier --check \"./**/*.{ts,js}\"",
|
|
35
46
|
"typecheck": "tsc --noEmit -p tsconfig-test.json",
|