@arkiv-network/sdk 0.7.0-dev.1 → 0.8.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -16
- package/dist/attr/index.cjs +34 -0
- package/dist/attr/index.d.cts +2 -0
- package/dist/attr/index.d.ts +2 -0
- package/dist/attr/index.js +3 -0
- package/dist/attr-BDZ-APg5.js +809 -0
- package/dist/attr-BDZ-APg5.js.map +1 -0
- package/dist/attr-BvxHN99W.cjs +1029 -0
- package/dist/chains/index.cjs +2 -3
- package/dist/chains/index.d.cts +22 -60
- package/dist/chains/index.d.cts.map +1 -1
- package/dist/chains/index.d.ts +22 -60
- package/dist/chains/index.d.ts.map +1 -1
- package/dist/chains/index.js +2 -2
- package/dist/chains-BJrZs6sG.js +57 -0
- package/dist/chains-BJrZs6sG.js.map +1 -0
- package/dist/chains-BYRTTipa.cjs +73 -0
- package/dist/changeOwnership-B7bEgla4.d.cts +509 -0
- package/dist/changeOwnership-B7bEgla4.d.cts.map +1 -0
- package/dist/changeOwnership-DwgtdSFc.d.ts +509 -0
- package/dist/changeOwnership-DwgtdSFc.d.ts.map +1 -0
- package/dist/entity/index.cjs +19 -0
- package/dist/entity/index.d.cts +4 -0
- package/dist/entity/index.d.ts +4 -0
- package/dist/entity/index.js +6 -0
- package/dist/entity-B0t6sN7F.cjs +71 -0
- package/dist/entity-BIp_df9u.js +67 -0
- package/dist/entity-BIp_df9u.js.map +1 -0
- package/dist/entity-CFhbAv0R.js +70 -0
- package/dist/entity-CFhbAv0R.js.map +1 -0
- package/dist/entity-wfBnZd91.cjs +98 -0
- package/dist/errors-D-eJkGVc.cjs +56 -0
- package/dist/errors-DGB8AgT2.js +33 -0
- package/dist/errors-DGB8AgT2.js.map +1 -0
- package/dist/expiry-BUYIXTGb.cjs +135 -0
- package/dist/expiry-BxOlvVWC.d.ts +79 -0
- package/dist/expiry-BxOlvVWC.d.ts.map +1 -0
- package/dist/expiry-DGRzrSan.js +95 -0
- package/dist/expiry-DGRzrSan.js.map +1 -0
- package/dist/expiry-DRV29F1r.d.cts +79 -0
- package/dist/expiry-DRV29F1r.d.cts.map +1 -0
- package/dist/flags-0Vl5rrHq.d.cts +41 -0
- package/dist/flags-0Vl5rrHq.d.cts.map +1 -0
- package/dist/flags-Ct8k0gpB.cjs +43 -0
- package/dist/flags-ZtlvOIIk.js +33 -0
- package/dist/flags-ZtlvOIIk.js.map +1 -0
- package/dist/flags-wmcMoAnN.d.ts +41 -0
- package/dist/flags-wmcMoAnN.d.ts.map +1 -0
- package/dist/index-Cgw1u5aY.d.cts +278 -0
- package/dist/index-Cgw1u5aY.d.cts.map +1 -0
- package/dist/index-ClgIuxJ8.d.ts +159 -0
- package/dist/index-ClgIuxJ8.d.ts.map +1 -0
- package/dist/index-D0CmtiWT.d.cts +159 -0
- package/dist/index-D0CmtiWT.d.cts.map +1 -0
- package/dist/index-D8LZt-3J.d.cts +417 -0
- package/dist/index-D8LZt-3J.d.cts.map +1 -0
- package/dist/index-DVYFaXNV.d.ts +417 -0
- package/dist/index-DVYFaXNV.d.ts.map +1 -0
- package/dist/index-VCqgn29D.d.ts +278 -0
- package/dist/index-VCqgn29D.d.ts.map +1 -0
- package/dist/index.cjs +676 -375
- package/dist/index.d.cts +247 -208
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.ts +247 -208
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +626 -368
- package/dist/index.js.map +1 -1
- package/dist/payload-Bnw1hrvb.cjs +83 -0
- package/dist/payload-CIxSn_DW.js +67 -0
- package/dist/payload-CIxSn_DW.js.map +1 -0
- package/dist/payload-Dgx3PQeK.d.ts +94 -0
- package/dist/payload-Dgx3PQeK.d.ts.map +1 -0
- package/dist/payload-P0nWyjLg.d.cts +94 -0
- package/dist/payload-P0nWyjLg.d.cts.map +1 -0
- package/dist/query/index.cjs +24 -150
- package/dist/query/index.d.cts +5 -3
- package/dist/query/index.d.ts +5 -3
- package/dist/query/index.js +6 -138
- package/dist/queryBuilder-BXDvX1K_.cjs +1123 -0
- package/dist/queryBuilder-CbLL4pG5.js +963 -0
- package/dist/queryBuilder-CbLL4pG5.js.map +1 -0
- package/dist/selection-BvK6yX0g.d.cts +433 -0
- package/dist/selection-BvK6yX0g.d.cts.map +1 -0
- package/dist/selection-fpmI3ADQ.d.ts +433 -0
- package/dist/selection-fpmI3ADQ.d.ts.map +1 -0
- package/dist/types/index.cjs +3 -3
- package/dist/types/index.d.cts +7 -2
- package/dist/types/index.d.ts +7 -2
- package/dist/types/index.js +3 -3
- package/dist/utils/index.cjs +4 -17
- package/dist/utils/index.d.cts +3 -17
- package/dist/utils/index.d.ts +3 -17
- package/dist/utils/index.js +4 -18
- package/package.json +26 -5
- package/src/actions/public/getEntity.ts +27 -43
- package/src/actions/public/getEntityNonce.ts +30 -0
- package/src/actions/public/predictEntityKeys.test.ts +143 -0
- package/src/actions/public/predictEntityKeys.ts +138 -0
- package/src/actions/public/query.ts +33 -69
- package/src/actions/public/watchEntityEvents.test.ts +414 -0
- package/src/actions/public/watchEntityEvents.ts +225 -0
- package/src/actions/wallet/changeOwnership.ts +2 -2
- package/src/actions/wallet/createEntity.ts +99 -24
- package/src/actions/wallet/extendEntity.ts +37 -13
- package/src/actions/wallet/mutateEntities.test.ts +76 -0
- package/src/actions/wallet/mutateEntities.ts +19 -21
- package/src/actions/wallet/patchEntity.ts +90 -0
- package/src/attr/attributes.test.ts +120 -0
- package/src/attr/attributes.ts +190 -0
- package/src/attr/codec.test.ts +162 -0
- package/src/attr/codec.ts +220 -0
- package/src/attr/decimal.ts +86 -0
- package/src/attr/errors.ts +145 -0
- package/src/attr/index.ts +50 -0
- package/src/attr/names.ts +106 -0
- package/src/attr/types.ts +150 -0
- package/src/attr/values.test.ts +271 -0
- package/src/attr/values.ts +502 -0
- package/src/chains/cheesecake.ts +22 -0
- package/src/chains/index.ts +1 -2
- package/src/clients/createPublicClient.test.ts +3 -5
- package/src/clients/createPublicClient.ts +5 -4
- package/src/clients/createWalletClient.test.ts +2 -2
- package/src/clients/createWalletClient.ts +13 -7
- package/src/clients/decorators/arkivPublic.ts +160 -139
- package/src/clients/decorators/arkivWallet.ts +86 -94
- package/src/entity/create.test.ts +184 -0
- package/src/entity/errors.ts +38 -0
- package/src/entity/events.ts +16 -0
- package/src/entity/expiry.test.ts +195 -0
- package/src/entity/expiry.ts +181 -0
- package/src/entity/flags.ts +65 -0
- package/src/entity/index.ts +14 -0
- package/src/entity/key.ts +68 -0
- package/src/entity/operations.ts +134 -0
- package/src/entity/params.ts +15 -0
- package/src/errors.ts +26 -49
- package/src/index.ts +6 -0
- package/src/query/engine.ts +59 -139
- package/src/query/errors.ts +151 -0
- package/src/query/expression.test.ts +286 -0
- package/src/query/expression.ts +493 -0
- package/src/query/index.ts +40 -4
- package/src/query/injection.test.ts +151 -0
- package/src/query/queryBuilder.test.ts +322 -637
- package/src/query/queryBuilder.ts +126 -359
- package/src/query/queryResult.ts +54 -51
- package/src/query/selection.test.ts +48 -98
- package/src/query/selection.ts +77 -65
- package/src/types/entity.test.ts +44 -155
- package/src/types/entity.ts +60 -52
- package/src/types/events.ts +59 -16
- package/src/types/index.ts +20 -17
- package/src/types/rpcSchema.ts +69 -37
- package/src/utils/arkivTransactions.test.ts +600 -155
- package/src/utils/arkivTransactions.ts +181 -190
- package/src/utils/chains.test.ts +21 -24
- package/src/utils/compression.ts +1 -1
- package/src/utils/entities.test.ts +62 -0
- package/src/utils/entities.ts +109 -37
- package/src/utils/expirationTime.ts +114 -10
- package/src/utils/logger.ts +2 -2
- package/src/utils/revert.test.ts +99 -0
- package/src/utils/revert.ts +145 -0
- package/dist/chains-BifaY04V.cjs +0 -108
- package/dist/chains-CrtkVbBh.js +0 -86
- package/dist/chains-CrtkVbBh.js.map +0 -1
- package/dist/consts-Bz0LZQZY.js +0 -7
- package/dist/consts-Bz0LZQZY.js.map +0 -1
- package/dist/consts-CxT1-RXU.cjs +0 -18
- package/dist/entity-BhSXaB23.cjs +0 -81
- package/dist/entity-CN41IOrq.d.cts +0 -401
- package/dist/entity-CN41IOrq.d.cts.map +0 -1
- package/dist/entity-DGfVyB-a.js +0 -71
- package/dist/entity-DGfVyB-a.js.map +0 -1
- package/dist/entity-NnEVlePN.d.ts +0 -401
- package/dist/entity-NnEVlePN.d.ts.map +0 -1
- package/dist/index-ClkpS6s_.d.ts +0 -481
- package/dist/index-ClkpS6s_.d.ts.map +0 -1
- package/dist/index-w4qop0Pe.d.cts +0 -481
- package/dist/index-w4qop0Pe.d.cts.map +0 -1
- package/dist/payload-BpNUPOnY.js +0 -13
- package/dist/payload-BpNUPOnY.js.map +0 -1
- package/dist/payload-C2KHOUoj.d.ts +0 -6
- package/dist/payload-C2KHOUoj.d.ts.map +0 -1
- package/dist/payload-CJN8fTvX.d.cts +0 -6
- package/dist/payload-CJN8fTvX.d.cts.map +0 -1
- package/dist/payload-D8YLKcJj.cjs +0 -23
- package/dist/query/index.js.map +0 -1
- package/dist/queryBuilder-BE_XhLLa.js +0 -735
- package/dist/queryBuilder-BE_XhLLa.js.map +0 -1
- package/dist/queryBuilder-J37buGCi.cjs +0 -865
- package/dist/utils/index.d.cts.map +0 -1
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js.map +0 -1
- package/src/actions/public/buildQuery.ts +0 -10
- package/src/actions/public/subscribeEntityEvents.ts +0 -93
- package/src/actions/wallet/updateEntity.ts +0 -59
- package/src/chains/braga.ts +0 -26
- package/src/chains/kaolin.ts +0 -29
- package/src/query/engine.test.ts +0 -571
- package/src/query/predicate.test.ts +0 -461
- package/src/query/predicate.ts +0 -144
- package/src/query/queryResult.test.ts +0 -270
- package/src/query/selectQueryBuilder.test.ts +0 -213
- package/src/types/attributes.ts +0 -28
- package/src/utils/validation.test.ts +0 -106
- package/src/utils/validation.ts +0 -80
- /package/dist/{types-Ci4BRClw.js → types-Bx1EKe0v.js} +0 -0
- /package/dist/{types-a8gm_IaQ.cjs → types-CKPddlfS.cjs} +0 -0
|
@@ -0,0 +1,509 @@
|
|
|
1
|
+
import { p as AttributeInputs } from "./index-D8LZt-3J.cjs";
|
|
2
|
+
import { n as Expiry } from "./expiry-DRV29F1r.cjs";
|
|
3
|
+
import { n as ResolvedCreationFlags, t as CreationFlags } from "./flags-0Vl5rrHq.cjs";
|
|
4
|
+
import { i as SelectArg, k as Entity } from "./selection-BvK6yX0g.cjs";
|
|
5
|
+
import { Address, Hash, Hex } from "viem";
|
|
6
|
+
|
|
7
|
+
//#region src/actions/public/predictEntityKeys.d.ts
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* A key a create will be given, together with the salt that mints it.
|
|
11
|
+
*
|
|
12
|
+
* The two travel as a pair because neither is any use alone: a create defaults to a *random* salt,
|
|
13
|
+
* so the key only comes out as predicted if that same create carries this salt.
|
|
14
|
+
*/
|
|
15
|
+
type PredictedEntityKey = {
|
|
16
|
+
/** The key the create will be given. */
|
|
17
|
+
key: Hex;
|
|
18
|
+
/** The salt the create must carry for its key to come out as {@link PredictedEntityKey.key}. */
|
|
19
|
+
salt: bigint;
|
|
20
|
+
};
|
|
21
|
+
/** Parameters for {@link predictEntityKeys}. */
|
|
22
|
+
type PredictEntityKeysParameters<TCount extends number = number, TSalts extends readonly bigint[] | undefined = readonly bigint[] | undefined> = {
|
|
23
|
+
/** The account that will sign the creates. Its nonce is what the keys are derived from. */
|
|
24
|
+
owner: Address;
|
|
25
|
+
/**
|
|
26
|
+
* How many creates the batch will carry. Ignored when `salts` is given, which already says how
|
|
27
|
+
* many there are.
|
|
28
|
+
*
|
|
29
|
+
* A literal count comes back as a fixed-length tuple, so `count: 2` destructures into two named
|
|
30
|
+
* pairs without a cast.
|
|
31
|
+
*/
|
|
32
|
+
count?: TCount | undefined;
|
|
33
|
+
/**
|
|
34
|
+
* The salt each create will carry, in batch order. Defaults to `count` fresh random salts —
|
|
35
|
+
* either way each key comes back paired with the salt that mints it.
|
|
36
|
+
*/
|
|
37
|
+
salts?: TSalts;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* The keys a batch would mint, in batch order, each paired with its salt.
|
|
41
|
+
*
|
|
42
|
+
* The length follows the request whenever it is known statically: a literal `count`, or a `salts`
|
|
43
|
+
* tuple, gives a fixed-length tuple; a count computed at runtime gives a plain array.
|
|
44
|
+
*
|
|
45
|
+
* `TSalts` is wrapped in a tuple to stop the conditional distributing over it. Left naked, the
|
|
46
|
+
* `readonly bigint[] | undefined` default would take both branches and union a tuple with an array,
|
|
47
|
+
* which widens the length straight back to `number`.
|
|
48
|
+
*/
|
|
49
|
+
type PredictEntityKeysReturnType<TCount extends number = number, TSalts extends readonly bigint[] | undefined = readonly bigint[] | undefined> = [TSalts] extends [readonly bigint[]] ? { -readonly [Index in keyof TSalts]: PredictedEntityKey } : Repeat<PredictedEntityKey, TCount>;
|
|
50
|
+
/**
|
|
51
|
+
* A tuple of `TLength` × `T`, or a plain array when the length is only known at runtime.
|
|
52
|
+
*
|
|
53
|
+
* Written tail-recursively so TypeScript can build the batch sizes anyone would actually send.
|
|
54
|
+
*/
|
|
55
|
+
type Repeat<T, TLength extends number, TAcc extends T[] = []> = number extends TLength ? T[] : TAcc["length"] extends TLength ? TAcc : Repeat<T, TLength, [...TAcc, T]>;
|
|
56
|
+
/**
|
|
57
|
+
* Works out the keys an account's next creates will be given, before sending them.
|
|
58
|
+
*
|
|
59
|
+
* A key is `keccak256(chainId ++ registry ++ owner ++ nonce ++ salt)`. Everything but the nonce is
|
|
60
|
+
* known to the caller, and the nonce is read here — so a batch can reference a key it is about to
|
|
61
|
+
* mint, storing it as a `key` attribute on a sibling entity created in the same transaction.
|
|
62
|
+
*
|
|
63
|
+
* Each key arrives paired with its salt, and the create must be given that salt: a create left to
|
|
64
|
+
* pick its own salt picks a random one, which mints a different key.
|
|
65
|
+
*
|
|
66
|
+
* The prediction is valid only while nothing else from this owner is in flight. Every create that
|
|
67
|
+
* lands first takes the nonce with it and moves these keys. For a key you can rely on
|
|
68
|
+
* unconditionally, read it back from the create instead — `createEntity` and `mutateEntities`
|
|
69
|
+
* report the keys the engine actually minted.
|
|
70
|
+
*
|
|
71
|
+
* @param parameters - Owner, and either a count or the salts. {@link PredictEntityKeysParameters}
|
|
72
|
+
* @returns One `{ key, salt }` pair per create, in batch order. {@link PredictEntityKeysReturnType}
|
|
73
|
+
*
|
|
74
|
+
* @example A batch whose second entity points at its first.
|
|
75
|
+
* import { key } from "@arkiv-network/sdk/attr"
|
|
76
|
+
*
|
|
77
|
+
* const [parent, child] = await client.predictEntityKeys({ owner: account.address, count: 2 })
|
|
78
|
+
* await wallet.mutateEntities({
|
|
79
|
+
* creates: [
|
|
80
|
+
* { payload, contentType, expires, salt: parent.salt },
|
|
81
|
+
* {
|
|
82
|
+
* payload,
|
|
83
|
+
* contentType,
|
|
84
|
+
* expires,
|
|
85
|
+
* salt: child.salt,
|
|
86
|
+
* attributes: { parent: key(parent.key) },
|
|
87
|
+
* },
|
|
88
|
+
* ],
|
|
89
|
+
* })
|
|
90
|
+
*/
|
|
91
|
+
//#endregion
|
|
92
|
+
//#region src/actions/public/query.d.ts
|
|
93
|
+
type QueryOptions = {
|
|
94
|
+
/** What to return. Defaults to everything. */
|
|
95
|
+
select?: SelectArg | undefined;
|
|
96
|
+
/** Block height to read at. Defaults to the head. */
|
|
97
|
+
atBlock?: bigint | undefined;
|
|
98
|
+
/** Page size, up to the node maximum of 200. */
|
|
99
|
+
limit?: number | undefined;
|
|
100
|
+
/** Cursor from a previous page. */
|
|
101
|
+
cursor?: string | undefined;
|
|
102
|
+
};
|
|
103
|
+
type QueryReturnType = {
|
|
104
|
+
entities: Entity[];
|
|
105
|
+
/** The cursor for the next page, or `undefined` when no pages remain. */
|
|
106
|
+
cursor: string | undefined;
|
|
107
|
+
/** The block the page was read at. */
|
|
108
|
+
blockNumber: bigint;
|
|
109
|
+
};
|
|
110
|
+
//#endregion
|
|
111
|
+
//#region src/types/events.d.ts
|
|
112
|
+
/**
|
|
113
|
+
* Where an event sits in the chain — carried by every on-chain entity event.
|
|
114
|
+
*
|
|
115
|
+
* Operations apply in batch order and emit one event each, so `blockNumber` and `logIndex` together
|
|
116
|
+
* are the order the operations were applied in. A replica that replays them in that order sees
|
|
117
|
+
* exactly what the engine did.
|
|
118
|
+
*/
|
|
119
|
+
type EntityEventContext = {
|
|
120
|
+
/** The block the operation was applied in. */
|
|
121
|
+
blockNumber: bigint;
|
|
122
|
+
/** The transaction the operation was part of. */
|
|
123
|
+
transactionHash: Hex;
|
|
124
|
+
/** The event's position within its block. */
|
|
125
|
+
logIndex: number;
|
|
126
|
+
};
|
|
127
|
+
/** An entity was created. */
|
|
128
|
+
type EntityCreatedEvent = EntityEventContext & {
|
|
129
|
+
type: "EntityCreated";
|
|
130
|
+
entityKey: Hex;
|
|
131
|
+
owner: Address;
|
|
132
|
+
/** The block the entity is set to expire at. */
|
|
133
|
+
expiresAt: bigint;
|
|
134
|
+
/**
|
|
135
|
+
* The immutable properties the entity was created with, decoded from its `creationFlags` byte.
|
|
136
|
+
*/
|
|
137
|
+
creationFlags: ResolvedCreationFlags;
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* An entity's attributes or payload changed.
|
|
141
|
+
*
|
|
142
|
+
* The event says *that* it changed, not what to — read the entity to see the new state.
|
|
143
|
+
*/
|
|
144
|
+
type EntityPatchedEvent = EntityEventContext & {
|
|
145
|
+
type: "EntityPatched";
|
|
146
|
+
entityKey: Hex;
|
|
147
|
+
owner: Address;
|
|
148
|
+
};
|
|
149
|
+
/** An entity's expiry moved further out. */
|
|
150
|
+
type ExpiryExtendedEvent = EntityEventContext & {
|
|
151
|
+
type: "ExpiryExtended";
|
|
152
|
+
entityKey: Hex;
|
|
153
|
+
/**
|
|
154
|
+
* The entity's owner — **not** whoever extended it. An entity created with
|
|
155
|
+
* `permissionlessExtension` can be extended by anyone, and the event does not say by whom; read
|
|
156
|
+
* the transaction's sender if you need that.
|
|
157
|
+
*/
|
|
158
|
+
owner: Address;
|
|
159
|
+
/** The block the entity is now set to expire at. */
|
|
160
|
+
expiresAt: bigint;
|
|
161
|
+
};
|
|
162
|
+
/** An entity changed hands. */
|
|
163
|
+
type OwnershipTransferredEvent = EntityEventContext & {
|
|
164
|
+
type: "OwnershipTransferred";
|
|
165
|
+
entityKey: Hex;
|
|
166
|
+
previousOwner: Address;
|
|
167
|
+
newOwner: Address;
|
|
168
|
+
};
|
|
169
|
+
/** An entity was deleted by its owner, before its expiry. */
|
|
170
|
+
type EntityDeletedEvent = EntityEventContext & {
|
|
171
|
+
type: "EntityDeleted";
|
|
172
|
+
entityKey: Hex;
|
|
173
|
+
owner: Address;
|
|
174
|
+
};
|
|
175
|
+
/**
|
|
176
|
+
* Every event the engine emits, discriminated by `type`.
|
|
177
|
+
*/
|
|
178
|
+
type EntityEvent = EntityCreatedEvent | EntityPatchedEvent | ExpiryExtendedEvent | OwnershipTransferredEvent | EntityDeletedEvent;
|
|
179
|
+
//#endregion
|
|
180
|
+
//#region src/actions/public/watchEntityEvents.d.ts
|
|
181
|
+
/**
|
|
182
|
+
* Handlers and options for `client.watchEntityEvents`. Every handler is optional; the watcher does
|
|
183
|
+
* the work for the ones you pass.
|
|
184
|
+
*/
|
|
185
|
+
type WatchEntityEventsParameters = {
|
|
186
|
+
onEntityCreated?: ((event: EntityCreatedEvent) => void) | undefined;
|
|
187
|
+
onEntityPatched?: ((event: EntityPatchedEvent) => void) | undefined;
|
|
188
|
+
onExpiryExtended?: ((event: ExpiryExtendedEvent) => void) | undefined;
|
|
189
|
+
onOwnershipTransferred?: ((event: OwnershipTransferredEvent) => void) | undefined;
|
|
190
|
+
onEntityDeleted?: ((event: EntityDeletedEvent) => void) | undefined;
|
|
191
|
+
/**
|
|
192
|
+
* Every event, in application order, whatever its type. Runs *before* the per-event handler for
|
|
193
|
+
* the same event.
|
|
194
|
+
*
|
|
195
|
+
* This is the replay seam: operations apply in batch order and emit one event each, so an
|
|
196
|
+
* off-chain replica that consumes this in order sees exactly what the engine did.
|
|
197
|
+
*/
|
|
198
|
+
onEvent?: ((event: EntityEvent) => void) | undefined;
|
|
199
|
+
/**
|
|
200
|
+
* Transport failures, logs that will not decode, and anything one of your own handlers throws.
|
|
201
|
+
*
|
|
202
|
+
* Defaults to `console.error`. A watcher whose filter the node dropped otherwise just goes quiet,
|
|
203
|
+
* and a quiet watcher is indistinguishable from a quiet chain.
|
|
204
|
+
*/
|
|
205
|
+
onError?: ((error: Error) => void) | undefined;
|
|
206
|
+
/** Replay from this block before following the head. Defaults to the head. */
|
|
207
|
+
fromBlock?: bigint | undefined;
|
|
208
|
+
/** How often to poll, in milliseconds. Defaults to half a block. */
|
|
209
|
+
pollingInterval?: number | undefined;
|
|
210
|
+
};
|
|
211
|
+
//#endregion
|
|
212
|
+
//#region src/actions/public/getBlockTiming.d.ts
|
|
213
|
+
type GetBlockTimingReturnType = {
|
|
214
|
+
currentBlock: bigint;
|
|
215
|
+
currentBlockTime: number;
|
|
216
|
+
blockDuration: number;
|
|
217
|
+
};
|
|
218
|
+
//#endregion
|
|
219
|
+
//#region src/actions/wallet/createEntity.d.ts
|
|
220
|
+
/**
|
|
221
|
+
* Parameters for creating an entity.
|
|
222
|
+
*
|
|
223
|
+
* An entity always carries contents and a type for them, plus a lifetime. Attributes, flags and a
|
|
224
|
+
* salt are optional on top of that.
|
|
225
|
+
*
|
|
226
|
+
* @example
|
|
227
|
+
* const { entityKey } = await client.createEntity({
|
|
228
|
+
* attributes: {
|
|
229
|
+
* level: i32(10),
|
|
230
|
+
* balance: u256(1_000_000n),
|
|
231
|
+
* score: dec("3.5"),
|
|
232
|
+
* name: "Bob", // bare string -> str
|
|
233
|
+
* flagged: true, // bare boolean -> bool
|
|
234
|
+
* },
|
|
235
|
+
* payload: jsonToPayload({ hello: "world" }),
|
|
236
|
+
* contentType: "application/json",
|
|
237
|
+
* expires: ExpirationTime.fromDays(30),
|
|
238
|
+
* flags: { readonly: true },
|
|
239
|
+
* })
|
|
240
|
+
*
|
|
241
|
+
* @example Pin an absolute deadline, but refuse to create something nearly dead:
|
|
242
|
+
* await client.createEntity({
|
|
243
|
+
* payload, contentType: "application/json",
|
|
244
|
+
* expires: ExpirationTime.atDate(someDeadline, {
|
|
245
|
+
* atLeast: ExpirationTime.fromDays(1), // ...but live at least a day regardless
|
|
246
|
+
* }),
|
|
247
|
+
* })
|
|
248
|
+
*
|
|
249
|
+
* @example An entity that is nothing but queryable attributes still declares its (empty) contents:
|
|
250
|
+
* await client.createEntity({
|
|
251
|
+
* attributes: { parent: key(parentKey), rank: i32(3) },
|
|
252
|
+
* payload: new Uint8Array(),
|
|
253
|
+
* contentType: "application/octet-stream",
|
|
254
|
+
* expires: ExpirationTime.fromDays(30),
|
|
255
|
+
* })
|
|
256
|
+
*/
|
|
257
|
+
type CreateEntityParameters = {
|
|
258
|
+
/**
|
|
259
|
+
* How long the entity should live, built with {@link ExpirationTime}.
|
|
260
|
+
*
|
|
261
|
+
* `ExpirationTime.fromDays(30)` is the everyday form. `atBlock` / `atDate` pin an absolute
|
|
262
|
+
* deadline instead, and either can carry `{ atLeast }` to guarantee a minimum life on top of it.
|
|
263
|
+
*/
|
|
264
|
+
expires: Expiry;
|
|
265
|
+
/**
|
|
266
|
+
* The entity's opaque payload. Travels to the engine as the `$payload` system attribute; on this
|
|
267
|
+
* surface it is just the entity's contents.
|
|
268
|
+
*
|
|
269
|
+
* Pass an empty `Uint8Array` for an entity that is nothing but queryable attributes — it is
|
|
270
|
+
* written as an empty payload rather than left unset, so what you pass is what is stored.
|
|
271
|
+
*/
|
|
272
|
+
payload: Uint8Array;
|
|
273
|
+
/** The payload's MIME type, e.g. `"application/json"`. Sent as the `$contentType` cell. */
|
|
274
|
+
contentType: MimeType | (string & {});
|
|
275
|
+
/**
|
|
276
|
+
* The entity's queryable attributes, keyed by name. Values are the tagged constructors from
|
|
277
|
+
* `@arkiv-network/sdk/attr` — `i32`, `u256`, `dec`, `str`, `addr`, `key`, `bytes32`, `bool` — or
|
|
278
|
+
* a bare `boolean`, `number`, `bigint` or `string` where the type is unambiguous.
|
|
279
|
+
*
|
|
280
|
+
* @throws {InvalidAttributeNameError} If a name violates the attribute-name grammar.
|
|
281
|
+
* @throws {InvalidValueError} If a value does not fit the type it names or defaults to.
|
|
282
|
+
*/
|
|
283
|
+
attributes?: AttributeInputs | undefined;
|
|
284
|
+
/**
|
|
285
|
+
* Properties fixed at creation: `readonly` and `permissionlessExtension`. No operation changes
|
|
286
|
+
* them afterwards, so an entity is whatever it was created as for life. Both default to `false`.
|
|
287
|
+
*/
|
|
288
|
+
flags?: CreationFlags | undefined;
|
|
289
|
+
/**
|
|
290
|
+
* The salt mixed into the entity key. Defaults to 128 random bits, which makes the key
|
|
291
|
+
* unpredictable to everyone but the creator.
|
|
292
|
+
*
|
|
293
|
+
* Pass `0n` for a key derived from the owner and nonce alone — predictable by anyone, which is
|
|
294
|
+
* what you want only when a third party must be able to compute the key in advance.
|
|
295
|
+
*/
|
|
296
|
+
salt?: bigint | undefined;
|
|
297
|
+
};
|
|
298
|
+
/**
|
|
299
|
+
* The result of creating an entity.
|
|
300
|
+
*/
|
|
301
|
+
type CreateEntityReturnType = {
|
|
302
|
+
/** The new entity's key. */
|
|
303
|
+
entityKey: Hex;
|
|
304
|
+
txHash: Hash;
|
|
305
|
+
/**
|
|
306
|
+
* The block the entity is expected to expire at, resolved against the block the transaction was
|
|
307
|
+
* built on.
|
|
308
|
+
*
|
|
309
|
+
* The engine resolves a duration against the block the transaction actually lands in, so for
|
|
310
|
+
* `ExpirationTime.fromDays(30)` and friends this is a lower bound: the real expiry is later by
|
|
311
|
+
* however many blocks passed between building and inclusion. An `atBlock` deadline is exact.
|
|
312
|
+
*/
|
|
313
|
+
expiresAt: bigint;
|
|
314
|
+
};
|
|
315
|
+
//#endregion
|
|
316
|
+
//#region src/actions/wallet/deleteEntity.d.ts
|
|
317
|
+
/**
|
|
318
|
+
* Parameters for the deleteEntity function.
|
|
319
|
+
* - entityKey: The key of the entity to delete.
|
|
320
|
+
*/
|
|
321
|
+
type DeleteEntityParameters = {
|
|
322
|
+
entityKey: Hex;
|
|
323
|
+
};
|
|
324
|
+
/**
|
|
325
|
+
* Return type for the deleteEntity function.
|
|
326
|
+
* - entityKey: The key of the entity.
|
|
327
|
+
* - txHash: The transaction hash.
|
|
328
|
+
*/
|
|
329
|
+
type DeleteEntityReturnType = {
|
|
330
|
+
entityKey: Hex;
|
|
331
|
+
txHash: Hash;
|
|
332
|
+
};
|
|
333
|
+
//#endregion
|
|
334
|
+
//#region src/actions/wallet/extendEntity.d.ts
|
|
335
|
+
/**
|
|
336
|
+
* Parameters for extending an entity's life.
|
|
337
|
+
*
|
|
338
|
+
* An extension **sets a new expiry**; it does not add to the existing one. It is resolved exactly
|
|
339
|
+
* as a create's is — a duration counts from now, not from the entity's current expiry — so
|
|
340
|
+
* `ExpirationTime.fromDays(30)` means "alive for thirty more days from now" whatever the entity's
|
|
341
|
+
* remaining life happened to be.
|
|
342
|
+
*
|
|
343
|
+
* The engine rejects an extension that would not move the expiry later, so extending an entity by
|
|
344
|
+
* less than it already has left is an error rather than a silent shortening.
|
|
345
|
+
*
|
|
346
|
+
* @example
|
|
347
|
+
* await client.extendEntity({ entityKey, expires: ExpirationTime.fromDays(30) })
|
|
348
|
+
* await client.extendEntity({ entityKey, expires: ExpirationTime.atBlock(1_200_000n) })
|
|
349
|
+
*/
|
|
350
|
+
type ExtendEntityParameters = {
|
|
351
|
+
entityKey: Hex;
|
|
352
|
+
/** The entity's new lifetime, built with {@link ExpirationTime}. */
|
|
353
|
+
expires: Expiry;
|
|
354
|
+
};
|
|
355
|
+
/**
|
|
356
|
+
* The result of extending an entity.
|
|
357
|
+
*/
|
|
358
|
+
type ExtendEntityReturnType = {
|
|
359
|
+
entityKey: Hex;
|
|
360
|
+
txHash: Hash;
|
|
361
|
+
/**
|
|
362
|
+
* The block the entity is now expected to expire at, resolved against the block the transaction
|
|
363
|
+
* was built on. Durations are approximate, so treat this as the estimate the operation was built
|
|
364
|
+
* from rather than the block the engine settled on.
|
|
365
|
+
*/
|
|
366
|
+
expiresAt: bigint;
|
|
367
|
+
};
|
|
368
|
+
//#endregion
|
|
369
|
+
//#region src/actions/wallet/patchEntity.d.ts
|
|
370
|
+
/**
|
|
371
|
+
* Parameters for patching an entity.
|
|
372
|
+
*
|
|
373
|
+
* A patch names only what changes. Attributes it does not mention keep whatever value they have, and
|
|
374
|
+
* the payload and content type stay as they are unless given — so a caller can change one field
|
|
375
|
+
* without first reading the entity to learn what the others are, and without racing anyone else who
|
|
376
|
+
* is changing a different field.
|
|
377
|
+
*
|
|
378
|
+
* The entity's identity is fixed: a patch never moves the key, the owner, the creation flags or the
|
|
379
|
+
* expiry. Use `extendEntity` for the expiry and `changeOwnership` for the owner.
|
|
380
|
+
*
|
|
381
|
+
* @example Change one attribute and remove another, leaving the payload alone:
|
|
382
|
+
* await client.patchEntity({
|
|
383
|
+
* entityKey,
|
|
384
|
+
* set: { status: "published", level: i32(11) },
|
|
385
|
+
* unset: ["draft"],
|
|
386
|
+
* })
|
|
387
|
+
*
|
|
388
|
+
* @example Replace the contents without touching a single attribute:
|
|
389
|
+
* await client.patchEntity({
|
|
390
|
+
* entityKey,
|
|
391
|
+
* payload: jsonToPayload({ hello: "again" }),
|
|
392
|
+
* })
|
|
393
|
+
*/
|
|
394
|
+
type PatchEntityParameters = {
|
|
395
|
+
/** The entity to patch. */
|
|
396
|
+
entityKey: Hex;
|
|
397
|
+
/**
|
|
398
|
+
* Attributes to write, keyed by name. An existing attribute is overwritten — including with a
|
|
399
|
+
* different type — and a name the entity does not carry yet is added.
|
|
400
|
+
*
|
|
401
|
+
* Values are the tagged constructors from `@arkiv-network/sdk/attr` — `i32`, `u256`, `dec`, `str`,
|
|
402
|
+
* `addr`, `key`, `bytes32`, `bool` — or a bare `boolean`, `number`, `bigint` or `string` where the
|
|
403
|
+
* type is unambiguous.
|
|
404
|
+
*
|
|
405
|
+
* @throws {InvalidAttributeNameError} If a name violates the attribute-name grammar.
|
|
406
|
+
* @throws {InvalidValueError} If a value does not fit the type it names or defaults to.
|
|
407
|
+
*/
|
|
408
|
+
set?: AttributeInputs | undefined;
|
|
409
|
+
/**
|
|
410
|
+
* Attribute names to remove. Naming one the entity does not carry is not an error — the outcome
|
|
411
|
+
* is the same either way, and a caller clearing a field should not have to know whether it was
|
|
412
|
+
* ever set.
|
|
413
|
+
*
|
|
414
|
+
* @throws {ConflictingMutationError} If a name also appears in `set`.
|
|
415
|
+
*/
|
|
416
|
+
unset?: readonly string[] | undefined;
|
|
417
|
+
/**
|
|
418
|
+
* The entity's new payload. Omit it to leave the current contents untouched; pass an empty
|
|
419
|
+
* `Uint8Array` to replace them with nothing.
|
|
420
|
+
*/
|
|
421
|
+
payload?: Uint8Array | undefined;
|
|
422
|
+
/**
|
|
423
|
+
* The payload's new MIME type. Omit it to keep the current one — which is what you want when the
|
|
424
|
+
* new payload is the same kind of thing as the old.
|
|
425
|
+
*/
|
|
426
|
+
contentType?: MimeType | (string & {}) | undefined;
|
|
427
|
+
};
|
|
428
|
+
/** The result of patching an entity. */
|
|
429
|
+
type PatchEntityReturnType = {
|
|
430
|
+
/** The patched entity's key — unchanged, since a patch never moves it. */
|
|
431
|
+
entityKey: Hex;
|
|
432
|
+
txHash: Hash;
|
|
433
|
+
};
|
|
434
|
+
//#endregion
|
|
435
|
+
//#region src/actions/wallet/mutateEntities.d.ts
|
|
436
|
+
/**
|
|
437
|
+
* Parameters for the mutateEntities function.
|
|
438
|
+
*
|
|
439
|
+
* At least one operation is required; a batch with nothing in it throws rather than spending gas on
|
|
440
|
+
* an empty transaction.
|
|
441
|
+
*/
|
|
442
|
+
type MutateEntitiesParameters = {
|
|
443
|
+
/** The entities to create. */
|
|
444
|
+
creates?: CreateEntityParameters[];
|
|
445
|
+
/** The patches to apply. */
|
|
446
|
+
patches?: PatchEntityParameters[];
|
|
447
|
+
/** The entities to delete. */
|
|
448
|
+
deletes?: DeleteEntityParameters[];
|
|
449
|
+
/** The expiries to set. */
|
|
450
|
+
extensions?: ExtendEntityParameters[];
|
|
451
|
+
/** The ownership transfers to perform. */
|
|
452
|
+
ownershipChanges?: ChangeOwnershipParameters[];
|
|
453
|
+
};
|
|
454
|
+
/** Return type for the mutateEntities function. */
|
|
455
|
+
type MutateEntitiesReturnType = {
|
|
456
|
+
/** The transaction hash. */
|
|
457
|
+
txHash: Hash;
|
|
458
|
+
/** The keys of the created entities, in batch order. */
|
|
459
|
+
createdEntities: Hex[];
|
|
460
|
+
/** The keys of the patched entities. */
|
|
461
|
+
patchedEntities: Hex[];
|
|
462
|
+
/** The keys of the deleted entities. */
|
|
463
|
+
deletedEntities: Hex[];
|
|
464
|
+
/** The keys of the extended entities. */
|
|
465
|
+
extendedEntities: Hex[];
|
|
466
|
+
/** The keys of the entities handed to a new owner. */
|
|
467
|
+
ownershipChanges: Hex[];
|
|
468
|
+
};
|
|
469
|
+
//#endregion
|
|
470
|
+
//#region src/types/mimeTypes.d.ts
|
|
471
|
+
type MimeType = "text/plain" | "text/html" | "text/css" | "text/csv" | "text/xml" | "text/javascript" | "application/json" | "application/xml" | "application/pdf" | "application/zip" | "application/gzip" | "application/octet-stream" | "application/javascript" | "application/x-www-form-urlencoded" | "image/png" | "image/jpeg" | "image/webp" | "image/gif" | "image/svg+xml" | "audio/mpeg" | "audio/wav" | "audio/ogg" | "video/mp4" | "video/webm" | "video/ogg" | "multipart/form-data";
|
|
472
|
+
//#endregion
|
|
473
|
+
//#region src/types/txParams.d.ts
|
|
474
|
+
type TxParams = {
|
|
475
|
+
gas?: bigint;
|
|
476
|
+
nonce?: number;
|
|
477
|
+
gasPrice?: bigint;
|
|
478
|
+
maxFeePerGas?: never;
|
|
479
|
+
maxPriorityFeePerGas?: never;
|
|
480
|
+
} | {
|
|
481
|
+
gas?: bigint;
|
|
482
|
+
nonce?: number;
|
|
483
|
+
maxFeePerGas?: bigint;
|
|
484
|
+
maxPriorityFeePerGas?: bigint;
|
|
485
|
+
gasPrice?: never;
|
|
486
|
+
};
|
|
487
|
+
//#endregion
|
|
488
|
+
//#region src/actions/wallet/changeOwnership.d.ts
|
|
489
|
+
/**
|
|
490
|
+
* Parameters for the changeOwnership function.
|
|
491
|
+
* - entityKey: The key of the entity.
|
|
492
|
+
* - newOwner: The address of the new owner.
|
|
493
|
+
*/
|
|
494
|
+
type ChangeOwnershipParameters = {
|
|
495
|
+
entityKey: Hex;
|
|
496
|
+
newOwner: Hex;
|
|
497
|
+
};
|
|
498
|
+
/**
|
|
499
|
+
* Return type for the changeOwnership function.
|
|
500
|
+
* - entityKey: The key of the entity.
|
|
501
|
+
* - txHash: The transaction hash.
|
|
502
|
+
*/
|
|
503
|
+
type ChangeOwnershipReturnType = {
|
|
504
|
+
entityKey: Hex;
|
|
505
|
+
txHash: Hash;
|
|
506
|
+
};
|
|
507
|
+
//#endregion
|
|
508
|
+
export { OwnershipTransferredEvent as C, PredictEntityKeysReturnType as D, PredictEntityKeysParameters as E, PredictedEntityKey as O, ExpiryExtendedEvent as S, QueryReturnType as T, EntityCreatedEvent as _, MutateEntitiesParameters as a, EntityEventContext as b, PatchEntityReturnType as c, DeleteEntityParameters as d, DeleteEntityReturnType as f, WatchEntityEventsParameters as g, GetBlockTimingReturnType as h, MimeType as i, ExtendEntityParameters as l, CreateEntityReturnType as m, ChangeOwnershipReturnType as n, MutateEntitiesReturnType as o, CreateEntityParameters as p, TxParams as r, PatchEntityParameters as s, ChangeOwnershipParameters as t, ExtendEntityReturnType as u, EntityDeletedEvent as v, QueryOptions as w, EntityPatchedEvent as x, EntityEvent as y };
|
|
509
|
+
//# sourceMappingURL=changeOwnership-B7bEgla4.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"changeOwnership-B7bEgla4.d.cts","names":[],"sources":["../src/actions/public/predictEntityKeys.ts","../src/actions/public/query.ts","../src/types/events.ts","../src/actions/public/watchEntityEvents.ts","../src/actions/public/getBlockTiming.ts","../src/actions/wallet/createEntity.ts","../src/actions/wallet/deleteEntity.ts","../src/actions/wallet/extendEntity.ts","../src/actions/wallet/patchEntity.ts","../src/actions/wallet/mutateEntities.ts","../src/types/mimeTypes.ts","../src/types/txParams.ts","../src/actions/wallet/changeOwnership.ts"],"sourcesContent":[],"mappings":"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"}
|