@clarigen/core 4.1.2 → 4.1.4
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.cjs +2 -2
- package/dist/index.d.cts +3 -27
- package/dist/index.d.mts +3 -27
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const e=require(`./deployment-DN-sbX_m.cjs`);let t=require(`@stacks/transactions`),n=require(`@scure/base`),r=require(`@stacks/blockchain-api-client`),i=require(`@stacks/network`);const a=`ST000000000000000000002AMW42H`,o=`SP000000000000000000002Q6VF78`,s=(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 c(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 l(e,t=!0){let n=e.split(`.`)[1];return t?s(n):n}const u=e=>{let t=e.split(`/`).at(-1),[n]=(t==null?void 0:t.split(`.`))??[];return n},ee=e=>`${e.address}.${e.name}`,te=e=>{let n=u(e.contractFile);return(0,t.contractPrincipalCV)(e.address,n)};function ne(e,t){return`${t?o:a}.${e}`}function re(e){return n.hex.encode(e)}function d(e){return n.hex.decode(e)}function f(e){let t=Array.from(e);return String.fromCharCode.apply(null,t)}const
|
|
2
|
-
`)}\n${i}}`}case t.ClarityType.StringASCII:return`"${e.value}"`;case t.ClarityType.StringUTF8:return`u"${e.value}"`}}function k(e,n=!1){switch(e.type){case t.ClarityType.BoolTrue:return!0;case t.ClarityType.BoolFalse:return!1;case t.ClarityType.Int:case t.ClarityType.UInt:return`${e.value}`;case t.ClarityType.Buffer:return e.value;case t.ClarityType.OptionalNone:return null;case t.ClarityType.OptionalSome:return k(e.value);case t.ClarityType.ResponseErr:return n?h(k(e.value)):k(e.value);case t.ClarityType.ResponseOk:return n?m(k(e.value)):k(e.value);case t.ClarityType.PrincipalStandard:case t.ClarityType.PrincipalContract:return g(e);case t.ClarityType.List:return e.value.map(e=>k(e));case t.ClarityType.Tuple:return Object.entries(e.value).reduce((e,[t,n])=>{let r=s(t);return{...e,[r]:k(n)}},{});case t.ClarityType.StringASCII:return e.value;case t.ClarityType.StringUTF8:return e.value}}function A(e,t){return e.args.map(e=>{let n=t[N(e.name,t)];return D(n,e.type)})}function j(e,t){return t.map((t,n)=>D(t,e.args[n].type))}function M(e,t){if(t.length===0)return[];let[n]=t;if(t.length===1&&e.args.length!==1)return A(e,n);if(typeof n==`object`&&!Array.isArray(n)&&n!==null)try{let t=!0;if(e.args.forEach(e=>{try{N(e.name,n)}catch{t=!1}}),t)return A(e,n)}catch{}return j(e,t)}function N(e,t){let n=Object.keys(t).find(t=>{let n=e===t,r=e===c(t);return n||r});if(!n)throw Error(`Error encoding JS tuple: ${e} not found in input.`);return n}function P(e){if(e.isOk)return e.value;throw Error(`Expected OK, received error: ${String(e.value)}`)}function F(e){if(!e.isOk)return e.value;throw Error(`Expected Err, received ok: ${String(e.value)}`)}function I(e){if(y(e))return e===`int128`?`int`:e===`uint128`?`uint`:e;if(b(e))return`(buff ${e.buffer.length})`;if(x(e))return`(string-ascii ${e[`string-ascii`].length})`;if(S(e))return`(string-utf8 ${e[`string-utf8`].length})`;if(C(e))return`(response ${I(e.response.ok)} ${I(e.response.error)})`;if(w(e))return`(optional ${I(e.optional)})`;if(T(e))return`{ ${e.tuple.map(e=>`${e.name}: ${I(e.type)}`).join(`, `)} }`;if(E(e))return`(list ${e.list.length} ${I(e.list.type)})`;throw Error(`Type string unsupported for Clarity type: ${JSON.stringify(e)}`)}function fe(e,t){let n=e.abi.functions.find(e=>s(e.name)===t);if(n)return(...t)=>({functionArgs:M(n,t),contractAddress:e.contractAddress,contractName:e.contractName,function:n,functionName:n.name,nativeArgs:t});let r=e.abi.maps.find(e=>s(e.name)===t);if(r)return t=>{let n=D(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 pe={get:fe},me=e=>new Proxy(e,pe),he=[`devnet`,`simnet`,`testnet`,`mainnet`];function ge(e,t){let n=[];return Object.entries(e.contracts).forEach(([r,i])=>{let a=e.deployments[r][t];return a&&n.push([r,R(i,a)]),!1}),Object.fromEntries(n)}function _e(e,t){return Object.fromEntries(Object.entries(e).map(([e,n])=>[e,R(n,`${t}.${n.contractName}`)]))}function L(e,t){return Object.fromEntries(Object.entries(e).map(([e,n])=>[e,Object.assign((...e)=>{let r=M(n,e),[i,a]=t.split(`.`);return{functionArgs:r,contractAddress:i,contractName:a,function:n,functionName:n.name,nativeArgs:e}},{abi:n})]))}function R(e,t){let n={...e};return{...L(e.functions,t),...n,identifier:t}}function ve(t,n){let r={};return e.n(n.plan.batches).forEach(n=>{let i=e.a(n),[a,o]=i.split(`.`),c=s(o),l=t[c],u=t[c];if(u===void 0)throw Error(`Clarigen error: mismatch for contract '${c}'`);r[c]=u,u.contractFile=e.i(n),u.identifier=i,Object.keys(t[c].functions).forEach(e=>{let t=e;u[t]=((...e)=>{let n=l.functions[t];return{functionArgs:M(n,e),contractAddress:a,contractName:u.contractName,function:n,nativeArgs:e}})})}),r}function z(e,t){return{key:t,keyCV:D(t,e.key),map:e}}function B(e,t={}){let n={...t};return e&&(n[`x-api-key`]=e),n}function ye(e,t,n){return new r.SmartContractsApi(new r.Configuration({basePath:e,headers:B(t,n)}))}function be(e){return`${e}/v2`}const xe=(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}[]`,Se(e,r));if(typeof r==`boolean`||ie(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}},Se=(e,t)=>t!=null&&t.length?`${t.map((t,n)=>`${n>0?encodeURIComponent(`${e}[]`):``}=${encodeURIComponent(t)}`).join(`&`)}`:``;function V(e){if(e.okay)return(0,t.hexToCV)(e.result);throw Error(e.cause)}async function H(e){let{contractAddress:n,functionArgs:r,senderAddress:i=n,url:a}=e;return V(await ye(a,e.apiKey,e.headers).callReadOnlyFunction({...e,readOnlyFunctionArgs:{sender:i,arguments:r.map(e=>typeof e==`string`?e:(0,t.cvToHex)(e))}}))}function U(e){return typeof e==`object`&&!!e&&`isNone`in e&&typeof e.isNone==`boolean`}function W(e){return typeof e==`object`&&!!e&&`isOk`in e&&typeof e.isOk==`boolean`}function G(e,t){if(w(t))return U(e)?e.isNone?null:G(e.value,t.optional):e;if(b(t))return typeof e==`string`?d(e.startsWith(`0x`)?e.slice(2):e):e;if(T(t)){if(typeof e!=`object`||!e)return e;let n={};for(let r of t.tuple){let t=e[r.name];n[r.name]=G(t,r.type)}return n}return E(t)&&Array.isArray(e)?e.map(e=>G(e,t.list.type)):e}function K(e,n){if(C(n)){if(!W(e))throw Error(`Response type requires { isOk: boolean, value: unknown } form value`);let r=e.isOk?n.response.ok:n.response.error,i=K(e.isOk?e.ok??e.value:e.err??e.value,r);return e.isOk?(0,t.responseOkCV)(i):(0,t.responseErrorCV)(i)}return D(G(e,n),n)}function q(e,t){if(e===void 0||e===``)return w(t)?{isNone:!0,value:null}:E(t)?[]:T(t)?{}:y(t)&&t===`bool`?!1:``;if(t===`principal`&&e.startsWith(`'`))return e.slice(1);if(w(t)||E(t)||T(t)||C(t))try{return JSON.parse(e)}catch{return e}return y(t)&&t===`bool`?e===`true`:e}function Ce(e,t){return t.map(t=>{let n=e[t.name];return K(q(Array.isArray(n)?n[0]:n,t.type),t.type)})}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 H({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?k(r):_(r,!0)}async function we(e,t){return P(await Y(e,t))}async function Te(e,t){return F(await Y(e,t))}function X(e){return(0,i.networkFrom)(e.network).client.baseUrl}async function Ee(e,n,r,i){let a=z(n,r),o=JSON.stringify((0,t.cvToHex)(a.keyCV)),[s,c]=e.split(`.`),l=xe(`${be(X(i))}/map_entry/${s}/${c}/${a.map.name}`,{proof:0,tip:J(i)});return _((0,t.hexToCV)((await(await fetch(l,{method:`POST`,body:o,headers:{"Content-Type":`application/json`,Accept:`application/json`,...B(i.apiKey,i.headers)}})).json()).data),!0)}async function De(e,n){let r=n.network,i=await(0,t.broadcastTransaction)({transaction:e,network:r});if(`error`in i)throw Error(`Error broadcasting tx: ${i.error} - ${i.reason} - ${JSON.stringify(`reason_data`in i?i.reason_data:void 0)}`);return{txId:i.txid,stacksTransaction:e}}var Oe=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 we(e,this.roOptions(t||{}))}roErr(e,t){return Te(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 ke(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:D(r,o)}}function Ae(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(T(t)){let n=Ne(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=s(e);r[n]=$(i[e],t)}),r}if(E(t))return Me(e).map(e=>$(e,t.list.type));if(w(t))return e===`none`?null:$(Q(e,`some`),t.optional);if(x(t))return e.slice(1,-1);if(S(t))return e.slice(2,-1);if(t===`bool`)return e===`true`;if(t===`uint128`)return BigInt(e.slice(1));if(t===`int128`)return BigInt(e);if(t===`trait_reference`||t===`principal`)return e.replace(/^'/,``);if(t===`none`)return null;if(b(t))return d(e.slice(2));if(C(t))return e.startsWith(`(ok`)?m($(Q(e,`ok`),t.response.ok)):h($(Q(e,`err`),t.response.error));throw Error(`Unable to parse cv string to value: ${e} ${JSON.stringify(t,null,2)}`)}const je=Array(255);for(let e=0;e<=255;++e)je[e]=e.toString(16).padStart(2,`0`);function Me(e){if(e.charAt(0)!==`[`||e.at(-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.at(-1)===`(`&&t.pop(),e.charAt(i)===`}`&&t.at(-1)===`{`&&t.pop(),e.charAt(i)===`]`&&t.at(-1)===`[`&&t.pop();let i=e.substring(r,e.length-1);return i.length>0&&n.push(i),n}function Ne(e){if(e.charAt(0)!==`{`||e.at(-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.at(-1)===`(`&&n.pop(),e.charAt(i)===`}`&&n.at(-1)===`{`&&n.pop(),e.charAt(i)===`]`&&n.at(-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}exports.ClarigenClient=Oe,exports.CoreNodeEventType=oe,exports.DEPLOYMENT_NETWORKS=he,exports.MAINNET_BURN_ADDRESS=o,exports.TESTNET_BURN_ADDRESS=a,exports.bootContractIdentifier=ne,exports.broadcast=De,exports.bytesToAscii=f,exports.bytesToHex=re,exports.callReadOnlyFunction=H,exports.contractFactory=R,exports.contractsFactory=_e,exports.createAssetInfo=Z,exports.cvToHex=t.cvToHex,exports.cvToJSON=k,exports.cvToString=O,exports.cvToValue=_,exports.deploymentFactory=ve,exports.err=h,exports.expectErr=F,exports.expectOk=P,exports.extractErrors=p,exports.fetchMapGet=Ee,exports.filterEvents=se,exports.findJsTupleKey=N,exports.formValueToCV=K,exports.formValueToParseable=G,exports.functionsFactory=L,exports.getApiUrl=X,exports.getContractIdentifier=ee,exports.getContractName=l,exports.getContractNameFromPath=u,exports.getContractPrincipalCV=te,exports.getTypeString=I,exports.hexToBytes=d,exports.hexToCV=t.hexToCV,exports.hexToCvValue=ue,exports.isClarityAbiBuffer=b,exports.isClarityAbiList=E,exports.isClarityAbiOptional=w,exports.isClarityAbiPrimitive=y,exports.isClarityAbiResponse=C,exports.isClarityAbiStringAscii=x,exports.isClarityAbiStringUtf8=S,exports.isClarityAbiTraitReference=de,exports.isClarityAbiTuple=T,exports.isNumber=ie,exports.isOptionalFormValue=U,exports.isResponse=le,exports.isResponseFormValue=W,exports.makeContracts=ce,exports.makeFungiblePostCondition=Ae,exports.makeNonFungiblePostCondition=ke,exports.mapFactory=z,exports.ok=m,exports.parseQueryValue=q,exports.parseReadOnlyResponse=V,exports.parseToCV=D,exports.principalToString=g,exports.projectErrors=ae,exports.projectFactory=ge,exports.pureProxy=me,exports.queryToFunctionArgs=Ce,exports.rawClarityToValue=$,exports.ro=Y,exports.roErr=Te,exports.roOk=we,exports.toCamelCase=s,exports.toKebabCase=c,exports.transformArgsArray=j,exports.transformArgsToCV=M,exports.transformObjectArgs=A;
|
|
1
|
+
const e=require(`./deployment-DN-sbX_m.cjs`);let t=require(`@stacks/transactions`),n=require(`@scure/base`),r=require(`@stacks/blockchain-api-client`),i=require(`@stacks/network`);const a=`ST000000000000000000002AMW42H`,o=`SP000000000000000000002Q6VF78`,s=(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 c(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 l(e,t=!0){let n=e.split(`.`)[1];return t?s(n):n}const u=e=>{let t=e.split(`/`).at(-1),[n]=(t==null?void 0:t.split(`.`))??[];return n},ee=e=>`${e.address}.${e.name}`,te=e=>{let n=u(e.contractFile);return(0,t.contractPrincipalCV)(e.address,n)};function ne(e,t){return`${t?o:a}.${e}`}function re(e){return n.hex.encode(e)}function d(e){return n.hex.decode(e)}function f(e){let t=Array.from(e);return String.fromCharCode.apply(null,t)}const p=e=>typeof e==`number`;function ie(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 ae(e){let{contracts:t}=e,n={};for(let e in t)n[e]=ie(t[e]);return n}let oe=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 se(e,t){return e.filter(e=>e.type===t)}function ce(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 m(e){return{isOk:!0,value:e}}function h(e){return{isOk:!1,value:e}}function le(e){return typeof e==`object`&&!!e&&`isOk`in e}function g(e){return e.value}function _(e,n=!1){switch(e.type){case t.ClarityType.BoolTrue:return!0;case t.ClarityType.BoolFalse:return!1;case t.ClarityType.Int:case t.ClarityType.UInt:return e.value;case t.ClarityType.Buffer:return d(e.value);case t.ClarityType.OptionalNone:return null;case t.ClarityType.OptionalSome:return _(e.value,!0);case t.ClarityType.ResponseErr:return n?h(_(e.value,!0)):_(e.value,!0);case t.ClarityType.ResponseOk:return n?m(_(e.value,!0)):_(e.value,!0);case t.ClarityType.PrincipalStandard:case t.ClarityType.PrincipalContract:return g(e);case t.ClarityType.List:return e.value.map(e=>_(e,!0));case t.ClarityType.Tuple:return Object.entries(e.value).reduce((e,[t,n])=>{let r=s(t);return{...e,[r]:_(n,!0)}},{});case t.ClarityType.StringASCII:return e.value;case t.ClarityType.StringUTF8:return e.value}}function ue(e,n=!1){return _((0,t.hexToCV)(e),n)}function v(e){if(!(typeof e==`bigint`||typeof e==`number`||typeof e==`string`))throw Error(`Invalid input type for integer`);return BigInt(e)}const y=e=>typeof e==`string`,b=e=>e.buffer!==void 0,x=e=>e[`string-ascii`]!==void 0,S=e=>e[`string-utf8`]!==void 0,C=e=>e.response!==void 0,w=e=>e.optional!==void 0,T=e=>e.tuple!==void 0,E=e=>e.list!==void 0,de=e=>e===`trait_reference`;function D(e,n){if(T(n)){if(typeof e!=`object`)throw Error(`Invalid tuple input`);let r={};return n.tuple.forEach(t=>{let n=e[N(t.name,e)];r[t.name]=D(n,t.type)}),(0,t.tupleCV)(r)}if(E(n))return(0,t.listCV)(e.map(e=>D(e,n.list.type)));if(w(n))return e===null?(0,t.noneCV)():(0,t.someCV)(D(e,n.optional));if(x(n)){if(typeof e!=`string`)throw Error(`Invalid string-ascii input`);return(0,t.stringAsciiCV)(e)}if(S(n)){if(typeof e!=`string`)throw Error(`Invalid string-ascii input`);return(0,t.stringUtf8CV)(e)}if(n===`bool`)return(0,t.parseToCV)(typeof e==`boolean`?e.toString():e,n);if(n===`uint128`)return(0,t.uintCV)(v(e).toString());if(n===`int128`)return(0,t.intCV)(v(e).toString());if(n===`trait_reference`){if(typeof e!=`string`)throw Error(`Invalid input for trait_reference`);let[n,r]=e.split(`.`);return(0,t.contractPrincipalCV)(n,r)}return b(n)?(0,t.bufferCV)(e):(0,t.parseToCV)(e,n)}function O(e,n){let r=typeof n==`object`?n:{encoding:n,indent:void 0,depth:void 0},i=r.encoding??`hex`,a=r.indent,o=r.depth??0;switch(e.type){case t.ClarityType.BoolTrue:return`true`;case t.ClarityType.BoolFalse:return`false`;case t.ClarityType.Int:return e.value.toString();case t.ClarityType.UInt:return`u${e.value.toString()}`;case t.ClarityType.Buffer:if(i===`tryAscii`){let t=f(d(e.value));if(/[ -~]/.test(t))return JSON.stringify(t)}return`0x${e.value}`;case t.ClarityType.OptionalNone:return`none`;case t.ClarityType.OptionalSome:return`(some ${O(e.value,r)})`;case t.ClarityType.ResponseErr:return`(err ${O(e.value,r)})`;case t.ClarityType.ResponseOk:return`(ok ${O(e.value,r)})`;case t.ClarityType.PrincipalStandard:case t.ClarityType.PrincipalContract:return`'${g(e)}`;case t.ClarityType.List:return`(list ${e.value.map(e=>O(e,r)).join(` `)})`;case t.ClarityType.Tuple:{let t=Object.keys(e.value);if(a===void 0||t.length===0)return`{ ${t.map(t=>`${t}: ${O(e.value[t],r)}`).join(`, `)} }`;let n=` `.repeat((o+1)*a),i=` `.repeat(o*a);return`{\n${t.map(t=>`${n}${t}: ${O(e.value[t],{...r,depth:o+1})}`).join(`,
|
|
2
|
+
`)}\n${i}}`}case t.ClarityType.StringASCII:return`"${e.value}"`;case t.ClarityType.StringUTF8:return`u"${e.value}"`}}function k(e,n=!1){switch(e.type){case t.ClarityType.BoolTrue:return!0;case t.ClarityType.BoolFalse:return!1;case t.ClarityType.Int:case t.ClarityType.UInt:return`${e.value}`;case t.ClarityType.Buffer:return e.value;case t.ClarityType.OptionalNone:return null;case t.ClarityType.OptionalSome:return k(e.value);case t.ClarityType.ResponseErr:return n?h(k(e.value)):k(e.value);case t.ClarityType.ResponseOk:return n?m(k(e.value)):k(e.value);case t.ClarityType.PrincipalStandard:case t.ClarityType.PrincipalContract:return g(e);case t.ClarityType.List:return e.value.map(e=>k(e));case t.ClarityType.Tuple:return Object.entries(e.value).reduce((e,[t,n])=>{let r=s(t);return{...e,[r]:k(n)}},{});case t.ClarityType.StringASCII:return e.value;case t.ClarityType.StringUTF8:return e.value}}function A(e,t){return e.args.map(e=>{let n=t[N(e.name,t)];return D(n,e.type)})}function j(e,t){return t.map((t,n)=>D(t,e.args[n].type))}function M(e,t){if(t.length===0)return[];let[n]=t;if(t.length===1&&e.args.length!==1)return A(e,n);if(typeof n==`object`&&!Array.isArray(n)&&n!==null)try{let t=!0;if(e.args.forEach(e=>{try{N(e.name,n)}catch{t=!1}}),t)return A(e,n)}catch{}return j(e,t)}function N(e,t){let n=Object.keys(t).find(t=>{let n=e===t,r=e===c(t);return n||r});if(!n)throw Error(`Error encoding JS tuple: ${e} not found in input.`);return n}function P(e){if(e.isOk)return e.value;throw Error(`Expected OK, received error: ${String(e.value)}`)}function F(e){if(!e.isOk)return e.value;throw Error(`Expected Err, received ok: ${String(e.value)}`)}function I(e){if(y(e))return e===`int128`?`int`:e===`uint128`?`uint`:e;if(b(e))return`(buff ${e.buffer.length})`;if(x(e))return`(string-ascii ${e[`string-ascii`].length})`;if(S(e))return`(string-utf8 ${e[`string-utf8`].length})`;if(C(e))return`(response ${I(e.response.ok)} ${I(e.response.error)})`;if(w(e))return`(optional ${I(e.optional)})`;if(T(e))return`{ ${e.tuple.map(e=>`${e.name}: ${I(e.type)}`).join(`, `)} }`;if(E(e))return`(list ${e.list.length} ${I(e.list.type)})`;throw Error(`Type string unsupported for Clarity type: ${JSON.stringify(e)}`)}const fe=[`devnet`,`simnet`,`testnet`,`mainnet`];function pe(e,t){let n=[];return Object.entries(e.contracts).forEach(([r,i])=>{let a=e.deployments[r][t];return a&&n.push([r,R(i,a)]),!1}),Object.fromEntries(n)}function me(e,t){return Object.fromEntries(Object.entries(e).map(([e,n])=>[e,R(n,`${t}.${n.contractName}`)]))}function L(e,t){return Object.fromEntries(Object.entries(e.functions).map(([n,r])=>[n,Object.assign((...n)=>{let i=M(r,n),[a,o]=t.split(`.`);return{functionArgs:i,contractAddress:a,contractName:o,function:r,functionName:r.name,nativeArgs:n,contractAbi:e}},{abi:r})]))}function R(e,t){let n={...e};return{...L(e,t),...n,identifier:t}}function he(t,n){let r={};return e.n(n.plan.batches).forEach(n=>{let i=e.a(n),[a,o]=i.split(`.`),c=s(o),l=t[c],u=t[c];if(u===void 0)throw Error(`Clarigen error: mismatch for contract '${c}'`);r[c]=u,u.contractFile=e.i(n),u.identifier=i,Object.keys(t[c].functions).forEach(e=>{let t=e;u[t]=((...e)=>{let n=l.functions[t];return{functionArgs:M(n,e),contractAddress:a,contractName:u.contractName,function:n,nativeArgs:e}})})}),r}function z(e,t){return{key:t,keyCV:D(t,e.key),map:e}}function B(e,t={}){let n={...t};return e&&(n[`x-api-key`]=e),n}function ge(e,t,n){return new r.SmartContractsApi(new r.Configuration({basePath:e,headers:B(t,n)}))}function _e(e){return`${e}/v2`}const ve=(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}[]`,ye(e,r));if(typeof r==`boolean`||p(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}},ye=(e,t)=>t!=null&&t.length?`${t.map((t,n)=>`${n>0?encodeURIComponent(`${e}[]`):``}=${encodeURIComponent(t)}`).join(`&`)}`:``;function V(e){if(e.okay)return(0,t.hexToCV)(e.result);throw Error(e.cause)}async function H(e){let{contractAddress:n,functionArgs:r,senderAddress:i=n,url:a}=e;return V(await ge(a,e.apiKey,e.headers).callReadOnlyFunction({...e,readOnlyFunctionArgs:{sender:i,arguments:r.map(e=>typeof e==`string`?e:(0,t.cvToHex)(e))}}))}function U(e){return typeof e==`object`&&!!e&&`isNone`in e&&typeof e.isNone==`boolean`}function W(e){return typeof e==`object`&&!!e&&`isOk`in e&&typeof e.isOk==`boolean`}function G(e,t){if(w(t))return U(e)?e.isNone?null:G(e.value,t.optional):e;if(b(t))return typeof e==`string`?d(e.startsWith(`0x`)?e.slice(2):e):e;if(T(t)){if(typeof e!=`object`||!e)return e;let n={};for(let r of t.tuple){let t=e[r.name];n[r.name]=G(t,r.type)}return n}return E(t)&&Array.isArray(e)?e.map(e=>G(e,t.list.type)):e}function K(e,n){if(C(n)){if(!W(e))throw Error(`Response type requires { isOk: boolean, value: unknown } form value`);let r=e.isOk?n.response.ok:n.response.error,i=K(e.isOk?e.ok??e.value:e.err??e.value,r);return e.isOk?(0,t.responseOkCV)(i):(0,t.responseErrorCV)(i)}return D(G(e,n),n)}function q(e,t){if(e===void 0||e===``)return w(t)?{isNone:!0,value:null}:E(t)?[]:T(t)?{}:y(t)&&t===`bool`?!1:``;if(t===`principal`&&e.startsWith(`'`))return e.slice(1);if(w(t)||E(t)||T(t)||C(t))try{return JSON.parse(e)}catch{return e}return y(t)&&t===`bool`?e===`true`:e}function be(e,t){return t.map(t=>{let n=e[t.name];return K(q(Array.isArray(n)?n[0]:n,t.type),t.type)})}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 H({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?k(r):_(r,!0)}async function xe(e,t){return P(await Y(e,t))}async function Se(e,t){return F(await Y(e,t))}function X(e){return(0,i.networkFrom)(e.network).client.baseUrl}async function Ce(e,n,r,i){let a=z(n,r),o=JSON.stringify((0,t.cvToHex)(a.keyCV)),[s,c]=e.split(`.`),l=ve(`${_e(X(i))}/map_entry/${s}/${c}/${a.map.name}`,{proof:0,tip:J(i)});return _((0,t.hexToCV)((await(await fetch(l,{method:`POST`,body:o,headers:{"Content-Type":`application/json`,Accept:`application/json`,...B(i.apiKey,i.headers)}})).json()).data),!0)}async function we(e,n){let r=n.network,i=await(0,t.broadcastTransaction)({transaction:e,network:r});if(`error`in i)throw Error(`Error broadcasting tx: ${i.error} - ${i.reason} - ${JSON.stringify(`reason_data`in i?i.reason_data:void 0)}`);return{txId:i.txid,stacksTransaction:e}}var Te=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 xe(e,this.roOptions(t||{}))}roErr(e,t){return Se(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 Ee(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:D(r,o)}}function De(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(T(t)){let n=Ae(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=s(e);r[n]=$(i[e],t)}),r}if(E(t))return ke(e).map(e=>$(e,t.list.type));if(w(t))return e===`none`?null:$(Q(e,`some`),t.optional);if(x(t))return e.slice(1,-1);if(S(t))return e.slice(2,-1);if(t===`bool`)return e===`true`;if(t===`uint128`)return BigInt(e.slice(1));if(t===`int128`)return BigInt(e);if(t===`trait_reference`||t===`principal`)return e.replace(/^'/,``);if(t===`none`)return null;if(b(t))return d(e.slice(2));if(C(t))return e.startsWith(`(ok`)?m($(Q(e,`ok`),t.response.ok)):h($(Q(e,`err`),t.response.error));throw Error(`Unable to parse cv string to value: ${e} ${JSON.stringify(t,null,2)}`)}const Oe=Array(255);for(let e=0;e<=255;++e)Oe[e]=e.toString(16).padStart(2,`0`);function ke(e){if(e.charAt(0)!==`[`||e.at(-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.at(-1)===`(`&&t.pop(),e.charAt(i)===`}`&&t.at(-1)===`{`&&t.pop(),e.charAt(i)===`]`&&t.at(-1)===`[`&&t.pop();let i=e.substring(r,e.length-1);return i.length>0&&n.push(i),n}function Ae(e){if(e.charAt(0)!==`{`||e.at(-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.at(-1)===`(`&&n.pop(),e.charAt(i)===`}`&&n.at(-1)===`{`&&n.pop(),e.charAt(i)===`]`&&n.at(-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}exports.ClarigenClient=Te,exports.CoreNodeEventType=oe,exports.DEPLOYMENT_NETWORKS=fe,exports.MAINNET_BURN_ADDRESS=o,exports.TESTNET_BURN_ADDRESS=a,exports.bootContractIdentifier=ne,exports.broadcast=we,exports.bytesToAscii=f,exports.bytesToHex=re,exports.callReadOnlyFunction=H,exports.contractFactory=R,exports.contractsFactory=me,exports.createAssetInfo=Z,exports.cvToHex=t.cvToHex,exports.cvToJSON=k,exports.cvToString=O,exports.cvToValue=_,exports.deploymentFactory=he,exports.err=h,exports.expectErr=F,exports.expectOk=P,exports.extractErrors=ie,exports.fetchMapGet=Ce,exports.filterEvents=se,exports.findJsTupleKey=N,exports.formValueToCV=K,exports.formValueToParseable=G,exports.functionsFactory=L,exports.getApiUrl=X,exports.getContractIdentifier=ee,exports.getContractName=l,exports.getContractNameFromPath=u,exports.getContractPrincipalCV=te,exports.getTypeString=I,exports.hexToBytes=d,exports.hexToCV=t.hexToCV,exports.hexToCvValue=ue,exports.isClarityAbiBuffer=b,exports.isClarityAbiList=E,exports.isClarityAbiOptional=w,exports.isClarityAbiPrimitive=y,exports.isClarityAbiResponse=C,exports.isClarityAbiStringAscii=x,exports.isClarityAbiStringUtf8=S,exports.isClarityAbiTraitReference=de,exports.isClarityAbiTuple=T,exports.isNumber=p,exports.isOptionalFormValue=U,exports.isResponse=le,exports.isResponseFormValue=W,exports.makeContracts=ce,exports.makeFungiblePostCondition=De,exports.makeNonFungiblePostCondition=Ee,exports.mapFactory=z,exports.ok=m,exports.parseQueryValue=q,exports.parseReadOnlyResponse=V,exports.parseToCV=D,exports.principalToString=g,exports.projectErrors=ae,exports.projectFactory=pe,exports.queryToFunctionArgs=be,exports.rawClarityToValue=$,exports.ro=Y,exports.roErr=Se,exports.roOk=xe,exports.toCamelCase=s,exports.toKebabCase=c,exports.transformArgsArray=j,exports.transformArgsToCV=M,exports.transformObjectArgs=A;
|
package/dist/index.d.cts
CHANGED
|
@@ -206,6 +206,7 @@ type ContractCall<T> = {
|
|
|
206
206
|
contractAddress: string;
|
|
207
207
|
contractName: string;
|
|
208
208
|
functionName: string;
|
|
209
|
+
contractAbi?: TypedAbi;
|
|
209
210
|
_r?: T;
|
|
210
211
|
};
|
|
211
212
|
interface ContractCallTyped<Args$1 extends UnknownArgs, R$1> extends Omit<ContractCall<R$1>, 'nativeArgs'> {
|
|
@@ -435,31 +436,6 @@ type MakeContractsOptions = {
|
|
|
435
436
|
};
|
|
436
437
|
declare function makeContracts<T extends Contracts<any>>(contracts: T, options?: MakeContractsOptions): ContractInstances<T>;
|
|
437
438
|
//#endregion
|
|
438
|
-
//#region src/pure/index.d.ts
|
|
439
|
-
type PureContractInfo = {
|
|
440
|
-
abi: ClarityAbi;
|
|
441
|
-
contractAddress: string;
|
|
442
|
-
contractName: string;
|
|
443
|
-
};
|
|
444
|
-
type ContractFn<T> = (args: any) => T;
|
|
445
|
-
type ContractReturn<C extends ContractFn<ContractCalls.ReadOnly<any>>> = C extends ContractFn<ContractCalls.ReadOnly<infer T>> ? T : unknown;
|
|
446
|
-
type ContractReturnOk<C extends ContractFn<ContractCalls.ReadOnly<any>>> = ContractReturn<C> extends Response<infer O, any> ? O : unknown;
|
|
447
|
-
type ContractReturnErr<C extends ContractFn<ContractCalls.ReadOnly<any>>> = ContractReturn<C> extends Response<any, infer E> ? E : unknown;
|
|
448
|
-
type MapGet<Key, _Val> = {
|
|
449
|
-
map: ClarityAbiMap;
|
|
450
|
-
nativeKey: Key;
|
|
451
|
-
key: ClarityValue;
|
|
452
|
-
contractAddress: string;
|
|
453
|
-
contractName: string;
|
|
454
|
-
};
|
|
455
|
-
declare namespace ContractCalls {
|
|
456
|
-
type ReadOnly<T> = ContractCall<T>;
|
|
457
|
-
type Public<Ok, Err> = ContractCall<Response<Ok, Err>>;
|
|
458
|
-
type Private<T> = ContractCall<T>;
|
|
459
|
-
type Map<Key, Val> = MapGet<Key, Val>;
|
|
460
|
-
}
|
|
461
|
-
declare const pureProxy: <T extends object>(target: PureContractInfo) => T;
|
|
462
|
-
//#endregion
|
|
463
439
|
//#region src/api/call-read-only.d.ts
|
|
464
440
|
type ReadOnlyOptions = {
|
|
465
441
|
contractAddress: string;
|
|
@@ -589,7 +565,7 @@ type IsDeploymentNetwork<T> = T extends DeploymentNetwork ? DeploymentNetwork ex
|
|
|
589
565
|
type ProjectFactory<P extends Project<any, any>, N$1 extends DeploymentNetwork> = { [ContractName in keyof P['contracts']]: FullContractWithIdentifier<P['contracts'][ContractName], IsDeploymentNetwork<N$1> extends true ? '' : NonNullable<P['deployments'][ContractName][N$1]>> };
|
|
590
566
|
declare function projectFactory<P extends Project<C, D>, N$1 extends DeploymentNetwork, C extends AllContracts, D extends DeploymentsForContracts<C>>(project: P, network: N$1): ProjectFactory<P, N$1>;
|
|
591
567
|
declare function contractsFactory<T extends AllContracts>(contracts: T, deployer: string): ContractFactory<T>;
|
|
592
|
-
declare function functionsFactory<T extends
|
|
568
|
+
declare function functionsFactory<T extends TypedAbi>(abi: T, identifier: string): FunctionsToContractCalls<T>;
|
|
593
569
|
/**
|
|
594
570
|
* Provide a contract's types and it's contract identifier to generate
|
|
595
571
|
* a full contract object with all functions available.
|
|
@@ -623,4 +599,4 @@ type RawClarityTypeTo<T extends ClarityAbiType, A$1 = any> = T extends ClarityAb
|
|
|
623
599
|
type ResponseType<F$1 extends TypedAbiFunction<UnknownArgs, any>> = F$1 extends TypedAbiFunction<infer A, infer R> ? R : never;
|
|
624
600
|
declare function rawClarityToValue<T = any>(input: string, type: ClarityAbiType): T;
|
|
625
601
|
//#endregion
|
|
626
|
-
export { AbiPrimitiveTo, AbiTupleTo, AbiTypeTo, AllContracts, ApiOptions, ApiOptionsBase, ApiOptionsJsonize, ApiOptionsNetwork, ApiOptionsNoJson, ApiOptionsUrl, ArgsRecord, ArgsTuple, ArgsType, AssetNames, CVInput, ClarigenClient, type ClarityAbi, type ClarityAbiArg, type ClarityAbiFunction, type ClarityAbiMap, type ClarityAbiType, type ClarityAbiTypeBool, type ClarityAbiTypeBuffer, ClarityAbiTypeFungibleToken, type ClarityAbiTypeInt128, type ClarityAbiTypeList, ClarityAbiTypeNonFungibleToken, type ClarityAbiTypeNone, type ClarityAbiTypeOptional, type ClarityAbiTypePrimitive, type ClarityAbiTypePrincipal, type ClarityAbiTypeResponse, type ClarityAbiTypeStringAscii, type ClarityAbiTypeStringUtf8, type ClarityAbiTypeTraitReference, ClarityAbiTypeTuple, type ClarityAbiTypeUInt128, ClarityAbiVariable, type ClarityVersion, Contract, ContractBuilder, ContractCall, ContractCallFunction, ContractCallTyped,
|
|
602
|
+
export { AbiPrimitiveTo, AbiTupleTo, AbiTypeTo, AllContracts, ApiOptions, ApiOptionsBase, ApiOptionsJsonize, ApiOptionsNetwork, ApiOptionsNoJson, ApiOptionsUrl, ArgsRecord, ArgsTuple, ArgsType, AssetNames, CVInput, ClarigenClient, type ClarityAbi, type ClarityAbiArg, type ClarityAbiFunction, type ClarityAbiMap, type ClarityAbiType, type ClarityAbiTypeBool, type ClarityAbiTypeBuffer, ClarityAbiTypeFungibleToken, type ClarityAbiTypeInt128, type ClarityAbiTypeList, ClarityAbiTypeNonFungibleToken, type ClarityAbiTypeNone, type ClarityAbiTypeOptional, type ClarityAbiTypePrimitive, type ClarityAbiTypePrincipal, type ClarityAbiTypeResponse, type ClarityAbiTypeStringAscii, type ClarityAbiTypeStringUtf8, type ClarityAbiTypeTraitReference, ClarityAbiTypeTuple, type ClarityAbiTypeUInt128, ClarityAbiVariable, type ClarityVersion, Contract, ContractBuilder, ContractCall, ContractCallFunction, ContractCallTyped, ContractDeployments, ContractFactory, ContractFunctions, ContractInstance, ContractInstances, Contracts, ContractsToContractCalls, CoreNodeEvent, CoreNodeEventBase, CoreNodeEventType, CvToStringOptions, DEPLOYMENT_NETWORKS, DeploymentNetwork, type DeploymentPlan, DeploymentsForContracts, ErrType, ErrorCodes, ExtractArgs, ExtractArgsRecord, FnToContractCall, FtBurnEvent, FtMintEvent, FtTransferEvent, FullContract, FullContractWithIdentifier, FunctionReturnType, FunctionsToContractCalls, JsonIfOption, Jsonize, Kebab, KebabObject, MAINNET_BURN_ADDRESS, MapFactory, Network, NftAssetType, NftBurnEvent, NftMintEvent, NftTransferEvent, NonStandardClarityValue, OkType, OptionalFormValue, Project, ProjectErrors, ProjectFactory, RawClarityTypeTo, ReadOnlyOptions, ReadonlyTuple, Response, ResponseErr, ResponseFormValue, ResponseOk, ResponseType, ResultAssets, type SimnetDeploymentPlan, SmartContractEvent, type StacksEpochId, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TESTNET_BURN_ADDRESS, TupleInput, TypedAbi, type TypedAbiArg, type TypedAbiFunction, TypedAbiMap, TypedAbiVariable, UnionToIntersection, UnknownArg, UnknownArgs, bootContractIdentifier, broadcast, bytesToAscii, bytesToHex, callReadOnlyFunction, contractFactory, contractsFactory, createAssetInfo, cvToHex, cvToJSON, cvToString, cvToValue, deploymentFactory, err, expectErr, expectOk, extractErrors, fetchMapGet, filterEvents, findJsTupleKey, formValueToCV, formValueToParseable, functionsFactory, getApiUrl, getContractIdentifier, getContractName, getContractNameFromPath, getContractPrincipalCV, getTypeString, hexToBytes, hexToCV, hexToCvValue, isClarityAbiBuffer, isClarityAbiList, isClarityAbiOptional, isClarityAbiPrimitive, isClarityAbiResponse, isClarityAbiStringAscii, isClarityAbiStringUtf8, isClarityAbiTraitReference, isClarityAbiTuple, isNumber, isOptionalFormValue, isResponse, isResponseFormValue, makeContracts, makeFungiblePostCondition, makeNonFungiblePostCondition, mapFactory, ok, parseQueryValue, parseReadOnlyResponse, parseToCV, principalToString, projectErrors, projectFactory, queryToFunctionArgs, rawClarityToValue, ro, roErr, roOk, toCamelCase, toKebabCase, transformArgsArray, transformArgsToCV, transformObjectArgs };
|
package/dist/index.d.mts
CHANGED
|
@@ -206,6 +206,7 @@ type ContractCall<T> = {
|
|
|
206
206
|
contractAddress: string;
|
|
207
207
|
contractName: string;
|
|
208
208
|
functionName: string;
|
|
209
|
+
contractAbi?: TypedAbi;
|
|
209
210
|
_r?: T;
|
|
210
211
|
};
|
|
211
212
|
interface ContractCallTyped<Args$1 extends UnknownArgs, R$1> extends Omit<ContractCall<R$1>, 'nativeArgs'> {
|
|
@@ -435,31 +436,6 @@ type MakeContractsOptions = {
|
|
|
435
436
|
};
|
|
436
437
|
declare function makeContracts<T extends Contracts<any>>(contracts: T, options?: MakeContractsOptions): ContractInstances<T>;
|
|
437
438
|
//#endregion
|
|
438
|
-
//#region src/pure/index.d.ts
|
|
439
|
-
type PureContractInfo = {
|
|
440
|
-
abi: ClarityAbi;
|
|
441
|
-
contractAddress: string;
|
|
442
|
-
contractName: string;
|
|
443
|
-
};
|
|
444
|
-
type ContractFn<T> = (args: any) => T;
|
|
445
|
-
type ContractReturn<C extends ContractFn<ContractCalls.ReadOnly<any>>> = C extends ContractFn<ContractCalls.ReadOnly<infer T>> ? T : unknown;
|
|
446
|
-
type ContractReturnOk<C extends ContractFn<ContractCalls.ReadOnly<any>>> = ContractReturn<C> extends Response<infer O, any> ? O : unknown;
|
|
447
|
-
type ContractReturnErr<C extends ContractFn<ContractCalls.ReadOnly<any>>> = ContractReturn<C> extends Response<any, infer E> ? E : unknown;
|
|
448
|
-
type MapGet<Key, _Val> = {
|
|
449
|
-
map: ClarityAbiMap;
|
|
450
|
-
nativeKey: Key;
|
|
451
|
-
key: ClarityValue;
|
|
452
|
-
contractAddress: string;
|
|
453
|
-
contractName: string;
|
|
454
|
-
};
|
|
455
|
-
declare namespace ContractCalls {
|
|
456
|
-
type ReadOnly<T> = ContractCall<T>;
|
|
457
|
-
type Public<Ok, Err> = ContractCall<Response<Ok, Err>>;
|
|
458
|
-
type Private<T> = ContractCall<T>;
|
|
459
|
-
type Map<Key, Val> = MapGet<Key, Val>;
|
|
460
|
-
}
|
|
461
|
-
declare const pureProxy: <T extends object>(target: PureContractInfo) => T;
|
|
462
|
-
//#endregion
|
|
463
439
|
//#region src/api/call-read-only.d.ts
|
|
464
440
|
type ReadOnlyOptions = {
|
|
465
441
|
contractAddress: string;
|
|
@@ -589,7 +565,7 @@ type IsDeploymentNetwork<T> = T extends DeploymentNetwork ? DeploymentNetwork ex
|
|
|
589
565
|
type ProjectFactory<P extends Project<any, any>, N$1 extends DeploymentNetwork> = { [ContractName in keyof P['contracts']]: FullContractWithIdentifier<P['contracts'][ContractName], IsDeploymentNetwork<N$1> extends true ? '' : NonNullable<P['deployments'][ContractName][N$1]>> };
|
|
590
566
|
declare function projectFactory<P extends Project<C, D>, N$1 extends DeploymentNetwork, C extends AllContracts, D extends DeploymentsForContracts<C>>(project: P, network: N$1): ProjectFactory<P, N$1>;
|
|
591
567
|
declare function contractsFactory<T extends AllContracts>(contracts: T, deployer: string): ContractFactory<T>;
|
|
592
|
-
declare function functionsFactory<T extends
|
|
568
|
+
declare function functionsFactory<T extends TypedAbi>(abi: T, identifier: string): FunctionsToContractCalls<T>;
|
|
593
569
|
/**
|
|
594
570
|
* Provide a contract's types and it's contract identifier to generate
|
|
595
571
|
* a full contract object with all functions available.
|
|
@@ -623,4 +599,4 @@ type RawClarityTypeTo<T extends ClarityAbiType, A$1 = any> = T extends ClarityAb
|
|
|
623
599
|
type ResponseType<F$1 extends TypedAbiFunction<UnknownArgs, any>> = F$1 extends TypedAbiFunction<infer A, infer R> ? R : never;
|
|
624
600
|
declare function rawClarityToValue<T = any>(input: string, type: ClarityAbiType): T;
|
|
625
601
|
//#endregion
|
|
626
|
-
export { AbiPrimitiveTo, AbiTupleTo, AbiTypeTo, AllContracts, ApiOptions, ApiOptionsBase, ApiOptionsJsonize, ApiOptionsNetwork, ApiOptionsNoJson, ApiOptionsUrl, ArgsRecord, ArgsTuple, ArgsType, AssetNames, CVInput, ClarigenClient, type ClarityAbi, type ClarityAbiArg, type ClarityAbiFunction, type ClarityAbiMap, type ClarityAbiType, type ClarityAbiTypeBool, type ClarityAbiTypeBuffer, ClarityAbiTypeFungibleToken, type ClarityAbiTypeInt128, type ClarityAbiTypeList, ClarityAbiTypeNonFungibleToken, type ClarityAbiTypeNone, type ClarityAbiTypeOptional, type ClarityAbiTypePrimitive, type ClarityAbiTypePrincipal, type ClarityAbiTypeResponse, type ClarityAbiTypeStringAscii, type ClarityAbiTypeStringUtf8, type ClarityAbiTypeTraitReference, ClarityAbiTypeTuple, type ClarityAbiTypeUInt128, ClarityAbiVariable, type ClarityVersion, Contract, ContractBuilder, ContractCall, ContractCallFunction, ContractCallTyped,
|
|
602
|
+
export { AbiPrimitiveTo, AbiTupleTo, AbiTypeTo, AllContracts, ApiOptions, ApiOptionsBase, ApiOptionsJsonize, ApiOptionsNetwork, ApiOptionsNoJson, ApiOptionsUrl, ArgsRecord, ArgsTuple, ArgsType, AssetNames, CVInput, ClarigenClient, type ClarityAbi, type ClarityAbiArg, type ClarityAbiFunction, type ClarityAbiMap, type ClarityAbiType, type ClarityAbiTypeBool, type ClarityAbiTypeBuffer, ClarityAbiTypeFungibleToken, type ClarityAbiTypeInt128, type ClarityAbiTypeList, ClarityAbiTypeNonFungibleToken, type ClarityAbiTypeNone, type ClarityAbiTypeOptional, type ClarityAbiTypePrimitive, type ClarityAbiTypePrincipal, type ClarityAbiTypeResponse, type ClarityAbiTypeStringAscii, type ClarityAbiTypeStringUtf8, type ClarityAbiTypeTraitReference, ClarityAbiTypeTuple, type ClarityAbiTypeUInt128, ClarityAbiVariable, type ClarityVersion, Contract, ContractBuilder, ContractCall, ContractCallFunction, ContractCallTyped, ContractDeployments, ContractFactory, ContractFunctions, ContractInstance, ContractInstances, Contracts, ContractsToContractCalls, CoreNodeEvent, CoreNodeEventBase, CoreNodeEventType, CvToStringOptions, DEPLOYMENT_NETWORKS, DeploymentNetwork, type DeploymentPlan, DeploymentsForContracts, ErrType, ErrorCodes, ExtractArgs, ExtractArgsRecord, FnToContractCall, FtBurnEvent, FtMintEvent, FtTransferEvent, FullContract, FullContractWithIdentifier, FunctionReturnType, FunctionsToContractCalls, JsonIfOption, Jsonize, Kebab, KebabObject, MAINNET_BURN_ADDRESS, MapFactory, Network, NftAssetType, NftBurnEvent, NftMintEvent, NftTransferEvent, NonStandardClarityValue, OkType, OptionalFormValue, Project, ProjectErrors, ProjectFactory, RawClarityTypeTo, ReadOnlyOptions, ReadonlyTuple, Response, ResponseErr, ResponseFormValue, ResponseOk, ResponseType, ResultAssets, type SimnetDeploymentPlan, SmartContractEvent, type StacksEpochId, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TESTNET_BURN_ADDRESS, TupleInput, TypedAbi, type TypedAbiArg, type TypedAbiFunction, TypedAbiMap, TypedAbiVariable, UnionToIntersection, UnknownArg, UnknownArgs, bootContractIdentifier, broadcast, bytesToAscii, bytesToHex, callReadOnlyFunction, contractFactory, contractsFactory, createAssetInfo, cvToHex, cvToJSON, cvToString, cvToValue, deploymentFactory, err, expectErr, expectOk, extractErrors, fetchMapGet, filterEvents, findJsTupleKey, formValueToCV, formValueToParseable, functionsFactory, getApiUrl, getContractIdentifier, getContractName, getContractNameFromPath, getContractPrincipalCV, getTypeString, hexToBytes, hexToCV, hexToCvValue, isClarityAbiBuffer, isClarityAbiList, isClarityAbiOptional, isClarityAbiPrimitive, isClarityAbiResponse, isClarityAbiStringAscii, isClarityAbiStringUtf8, isClarityAbiTraitReference, isClarityAbiTuple, isNumber, isOptionalFormValue, isResponse, isResponseFormValue, makeContracts, makeFungiblePostCondition, makeNonFungiblePostCondition, mapFactory, ok, parseQueryValue, parseReadOnlyResponse, parseToCV, principalToString, projectErrors, projectFactory, queryToFunctionArgs, rawClarityToValue, ro, roErr, roOk, toCamelCase, toKebabCase, transformArgsArray, transformArgsToCV, transformObjectArgs };
|
package/dist/index.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
import{a as e,i as t,n}from"./deployment-CGEqh8yH.mjs";import{ClarityType as r,broadcastTransaction as i,bufferCV as a,contractPrincipalCV as o,cvToHex as s,cvToHex as c,hexToCV as l,hexToCV as u,intCV as ee,listCV as te,noneCV as ne,parseToCV as d,responseErrorCV as re,responseOkCV as ie,someCV as ae,stringAsciiCV as oe,stringUtf8CV as se,tupleCV as ce,uintCV as le}from"@stacks/transactions";import{hex as f}from"@scure/base";import{Configuration as ue,SmartContractsApi as de}from"@stacks/blockchain-api-client";import{networkFrom as fe}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 pe(e,t=!0){let n=e.split(`.`)[1];return t?h(n):n}const _=e=>{let t=e.split(`/`).at(-1),[n]=(t==null?void 0:t.split(`.`))??[];return n},me=e=>`${e.address}.${e.name}`,he=e=>{let t=_(e.contractFile);return o(e.address,t)};function ge(e,t){return`${t?m:p}.${e}`}function _e(e){return f.encode(e)}function v(e){return f.decode(e)}function ve(e){let t=Array.from(e);return String.fromCharCode.apply(null,t)}const ye=e=>typeof e==`number`;function y(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 be(e){let{contracts:t}=e,n={};for(let e in t)n[e]=y(t[e]);return n}let xe=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 Se(e,t){return e.filter(e=>e.type===t)}function Ce(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 b(e){return{isOk:!0,value:e}}function x(e){return{isOk:!1,value:e}}function we(e){return typeof e==`object`&&!!e&&`isOk`in e}function S(e){return e.value}function C(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 C(e.value,!0);case r.ResponseErr:return t?x(C(e.value,!0)):C(e.value,!0);case r.ResponseOk:return t?b(C(e.value,!0)):C(e.value,!0);case r.PrincipalStandard:case r.PrincipalContract:return S(e);case r.List:return e.value.map(e=>C(e,!0));case r.Tuple:return Object.entries(e.value).reduce((e,[t,n])=>{let r=h(t);return{...e,[r]:C(n,!0)}},{});case r.StringASCII:return e.value;case r.StringUTF8:return e.value}}function Te(e,t=!1){return C(u(e),t)}function w(e){if(!(typeof e==`bigint`||typeof e==`number`||typeof e==`string`))throw Error(`Invalid input type for integer`);return BigInt(e)}const T=e=>typeof e==`string`,E=e=>e.buffer!==void 0,D=e=>e[`string-ascii`]!==void 0,O=e=>e[`string-utf8`]!==void 0,k=e=>e.response!==void 0,A=e=>e.optional!==void 0,j=e=>e.tuple!==void 0,M=e=>e.list!==void 0,Ee=e=>e===`trait_reference`;function N(e,t){if(j(t)){if(typeof e!=`object`)throw Error(`Invalid tuple input`);let n={};return t.tuple.forEach(t=>{let r=e[z(t.name,e)];n[t.name]=N(r,t.type)}),ce(n)}if(M(t))return te(e.map(e=>N(e,t.list.type)));if(A(t))return e===null?ne():ae(N(e,t.optional));if(D(t)){if(typeof e!=`string`)throw Error(`Invalid string-ascii input`);return oe(e)}if(O(t)){if(typeof e!=`string`)throw Error(`Invalid string-ascii input`);return se(e)}if(t===`bool`)return d(typeof e==`boolean`?e.toString():e,t);if(t===`uint128`)return le(w(e).toString());if(t===`int128`)return ee(w(e).toString());if(t===`trait_reference`){if(typeof e!=`string`)throw Error(`Invalid input for trait_reference`);let[t,n]=e.split(`.`);return o(t,n)}return E(t)?a(e):d(e,t)}function P(e,t){let n=typeof t==`object`?t:{encoding:t,indent:void 0,depth:void 0},i=n.encoding??`hex`,a=n.indent,o=n.depth??0;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(i===`tryAscii`){let t=ve(v(e.value));if(/[ -~]/.test(t))return JSON.stringify(t)}return`0x${e.value}`;case r.OptionalNone:return`none`;case r.OptionalSome:return`(some ${P(e.value,n)})`;case r.ResponseErr:return`(err ${P(e.value,n)})`;case r.ResponseOk:return`(ok ${P(e.value,n)})`;case r.PrincipalStandard:case r.PrincipalContract:return`'${S(e)}`;case r.List:return`(list ${e.value.map(e=>P(e,n)).join(` `)})`;case r.Tuple:{let t=Object.keys(e.value);if(a===void 0||t.length===0)return`{ ${t.map(t=>`${t}: ${P(e.value[t],n)}`).join(`, `)} }`;let r=` `.repeat((o+1)*a),i=` `.repeat(o*a);return`{\n${t.map(t=>`${r}${t}: ${P(e.value[t],{...n,depth:o+1})}`).join(`,
|
|
2
|
-
`)}\n${i}}`}case r.StringASCII:return`"${e.value}"`;case r.StringUTF8:return`u"${e.value}"`}}function F(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 F(e.value);case r.ResponseErr:return t?x(F(e.value)):F(e.value);case r.ResponseOk:return t?b(F(e.value)):F(e.value);case r.PrincipalStandard:case r.PrincipalContract:return S(e);case r.List:return e.value.map(e=>F(e));case r.Tuple:return Object.entries(e.value).reduce((e,[t,n])=>{let r=h(t);return{...e,[r]:F(n)}},{});case r.StringASCII:return e.value;case r.StringUTF8:return e.value}}function I(e,t){return e.args.map(e=>{let n=t[z(e.name,t)];return N(n,e.type)})}function L(e,t){return t.map((t,n)=>N(t,e.args[n].type))}function R(e,t){if(t.length===0)return[];let[n]=t;if(t.length===1&&e.args.length!==1)return I(e,n);if(typeof n==`object`&&!Array.isArray(n)&&n!==null)try{let t=!0;if(e.args.forEach(e=>{try{z(e.name,n)}catch{t=!1}}),t)return I(e,n)}catch{}return L(e,t)}function z(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 B(e){if(e.isOk)return e.value;throw Error(`Expected OK, received error: ${String(e.value)}`)}function V(e){if(!e.isOk)return e.value;throw Error(`Expected Err, received ok: ${String(e.value)}`)}function H(e){if(T(e))return e===`int128`?`int`:e===`uint128`?`uint`:e;if(E(e))return`(buff ${e.buffer.length})`;if(D(e))return`(string-ascii ${e[`string-ascii`].length})`;if(O(e))return`(string-utf8 ${e[`string-utf8`].length})`;if(k(e))return`(response ${H(e.response.ok)} ${H(e.response.error)})`;if(A(e))return`(optional ${H(e.optional)})`;if(j(e))return`{ ${e.tuple.map(e=>`${e.name}: ${H(e.type)}`).join(`, `)} }`;if(M(e))return`(list ${e.list.length} ${H(e.list.type)})`;throw Error(`Type string unsupported for Clarity type: ${JSON.stringify(e)}`)}function De(e,t){let n=e.abi.functions.find(e=>h(e.name)===t);if(n)return(...t)=>({functionArgs:R(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=N(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 Oe={get:De},ke=e=>new Proxy(e,Oe),Ae=[`devnet`,`simnet`,`testnet`,`mainnet`];function je(e,t){let n=[];return Object.entries(e.contracts).forEach(([r,i])=>{let a=e.deployments[r][t];return a&&n.push([r,W(i,a)]),!1}),Object.fromEntries(n)}function Me(e,t){return Object.fromEntries(Object.entries(e).map(([e,n])=>[e,W(n,`${t}.${n.contractName}`)]))}function U(e,t){return Object.fromEntries(Object.entries(e).map(([e,n])=>[e,Object.assign((...e)=>{let r=R(n,e),[i,a]=t.split(`.`);return{functionArgs:r,contractAddress:i,contractName:a,function:n,functionName:n.name,nativeArgs:e}},{abi:n})]))}function W(e,t){let n={...e};return{...U(e.functions,t),...n,identifier:t}}function Ne(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:R(n,e),contractAddress:o,contractName:u.contractName,function:n,nativeArgs:e}})})}),a}function G(e,t){return{key:t,keyCV:N(t,e.key),map:e}}function K(e,t={}){let n={...t};return e&&(n[`x-api-key`]=e),n}function Pe(e,t,n){return new de(new ue({basePath:e,headers:K(t,n)}))}function Fe(e){return`${e}/v2`}const Ie=(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}[]`,Le(e,r));if(typeof r==`boolean`||ye(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}},Le=(e,t)=>t!=null&&t.length?`${t.map((t,n)=>`${n>0?encodeURIComponent(`${e}[]`):``}=${encodeURIComponent(t)}`).join(`&`)}`:``;function Re(e){if(e.okay)return u(e.result);throw Error(e.cause)}async function ze(e){let{contractAddress:t,functionArgs:n,senderAddress:r=t,url:i}=e;return Re(await Pe(i,e.apiKey,e.headers).callReadOnlyFunction({...e,readOnlyFunctionArgs:{sender:r,arguments:n.map(e=>typeof e==`string`?e:c(e))}}))}function Be(e){return typeof e==`object`&&!!e&&`isNone`in e&&typeof e.isNone==`boolean`}function Ve(e){return typeof e==`object`&&!!e&&`isOk`in e&&typeof e.isOk==`boolean`}function q(e,t){if(A(t))return Be(e)?e.isNone?null:q(e.value,t.optional):e;if(E(t))return typeof e==`string`?v(e.startsWith(`0x`)?e.slice(2):e):e;if(j(t)){if(typeof e!=`object`||!e)return e;let n={};for(let r of t.tuple){let t=e[r.name];n[r.name]=q(t,r.type)}return n}return M(t)&&Array.isArray(e)?e.map(e=>q(e,t.list.type)):e}function J(e,t){if(k(t)){if(!Ve(e))throw Error(`Response type requires { isOk: boolean, value: unknown } form value`);let n=e.isOk?t.response.ok:t.response.error,r=J(e.isOk?e.ok??e.value:e.err??e.value,n);return e.isOk?ie(r):re(r)}return N(q(e,t),t)}function He(e,t){if(e===void 0||e===``)return A(t)?{isNone:!0,value:null}:M(t)?[]:j(t)?{}:T(t)&&t===`bool`?!1:``;if(t===`principal`&&e.startsWith(`'`))return e.slice(1);if(A(t)||M(t)||j(t)||k(t))try{return JSON.parse(e)}catch{return e}return T(t)&&t===`bool`?e===`true`:e}function Ue(e,t){return t.map(t=>{let n=e[t.name];return J(He(Array.isArray(n)?n[0]:n,t.type),t.type)})}function We(e){if(e.latest!==!1)return e.latest||e.tip===void 0?`latest`:e.tip}async function Y(e,t){let n=We(t),r=await ze({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?F(r):C(r,!0)}async function Ge(e,t){return B(await Y(e,t))}async function Ke(e,t){return V(await Y(e,t))}function X(e){return fe(e.network).client.baseUrl}async function qe(e,t,n,r){let i=G(t,n),a=JSON.stringify(s(i.keyCV)),[o,c]=e.split(`.`),u=Ie(`${Fe(X(r))}/map_entry/${o}/${c}/${i.map.name}`,{proof:0,tip:We(r)});return C(l((await(await fetch(u,{method:`POST`,body:a,headers:{"Content-Type":`application/json`,Accept:`application/json`,...K(r.apiKey,r.headers)}})).json()).data),!0)}async function Je(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 Ye=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 Ge(e,this.roOptions(t||{}))}roErr(e,t){return Ke(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 Xe(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:N(r,o)}}function Ze(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(j(t)){let n=et(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}if(M(t))return $e(e).map(e=>$(e,t.list.type));if(A(t))return e===`none`?null:$(Q(e,`some`),t.optional);if(D(t))return e.slice(1,-1);if(O(t))return e.slice(2,-1);if(t===`bool`)return e===`true`;if(t===`uint128`)return BigInt(e.slice(1));if(t===`int128`)return BigInt(e);if(t===`trait_reference`||t===`principal`)return e.replace(/^'/,``);if(t===`none`)return null;if(E(t))return v(e.slice(2));if(k(t))return e.startsWith(`(ok`)?b($(Q(e,`ok`),t.response.ok)):x($(Q(e,`err`),t.response.error));throw Error(`Unable to parse cv string to value: ${e} ${JSON.stringify(t,null,2)}`)}const Qe=Array(255);for(let e=0;e<=255;++e)Qe[e]=e.toString(16).padStart(2,`0`);function $e(e){if(e.charAt(0)!==`[`||e.at(-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.at(-1)===`(`&&t.pop(),e.charAt(i)===`}`&&t.at(-1)===`{`&&t.pop(),e.charAt(i)===`]`&&t.at(-1)===`[`&&t.pop();let i=e.substring(r,e.length-1);return i.length>0&&n.push(i),n}function et(e){if(e.charAt(0)!==`{`||e.at(-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.at(-1)===`(`&&n.pop(),e.charAt(i)===`}`&&n.at(-1)===`{`&&n.pop(),e.charAt(i)===`]`&&n.at(-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{Ye as ClarigenClient,xe as CoreNodeEventType,Ae as DEPLOYMENT_NETWORKS,m as MAINNET_BURN_ADDRESS,p as TESTNET_BURN_ADDRESS,ge as bootContractIdentifier,Je as broadcast,ve as bytesToAscii,_e as bytesToHex,ze as callReadOnlyFunction,W as contractFactory,Me as contractsFactory,Z as createAssetInfo,s as cvToHex,F as cvToJSON,P as cvToString,C as cvToValue,Ne as deploymentFactory,x as err,V as expectErr,B as expectOk,y as extractErrors,qe as fetchMapGet,Se as filterEvents,z as findJsTupleKey,J as formValueToCV,q as formValueToParseable,U as functionsFactory,X as getApiUrl,me as getContractIdentifier,pe as getContractName,_ as getContractNameFromPath,he as getContractPrincipalCV,H as getTypeString,v as hexToBytes,l as hexToCV,Te as hexToCvValue,E as isClarityAbiBuffer,M as isClarityAbiList,A as isClarityAbiOptional,T as isClarityAbiPrimitive,k as isClarityAbiResponse,D as isClarityAbiStringAscii,O as isClarityAbiStringUtf8,Ee as isClarityAbiTraitReference,j as isClarityAbiTuple,ye as isNumber,Be as isOptionalFormValue,we as isResponse,Ve as isResponseFormValue,Ce as makeContracts,Ze as makeFungiblePostCondition,Xe as makeNonFungiblePostCondition,G as mapFactory,b as ok,He as parseQueryValue,Re as parseReadOnlyResponse,N as parseToCV,S as principalToString,be as projectErrors,je as projectFactory,ke as pureProxy,Ue as queryToFunctionArgs,$ as rawClarityToValue,Y as ro,Ke as roErr,Ge as roOk,h as toCamelCase,g as toKebabCase,L as transformArgsArray,R as transformArgsToCV,I as transformObjectArgs};
|
|
2
|
+
`)}\n${i}}`}case r.StringASCII:return`"${e.value}"`;case r.StringUTF8:return`u"${e.value}"`}}function F(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 F(e.value);case r.ResponseErr:return t?x(F(e.value)):F(e.value);case r.ResponseOk:return t?b(F(e.value)):F(e.value);case r.PrincipalStandard:case r.PrincipalContract:return S(e);case r.List:return e.value.map(e=>F(e));case r.Tuple:return Object.entries(e.value).reduce((e,[t,n])=>{let r=h(t);return{...e,[r]:F(n)}},{});case r.StringASCII:return e.value;case r.StringUTF8:return e.value}}function I(e,t){return e.args.map(e=>{let n=t[z(e.name,t)];return N(n,e.type)})}function L(e,t){return t.map((t,n)=>N(t,e.args[n].type))}function R(e,t){if(t.length===0)return[];let[n]=t;if(t.length===1&&e.args.length!==1)return I(e,n);if(typeof n==`object`&&!Array.isArray(n)&&n!==null)try{let t=!0;if(e.args.forEach(e=>{try{z(e.name,n)}catch{t=!1}}),t)return I(e,n)}catch{}return L(e,t)}function z(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 B(e){if(e.isOk)return e.value;throw Error(`Expected OK, received error: ${String(e.value)}`)}function V(e){if(!e.isOk)return e.value;throw Error(`Expected Err, received ok: ${String(e.value)}`)}function H(e){if(T(e))return e===`int128`?`int`:e===`uint128`?`uint`:e;if(E(e))return`(buff ${e.buffer.length})`;if(D(e))return`(string-ascii ${e[`string-ascii`].length})`;if(O(e))return`(string-utf8 ${e[`string-utf8`].length})`;if(k(e))return`(response ${H(e.response.ok)} ${H(e.response.error)})`;if(A(e))return`(optional ${H(e.optional)})`;if(j(e))return`{ ${e.tuple.map(e=>`${e.name}: ${H(e.type)}`).join(`, `)} }`;if(M(e))return`(list ${e.list.length} ${H(e.list.type)})`;throw Error(`Type string unsupported for Clarity type: ${JSON.stringify(e)}`)}const De=[`devnet`,`simnet`,`testnet`,`mainnet`];function Oe(e,t){let n=[];return Object.entries(e.contracts).forEach(([r,i])=>{let a=e.deployments[r][t];return a&&n.push([r,W(i,a)]),!1}),Object.fromEntries(n)}function ke(e,t){return Object.fromEntries(Object.entries(e).map(([e,n])=>[e,W(n,`${t}.${n.contractName}`)]))}function U(e,t){return Object.fromEntries(Object.entries(e.functions).map(([n,r])=>[n,Object.assign((...n)=>{let i=R(r,n),[a,o]=t.split(`.`);return{functionArgs:i,contractAddress:a,contractName:o,function:r,functionName:r.name,nativeArgs:n,contractAbi:e}},{abi:r})]))}function W(e,t){let n={...e};return{...U(e,t),...n,identifier:t}}function Ae(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:R(n,e),contractAddress:o,contractName:u.contractName,function:n,nativeArgs:e}})})}),a}function G(e,t){return{key:t,keyCV:N(t,e.key),map:e}}function K(e,t={}){let n={...t};return e&&(n[`x-api-key`]=e),n}function je(e,t,n){return new de(new ue({basePath:e,headers:K(t,n)}))}function Me(e){return`${e}/v2`}const Ne=(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}[]`,Pe(e,r));if(typeof r==`boolean`||ye(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}},Pe=(e,t)=>t!=null&&t.length?`${t.map((t,n)=>`${n>0?encodeURIComponent(`${e}[]`):``}=${encodeURIComponent(t)}`).join(`&`)}`:``;function Fe(e){if(e.okay)return u(e.result);throw Error(e.cause)}async function Ie(e){let{contractAddress:t,functionArgs:n,senderAddress:r=t,url:i}=e;return Fe(await je(i,e.apiKey,e.headers).callReadOnlyFunction({...e,readOnlyFunctionArgs:{sender:r,arguments:n.map(e=>typeof e==`string`?e:c(e))}}))}function Le(e){return typeof e==`object`&&!!e&&`isNone`in e&&typeof e.isNone==`boolean`}function Re(e){return typeof e==`object`&&!!e&&`isOk`in e&&typeof e.isOk==`boolean`}function q(e,t){if(A(t))return Le(e)?e.isNone?null:q(e.value,t.optional):e;if(E(t))return typeof e==`string`?v(e.startsWith(`0x`)?e.slice(2):e):e;if(j(t)){if(typeof e!=`object`||!e)return e;let n={};for(let r of t.tuple){let t=e[r.name];n[r.name]=q(t,r.type)}return n}return M(t)&&Array.isArray(e)?e.map(e=>q(e,t.list.type)):e}function J(e,t){if(k(t)){if(!Re(e))throw Error(`Response type requires { isOk: boolean, value: unknown } form value`);let n=e.isOk?t.response.ok:t.response.error,r=J(e.isOk?e.ok??e.value:e.err??e.value,n);return e.isOk?ie(r):re(r)}return N(q(e,t),t)}function ze(e,t){if(e===void 0||e===``)return A(t)?{isNone:!0,value:null}:M(t)?[]:j(t)?{}:T(t)&&t===`bool`?!1:``;if(t===`principal`&&e.startsWith(`'`))return e.slice(1);if(A(t)||M(t)||j(t)||k(t))try{return JSON.parse(e)}catch{return e}return T(t)&&t===`bool`?e===`true`:e}function Be(e,t){return t.map(t=>{let n=e[t.name];return J(ze(Array.isArray(n)?n[0]:n,t.type),t.type)})}function Ve(e){if(e.latest!==!1)return e.latest||e.tip===void 0?`latest`:e.tip}async function Y(e,t){let n=Ve(t),r=await Ie({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?F(r):C(r,!0)}async function He(e,t){return B(await Y(e,t))}async function Ue(e,t){return V(await Y(e,t))}function X(e){return fe(e.network).client.baseUrl}async function We(e,t,n,r){let i=G(t,n),a=JSON.stringify(s(i.keyCV)),[o,c]=e.split(`.`),u=Ne(`${Me(X(r))}/map_entry/${o}/${c}/${i.map.name}`,{proof:0,tip:Ve(r)});return C(l((await(await fetch(u,{method:`POST`,body:a,headers:{"Content-Type":`application/json`,Accept:`application/json`,...K(r.apiKey,r.headers)}})).json()).data),!0)}async function Ge(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 Ke=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 He(e,this.roOptions(t||{}))}roErr(e,t){return Ue(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 qe(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:N(r,o)}}function Je(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(j(t)){let n=Ze(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}if(M(t))return Xe(e).map(e=>$(e,t.list.type));if(A(t))return e===`none`?null:$(Q(e,`some`),t.optional);if(D(t))return e.slice(1,-1);if(O(t))return e.slice(2,-1);if(t===`bool`)return e===`true`;if(t===`uint128`)return BigInt(e.slice(1));if(t===`int128`)return BigInt(e);if(t===`trait_reference`||t===`principal`)return e.replace(/^'/,``);if(t===`none`)return null;if(E(t))return v(e.slice(2));if(k(t))return e.startsWith(`(ok`)?b($(Q(e,`ok`),t.response.ok)):x($(Q(e,`err`),t.response.error));throw Error(`Unable to parse cv string to value: ${e} ${JSON.stringify(t,null,2)}`)}const Ye=Array(255);for(let e=0;e<=255;++e)Ye[e]=e.toString(16).padStart(2,`0`);function Xe(e){if(e.charAt(0)!==`[`||e.at(-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.at(-1)===`(`&&t.pop(),e.charAt(i)===`}`&&t.at(-1)===`{`&&t.pop(),e.charAt(i)===`]`&&t.at(-1)===`[`&&t.pop();let i=e.substring(r,e.length-1);return i.length>0&&n.push(i),n}function Ze(e){if(e.charAt(0)!==`{`||e.at(-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.at(-1)===`(`&&n.pop(),e.charAt(i)===`}`&&n.at(-1)===`{`&&n.pop(),e.charAt(i)===`]`&&n.at(-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{Ke as ClarigenClient,xe as CoreNodeEventType,De as DEPLOYMENT_NETWORKS,m as MAINNET_BURN_ADDRESS,p as TESTNET_BURN_ADDRESS,ge as bootContractIdentifier,Ge as broadcast,ve as bytesToAscii,_e as bytesToHex,Ie as callReadOnlyFunction,W as contractFactory,ke as contractsFactory,Z as createAssetInfo,s as cvToHex,F as cvToJSON,P as cvToString,C as cvToValue,Ae as deploymentFactory,x as err,V as expectErr,B as expectOk,y as extractErrors,We as fetchMapGet,Se as filterEvents,z as findJsTupleKey,J as formValueToCV,q as formValueToParseable,U as functionsFactory,X as getApiUrl,me as getContractIdentifier,pe as getContractName,_ as getContractNameFromPath,he as getContractPrincipalCV,H as getTypeString,v as hexToBytes,l as hexToCV,Te as hexToCvValue,E as isClarityAbiBuffer,M as isClarityAbiList,A as isClarityAbiOptional,T as isClarityAbiPrimitive,k as isClarityAbiResponse,D as isClarityAbiStringAscii,O as isClarityAbiStringUtf8,Ee as isClarityAbiTraitReference,j as isClarityAbiTuple,ye as isNumber,Le as isOptionalFormValue,we as isResponse,Re as isResponseFormValue,Ce as makeContracts,Je as makeFungiblePostCondition,qe as makeNonFungiblePostCondition,G as mapFactory,b as ok,ze as parseQueryValue,Fe as parseReadOnlyResponse,N as parseToCV,S as principalToString,be as projectErrors,Oe as projectFactory,Be as queryToFunctionArgs,$ as rawClarityToValue,Y as ro,Ue as roErr,He as roOk,h as toCamelCase,g as toKebabCase,L as transformArgsArray,R as transformArgsToCV,I as transformObjectArgs};
|
package/package.json
CHANGED