@zerc20/storage-sdk 0.3.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 +7 -5
- package/dist/candid.js +3 -10
- package/dist/candid.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/wire.d.ts +0 -2
- package/dist/wire.js +0 -6
- package/dist/wire.js.map +1 -1
- package/package.json +1 -1
- package/src/candid.ts +6 -15
- package/src/index.ts +0 -1
- package/src/wire.ts +0 -15
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:
|
|
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:
|
|
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']),
|
package/dist/candid.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"candid.js","sourceRoot":"","sources":["../src/candid.ts"],"names":[],"mappings":"AAAA,iGAAiG;AACjG,wCAAwC;
|
|
1
|
+
{"version":3,"file":"candid.js","sourceRoot":"","sources":["../src/candid.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -5,4 +5,4 @@ export { BURN_BLOCK, FR_BE, addressInbox, codeKey, decodeCode, burnKey, encodeCo
|
|
|
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,
|
|
8
|
+
export { REGISTER_POW_BITS, actionsDigest, powOk, registerDigest, registerMessage, requiredPowBits, solvePow, vetkdInput, } from './wire.js';
|
package/dist/index.js
CHANGED
|
@@ -21,5 +21,5 @@ export { BURN_BLOCK, FR_BE, addressInbox, codeKey, decodeCode, burnKey, encodeCo
|
|
|
21
21
|
export { commit, nextPosLane, planBurnBlock, planDeposit, planPayCode, planPosLane, planReceipt, planSelf, planSend, writePosBlock, } from './send.js';
|
|
22
22
|
export { emptyState, exportState, importState, refresh, } from './sync.js';
|
|
23
23
|
export { eip191Signer, lookupRecipient, notifyKey, notifySecret, openEscrow, registeredViewKey, register, verifyRegistration, viewKey, } from './viewKey.js';
|
|
24
|
-
export { REGISTER_POW_BITS, actionsDigest,
|
|
24
|
+
export { REGISTER_POW_BITS, actionsDigest, powOk, registerDigest, registerMessage, requiredPowBits, solvePow, vetkdInput, } from './wire.js';
|
|
25
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,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,
|
|
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":"AAAA,6GAA6G;AAC7G,iHAAiH;AACjH,mCAAmC;AAGnC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEnF,yFAAyF;AACzF,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAC;AAC3B,2FAA2F;AAC3F,MAAM,CAAC,MAAM,aAAa,GAAG,EAAE,CAAC;AAChC,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,CAAC;AACpC,qFAAqF;AACrF,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC;AAC5B,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAC;AAC5B,wCAAwC;AACxC,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AACjC,4CAA4C;AAC5C,MAAM,CAAC,MAAM,UAAU,GAAG,aAAgB,CAAC;AAE3C,iFAAiF;AACjF,MAAM,SAAS,GAA6B,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAErE,+EAA+E;AAC/E,MAAM,gBAAgB,GAAG,gCAAgC,CAAC;AAE1D;kBACkB;AAClB,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,OAAmB,EAAE,SAAqB,EAAc,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAEjH,yDAAyD;AACzD,MAAM,UAAU,eAAe,CAAC,QAAmB,EAAE,CAAe;IAClE,OAAO,CACL,0CAA0C,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI;QAC7F,iBAAiB,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,mBAAmB,GAAG,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI;QAC1E,oBAAoB,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,gBAAgB,CAAC,CAAC,SAAS,UAAU,gBAAgB,EAAE,CACjG,CAAC;AACJ,CAAC;AAED,
|
|
1
|
+
{"version":3,"file":"wire.js","sourceRoot":"","sources":["../src/wire.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
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:
|
|
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:
|
|
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/index.ts
CHANGED
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
|
}
|