@clarigen/core 4.0.2-alpha.1 → 4.1.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.
@@ -1,28 +1,28 @@
1
1
  //#region src/deployment.d.ts
2
- interface EmulatedContractPublishTransaction {
2
+ type EmulatedContractPublishTransaction = {
3
3
  'emulated-contract-publish': {
4
4
  'contract-name': string;
5
5
  'emulated-sender': string;
6
6
  path: string;
7
7
  };
8
- }
9
- interface RequirementPublishTransaction {
8
+ };
9
+ type RequirementPublishTransaction = {
10
10
  'requirement-publish': {
11
11
  'contract-id': string;
12
12
  'remap-sender': string;
13
13
  'remap-principals': Record<string, string>;
14
14
  path: string;
15
15
  };
16
- }
17
- interface ContractPublishTransaction {
16
+ };
17
+ type ContractPublishTransaction = {
18
18
  'contract-publish': {
19
19
  'contract-name': string;
20
20
  'expected-sender': string;
21
21
  path: string;
22
22
  cost: string;
23
23
  };
24
- }
25
- interface ContractCallTransaction {
24
+ };
25
+ type ContractCallTransaction = {
26
26
  'contract-call': {
27
27
  'contract-id': string;
28
28
  'expected-sender': string;
@@ -30,38 +30,38 @@ interface ContractCallTransaction {
30
30
  method: string;
31
31
  cost: string;
32
32
  };
33
- }
34
- interface EmulatedContractCallTransaction {
33
+ };
34
+ type EmulatedContractCallTransaction = {
35
35
  'emulated-contract-call': {
36
36
  'contract-id': string;
37
37
  'emulated-sender': string;
38
38
  parameters: Readonly<string[]>;
39
39
  method: string;
40
40
  };
41
- }
42
- interface BtcTransferTransaction {
41
+ };
42
+ type BtcTransferTransaction = {
43
43
  'btc-transfer': {
44
44
  'expected-sender': string;
45
45
  recipient: string;
46
46
  'sats-per-byte': string;
47
47
  'sats-amount': string;
48
48
  };
49
- }
49
+ };
50
50
  type DeploymentTransaction = EmulatedContractPublishTransaction | RequirementPublishTransaction | ContractPublishTransaction | EmulatedContractCallTransaction | BtcTransferTransaction | ContractCallTransaction;
51
51
  type ContractDeploymentTransaction = EmulatedContractPublishTransaction | RequirementPublishTransaction | ContractPublishTransaction;
52
- interface Batch<T extends DeploymentTransaction> {
52
+ type Batch<T extends DeploymentTransaction> = {
53
53
  id: number;
54
54
  transactions: Readonly<T[]>;
55
- }
56
- interface SimnetAccount {
55
+ };
56
+ type SimnetAccount = {
57
57
  address: string;
58
58
  name: string;
59
59
  balance: string;
60
- }
60
+ };
61
61
  interface SimnetAccountDeployer extends SimnetAccount {
62
62
  name: 'deployer';
63
63
  }
64
- interface SimnetDeploymentPlan {
64
+ type SimnetDeploymentPlan = {
65
65
  network: 'simnet';
66
66
  genesis: {
67
67
  wallets: Readonly<[SimnetAccountDeployer, ...SimnetAccount[]]>;
@@ -70,22 +70,22 @@ interface SimnetDeploymentPlan {
70
70
  plan: {
71
71
  batches: Readonly<Batch<EmulatedContractPublishTransaction | EmulatedContractCallTransaction>[]>;
72
72
  };
73
- }
74
- interface DevnetDeploymentPlan {
73
+ };
74
+ type DevnetDeploymentPlan = {
75
75
  network: 'devnet';
76
76
  plan: {
77
77
  batches: Readonly<Batch<RequirementPublishTransaction | ContractPublishTransaction | ContractCallTransaction | BtcTransferTransaction>[]>;
78
78
  };
79
- }
79
+ };
80
80
  type TestnetDeploymentPlan = Omit<DevnetDeploymentPlan, 'network'> & {
81
81
  network: 'testnet';
82
82
  };
83
- interface MainnetDeploymentPlan {
83
+ type MainnetDeploymentPlan = {
84
84
  network: 'mainnet';
85
85
  plan: {
86
86
  batches: Readonly<Batch<ContractPublishTransaction | ContractCallTransaction | BtcTransferTransaction>[]>;
87
87
  };
88
- }
88
+ };
89
89
  type DeploymentPlan = SimnetDeploymentPlan | DevnetDeploymentPlan | TestnetDeploymentPlan | MainnetDeploymentPlan;
90
90
  declare function flatBatch<T extends DeploymentTransaction>(batches: Batch<T>[]): T[];
91
91
  declare function getContractTxs(batches: Batch<DeploymentTransaction>[]): ContractDeploymentTransaction[];
@@ -1 +1 @@
1
- function e(e){let t=[];return e.forEach(e=>t.push(...e.transactions)),t}function t(t){return e(t).filter(a)}function n(t,n){let r=e(n.plan.batches);for(let e of r)if(a(e)){if(`requirement-publish`in e){let[n,r]=e[`requirement-publish`][`contract-id`].split(`.`);if(r===t)return e}else if(`emulated-contract-publish`in e){if(e[`emulated-contract-publish`][`contract-name`]===t)return e}else if(`contract-publish`in e&&e[`contract-publish`][`contract-name`]===t)return e}throw Error(`Unable to find deployment tx for contract '${t}'`)}function r(e){if(!a(e))throw Error(`Unable to get path for tx type.`);if(`requirement-publish`in e)return e[`requirement-publish`].path;if(`emulated-contract-publish`in e)return e[`emulated-contract-publish`].path;if(`contract-publish`in e)return e[`contract-publish`].path;throw Error(`Couldnt get path for deployment tx.`)}function i(e){if(!a(e))throw Error(`Unable to get ID for tx type.`);if(`requirement-publish`in e){let t=e[`requirement-publish`],[n,r]=t[`contract-id`].split(`.`);return`${t[`remap-sender`]}.${r}`}else if(`emulated-contract-publish`in e){let t=e[`emulated-contract-publish`];return`${t[`emulated-sender`]}.${t[`contract-name`]}`}else if(`contract-publish`in e){let t=e[`contract-publish`];return`${t[`expected-sender`]}.${t[`contract-name`]}`}throw Error(`Unable to find ID for contract.`)}function a(e){return!(`contract-call`in e||`btc-transfer`in e||`emulated-contract-call`in e)}export{i as a,r as i,t as n,a as o,n as r,e as t};
1
+ function e(e){let t=[];return e.forEach(e=>t.push(...e.transactions)),t}function t(t){return e(t).filter(a)}function n(t,n){let r=e(n.plan.batches);for(let e of r)if(a(e)){if(`requirement-publish`in e){let[n,r]=e[`requirement-publish`][`contract-id`].split(`.`);if(r===t)return e}else if(`emulated-contract-publish`in e){if(e[`emulated-contract-publish`][`contract-name`]===t)return e}else if(`contract-publish`in e&&e[`contract-publish`][`contract-name`]===t)return e}throw Error(`Unable to find deployment tx for contract '${t}'`)}function r(e){if(!a(e))throw Error(`Unable to get path for tx type.`);if(`requirement-publish`in e)return e[`requirement-publish`].path;if(`emulated-contract-publish`in e)return e[`emulated-contract-publish`].path;if(`contract-publish`in e)return e[`contract-publish`].path;throw Error(`Couldnt get path for deployment tx.`)}function i(e){if(!a(e))throw Error(`Unable to get ID for tx type.`);if(`requirement-publish`in e){let t=e[`requirement-publish`],[n,r]=t[`contract-id`].split(`.`);return`${t[`remap-sender`]}.${r}`}if(`emulated-contract-publish`in e){let t=e[`emulated-contract-publish`];return`${t[`emulated-sender`]}.${t[`contract-name`]}`}if(`contract-publish`in e){let t=e[`contract-publish`];return`${t[`expected-sender`]}.${t[`contract-name`]}`}throw Error(`Unable to find ID for contract.`)}function a(e){return!(`contract-call`in e||`btc-transfer`in e||`emulated-contract-call`in e)}export{i as a,r as i,t as n,a as o,n as r,e as t};
@@ -1 +1 @@
1
- function e(e){let t=[];return e.forEach(e=>t.push(...e.transactions)),t}function t(t){return e(t).filter(a)}function n(t,n){let r=e(n.plan.batches);for(let e of r)if(a(e)){if(`requirement-publish`in e){let[n,r]=e[`requirement-publish`][`contract-id`].split(`.`);if(r===t)return e}else if(`emulated-contract-publish`in e){if(e[`emulated-contract-publish`][`contract-name`]===t)return e}else if(`contract-publish`in e&&e[`contract-publish`][`contract-name`]===t)return e}throw Error(`Unable to find deployment tx for contract '${t}'`)}function r(e){if(!a(e))throw Error(`Unable to get path for tx type.`);if(`requirement-publish`in e)return e[`requirement-publish`].path;if(`emulated-contract-publish`in e)return e[`emulated-contract-publish`].path;if(`contract-publish`in e)return e[`contract-publish`].path;throw Error(`Couldnt get path for deployment tx.`)}function i(e){if(!a(e))throw Error(`Unable to get ID for tx type.`);if(`requirement-publish`in e){let t=e[`requirement-publish`],[n,r]=t[`contract-id`].split(`.`);return`${t[`remap-sender`]}.${r}`}else if(`emulated-contract-publish`in e){let t=e[`emulated-contract-publish`];return`${t[`emulated-sender`]}.${t[`contract-name`]}`}else if(`contract-publish`in e){let t=e[`contract-publish`];return`${t[`expected-sender`]}.${t[`contract-name`]}`}throw Error(`Unable to find ID for contract.`)}function a(e){return!(`contract-call`in e||`btc-transfer`in e||`emulated-contract-call`in e)}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return e}});
1
+ function e(e){let t=[];return e.forEach(e=>t.push(...e.transactions)),t}function t(t){return e(t).filter(a)}function n(t,n){let r=e(n.plan.batches);for(let e of r)if(a(e)){if(`requirement-publish`in e){let[n,r]=e[`requirement-publish`][`contract-id`].split(`.`);if(r===t)return e}else if(`emulated-contract-publish`in e){if(e[`emulated-contract-publish`][`contract-name`]===t)return e}else if(`contract-publish`in e&&e[`contract-publish`][`contract-name`]===t)return e}throw Error(`Unable to find deployment tx for contract '${t}'`)}function r(e){if(!a(e))throw Error(`Unable to get path for tx type.`);if(`requirement-publish`in e)return e[`requirement-publish`].path;if(`emulated-contract-publish`in e)return e[`emulated-contract-publish`].path;if(`contract-publish`in e)return e[`contract-publish`].path;throw Error(`Couldnt get path for deployment tx.`)}function i(e){if(!a(e))throw Error(`Unable to get ID for tx type.`);if(`requirement-publish`in e){let t=e[`requirement-publish`],[n,r]=t[`contract-id`].split(`.`);return`${t[`remap-sender`]}.${r}`}if(`emulated-contract-publish`in e){let t=e[`emulated-contract-publish`];return`${t[`emulated-sender`]}.${t[`contract-name`]}`}if(`contract-publish`in e){let t=e[`contract-publish`];return`${t[`expected-sender`]}.${t[`contract-name`]}`}throw Error(`Unable to find ID for contract.`)}function a(e){return!(`contract-call`in e||`btc-transfer`in e||`emulated-contract-call`in e)}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return e}});
@@ -1,28 +1,28 @@
1
1
  //#region src/deployment.d.ts
2
- interface EmulatedContractPublishTransaction {
2
+ type EmulatedContractPublishTransaction = {
3
3
  'emulated-contract-publish': {
4
4
  'contract-name': string;
5
5
  'emulated-sender': string;
6
6
  path: string;
7
7
  };
8
- }
9
- interface RequirementPublishTransaction {
8
+ };
9
+ type RequirementPublishTransaction = {
10
10
  'requirement-publish': {
11
11
  'contract-id': string;
12
12
  'remap-sender': string;
13
13
  'remap-principals': Record<string, string>;
14
14
  path: string;
15
15
  };
16
- }
17
- interface ContractPublishTransaction {
16
+ };
17
+ type ContractPublishTransaction = {
18
18
  'contract-publish': {
19
19
  'contract-name': string;
20
20
  'expected-sender': string;
21
21
  path: string;
22
22
  cost: string;
23
23
  };
24
- }
25
- interface ContractCallTransaction {
24
+ };
25
+ type ContractCallTransaction = {
26
26
  'contract-call': {
27
27
  'contract-id': string;
28
28
  'expected-sender': string;
@@ -30,38 +30,38 @@ interface ContractCallTransaction {
30
30
  method: string;
31
31
  cost: string;
32
32
  };
33
- }
34
- interface EmulatedContractCallTransaction {
33
+ };
34
+ type EmulatedContractCallTransaction = {
35
35
  'emulated-contract-call': {
36
36
  'contract-id': string;
37
37
  'emulated-sender': string;
38
38
  parameters: Readonly<string[]>;
39
39
  method: string;
40
40
  };
41
- }
42
- interface BtcTransferTransaction {
41
+ };
42
+ type BtcTransferTransaction = {
43
43
  'btc-transfer': {
44
44
  'expected-sender': string;
45
45
  recipient: string;
46
46
  'sats-per-byte': string;
47
47
  'sats-amount': string;
48
48
  };
49
- }
49
+ };
50
50
  type DeploymentTransaction = EmulatedContractPublishTransaction | RequirementPublishTransaction | ContractPublishTransaction | EmulatedContractCallTransaction | BtcTransferTransaction | ContractCallTransaction;
51
51
  type ContractDeploymentTransaction = EmulatedContractPublishTransaction | RequirementPublishTransaction | ContractPublishTransaction;
52
- interface Batch<T extends DeploymentTransaction> {
52
+ type Batch<T extends DeploymentTransaction> = {
53
53
  id: number;
54
54
  transactions: Readonly<T[]>;
55
- }
56
- interface SimnetAccount {
55
+ };
56
+ type SimnetAccount = {
57
57
  address: string;
58
58
  name: string;
59
59
  balance: string;
60
- }
60
+ };
61
61
  interface SimnetAccountDeployer extends SimnetAccount {
62
62
  name: 'deployer';
63
63
  }
64
- interface SimnetDeploymentPlan {
64
+ type SimnetDeploymentPlan = {
65
65
  network: 'simnet';
66
66
  genesis: {
67
67
  wallets: Readonly<[SimnetAccountDeployer, ...SimnetAccount[]]>;
@@ -70,22 +70,22 @@ interface SimnetDeploymentPlan {
70
70
  plan: {
71
71
  batches: Readonly<Batch<EmulatedContractPublishTransaction | EmulatedContractCallTransaction>[]>;
72
72
  };
73
- }
74
- interface DevnetDeploymentPlan {
73
+ };
74
+ type DevnetDeploymentPlan = {
75
75
  network: 'devnet';
76
76
  plan: {
77
77
  batches: Readonly<Batch<RequirementPublishTransaction | ContractPublishTransaction | ContractCallTransaction | BtcTransferTransaction>[]>;
78
78
  };
79
- }
79
+ };
80
80
  type TestnetDeploymentPlan = Omit<DevnetDeploymentPlan, 'network'> & {
81
81
  network: 'testnet';
82
82
  };
83
- interface MainnetDeploymentPlan {
83
+ type MainnetDeploymentPlan = {
84
84
  network: 'mainnet';
85
85
  plan: {
86
86
  batches: Readonly<Batch<ContractPublishTransaction | ContractCallTransaction | BtcTransferTransaction>[]>;
87
87
  };
88
- }
88
+ };
89
89
  type DeploymentPlan = SimnetDeploymentPlan | DevnetDeploymentPlan | TestnetDeploymentPlan | MainnetDeploymentPlan;
90
90
  declare function flatBatch<T extends DeploymentTransaction>(batches: Batch<T>[]): T[];
91
91
  declare function getContractTxs(batches: Batch<DeploymentTransaction>[]): ContractDeploymentTransaction[];
@@ -1 +1 @@
1
- const e=require(`./deployment-CJKAJJQx.cjs`);exports.flatBatch=e.t,exports.getContractTxs=e.n,exports.getDeploymentContract=e.r,exports.getDeploymentTxPath=e.i,exports.getIdentifierForDeploymentTx=e.a,exports.isContractDeploymentTx=e.o;
1
+ const e=require(`./deployment-DN-sbX_m.cjs`);exports.flatBatch=e.t,exports.getContractTxs=e.n,exports.getDeploymentContract=e.r,exports.getDeploymentTxPath=e.i,exports.getIdentifierForDeploymentTx=e.a,exports.isContractDeploymentTx=e.o;
@@ -1,2 +1,2 @@
1
- import { S as isContractDeploymentTx, _ as flatBatch, a as ContractPublishTransaction, b as getDeploymentTxPath, c as DevnetDeploymentPlan, d as MainnetDeploymentPlan, f as RequirementPublishTransaction, g as TestnetDeploymentPlan, h as SimnetDeploymentPlan, i as ContractDeploymentTransaction, l as EmulatedContractCallTransaction, m as SimnetAccountDeployer, n as BtcTransferTransaction, o as DeploymentPlan, p as SimnetAccount, r as ContractCallTransaction, s as DeploymentTransaction, t as Batch, u as EmulatedContractPublishTransaction, v as getContractTxs, x as getIdentifierForDeploymentTx, y as getDeploymentContract } from "./deployment-D_ahtPVB.cjs";
1
+ import { S as isContractDeploymentTx, _ as flatBatch, a as ContractPublishTransaction, b as getDeploymentTxPath, c as DevnetDeploymentPlan, d as MainnetDeploymentPlan, f as RequirementPublishTransaction, g as TestnetDeploymentPlan, h as SimnetDeploymentPlan, i as ContractDeploymentTransaction, l as EmulatedContractCallTransaction, m as SimnetAccountDeployer, n as BtcTransferTransaction, o as DeploymentPlan, p as SimnetAccount, r as ContractCallTransaction, s as DeploymentTransaction, t as Batch, u as EmulatedContractPublishTransaction, v as getContractTxs, x as getIdentifierForDeploymentTx, y as getDeploymentContract } from "./deployment-Bv57LEA2.cjs";
2
2
  export { Batch, BtcTransferTransaction, ContractCallTransaction, ContractDeploymentTransaction, ContractPublishTransaction, DeploymentPlan, DeploymentTransaction, DevnetDeploymentPlan, EmulatedContractCallTransaction, EmulatedContractPublishTransaction, MainnetDeploymentPlan, RequirementPublishTransaction, SimnetAccount, SimnetAccountDeployer, SimnetDeploymentPlan, TestnetDeploymentPlan, flatBatch, getContractTxs, getDeploymentContract, getDeploymentTxPath, getIdentifierForDeploymentTx, isContractDeploymentTx };
@@ -1,2 +1,2 @@
1
- import { S as isContractDeploymentTx, _ as flatBatch, a as ContractPublishTransaction, b as getDeploymentTxPath, c as DevnetDeploymentPlan, d as MainnetDeploymentPlan, f as RequirementPublishTransaction, g as TestnetDeploymentPlan, h as SimnetDeploymentPlan, i as ContractDeploymentTransaction, l as EmulatedContractCallTransaction, m as SimnetAccountDeployer, n as BtcTransferTransaction, o as DeploymentPlan, p as SimnetAccount, r as ContractCallTransaction, s as DeploymentTransaction, t as Batch, u as EmulatedContractPublishTransaction, v as getContractTxs, x as getIdentifierForDeploymentTx, y as getDeploymentContract } from "./deployment-DSHddL3l.mjs";
1
+ import { S as isContractDeploymentTx, _ as flatBatch, a as ContractPublishTransaction, b as getDeploymentTxPath, c as DevnetDeploymentPlan, d as MainnetDeploymentPlan, f as RequirementPublishTransaction, g as TestnetDeploymentPlan, h as SimnetDeploymentPlan, i as ContractDeploymentTransaction, l as EmulatedContractCallTransaction, m as SimnetAccountDeployer, n as BtcTransferTransaction, o as DeploymentPlan, p as SimnetAccount, r as ContractCallTransaction, s as DeploymentTransaction, t as Batch, u as EmulatedContractPublishTransaction, v as getContractTxs, x as getIdentifierForDeploymentTx, y as getDeploymentContract } from "./deployment-hBXji8Xz.mjs";
2
2
  export { Batch, BtcTransferTransaction, ContractCallTransaction, ContractDeploymentTransaction, ContractPublishTransaction, DeploymentPlan, DeploymentTransaction, DevnetDeploymentPlan, EmulatedContractCallTransaction, EmulatedContractPublishTransaction, MainnetDeploymentPlan, RequirementPublishTransaction, SimnetAccount, SimnetAccountDeployer, SimnetDeploymentPlan, TestnetDeploymentPlan, flatBatch, getContractTxs, getDeploymentContract, getDeploymentTxPath, getIdentifierForDeploymentTx, isContractDeploymentTx };
@@ -1 +1 @@
1
- import{a as e,i as t,n,o as r,r as i,t as a}from"./deployment-BuEApfjy.mjs";export{a as flatBatch,n as getContractTxs,i as getDeploymentContract,t as getDeploymentTxPath,e as getIdentifierForDeploymentTx,r as isContractDeploymentTx};
1
+ import{a as e,i as t,n,o as r,r as i,t as a}from"./deployment-CGEqh8yH.mjs";export{a as flatBatch,n as getContractTxs,i as getDeploymentContract,t as getDeploymentTxPath,e as getIdentifierForDeploymentTx,r as isContractDeploymentTx};
package/dist/index.cjs CHANGED
@@ -1 +1,2 @@
1
- const e=require(`./deployment-CJKAJJQx.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(`/`),[n]=t[t.length-1].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 m(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 ie(e){let{contracts:t}=e,n={};for(let e in t)n[e]=m(t[e]);return n}let ae=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 oe(e,t){return e.filter(e=>e.type===t)}function se(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 h(e){return{isOk:!0,value:e}}function g(e){return{isOk:!1,value:e}}function ce(e){return typeof e==`object`&&!!e&&`isOk`in e}function _(e){return e.value}function v(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 v(e.value);case t.ClarityType.ResponseErr:return n?g(v(e.value)):v(e.value);case t.ClarityType.ResponseOk:return n?h(v(e.value)):v(e.value);case t.ClarityType.PrincipalStandard:case t.ClarityType.PrincipalContract:return _(e);case t.ClarityType.List:return e.value.map(e=>v(e));case t.ClarityType.Tuple:return Object.entries(e.value).reduce((e,[t,r])=>{let i=s(t);return{...e,[i]:v(r,n)}},{});case t.ClarityType.StringASCII:return e.value;case t.ClarityType.StringUTF8:return e.value}}function le(e,n=!1){return v((0,t.hexToCV)(e),n)}function y(e){if(!(typeof e==`bigint`||typeof e==`number`||typeof e==`string`))throw Error(`Invalid input type for integer`);return BigInt(e)}const b=e=>typeof e==`string`,x=e=>e.buffer!==void 0,S=e=>e[`string-ascii`]!==void 0,C=e=>e[`string-utf8`]!==void 0,w=e=>e.response!==void 0,T=e=>e.optional!==void 0,E=e=>e.tuple!==void 0,D=e=>e.list!==void 0,ue=e=>e===`trait_reference`;function O(e,n){if(E(n)){if(typeof e!=`object`)throw Error(`Invalid tuple input`);let r={};return n.tuple.forEach(t=>{let n=e[P(t.name,e)];r[t.name]=O(n,t.type)}),(0,t.tupleCV)(r)}else if(D(n))return(0,t.listCV)(e.map(e=>O(e,n.list.type)));else if(T(n))return e===null?(0,t.noneCV)():(0,t.someCV)(O(e,n.optional));else if(S(n)){if(typeof e!=`string`)throw Error(`Invalid string-ascii input`);return(0,t.stringAsciiCV)(e)}else if(C(n)){if(typeof e!=`string`)throw Error(`Invalid string-ascii input`);return(0,t.stringUtf8CV)(e)}else if(n===`bool`)return(0,t.parseToCV)(typeof e==`boolean`?e.toString():e,n);else if(n===`uint128`)return(0,t.uintCV)(y(e).toString());else if(n===`int128`)return(0,t.intCV)(y(e).toString());else 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)}else if(x(n))return(0,t.bufferCV)(e);return(0,t.parseToCV)(e,n)}function k(e,n=`hex`){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(n===`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 ${k(e.value,n)})`;case t.ClarityType.ResponseErr:return`(err ${k(e.value,n)})`;case t.ClarityType.ResponseOk:return`(ok ${k(e.value,n)})`;case t.ClarityType.PrincipalStandard:case t.ClarityType.PrincipalContract:return`'${_(e)}`;case t.ClarityType.List:return`(list ${e.value.map(e=>k(e,n)).join(` `)})`;case t.ClarityType.Tuple:return`(tuple ${Object.keys(e.value).map(t=>`(${t} ${k(e.value[t],n)})`).join(` `)})`;case t.ClarityType.StringASCII:return`"${e.value}"`;case t.ClarityType.StringUTF8:return`u"${e.value}"`}}function A(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 A(e.value);case t.ClarityType.ResponseErr:return n?g(A(e.value)):A(e.value);case t.ClarityType.ResponseOk:return n?h(A(e.value)):A(e.value);case t.ClarityType.PrincipalStandard:case t.ClarityType.PrincipalContract:return _(e);case t.ClarityType.List:return e.value.map(e=>A(e));case t.ClarityType.Tuple:return Object.entries(e.value).reduce((e,[t,n])=>{let r=s(t);return{...e,[r]:A(n)}},{});case t.ClarityType.StringASCII:return e.value;case t.ClarityType.StringUTF8:return e.value}}function j(e,t){return e.args.map(e=>{let n=t[P(e.name,t)];return O(n,e.type)})}function M(e,t){return t.map((t,n)=>O(t,e.args[n].type))}function N(e,t){if(t.length===0)return[];let[n]=t;if(t.length===1&&e.args.length!==1)return j(e,n);if(typeof n==`object`&&!Array.isArray(n)&&n!==null)try{let t=!0;if(e.args.forEach(e=>{try{P(e.name,n)}catch{t=!1}}),t)return j(e,n)}catch{}return M(e,t)}function P(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 F(e){if(e.isOk)return e.value;throw Error(`Expected OK, received error: ${String(e.value)}`)}function I(e){if(!e.isOk)return e.value;throw Error(`Expected Err, received ok: ${String(e.value)}`)}function L(e){if(b(e))return e===`int128`?`int`:e===`uint128`?`uint`:e;if(x(e))return`(buff ${e.buffer.length})`;if(S(e))return`(string-ascii ${e[`string-ascii`].length})`;if(C(e))return`(string-utf8 ${e[`string-utf8`].length})`;if(w(e))return`(response ${L(e.response.ok)} ${L(e.response.error)})`;if(T(e))return`(optional ${L(e.optional)})`;if(E(e))return`(tuple ${e.tuple.map(e=>`(${e.name} ${L(e.type)})`).join(` `)})`;if(D(e))return`(list ${e.list.length} ${L(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=>s(e.name)===t);if(n)return function(...t){return{functionArgs:N(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=O(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 fe={get:de},R=e=>new Proxy(e,fe),z=[`devnet`,`simnet`,`testnet`,`mainnet`];function B(e,t){let n=[];return Object.entries(e.contracts).forEach(([r,i])=>{let a=e.deployments[r][t];return a&&n.push([r,H(i,a)]),!1}),Object.fromEntries(n)}function pe(e,t){return Object.fromEntries(Object.entries(e).map(([e,n])=>[e,H(n,`${t}.${n.contractName}`)]))}function V(e,t){return Object.fromEntries(Object.entries(e).map(([e,n])=>[e,Object.assign((...e)=>{let r=N(n,e),[i,a]=t.split(`.`);return{functionArgs:r,contractAddress:i,contractName:a,function:n,functionName:n.name,nativeArgs:e}},{abi:n})]))}function H(e,t){let n={...e};return{...V(e.functions,t),...n,identifier:t}}function me(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:N(n,e),contractAddress:a,contractName:u.contractName,function:n,nativeArgs:e}})})}),r}function U(e,t){return{key:t,keyCV:O(t,e.key),map:e}}function W(e,t={}){let n={...t};return e&&(n[`x-api-key`]=e),n}function he(e,t,n){return new r.SmartContractsApi(new r.Configuration({basePath:e,headers:W(t,n)}))}function ge(e){return`${e}/v2`}const _e=(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}[]`,ve(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}},ve=(e,t)=>t!=null&&t.length?`${t.map((t,n)=>`${n>0?encodeURIComponent(`${e}[]`):``}=${encodeURIComponent(t)}`).join(`&`)}`:``;function ye(e){if(e.okay)return(0,t.hexToCV)(e.result);throw Error(e.cause)}async function be(e){let{contractAddress:n,functionArgs:r,senderAddress:i=n,url:a}=e;return ye(await he(a,e.apiKey,e.headers).callReadOnlyFunction({...e,readOnlyFunctionArgs:{sender:i,arguments:r.map(e=>typeof e==`string`?e:(0,t.cvToHex)(e))}}))}function G(e){if(e.latest!==!1)return e.latest||e.tip===void 0?`latest`:e.tip}async function K(e,t){let n=G(t),r=await be({contractAddress:e.contractAddress,contractName:e.contractName,functionName:e.functionName,functionArgs:e.functionArgs,tip:n,url:Y(t),apiKey:t.apiKey,headers:t.headers});return t.json?A(r):v(r,!0)}async function q(e,t){return F(await K(e,t))}async function J(e,t){return I(await K(e,t))}function Y(e){return(0,i.networkFrom)(e.network).client.baseUrl}async function xe(e,n,r,i){let a=U(n,r),o=JSON.stringify((0,t.cvToHex)(a.keyCV)),[s,c]=e.split(`.`),l=_e(`${ge(Y(i))}/map_entry/${s}/${c}/${a.map.name}`,{proof:0,tip:G(i)});return v((0,t.hexToCV)((await(await fetch(l,{method:`POST`,body:o,headers:{"Content-Type":`application/json`,Accept:`application/json`,...W(i.apiKey,i.headers)}})).json()).data),!0)}async function Se(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 Ce=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 K(e,this.roOptions(t||{}))}roOk(e,t){return q(e,this.roOptions(t||{}))}roErr(e,t){return J(e,this.roOptions(t||{}))}};function X(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 we(e,t,n,r){let[i]=e.non_fungible_tokens,a=X(e,i.name),o=i.type;return{type:`nft-postcondition`,address:t,condition:n,asset:a,assetId:O(r,o)}}function Te(e,t,n,r){let[i,a]=t.split(`.`),[o]=e.fungible_tokens;return{type:`ft-postcondition`,address:t,condition:n,asset:X(e,o.name),amount:r}}function Z(e,t=``){return e.slice(t.length+2,-1)}function Q(e,t){if(E(t)){let n=De(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]=Q(i[e],t)}),r}else if(D(t))return $(e).map(e=>Q(e,t.list.type));else if(T(t))return e===`none`?null:Q(Z(e,`some`),t.optional);else if(S(t))return e.slice(1,-1);else if(C(t))return e.slice(2,-1);else if(t===`bool`)return e===`true`;else if(t===`uint128`)return BigInt(e.slice(1));else if(t===`int128`)return BigInt(e);else if(t===`trait_reference`)return e.replace(/^\'/,``);else if(t===`principal`)return e.replace(/^\'/,``);else if(t===`none`)return null;else if(x(t))return d(e.slice(2));else if(w(t))return e.startsWith(`(ok`)?h(Q(Z(e,`ok`),t.response.ok)):g(Q(Z(e,`err`),t.response.error));throw Error(`Unable to parse cv string to value: ${e} ${JSON.stringify(t,null,2)}`)}const Ee=Array(255);for(let e=0;e<=255;++e)Ee[e]=e.toString(16).padStart(2,`0`);function $(e){if(e.charAt(0)!==`[`||e.charAt(e.length-1)!==`]`)throw Error(`Expected (list ..), got ${e.toString()}`);let t=[],n=[],r=1;for(let i=0;i<e.length;i++)e.charAt(i)===`,`&&t.length==1&&(n.push(e.substring(r,i)),r=i+2),[`(`,`[`,`{`].includes(e.charAt(i))&&t.push(e.charAt(i)),e.charAt(i)===`)`&&t[t.length-1]===`(`&&t.pop(),e.charAt(i)===`}`&&t[t.length-1]===`{`&&t.pop(),e.charAt(i)===`]`&&t[t.length-1]===`[`&&t.pop();let i=e.substring(r,e.length-1);return i.length>0&&n.push(i),n}function De(e){if(e.charAt(0)!==`{`||e.charAt(e.length-1)!==`}`)throw Error(`Expected '(tuple ..)', got ${e.toString()}`);let t=1,n=[],r=[];for(let i=0;i<e.length;i++)e.charAt(i)===`,`&&n.length==1&&(r.push(e.substring(t,i)),t=i+2),[`(`,`[`,`{`].includes(e.charAt(i))&&n.push(e.charAt(i)),e.charAt(i)===`)`&&n[n.length-1]===`(`&&n.pop(),e.charAt(i)===`}`&&n[n.length-1]===`{`&&n.pop(),e.charAt(i)===`]`&&n[n.length-1]===`[`&&n.pop();let i=e.substring(t,e.length-1);i.length>0&&r.push(i);let a={};for(let e of r)for(let t=0;t<e.length;t++)if(e.charAt(t)===`:`){let n=e.substring(0,t);a[n]=e.substring(t+2,e.length);break}return a}exports.ClarigenClient=Ce,exports.CoreNodeEventType=ae,exports.DEPLOYMENT_NETWORKS=z,exports.MAINNET_BURN_ADDRESS=o,exports.TESTNET_BURN_ADDRESS=a,exports.bootContractIdentifier=ne,exports.broadcast=Se,exports.bytesToAscii=f,exports.bytesToHex=re,exports.contractFactory=H,exports.contractsFactory=pe,exports.createAssetInfo=X,exports.cvToJSON=A,exports.cvToString=k,exports.cvToValue=v,exports.deploymentFactory=me,exports.err=g,exports.expectErr=I,exports.expectOk=F,exports.extractErrors=m,exports.fetchMapGet=xe,exports.filterEvents=oe,exports.findJsTupleKey=P,exports.functionsFactory=V,exports.getApiUrl=Y,exports.getContractIdentifier=ee,exports.getContractName=l,exports.getContractNameFromPath=u,exports.getContractPrincipalCV=te,exports.getTypeString=L,exports.hexToBytes=d,exports.hexToCvValue=le,exports.isClarityAbiBuffer=x,exports.isClarityAbiList=D,exports.isClarityAbiOptional=T,exports.isClarityAbiPrimitive=b,exports.isClarityAbiResponse=w,exports.isClarityAbiStringAscii=S,exports.isClarityAbiStringUtf8=C,exports.isClarityAbiTraitReference=ue,exports.isClarityAbiTuple=E,exports.isNumber=p,exports.isResponse=ce,exports.makeContracts=se,exports.makeFungiblePostCondition=Te,exports.makeNonFungiblePostCondition=we,exports.mapFactory=U,exports.ok=h,exports.parseToCV=O,exports.principalToString=_,exports.projectErrors=ie,exports.projectFactory=B,exports.pureProxy=R,exports.rawClarityToValue=Q,exports.ro=K,exports.roErr=J,exports.roOk=q,exports.toCamelCase=s,exports.toKebabCase=c,exports.transformArgsArray=M,exports.transformArgsToCV=N,exports.transformObjectArgs=j;
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 ie=e=>typeof e==`number`;function p(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]=p(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)}`)}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;
package/dist/index.d.cts CHANGED
@@ -1,5 +1,5 @@
1
- import { h as SimnetDeploymentPlan, o as DeploymentPlan } from "./deployment-D_ahtPVB.cjs";
2
- import { ClarityAbi as ClarityAbi$1, ClarityAbiTypeTuple as ClarityAbiTypeTuple$1, ClarityValue, ContractPrincipalCV, FungiblePostCondition, NonFungiblePostCondition, PrincipalCV, StacksTransactionWire } from "@stacks/transactions";
1
+ import { h as SimnetDeploymentPlan, o as DeploymentPlan } from "./deployment-Bv57LEA2.cjs";
2
+ import { ClarityAbi as ClarityAbi$1, ClarityAbiTypeTuple as ClarityAbiTypeTuple$1, ClarityValue, ContractPrincipalCV, FungiblePostCondition, NonFungiblePostCondition, PrincipalCV, ReadOnlyFunctionResponse, StacksTransactionWire, cvToHex, hexToCV } from "@stacks/transactions";
3
3
  import { StacksNetwork, StacksNetworkName } from "@stacks/network";
4
4
 
5
5
  //#region src/abi-types.d.ts
@@ -47,18 +47,18 @@ type ClarityAbiTypeTraitReference = 'trait_reference';
47
47
  type ClarityAbiTypeNone = 'none';
48
48
  type ClarityAbiTypePrimitive = ClarityAbiTypeUInt128 | ClarityAbiTypeInt128 | ClarityAbiTypeBool | ClarityAbiTypePrincipal | ClarityAbiTypeTraitReference | ClarityAbiTypeNone;
49
49
  type ClarityAbiType = ClarityAbiTypePrimitive | ClarityAbiTypeBuffer | ClarityAbiTypeResponse | ClarityAbiTypeOptional | ClarityAbiTypeTuple | ClarityAbiTypeList | ClarityAbiTypeStringAscii | ClarityAbiTypeStringUtf8 | ClarityAbiTypeTraitReference;
50
- interface ClarityAbiArg {
50
+ type ClarityAbiArg = {
51
51
  name: string;
52
52
  type: ClarityAbiType;
53
- }
54
- interface ClarityAbiFunction {
53
+ };
54
+ type ClarityAbiFunction = {
55
55
  name: string;
56
56
  access: 'private' | 'public' | 'read_only';
57
57
  args: ClarityAbiArg[];
58
58
  outputs: {
59
59
  type: ClarityAbiType;
60
60
  };
61
- }
61
+ };
62
62
  type TypedAbiArg<T, N$1 extends string> = {
63
63
  _t?: T;
64
64
  name: N$1;
@@ -67,29 +67,29 @@ type TypedAbiFunction<T extends TypedAbiArg<unknown, string>[], R$1> = ClarityAb
67
67
  _t?: T;
68
68
  _r?: R$1;
69
69
  };
70
- interface ClarityAbiVariable {
70
+ type ClarityAbiVariable = {
71
71
  name: string;
72
72
  access: 'variable' | 'constant';
73
73
  type: ClarityAbiType;
74
- }
75
- type TypedAbiVariable<T> = ClarityAbiVariable & {};
76
- interface ClarityAbiMap {
74
+ };
75
+ type TypedAbiVariable<_T> = ClarityAbiVariable & {};
76
+ type ClarityAbiMap = {
77
77
  name: string;
78
78
  key: ClarityAbiType;
79
79
  value: ClarityAbiType;
80
- }
80
+ };
81
81
  type TypedAbiMap<K$1, V$1> = ClarityAbiMap & {
82
82
  _k?: K$1;
83
83
  _v?: V$1;
84
84
  };
85
- interface ClarityAbiTypeFungibleToken {
85
+ type ClarityAbiTypeFungibleToken = {
86
86
  name: string;
87
- }
88
- interface ClarityAbiTypeNonFungibleToken<T = unknown> {
87
+ };
88
+ type ClarityAbiTypeNonFungibleToken<T = unknown> = {
89
89
  name: string;
90
90
  type: ClarityAbiType;
91
91
  _t?: T;
92
- }
92
+ };
93
93
  type StacksEpochId = 'Epoch10' | 'Epoch20' | 'Epoch2_05' | 'Epoch21' | 'Epoch22' | 'Epoch23' | 'Epoch24' | 'Epoch25' | 'Epoch30' | 'Epoch31' | 'Epoch32' | 'Epoch33';
94
94
  type ClarityVersion = 'Clarity1' | 'Clarity2' | 'Clarity3' | 'Clarity4';
95
95
  type TypedAbi = Readonly<{
@@ -110,16 +110,16 @@ type TypedAbi = Readonly<{
110
110
  contractName: string;
111
111
  contractFile?: string;
112
112
  }>;
113
- interface ResponseOk<T, E> {
113
+ type ResponseOk<T, E> = {
114
114
  value: T;
115
115
  isOk: true;
116
116
  _e?: E;
117
- }
118
- interface ResponseErr<T, E> {
117
+ };
118
+ type ResponseErr<T, E> = {
119
119
  value: E;
120
120
  isOk: false;
121
121
  _o?: T;
122
- }
122
+ };
123
123
  type Response<Ok, Err> = ResponseOk<Ok, Err> | ResponseErr<Ok, Err>;
124
124
  type OkType<R$1> = R$1 extends ResponseOk<infer V, unknown> ? V : never;
125
125
  type ErrType<R$1> = R$1 extends ResponseErr<unknown, infer V> ? V : never;
@@ -144,7 +144,7 @@ declare function cvToValue<T = any>(val: ClarityValue, returnResponse?: boolean)
144
144
  * @param hex - the hex encoded string with or without `0x` prefix
145
145
  * @param jsonCompat - enable to serialize bigints to strings
146
146
  */
147
- declare function hexToCvValue<T>(hex: string, jsonCompat?: boolean): any;
147
+ declare function hexToCvValue<_T>(hex: string, jsonCompat?: boolean): any;
148
148
  type TupleInput = Record<string, any>;
149
149
  type CVInput = string | boolean | TupleInput | number | bigint;
150
150
  declare const isClarityAbiPrimitive: (val: ClarityAbiType) => val is ClarityAbiTypePrimitive;
@@ -155,9 +155,14 @@ declare const isClarityAbiResponse: (val: ClarityAbiType) => val is ClarityAbiTy
155
155
  declare const isClarityAbiOptional: (val: ClarityAbiType) => val is ClarityAbiTypeOptional;
156
156
  declare const isClarityAbiTuple: (val: ClarityAbiType) => val is ClarityAbiTypeTuple$1;
157
157
  declare const isClarityAbiList: (val: ClarityAbiType) => val is ClarityAbiTypeList;
158
- declare const isClarityAbiTraitReference: (val: ClarityAbiType) => val is "trait_reference";
158
+ declare const isClarityAbiTraitReference: (val: ClarityAbiType) => val is ClarityAbiTypeTraitReference;
159
159
  declare function parseToCV(input: CVInput, type: ClarityAbiType): ClarityValue;
160
- declare function cvToString(val: ClarityValue, encoding?: 'tryAscii' | 'hex'): string;
160
+ type CvToStringOptions = {
161
+ encoding?: 'tryAscii' | 'hex';
162
+ indent?: number;
163
+ depth?: number;
164
+ };
165
+ declare function cvToString(val: ClarityValue, options?: CvToStringOptions | 'tryAscii' | 'hex'): string;
161
166
  /**
162
167
  * Convert a Clarity value to valid JSON. This does this same thing as
163
168
  * `cvToValue`, except that integers are returned as strings, and buffers
@@ -182,19 +187,19 @@ type Compact$1<T> = { [K in keyof T]: T[K] };
182
187
  type AbiTupleTo<T extends ReadonlyTuple> = Compact$1<UnionToIntersection$1<TupleTypeUnion<T['tuple'][number]>>>;
183
188
  type AbiTypeTo<T extends ClarityAbiType | ReadonlyTuple> = T extends ClarityAbiTypePrimitive ? AbiPrimitiveTo<T> : T extends ClarityAbiTypeBuffer ? Uint8Array : T extends ClarityAbiTypeStringAscii ? string : T extends ClarityAbiTypeStringUtf8 ? string : T extends ClarityAbiTypeList ? AbiTypeTo<T['list']['type']>[] : T extends ClarityAbiTypeOptional ? AbiTypeTo<T['optional']> | null : T extends ClarityAbiTypeResponse ? Response<AbiTypeTo<T['response']['ok']>, AbiTypeTo<T['response']['error']>> : T extends ReadonlyTuple ? AbiTupleTo<T> : never;
184
189
  type FunctionReturnType<T> = T extends TypedAbiFunction<TypedAbiArg<unknown, string>[], infer R> ? R : never;
185
- type Jsonize<T> = T extends BigInt ? string : T extends Uint8Array ? string : T extends (infer V)[] ? Jsonize<V>[] : T extends Record<keyof T, unknown> ? { [K in keyof T as K]: Jsonize<T[K]> } : T;
190
+ type Jsonize<T> = T extends bigint ? string : T extends Uint8Array ? string : T extends (infer V)[] ? Jsonize<V>[] : T extends Record<keyof T, unknown> ? { [K in keyof T as K]: Jsonize<T[K]> } : T;
186
191
  declare function getTypeString(val: ClarityAbiType): string;
187
192
  //#endregion
188
193
  //#region src/transaction.d.ts
189
- interface ResultAssets {
194
+ type ResultAssets = {
190
195
  stx: Record<string, string>;
191
196
  burns: Record<string, string>;
192
197
  tokens: Record<string, Record<string, string>>;
193
198
  assets: Record<string, Record<string, string>>;
194
- }
199
+ };
195
200
  //#endregion
196
201
  //#region src/factory-types.d.ts
197
- interface ContractCall<T> {
202
+ type ContractCall<T> = {
198
203
  function: ClarityAbiFunction;
199
204
  nativeArgs: any[];
200
205
  functionArgs: ClarityValue[];
@@ -202,7 +207,7 @@ interface ContractCall<T> {
202
207
  contractName: string;
203
208
  functionName: string;
204
209
  _r?: T;
205
- }
210
+ };
206
211
  interface ContractCallTyped<Args$1 extends UnknownArgs, R$1> extends Omit<ContractCall<R$1>, 'nativeArgs'> {
207
212
  nativeArgs: ArgsType<Args$1>;
208
213
  }
@@ -239,20 +244,20 @@ type KebabObject<T> = T extends Uint8Array ? T : T extends Record<string, unknow
239
244
  type ExtractArgs<F$1> = F$1 extends TypedAbiFunction<infer Args, unknown> ? ArgsTuple<Args> : never;
240
245
  type ExtractArgsRecord<F$1> = F$1 extends TypedAbiFunction<infer Args, unknown> ? ArgsRecord<Args> : never;
241
246
  type ContractBuilder<T> = (contractAddress: string, contractName: string) => T;
242
- interface Contract<T> {
247
+ type Contract<T> = {
243
248
  address: string;
244
249
  contractFile: string;
245
250
  contract: ContractBuilder<T>;
246
251
  abi: ClarityAbi;
247
252
  name: string;
248
- }
249
- interface Contracts<T> {
253
+ };
254
+ type Contracts<T> = {
250
255
  [key: string]: Contract<T>;
251
- }
252
- interface ContractInstance<T> {
256
+ };
257
+ type ContractInstance<T> = {
253
258
  identifier: string;
254
259
  contract: T;
255
- }
260
+ };
256
261
  type ContractInstances<T extends Contracts<any>> = { [Name in keyof T]: ContractInstance<ReturnType<T[Name]['contract']>> };
257
262
  //#endregion
258
263
  //#region src/utils.d.ts
@@ -261,12 +266,12 @@ declare const MAINNET_BURN_ADDRESS = "SP000000000000000000002Q6VF78";
261
266
  declare const toCamelCase: (input: string | number | symbol, titleCase?: boolean) => string;
262
267
  declare function toKebabCase(input: string): string;
263
268
  declare function getContractName(identifier: string, camelCase?: boolean): string;
264
- declare const getContractNameFromPath: (path: string) => string;
269
+ declare const getContractNameFromPath: (path: string) => string | undefined;
265
270
  declare const getContractIdentifier: <T>(contract: Contract<T>) => string;
266
271
  declare const getContractPrincipalCV: <T>(contract: Contract<T>) => ContractPrincipalCV;
267
272
  declare function bootContractIdentifier(name: string, mainnet: boolean): string;
268
273
  declare function bytesToHex(bytes: Uint8Array): string;
269
- declare function hexToBytes(hexString: string): Uint8Array;
274
+ declare function hexToBytes(hexString: string): Uint8Array<ArrayBufferLike>;
270
275
  declare function bytesToAscii(bytes: Uint8Array): string;
271
276
  declare const isNumber: (value: number | string) => value is number;
272
277
  type ErrorKeyCheck<K$1> = K$1 extends string ? Lowercase<K$1> extends `err${string}` ? K$1 : never : never;
@@ -297,12 +302,12 @@ declare enum CoreNodeEventType {
297
302
  FtBurnEvent = "ft_burn_event",
298
303
  }
299
304
  type NonStandardClarityValue = unknown;
300
- interface CoreNodeEventBase {
305
+ type CoreNodeEventBase = {
301
306
  /** 0x-prefix transaction hash. */
302
307
  txid: string;
303
308
  event_index: number;
304
309
  committed: boolean;
305
- }
310
+ };
306
311
  interface SmartContractEvent extends CoreNodeEventBase {
307
312
  type: CoreNodeEventType.ContractEvent;
308
313
  contract_event: {
@@ -425,28 +430,28 @@ declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.F
425
430
  declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.FtBurnEvent): FtBurnEvent[];
426
431
  //#endregion
427
432
  //#region src/contracts.d.ts
428
- interface MakeContractsOptions {
433
+ type MakeContractsOptions = {
429
434
  deployerAddress?: string;
430
- }
435
+ };
431
436
  declare function makeContracts<T extends Contracts<any>>(contracts: T, options?: MakeContractsOptions): ContractInstances<T>;
432
437
  //#endregion
433
438
  //#region src/pure/index.d.ts
434
- interface PureContractInfo {
439
+ type PureContractInfo = {
435
440
  abi: ClarityAbi;
436
441
  contractAddress: string;
437
442
  contractName: string;
438
- }
443
+ };
439
444
  type ContractFn<T> = (args: any) => T;
440
445
  type ContractReturn<C extends ContractFn<ContractCalls.ReadOnly<any>>> = C extends ContractFn<ContractCalls.ReadOnly<infer T>> ? T : unknown;
441
446
  type ContractReturnOk<C extends ContractFn<ContractCalls.ReadOnly<any>>> = ContractReturn<C> extends Response<infer O, any> ? O : unknown;
442
447
  type ContractReturnErr<C extends ContractFn<ContractCalls.ReadOnly<any>>> = ContractReturn<C> extends Response<any, infer E> ? E : unknown;
443
- interface MapGet<Key, Val> {
448
+ type MapGet<Key, _Val> = {
444
449
  map: ClarityAbiMap;
445
450
  nativeKey: Key;
446
451
  key: ClarityValue;
447
452
  contractAddress: string;
448
453
  contractName: string;
449
- }
454
+ };
450
455
  declare namespace ContractCalls {
451
456
  type ReadOnly<T> = ContractCall<T>;
452
457
  type Public<Ok, Err> = ContractCall<Response<Ok, Err>>;
@@ -455,16 +460,80 @@ declare namespace ContractCalls {
455
460
  }
456
461
  declare const pureProxy: <T extends object>(target: PureContractInfo) => T;
457
462
  //#endregion
463
+ //#region src/api/call-read-only.d.ts
464
+ type ReadOnlyOptions = {
465
+ contractAddress: string;
466
+ contractName: string;
467
+ functionName: string;
468
+ functionArgs: (string | ClarityValue)[];
469
+ /** address of the sender (can be left blank, will default to contract address) */
470
+ senderAddress?: string;
471
+ /** the network that the contract which contains the function is deployed to */
472
+ url: string;
473
+ tip?: string;
474
+ apiKey?: string;
475
+ headers?: Record<string, string>;
476
+ };
477
+ /**
478
+ * Converts the response of a read-only function call into its Clarity Value
479
+ * @param response - {@link ReadOnlyFunctionResponse}
480
+ */
481
+ declare function parseReadOnlyResponse<T extends ClarityValue>(response: ReadOnlyFunctionResponse): T;
482
+ /**
483
+ * Calls a read only function from a contract interface
484
+ *
485
+ * @param options - the options object
486
+ *
487
+ * Returns an ClarityValue
488
+ *
489
+ */
490
+ declare function callReadOnlyFunction<T extends ClarityValue>(options: ReadOnlyOptions): Promise<T>;
491
+ //#endregion
492
+ //#region src/api/url-parsing.d.ts
493
+ type OptionalFormValue = {
494
+ isNone: boolean;
495
+ value: unknown;
496
+ };
497
+ type ResponseFormValue = {
498
+ isOk: boolean;
499
+ value?: unknown;
500
+ ok?: unknown;
501
+ err?: unknown;
502
+ };
503
+ declare function isOptionalFormValue(value: unknown): value is OptionalFormValue;
504
+ declare function isResponseFormValue(value: unknown): value is ResponseFormValue;
505
+ /**
506
+ * Converts a form value to the format expected by parseToCV.
507
+ * Handles differences between form representation and parseToCV expectations:
508
+ * - Optionals use { isNone, value } in forms but null for none in parseToCV
509
+ * - Buffers are hex strings in forms but Uint8Array in parseToCV
510
+ */
511
+ declare function formValueToParseable(value: unknown, type: ClarityAbiType): unknown;
512
+ /**
513
+ * Converts a single form value to a ClarityValue using the ABI type.
514
+ */
515
+ declare function formValueToCV(value: unknown, type: ClarityAbiType): ClarityValue;
516
+ /**
517
+ * Parses a raw string value from a URL query parameter into a "form value"
518
+ * based on the Clarity ABI type. This intermediate form value can then
519
+ * be converted to a ClarityValue using `formValueToCV`.
520
+ */
521
+ declare function parseQueryValue(value: string | undefined, type: ClarityAbiType): unknown;
522
+ /**
523
+ * Converts all query parameters to an array of ClarityValues based on the function's ABI args.
524
+ */
525
+ declare function queryToFunctionArgs(query: Record<string, string | string[] | undefined>, args: ClarityAbiArg[]): ClarityValue[];
526
+ //#endregion
458
527
  //#region src/api/index.d.ts
459
- interface ApiOptionsUrl {
528
+ type ApiOptionsUrl = {
460
529
  url: string;
461
530
  network?: undefined;
462
- }
531
+ };
463
532
  type Network = StacksNetwork | StacksNetworkName;
464
- interface ApiOptionsNetwork {
533
+ type ApiOptionsNetwork = {
465
534
  network: StacksNetworkName | StacksNetwork;
466
535
  url?: undefined;
467
- }
536
+ };
468
537
  type ApiOptionsBase = {
469
538
  network: StacksNetwork | StacksNetworkName;
470
539
  tip?: string;
@@ -554,4 +623,4 @@ type RawClarityTypeTo<T extends ClarityAbiType, A$1 = any> = T extends ClarityAb
554
623
  type ResponseType<F$1 extends TypedAbiFunction<UnknownArgs, any>> = F$1 extends TypedAbiFunction<infer A, infer R> ? R : never;
555
624
  declare function rawClarityToValue<T = any>(input: string, type: ClarityAbiType): T;
556
625
  //#endregion
557
- export { AbiPrimitiveTo, AbiTupleTo, AbiTypeTo, AllContracts, ApiOptions, ApiOptionsBase, ApiOptionsJsonize, ApiOptionsNetwork, ApiOptionsNoJson, ApiOptionsUrl, ArgsRecord, ArgsTuple, ArgsType, AssetNames, CVInput, ClarigenClient, type ClarityAbi, ClarityAbiArg, ClarityAbiFunction, ClarityAbiMap, ClarityAbiType, ClarityAbiTypeBool, ClarityAbiTypeBuffer, ClarityAbiTypeFungibleToken, ClarityAbiTypeInt128, ClarityAbiTypeList, ClarityAbiTypeNonFungibleToken, ClarityAbiTypeNone, ClarityAbiTypeOptional, ClarityAbiTypePrimitive, ClarityAbiTypePrincipal, ClarityAbiTypeResponse, ClarityAbiTypeStringAscii, ClarityAbiTypeStringUtf8, ClarityAbiTypeTraitReference, ClarityAbiTypeTuple, ClarityAbiTypeUInt128, ClarityAbiVariable, ClarityVersion, Contract, ContractBuilder, ContractCall, ContractCallFunction, ContractCallTyped, type ContractCalls, ContractDeployments, ContractFactory, type ContractFn, ContractFunctions, ContractInstance, ContractInstances, type ContractReturn, type ContractReturnErr, type ContractReturnOk, Contracts, ContractsToContractCalls, CoreNodeEvent, CoreNodeEventBase, CoreNodeEventType, 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, Project, ProjectErrors, ProjectFactory, RawClarityTypeTo, ReadonlyTuple, Response, ResponseErr, ResponseOk, ResponseType, ResultAssets, type SimnetDeploymentPlan, SmartContractEvent, StacksEpochId, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TESTNET_BURN_ADDRESS, TupleInput, TypedAbi, TypedAbiArg, TypedAbiFunction, TypedAbiMap, TypedAbiVariable, UnionToIntersection, UnknownArg, UnknownArgs, bootContractIdentifier, broadcast, bytesToAscii, bytesToHex, contractFactory, contractsFactory, createAssetInfo, cvToJSON, cvToString, cvToValue, deploymentFactory, err, expectErr, expectOk, extractErrors, fetchMapGet, filterEvents, findJsTupleKey, functionsFactory, getApiUrl, getContractIdentifier, getContractName, getContractNameFromPath, getContractPrincipalCV, getTypeString, hexToBytes, hexToCvValue, isClarityAbiBuffer, isClarityAbiList, isClarityAbiOptional, isClarityAbiPrimitive, isClarityAbiResponse, isClarityAbiStringAscii, isClarityAbiStringUtf8, isClarityAbiTraitReference, isClarityAbiTuple, isNumber, isResponse, makeContracts, makeFungiblePostCondition, makeNonFungiblePostCondition, mapFactory, ok, parseToCV, principalToString, projectErrors, projectFactory, pureProxy, rawClarityToValue, ro, roErr, roOk, toCamelCase, toKebabCase, transformArgsArray, transformArgsToCV, transformObjectArgs };
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, type ContractCalls, ContractDeployments, ContractFactory, type ContractFn, ContractFunctions, ContractInstance, ContractInstances, type ContractReturn, type ContractReturnErr, type ContractReturnOk, 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, pureProxy, queryToFunctionArgs, rawClarityToValue, ro, roErr, roOk, toCamelCase, toKebabCase, transformArgsArray, transformArgsToCV, transformObjectArgs };
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
- import { h as SimnetDeploymentPlan, o as DeploymentPlan } from "./deployment-DSHddL3l.mjs";
2
- import { ClarityAbi as ClarityAbi$1, ClarityAbiTypeTuple as ClarityAbiTypeTuple$1, ClarityValue, ContractPrincipalCV, FungiblePostCondition, NonFungiblePostCondition, PrincipalCV, StacksTransactionWire } from "@stacks/transactions";
1
+ import { h as SimnetDeploymentPlan, o as DeploymentPlan } from "./deployment-hBXji8Xz.mjs";
2
+ import { ClarityAbi as ClarityAbi$1, ClarityAbiTypeTuple as ClarityAbiTypeTuple$1, ClarityValue, ContractPrincipalCV, FungiblePostCondition, NonFungiblePostCondition, PrincipalCV, ReadOnlyFunctionResponse, StacksTransactionWire, cvToHex, hexToCV } from "@stacks/transactions";
3
3
  import { StacksNetwork, StacksNetworkName } from "@stacks/network";
4
4
 
5
5
  //#region src/abi-types.d.ts
@@ -47,18 +47,18 @@ type ClarityAbiTypeTraitReference = 'trait_reference';
47
47
  type ClarityAbiTypeNone = 'none';
48
48
  type ClarityAbiTypePrimitive = ClarityAbiTypeUInt128 | ClarityAbiTypeInt128 | ClarityAbiTypeBool | ClarityAbiTypePrincipal | ClarityAbiTypeTraitReference | ClarityAbiTypeNone;
49
49
  type ClarityAbiType = ClarityAbiTypePrimitive | ClarityAbiTypeBuffer | ClarityAbiTypeResponse | ClarityAbiTypeOptional | ClarityAbiTypeTuple | ClarityAbiTypeList | ClarityAbiTypeStringAscii | ClarityAbiTypeStringUtf8 | ClarityAbiTypeTraitReference;
50
- interface ClarityAbiArg {
50
+ type ClarityAbiArg = {
51
51
  name: string;
52
52
  type: ClarityAbiType;
53
- }
54
- interface ClarityAbiFunction {
53
+ };
54
+ type ClarityAbiFunction = {
55
55
  name: string;
56
56
  access: 'private' | 'public' | 'read_only';
57
57
  args: ClarityAbiArg[];
58
58
  outputs: {
59
59
  type: ClarityAbiType;
60
60
  };
61
- }
61
+ };
62
62
  type TypedAbiArg<T, N$1 extends string> = {
63
63
  _t?: T;
64
64
  name: N$1;
@@ -67,29 +67,29 @@ type TypedAbiFunction<T extends TypedAbiArg<unknown, string>[], R$1> = ClarityAb
67
67
  _t?: T;
68
68
  _r?: R$1;
69
69
  };
70
- interface ClarityAbiVariable {
70
+ type ClarityAbiVariable = {
71
71
  name: string;
72
72
  access: 'variable' | 'constant';
73
73
  type: ClarityAbiType;
74
- }
75
- type TypedAbiVariable<T> = ClarityAbiVariable & {};
76
- interface ClarityAbiMap {
74
+ };
75
+ type TypedAbiVariable<_T> = ClarityAbiVariable & {};
76
+ type ClarityAbiMap = {
77
77
  name: string;
78
78
  key: ClarityAbiType;
79
79
  value: ClarityAbiType;
80
- }
80
+ };
81
81
  type TypedAbiMap<K$1, V$1> = ClarityAbiMap & {
82
82
  _k?: K$1;
83
83
  _v?: V$1;
84
84
  };
85
- interface ClarityAbiTypeFungibleToken {
85
+ type ClarityAbiTypeFungibleToken = {
86
86
  name: string;
87
- }
88
- interface ClarityAbiTypeNonFungibleToken<T = unknown> {
87
+ };
88
+ type ClarityAbiTypeNonFungibleToken<T = unknown> = {
89
89
  name: string;
90
90
  type: ClarityAbiType;
91
91
  _t?: T;
92
- }
92
+ };
93
93
  type StacksEpochId = 'Epoch10' | 'Epoch20' | 'Epoch2_05' | 'Epoch21' | 'Epoch22' | 'Epoch23' | 'Epoch24' | 'Epoch25' | 'Epoch30' | 'Epoch31' | 'Epoch32' | 'Epoch33';
94
94
  type ClarityVersion = 'Clarity1' | 'Clarity2' | 'Clarity3' | 'Clarity4';
95
95
  type TypedAbi = Readonly<{
@@ -110,16 +110,16 @@ type TypedAbi = Readonly<{
110
110
  contractName: string;
111
111
  contractFile?: string;
112
112
  }>;
113
- interface ResponseOk<T, E> {
113
+ type ResponseOk<T, E> = {
114
114
  value: T;
115
115
  isOk: true;
116
116
  _e?: E;
117
- }
118
- interface ResponseErr<T, E> {
117
+ };
118
+ type ResponseErr<T, E> = {
119
119
  value: E;
120
120
  isOk: false;
121
121
  _o?: T;
122
- }
122
+ };
123
123
  type Response<Ok, Err> = ResponseOk<Ok, Err> | ResponseErr<Ok, Err>;
124
124
  type OkType<R$1> = R$1 extends ResponseOk<infer V, unknown> ? V : never;
125
125
  type ErrType<R$1> = R$1 extends ResponseErr<unknown, infer V> ? V : never;
@@ -144,7 +144,7 @@ declare function cvToValue<T = any>(val: ClarityValue, returnResponse?: boolean)
144
144
  * @param hex - the hex encoded string with or without `0x` prefix
145
145
  * @param jsonCompat - enable to serialize bigints to strings
146
146
  */
147
- declare function hexToCvValue<T>(hex: string, jsonCompat?: boolean): any;
147
+ declare function hexToCvValue<_T>(hex: string, jsonCompat?: boolean): any;
148
148
  type TupleInput = Record<string, any>;
149
149
  type CVInput = string | boolean | TupleInput | number | bigint;
150
150
  declare const isClarityAbiPrimitive: (val: ClarityAbiType) => val is ClarityAbiTypePrimitive;
@@ -155,9 +155,14 @@ declare const isClarityAbiResponse: (val: ClarityAbiType) => val is ClarityAbiTy
155
155
  declare const isClarityAbiOptional: (val: ClarityAbiType) => val is ClarityAbiTypeOptional;
156
156
  declare const isClarityAbiTuple: (val: ClarityAbiType) => val is ClarityAbiTypeTuple$1;
157
157
  declare const isClarityAbiList: (val: ClarityAbiType) => val is ClarityAbiTypeList;
158
- declare const isClarityAbiTraitReference: (val: ClarityAbiType) => val is "trait_reference";
158
+ declare const isClarityAbiTraitReference: (val: ClarityAbiType) => val is ClarityAbiTypeTraitReference;
159
159
  declare function parseToCV(input: CVInput, type: ClarityAbiType): ClarityValue;
160
- declare function cvToString(val: ClarityValue, encoding?: 'tryAscii' | 'hex'): string;
160
+ type CvToStringOptions = {
161
+ encoding?: 'tryAscii' | 'hex';
162
+ indent?: number;
163
+ depth?: number;
164
+ };
165
+ declare function cvToString(val: ClarityValue, options?: CvToStringOptions | 'tryAscii' | 'hex'): string;
161
166
  /**
162
167
  * Convert a Clarity value to valid JSON. This does this same thing as
163
168
  * `cvToValue`, except that integers are returned as strings, and buffers
@@ -182,19 +187,19 @@ type Compact$1<T> = { [K in keyof T]: T[K] };
182
187
  type AbiTupleTo<T extends ReadonlyTuple> = Compact$1<UnionToIntersection$1<TupleTypeUnion<T['tuple'][number]>>>;
183
188
  type AbiTypeTo<T extends ClarityAbiType | ReadonlyTuple> = T extends ClarityAbiTypePrimitive ? AbiPrimitiveTo<T> : T extends ClarityAbiTypeBuffer ? Uint8Array : T extends ClarityAbiTypeStringAscii ? string : T extends ClarityAbiTypeStringUtf8 ? string : T extends ClarityAbiTypeList ? AbiTypeTo<T['list']['type']>[] : T extends ClarityAbiTypeOptional ? AbiTypeTo<T['optional']> | null : T extends ClarityAbiTypeResponse ? Response<AbiTypeTo<T['response']['ok']>, AbiTypeTo<T['response']['error']>> : T extends ReadonlyTuple ? AbiTupleTo<T> : never;
184
189
  type FunctionReturnType<T> = T extends TypedAbiFunction<TypedAbiArg<unknown, string>[], infer R> ? R : never;
185
- type Jsonize<T> = T extends BigInt ? string : T extends Uint8Array ? string : T extends (infer V)[] ? Jsonize<V>[] : T extends Record<keyof T, unknown> ? { [K in keyof T as K]: Jsonize<T[K]> } : T;
190
+ type Jsonize<T> = T extends bigint ? string : T extends Uint8Array ? string : T extends (infer V)[] ? Jsonize<V>[] : T extends Record<keyof T, unknown> ? { [K in keyof T as K]: Jsonize<T[K]> } : T;
186
191
  declare function getTypeString(val: ClarityAbiType): string;
187
192
  //#endregion
188
193
  //#region src/transaction.d.ts
189
- interface ResultAssets {
194
+ type ResultAssets = {
190
195
  stx: Record<string, string>;
191
196
  burns: Record<string, string>;
192
197
  tokens: Record<string, Record<string, string>>;
193
198
  assets: Record<string, Record<string, string>>;
194
- }
199
+ };
195
200
  //#endregion
196
201
  //#region src/factory-types.d.ts
197
- interface ContractCall<T> {
202
+ type ContractCall<T> = {
198
203
  function: ClarityAbiFunction;
199
204
  nativeArgs: any[];
200
205
  functionArgs: ClarityValue[];
@@ -202,7 +207,7 @@ interface ContractCall<T> {
202
207
  contractName: string;
203
208
  functionName: string;
204
209
  _r?: T;
205
- }
210
+ };
206
211
  interface ContractCallTyped<Args$1 extends UnknownArgs, R$1> extends Omit<ContractCall<R$1>, 'nativeArgs'> {
207
212
  nativeArgs: ArgsType<Args$1>;
208
213
  }
@@ -239,20 +244,20 @@ type KebabObject<T> = T extends Uint8Array ? T : T extends Record<string, unknow
239
244
  type ExtractArgs<F$1> = F$1 extends TypedAbiFunction<infer Args, unknown> ? ArgsTuple<Args> : never;
240
245
  type ExtractArgsRecord<F$1> = F$1 extends TypedAbiFunction<infer Args, unknown> ? ArgsRecord<Args> : never;
241
246
  type ContractBuilder<T> = (contractAddress: string, contractName: string) => T;
242
- interface Contract<T> {
247
+ type Contract<T> = {
243
248
  address: string;
244
249
  contractFile: string;
245
250
  contract: ContractBuilder<T>;
246
251
  abi: ClarityAbi;
247
252
  name: string;
248
- }
249
- interface Contracts<T> {
253
+ };
254
+ type Contracts<T> = {
250
255
  [key: string]: Contract<T>;
251
- }
252
- interface ContractInstance<T> {
256
+ };
257
+ type ContractInstance<T> = {
253
258
  identifier: string;
254
259
  contract: T;
255
- }
260
+ };
256
261
  type ContractInstances<T extends Contracts<any>> = { [Name in keyof T]: ContractInstance<ReturnType<T[Name]['contract']>> };
257
262
  //#endregion
258
263
  //#region src/utils.d.ts
@@ -261,12 +266,12 @@ declare const MAINNET_BURN_ADDRESS = "SP000000000000000000002Q6VF78";
261
266
  declare const toCamelCase: (input: string | number | symbol, titleCase?: boolean) => string;
262
267
  declare function toKebabCase(input: string): string;
263
268
  declare function getContractName(identifier: string, camelCase?: boolean): string;
264
- declare const getContractNameFromPath: (path: string) => string;
269
+ declare const getContractNameFromPath: (path: string) => string | undefined;
265
270
  declare const getContractIdentifier: <T>(contract: Contract<T>) => string;
266
271
  declare const getContractPrincipalCV: <T>(contract: Contract<T>) => ContractPrincipalCV;
267
272
  declare function bootContractIdentifier(name: string, mainnet: boolean): string;
268
273
  declare function bytesToHex(bytes: Uint8Array): string;
269
- declare function hexToBytes(hexString: string): Uint8Array;
274
+ declare function hexToBytes(hexString: string): Uint8Array<ArrayBufferLike>;
270
275
  declare function bytesToAscii(bytes: Uint8Array): string;
271
276
  declare const isNumber: (value: number | string) => value is number;
272
277
  type ErrorKeyCheck<K$1> = K$1 extends string ? Lowercase<K$1> extends `err${string}` ? K$1 : never : never;
@@ -297,12 +302,12 @@ declare enum CoreNodeEventType {
297
302
  FtBurnEvent = "ft_burn_event",
298
303
  }
299
304
  type NonStandardClarityValue = unknown;
300
- interface CoreNodeEventBase {
305
+ type CoreNodeEventBase = {
301
306
  /** 0x-prefix transaction hash. */
302
307
  txid: string;
303
308
  event_index: number;
304
309
  committed: boolean;
305
- }
310
+ };
306
311
  interface SmartContractEvent extends CoreNodeEventBase {
307
312
  type: CoreNodeEventType.ContractEvent;
308
313
  contract_event: {
@@ -425,28 +430,28 @@ declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.F
425
430
  declare function filterEvents(events: CoreNodeEvent[], type: CoreNodeEventType.FtBurnEvent): FtBurnEvent[];
426
431
  //#endregion
427
432
  //#region src/contracts.d.ts
428
- interface MakeContractsOptions {
433
+ type MakeContractsOptions = {
429
434
  deployerAddress?: string;
430
- }
435
+ };
431
436
  declare function makeContracts<T extends Contracts<any>>(contracts: T, options?: MakeContractsOptions): ContractInstances<T>;
432
437
  //#endregion
433
438
  //#region src/pure/index.d.ts
434
- interface PureContractInfo {
439
+ type PureContractInfo = {
435
440
  abi: ClarityAbi;
436
441
  contractAddress: string;
437
442
  contractName: string;
438
- }
443
+ };
439
444
  type ContractFn<T> = (args: any) => T;
440
445
  type ContractReturn<C extends ContractFn<ContractCalls.ReadOnly<any>>> = C extends ContractFn<ContractCalls.ReadOnly<infer T>> ? T : unknown;
441
446
  type ContractReturnOk<C extends ContractFn<ContractCalls.ReadOnly<any>>> = ContractReturn<C> extends Response<infer O, any> ? O : unknown;
442
447
  type ContractReturnErr<C extends ContractFn<ContractCalls.ReadOnly<any>>> = ContractReturn<C> extends Response<any, infer E> ? E : unknown;
443
- interface MapGet<Key, Val> {
448
+ type MapGet<Key, _Val> = {
444
449
  map: ClarityAbiMap;
445
450
  nativeKey: Key;
446
451
  key: ClarityValue;
447
452
  contractAddress: string;
448
453
  contractName: string;
449
- }
454
+ };
450
455
  declare namespace ContractCalls {
451
456
  type ReadOnly<T> = ContractCall<T>;
452
457
  type Public<Ok, Err> = ContractCall<Response<Ok, Err>>;
@@ -455,16 +460,80 @@ declare namespace ContractCalls {
455
460
  }
456
461
  declare const pureProxy: <T extends object>(target: PureContractInfo) => T;
457
462
  //#endregion
463
+ //#region src/api/call-read-only.d.ts
464
+ type ReadOnlyOptions = {
465
+ contractAddress: string;
466
+ contractName: string;
467
+ functionName: string;
468
+ functionArgs: (string | ClarityValue)[];
469
+ /** address of the sender (can be left blank, will default to contract address) */
470
+ senderAddress?: string;
471
+ /** the network that the contract which contains the function is deployed to */
472
+ url: string;
473
+ tip?: string;
474
+ apiKey?: string;
475
+ headers?: Record<string, string>;
476
+ };
477
+ /**
478
+ * Converts the response of a read-only function call into its Clarity Value
479
+ * @param response - {@link ReadOnlyFunctionResponse}
480
+ */
481
+ declare function parseReadOnlyResponse<T extends ClarityValue>(response: ReadOnlyFunctionResponse): T;
482
+ /**
483
+ * Calls a read only function from a contract interface
484
+ *
485
+ * @param options - the options object
486
+ *
487
+ * Returns an ClarityValue
488
+ *
489
+ */
490
+ declare function callReadOnlyFunction<T extends ClarityValue>(options: ReadOnlyOptions): Promise<T>;
491
+ //#endregion
492
+ //#region src/api/url-parsing.d.ts
493
+ type OptionalFormValue = {
494
+ isNone: boolean;
495
+ value: unknown;
496
+ };
497
+ type ResponseFormValue = {
498
+ isOk: boolean;
499
+ value?: unknown;
500
+ ok?: unknown;
501
+ err?: unknown;
502
+ };
503
+ declare function isOptionalFormValue(value: unknown): value is OptionalFormValue;
504
+ declare function isResponseFormValue(value: unknown): value is ResponseFormValue;
505
+ /**
506
+ * Converts a form value to the format expected by parseToCV.
507
+ * Handles differences between form representation and parseToCV expectations:
508
+ * - Optionals use { isNone, value } in forms but null for none in parseToCV
509
+ * - Buffers are hex strings in forms but Uint8Array in parseToCV
510
+ */
511
+ declare function formValueToParseable(value: unknown, type: ClarityAbiType): unknown;
512
+ /**
513
+ * Converts a single form value to a ClarityValue using the ABI type.
514
+ */
515
+ declare function formValueToCV(value: unknown, type: ClarityAbiType): ClarityValue;
516
+ /**
517
+ * Parses a raw string value from a URL query parameter into a "form value"
518
+ * based on the Clarity ABI type. This intermediate form value can then
519
+ * be converted to a ClarityValue using `formValueToCV`.
520
+ */
521
+ declare function parseQueryValue(value: string | undefined, type: ClarityAbiType): unknown;
522
+ /**
523
+ * Converts all query parameters to an array of ClarityValues based on the function's ABI args.
524
+ */
525
+ declare function queryToFunctionArgs(query: Record<string, string | string[] | undefined>, args: ClarityAbiArg[]): ClarityValue[];
526
+ //#endregion
458
527
  //#region src/api/index.d.ts
459
- interface ApiOptionsUrl {
528
+ type ApiOptionsUrl = {
460
529
  url: string;
461
530
  network?: undefined;
462
- }
531
+ };
463
532
  type Network = StacksNetwork | StacksNetworkName;
464
- interface ApiOptionsNetwork {
533
+ type ApiOptionsNetwork = {
465
534
  network: StacksNetworkName | StacksNetwork;
466
535
  url?: undefined;
467
- }
536
+ };
468
537
  type ApiOptionsBase = {
469
538
  network: StacksNetwork | StacksNetworkName;
470
539
  tip?: string;
@@ -554,4 +623,4 @@ type RawClarityTypeTo<T extends ClarityAbiType, A$1 = any> = T extends ClarityAb
554
623
  type ResponseType<F$1 extends TypedAbiFunction<UnknownArgs, any>> = F$1 extends TypedAbiFunction<infer A, infer R> ? R : never;
555
624
  declare function rawClarityToValue<T = any>(input: string, type: ClarityAbiType): T;
556
625
  //#endregion
557
- export { AbiPrimitiveTo, AbiTupleTo, AbiTypeTo, AllContracts, ApiOptions, ApiOptionsBase, ApiOptionsJsonize, ApiOptionsNetwork, ApiOptionsNoJson, ApiOptionsUrl, ArgsRecord, ArgsTuple, ArgsType, AssetNames, CVInput, ClarigenClient, type ClarityAbi, ClarityAbiArg, ClarityAbiFunction, ClarityAbiMap, ClarityAbiType, ClarityAbiTypeBool, ClarityAbiTypeBuffer, ClarityAbiTypeFungibleToken, ClarityAbiTypeInt128, ClarityAbiTypeList, ClarityAbiTypeNonFungibleToken, ClarityAbiTypeNone, ClarityAbiTypeOptional, ClarityAbiTypePrimitive, ClarityAbiTypePrincipal, ClarityAbiTypeResponse, ClarityAbiTypeStringAscii, ClarityAbiTypeStringUtf8, ClarityAbiTypeTraitReference, ClarityAbiTypeTuple, ClarityAbiTypeUInt128, ClarityAbiVariable, ClarityVersion, Contract, ContractBuilder, ContractCall, ContractCallFunction, ContractCallTyped, type ContractCalls, ContractDeployments, ContractFactory, type ContractFn, ContractFunctions, ContractInstance, ContractInstances, type ContractReturn, type ContractReturnErr, type ContractReturnOk, Contracts, ContractsToContractCalls, CoreNodeEvent, CoreNodeEventBase, CoreNodeEventType, 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, Project, ProjectErrors, ProjectFactory, RawClarityTypeTo, ReadonlyTuple, Response, ResponseErr, ResponseOk, ResponseType, ResultAssets, type SimnetDeploymentPlan, SmartContractEvent, StacksEpochId, StxBurnEvent, StxLockEvent, StxMintEvent, StxTransferEvent, TESTNET_BURN_ADDRESS, TupleInput, TypedAbi, TypedAbiArg, TypedAbiFunction, TypedAbiMap, TypedAbiVariable, UnionToIntersection, UnknownArg, UnknownArgs, bootContractIdentifier, broadcast, bytesToAscii, bytesToHex, contractFactory, contractsFactory, createAssetInfo, cvToJSON, cvToString, cvToValue, deploymentFactory, err, expectErr, expectOk, extractErrors, fetchMapGet, filterEvents, findJsTupleKey, functionsFactory, getApiUrl, getContractIdentifier, getContractName, getContractNameFromPath, getContractPrincipalCV, getTypeString, hexToBytes, hexToCvValue, isClarityAbiBuffer, isClarityAbiList, isClarityAbiOptional, isClarityAbiPrimitive, isClarityAbiResponse, isClarityAbiStringAscii, isClarityAbiStringUtf8, isClarityAbiTraitReference, isClarityAbiTuple, isNumber, isResponse, makeContracts, makeFungiblePostCondition, makeNonFungiblePostCondition, mapFactory, ok, parseToCV, principalToString, projectErrors, projectFactory, pureProxy, rawClarityToValue, ro, roErr, roOk, toCamelCase, toKebabCase, transformArgsArray, transformArgsToCV, transformObjectArgs };
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, type ContractCalls, ContractDeployments, ContractFactory, type ContractFn, ContractFunctions, ContractInstance, ContractInstances, type ContractReturn, type ContractReturnErr, type ContractReturnOk, 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, pureProxy, queryToFunctionArgs, rawClarityToValue, ro, roErr, roOk, toCamelCase, toKebabCase, transformArgsArray, transformArgsToCV, transformObjectArgs };
package/dist/index.mjs CHANGED
@@ -1 +1,2 @@
1
- import{a as e,i as t,n}from"./deployment-BuEApfjy.mjs";import{ClarityType as r,broadcastTransaction as i,bufferCV as a,contractPrincipalCV as o,cvToHex as s,hexToCV as c,intCV as l,listCV as u,noneCV as ee,parseToCV as d,someCV as te,stringAsciiCV as ne,stringUtf8CV as re,tupleCV as ie,uintCV as ae}from"@stacks/transactions";import{hex as f}from"@scure/base";import{Configuration as oe,SmartContractsApi as se}from"@stacks/blockchain-api-client";import{networkFrom as ce}from"@stacks/network";const p=`ST000000000000000000002AMW42H`,m=`SP000000000000000000002Q6VF78`,h=(e,t)=>{let n=typeof e==`string`?e:String(e);if(/^[A-Z_]+$/.test(n))return n;let[r,...i]=n.replace(`!`,`_x`).replace(`?`,`_q`).split(`-`),a=`${t?r[0].toUpperCase():r[0].toLowerCase()}${r.slice(1)}`;return i.forEach(e=>{let t=e[0].toUpperCase()+e.slice(1);a+=t}),a};function g(e){let t=e.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g);return t?t.join(`-`).toLowerCase():e}function le(e,t=!0){let n=e.split(`.`)[1];return t?h(n):n}const _=e=>{let t=e.split(`/`),[n]=t[t.length-1].split(`.`);return n},ue=e=>`${e.address}.${e.name}`,de=e=>{let t=_(e.contractFile);return o(e.address,t)};function fe(e,t){return`${t?m:p}.${e}`}function pe(e){return f.encode(e)}function v(e){return f.decode(e)}function y(e){let t=Array.from(e);return String.fromCharCode.apply(null,t)}const b=e=>typeof e==`number`;function me(e){let{constants:t}=e,n={};for(let e in t)if(e.toLowerCase().startsWith(`err`)){let r=t[e];typeof r==`object`&&r&&`isOk`in r&&!r.isOk&&`value`in r?n[e]=r.value:n[e]=r}return n}function he(e){let{contracts:t}=e,n={};for(let e in t)n[e]=me(t[e]);return n}let ge=function(e){return e.ContractEvent=`contract_event`,e.StxTransferEvent=`stx_transfer_event`,e.StxMintEvent=`stx_mint_event`,e.StxBurnEvent=`stx_burn_event`,e.StxLockEvent=`stx_lock_event`,e.NftTransferEvent=`nft_transfer_event`,e.NftMintEvent=`nft_mint_event`,e.NftBurnEvent=`nft_burn_event`,e.FtTransferEvent=`ft_transfer_event`,e.FtMintEvent=`ft_mint_event`,e.FtBurnEvent=`ft_burn_event`,e}({});function _e(e,t){return e.filter(e=>e.type===t)}function ve(e,t={}){let n={};for(let r in e){let i=e[r],a=t.deployerAddress||i.address;n[r]={identifier:`${a}.${i.name}`,contract:i.contract(a,i.name)}}return n}function x(e){return{isOk:!0,value:e}}function S(e){return{isOk:!1,value:e}}function ye(e){return typeof e==`object`&&!!e&&`isOk`in e}function C(e){return e.value}function w(e,t=!1){switch(e.type){case r.BoolTrue:return!0;case r.BoolFalse:return!1;case r.Int:case r.UInt:return e.value;case r.Buffer:return v(e.value);case r.OptionalNone:return null;case r.OptionalSome:return w(e.value);case r.ResponseErr:return t?S(w(e.value)):w(e.value);case r.ResponseOk:return t?x(w(e.value)):w(e.value);case r.PrincipalStandard:case r.PrincipalContract:return C(e);case r.List:return e.value.map(e=>w(e));case r.Tuple:return Object.entries(e.value).reduce((e,[n,r])=>{let i=h(n);return{...e,[i]:w(r,t)}},{});case r.StringASCII:return e.value;case r.StringUTF8:return e.value}}function be(e,t=!1){return w(c(e),t)}function T(e){if(!(typeof e==`bigint`||typeof e==`number`||typeof e==`string`))throw Error(`Invalid input type for integer`);return BigInt(e)}const E=e=>typeof e==`string`,D=e=>e.buffer!==void 0,O=e=>e[`string-ascii`]!==void 0,k=e=>e[`string-utf8`]!==void 0,A=e=>e.response!==void 0,j=e=>e.optional!==void 0,M=e=>e.tuple!==void 0,N=e=>e.list!==void 0,xe=e=>e===`trait_reference`;function P(e,t){if(M(t)){if(typeof e!=`object`)throw Error(`Invalid tuple input`);let n={};return t.tuple.forEach(t=>{let r=e[B(t.name,e)];n[t.name]=P(r,t.type)}),ie(n)}else if(N(t))return u(e.map(e=>P(e,t.list.type)));else if(j(t))return e===null?ee():te(P(e,t.optional));else if(O(t)){if(typeof e!=`string`)throw Error(`Invalid string-ascii input`);return ne(e)}else if(k(t)){if(typeof e!=`string`)throw Error(`Invalid string-ascii input`);return re(e)}else if(t===`bool`)return d(typeof e==`boolean`?e.toString():e,t);else if(t===`uint128`)return ae(T(e).toString());else if(t===`int128`)return l(T(e).toString());else if(t===`trait_reference`){if(typeof e!=`string`)throw Error(`Invalid input for trait_reference`);let[t,n]=e.split(`.`);return o(t,n)}else if(D(t))return a(e);return d(e,t)}function F(e,t=`hex`){switch(e.type){case r.BoolTrue:return`true`;case r.BoolFalse:return`false`;case r.Int:return e.value.toString();case r.UInt:return`u${e.value.toString()}`;case r.Buffer:if(t===`tryAscii`){let t=y(v(e.value));if(/[ -~]/.test(t))return JSON.stringify(t)}return`0x${e.value}`;case r.OptionalNone:return`none`;case r.OptionalSome:return`(some ${F(e.value,t)})`;case r.ResponseErr:return`(err ${F(e.value,t)})`;case r.ResponseOk:return`(ok ${F(e.value,t)})`;case r.PrincipalStandard:case r.PrincipalContract:return`'${C(e)}`;case r.List:return`(list ${e.value.map(e=>F(e,t)).join(` `)})`;case r.Tuple:return`(tuple ${Object.keys(e.value).map(n=>`(${n} ${F(e.value[n],t)})`).join(` `)})`;case r.StringASCII:return`"${e.value}"`;case r.StringUTF8:return`u"${e.value}"`}}function I(e,t=!1){switch(e.type){case r.BoolTrue:return!0;case r.BoolFalse:return!1;case r.Int:case r.UInt:return`${e.value}`;case r.Buffer:return e.value;case r.OptionalNone:return null;case r.OptionalSome:return I(e.value);case r.ResponseErr:return t?S(I(e.value)):I(e.value);case r.ResponseOk:return t?x(I(e.value)):I(e.value);case r.PrincipalStandard:case r.PrincipalContract:return C(e);case r.List:return e.value.map(e=>I(e));case r.Tuple:return Object.entries(e.value).reduce((e,[t,n])=>{let r=h(t);return{...e,[r]:I(n)}},{});case r.StringASCII:return e.value;case r.StringUTF8:return e.value}}function L(e,t){return e.args.map(e=>{let n=t[B(e.name,t)];return P(n,e.type)})}function R(e,t){return t.map((t,n)=>P(t,e.args[n].type))}function z(e,t){if(t.length===0)return[];let[n]=t;if(t.length===1&&e.args.length!==1)return L(e,n);if(typeof n==`object`&&!Array.isArray(n)&&n!==null)try{let t=!0;if(e.args.forEach(e=>{try{B(e.name,n)}catch{t=!1}}),t)return L(e,n)}catch{}return R(e,t)}function B(e,t){let n=Object.keys(t).find(t=>{let n=e===t,r=e===g(t);return n||r});if(!n)throw Error(`Error encoding JS tuple: ${e} not found in input.`);return n}function V(e){if(e.isOk)return e.value;throw Error(`Expected OK, received error: ${String(e.value)}`)}function H(e){if(!e.isOk)return e.value;throw Error(`Expected Err, received ok: ${String(e.value)}`)}function U(e){if(E(e))return e===`int128`?`int`:e===`uint128`?`uint`:e;if(D(e))return`(buff ${e.buffer.length})`;if(O(e))return`(string-ascii ${e[`string-ascii`].length})`;if(k(e))return`(string-utf8 ${e[`string-utf8`].length})`;if(A(e))return`(response ${U(e.response.ok)} ${U(e.response.error)})`;if(j(e))return`(optional ${U(e.optional)})`;if(M(e))return`(tuple ${e.tuple.map(e=>`(${e.name} ${U(e.type)})`).join(` `)})`;if(N(e))return`(list ${e.list.length} ${U(e.list.type)})`;throw Error(`Type string unsupported for Clarity type: ${JSON.stringify(e)}`)}function Se(e,t){let n=e.abi.functions.find(e=>h(e.name)===t);if(n)return function(...t){return{functionArgs:z(n,t),contractAddress:e.contractAddress,contractName:e.contractName,function:n,functionName:n.name,nativeArgs:t}};let r=e.abi.maps.find(e=>h(e.name)===t);if(r)return t=>{let n=P(t,r.key);return{contractAddress:e.contractAddress,contractName:e.contractName,map:r,nativeKey:t,key:n}};throw Error(`Invalid function call: no function exists for ${String(t)}`)}const Ce={get:Se},we=e=>new Proxy(e,Ce),Te=[`devnet`,`simnet`,`testnet`,`mainnet`];function Ee(e,t){let n=[];return Object.entries(e.contracts).forEach(([r,i])=>{let a=e.deployments[r][t];return a&&n.push([r,G(i,a)]),!1}),Object.fromEntries(n)}function De(e,t){return Object.fromEntries(Object.entries(e).map(([e,n])=>[e,G(n,`${t}.${n.contractName}`)]))}function W(e,t){return Object.fromEntries(Object.entries(e).map(([e,n])=>[e,Object.assign((...e)=>{let r=z(n,e),[i,a]=t.split(`.`);return{functionArgs:r,contractAddress:i,contractName:a,function:n,functionName:n.name,nativeArgs:e}},{abi:n})]))}function G(e,t){let n={...e};return{...W(e.functions,t),...n,identifier:t}}function Oe(r,i){let a={};return n(i.plan.batches).forEach(n=>{let i=e(n),[o,s]=i.split(`.`),c=h(s),l=r[c],u=r[c];if(u===void 0)throw Error(`Clarigen error: mismatch for contract '${c}'`);a[c]=u,u.contractFile=t(n),u.identifier=i,Object.keys(r[c].functions).forEach(e=>{let t=e;u[t]=((...e)=>{let n=l.functions[t];return{functionArgs:z(n,e),contractAddress:o,contractName:u.contractName,function:n,nativeArgs:e}})})}),a}function K(e,t){return{key:t,keyCV:P(t,e.key),map:e}}function q(e,t={}){let n={...t};return e&&(n[`x-api-key`]=e),n}function ke(e,t,n){return new se(new oe({basePath:e,headers:q(t,n)}))}function Ae(e){return`${e}/v2`}const je=(e,t)=>{try{let n=new URL(e);return Object.keys(t).forEach(e=>{let r=t[e];if(r){if(Array.isArray(r))return r.length===0?void 0:n.searchParams.set(`${e}[]`,Me(e,r));if(typeof r==`boolean`||b(r))return n.searchParams.set(e,String(r));n.searchParams.set(e,r)}}),n.toString()}catch(t){return console.error(`generateUrl`),console.error(t),e}},Me=(e,t)=>t!=null&&t.length?`${t.map((t,n)=>`${n>0?encodeURIComponent(`${e}[]`):``}=${encodeURIComponent(t)}`).join(`&`)}`:``;function Ne(e){if(e.okay)return c(e.result);throw Error(e.cause)}async function Pe(e){let{contractAddress:t,functionArgs:n,senderAddress:r=t,url:i}=e;return Ne(await ke(i,e.apiKey,e.headers).callReadOnlyFunction({...e,readOnlyFunctionArgs:{sender:r,arguments:n.map(e=>typeof e==`string`?e:s(e))}}))}function J(e){if(e.latest!==!1)return e.latest||e.tip===void 0?`latest`:e.tip}async function Y(e,t){let n=J(t),r=await Pe({contractAddress:e.contractAddress,contractName:e.contractName,functionName:e.functionName,functionArgs:e.functionArgs,tip:n,url:X(t),apiKey:t.apiKey,headers:t.headers});return t.json?I(r):w(r,!0)}async function Fe(e,t){return V(await Y(e,t))}async function Ie(e,t){return H(await Y(e,t))}function X(e){return ce(e.network).client.baseUrl}async function Le(e,t,n,r){let i=K(t,n),a=JSON.stringify(s(i.keyCV)),[o,l]=e.split(`.`),u=je(`${Ae(X(r))}/map_entry/${o}/${l}/${i.map.name}`,{proof:0,tip:J(r)});return w(c((await(await fetch(u,{method:`POST`,body:a,headers:{"Content-Type":`application/json`,Accept:`application/json`,...q(r.apiKey,r.headers)}})).json()).data),!0)}async function Re(e,t){let n=t.network,r=await i({transaction:e,network:n});if(`error`in r)throw Error(`Error broadcasting tx: ${r.error} - ${r.reason} - ${JSON.stringify(`reason_data`in r?r.reason_data:void 0)}`);return{txId:r.txid,stacksTransaction:e}}var ze=class{network;constructor(e,t,n){this.apiKey=t,this.headers=n,this.network=e}roOptions(e){return{network:this.network,apiKey:this.apiKey,headers:this.headers,...e}}ro(e,t){return Y(e,this.roOptions(t||{}))}roOk(e,t){return Fe(e,this.roOptions(t||{}))}roErr(e,t){return Ie(e,this.roOptions(t||{}))}};function Z(e,t){let[n,r]=e.identifier.split(`.`);if(!(`identifier`in e))throw Error(`Invalid contract`);for(let i of e.non_fungible_tokens)if(i.name===t)return`${n}.${r}::${i.name}`;for(let i of e.fungible_tokens)if(i.name===t)return`${n}.${r}::${i.name}`;throw Error(`Invalid asset: "${t}" is not an asset in contract.`)}function Be(e,t,n,r){let[i]=e.non_fungible_tokens,a=Z(e,i.name),o=i.type;return{type:`nft-postcondition`,address:t,condition:n,asset:a,assetId:P(r,o)}}function Ve(e,t,n,r){let[i,a]=t.split(`.`),[o]=e.fungible_tokens;return{type:`ft-postcondition`,address:t,condition:n,asset:Z(e,o.name),amount:r}}function Q(e,t=``){return e.slice(t.length+2,-1)}function $(e,t){if(M(t)){let n=We(e),r={},i=Object.entries(n).reduce((e,[t,n])=>{let r=t.trim();return{...e,[r]:n.trim()}},{});return t.tuple.forEach(({name:e,type:t})=>{let n=h(e);r[n]=$(i[e],t)}),r}else if(N(t))return Ue(e).map(e=>$(e,t.list.type));else if(j(t))return e===`none`?null:$(Q(e,`some`),t.optional);else if(O(t))return e.slice(1,-1);else if(k(t))return e.slice(2,-1);else if(t===`bool`)return e===`true`;else if(t===`uint128`)return BigInt(e.slice(1));else if(t===`int128`)return BigInt(e);else if(t===`trait_reference`)return e.replace(/^\'/,``);else if(t===`principal`)return e.replace(/^\'/,``);else if(t===`none`)return null;else if(D(t))return v(e.slice(2));else if(A(t))return e.startsWith(`(ok`)?x($(Q(e,`ok`),t.response.ok)):S($(Q(e,`err`),t.response.error));throw Error(`Unable to parse cv string to value: ${e} ${JSON.stringify(t,null,2)}`)}const He=Array(255);for(let e=0;e<=255;++e)He[e]=e.toString(16).padStart(2,`0`);function Ue(e){if(e.charAt(0)!==`[`||e.charAt(e.length-1)!==`]`)throw Error(`Expected (list ..), got ${e.toString()}`);let t=[],n=[],r=1;for(let i=0;i<e.length;i++)e.charAt(i)===`,`&&t.length==1&&(n.push(e.substring(r,i)),r=i+2),[`(`,`[`,`{`].includes(e.charAt(i))&&t.push(e.charAt(i)),e.charAt(i)===`)`&&t[t.length-1]===`(`&&t.pop(),e.charAt(i)===`}`&&t[t.length-1]===`{`&&t.pop(),e.charAt(i)===`]`&&t[t.length-1]===`[`&&t.pop();let i=e.substring(r,e.length-1);return i.length>0&&n.push(i),n}function We(e){if(e.charAt(0)!==`{`||e.charAt(e.length-1)!==`}`)throw Error(`Expected '(tuple ..)', got ${e.toString()}`);let t=1,n=[],r=[];for(let i=0;i<e.length;i++)e.charAt(i)===`,`&&n.length==1&&(r.push(e.substring(t,i)),t=i+2),[`(`,`[`,`{`].includes(e.charAt(i))&&n.push(e.charAt(i)),e.charAt(i)===`)`&&n[n.length-1]===`(`&&n.pop(),e.charAt(i)===`}`&&n[n.length-1]===`{`&&n.pop(),e.charAt(i)===`]`&&n[n.length-1]===`[`&&n.pop();let i=e.substring(t,e.length-1);i.length>0&&r.push(i);let a={};for(let e of r)for(let t=0;t<e.length;t++)if(e.charAt(t)===`:`){let n=e.substring(0,t);a[n]=e.substring(t+2,e.length);break}return a}export{ze as ClarigenClient,ge as CoreNodeEventType,Te as DEPLOYMENT_NETWORKS,m as MAINNET_BURN_ADDRESS,p as TESTNET_BURN_ADDRESS,fe as bootContractIdentifier,Re as broadcast,y as bytesToAscii,pe as bytesToHex,G as contractFactory,De as contractsFactory,Z as createAssetInfo,I as cvToJSON,F as cvToString,w as cvToValue,Oe as deploymentFactory,S as err,H as expectErr,V as expectOk,me as extractErrors,Le as fetchMapGet,_e as filterEvents,B as findJsTupleKey,W as functionsFactory,X as getApiUrl,ue as getContractIdentifier,le as getContractName,_ as getContractNameFromPath,de as getContractPrincipalCV,U as getTypeString,v as hexToBytes,be as hexToCvValue,D as isClarityAbiBuffer,N as isClarityAbiList,j as isClarityAbiOptional,E as isClarityAbiPrimitive,A as isClarityAbiResponse,O as isClarityAbiStringAscii,k as isClarityAbiStringUtf8,xe as isClarityAbiTraitReference,M as isClarityAbiTuple,b as isNumber,ye as isResponse,ve as makeContracts,Ve as makeFungiblePostCondition,Be as makeNonFungiblePostCondition,K as mapFactory,x as ok,P as parseToCV,C as principalToString,he as projectErrors,Ee as projectFactory,we as pureProxy,$ as rawClarityToValue,Y as ro,Ie as roErr,Fe as roOk,h as toCamelCase,g as toKebabCase,R as transformArgsArray,z as transformArgsToCV,L as transformObjectArgs};
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};
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "4.0.2-alpha.1",
2
+ "version": "4.1.1",
3
3
  "license": "MIT",
4
4
  "types": "./dist/index.d.cts",
5
5
  "main": "./dist/index.cjs",
@@ -11,6 +11,16 @@
11
11
  "engines": {
12
12
  "node": ">=10"
13
13
  },
14
+ "scripts": {
15
+ "start": "tsdown --watch",
16
+ "dev": "tsdown --watch",
17
+ "build": "tsdown",
18
+ "test": "vitest run",
19
+ "lint": "eslint \"src/**/*.{ts,tsx}\" && prettier --check \"./**/*.{ts,js}\"",
20
+ "typecheck": "tsc --noEmit -p tsconfig-test.json",
21
+ "copy-types": "node copy-types.js",
22
+ "publish": "bun publish"
23
+ },
14
24
  "prettier": "@stacks/prettier-config",
15
25
  "name": "@clarigen/core",
16
26
  "author": "Hank Stoever",
@@ -36,15 +46,5 @@
36
46
  "import": "./dist/deployment.mjs"
37
47
  },
38
48
  "./package.json": "./package.json"
39
- },
40
- "scripts": {
41
- "start": "tsdown --watch",
42
- "dev": "tsdown --watch",
43
- "build": "tsdown",
44
- "test": "vitest run",
45
- "lint": "eslint \"src/**/*.{ts,tsx}\" && prettier --check \"./**/*.{ts,js}\"",
46
- "typecheck": "tsc --noEmit -p tsconfig-test.json",
47
- "publish:dev": "pnpm build && yalc publish --push",
48
- "copy-types": "node copy-types.js"
49
49
  }
50
- }
50
+ }