@zerc20/storage-sdk 0.2.0 → 0.4.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/candid.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import type { ActorMethod } from '@icp-sdk/core/agent';
2
2
  import type { IDL } from '@icp-sdk/core/candid';
3
+ import type { Principal } from '@icp-sdk/core/principal';
3
4
  export type KindName = 'Outgoing' | 'Lane';
4
5
  export type Kind = {
5
6
  [K in KindName]: {
@@ -24,8 +25,6 @@ export interface AuditRequest {
24
25
  target: Uint8Array;
25
26
  notify_key: Uint8Array;
26
27
  transport_public_key: Uint8Array;
27
- expiry_ns: bigint;
28
- signature: Uint8Array;
29
28
  }
30
29
  export interface Registration {
31
30
  address: Uint8Array;
@@ -40,12 +39,10 @@ export interface Slot {
40
39
  at_ns: bigint;
41
40
  }
42
41
  export interface AuditRecord {
43
- auditor: Uint8Array;
42
+ auditor: Principal;
44
43
  target: Uint8Array;
45
44
  notify_key: Uint8Array;
46
45
  transport_public_key: Uint8Array;
47
- expiry_ns: bigint;
48
- signature: Uint8Array;
49
46
  at_ns: bigint;
50
47
  }
51
48
  export type CanisterError = {
@@ -63,6 +60,11 @@ export interface Service {
63
60
  register: ActorMethod<[Registration, bigint], Result<null>>;
64
61
  registration: ActorMethod<[Uint8Array, [] | [Uint8Array]], [] | [Registration]>;
65
62
  audit_escrow_key: ActorMethod<[AuditRequest], Result<Uint8Array>>;
63
+ validate_audit_escrow_key: ActorMethod<[AuditRequest], {
64
+ Ok: string;
65
+ } | {
66
+ Err: string;
67
+ }>;
66
68
  get_audits: ActorMethod<[bigint, number], AuditRecord[]>;
67
69
  submit: ActorMethod<[Action[], bigint], Result<null>>;
68
70
  get_announcements: ActorMethod<[Uint8Array, number, number], Uint8Array[]>;
package/dist/candid.js CHANGED
@@ -10,13 +10,7 @@ export const idlFactory = ({ IDL }) => {
10
10
  OpenChannel: IDL.Record({ inbox: Blob, enc_announcement: Blob, outgoing_id: Blob, enc_outgoing: Blob }),
11
11
  Put: IDL.Record({ kind: Kind, id: Blob, data: Blob }),
12
12
  });
13
- const AuditRequest = IDL.Record({
14
- target: Blob,
15
- notify_key: Blob,
16
- transport_public_key: Blob,
17
- expiry_ns: IDL.Nat64,
18
- signature: Blob,
19
- });
13
+ const AuditRequest = IDL.Record({ target: Blob, notify_key: Blob, transport_public_key: Blob });
20
14
  const Registration = IDL.Record({
21
15
  address: Blob,
22
16
  public_key: Blob,
@@ -27,12 +21,10 @@ export const idlFactory = ({ IDL }) => {
27
21
  });
28
22
  const Slot = IDL.Record({ data: Blob, at_ns: IDL.Nat64 });
29
23
  const AuditRecord = IDL.Record({
30
- auditor: Blob,
24
+ auditor: IDL.Principal,
31
25
  target: Blob,
32
26
  notify_key: Blob,
33
27
  transport_public_key: Blob,
34
- expiry_ns: IDL.Nat64,
35
- signature: Blob,
36
28
  at_ns: IDL.Nat64,
37
29
  });
38
30
  return IDL.Service({
@@ -40,6 +32,7 @@ export const idlFactory = ({ IDL }) => {
40
32
  register: IDL.Func([Registration, IDL.Nat64], [UnitResult], []),
41
33
  registration: IDL.Func([Blob, IDL.Opt(Blob)], [IDL.Opt(Registration)], ['query']),
42
34
  audit_escrow_key: IDL.Func([AuditRequest], [BlobResult], []),
35
+ validate_audit_escrow_key: IDL.Func([AuditRequest], [IDL.Variant({ Ok: IDL.Text, Err: IDL.Text })], ['query']),
43
36
  get_audits: IDL.Func([IDL.Nat64, IDL.Nat32], [IDL.Vec(AuditRecord)], ['query']),
44
37
  submit: IDL.Func([IDL.Vec(Action), IDL.Nat64], [UnitResult], []),
45
38
  get_announcements: IDL.Func([Blob, IDL.Nat32, IDL.Nat32], [IDL.Vec(Blob)], ['query']),
@@ -1 +1 @@
1
- {"version":3,"file":"candid.js","sourceRoot":"","sources":["../src/candid.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"candid.js","sourceRoot":"","sources":["../src/candid.ts"],"names":[],"mappings":"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"}
package/dist/formats.d.ts CHANGED
@@ -33,8 +33,11 @@ export declare const codeKey: (seed: Uint8Array, chainId: bigint, tokenId: numbe
33
33
  /** The owner's own lane key: notes to self (merge outputs and change) and burn blocks, which only the owner's
34
34
  * devices write and read. */
35
35
  export declare const ownKey: (seed: Uint8Array) => Uint8Array;
36
- /** The lane key of the owner's point of sale `n`, handed to that point of sale alone: it records there the burn
37
- * addresses it makes for the owner, ahead of handing them out. */
36
+ /** The key the owner's own burn addresses derive from. It only makes salts, which cannot spend, so it is derived from
37
+ * the view key: a wallet hands out burn addresses while its seed is away. */
38
+ export declare const burnKey: (seed: Uint8Array) => Uint8Array;
39
+ /** The key of the owner's point of sale `n`, handed to that point of sale alone: its burn key, and the key of the lane
40
+ * where it records the addresses it makes for the owner, ahead of handing them out. */
38
41
  export declare const posKey: (seed: Uint8Array, n: number) => Uint8Array;
39
42
  /** The slot of record `slotIndex` on `chainId` in the lane of `laneKey`. */
40
43
  export declare const slotId: (laneKey: Uint8Array, chainId: bigint, slotIndex: number) => Uint8Array;
@@ -108,9 +111,10 @@ export interface Deposit extends Stamped {
108
111
  burnAddress: Uint8Array;
109
112
  }
110
113
  /** Burn addresses `first, first + 1, ..` of `tokenId` on `chainId`, by their salts, which their owner may have handed
111
- * out. Whoever hands one out records its block first, so every device of the owner finds the payments to it. In the
112
- * own lane they are zERC20-v2's `keys::burn` indices; in a point of sale's lane, its `keys::pos_burn` counters. Salts,
113
- * because deriving an address takes about 2^16 hashes, and checking one from its salt takes one. */
114
+ * out. Whoever hands one out records its block first, so every device of the owner finds the payments to it. Their
115
+ * indices are those of zERC20-v2's `keys::derive_burn_address`: under the owner's `burnKey` in the own lane, under the
116
+ * point of sale's key in its lane. Salts, because deriving an address takes about 2^16 hashes, and checking one from
117
+ * its salt takes one. */
114
118
  export interface BurnBlock {
115
119
  chainId: bigint;
116
120
  tokenId: number;
@@ -155,9 +159,9 @@ export declare function readLaneRecord(lane: LaneKind, chainId: bigint, slotInde
155
159
  export interface ReceiveCode {
156
160
  chainId: bigint;
157
161
  tokenId: number;
158
- /** zERC20-v2's `keys::burn` address of the code's index. */
162
+ /** zERC20-v2's `keys::derive_burn_address` address of the code's index. */
159
163
  burnAddress: Uint8Array;
160
- /** The zERC20 public key the paying note commits to: the code's own (`keys::code_secret`), not the address's, so
164
+ /** The zERC20 public key the paying note commits to: the code's own (`keys::code_spend_secret`), not the address's, so
161
165
  * codes cannot be linked to each other or to the address. */
162
166
  publicKey: Uint8Array;
163
167
  key: Uint8Array;
package/dist/formats.js CHANGED
@@ -43,8 +43,11 @@ export const codeKey = (seed, chainId, tokenId, index) => kdf(seed, 'code', [u64
43
43
  /** The owner's own lane key: notes to self (merge outputs and change) and burn blocks, which only the owner's
44
44
  * devices write and read. */
45
45
  export const ownKey = (seed) => kdf(seed, 'own');
46
- /** The lane key of the owner's point of sale `n`, handed to that point of sale alone: it records there the burn
47
- * addresses it makes for the owner, ahead of handing them out. */
46
+ /** The key the owner's own burn addresses derive from. It only makes salts, which cannot spend, so it is derived from
47
+ * the view key: a wallet hands out burn addresses while its seed is away. */
48
+ export const burnKey = (seed) => kdf(seed, 'burn');
49
+ /** The key of the owner's point of sale `n`, handed to that point of sale alone: its burn key, and the key of the lane
50
+ * where it records the addresses it makes for the owner, ahead of handing them out. */
48
51
  export const posKey = (seed, n) => kdf(seed, 'pos', [u32be(n)]);
49
52
  /** The slot of record `slotIndex` on `chainId` in the lane of `laneKey`. */
50
53
  export const slotId = (laneKey, chainId, slotIndex) => kdf(laneKey, 'slot', [u64be(chainId), u32be(slotIndex)]);
@@ -1 +1 @@
1
- {"version":3,"file":"formats.js","sourceRoot":"","sources":["../src/formats.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formats.js","sourceRoot":"","sources":["../src/formats.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  export type { Action, AuditRecord, AuditRequest, CanisterError, Kind, Registration, Service, Slot } from './candid.js';
2
2
  export { idlFactory } from './candid.js';
3
3
  export { CanisterClient, StorageError } from './canister.js';
4
- export { BURN_BLOCK, FR_BE, addressInbox, codeKey, decodeCode, encodeCode, posKey, type BurnBlock, type Deposit, type LaneRecord, type Note, type NoteOpening, type OwnReceipt, type PosLane, type Receipt, type ReceiveCode, type Via, } from './formats.js';
4
+ export { BURN_BLOCK, FR_BE, addressInbox, codeKey, decodeCode, burnKey, encodeCode, posKey, type BurnBlock, type Deposit, type LaneRecord, type Note, type NoteOpening, type OwnReceipt, type PosLane, type Receipt, type ReceiveCode, type Via, } from './formats.js';
5
5
  export { commit, nextPosLane, planBurnBlock, planDeposit, planPayCode, planPosLane, planReceipt, planSelf, planSend, writePosBlock, } from './send.js';
6
6
  export { type ChainLane, type NewRecord, type StoredLane, type SyncState, emptyState, exportState, importState, refresh, } from './sync.js';
7
7
  export { type Recipient, type Signer, type ViewKey, eip191Signer, lookupRecipient, notifyKey, notifySecret, openEscrow, registeredViewKey, register, verifyRegistration, viewKey, } from './viewKey.js';
8
- export { REGISTER_POW_BITS, actionsDigest, auditMessage, powOk, registerDigest, registerMessage, requiredPowBits, solvePow, vetkdInput, } from './wire.js';
8
+ export { REGISTER_POW_BITS, actionsDigest, powOk, registerDigest, registerMessage, requiredPowBits, solvePow, vetkdInput, } from './wire.js';
package/dist/index.js CHANGED
@@ -8,17 +8,18 @@
8
8
  // reads only what is new. Keep the state with `exportState`.
9
9
  // - Payments (`planSend`, `planDeposit`, `planPayCode`, and `planSelf` for merge outputs and change, with what each
10
10
  // was), submitted with `commit`; `planReceipt` for what leaves no note to self.
11
- // - Burn blocks (`planBurnBlock`): which burn addresses the owner's devices hand out. Each of a wallet's own is also
12
- // a receive code (`encodeCode`), paid by a deposit or by a note, any amount, any number of times.
11
+ // - Burn blocks (`planBurnBlock`): which burn addresses the owner's devices hand out, made from `burnKey`. Each of a
12
+ // wallet's own is also a receive code (`encodeCode`), paid by a deposit or by a note, any amount, any number of
13
+ // times.
13
14
  // - Points of sale (`planPosLane`): a lane whose key (`posKey`) the owner hands to one point of sale, which records
14
15
  // there the burn addresses it hands out (`writePosBlock`), for every device of the owner to find.
15
16
  //
16
17
  // Payers are not verified: a record's `peer` is only what was claimed.
17
18
  export { idlFactory } from './candid.js';
18
19
  export { CanisterClient, StorageError } from './canister.js';
19
- export { BURN_BLOCK, FR_BE, addressInbox, codeKey, decodeCode, encodeCode, posKey, } from './formats.js';
20
+ export { BURN_BLOCK, FR_BE, addressInbox, codeKey, decodeCode, burnKey, encodeCode, posKey, } from './formats.js';
20
21
  export { commit, nextPosLane, planBurnBlock, planDeposit, planPayCode, planPosLane, planReceipt, planSelf, planSend, writePosBlock, } from './send.js';
21
22
  export { emptyState, exportState, importState, refresh, } from './sync.js';
22
23
  export { eip191Signer, lookupRecipient, notifyKey, notifySecret, openEscrow, registeredViewKey, register, verifyRegistration, viewKey, } from './viewKey.js';
23
- export { REGISTER_POW_BITS, actionsDigest, auditMessage, powOk, registerDigest, registerMessage, requiredPowBits, solvePow, vetkdInput, } from './wire.js';
24
+ export { REGISTER_POW_BITS, actionsDigest, powOk, registerDigest, registerMessage, requiredPowBits, solvePow, vetkdInput, } from './wire.js';
24
25
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,EAAE;AACF,wHAAwH;AACxH,iHAAiH;AACjH,gHAAgH;AAChH,yCAAyC;AACzC,iHAAiH;AACjH,+DAA+D;AAC/D,oHAAoH;AACpH,kFAAkF;AAClF,qHAAqH;AACrH,oGAAoG;AACpG,oHAAoH;AACpH,oGAAoG;AACpG,EAAE;AACF,uEAAuE;AAGvE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EACL,UAAU,EACV,KAAK,EACL,YAAY,EACZ,OAAO,EACP,UAAU,EACV,UAAU,EACV,MAAM,GAWP,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,aAAa,GACd,MAAM,WAAW,CAAC;AACnB,OAAO,EAKL,UAAU,EACV,WAAW,EACX,WAAW,EACX,OAAO,GACR,MAAM,WAAW,CAAC;AACnB,OAAO,EAIL,YAAY,EACZ,eAAe,EACf,SAAS,EACT,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,kBAAkB,EAClB,OAAO,GACR,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,KAAK,EACL,cAAc,EACd,eAAe,EACf,eAAe,EACf,QAAQ,EACR,UAAU,GACX,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,EAAE;AACF,wHAAwH;AACxH,iHAAiH;AACjH,gHAAgH;AAChH,yCAAyC;AACzC,iHAAiH;AACjH,+DAA+D;AAC/D,oHAAoH;AACpH,kFAAkF;AAClF,qHAAqH;AACrH,kHAAkH;AAClH,WAAW;AACX,oHAAoH;AACpH,oGAAoG;AACpG,EAAE;AACF,uEAAuE;AAGvE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EACL,UAAU,EACV,KAAK,EACL,YAAY,EACZ,OAAO,EACP,UAAU,EACV,OAAO,EACP,UAAU,EACV,MAAM,GAWP,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,MAAM,EACN,WAAW,EACX,aAAa,EACb,WAAW,EACX,WAAW,EACX,WAAW,EACX,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,aAAa,GACd,MAAM,WAAW,CAAC;AACnB,OAAO,EAKL,UAAU,EACV,WAAW,EACX,WAAW,EACX,OAAO,GACR,MAAM,WAAW,CAAC;AACnB,OAAO,EAIL,YAAY,EACZ,eAAe,EACf,SAAS,EACT,YAAY,EACZ,UAAU,EACV,iBAAiB,EACjB,QAAQ,EACR,kBAAkB,EAClB,OAAO,GACR,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,KAAK,EACL,cAAc,EACd,eAAe,EACf,eAAe,EACf,QAAQ,EACR,UAAU,GACX,MAAM,WAAW,CAAC"}
package/dist/wire.d.ts CHANGED
@@ -17,8 +17,6 @@ export declare const MAX_TTL_NS = 600000000000n;
17
17
  export declare const vetkdInput: (address: Uint8Array, notifyKey: Uint8Array) => Uint8Array;
18
18
  /** What an address owner signs (EIP-191) to register. */
19
19
  export declare function registerMessage(canister: Principal, r: Registration): string;
20
- /** What the auditor signs (EIP-191) to receive the key to the escrow of `target`'s registration with `notifyKey`. */
21
- export declare function auditMessage(canister: Principal, target: Uint8Array, notifyKey: Uint8Array, transportPublicKey: Uint8Array, expiryNs: bigint): string;
22
20
  export declare function registerDigest(r: Registration): Uint8Array;
23
21
  export declare function actionsDigest(actions: Action[]): Uint8Array;
24
22
  export declare const requiredPowBits: (actions: Action[]) => number;
package/dist/wire.js CHANGED
@@ -28,12 +28,6 @@ export function registerMessage(canister, r) {
28
28
  `public_key: 0x${hex(r.public_key)}\nnotify_key: 0x${hex(r.notify_key)}\n` +
29
29
  `escrow_sha256: 0x${hex(sha256(r.escrow))}\nexpiry_ns: ${r.expiry_ns}\ntag: ${REGISTRATION_TAG}`);
30
30
  }
31
- /** What the auditor signs (EIP-191) to receive the key to the escrow of `target`'s registration with `notifyKey`. */
32
- export function auditMessage(canister, target, notifyKey, transportPublicKey, expiryNs) {
33
- return (`zERC20 storage audit request\ncanister: ${canister.toText()}\ntarget: 0x${hex(target)}\n` +
34
- `notify_key: 0x${hex(notifyKey)}\ntransport_public_key: 0x${hex(transportPublicKey)}\nexpiry_ns: ${expiryNs}\n` +
35
- 'tag: zerc20/storage/audit/v1');
36
- }
37
31
  export function registerDigest(r) {
38
32
  return taggedHash(REGISTRATION_TAG, [r.address, r.public_key, r.notify_key, r.escrow, u64be(r.expiry_ns)]);
39
33
  }
package/dist/wire.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"wire.js","sourceRoot":"","sources":["../src/wire.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wire.js","sourceRoot":"","sources":["../src/wire.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@zerc20/storage-sdk",
3
- "version": "0.2.0",
3
+ "version": "0.4.0",
4
4
  "description": "TypeScript SDK for zerc20-storage: private note delivery for zERC20 on the Internet Computer.",
5
5
  "type": "module",
6
6
  "license": "Unlicense",
7
7
  "repository": {
8
8
  "type": "git",
9
- "url": "git+https://github.com/kbizikav/zerc20-v2-new.git",
9
+ "url": "git+https://github.com/zerc20io/zERC20v2.git",
10
10
  "directory": "storage/sdk"
11
11
  },
12
12
  "main": "dist/index.js",
package/src/candid.ts CHANGED
@@ -3,6 +3,7 @@
3
3
 
4
4
  import type { ActorMethod } from '@icp-sdk/core/agent';
5
5
  import type { IDL } from '@icp-sdk/core/candid';
6
+ import type { Principal } from '@icp-sdk/core/principal';
6
7
 
7
8
  export type KindName = 'Outgoing' | 'Lane';
8
9
  export type Kind = { [K in KindName]: { [P in K]: null } }[KindName];
@@ -22,8 +23,6 @@ export interface AuditRequest {
22
23
  target: Uint8Array;
23
24
  notify_key: Uint8Array;
24
25
  transport_public_key: Uint8Array;
25
- expiry_ns: bigint;
26
- signature: Uint8Array;
27
26
  }
28
27
 
29
28
  export interface Registration {
@@ -41,12 +40,10 @@ export interface Slot {
41
40
  }
42
41
 
43
42
  export interface AuditRecord {
44
- auditor: Uint8Array;
43
+ auditor: Principal;
45
44
  target: Uint8Array;
46
45
  notify_key: Uint8Array;
47
46
  transport_public_key: Uint8Array;
48
- expiry_ns: bigint;
49
- signature: Uint8Array;
50
47
  at_ns: bigint;
51
48
  }
52
49
 
@@ -58,6 +55,7 @@ export interface Service {
58
55
  register: ActorMethod<[Registration, bigint], Result<null>>;
59
56
  registration: ActorMethod<[Uint8Array, [] | [Uint8Array]], [] | [Registration]>;
60
57
  audit_escrow_key: ActorMethod<[AuditRequest], Result<Uint8Array>>;
58
+ validate_audit_escrow_key: ActorMethod<[AuditRequest], { Ok: string } | { Err: string }>;
61
59
  get_audits: ActorMethod<[bigint, number], AuditRecord[]>;
62
60
  submit: ActorMethod<[Action[], bigint], Result<null>>;
63
61
  get_announcements: ActorMethod<[Uint8Array, number, number], Uint8Array[]>;
@@ -76,13 +74,7 @@ export const idlFactory: IDL.InterfaceFactory = ({ IDL }) => {
76
74
  OpenChannel: IDL.Record({ inbox: Blob, enc_announcement: Blob, outgoing_id: Blob, enc_outgoing: Blob }),
77
75
  Put: IDL.Record({ kind: Kind, id: Blob, data: Blob }),
78
76
  });
79
- const AuditRequest = IDL.Record({
80
- target: Blob,
81
- notify_key: Blob,
82
- transport_public_key: Blob,
83
- expiry_ns: IDL.Nat64,
84
- signature: Blob,
85
- });
77
+ const AuditRequest = IDL.Record({ target: Blob, notify_key: Blob, transport_public_key: Blob });
86
78
  const Registration = IDL.Record({
87
79
  address: Blob,
88
80
  public_key: Blob,
@@ -93,12 +85,10 @@ export const idlFactory: IDL.InterfaceFactory = ({ IDL }) => {
93
85
  });
94
86
  const Slot = IDL.Record({ data: Blob, at_ns: IDL.Nat64 });
95
87
  const AuditRecord = IDL.Record({
96
- auditor: Blob,
88
+ auditor: IDL.Principal,
97
89
  target: Blob,
98
90
  notify_key: Blob,
99
91
  transport_public_key: Blob,
100
- expiry_ns: IDL.Nat64,
101
- signature: Blob,
102
92
  at_ns: IDL.Nat64,
103
93
  });
104
94
  return IDL.Service({
@@ -106,6 +96,7 @@ export const idlFactory: IDL.InterfaceFactory = ({ IDL }) => {
106
96
  register: IDL.Func([Registration, IDL.Nat64], [UnitResult], []),
107
97
  registration: IDL.Func([Blob, IDL.Opt(Blob)], [IDL.Opt(Registration)], ['query']),
108
98
  audit_escrow_key: IDL.Func([AuditRequest], [BlobResult], []),
99
+ validate_audit_escrow_key: IDL.Func([AuditRequest], [IDL.Variant({ Ok: IDL.Text, Err: IDL.Text })], ['query']),
109
100
  get_audits: IDL.Func([IDL.Nat64, IDL.Nat32], [IDL.Vec(AuditRecord)], ['query']),
110
101
  submit: IDL.Func([IDL.Vec(Action), IDL.Nat64], [UnitResult], []),
111
102
  get_announcements: IDL.Func([Blob, IDL.Nat32, IDL.Nat32], [IDL.Vec(Blob)], ['query']),
package/src/formats.ts CHANGED
@@ -57,8 +57,12 @@ export const codeKey = (seed: Uint8Array, chainId: bigint, tokenId: number, inde
57
57
  * devices write and read. */
58
58
  export const ownKey = (seed: Uint8Array): Uint8Array => kdf(seed, 'own');
59
59
 
60
- /** The lane key of the owner's point of sale `n`, handed to that point of sale alone: it records there the burn
61
- * addresses it makes for the owner, ahead of handing them out. */
60
+ /** The key the owner's own burn addresses derive from. It only makes salts, which cannot spend, so it is derived from
61
+ * the view key: a wallet hands out burn addresses while its seed is away. */
62
+ export const burnKey = (seed: Uint8Array): Uint8Array => kdf(seed, 'burn');
63
+
64
+ /** The key of the owner's point of sale `n`, handed to that point of sale alone: its burn key, and the key of the lane
65
+ * where it records the addresses it makes for the owner, ahead of handing them out. */
62
66
  export const posKey = (seed: Uint8Array, n: number): Uint8Array => kdf(seed, 'pos', [u32be(n)]);
63
67
 
64
68
  /** The slot of record `slotIndex` on `chainId` in the lane of `laneKey`. */
@@ -140,9 +144,10 @@ export interface Deposit extends Stamped {
140
144
  }
141
145
 
142
146
  /** Burn addresses `first, first + 1, ..` of `tokenId` on `chainId`, by their salts, which their owner may have handed
143
- * out. Whoever hands one out records its block first, so every device of the owner finds the payments to it. In the
144
- * own lane they are zERC20-v2's `keys::burn` indices; in a point of sale's lane, its `keys::pos_burn` counters. Salts,
145
- * because deriving an address takes about 2^16 hashes, and checking one from its salt takes one. */
147
+ * out. Whoever hands one out records its block first, so every device of the owner finds the payments to it. Their
148
+ * indices are those of zERC20-v2's `keys::derive_burn_address`: under the owner's `burnKey` in the own lane, under the
149
+ * point of sale's key in its lane. Salts, because deriving an address takes about 2^16 hashes, and checking one from
150
+ * its salt takes one. */
146
151
  export interface BurnBlock {
147
152
  chainId: bigint;
148
153
  tokenId: number;
@@ -322,9 +327,9 @@ export function readLaneRecord(
322
327
  export interface ReceiveCode {
323
328
  chainId: bigint;
324
329
  tokenId: number;
325
- /** zERC20-v2's `keys::burn` address of the code's index. */
330
+ /** zERC20-v2's `keys::derive_burn_address` address of the code's index. */
326
331
  burnAddress: Uint8Array;
327
- /** The zERC20 public key the paying note commits to: the code's own (`keys::code_secret`), not the address's, so
332
+ /** The zERC20 public key the paying note commits to: the code's own (`keys::code_spend_secret`), not the address's, so
328
333
  * codes cannot be linked to each other or to the address. */
329
334
  publicKey: Uint8Array;
330
335
  key: Uint8Array;
package/src/index.ts CHANGED
@@ -8,8 +8,9 @@
8
8
  // reads only what is new. Keep the state with `exportState`.
9
9
  // - Payments (`planSend`, `planDeposit`, `planPayCode`, and `planSelf` for merge outputs and change, with what each
10
10
  // was), submitted with `commit`; `planReceipt` for what leaves no note to self.
11
- // - Burn blocks (`planBurnBlock`): which burn addresses the owner's devices hand out. Each of a wallet's own is also
12
- // a receive code (`encodeCode`), paid by a deposit or by a note, any amount, any number of times.
11
+ // - Burn blocks (`planBurnBlock`): which burn addresses the owner's devices hand out, made from `burnKey`. Each of a
12
+ // wallet's own is also a receive code (`encodeCode`), paid by a deposit or by a note, any amount, any number of
13
+ // times.
13
14
  // - Points of sale (`planPosLane`): a lane whose key (`posKey`) the owner hands to one point of sale, which records
14
15
  // there the burn addresses it hands out (`writePosBlock`), for every device of the owner to find.
15
16
  //
@@ -24,6 +25,7 @@ export {
24
25
  addressInbox,
25
26
  codeKey,
26
27
  decodeCode,
28
+ burnKey,
27
29
  encodeCode,
28
30
  posKey,
29
31
  type BurnBlock,
@@ -76,7 +78,6 @@ export {
76
78
  export {
77
79
  REGISTER_POW_BITS,
78
80
  actionsDigest,
79
- auditMessage,
80
81
  powOk,
81
82
  registerDigest,
82
83
  registerMessage,
package/src/wire.ts CHANGED
@@ -39,21 +39,6 @@ export function registerMessage(canister: Principal, r: Registration): string {
39
39
  );
40
40
  }
41
41
 
42
- /** What the auditor signs (EIP-191) to receive the key to the escrow of `target`'s registration with `notifyKey`. */
43
- export function auditMessage(
44
- canister: Principal,
45
- target: Uint8Array,
46
- notifyKey: Uint8Array,
47
- transportPublicKey: Uint8Array,
48
- expiryNs: bigint,
49
- ): string {
50
- return (
51
- `zERC20 storage audit request\ncanister: ${canister.toText()}\ntarget: 0x${hex(target)}\n` +
52
- `notify_key: 0x${hex(notifyKey)}\ntransport_public_key: 0x${hex(transportPublicKey)}\nexpiry_ns: ${expiryNs}\n` +
53
- 'tag: zerc20/storage/audit/v1'
54
- );
55
- }
56
-
57
42
  export function registerDigest(r: Registration): Uint8Array {
58
43
  return taggedHash(REGISTRATION_TAG, [r.address, r.public_key, r.notify_key, r.escrow, u64be(r.expiry_ns)]);
59
44
  }