@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/index.js DELETED
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _transactions = require('@stacks/transactions');var _base = require('@scure/base');var pt="ST000000000000000000002AMW42H",ut= exports.MAINNET_BURN_ADDRESS ="SP000000000000000000002Q6VF78",u= exports.toCamelCase =(t,e)=>{let n=typeof t=="string"?t:String(t);if(/^[A-Z_]+$/.test(n))return n;let[o,...i]=n.replace("!","_x").replace("?","_q").split("-"),c=`${e?o[0].toUpperCase():o[0].toLowerCase()}${o.slice(1)}`;return i.forEach(l=>{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= exports.getContractIdentifier =t=>`${t.address}.${t.name}`,te= exports.getContractPrincipalCV =t=>{let e=ft(t.contractFile);return _transactions.contractPrincipalCV.call(void 0, t.address,e)};function ee(t,e){return`${e?ut:pt}.${t}`}function ne(t){return _base.hex.encode(t)}function m(t){return _base.hex.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}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 _transactions.ClarityType.BoolTrue:return!0;case _transactions.ClarityType.BoolFalse:return!1;case _transactions.ClarityType.Int:case _transactions.ClarityType.UInt:return t.value;case _transactions.ClarityType.Buffer:return m(t.value);case _transactions.ClarityType.OptionalNone:return null;case _transactions.ClarityType.OptionalSome:return f(t.value);case _transactions.ClarityType.ResponseErr:return e?E(f(t.value)):f(t.value);case _transactions.ClarityType.ResponseOk:return e?h(f(t.value)):f(t.value);case _transactions.ClarityType.PrincipalStandard:case _transactions.ClarityType.PrincipalContract:return P(t);case _transactions.ClarityType.List:return t.value.map(r=>f(r));case _transactions.ClarityType.Tuple:return Object.entries(t.value).reduce((r,[o,i])=>{let a=u(o);return{...r,[a]:f(i,e)}},{});case _transactions.ClarityType.StringASCII:return t.value;case _transactions.ClarityType.StringUTF8:return t.value}}function xe(t,e=!1){return f(_transactions.hexToCV.call(void 0, t),e)}function q(t){if(!(typeof t=="bigint"||typeof t=="number"||typeof t=="string"))throw new Error("Invalid input type for integer");return BigInt(t)}var wt=t=>typeof t=="string",v= exports.isClarityAbiBuffer =t=>t.buffer!==void 0,k= exports.isClarityAbiStringAscii =t=>t["string-ascii"]!==void 0,w= exports.isClarityAbiStringUtf8 =t=>t["string-utf8"]!==void 0,R= exports.isClarityAbiResponse =t=>t.response!==void 0,O= exports.isClarityAbiOptional =t=>t.optional!==void 0,N= exports.isClarityAbiTuple =t=>t.tuple!==void 0,S= exports.isClarityAbiList =t=>t.list!==void 0,be= exports.isClarityAbiTraitReference =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)}),_transactions.tupleCV.call(void 0, n)}else if(S(e)){let r=t.map(o=>y(o,e.list.type));return _transactions.listCV.call(void 0, r)}else{if(O(e))return t===null?_transactions.noneCV.call(void 0, ):_transactions.someCV.call(void 0, y(t,e.optional));if(k(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return _transactions.stringAsciiCV.call(void 0, t)}else if(w(e)){if(typeof t!="string")throw new Error("Invalid string-ascii input");return _transactions.stringUtf8CV.call(void 0, t)}else if(e==="bool"){let n=typeof t=="boolean"?t.toString():t;return _transactions.parseToCV.call(void 0, n,e)}else if(e==="uint128"){let n=q(t);return _transactions.uintCV.call(void 0, n.toString())}else if(e==="int128"){let n=q(t);return _transactions.intCV.call(void 0, n.toString())}else if(e==="trait_reference"){if(typeof t!="string")throw new Error("Invalid input for trait_reference");let[n,r]=t.split(".");return _transactions.contractPrincipalCV.call(void 0, n,r)}else if(v(e))return _transactions.bufferCV.call(void 0, t)}return _transactions.parseToCV.call(void 0, t,e)}function g(t,e="hex"){switch(t.type){case _transactions.ClarityType.BoolTrue:return"true";case _transactions.ClarityType.BoolFalse:return"false";case _transactions.ClarityType.Int:return t.value.toString();case _transactions.ClarityType.UInt:return`u${t.value.toString()}`;case _transactions.ClarityType.Buffer:if(e==="tryAscii"){let n=M(m(t.value));if(/[ -~]/.test(n))return JSON.stringify(n)}return`0x${t.value}`;case _transactions.ClarityType.OptionalNone:return"none";case _transactions.ClarityType.OptionalSome:return`(some ${g(t.value,e)})`;case _transactions.ClarityType.ResponseErr:return`(err ${g(t.value,e)})`;case _transactions.ClarityType.ResponseOk:return`(ok ${g(t.value,e)})`;case _transactions.ClarityType.PrincipalStandard:case _transactions.ClarityType.PrincipalContract:return`'${P(t)}`;case _transactions.ClarityType.List:return`(list ${t.value.map(n=>g(n,e)).join(" ")})`;case _transactions.ClarityType.Tuple:return`(tuple ${Object.keys(t.value).map(n=>`(${n} ${g(t.value[n],e)})`).join(" ")})`;case _transactions.ClarityType.StringASCII:return`"${t.value}"`;case _transactions.ClarityType.StringUTF8:return`u"${t.value}"`}}function d(t,e=!1){switch(t.type){case _transactions.ClarityType.BoolTrue:return!0;case _transactions.ClarityType.BoolFalse:return!1;case _transactions.ClarityType.Int:case _transactions.ClarityType.UInt:return`${t.value}`;case _transactions.ClarityType.Buffer:return t.value;case _transactions.ClarityType.OptionalNone:return null;case _transactions.ClarityType.OptionalSome:return d(t.value);case _transactions.ClarityType.ResponseErr:return e?E(d(t.value)):d(t.value);case _transactions.ClarityType.ResponseOk:return e?h(d(t.value)):d(t.value);case _transactions.ClarityType.PrincipalStandard:case _transactions.ClarityType.PrincipalContract:return P(t);case _transactions.ClarityType.List:return t.value.map(r=>d(r));case _transactions.ClarityType.Tuple:return Object.entries(t.value).reduce((r,[o,i])=>{let a=u(o);return{...r,[a]:d(i)}},{});case _transactions.ClarityType.StringASCII:return t.value;case _transactions.ClarityType.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 (e2){r=!1}}),r)return W(t,n)}catch (e3){}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= exports.pureProxy =t=>new Proxy(t,St);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}}var _blockchainapiclient = require('@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 (0, _blockchainapiclient.SmartContractsApi)(new (0, _blockchainapiclient.Configuration)({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 _transactions.hexToCV.call(void 0, 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:_transactions.cvToHex.call(void 0, c))}});return Ut(i)}var _network = require('@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 _network.networkFrom.call(void 0, t.network).client.baseUrl}async function cn(t,e,n,r){let o=X(e,n),i=JSON.stringify(_transactions.cvToHex.call(void 0, 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=_transactions.hexToCV.call(void 0, T.data);return f(p,!0)}async function ln(t,e){let n=e.network,r=await _transactions.broadcastTransaction.call(void 0, {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{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}exports.ClarigenClient = ot; exports.CoreNodeEventType = dt; exports.DEPLOYMENT_NETWORKS = Ve; exports.MAINNET_BURN_ADDRESS = ut; exports.TESTNET_BURN_ADDRESS = pt; exports.bootContractIdentifier = ee; exports.broadcast = ln; exports.bytesToAscii = M; exports.bytesToHex = ne; exports.contractFactory = Y; exports.contractsFactory = Ue; exports.createAssetInfo = at; exports.cvToJSON = d; exports.cvToString = g; exports.cvToValue = f; exports.deploymentFactory = Ke; exports.err = E; exports.expectErr = z; exports.expectOk = H; exports.extractErrors = yt; exports.fetchMapGet = cn; exports.filterEvents = ie; exports.findJsTupleKey = F; exports.functionsFactory = Ft; exports.getApiUrl = st; exports.getContractIdentifier = Xt; exports.getContractName = Yt; exports.getContractNameFromPath = ft; exports.getContractPrincipalCV = te; exports.getTypeString = x; exports.hexToBytes = m; exports.hexToCvValue = xe; exports.isClarityAbiBuffer = v; exports.isClarityAbiList = S; exports.isClarityAbiOptional = O; exports.isClarityAbiPrimitive = wt; exports.isClarityAbiResponse = R; exports.isClarityAbiStringAscii = k; exports.isClarityAbiStringUtf8 = w; exports.isClarityAbiTraitReference = be; exports.isClarityAbiTuple = N; exports.isNumber = J; exports.isResponse = ge; exports.makeContracts = ae; exports.makeFungiblePostCondition = Cn; exports.makeNonFungiblePostCondition = Tn; exports.mapFactory = X; exports.ok = h; exports.parseToCV = y; exports.principalToString = P; exports.projectErrors = re; exports.projectFactory = Be; exports.pureProxy = Pt; exports.rawClarityToValue = A; exports.ro = $; exports.roErr = Lt; exports.roOk = Jt; exports.toCamelCase = u; exports.toKebabCase = j; exports.transformArgsArray = Ot; exports.transformArgsToCV = b; exports.transformObjectArgs = W;