@clarigen/core 4.0.0 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +4 -2
- package/dist/index.d.ts +4 -2
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -485,6 +485,7 @@ type ApiOptionsBase = {
|
|
|
485
485
|
tip?: string;
|
|
486
486
|
latest?: boolean;
|
|
487
487
|
apiKey?: string;
|
|
488
|
+
headers?: Record<string, string>;
|
|
488
489
|
};
|
|
489
490
|
type ApiOptionsJsonize = ApiOptionsBase & {
|
|
490
491
|
json: true;
|
|
@@ -508,9 +509,10 @@ declare function broadcast(transaction: StacksTransactionWire, options: ApiOptio
|
|
|
508
509
|
type ClientOptions = Omit<ApiOptions, 'network'>;
|
|
509
510
|
type JsonIf<O extends ClientOptions, T> = JsonIfOption<O & ApiOptions, T>;
|
|
510
511
|
declare class ClarigenClient {
|
|
512
|
+
apiKey?: string | undefined;
|
|
513
|
+
headers?: Record<string, string> | undefined;
|
|
511
514
|
network: StacksNetwork | StacksNetworkName;
|
|
512
|
-
apiKey?: string;
|
|
513
|
-
constructor(networkOrUrl: StacksNetwork | StacksNetworkName, apiKey?: string);
|
|
515
|
+
constructor(networkOrUrl: StacksNetwork | StacksNetworkName, apiKey?: string | undefined, headers?: Record<string, string> | undefined);
|
|
514
516
|
private roOptions;
|
|
515
517
|
ro<T, O extends ClientOptions>(tx: ContractCall<T>, options?: O): Promise<JsonIf<O, T>>;
|
|
516
518
|
roOk<T, O extends ClientOptions>(tx: ContractCall<Response<T, any>>, options?: O): Promise<JsonIf<O, T>>;
|
package/dist/index.d.ts
CHANGED
|
@@ -485,6 +485,7 @@ type ApiOptionsBase = {
|
|
|
485
485
|
tip?: string;
|
|
486
486
|
latest?: boolean;
|
|
487
487
|
apiKey?: string;
|
|
488
|
+
headers?: Record<string, string>;
|
|
488
489
|
};
|
|
489
490
|
type ApiOptionsJsonize = ApiOptionsBase & {
|
|
490
491
|
json: true;
|
|
@@ -508,9 +509,10 @@ declare function broadcast(transaction: StacksTransactionWire, options: ApiOptio
|
|
|
508
509
|
type ClientOptions = Omit<ApiOptions, 'network'>;
|
|
509
510
|
type JsonIf<O extends ClientOptions, T> = JsonIfOption<O & ApiOptions, T>;
|
|
510
511
|
declare class ClarigenClient {
|
|
512
|
+
apiKey?: string | undefined;
|
|
513
|
+
headers?: Record<string, string> | undefined;
|
|
511
514
|
network: StacksNetwork | StacksNetworkName;
|
|
512
|
-
apiKey?: string;
|
|
513
|
-
constructor(networkOrUrl: StacksNetwork | StacksNetworkName, apiKey?: string);
|
|
515
|
+
constructor(networkOrUrl: StacksNetwork | StacksNetworkName, apiKey?: string | undefined, headers?: Record<string, string> | undefined);
|
|
514
516
|
private roOptions;
|
|
515
517
|
ro<T, O extends ClientOptions>(tx: ContractCall<T>, options?: O): Promise<JsonIf<O, T>>;
|
|
516
518
|
roOk<T, O extends ClientOptions>(tx: ContractCall<Response<T, any>>, options?: O): Promise<JsonIf<O, T>>;
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
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 De(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 D=C.functions[B];return{functionArgs:b(D,U),contractAddress:a,contractName:T.contractName,function:D,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,e={}){let n={...e};return t&&(n["x-api-key"]=t),n}function tt(t,e,n){let r=_(e,n);return new (0, _blockchainapiclient.SmartContractsApi)(new (0, _blockchainapiclient.Configuration)({basePath:t,headers:r}))}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,t.headers).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,headers:e.headers});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,r.headers)}})).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,r){this.apiKey=n;this.headers=r;this.network=e}roOptions(e){return{network:this.network,apiKey:this.apiKey,headers:this.headers,...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 = De; 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;
|
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{contractPrincipalCV as lt}from"@stacks/transactions";import{hex as K}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 K.encode(t)}function m(t){return K.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 Dt,hexToCV as Kt}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 De(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 D=C.functions[B];return{functionArgs:b(D,U),contractAddress:a,contractName:T.contractName,function:D,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,e={}){let n={...e};return t&&(n["x-api-key"]=t),n}function tt(t,e,n){let r=_(e,n);return new It(new _t({basePath:t,headers:r}))}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,t.headers).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,headers:e.headers});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(Dt(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,r.headers)}})).json(),p=Kt(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{constructor(e,n,r){this.apiKey=n;this.headers=r;this.network=e}network;roOptions(e){return{network:this.network,apiKey:this.apiKey,headers:this.headers,...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,De 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};
|
package/package.json
CHANGED