@secondlayer/stacks 0.2.2 → 0.3.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/shared/stacks-02actsrx.cjs.map +2 -2
- package/dist/shared/{stacks-xp9n3r0t.js → stacks-09wa7ewe.js} +108 -108
- package/dist/shared/stacks-09wa7ewe.js.map +15 -0
- package/dist/shared/{stacks-ky14tdf6.cjs → stacks-0nfexv24.cjs} +20 -8
- package/dist/shared/stacks-0nfexv24.cjs.map +14 -0
- package/dist/shared/{stacks-an5k8n4t.cjs → stacks-14pgpkrr.cjs} +82 -73
- package/dist/shared/stacks-14pgpkrr.cjs.map +23 -0
- package/dist/shared/{stacks-v6ja2eh7.cjs → stacks-17sdtaxg.cjs} +106 -102
- package/dist/shared/stacks-17sdtaxg.cjs.map +15 -0
- package/dist/shared/{stacks-96gaxfcf.js → stacks-1s5w4ncf.js} +44 -32
- package/dist/shared/stacks-1s5w4ncf.js.map +17 -0
- package/dist/shared/stacks-24h5k94q.cjs.map +3 -3
- package/dist/shared/{stacks-evnzth1q.cjs → stacks-4vzmhw3q.cjs} +3 -3
- package/dist/shared/stacks-4vzmhw3q.cjs.map +10 -0
- package/dist/shared/{stacks-k9p8m3wf.js → stacks-4x2bcc2k.js} +87 -78
- package/dist/shared/stacks-4x2bcc2k.js.map +23 -0
- package/dist/shared/stacks-5tprhns9.cjs.map +3 -3
- package/dist/shared/stacks-709tra19.js.map +2 -2
- package/dist/shared/{stacks-q79dx28x.js → stacks-70p84bgg.js} +3 -3
- package/dist/shared/stacks-70p84bgg.js.map +10 -0
- package/dist/shared/{stacks-k2p5tv6x.js → stacks-913a2rx7.js} +3 -3
- package/dist/shared/stacks-913a2rx7.js.map +10 -0
- package/dist/shared/{stacks-jrnmh4kc.js → stacks-96d6m1zy.js} +15 -6
- package/dist/shared/stacks-96d6m1zy.js.map +11 -0
- package/dist/shared/stacks-9g0jhab3.cjs.map +2 -2
- package/dist/shared/stacks-dr5en54r.cjs.map +2 -2
- package/dist/shared/stacks-fcaefc5b.cjs.map +2 -2
- package/dist/shared/stacks-gck1sq7h.cjs.map +2 -2
- package/dist/shared/stacks-je937aas.js.map +2 -2
- package/dist/shared/{stacks-k58k970n.js → stacks-kg1npstf.js} +5 -3
- package/dist/shared/stacks-kg1npstf.js.map +10 -0
- package/dist/shared/{stacks-qvg7c24g.cjs → stacks-n98w7g57.cjs} +5 -3
- package/dist/shared/stacks-n98w7g57.cjs.map +10 -0
- package/dist/shared/{stacks-6m1z4j07.js → stacks-nqae5amn.cjs} +74 -160
- package/dist/shared/stacks-nqae5amn.cjs.map +10 -0
- package/dist/shared/stacks-qcae5852.js.map +2 -2
- package/dist/shared/stacks-qt8ehebn.js.map +3 -3
- package/dist/shared/stacks-ra02bpny.cjs.map +3 -3
- package/dist/shared/stacks-rwfgts3s.js.map +2 -2
- package/dist/shared/stacks-s10yb9gz.js.map +2 -2
- package/dist/shared/{stacks-etf219gs.cjs → stacks-s30kkvm8.js} +101 -118
- package/dist/shared/stacks-s30kkvm8.js.map +10 -0
- package/dist/shared/stacks-s7z5q8be.js.map +3 -3
- package/dist/shared/stacks-v9jqcpd4.js.map +2 -2
- package/dist/shared/stacks-vdfag81a.cjs.map +2 -2
- package/dist/shared/{stacks-rg1g0fja.js → stacks-wjem3xw9.js} +21 -9
- package/dist/shared/stacks-wjem3xw9.js.map +14 -0
- package/dist/shared/{stacks-k08tgzyp.cjs → stacks-wyxj879g.cjs} +3 -3
- package/dist/shared/stacks-wyxj879g.cjs.map +13 -0
- package/dist/shared/stacks-y3dh7hv1.js.map +3 -3
- package/dist/shared/{stacks-2ar4prfz.cjs → stacks-y5262j0z.cjs} +14 -5
- package/dist/shared/stacks-y5262j0z.cjs.map +11 -0
- package/dist/shared/stacks-ya3x01yd.cjs.map +2 -2
- package/dist/shared/{stacks-p93g814f.js → stacks-zf7rbpzp.js} +4 -4
- package/dist/shared/stacks-zf7rbpzp.js.map +13 -0
- package/dist/shared/{stacks-61rvzkz1.cjs → stacks-znrb59ce.cjs} +41 -29
- package/dist/shared/stacks-znrb59ce.cjs.map +17 -0
- package/dist/src/accounts/index.cjs +2 -2
- package/dist/src/accounts/index.cjs.map +5 -5
- package/dist/src/accounts/index.js +2 -6
- package/dist/src/accounts/index.js.map +5 -5
- package/dist/src/actions/index.d.cts +29 -29
- package/dist/src/actions/index.d.ts +29 -29
- package/dist/src/actions/index.js +7 -7
- package/dist/src/bns/index.cjs +55 -43
- package/dist/src/bns/index.cjs.map +9 -9
- package/dist/src/bns/index.d.cts +29 -29
- package/dist/src/bns/index.d.ts +29 -29
- package/dist/src/bns/index.js +62 -50
- package/dist/src/bns/index.js.map +9 -9
- package/dist/src/clarity/index.js +4 -4
- package/dist/src/connect/index.cjs +114 -112
- package/dist/src/connect/index.cjs.map +13 -13
- package/dist/src/connect/index.js +114 -112
- package/dist/src/connect/index.js.map +13 -13
- package/dist/src/connect/walletconnect/index.cjs +3 -3
- package/dist/src/connect/walletconnect/index.cjs.map +10 -10
- package/dist/src/connect/walletconnect/index.js +3 -3
- package/dist/src/connect/walletconnect/index.js.map +10 -10
- package/dist/src/index.cjs +108 -2
- package/dist/src/index.cjs.map +19 -15
- package/dist/src/index.d.cts +291 -112
- package/dist/src/index.d.ts +291 -112
- package/dist/src/index.js +122 -9
- package/dist/src/index.js.map +19 -15
- package/dist/src/pox/index.cjs.map +6 -6
- package/dist/src/pox/index.d.cts +29 -29
- package/dist/src/pox/index.d.ts +29 -29
- package/dist/src/pox/index.js +5 -5
- package/dist/src/pox/index.js.map +6 -6
- package/dist/src/stackingdao/index.cjs +31 -6
- package/dist/src/stackingdao/index.cjs.map +6 -6
- package/dist/src/stackingdao/index.d.cts +29 -29
- package/dist/src/stackingdao/index.d.ts +29 -29
- package/dist/src/stackingdao/index.js +37 -12
- package/dist/src/stackingdao/index.js.map +6 -6
- package/dist/src/subscriptions/index.d.cts +29 -29
- package/dist/src/subscriptions/index.d.ts +29 -29
- package/dist/src/tools/btc/index.cjs +130 -0
- package/dist/src/tools/btc/index.cjs.map +10 -0
- package/dist/src/tools/btc/index.d.cts +8 -0
- package/dist/src/tools/btc/index.d.ts +8 -0
- package/dist/src/tools/btc/index.js +89 -0
- package/dist/src/tools/btc/index.js.map +10 -0
- package/dist/src/tools/index.cjs +2470 -0
- package/dist/src/tools/index.cjs.map +61 -0
- package/dist/src/tools/index.d.cts +144 -0
- package/dist/src/tools/index.d.ts +144 -0
- package/dist/src/tools/index.js +2435 -0
- package/dist/src/tools/index.js.map +61 -0
- package/dist/src/transactions/index.js +3 -3
- package/dist/src/triggers/index.cjs +66 -0
- package/dist/src/triggers/index.cjs.map +10 -0
- package/dist/src/triggers/index.d.cts +116 -0
- package/dist/src/triggers/index.d.ts +116 -0
- package/dist/src/triggers/index.js +25 -0
- package/dist/src/triggers/index.js.map +10 -0
- package/dist/src/tx/index.cjs +65 -0
- package/dist/src/tx/index.cjs.map +10 -0
- package/dist/src/tx/index.d.cts +42 -0
- package/dist/src/tx/index.d.ts +42 -0
- package/dist/src/tx/index.js +22 -0
- package/dist/src/tx/index.js.map +10 -0
- package/dist/src/ui/index.cjs +431 -0
- package/dist/src/ui/index.cjs.map +27 -0
- package/dist/src/ui/index.d.cts +107 -0
- package/dist/src/ui/index.d.ts +107 -0
- package/dist/src/ui/index.js +391 -0
- package/dist/src/ui/index.js.map +27 -0
- package/dist/src/ui/schemas.cjs +134 -0
- package/dist/src/ui/schemas.cjs.map +18 -0
- package/dist/src/ui/schemas.d.cts +83 -0
- package/dist/src/ui/schemas.d.ts +83 -0
- package/dist/src/ui/schemas.js +91 -0
- package/dist/src/ui/schemas.js.map +18 -0
- package/dist/src/utils/index.cjs +3 -3
- package/dist/src/utils/index.cjs.map +4 -4
- package/dist/src/utils/index.js +4 -4
- package/dist/src/utils/index.js.map +4 -4
- package/package.json +157 -105
- package/dist/shared/stacks-2ar4prfz.cjs.map +0 -11
- package/dist/shared/stacks-61rvzkz1.cjs.map +0 -17
- package/dist/shared/stacks-6m1z4j07.js.map +0 -10
- package/dist/shared/stacks-96gaxfcf.js.map +0 -17
- package/dist/shared/stacks-an5k8n4t.cjs.map +0 -23
- package/dist/shared/stacks-etf219gs.cjs.map +0 -10
- package/dist/shared/stacks-evnzth1q.cjs.map +0 -10
- package/dist/shared/stacks-jrnmh4kc.js.map +0 -11
- package/dist/shared/stacks-k08tgzyp.cjs.map +0 -13
- package/dist/shared/stacks-k2p5tv6x.js.map +0 -10
- package/dist/shared/stacks-k58k970n.js.map +0 -10
- package/dist/shared/stacks-k9p8m3wf.js.map +0 -23
- package/dist/shared/stacks-ky14tdf6.cjs.map +0 -13
- package/dist/shared/stacks-p93g814f.js.map +0 -13
- package/dist/shared/stacks-q79dx28x.js.map +0 -10
- package/dist/shared/stacks-qvg7c24g.cjs.map +0 -10
- package/dist/shared/stacks-rg1g0fja.js.map +0 -13
- package/dist/shared/stacks-v6ja2eh7.cjs.map +0 -15
- package/dist/shared/stacks-xp9n3r0t.js.map +0 -15
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
deserializeTransaction
|
|
3
|
-
} from "../../shared/stacks-
|
|
3
|
+
} from "../../shared/stacks-s30kkvm8.js";
|
|
4
4
|
import {
|
|
5
5
|
AddressHashMode,
|
|
6
6
|
AnchorMode,
|
|
@@ -47,8 +47,8 @@ import {
|
|
|
47
47
|
signSponsorWithAccount,
|
|
48
48
|
signTransaction,
|
|
49
49
|
signTransactionWithAccount
|
|
50
|
-
} from "../../shared/stacks-
|
|
51
|
-
import"../../shared/stacks-
|
|
50
|
+
} from "../../shared/stacks-09wa7ewe.js";
|
|
51
|
+
import"../../shared/stacks-wjem3xw9.js";
|
|
52
52
|
import"../../shared/stacks-rwfgts3s.js";
|
|
53
53
|
import"../../shared/stacks-s10yb9gz.js";
|
|
54
54
|
import"../../shared/stacks-s7z5q8be.js";
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
var import_node_module = require("node:module");
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
function __accessProp(key) {
|
|
7
|
+
return this[key];
|
|
8
|
+
}
|
|
9
|
+
var __toCommonJS = (from) => {
|
|
10
|
+
var entry = (__moduleCache ??= new WeakMap).get(from), desc;
|
|
11
|
+
if (entry)
|
|
12
|
+
return entry;
|
|
13
|
+
entry = __defProp({}, "__esModule", { value: true });
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (var key of __getOwnPropNames(from))
|
|
16
|
+
if (!__hasOwnProp.call(entry, key))
|
|
17
|
+
__defProp(entry, key, {
|
|
18
|
+
get: __accessProp.bind(from, key),
|
|
19
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
__moduleCache.set(from, entry);
|
|
23
|
+
return entry;
|
|
24
|
+
};
|
|
25
|
+
var __moduleCache;
|
|
26
|
+
var __returnValue = (v) => v;
|
|
27
|
+
function __exportSetter(name, newValue) {
|
|
28
|
+
this[name] = __returnValue.bind(null, newValue);
|
|
29
|
+
}
|
|
30
|
+
var __export = (target, all) => {
|
|
31
|
+
for (var name in all)
|
|
32
|
+
__defProp(target, name, {
|
|
33
|
+
get: all[name],
|
|
34
|
+
enumerable: true,
|
|
35
|
+
configurable: true,
|
|
36
|
+
set: __exportSetter.bind(all, name)
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
// src/triggers/index.ts
|
|
41
|
+
var exports_triggers = {};
|
|
42
|
+
__export(exports_triggers, {
|
|
43
|
+
on: () => on
|
|
44
|
+
});
|
|
45
|
+
module.exports = __toCommonJS(exports_triggers);
|
|
46
|
+
function make(filter) {
|
|
47
|
+
return { type: "event", filter };
|
|
48
|
+
}
|
|
49
|
+
var on = {
|
|
50
|
+
stxTransfer: (f = {}) => make({ type: "stx_transfer", ...f }),
|
|
51
|
+
stxMint: (f = {}) => make({ type: "stx_mint", ...f }),
|
|
52
|
+
stxBurn: (f = {}) => make({ type: "stx_burn", ...f }),
|
|
53
|
+
stxLock: (f = {}) => make({ type: "stx_lock", ...f }),
|
|
54
|
+
ftTransfer: (f = {}) => make({ type: "ft_transfer", ...f }),
|
|
55
|
+
ftMint: (f = {}) => make({ type: "ft_mint", ...f }),
|
|
56
|
+
ftBurn: (f = {}) => make({ type: "ft_burn", ...f }),
|
|
57
|
+
nftTransfer: (f = {}) => make({ type: "nft_transfer", ...f }),
|
|
58
|
+
nftMint: (f = {}) => make({ type: "nft_mint", ...f }),
|
|
59
|
+
nftBurn: (f = {}) => make({ type: "nft_burn", ...f }),
|
|
60
|
+
contractCall: (f = {}) => make({ type: "contract_call", ...f }),
|
|
61
|
+
contractDeploy: (f = {}) => make({ type: "contract_deploy", ...f }),
|
|
62
|
+
printEvent: (f = {}) => make({ type: "print_event", ...f })
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
//# debugId=10C54A365AA4CC8564756E2164756E21
|
|
66
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/triggers/index.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/**\n * Typed event-trigger helpers for workflows.\n *\n * import { defineWorkflow } from \"@secondlayer/workflows\"\n * import { on } from \"@secondlayer/stacks/triggers\"\n *\n * export default defineWorkflow({\n * name: \"whale-alert\",\n * trigger: on.stxTransfer({ minAmount: 100_000_000_000n }),\n * handler: async ({ event, step }) => {\n * // event is StxTransferEvent — sender, recipient, amount, tx all typed\n * },\n * })\n *\n * Each helper returns a standard `EventTrigger` (what the runner consumes)\n * plus a phantom `__event` type that `defineWorkflow` reads via conditional\n * type inference. The phantom carries no runtime value.\n */\n\nimport type {\n\tContractCallFilter,\n\tContractDeployFilter,\n\tFtBurnFilter,\n\tFtMintFilter,\n\tFtTransferFilter,\n\tNftBurnFilter,\n\tNftMintFilter,\n\tNftTransferFilter,\n\tPrintEventFilter,\n\tStxBurnFilter,\n\tStxLockFilter,\n\tStxMintFilter,\n\tStxTransferFilter,\n} from \"@secondlayer/subgraphs/types\";\nimport type { EventTrigger } from \"@secondlayer/workflows/types\";\n\n// --- Per-filter event payload shapes ---\n\n/** Metadata shared by every event. */\nexport interface TxMeta {\n\ttxId: string;\n\tsender: string;\n\tblockHeight: number;\n\tblockTime: number;\n}\n\nexport interface StxTransferEvent {\n\tsender: string;\n\trecipient: string;\n\tamount: bigint;\n\tmemo: string | null;\n\ttx: TxMeta;\n}\n\nexport interface StxMintEvent {\n\trecipient: string;\n\tamount: bigint;\n\ttx: TxMeta;\n}\n\nexport interface StxBurnEvent {\n\tsender: string;\n\tamount: bigint;\n\ttx: TxMeta;\n}\n\nexport interface StxLockEvent {\n\tlockedAddress: string;\n\tamount: bigint;\n\tunlockHeight: number;\n\ttx: TxMeta;\n}\n\nexport interface FtTransferEvent {\n\tassetIdentifier: string;\n\tsender: string;\n\trecipient: string;\n\tamount: bigint;\n\ttx: TxMeta;\n}\n\nexport interface FtMintEvent {\n\tassetIdentifier: string;\n\trecipient: string;\n\tamount: bigint;\n\ttx: TxMeta;\n}\n\nexport interface FtBurnEvent {\n\tassetIdentifier: string;\n\tsender: string;\n\tamount: bigint;\n\ttx: TxMeta;\n}\n\nexport interface NftTransferEvent {\n\tassetIdentifier: string;\n\tsender: string;\n\trecipient: string;\n\ttokenId: string;\n\ttx: TxMeta;\n}\n\nexport interface NftMintEvent {\n\tassetIdentifier: string;\n\trecipient: string;\n\ttokenId: string;\n\ttx: TxMeta;\n}\n\nexport interface NftBurnEvent {\n\tassetIdentifier: string;\n\tsender: string;\n\ttokenId: string;\n\ttx: TxMeta;\n}\n\nexport interface ContractCallEvent {\n\tcontractId: string;\n\tfunctionName: string;\n\targs: unknown[];\n\tcaller: string;\n\ttx: TxMeta;\n}\n\nexport interface ContractDeployEvent {\n\tcontractId: string;\n\tdeployer: string;\n\tcontractName: string;\n\ttx: TxMeta;\n}\n\nexport interface PrintEventEvent {\n\tcontractId: string;\n\ttopic: string | null;\n\tvalue: unknown;\n\ttx: TxMeta;\n}\n\n// --- Typed trigger wrapper ---\n\n/**\n * Phantom-typed EventTrigger. Runtime shape is identical to `EventTrigger`;\n * the `__event` field only exists at the type level for `defineWorkflow`\n * to infer the handler's `event` parameter.\n */\nexport type TypedEventTrigger<TEvent> = EventTrigger & {\n\treadonly __event?: TEvent;\n};\n\nfunction make<TEvent>(\n\tfilter: EventTrigger[\"filter\"],\n): TypedEventTrigger<TEvent> {\n\treturn { type: \"event\", filter };\n}\n\n// --- `on.*` helpers, 13 total ---\n\nexport interface TriggerHelpers {\n\tstxTransfer: (\n\t\tf?: Omit<StxTransferFilter, \"type\">,\n\t) => TypedEventTrigger<StxTransferEvent>;\n\tstxMint: (f?: Omit<StxMintFilter, \"type\">) => TypedEventTrigger<StxMintEvent>;\n\tstxBurn: (f?: Omit<StxBurnFilter, \"type\">) => TypedEventTrigger<StxBurnEvent>;\n\tstxLock: (f?: Omit<StxLockFilter, \"type\">) => TypedEventTrigger<StxLockEvent>;\n\tftTransfer: (\n\t\tf?: Omit<FtTransferFilter, \"type\">,\n\t) => TypedEventTrigger<FtTransferEvent>;\n\tftMint: (f?: Omit<FtMintFilter, \"type\">) => TypedEventTrigger<FtMintEvent>;\n\tftBurn: (f?: Omit<FtBurnFilter, \"type\">) => TypedEventTrigger<FtBurnEvent>;\n\tnftTransfer: (\n\t\tf?: Omit<NftTransferFilter, \"type\">,\n\t) => TypedEventTrigger<NftTransferEvent>;\n\tnftMint: (f?: Omit<NftMintFilter, \"type\">) => TypedEventTrigger<NftMintEvent>;\n\tnftBurn: (f?: Omit<NftBurnFilter, \"type\">) => TypedEventTrigger<NftBurnEvent>;\n\tcontractCall: (\n\t\tf?: Omit<ContractCallFilter, \"type\">,\n\t) => TypedEventTrigger<ContractCallEvent>;\n\tcontractDeploy: (\n\t\tf?: Omit<ContractDeployFilter, \"type\">,\n\t) => TypedEventTrigger<ContractDeployEvent>;\n\tprintEvent: (\n\t\tf?: Omit<PrintEventFilter, \"type\">,\n\t) => TypedEventTrigger<PrintEventEvent>;\n}\n\nexport const on: TriggerHelpers = {\n\tstxTransfer: (f = {}) =>\n\t\tmake<StxTransferEvent>({ type: \"stx_transfer\", ...f }),\n\n\tstxMint: (f = {}) => make<StxMintEvent>({ type: \"stx_mint\", ...f }),\n\n\tstxBurn: (f = {}) => make<StxBurnEvent>({ type: \"stx_burn\", ...f }),\n\n\tstxLock: (f = {}) => make<StxLockEvent>({ type: \"stx_lock\", ...f }),\n\n\tftTransfer: (f = {}) => make<FtTransferEvent>({ type: \"ft_transfer\", ...f }),\n\n\tftMint: (f = {}) => make<FtMintEvent>({ type: \"ft_mint\", ...f }),\n\n\tftBurn: (f = {}) => make<FtBurnEvent>({ type: \"ft_burn\", ...f }),\n\n\tnftTransfer: (f = {}) =>\n\t\tmake<NftTransferEvent>({ type: \"nft_transfer\", ...f }),\n\n\tnftMint: (f = {}) => make<NftMintEvent>({ type: \"nft_mint\", ...f }),\n\n\tnftBurn: (f = {}) => make<NftBurnEvent>({ type: \"nft_burn\", ...f }),\n\n\tcontractCall: (f = {}) =>\n\t\tmake<ContractCallEvent>({ type: \"contract_call\", ...f }),\n\n\tcontractDeploy: (f = {}) =>\n\t\tmake<ContractDeployEvent>({ type: \"contract_deploy\", ...f }),\n\n\tprintEvent: (f = {}) => make<PrintEventEvent>({ type: \"print_event\", ...f }),\n};\n\n/** Extract the event payload type from a trigger. */\nexport type EventOf<T> = T extends TypedEventTrigger<infer E> ? E : never;\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsJA,SAAS,IAAY,CACpB,QAC4B;AAAA,EAC5B,OAAO,EAAE,MAAM,SAAS,OAAO;AAAA;AAiCzB,IAAM,KAAqB;AAAA,EACjC,aAAa,CAAC,IAAI,CAAC,MAClB,KAAuB,EAAE,MAAM,mBAAmB,EAAE,CAAC;AAAA,EAEtD,SAAS,CAAC,IAAI,CAAC,MAAM,KAAmB,EAAE,MAAM,eAAe,EAAE,CAAC;AAAA,EAElE,SAAS,CAAC,IAAI,CAAC,MAAM,KAAmB,EAAE,MAAM,eAAe,EAAE,CAAC;AAAA,EAElE,SAAS,CAAC,IAAI,CAAC,MAAM,KAAmB,EAAE,MAAM,eAAe,EAAE,CAAC;AAAA,EAElE,YAAY,CAAC,IAAI,CAAC,MAAM,KAAsB,EAAE,MAAM,kBAAkB,EAAE,CAAC;AAAA,EAE3E,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAkB,EAAE,MAAM,cAAc,EAAE,CAAC;AAAA,EAE/D,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAkB,EAAE,MAAM,cAAc,EAAE,CAAC;AAAA,EAE/D,aAAa,CAAC,IAAI,CAAC,MAClB,KAAuB,EAAE,MAAM,mBAAmB,EAAE,CAAC;AAAA,EAEtD,SAAS,CAAC,IAAI,CAAC,MAAM,KAAmB,EAAE,MAAM,eAAe,EAAE,CAAC;AAAA,EAElE,SAAS,CAAC,IAAI,CAAC,MAAM,KAAmB,EAAE,MAAM,eAAe,EAAE,CAAC;AAAA,EAElE,cAAc,CAAC,IAAI,CAAC,MACnB,KAAwB,EAAE,MAAM,oBAAoB,EAAE,CAAC;AAAA,EAExD,gBAAgB,CAAC,IAAI,CAAC,MACrB,KAA0B,EAAE,MAAM,sBAAsB,EAAE,CAAC;AAAA,EAE5D,YAAY,CAAC,IAAI,CAAC,MAAM,KAAsB,EAAE,MAAM,kBAAkB,EAAE,CAAC;AAC5E;",
|
|
8
|
+
"debugId": "10C54A365AA4CC8564756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { ContractCallFilter, ContractDeployFilter, FtBurnFilter, FtMintFilter, FtTransferFilter, NftBurnFilter, NftMintFilter, NftTransferFilter, PrintEventFilter, StxBurnFilter, StxLockFilter, StxMintFilter, StxTransferFilter } from "@secondlayer/subgraphs/types";
|
|
2
|
+
import { EventTrigger } from "@secondlayer/workflows/types";
|
|
3
|
+
/** Metadata shared by every event. */
|
|
4
|
+
interface TxMeta {
|
|
5
|
+
txId: string;
|
|
6
|
+
sender: string;
|
|
7
|
+
blockHeight: number;
|
|
8
|
+
blockTime: number;
|
|
9
|
+
}
|
|
10
|
+
interface StxTransferEvent {
|
|
11
|
+
sender: string;
|
|
12
|
+
recipient: string;
|
|
13
|
+
amount: bigint;
|
|
14
|
+
memo: string | null;
|
|
15
|
+
tx: TxMeta;
|
|
16
|
+
}
|
|
17
|
+
interface StxMintEvent {
|
|
18
|
+
recipient: string;
|
|
19
|
+
amount: bigint;
|
|
20
|
+
tx: TxMeta;
|
|
21
|
+
}
|
|
22
|
+
interface StxBurnEvent {
|
|
23
|
+
sender: string;
|
|
24
|
+
amount: bigint;
|
|
25
|
+
tx: TxMeta;
|
|
26
|
+
}
|
|
27
|
+
interface StxLockEvent {
|
|
28
|
+
lockedAddress: string;
|
|
29
|
+
amount: bigint;
|
|
30
|
+
unlockHeight: number;
|
|
31
|
+
tx: TxMeta;
|
|
32
|
+
}
|
|
33
|
+
interface FtTransferEvent {
|
|
34
|
+
assetIdentifier: string;
|
|
35
|
+
sender: string;
|
|
36
|
+
recipient: string;
|
|
37
|
+
amount: bigint;
|
|
38
|
+
tx: TxMeta;
|
|
39
|
+
}
|
|
40
|
+
interface FtMintEvent {
|
|
41
|
+
assetIdentifier: string;
|
|
42
|
+
recipient: string;
|
|
43
|
+
amount: bigint;
|
|
44
|
+
tx: TxMeta;
|
|
45
|
+
}
|
|
46
|
+
interface FtBurnEvent {
|
|
47
|
+
assetIdentifier: string;
|
|
48
|
+
sender: string;
|
|
49
|
+
amount: bigint;
|
|
50
|
+
tx: TxMeta;
|
|
51
|
+
}
|
|
52
|
+
interface NftTransferEvent {
|
|
53
|
+
assetIdentifier: string;
|
|
54
|
+
sender: string;
|
|
55
|
+
recipient: string;
|
|
56
|
+
tokenId: string;
|
|
57
|
+
tx: TxMeta;
|
|
58
|
+
}
|
|
59
|
+
interface NftMintEvent {
|
|
60
|
+
assetIdentifier: string;
|
|
61
|
+
recipient: string;
|
|
62
|
+
tokenId: string;
|
|
63
|
+
tx: TxMeta;
|
|
64
|
+
}
|
|
65
|
+
interface NftBurnEvent {
|
|
66
|
+
assetIdentifier: string;
|
|
67
|
+
sender: string;
|
|
68
|
+
tokenId: string;
|
|
69
|
+
tx: TxMeta;
|
|
70
|
+
}
|
|
71
|
+
interface ContractCallEvent {
|
|
72
|
+
contractId: string;
|
|
73
|
+
functionName: string;
|
|
74
|
+
args: unknown[];
|
|
75
|
+
caller: string;
|
|
76
|
+
tx: TxMeta;
|
|
77
|
+
}
|
|
78
|
+
interface ContractDeployEvent {
|
|
79
|
+
contractId: string;
|
|
80
|
+
deployer: string;
|
|
81
|
+
contractName: string;
|
|
82
|
+
tx: TxMeta;
|
|
83
|
+
}
|
|
84
|
+
interface PrintEventEvent {
|
|
85
|
+
contractId: string;
|
|
86
|
+
topic: string | null;
|
|
87
|
+
value: unknown;
|
|
88
|
+
tx: TxMeta;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Phantom-typed EventTrigger. Runtime shape is identical to `EventTrigger`;
|
|
92
|
+
* the `__event` field only exists at the type level for `defineWorkflow`
|
|
93
|
+
* to infer the handler's `event` parameter.
|
|
94
|
+
*/
|
|
95
|
+
type TypedEventTrigger<TEvent> = EventTrigger & {
|
|
96
|
+
readonly __event?: TEvent
|
|
97
|
+
};
|
|
98
|
+
interface TriggerHelpers {
|
|
99
|
+
stxTransfer: (f?: Omit<StxTransferFilter, "type">) => TypedEventTrigger<StxTransferEvent>;
|
|
100
|
+
stxMint: (f?: Omit<StxMintFilter, "type">) => TypedEventTrigger<StxMintEvent>;
|
|
101
|
+
stxBurn: (f?: Omit<StxBurnFilter, "type">) => TypedEventTrigger<StxBurnEvent>;
|
|
102
|
+
stxLock: (f?: Omit<StxLockFilter, "type">) => TypedEventTrigger<StxLockEvent>;
|
|
103
|
+
ftTransfer: (f?: Omit<FtTransferFilter, "type">) => TypedEventTrigger<FtTransferEvent>;
|
|
104
|
+
ftMint: (f?: Omit<FtMintFilter, "type">) => TypedEventTrigger<FtMintEvent>;
|
|
105
|
+
ftBurn: (f?: Omit<FtBurnFilter, "type">) => TypedEventTrigger<FtBurnEvent>;
|
|
106
|
+
nftTransfer: (f?: Omit<NftTransferFilter, "type">) => TypedEventTrigger<NftTransferEvent>;
|
|
107
|
+
nftMint: (f?: Omit<NftMintFilter, "type">) => TypedEventTrigger<NftMintEvent>;
|
|
108
|
+
nftBurn: (f?: Omit<NftBurnFilter, "type">) => TypedEventTrigger<NftBurnEvent>;
|
|
109
|
+
contractCall: (f?: Omit<ContractCallFilter, "type">) => TypedEventTrigger<ContractCallEvent>;
|
|
110
|
+
contractDeploy: (f?: Omit<ContractDeployFilter, "type">) => TypedEventTrigger<ContractDeployEvent>;
|
|
111
|
+
printEvent: (f?: Omit<PrintEventFilter, "type">) => TypedEventTrigger<PrintEventEvent>;
|
|
112
|
+
}
|
|
113
|
+
declare const on: TriggerHelpers;
|
|
114
|
+
/** Extract the event payload type from a trigger. */
|
|
115
|
+
type EventOf<T> = T extends TypedEventTrigger<infer E> ? E : never;
|
|
116
|
+
export { on, TypedEventTrigger, TxMeta, TriggerHelpers, StxTransferEvent, StxMintEvent, StxLockEvent, StxBurnEvent, PrintEventEvent, NftTransferEvent, NftMintEvent, NftBurnEvent, FtTransferEvent, FtMintEvent, FtBurnEvent, EventOf, ContractDeployEvent, ContractCallEvent };
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { ContractCallFilter, ContractDeployFilter, FtBurnFilter, FtMintFilter, FtTransferFilter, NftBurnFilter, NftMintFilter, NftTransferFilter, PrintEventFilter, StxBurnFilter, StxLockFilter, StxMintFilter, StxTransferFilter } from "@secondlayer/subgraphs/types";
|
|
2
|
+
import { EventTrigger } from "@secondlayer/workflows/types";
|
|
3
|
+
/** Metadata shared by every event. */
|
|
4
|
+
interface TxMeta {
|
|
5
|
+
txId: string;
|
|
6
|
+
sender: string;
|
|
7
|
+
blockHeight: number;
|
|
8
|
+
blockTime: number;
|
|
9
|
+
}
|
|
10
|
+
interface StxTransferEvent {
|
|
11
|
+
sender: string;
|
|
12
|
+
recipient: string;
|
|
13
|
+
amount: bigint;
|
|
14
|
+
memo: string | null;
|
|
15
|
+
tx: TxMeta;
|
|
16
|
+
}
|
|
17
|
+
interface StxMintEvent {
|
|
18
|
+
recipient: string;
|
|
19
|
+
amount: bigint;
|
|
20
|
+
tx: TxMeta;
|
|
21
|
+
}
|
|
22
|
+
interface StxBurnEvent {
|
|
23
|
+
sender: string;
|
|
24
|
+
amount: bigint;
|
|
25
|
+
tx: TxMeta;
|
|
26
|
+
}
|
|
27
|
+
interface StxLockEvent {
|
|
28
|
+
lockedAddress: string;
|
|
29
|
+
amount: bigint;
|
|
30
|
+
unlockHeight: number;
|
|
31
|
+
tx: TxMeta;
|
|
32
|
+
}
|
|
33
|
+
interface FtTransferEvent {
|
|
34
|
+
assetIdentifier: string;
|
|
35
|
+
sender: string;
|
|
36
|
+
recipient: string;
|
|
37
|
+
amount: bigint;
|
|
38
|
+
tx: TxMeta;
|
|
39
|
+
}
|
|
40
|
+
interface FtMintEvent {
|
|
41
|
+
assetIdentifier: string;
|
|
42
|
+
recipient: string;
|
|
43
|
+
amount: bigint;
|
|
44
|
+
tx: TxMeta;
|
|
45
|
+
}
|
|
46
|
+
interface FtBurnEvent {
|
|
47
|
+
assetIdentifier: string;
|
|
48
|
+
sender: string;
|
|
49
|
+
amount: bigint;
|
|
50
|
+
tx: TxMeta;
|
|
51
|
+
}
|
|
52
|
+
interface NftTransferEvent {
|
|
53
|
+
assetIdentifier: string;
|
|
54
|
+
sender: string;
|
|
55
|
+
recipient: string;
|
|
56
|
+
tokenId: string;
|
|
57
|
+
tx: TxMeta;
|
|
58
|
+
}
|
|
59
|
+
interface NftMintEvent {
|
|
60
|
+
assetIdentifier: string;
|
|
61
|
+
recipient: string;
|
|
62
|
+
tokenId: string;
|
|
63
|
+
tx: TxMeta;
|
|
64
|
+
}
|
|
65
|
+
interface NftBurnEvent {
|
|
66
|
+
assetIdentifier: string;
|
|
67
|
+
sender: string;
|
|
68
|
+
tokenId: string;
|
|
69
|
+
tx: TxMeta;
|
|
70
|
+
}
|
|
71
|
+
interface ContractCallEvent {
|
|
72
|
+
contractId: string;
|
|
73
|
+
functionName: string;
|
|
74
|
+
args: unknown[];
|
|
75
|
+
caller: string;
|
|
76
|
+
tx: TxMeta;
|
|
77
|
+
}
|
|
78
|
+
interface ContractDeployEvent {
|
|
79
|
+
contractId: string;
|
|
80
|
+
deployer: string;
|
|
81
|
+
contractName: string;
|
|
82
|
+
tx: TxMeta;
|
|
83
|
+
}
|
|
84
|
+
interface PrintEventEvent {
|
|
85
|
+
contractId: string;
|
|
86
|
+
topic: string | null;
|
|
87
|
+
value: unknown;
|
|
88
|
+
tx: TxMeta;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Phantom-typed EventTrigger. Runtime shape is identical to `EventTrigger`;
|
|
92
|
+
* the `__event` field only exists at the type level for `defineWorkflow`
|
|
93
|
+
* to infer the handler's `event` parameter.
|
|
94
|
+
*/
|
|
95
|
+
type TypedEventTrigger<TEvent> = EventTrigger & {
|
|
96
|
+
readonly __event?: TEvent
|
|
97
|
+
};
|
|
98
|
+
interface TriggerHelpers {
|
|
99
|
+
stxTransfer: (f?: Omit<StxTransferFilter, "type">) => TypedEventTrigger<StxTransferEvent>;
|
|
100
|
+
stxMint: (f?: Omit<StxMintFilter, "type">) => TypedEventTrigger<StxMintEvent>;
|
|
101
|
+
stxBurn: (f?: Omit<StxBurnFilter, "type">) => TypedEventTrigger<StxBurnEvent>;
|
|
102
|
+
stxLock: (f?: Omit<StxLockFilter, "type">) => TypedEventTrigger<StxLockEvent>;
|
|
103
|
+
ftTransfer: (f?: Omit<FtTransferFilter, "type">) => TypedEventTrigger<FtTransferEvent>;
|
|
104
|
+
ftMint: (f?: Omit<FtMintFilter, "type">) => TypedEventTrigger<FtMintEvent>;
|
|
105
|
+
ftBurn: (f?: Omit<FtBurnFilter, "type">) => TypedEventTrigger<FtBurnEvent>;
|
|
106
|
+
nftTransfer: (f?: Omit<NftTransferFilter, "type">) => TypedEventTrigger<NftTransferEvent>;
|
|
107
|
+
nftMint: (f?: Omit<NftMintFilter, "type">) => TypedEventTrigger<NftMintEvent>;
|
|
108
|
+
nftBurn: (f?: Omit<NftBurnFilter, "type">) => TypedEventTrigger<NftBurnEvent>;
|
|
109
|
+
contractCall: (f?: Omit<ContractCallFilter, "type">) => TypedEventTrigger<ContractCallEvent>;
|
|
110
|
+
contractDeploy: (f?: Omit<ContractDeployFilter, "type">) => TypedEventTrigger<ContractDeployEvent>;
|
|
111
|
+
printEvent: (f?: Omit<PrintEventFilter, "type">) => TypedEventTrigger<PrintEventEvent>;
|
|
112
|
+
}
|
|
113
|
+
declare const on: TriggerHelpers;
|
|
114
|
+
/** Extract the event payload type from a trigger. */
|
|
115
|
+
type EventOf<T> = T extends TypedEventTrigger<infer E> ? E : never;
|
|
116
|
+
export { on, TypedEventTrigger, TxMeta, TriggerHelpers, StxTransferEvent, StxMintEvent, StxLockEvent, StxBurnEvent, PrintEventEvent, NftTransferEvent, NftMintEvent, NftBurnEvent, FtTransferEvent, FtMintEvent, FtBurnEvent, EventOf, ContractDeployEvent, ContractCallEvent };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// src/triggers/index.ts
|
|
2
|
+
function make(filter) {
|
|
3
|
+
return { type: "event", filter };
|
|
4
|
+
}
|
|
5
|
+
var on = {
|
|
6
|
+
stxTransfer: (f = {}) => make({ type: "stx_transfer", ...f }),
|
|
7
|
+
stxMint: (f = {}) => make({ type: "stx_mint", ...f }),
|
|
8
|
+
stxBurn: (f = {}) => make({ type: "stx_burn", ...f }),
|
|
9
|
+
stxLock: (f = {}) => make({ type: "stx_lock", ...f }),
|
|
10
|
+
ftTransfer: (f = {}) => make({ type: "ft_transfer", ...f }),
|
|
11
|
+
ftMint: (f = {}) => make({ type: "ft_mint", ...f }),
|
|
12
|
+
ftBurn: (f = {}) => make({ type: "ft_burn", ...f }),
|
|
13
|
+
nftTransfer: (f = {}) => make({ type: "nft_transfer", ...f }),
|
|
14
|
+
nftMint: (f = {}) => make({ type: "nft_mint", ...f }),
|
|
15
|
+
nftBurn: (f = {}) => make({ type: "nft_burn", ...f }),
|
|
16
|
+
contractCall: (f = {}) => make({ type: "contract_call", ...f }),
|
|
17
|
+
contractDeploy: (f = {}) => make({ type: "contract_deploy", ...f }),
|
|
18
|
+
printEvent: (f = {}) => make({ type: "print_event", ...f })
|
|
19
|
+
};
|
|
20
|
+
export {
|
|
21
|
+
on
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
//# debugId=3E5DFF22EC6ECA5D64756E2164756E21
|
|
25
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/triggers/index.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/**\n * Typed event-trigger helpers for workflows.\n *\n * import { defineWorkflow } from \"@secondlayer/workflows\"\n * import { on } from \"@secondlayer/stacks/triggers\"\n *\n * export default defineWorkflow({\n * name: \"whale-alert\",\n * trigger: on.stxTransfer({ minAmount: 100_000_000_000n }),\n * handler: async ({ event, step }) => {\n * // event is StxTransferEvent — sender, recipient, amount, tx all typed\n * },\n * })\n *\n * Each helper returns a standard `EventTrigger` (what the runner consumes)\n * plus a phantom `__event` type that `defineWorkflow` reads via conditional\n * type inference. The phantom carries no runtime value.\n */\n\nimport type {\n\tContractCallFilter,\n\tContractDeployFilter,\n\tFtBurnFilter,\n\tFtMintFilter,\n\tFtTransferFilter,\n\tNftBurnFilter,\n\tNftMintFilter,\n\tNftTransferFilter,\n\tPrintEventFilter,\n\tStxBurnFilter,\n\tStxLockFilter,\n\tStxMintFilter,\n\tStxTransferFilter,\n} from \"@secondlayer/subgraphs/types\";\nimport type { EventTrigger } from \"@secondlayer/workflows/types\";\n\n// --- Per-filter event payload shapes ---\n\n/** Metadata shared by every event. */\nexport interface TxMeta {\n\ttxId: string;\n\tsender: string;\n\tblockHeight: number;\n\tblockTime: number;\n}\n\nexport interface StxTransferEvent {\n\tsender: string;\n\trecipient: string;\n\tamount: bigint;\n\tmemo: string | null;\n\ttx: TxMeta;\n}\n\nexport interface StxMintEvent {\n\trecipient: string;\n\tamount: bigint;\n\ttx: TxMeta;\n}\n\nexport interface StxBurnEvent {\n\tsender: string;\n\tamount: bigint;\n\ttx: TxMeta;\n}\n\nexport interface StxLockEvent {\n\tlockedAddress: string;\n\tamount: bigint;\n\tunlockHeight: number;\n\ttx: TxMeta;\n}\n\nexport interface FtTransferEvent {\n\tassetIdentifier: string;\n\tsender: string;\n\trecipient: string;\n\tamount: bigint;\n\ttx: TxMeta;\n}\n\nexport interface FtMintEvent {\n\tassetIdentifier: string;\n\trecipient: string;\n\tamount: bigint;\n\ttx: TxMeta;\n}\n\nexport interface FtBurnEvent {\n\tassetIdentifier: string;\n\tsender: string;\n\tamount: bigint;\n\ttx: TxMeta;\n}\n\nexport interface NftTransferEvent {\n\tassetIdentifier: string;\n\tsender: string;\n\trecipient: string;\n\ttokenId: string;\n\ttx: TxMeta;\n}\n\nexport interface NftMintEvent {\n\tassetIdentifier: string;\n\trecipient: string;\n\ttokenId: string;\n\ttx: TxMeta;\n}\n\nexport interface NftBurnEvent {\n\tassetIdentifier: string;\n\tsender: string;\n\ttokenId: string;\n\ttx: TxMeta;\n}\n\nexport interface ContractCallEvent {\n\tcontractId: string;\n\tfunctionName: string;\n\targs: unknown[];\n\tcaller: string;\n\ttx: TxMeta;\n}\n\nexport interface ContractDeployEvent {\n\tcontractId: string;\n\tdeployer: string;\n\tcontractName: string;\n\ttx: TxMeta;\n}\n\nexport interface PrintEventEvent {\n\tcontractId: string;\n\ttopic: string | null;\n\tvalue: unknown;\n\ttx: TxMeta;\n}\n\n// --- Typed trigger wrapper ---\n\n/**\n * Phantom-typed EventTrigger. Runtime shape is identical to `EventTrigger`;\n * the `__event` field only exists at the type level for `defineWorkflow`\n * to infer the handler's `event` parameter.\n */\nexport type TypedEventTrigger<TEvent> = EventTrigger & {\n\treadonly __event?: TEvent;\n};\n\nfunction make<TEvent>(\n\tfilter: EventTrigger[\"filter\"],\n): TypedEventTrigger<TEvent> {\n\treturn { type: \"event\", filter };\n}\n\n// --- `on.*` helpers, 13 total ---\n\nexport interface TriggerHelpers {\n\tstxTransfer: (\n\t\tf?: Omit<StxTransferFilter, \"type\">,\n\t) => TypedEventTrigger<StxTransferEvent>;\n\tstxMint: (f?: Omit<StxMintFilter, \"type\">) => TypedEventTrigger<StxMintEvent>;\n\tstxBurn: (f?: Omit<StxBurnFilter, \"type\">) => TypedEventTrigger<StxBurnEvent>;\n\tstxLock: (f?: Omit<StxLockFilter, \"type\">) => TypedEventTrigger<StxLockEvent>;\n\tftTransfer: (\n\t\tf?: Omit<FtTransferFilter, \"type\">,\n\t) => TypedEventTrigger<FtTransferEvent>;\n\tftMint: (f?: Omit<FtMintFilter, \"type\">) => TypedEventTrigger<FtMintEvent>;\n\tftBurn: (f?: Omit<FtBurnFilter, \"type\">) => TypedEventTrigger<FtBurnEvent>;\n\tnftTransfer: (\n\t\tf?: Omit<NftTransferFilter, \"type\">,\n\t) => TypedEventTrigger<NftTransferEvent>;\n\tnftMint: (f?: Omit<NftMintFilter, \"type\">) => TypedEventTrigger<NftMintEvent>;\n\tnftBurn: (f?: Omit<NftBurnFilter, \"type\">) => TypedEventTrigger<NftBurnEvent>;\n\tcontractCall: (\n\t\tf?: Omit<ContractCallFilter, \"type\">,\n\t) => TypedEventTrigger<ContractCallEvent>;\n\tcontractDeploy: (\n\t\tf?: Omit<ContractDeployFilter, \"type\">,\n\t) => TypedEventTrigger<ContractDeployEvent>;\n\tprintEvent: (\n\t\tf?: Omit<PrintEventFilter, \"type\">,\n\t) => TypedEventTrigger<PrintEventEvent>;\n}\n\nexport const on: TriggerHelpers = {\n\tstxTransfer: (f = {}) =>\n\t\tmake<StxTransferEvent>({ type: \"stx_transfer\", ...f }),\n\n\tstxMint: (f = {}) => make<StxMintEvent>({ type: \"stx_mint\", ...f }),\n\n\tstxBurn: (f = {}) => make<StxBurnEvent>({ type: \"stx_burn\", ...f }),\n\n\tstxLock: (f = {}) => make<StxLockEvent>({ type: \"stx_lock\", ...f }),\n\n\tftTransfer: (f = {}) => make<FtTransferEvent>({ type: \"ft_transfer\", ...f }),\n\n\tftMint: (f = {}) => make<FtMintEvent>({ type: \"ft_mint\", ...f }),\n\n\tftBurn: (f = {}) => make<FtBurnEvent>({ type: \"ft_burn\", ...f }),\n\n\tnftTransfer: (f = {}) =>\n\t\tmake<NftTransferEvent>({ type: \"nft_transfer\", ...f }),\n\n\tnftMint: (f = {}) => make<NftMintEvent>({ type: \"nft_mint\", ...f }),\n\n\tnftBurn: (f = {}) => make<NftBurnEvent>({ type: \"nft_burn\", ...f }),\n\n\tcontractCall: (f = {}) =>\n\t\tmake<ContractCallEvent>({ type: \"contract_call\", ...f }),\n\n\tcontractDeploy: (f = {}) =>\n\t\tmake<ContractDeployEvent>({ type: \"contract_deploy\", ...f }),\n\n\tprintEvent: (f = {}) => make<PrintEventEvent>({ type: \"print_event\", ...f }),\n};\n\n/** Extract the event payload type from a trigger. */\nexport type EventOf<T> = T extends TypedEventTrigger<infer E> ? E : never;\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";AAsJA,SAAS,IAAY,CACpB,QAC4B;AAAA,EAC5B,OAAO,EAAE,MAAM,SAAS,OAAO;AAAA;AAiCzB,IAAM,KAAqB;AAAA,EACjC,aAAa,CAAC,IAAI,CAAC,MAClB,KAAuB,EAAE,MAAM,mBAAmB,EAAE,CAAC;AAAA,EAEtD,SAAS,CAAC,IAAI,CAAC,MAAM,KAAmB,EAAE,MAAM,eAAe,EAAE,CAAC;AAAA,EAElE,SAAS,CAAC,IAAI,CAAC,MAAM,KAAmB,EAAE,MAAM,eAAe,EAAE,CAAC;AAAA,EAElE,SAAS,CAAC,IAAI,CAAC,MAAM,KAAmB,EAAE,MAAM,eAAe,EAAE,CAAC;AAAA,EAElE,YAAY,CAAC,IAAI,CAAC,MAAM,KAAsB,EAAE,MAAM,kBAAkB,EAAE,CAAC;AAAA,EAE3E,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAkB,EAAE,MAAM,cAAc,EAAE,CAAC;AAAA,EAE/D,QAAQ,CAAC,IAAI,CAAC,MAAM,KAAkB,EAAE,MAAM,cAAc,EAAE,CAAC;AAAA,EAE/D,aAAa,CAAC,IAAI,CAAC,MAClB,KAAuB,EAAE,MAAM,mBAAmB,EAAE,CAAC;AAAA,EAEtD,SAAS,CAAC,IAAI,CAAC,MAAM,KAAmB,EAAE,MAAM,eAAe,EAAE,CAAC;AAAA,EAElE,SAAS,CAAC,IAAI,CAAC,MAAM,KAAmB,EAAE,MAAM,eAAe,EAAE,CAAC;AAAA,EAElE,cAAc,CAAC,IAAI,CAAC,MACnB,KAAwB,EAAE,MAAM,oBAAoB,EAAE,CAAC;AAAA,EAExD,gBAAgB,CAAC,IAAI,CAAC,MACrB,KAA0B,EAAE,MAAM,sBAAsB,EAAE,CAAC;AAAA,EAE5D,YAAY,CAAC,IAAI,CAAC,MAAM,KAAsB,EAAE,MAAM,kBAAkB,EAAE,CAAC;AAC5E;",
|
|
8
|
+
"debugId": "3E5DFF22EC6ECA5D64756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
var import_node_module = require("node:module");
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
function __accessProp(key) {
|
|
7
|
+
return this[key];
|
|
8
|
+
}
|
|
9
|
+
var __toCommonJS = (from) => {
|
|
10
|
+
var entry = (__moduleCache ??= new WeakMap).get(from), desc;
|
|
11
|
+
if (entry)
|
|
12
|
+
return entry;
|
|
13
|
+
entry = __defProp({}, "__esModule", { value: true });
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (var key of __getOwnPropNames(from))
|
|
16
|
+
if (!__hasOwnProp.call(entry, key))
|
|
17
|
+
__defProp(entry, key, {
|
|
18
|
+
get: __accessProp.bind(from, key),
|
|
19
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
__moduleCache.set(from, entry);
|
|
23
|
+
return entry;
|
|
24
|
+
};
|
|
25
|
+
var __moduleCache;
|
|
26
|
+
var __returnValue = (v) => v;
|
|
27
|
+
function __exportSetter(name, newValue) {
|
|
28
|
+
this[name] = __returnValue.bind(null, newValue);
|
|
29
|
+
}
|
|
30
|
+
var __export = (target, all) => {
|
|
31
|
+
for (var name in all)
|
|
32
|
+
__defProp(target, name, {
|
|
33
|
+
get: all[name],
|
|
34
|
+
enumerable: true,
|
|
35
|
+
configurable: true,
|
|
36
|
+
set: __exportSetter.bind(all, name)
|
|
37
|
+
});
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
// src/tx/index.ts
|
|
41
|
+
var exports_tx = {};
|
|
42
|
+
__export(exports_tx, {
|
|
43
|
+
tx: () => tx
|
|
44
|
+
});
|
|
45
|
+
module.exports = __toCommonJS(exports_tx);
|
|
46
|
+
|
|
47
|
+
// src/tx/builders.ts
|
|
48
|
+
var tx = {
|
|
49
|
+
transfer: (opts) => ({
|
|
50
|
+
kind: "transfer",
|
|
51
|
+
...opts
|
|
52
|
+
}),
|
|
53
|
+
contractCall: (opts) => ({ kind: "contract-call", ...opts }),
|
|
54
|
+
deploy: (opts) => ({
|
|
55
|
+
kind: "deploy",
|
|
56
|
+
...opts
|
|
57
|
+
}),
|
|
58
|
+
multisend: (opts) => ({
|
|
59
|
+
kind: "multisend",
|
|
60
|
+
...opts
|
|
61
|
+
})
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
//# debugId=64DC96EB3711AFB064756E2164756E21
|
|
65
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/tx/builders.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/**\n * Unsigned transaction intents for workflow use.\n *\n * import { tx } from \"@secondlayer/stacks/tx\"\n * await step.run(\"pay\", () => broadcast(\n * tx.transfer({ recipient: \"SP…\", amount: 1_000_000n, memo: \"DCA\" }),\n * { signer: \"treasury\" },\n * ))\n *\n * These helpers return plain \"intent\" objects — a description of *what*\n * should be broadcast, without fee, nonce, signer, or signature. The\n * `broadcast()` step (see Sprint 4) hydrates those at submit time using the\n * configured signer.\n *\n * Keeping intents separate from the existing `buildTokenTransfer` /\n * `buildContractCall` / `buildContractDeploy` in `@secondlayer/stacks/transactions`\n * means workflow authors don't have to manage fee/nonce and a single\n * `broadcast()` path can enforce budget caps + safety layers uniformly.\n */\n\nimport type { ClarityValue, PostCondition } from \"@stacks/transactions\";\n\nexport interface TransferIntent {\n\tkind: \"transfer\";\n\trecipient: string;\n\tamount: bigint;\n\tmemo?: string;\n\tpostConditions?: PostCondition[];\n}\n\nexport interface ContractCallIntent {\n\tkind: \"contract-call\";\n\t/** Fully-qualified contract id, e.g. `\"SP000000000000000000002Q6VF78.bns\"`. */\n\tcontract: string;\n\tfn: string;\n\targs: ClarityValue[];\n\tpostConditions?: PostCondition[];\n}\n\nexport interface DeployIntent {\n\tkind: \"deploy\";\n\tname: string;\n\tsource: string;\n\tclarityVersion?: 1 | 2 | 3;\n}\n\nexport interface MultiSendIntent {\n\tkind: \"multisend\";\n\tpayments: Array<{ recipient: string; amount: bigint; memo?: string }>;\n}\n\nexport type TxIntent =\n\t| TransferIntent\n\t| ContractCallIntent\n\t| DeployIntent\n\t| MultiSendIntent;\n\n/**\n * Lightweight factory functions for building tx intents. Identity-shaped\n * with a `kind` tag so the broadcast step can discriminate at runtime.\n */\nexport const tx = {\n\ttransfer: (opts: Omit<TransferIntent, \"kind\">): TransferIntent => ({\n\t\tkind: \"transfer\",\n\t\t...opts,\n\t}),\n\tcontractCall: (\n\t\topts: Omit<ContractCallIntent, \"kind\">,\n\t): ContractCallIntent => ({ kind: \"contract-call\", ...opts }),\n\tdeploy: (opts: Omit<DeployIntent, \"kind\">): DeployIntent => ({\n\t\tkind: \"deploy\",\n\t\t...opts,\n\t}),\n\tmultisend: (opts: Omit<MultiSendIntent, \"kind\">): MultiSendIntent => ({\n\t\tkind: \"multisend\",\n\t\t...opts,\n\t}),\n} as const;\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6DO,IAAM,KAAK;AAAA,EACjB,UAAU,CAAC,UAAwD;AAAA,IAClE,MAAM;AAAA,OACH;AAAA,EACJ;AAAA,EACA,cAAc,CACb,UACyB,EAAE,MAAM,oBAAoB,KAAK;AAAA,EAC3D,QAAQ,CAAC,UAAoD;AAAA,IAC5D,MAAM;AAAA,OACH;AAAA,EACJ;AAAA,EACA,WAAW,CAAC,UAA0D;AAAA,IACrE,MAAM;AAAA,OACH;AAAA,EACJ;AACD;",
|
|
8
|
+
"debugId": "64DC96EB3711AFB064756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ClarityValue, PostCondition } from "@stacks/transactions";
|
|
2
|
+
interface TransferIntent {
|
|
3
|
+
kind: "transfer";
|
|
4
|
+
recipient: string;
|
|
5
|
+
amount: bigint;
|
|
6
|
+
memo?: string;
|
|
7
|
+
postConditions?: PostCondition[];
|
|
8
|
+
}
|
|
9
|
+
interface ContractCallIntent {
|
|
10
|
+
kind: "contract-call";
|
|
11
|
+
/** Fully-qualified contract id, e.g. `"SP000000000000000000002Q6VF78.bns"`. */
|
|
12
|
+
contract: string;
|
|
13
|
+
fn: string;
|
|
14
|
+
args: ClarityValue[];
|
|
15
|
+
postConditions?: PostCondition[];
|
|
16
|
+
}
|
|
17
|
+
interface DeployIntent {
|
|
18
|
+
kind: "deploy";
|
|
19
|
+
name: string;
|
|
20
|
+
source: string;
|
|
21
|
+
clarityVersion?: 1 | 2 | 3;
|
|
22
|
+
}
|
|
23
|
+
interface MultiSendIntent {
|
|
24
|
+
kind: "multisend";
|
|
25
|
+
payments: Array<{
|
|
26
|
+
recipient: string
|
|
27
|
+
amount: bigint
|
|
28
|
+
memo?: string
|
|
29
|
+
}>;
|
|
30
|
+
}
|
|
31
|
+
type TxIntent = TransferIntent | ContractCallIntent | DeployIntent | MultiSendIntent;
|
|
32
|
+
/**
|
|
33
|
+
* Lightweight factory functions for building tx intents. Identity-shaped
|
|
34
|
+
* with a `kind` tag so the broadcast step can discriminate at runtime.
|
|
35
|
+
*/
|
|
36
|
+
declare const tx: {
|
|
37
|
+
readonly transfer: (opts: Omit<TransferIntent, "kind">) => TransferIntent
|
|
38
|
+
readonly contractCall: (opts: Omit<ContractCallIntent, "kind">) => ContractCallIntent
|
|
39
|
+
readonly deploy: (opts: Omit<DeployIntent, "kind">) => DeployIntent
|
|
40
|
+
readonly multisend: (opts: Omit<MultiSendIntent, "kind">) => MultiSendIntent
|
|
41
|
+
};
|
|
42
|
+
export { tx, TxIntent, TransferIntent, MultiSendIntent, DeployIntent, ContractCallIntent };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { ClarityValue, PostCondition } from "@stacks/transactions";
|
|
2
|
+
interface TransferIntent {
|
|
3
|
+
kind: "transfer";
|
|
4
|
+
recipient: string;
|
|
5
|
+
amount: bigint;
|
|
6
|
+
memo?: string;
|
|
7
|
+
postConditions?: PostCondition[];
|
|
8
|
+
}
|
|
9
|
+
interface ContractCallIntent {
|
|
10
|
+
kind: "contract-call";
|
|
11
|
+
/** Fully-qualified contract id, e.g. `"SP000000000000000000002Q6VF78.bns"`. */
|
|
12
|
+
contract: string;
|
|
13
|
+
fn: string;
|
|
14
|
+
args: ClarityValue[];
|
|
15
|
+
postConditions?: PostCondition[];
|
|
16
|
+
}
|
|
17
|
+
interface DeployIntent {
|
|
18
|
+
kind: "deploy";
|
|
19
|
+
name: string;
|
|
20
|
+
source: string;
|
|
21
|
+
clarityVersion?: 1 | 2 | 3;
|
|
22
|
+
}
|
|
23
|
+
interface MultiSendIntent {
|
|
24
|
+
kind: "multisend";
|
|
25
|
+
payments: Array<{
|
|
26
|
+
recipient: string
|
|
27
|
+
amount: bigint
|
|
28
|
+
memo?: string
|
|
29
|
+
}>;
|
|
30
|
+
}
|
|
31
|
+
type TxIntent = TransferIntent | ContractCallIntent | DeployIntent | MultiSendIntent;
|
|
32
|
+
/**
|
|
33
|
+
* Lightweight factory functions for building tx intents. Identity-shaped
|
|
34
|
+
* with a `kind` tag so the broadcast step can discriminate at runtime.
|
|
35
|
+
*/
|
|
36
|
+
declare const tx: {
|
|
37
|
+
readonly transfer: (opts: Omit<TransferIntent, "kind">) => TransferIntent
|
|
38
|
+
readonly contractCall: (opts: Omit<ContractCallIntent, "kind">) => ContractCallIntent
|
|
39
|
+
readonly deploy: (opts: Omit<DeployIntent, "kind">) => DeployIntent
|
|
40
|
+
readonly multisend: (opts: Omit<MultiSendIntent, "kind">) => MultiSendIntent
|
|
41
|
+
};
|
|
42
|
+
export { tx, TxIntent, TransferIntent, MultiSendIntent, DeployIntent, ContractCallIntent };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// src/tx/builders.ts
|
|
2
|
+
var tx = {
|
|
3
|
+
transfer: (opts) => ({
|
|
4
|
+
kind: "transfer",
|
|
5
|
+
...opts
|
|
6
|
+
}),
|
|
7
|
+
contractCall: (opts) => ({ kind: "contract-call", ...opts }),
|
|
8
|
+
deploy: (opts) => ({
|
|
9
|
+
kind: "deploy",
|
|
10
|
+
...opts
|
|
11
|
+
}),
|
|
12
|
+
multisend: (opts) => ({
|
|
13
|
+
kind: "multisend",
|
|
14
|
+
...opts
|
|
15
|
+
})
|
|
16
|
+
};
|
|
17
|
+
export {
|
|
18
|
+
tx
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
//# debugId=EA2A810D5257349464756E2164756E21
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/tx/builders.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"/**\n * Unsigned transaction intents for workflow use.\n *\n * import { tx } from \"@secondlayer/stacks/tx\"\n * await step.run(\"pay\", () => broadcast(\n * tx.transfer({ recipient: \"SP…\", amount: 1_000_000n, memo: \"DCA\" }),\n * { signer: \"treasury\" },\n * ))\n *\n * These helpers return plain \"intent\" objects — a description of *what*\n * should be broadcast, without fee, nonce, signer, or signature. The\n * `broadcast()` step (see Sprint 4) hydrates those at submit time using the\n * configured signer.\n *\n * Keeping intents separate from the existing `buildTokenTransfer` /\n * `buildContractCall` / `buildContractDeploy` in `@secondlayer/stacks/transactions`\n * means workflow authors don't have to manage fee/nonce and a single\n * `broadcast()` path can enforce budget caps + safety layers uniformly.\n */\n\nimport type { ClarityValue, PostCondition } from \"@stacks/transactions\";\n\nexport interface TransferIntent {\n\tkind: \"transfer\";\n\trecipient: string;\n\tamount: bigint;\n\tmemo?: string;\n\tpostConditions?: PostCondition[];\n}\n\nexport interface ContractCallIntent {\n\tkind: \"contract-call\";\n\t/** Fully-qualified contract id, e.g. `\"SP000000000000000000002Q6VF78.bns\"`. */\n\tcontract: string;\n\tfn: string;\n\targs: ClarityValue[];\n\tpostConditions?: PostCondition[];\n}\n\nexport interface DeployIntent {\n\tkind: \"deploy\";\n\tname: string;\n\tsource: string;\n\tclarityVersion?: 1 | 2 | 3;\n}\n\nexport interface MultiSendIntent {\n\tkind: \"multisend\";\n\tpayments: Array<{ recipient: string; amount: bigint; memo?: string }>;\n}\n\nexport type TxIntent =\n\t| TransferIntent\n\t| ContractCallIntent\n\t| DeployIntent\n\t| MultiSendIntent;\n\n/**\n * Lightweight factory functions for building tx intents. Identity-shaped\n * with a `kind` tag so the broadcast step can discriminate at runtime.\n */\nexport const tx = {\n\ttransfer: (opts: Omit<TransferIntent, \"kind\">): TransferIntent => ({\n\t\tkind: \"transfer\",\n\t\t...opts,\n\t}),\n\tcontractCall: (\n\t\topts: Omit<ContractCallIntent, \"kind\">,\n\t): ContractCallIntent => ({ kind: \"contract-call\", ...opts }),\n\tdeploy: (opts: Omit<DeployIntent, \"kind\">): DeployIntent => ({\n\t\tkind: \"deploy\",\n\t\t...opts,\n\t}),\n\tmultisend: (opts: Omit<MultiSendIntent, \"kind\">): MultiSendIntent => ({\n\t\tkind: \"multisend\",\n\t\t...opts,\n\t}),\n} as const;\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";AA6DO,IAAM,KAAK;AAAA,EACjB,UAAU,CAAC,UAAwD;AAAA,IAClE,MAAM;AAAA,OACH;AAAA,EACJ;AAAA,EACA,cAAc,CACb,UACyB,EAAE,MAAM,oBAAoB,KAAK;AAAA,EAC3D,QAAQ,CAAC,UAAoD;AAAA,IAC5D,MAAM;AAAA,OACH;AAAA,EACJ;AAAA,EACA,WAAW,CAAC,UAA0D;AAAA,IACrE,MAAM;AAAA,OACH;AAAA,EACJ;AACD;",
|
|
8
|
+
"debugId": "EA2A810D5257349464756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|