@clarigen/core 4.0.2-alpha.0 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{deployment-B3q-81ej.d.cts → deployment-Bv57LEA2.d.cts} +24 -22
- package/dist/{deployment-BuEApfjy.mjs → deployment-CGEqh8yH.mjs} +1 -1
- package/dist/{deployment-CJKAJJQx.cjs → deployment-DN-sbX_m.cjs} +1 -1
- package/dist/{deployment-bCip1x1p.d.mts → deployment-hBXji8Xz.d.mts} +24 -22
- package/dist/deployment.cjs +1 -1
- package/dist/deployment.d.cts +1 -1
- package/dist/deployment.d.mts +1 -1
- package/dist/deployment.mjs +1 -1
- package/dist/index.cjs +2 -1
- package/dist/index.d.cts +117 -48
- package/dist/index.d.mts +117 -48
- package/dist/index.mjs +2 -1
- package/package.json +12 -12
|
@@ -1,65 +1,67 @@
|
|
|
1
1
|
//#region src/deployment.d.ts
|
|
2
|
-
|
|
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
|
-
|
|
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
|
-
|
|
16
|
+
};
|
|
17
|
+
type ContractPublishTransaction = {
|
|
18
18
|
'contract-publish': {
|
|
19
19
|
'contract-name': string;
|
|
20
20
|
'expected-sender': string;
|
|
21
21
|
path: string;
|
|
22
|
+
cost: string;
|
|
22
23
|
};
|
|
23
|
-
}
|
|
24
|
-
|
|
24
|
+
};
|
|
25
|
+
type ContractCallTransaction = {
|
|
25
26
|
'contract-call': {
|
|
26
27
|
'contract-id': string;
|
|
27
28
|
'expected-sender': string;
|
|
28
29
|
parameters: Readonly<string[]>;
|
|
29
30
|
method: string;
|
|
31
|
+
cost: string;
|
|
30
32
|
};
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
+
};
|
|
34
|
+
type EmulatedContractCallTransaction = {
|
|
33
35
|
'emulated-contract-call': {
|
|
34
36
|
'contract-id': string;
|
|
35
37
|
'emulated-sender': string;
|
|
36
38
|
parameters: Readonly<string[]>;
|
|
37
39
|
method: string;
|
|
38
40
|
};
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
+
};
|
|
42
|
+
type BtcTransferTransaction = {
|
|
41
43
|
'btc-transfer': {
|
|
42
44
|
'expected-sender': string;
|
|
43
45
|
recipient: string;
|
|
44
46
|
'sats-per-byte': string;
|
|
45
47
|
'sats-amount': string;
|
|
46
48
|
};
|
|
47
|
-
}
|
|
49
|
+
};
|
|
48
50
|
type DeploymentTransaction = EmulatedContractPublishTransaction | RequirementPublishTransaction | ContractPublishTransaction | EmulatedContractCallTransaction | BtcTransferTransaction | ContractCallTransaction;
|
|
49
51
|
type ContractDeploymentTransaction = EmulatedContractPublishTransaction | RequirementPublishTransaction | ContractPublishTransaction;
|
|
50
|
-
|
|
52
|
+
type Batch<T extends DeploymentTransaction> = {
|
|
51
53
|
id: number;
|
|
52
54
|
transactions: Readonly<T[]>;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
+
};
|
|
56
|
+
type SimnetAccount = {
|
|
55
57
|
address: string;
|
|
56
58
|
name: string;
|
|
57
59
|
balance: string;
|
|
58
|
-
}
|
|
60
|
+
};
|
|
59
61
|
interface SimnetAccountDeployer extends SimnetAccount {
|
|
60
62
|
name: 'deployer';
|
|
61
63
|
}
|
|
62
|
-
|
|
64
|
+
type SimnetDeploymentPlan = {
|
|
63
65
|
network: 'simnet';
|
|
64
66
|
genesis: {
|
|
65
67
|
wallets: Readonly<[SimnetAccountDeployer, ...SimnetAccount[]]>;
|
|
@@ -68,22 +70,22 @@ interface SimnetDeploymentPlan {
|
|
|
68
70
|
plan: {
|
|
69
71
|
batches: Readonly<Batch<EmulatedContractPublishTransaction | EmulatedContractCallTransaction>[]>;
|
|
70
72
|
};
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
+
};
|
|
74
|
+
type DevnetDeploymentPlan = {
|
|
73
75
|
network: 'devnet';
|
|
74
76
|
plan: {
|
|
75
77
|
batches: Readonly<Batch<RequirementPublishTransaction | ContractPublishTransaction | ContractCallTransaction | BtcTransferTransaction>[]>;
|
|
76
78
|
};
|
|
77
|
-
}
|
|
79
|
+
};
|
|
78
80
|
type TestnetDeploymentPlan = Omit<DevnetDeploymentPlan, 'network'> & {
|
|
79
81
|
network: 'testnet';
|
|
80
82
|
};
|
|
81
|
-
|
|
83
|
+
type MainnetDeploymentPlan = {
|
|
82
84
|
network: 'mainnet';
|
|
83
85
|
plan: {
|
|
84
86
|
batches: Readonly<Batch<ContractPublishTransaction | ContractCallTransaction | BtcTransferTransaction>[]>;
|
|
85
87
|
};
|
|
86
|
-
}
|
|
88
|
+
};
|
|
87
89
|
type DeploymentPlan = SimnetDeploymentPlan | DevnetDeploymentPlan | TestnetDeploymentPlan | MainnetDeploymentPlan;
|
|
88
90
|
declare function flatBatch<T extends DeploymentTransaction>(batches: Batch<T>[]): T[];
|
|
89
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}`}
|
|
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}`}
|
|
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,65 +1,67 @@
|
|
|
1
1
|
//#region src/deployment.d.ts
|
|
2
|
-
|
|
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
|
-
|
|
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
|
-
|
|
16
|
+
};
|
|
17
|
+
type ContractPublishTransaction = {
|
|
18
18
|
'contract-publish': {
|
|
19
19
|
'contract-name': string;
|
|
20
20
|
'expected-sender': string;
|
|
21
21
|
path: string;
|
|
22
|
+
cost: string;
|
|
22
23
|
};
|
|
23
|
-
}
|
|
24
|
-
|
|
24
|
+
};
|
|
25
|
+
type ContractCallTransaction = {
|
|
25
26
|
'contract-call': {
|
|
26
27
|
'contract-id': string;
|
|
27
28
|
'expected-sender': string;
|
|
28
29
|
parameters: Readonly<string[]>;
|
|
29
30
|
method: string;
|
|
31
|
+
cost: string;
|
|
30
32
|
};
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
+
};
|
|
34
|
+
type EmulatedContractCallTransaction = {
|
|
33
35
|
'emulated-contract-call': {
|
|
34
36
|
'contract-id': string;
|
|
35
37
|
'emulated-sender': string;
|
|
36
38
|
parameters: Readonly<string[]>;
|
|
37
39
|
method: string;
|
|
38
40
|
};
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
+
};
|
|
42
|
+
type BtcTransferTransaction = {
|
|
41
43
|
'btc-transfer': {
|
|
42
44
|
'expected-sender': string;
|
|
43
45
|
recipient: string;
|
|
44
46
|
'sats-per-byte': string;
|
|
45
47
|
'sats-amount': string;
|
|
46
48
|
};
|
|
47
|
-
}
|
|
49
|
+
};
|
|
48
50
|
type DeploymentTransaction = EmulatedContractPublishTransaction | RequirementPublishTransaction | ContractPublishTransaction | EmulatedContractCallTransaction | BtcTransferTransaction | ContractCallTransaction;
|
|
49
51
|
type ContractDeploymentTransaction = EmulatedContractPublishTransaction | RequirementPublishTransaction | ContractPublishTransaction;
|
|
50
|
-
|
|
52
|
+
type Batch<T extends DeploymentTransaction> = {
|
|
51
53
|
id: number;
|
|
52
54
|
transactions: Readonly<T[]>;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
+
};
|
|
56
|
+
type SimnetAccount = {
|
|
55
57
|
address: string;
|
|
56
58
|
name: string;
|
|
57
59
|
balance: string;
|
|
58
|
-
}
|
|
60
|
+
};
|
|
59
61
|
interface SimnetAccountDeployer extends SimnetAccount {
|
|
60
62
|
name: 'deployer';
|
|
61
63
|
}
|
|
62
|
-
|
|
64
|
+
type SimnetDeploymentPlan = {
|
|
63
65
|
network: 'simnet';
|
|
64
66
|
genesis: {
|
|
65
67
|
wallets: Readonly<[SimnetAccountDeployer, ...SimnetAccount[]]>;
|
|
@@ -68,22 +70,22 @@ interface SimnetDeploymentPlan {
|
|
|
68
70
|
plan: {
|
|
69
71
|
batches: Readonly<Batch<EmulatedContractPublishTransaction | EmulatedContractCallTransaction>[]>;
|
|
70
72
|
};
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
+
};
|
|
74
|
+
type DevnetDeploymentPlan = {
|
|
73
75
|
network: 'devnet';
|
|
74
76
|
plan: {
|
|
75
77
|
batches: Readonly<Batch<RequirementPublishTransaction | ContractPublishTransaction | ContractCallTransaction | BtcTransferTransaction>[]>;
|
|
76
78
|
};
|
|
77
|
-
}
|
|
79
|
+
};
|
|
78
80
|
type TestnetDeploymentPlan = Omit<DevnetDeploymentPlan, 'network'> & {
|
|
79
81
|
network: 'testnet';
|
|
80
82
|
};
|
|
81
|
-
|
|
83
|
+
type MainnetDeploymentPlan = {
|
|
82
84
|
network: 'mainnet';
|
|
83
85
|
plan: {
|
|
84
86
|
batches: Readonly<Batch<ContractPublishTransaction | ContractCallTransaction | BtcTransferTransaction>[]>;
|
|
85
87
|
};
|
|
86
|
-
}
|
|
88
|
+
};
|
|
87
89
|
type DeploymentPlan = SimnetDeploymentPlan | DevnetDeploymentPlan | TestnetDeploymentPlan | MainnetDeploymentPlan;
|
|
88
90
|
declare function flatBatch<T extends DeploymentTransaction>(batches: Batch<T>[]): T[];
|
|
89
91
|
declare function getContractTxs(batches: Batch<DeploymentTransaction>[]): ContractDeploymentTransaction[];
|
package/dist/deployment.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const e=require(`./deployment-
|
|
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;
|
package/dist/deployment.d.cts
CHANGED
|
@@ -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-
|
|
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 };
|
package/dist/deployment.d.mts
CHANGED
|
@@ -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-
|
|
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 };
|
package/dist/deployment.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,i as t,n,o as r,r as i,t as a}from"./deployment-
|
|
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-
|
|
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
|
-
|
|
50
|
+
type ClarityAbiArg = {
|
|
51
51
|
name: string;
|
|
52
52
|
type: ClarityAbiType;
|
|
53
|
-
}
|
|
54
|
-
|
|
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
|
-
|
|
70
|
+
type ClarityAbiVariable = {
|
|
71
71
|
name: string;
|
|
72
72
|
access: 'variable' | 'constant';
|
|
73
73
|
type: ClarityAbiType;
|
|
74
|
-
}
|
|
75
|
-
type TypedAbiVariable<
|
|
76
|
-
|
|
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
|
-
|
|
85
|
+
type ClarityAbiTypeFungibleToken = {
|
|
86
86
|
name: string;
|
|
87
|
-
}
|
|
88
|
-
|
|
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
|
-
|
|
113
|
+
type ResponseOk<T, E> = {
|
|
114
114
|
value: T;
|
|
115
115
|
isOk: true;
|
|
116
116
|
_e?: E;
|
|
117
|
-
}
|
|
118
|
-
|
|
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<
|
|
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
|
|
158
|
+
declare const isClarityAbiTraitReference: (val: ClarityAbiType) => val is ClarityAbiTypeTraitReference;
|
|
159
159
|
declare function parseToCV(input: CVInput, type: ClarityAbiType): ClarityValue;
|
|
160
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
253
|
+
};
|
|
254
|
+
type Contracts<T> = {
|
|
250
255
|
[key: string]: Contract<T>;
|
|
251
|
-
}
|
|
252
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
528
|
+
type ApiOptionsUrl = {
|
|
460
529
|
url: string;
|
|
461
530
|
network?: undefined;
|
|
462
|
-
}
|
|
531
|
+
};
|
|
463
532
|
type Network = StacksNetwork | StacksNetworkName;
|
|
464
|
-
|
|
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-
|
|
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
|
-
|
|
50
|
+
type ClarityAbiArg = {
|
|
51
51
|
name: string;
|
|
52
52
|
type: ClarityAbiType;
|
|
53
|
-
}
|
|
54
|
-
|
|
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
|
-
|
|
70
|
+
type ClarityAbiVariable = {
|
|
71
71
|
name: string;
|
|
72
72
|
access: 'variable' | 'constant';
|
|
73
73
|
type: ClarityAbiType;
|
|
74
|
-
}
|
|
75
|
-
type TypedAbiVariable<
|
|
76
|
-
|
|
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
|
-
|
|
85
|
+
type ClarityAbiTypeFungibleToken = {
|
|
86
86
|
name: string;
|
|
87
|
-
}
|
|
88
|
-
|
|
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
|
-
|
|
113
|
+
type ResponseOk<T, E> = {
|
|
114
114
|
value: T;
|
|
115
115
|
isOk: true;
|
|
116
116
|
_e?: E;
|
|
117
|
-
}
|
|
118
|
-
|
|
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<
|
|
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
|
|
158
|
+
declare const isClarityAbiTraitReference: (val: ClarityAbiType) => val is ClarityAbiTypeTraitReference;
|
|
159
159
|
declare function parseToCV(input: CVInput, type: ClarityAbiType): ClarityValue;
|
|
160
|
-
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
253
|
+
};
|
|
254
|
+
type Contracts<T> = {
|
|
250
255
|
[key: string]: Contract<T>;
|
|
251
|
-
}
|
|
252
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
528
|
+
type ApiOptionsUrl = {
|
|
460
529
|
url: string;
|
|
461
530
|
network?: undefined;
|
|
462
|
-
}
|
|
531
|
+
};
|
|
463
532
|
type Network = StacksNetwork | StacksNetworkName;
|
|
464
|
-
|
|
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.
|
|
2
|
+
"version": "4.1.0",
|
|
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
|
+
}
|