@powerhousedao/connect 5.1.0-staging.0 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/AddDriveModal-_XSf2ZlN.js +1 -0
- package/dist/assets/ClearStorageModal-CbfJTlAo.js +1 -0
- package/dist/assets/CookiesPolicyModal-DTRuUeM_.js +1 -0
- package/dist/assets/CreateDocumentModal-DUTbfZYr.js +1 -0
- package/dist/assets/{DebugSettingsModal-BLV4d9N1.js → DebugSettingsModal-CooFY-Go.js} +1 -1
- package/dist/assets/{DeleteDriveModal-CQq-0aWd.js → DeleteDriveModal-BOdu1bg5.js} +1 -1
- package/dist/assets/DeleteItemModal-D8MlQS3W.js +1 -0
- package/dist/assets/DisclaimerModal-RBBaiKyO.js +1 -0
- package/dist/assets/DriveSettingsModal-BHBZfzaY.js +1 -0
- package/dist/assets/{ExportDocumentWithErrorsModal-CPfizBgB.js → ExportDocumentWithErrorsModal-BzgGSmxg.js} +1 -1
- package/dist/assets/SettingsModal-BXDXscnR.js +1 -0
- package/dist/assets/UpgradeDriveModal-15TBzq11.js +1 -0
- package/dist/assets/{design_system-pnKFY6jM.js → design_system-DGYPpUGa.js} +1 -1
- package/dist/assets/design_system_connect-Vb8XBnLs.js +45 -0
- package/dist/assets/design_system_ui-Dnwc_Xm9.js +1 -0
- package/dist/assets/{document_drive-CVkeqJ3l.js → document_drive-BEIKnuGM.js} +2 -2
- package/dist/assets/{document_engineering-BAszqzBd.js → document_engineering-B49PhCDR.js} +1 -1
- package/dist/assets/{document_model-LXEZCDPq.js → document_model-DXcLJEjZ.js} +1 -1
- package/dist/assets/{document_model_editor-D5oPro82.js → document_model_editor-lmHQ6HZy.js} +4 -4
- package/dist/assets/{drive_explorer-C6clT2Df.js → drive_explorer-d0kn77Nx.js} +2 -2
- package/dist/assets/{graphql-editor-C6f63OmN.js → graphql-editor-CSkqTexL.js} +2 -2
- package/dist/assets/{hooks-BySGfjQp.js → hooks-D4Uas2SG.js} +1 -1
- package/dist/assets/index-Br7E7qjt.css +1 -0
- package/dist/assets/index-CK2Jk_ho.js +18 -0
- package/dist/assets/json-editor-CQKAVxat.js +1 -0
- package/dist/assets/reactor_browser-BGn_P-dn.js +25 -0
- package/dist/assets/state-schemas-36mF-wEI.js +2 -0
- package/dist/index.html +10 -10
- package/heroku/Dockerfile +1 -4
- package/lib/package.copy.json +2 -7
- package/lib/src/components/app-skeleton.js +1 -1
- package/lib/src/components/app-skeleton.js.map +1 -1
- package/lib/src/components/root.js +1 -1
- package/lib/src/components/root.js.map +1 -1
- package/lib/src/feature-flags.d.ts +3 -17
- package/lib/src/feature-flags.d.ts.map +1 -1
- package/lib/src/feature-flags.js +3 -32
- package/lib/src/feature-flags.js.map +1 -1
- package/lib/src/pages/demo/atlas-import.js +2 -2
- package/lib/src/pages/demo/atlas-import.js.map +1 -1
- package/lib/src/store/reactor.d.ts.map +1 -1
- package/lib/src/store/reactor.js +30 -33
- package/lib/src/store/reactor.js.map +1 -1
- package/lib/src/utils/reactor.d.ts +0 -7
- package/lib/src/utils/reactor.d.ts.map +1 -1
- package/lib/src/utils/reactor.js +2 -30
- package/lib/src/utils/reactor.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/nginx.conf +0 -7
- package/package.copy.json +2 -7
- package/package.json +10 -15
- package/dist/assets/AddDriveModal-CGnuKCkz.js +0 -1
- package/dist/assets/ClearStorageModal-tHn6sdVv.js +0 -1
- package/dist/assets/CookiesPolicyModal-D5y1O9wD.js +0 -1
- package/dist/assets/CreateDocumentModal-DU4C2Y6P.js +0 -1
- package/dist/assets/DeleteItemModal-JV0AvuwF.js +0 -1
- package/dist/assets/DisclaimerModal-DQZyl_zf.js +0 -1
- package/dist/assets/DriveSettingsModal-yXsOiCLy.js +0 -1
- package/dist/assets/SettingsModal-GeNqOEFN.js +0 -1
- package/dist/assets/UpgradeDriveModal-BCRmp5F4.js +0 -1
- package/dist/assets/design_system_connect-BrlN-7x3.js +0 -104
- package/dist/assets/design_system_ui-Cz-kMJRJ.js +0 -1
- package/dist/assets/index-BYfBva47.js +0 -20
- package/dist/assets/index-XUlAOLkX.css +0 -1
- package/dist/assets/json-editor-D27WLv4C.js +0 -1
- package/dist/assets/nodefs-AYr2EwM_.js +0 -1
- package/dist/assets/opfs-ahp-rEGVoJkP.js +0 -3
- package/dist/assets/postgres-CkP7QCDB.data +0 -0
- package/dist/assets/postgres-CyuUVpXN.wasm +0 -0
- package/dist/assets/reactor_browser-D4maXKS-.js +0 -25
- package/dist/assets/state-schemas-DGMOULa-.js +0 -2
- package/lib/src/utils/signer.d.ts +0 -18
- package/lib/src/utils/signer.d.ts.map +0 -1
- package/lib/src/utils/signer.js +0 -215
- package/lib/src/utils/signer.js.map +0 -1
- package/lib/test/utils/signer.test.d.ts +0 -2
- package/lib/test/utils/signer.test.d.ts.map +0 -1
- package/lib/test/utils/signer.test.js +0 -319
- package/lib/test/utils/signer.test.js.map +0 -1
- package/lib/vitest.config.d.ts +0 -3
- package/lib/vitest.config.d.ts.map +0 -1
- package/lib/vitest.config.js +0 -8
- package/lib/vitest.config.js.map +0 -1
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/graphql-editor-C6f63OmN.js","assets/document_model_editor-D5oPro82.js","assets/graphql-BS4Brs_E.js","assets/drive_explorer-C6clT2Df.js","assets/sentry_react-cODD7zWc.js","assets/react-DQSxOgtG.js","assets/sentry_browser-B4YoBIIG.js","assets/react/jsx-runtime-DldvXD6N.js","assets/document_model-LXEZCDPq.js","assets/zod-C6yxFxyo.js","assets/design_system-pnKFY6jM.js","assets/tailwind_merge-Dr4f9Rms.js","assets/reactor_browser-D4maXKS-.js","assets/document_drive-CVkeqJ3l.js","assets/config-CU-aFfVJ.js","assets/react-dom-D6zQJsh6.js","assets/design_system_connect-BrlN-7x3.js","assets/design_system_ui-Cz-kMJRJ.js","assets/react-dom/client-BVPiT_FE.js","assets/hooks-BySGfjQp.js","assets/json-editor-D27WLv4C.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{_ as k}from"./drive_explorer-C6clT2Df.js";import{j as a,h as x,m as M,i as V,k as P,s as y,l as z,n as B,t as A}from"./document_model_editor-D5oPro82.js";import{r as i}from"./sentry_react-cODD7zWc.js";import{a3 as F,a4 as T,a5 as L,a6 as E}from"./design_system_connect-BrlN-7x3.js";import{K as C}from"./graphql-BS4Brs_E.js";import{c as J}from"./design_system-pnKFY6jM.js";import"./react/jsx-runtime-DldvXD6N.js";import"./document_model-LXEZCDPq.js";import"./zod-C6yxFxyo.js";import"./react-DQSxOgtG.js";import"./reactor_browser-D4maXKS-.js";import"./document_drive-CVkeqJ3l.js";import"./config-CU-aFfVJ.js";import"./tailwind_merge-Dr4f9Rms.js";import"./react-dom-D6zQJsh6.js";import"./sentry_browser-B4YoBIIG.js";import"./design_system_ui-Cz-kMJRJ.js";import"./react-dom/client-BVPiT_FE.js";const f=i.forwardRef((e,l)=>{const{className:s,...r}=e;return a.jsx("button",{ref:l,...r,className:x("h-10 whitespace-nowrap rounded-md border border-gray-200 bg-gray-50 px-4 py-2 text-sm font-medium text-gray-800 transition-colors hover:bg-gray-100 hover:text-gray-900 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",s)})}),Z=F,D=i.forwardRef(({className:e,...l},s)=>a.jsx(T,{ref:s,className:x("flex items-center justify-center rounded-xl bg-slate-50 p-1 shadow-[inset_0px_0px_2px_rgba(255,255,255,0.50)]",e),...l}));D.displayName=T.displayName;const b=i.forwardRef(({className:e,...l},s)=>a.jsx(L,{ref:s,className:x("flex w-full items-center justify-center whitespace-nowrap rounded-lg p-1 text-sm text-gray-500 transition-all disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-gray-50 data-[state=active]:text-gray-800 data-[state=active]:shadow-[0px_16px_16px_-4px_rgba(0,0,0,0.10)]",e),...l}));b.displayName=L.displayName;const g=i.forwardRef(({className:e,...l},s)=>a.jsx(E,{ref:s,className:x("",e),...l}));g.displayName=E.displayName;const _=i.lazy(()=>k(()=>import("./graphql-editor-C6f63OmN.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19]))),G=i.lazy(()=>k(()=>import("./json-editor-D27WLv4C.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19])));function S({modelName:e,stateSchema:l,initialValue:s,setStateSchema:r,setInitialState:c,scope:t}){const n=V(),[d,h]=i.useState(!1),p=i.useCallback(o=>P(o,e,t),[e,t]),m=i.useCallback(()=>{h(o=>!o)},[]),I=i.useCallback(o=>r(o,t),[r,t]),O=i.useCallback(o=>c(o,t),[c,t]),R=i.useCallback(()=>{const o=s||"{}",j=y(n);if(!j)return;const v=y(l);if(!v)return;const N=z(e,t);if(!N)return;const u=v.definitions.find(w=>w.kind===C.OBJECT_TYPE_DEFINITION&&w.name.value===N);if(!u||u.kind!==C.OBJECT_TYPE_DEFINITION)return;const H=B({sharedSchemaDocumentNode:j,stateTypeDefinitionNode:u,existingValue:o});c(H,t)},[n,s,c,t]);return a.jsxs("div",{className:"grid grid-cols-2 gap-4",children:[a.jsxs("div",{children:[a.jsxs("h3",{className:"mb-2 text-lg capitalize",children:[t," state schema *"]}),a.jsxs(f,{onClick:m,className:"mb-2 flex w-fit items-center gap-2",children:[d?"Hide":"Show"," standard library",a.jsx("svg",{className:J("inline-block transition-transform",d?"rotate-180":"rotate-0"),xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",children:a.jsx("path",{d:"M11.9883 6.01172C11.4363 6.01172 10.9883 6.45972 10.9883 7.01172V13.0117H6.98828L11.9883 18.0117L16.9883 13.0117H12.9883V7.01172C12.9883 6.45972 12.5403 6.01172 11.9883 6.01172Z",fill:"black"})})]}),d&&a.jsx(_,{doc:A,readonly:!0}),a.jsx(_,{doc:l,updateDocumentInModel:I,customLinter:p})]}),a.jsxs("div",{children:[a.jsxs("div",{className:"flex flex-col items-end",children:[a.jsxs("h3",{className:"mb-2 text-right text-lg capitalize",children:[t," state initial value *"]}),a.jsxs(f,{onClick:R,className:"mb-2 flex w-fit items-center gap-2",children:["Sync with schema"," ",a.jsx("svg",{className:"inline-block",xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:a.jsx("path",{d:"M8.00521 1.99219C6.63588 1.99219 5.32788 2.45152 4.27588 3.28419C3.98721 3.51219 3.94321 3.93285 4.17188 4.22151C4.40054 4.51018 4.82055 4.55418 5.10921 4.32552C5.92721 3.67819 6.93921 3.32552 8.00521 3.32552C10.5825 3.32552 12.6719 5.41485 12.6719 7.99218H11.3385L13.3385 10.6588L15.3385 7.99218H14.0052C14.0052 4.67818 11.3192 1.99219 8.00521 1.99219ZM2.67188 5.32552L0.671875 7.99218H2.00521C2.00521 11.3062 4.69121 13.9922 8.00521 13.9922C9.37521 13.9922 10.6825 13.5335 11.7345 12.7002C12.0232 12.4722 12.0672 12.0515 11.8385 11.7628C11.6099 11.4742 11.1899 11.4302 10.9012 11.6588C10.0825 12.3068 9.07188 12.6588 8.00521 12.6588C5.42788 12.6588 3.33854 10.5695 3.33854 7.99218H4.67188L2.67188 5.32552Z",fill:"#343839"})})]})]}),a.jsx(G,{doc:s,updateDocumentInModel:O})]})]})}function da({modelName:e,globalStateSchema:l,localStateSchema:s,globalStateInitialValue:r,localStateInitialValue:c,setStateSchema:t,setInitialState:n,currentScope:d,onScopeChange:h}){const p=i.useCallback(()=>{const m=M(e,"local");t(m,"local"),n("","local")},[e,t,n]);return a.jsxs(Z,{className:"pb-8",activationMode:"manual",value:d,onValueChange:m=>h(m),children:[a.jsx("div",{className:"my-6",children:a.jsxs(D,{className:"mx-auto flex max-w-sm",children:[a.jsx(b,{value:"global",children:"Global"}),a.jsx(b,{value:"local",children:"Local"})]})}),a.jsx(g,{value:"global",tabIndex:-1,children:a.jsx(S,{modelName:e,stateSchema:l,initialValue:r,setStateSchema:t,setInitialState:n,scope:"global"})}),a.jsx(g,{value:"local",tabIndex:-1,children:s?a.jsx(S,{modelName:e,stateSchema:s,initialValue:c,setStateSchema:t,setInitialState:n,scope:"local"}):a.jsxs("div",{className:"",children:[a.jsx("h3",{className:"mb-2 text-lg capitalize",children:"local state schema *"}),a.jsx(f,{onClick:p,children:"Add local state"})]})})]})}export{da as default};
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import type { ISigner, SignatureVerificationHandler } from "@powerhousedao/reactor";
|
|
2
|
-
import type { IConnectCrypto } from "@renown/sdk";
|
|
3
|
-
import type { Action, Signature } from "document-model";
|
|
4
|
-
export declare class ConnectCryptoSigner implements ISigner {
|
|
5
|
-
private readonly connectCrypto;
|
|
6
|
-
constructor(connectCrypto: IConnectCrypto);
|
|
7
|
-
sign(action: Action, abortSignal?: AbortSignal): Promise<Signature>;
|
|
8
|
-
private hashAction;
|
|
9
|
-
private buildSignatureMessage;
|
|
10
|
-
private arrayBufferToHex;
|
|
11
|
-
private arrayBufferToBase64;
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Creates a signature verification handler that verifies signatures using the Web Crypto API.
|
|
15
|
-
* The verification uses ECDSA with P-256 curve and SHA-256 hash, matching the ConnectCrypto signing algorithm.
|
|
16
|
-
*/
|
|
17
|
-
export declare function createSignatureVerifier(): SignatureVerificationHandler;
|
|
18
|
-
//# sourceMappingURL=signer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../../src/utils/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,4BAA4B,EAC7B,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAa,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEnE,qBAAa,mBAAoB,YAAW,OAAO;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAAb,aAAa,EAAE,cAAc;IAEpD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC;YAqC3D,UAAU;IAYxB,OAAO,CAAC,qBAAqB;IAS7B,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,mBAAmB;CAQ5B;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,4BAA4B,CAuCtE"}
|
package/lib/src/utils/signer.js
DELETED
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
export class ConnectCryptoSigner {
|
|
2
|
-
connectCrypto;
|
|
3
|
-
constructor(connectCrypto) {
|
|
4
|
-
this.connectCrypto = connectCrypto;
|
|
5
|
-
}
|
|
6
|
-
async sign(action, abortSignal) {
|
|
7
|
-
if (abortSignal?.aborted) {
|
|
8
|
-
throw new Error("Signing aborted");
|
|
9
|
-
}
|
|
10
|
-
const timestamp = (new Date().getTime() / 1000).toFixed(0);
|
|
11
|
-
const did = await this.connectCrypto.did();
|
|
12
|
-
if (abortSignal?.aborted) {
|
|
13
|
-
throw new Error("Signing aborted");
|
|
14
|
-
}
|
|
15
|
-
const hash = await this.hashAction(action);
|
|
16
|
-
if (abortSignal?.aborted) {
|
|
17
|
-
throw new Error("Signing aborted");
|
|
18
|
-
}
|
|
19
|
-
const prevStateHash = action.context?.prevOpHash ?? "";
|
|
20
|
-
const params = [
|
|
21
|
-
timestamp,
|
|
22
|
-
did,
|
|
23
|
-
hash,
|
|
24
|
-
prevStateHash,
|
|
25
|
-
];
|
|
26
|
-
const message = this.buildSignatureMessage(params);
|
|
27
|
-
const signatureBytes = await this.connectCrypto.sign(message);
|
|
28
|
-
const signatureHex = `0x${this.arrayBufferToHex(signatureBytes)}`;
|
|
29
|
-
if (abortSignal?.aborted) {
|
|
30
|
-
throw new Error("Signing aborted");
|
|
31
|
-
}
|
|
32
|
-
return [...params, signatureHex];
|
|
33
|
-
}
|
|
34
|
-
async hashAction(action) {
|
|
35
|
-
const payload = [
|
|
36
|
-
action.scope,
|
|
37
|
-
action.type,
|
|
38
|
-
JSON.stringify(action.input),
|
|
39
|
-
].join("");
|
|
40
|
-
const encoder = new TextEncoder();
|
|
41
|
-
const data = encoder.encode(payload);
|
|
42
|
-
const hashBuffer = await crypto.subtle.digest("SHA-256", data);
|
|
43
|
-
return this.arrayBufferToBase64(hashBuffer);
|
|
44
|
-
}
|
|
45
|
-
buildSignatureMessage(params) {
|
|
46
|
-
const message = params.join("");
|
|
47
|
-
const prefix = "\x19Signed Operation:\n" + message.length.toString();
|
|
48
|
-
const encoder = new TextEncoder();
|
|
49
|
-
return encoder.encode(prefix + message);
|
|
50
|
-
}
|
|
51
|
-
arrayBufferToHex(buffer) {
|
|
52
|
-
const bytes = buffer instanceof Uint8Array ? buffer : new Uint8Array(buffer);
|
|
53
|
-
return Array.from(bytes)
|
|
54
|
-
.map((byte) => byte.toString(16).padStart(2, "0"))
|
|
55
|
-
.join("");
|
|
56
|
-
}
|
|
57
|
-
arrayBufferToBase64(buffer) {
|
|
58
|
-
const bytes = new Uint8Array(buffer);
|
|
59
|
-
let binary = "";
|
|
60
|
-
for (let i = 0; i < bytes.length; i++) {
|
|
61
|
-
binary += String.fromCharCode(bytes[i]);
|
|
62
|
-
}
|
|
63
|
-
return btoa(binary);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Creates a signature verification handler that verifies signatures using the Web Crypto API.
|
|
68
|
-
* The verification uses ECDSA with P-256 curve and SHA-256 hash, matching the ConnectCrypto signing algorithm.
|
|
69
|
-
*/
|
|
70
|
-
export function createSignatureVerifier() {
|
|
71
|
-
return async (operation, publicKey) => {
|
|
72
|
-
const signer = operation.action.context?.signer;
|
|
73
|
-
if (!signer) {
|
|
74
|
-
return true;
|
|
75
|
-
}
|
|
76
|
-
const signatures = signer.signatures;
|
|
77
|
-
if (signatures.length === 0) {
|
|
78
|
-
return false;
|
|
79
|
-
}
|
|
80
|
-
const signature = signatures[signatures.length - 1];
|
|
81
|
-
const [timestamp, signerKey, hash, prevStateHash, signatureHex] = signature;
|
|
82
|
-
if (signerKey !== publicKey) {
|
|
83
|
-
return false;
|
|
84
|
-
}
|
|
85
|
-
const params = [
|
|
86
|
-
timestamp,
|
|
87
|
-
signerKey,
|
|
88
|
-
hash,
|
|
89
|
-
prevStateHash,
|
|
90
|
-
];
|
|
91
|
-
const message = buildSignatureMessage(params);
|
|
92
|
-
const signatureBytes = hexToUint8Array(signatureHex);
|
|
93
|
-
const cryptoKey = await importPublicKey(publicKey);
|
|
94
|
-
const isValid = await crypto.subtle.verify({ name: "ECDSA", hash: "SHA-256" }, cryptoKey, signatureBytes.buffer, message.buffer);
|
|
95
|
-
return isValid;
|
|
96
|
-
};
|
|
97
|
-
}
|
|
98
|
-
function buildSignatureMessage(params) {
|
|
99
|
-
const message = params.join("");
|
|
100
|
-
const prefix = "\x19Signed Operation:\n" + message.length.toString();
|
|
101
|
-
const encoder = new TextEncoder();
|
|
102
|
-
return encoder.encode(prefix + message);
|
|
103
|
-
}
|
|
104
|
-
function hexToUint8Array(hex) {
|
|
105
|
-
const cleanHex = hex.startsWith("0x") ? hex.slice(2) : hex;
|
|
106
|
-
const bytes = new Uint8Array(cleanHex.length / 2);
|
|
107
|
-
for (let i = 0; i < cleanHex.length; i += 2) {
|
|
108
|
-
bytes[i / 2] = parseInt(cleanHex.substring(i, i + 2), 16);
|
|
109
|
-
}
|
|
110
|
-
return bytes;
|
|
111
|
-
}
|
|
112
|
-
async function importPublicKey(did) {
|
|
113
|
-
const keyData = extractKeyFromDid(did);
|
|
114
|
-
return crypto.subtle.importKey("raw", keyData.buffer, { name: "ECDSA", namedCurve: "P-256" }, true, ["verify"]);
|
|
115
|
-
}
|
|
116
|
-
function extractKeyFromDid(did) {
|
|
117
|
-
const parts = did.split(":");
|
|
118
|
-
if (parts.length < 3 || parts[0] !== "did" || parts[1] !== "key") {
|
|
119
|
-
throw new Error(`Invalid DID format: ${did}`);
|
|
120
|
-
}
|
|
121
|
-
const multibaseKey = parts[2];
|
|
122
|
-
if (!multibaseKey.startsWith("z")) {
|
|
123
|
-
throw new Error(`Unsupported multibase encoding: ${multibaseKey[0]}`);
|
|
124
|
-
}
|
|
125
|
-
const decoded = base58Decode(multibaseKey.slice(1));
|
|
126
|
-
if (decoded[0] !== 0x80 || decoded[1] !== 0x24) {
|
|
127
|
-
throw new Error("Not a P-256 public key multicodec");
|
|
128
|
-
}
|
|
129
|
-
const compressedKey = decoded.slice(2);
|
|
130
|
-
return decompressP256PublicKey(compressedKey);
|
|
131
|
-
}
|
|
132
|
-
function base58Decode(input) {
|
|
133
|
-
const ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";
|
|
134
|
-
const ALPHABET_MAP = new Map();
|
|
135
|
-
for (let i = 0; i < ALPHABET.length; i++) {
|
|
136
|
-
ALPHABET_MAP.set(ALPHABET[i], i);
|
|
137
|
-
}
|
|
138
|
-
if (input.length === 0) {
|
|
139
|
-
return new Uint8Array(0);
|
|
140
|
-
}
|
|
141
|
-
const bytes = [0];
|
|
142
|
-
for (const char of input) {
|
|
143
|
-
const value = ALPHABET_MAP.get(char);
|
|
144
|
-
if (value === undefined) {
|
|
145
|
-
throw new Error(`Invalid base58 character: ${char}`);
|
|
146
|
-
}
|
|
147
|
-
let carry = value;
|
|
148
|
-
for (let j = 0; j < bytes.length; j++) {
|
|
149
|
-
carry += bytes[j] * 58;
|
|
150
|
-
bytes[j] = carry & 0xff;
|
|
151
|
-
carry >>= 8;
|
|
152
|
-
}
|
|
153
|
-
while (carry > 0) {
|
|
154
|
-
bytes.push(carry & 0xff);
|
|
155
|
-
carry >>= 8;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
for (const char of input) {
|
|
159
|
-
if (char !== "1")
|
|
160
|
-
break;
|
|
161
|
-
bytes.push(0);
|
|
162
|
-
}
|
|
163
|
-
return new Uint8Array(bytes.reverse());
|
|
164
|
-
}
|
|
165
|
-
function decompressP256PublicKey(compressed) {
|
|
166
|
-
if (compressed.length !== 33) {
|
|
167
|
-
throw new Error(`Invalid compressed key length: ${compressed.length}`);
|
|
168
|
-
}
|
|
169
|
-
const prefix = compressed[0];
|
|
170
|
-
if (prefix !== 0x02 && prefix !== 0x03) {
|
|
171
|
-
throw new Error(`Invalid compression prefix: ${prefix}`);
|
|
172
|
-
}
|
|
173
|
-
const p = BigInt("0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff");
|
|
174
|
-
const a = BigInt("0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc");
|
|
175
|
-
const b = BigInt("0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b");
|
|
176
|
-
let x = BigInt(0);
|
|
177
|
-
for (let i = 1; i < compressed.length; i++) {
|
|
178
|
-
x = (x << BigInt(8)) | BigInt(compressed[i]);
|
|
179
|
-
}
|
|
180
|
-
const ySquared = (modPow(x, BigInt(3), p) + a * x + b) % p;
|
|
181
|
-
let y = modPow(ySquared, (p + BigInt(1)) / BigInt(4), p);
|
|
182
|
-
const isYEven = y % BigInt(2) === BigInt(0);
|
|
183
|
-
const shouldBeEven = prefix === 0x02;
|
|
184
|
-
if (isYEven !== shouldBeEven) {
|
|
185
|
-
y = p - y;
|
|
186
|
-
}
|
|
187
|
-
const uncompressed = new Uint8Array(65);
|
|
188
|
-
uncompressed[0] = 0x04;
|
|
189
|
-
const xBytes = bigIntToBytes(x, 32);
|
|
190
|
-
const yBytes = bigIntToBytes(y, 32);
|
|
191
|
-
uncompressed.set(xBytes, 1);
|
|
192
|
-
uncompressed.set(yBytes, 33);
|
|
193
|
-
return uncompressed;
|
|
194
|
-
}
|
|
195
|
-
function modPow(base, exp, mod) {
|
|
196
|
-
let result = BigInt(1);
|
|
197
|
-
base = base % mod;
|
|
198
|
-
while (exp > BigInt(0)) {
|
|
199
|
-
if (exp % BigInt(2) === BigInt(1)) {
|
|
200
|
-
result = (result * base) % mod;
|
|
201
|
-
}
|
|
202
|
-
exp = exp >> BigInt(1);
|
|
203
|
-
base = (base * base) % mod;
|
|
204
|
-
}
|
|
205
|
-
return result;
|
|
206
|
-
}
|
|
207
|
-
function bigIntToBytes(n, length) {
|
|
208
|
-
const bytes = new Uint8Array(length);
|
|
209
|
-
for (let i = length - 1; i >= 0; i--) {
|
|
210
|
-
bytes[i] = Number(n & BigInt(0xff));
|
|
211
|
-
n = n >> BigInt(8);
|
|
212
|
-
}
|
|
213
|
-
return bytes;
|
|
214
|
-
}
|
|
215
|
-
//# sourceMappingURL=signer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../../src/utils/signer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"signer.test.d.ts","sourceRoot":"","sources":["../../../test/utils/signer.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,319 +0,0 @@
|
|
|
1
|
-
import { ConnectCrypto, } from "@renown/sdk";
|
|
2
|
-
import { beforeEach, describe, expect, it } from "vitest";
|
|
3
|
-
import { ConnectCryptoSigner, createSignatureVerifier, } from "../../src/utils/signer.js";
|
|
4
|
-
class InMemoryKeyStorage {
|
|
5
|
-
keyPair;
|
|
6
|
-
loadKeyPair() {
|
|
7
|
-
return Promise.resolve(this.keyPair);
|
|
8
|
-
}
|
|
9
|
-
saveKeyPair(keyPair) {
|
|
10
|
-
this.keyPair = keyPair;
|
|
11
|
-
return Promise.resolve();
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
describe("ConnectCryptoSigner and Verifier Integration", () => {
|
|
15
|
-
let keyStorage;
|
|
16
|
-
let connectCrypto;
|
|
17
|
-
let signer;
|
|
18
|
-
let verifier;
|
|
19
|
-
beforeEach(async () => {
|
|
20
|
-
keyStorage = new InMemoryKeyStorage();
|
|
21
|
-
connectCrypto = new ConnectCrypto(keyStorage);
|
|
22
|
-
signer = new ConnectCryptoSigner(connectCrypto);
|
|
23
|
-
verifier = createSignatureVerifier();
|
|
24
|
-
await connectCrypto.did();
|
|
25
|
-
});
|
|
26
|
-
it("signs an action and produces a valid signature format", async () => {
|
|
27
|
-
const action = {
|
|
28
|
-
id: "action-1",
|
|
29
|
-
type: "TEST_ACTION",
|
|
30
|
-
timestampUtcMs: new Date().toISOString(),
|
|
31
|
-
input: { foo: "bar" },
|
|
32
|
-
scope: "global",
|
|
33
|
-
};
|
|
34
|
-
const signature = await signer.sign(action);
|
|
35
|
-
expect(signature).toHaveLength(5);
|
|
36
|
-
const [timestamp, signerKey, hash, prevStateHash, signatureHex] = signature;
|
|
37
|
-
expect(timestamp).toMatch(/^\d+$/);
|
|
38
|
-
expect(signerKey.startsWith("did:key:z")).toBe(true);
|
|
39
|
-
expect(hash).toBeDefined();
|
|
40
|
-
expect(prevStateHash).toBe("");
|
|
41
|
-
expect(signatureHex.startsWith("0x")).toBe(true);
|
|
42
|
-
expect(signatureHex.length).toBeGreaterThan(2);
|
|
43
|
-
});
|
|
44
|
-
it("verifies a signature created by ConnectCryptoSigner", async () => {
|
|
45
|
-
const did = await connectCrypto.did();
|
|
46
|
-
const action = {
|
|
47
|
-
id: "action-1",
|
|
48
|
-
type: "TEST_ACTION",
|
|
49
|
-
timestampUtcMs: new Date().toISOString(),
|
|
50
|
-
input: { foo: "bar" },
|
|
51
|
-
scope: "global",
|
|
52
|
-
};
|
|
53
|
-
const signature = await signer.sign(action);
|
|
54
|
-
const signedAction = {
|
|
55
|
-
...action,
|
|
56
|
-
context: {
|
|
57
|
-
signer: {
|
|
58
|
-
user: { address: did, chainId: 1, networkId: "eip155" },
|
|
59
|
-
app: { name: "test-app", key: did },
|
|
60
|
-
signatures: [signature],
|
|
61
|
-
},
|
|
62
|
-
},
|
|
63
|
-
};
|
|
64
|
-
const operation = {
|
|
65
|
-
index: 0,
|
|
66
|
-
timestampUtcMs: action.timestampUtcMs,
|
|
67
|
-
hash: "",
|
|
68
|
-
skip: 0,
|
|
69
|
-
action: signedAction,
|
|
70
|
-
};
|
|
71
|
-
const isValid = await verifier(operation, did);
|
|
72
|
-
expect(isValid).toBe(true);
|
|
73
|
-
});
|
|
74
|
-
it("rejects a tampered signature", async () => {
|
|
75
|
-
const did = await connectCrypto.did();
|
|
76
|
-
const action = {
|
|
77
|
-
id: "action-1",
|
|
78
|
-
type: "TEST_ACTION",
|
|
79
|
-
timestampUtcMs: new Date().toISOString(),
|
|
80
|
-
input: { foo: "bar" },
|
|
81
|
-
scope: "global",
|
|
82
|
-
};
|
|
83
|
-
const signature = await signer.sign(action);
|
|
84
|
-
const [timestamp, signerKey, hash, prevStateHash] = signature;
|
|
85
|
-
const tamperedSignature = [
|
|
86
|
-
timestamp,
|
|
87
|
-
signerKey,
|
|
88
|
-
hash,
|
|
89
|
-
prevStateHash,
|
|
90
|
-
"0xdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef",
|
|
91
|
-
];
|
|
92
|
-
const signedAction = {
|
|
93
|
-
...action,
|
|
94
|
-
context: {
|
|
95
|
-
signer: {
|
|
96
|
-
user: { address: did, chainId: 1, networkId: "eip155" },
|
|
97
|
-
app: { name: "test-app", key: did },
|
|
98
|
-
signatures: [tamperedSignature],
|
|
99
|
-
},
|
|
100
|
-
},
|
|
101
|
-
};
|
|
102
|
-
const operation = {
|
|
103
|
-
index: 0,
|
|
104
|
-
timestampUtcMs: action.timestampUtcMs,
|
|
105
|
-
hash: "",
|
|
106
|
-
skip: 0,
|
|
107
|
-
action: signedAction,
|
|
108
|
-
};
|
|
109
|
-
const isValid = await verifier(operation, did);
|
|
110
|
-
expect(isValid).toBe(false);
|
|
111
|
-
});
|
|
112
|
-
it("rejects verification when public key does not match", async () => {
|
|
113
|
-
const did = await connectCrypto.did();
|
|
114
|
-
const action = {
|
|
115
|
-
id: "action-1",
|
|
116
|
-
type: "TEST_ACTION",
|
|
117
|
-
timestampUtcMs: new Date().toISOString(),
|
|
118
|
-
input: { foo: "bar" },
|
|
119
|
-
scope: "global",
|
|
120
|
-
};
|
|
121
|
-
const signature = await signer.sign(action);
|
|
122
|
-
const signedAction = {
|
|
123
|
-
...action,
|
|
124
|
-
context: {
|
|
125
|
-
signer: {
|
|
126
|
-
user: { address: did, chainId: 1, networkId: "eip155" },
|
|
127
|
-
app: { name: "test-app", key: did },
|
|
128
|
-
signatures: [signature],
|
|
129
|
-
},
|
|
130
|
-
},
|
|
131
|
-
};
|
|
132
|
-
const operation = {
|
|
133
|
-
index: 0,
|
|
134
|
-
timestampUtcMs: action.timestampUtcMs,
|
|
135
|
-
hash: "",
|
|
136
|
-
skip: 0,
|
|
137
|
-
action: signedAction,
|
|
138
|
-
};
|
|
139
|
-
const wrongDid = "did:key:zDnaerDaTF5BXEavCrfRZEk316dpbLsfPDZ3WJ5hRTPFU2169";
|
|
140
|
-
const isValid = await verifier(operation, wrongDid);
|
|
141
|
-
expect(isValid).toBe(false);
|
|
142
|
-
});
|
|
143
|
-
it("returns true for operations without signer context", async () => {
|
|
144
|
-
const action = {
|
|
145
|
-
id: "action-1",
|
|
146
|
-
type: "TEST_ACTION",
|
|
147
|
-
timestampUtcMs: new Date().toISOString(),
|
|
148
|
-
input: { foo: "bar" },
|
|
149
|
-
scope: "global",
|
|
150
|
-
};
|
|
151
|
-
const operation = {
|
|
152
|
-
index: 0,
|
|
153
|
-
timestampUtcMs: action.timestampUtcMs,
|
|
154
|
-
hash: "",
|
|
155
|
-
skip: 0,
|
|
156
|
-
action: action,
|
|
157
|
-
};
|
|
158
|
-
const isValid = await verifier(operation, "any-key");
|
|
159
|
-
expect(isValid).toBe(true);
|
|
160
|
-
});
|
|
161
|
-
it("returns false for operations with signer but no signatures", async () => {
|
|
162
|
-
const did = await connectCrypto.did();
|
|
163
|
-
const action = {
|
|
164
|
-
id: "action-1",
|
|
165
|
-
type: "TEST_ACTION",
|
|
166
|
-
timestampUtcMs: new Date().toISOString(),
|
|
167
|
-
input: { foo: "bar" },
|
|
168
|
-
scope: "global",
|
|
169
|
-
context: {
|
|
170
|
-
signer: {
|
|
171
|
-
user: { address: did, chainId: 1, networkId: "eip155" },
|
|
172
|
-
app: { name: "test-app", key: did },
|
|
173
|
-
signatures: [],
|
|
174
|
-
},
|
|
175
|
-
},
|
|
176
|
-
};
|
|
177
|
-
const operation = {
|
|
178
|
-
index: 0,
|
|
179
|
-
timestampUtcMs: action.timestampUtcMs,
|
|
180
|
-
hash: "",
|
|
181
|
-
skip: 0,
|
|
182
|
-
action: action,
|
|
183
|
-
};
|
|
184
|
-
const isValid = await verifier(operation, did);
|
|
185
|
-
expect(isValid).toBe(false);
|
|
186
|
-
});
|
|
187
|
-
it("handles actions with prevOpHash in context", async () => {
|
|
188
|
-
const did = await connectCrypto.did();
|
|
189
|
-
const action = {
|
|
190
|
-
id: "action-1",
|
|
191
|
-
type: "TEST_ACTION",
|
|
192
|
-
timestampUtcMs: new Date().toISOString(),
|
|
193
|
-
input: { foo: "bar" },
|
|
194
|
-
scope: "global",
|
|
195
|
-
context: {
|
|
196
|
-
prevOpHash: "abc123",
|
|
197
|
-
},
|
|
198
|
-
};
|
|
199
|
-
const signature = await signer.sign(action);
|
|
200
|
-
const signedAction = {
|
|
201
|
-
...action,
|
|
202
|
-
context: {
|
|
203
|
-
...action.context,
|
|
204
|
-
signer: {
|
|
205
|
-
user: { address: did, chainId: 1, networkId: "eip155" },
|
|
206
|
-
app: { name: "test-app", key: did },
|
|
207
|
-
signatures: [signature],
|
|
208
|
-
},
|
|
209
|
-
},
|
|
210
|
-
};
|
|
211
|
-
const operation = {
|
|
212
|
-
index: 0,
|
|
213
|
-
timestampUtcMs: action.timestampUtcMs,
|
|
214
|
-
hash: "",
|
|
215
|
-
skip: 0,
|
|
216
|
-
action: signedAction,
|
|
217
|
-
};
|
|
218
|
-
const isValid = await verifier(operation, did);
|
|
219
|
-
expect(isValid).toBe(true);
|
|
220
|
-
expect(signature[3]).toBe("abc123");
|
|
221
|
-
});
|
|
222
|
-
it("handles complex action inputs", async () => {
|
|
223
|
-
const did = await connectCrypto.did();
|
|
224
|
-
const action = {
|
|
225
|
-
id: "action-1",
|
|
226
|
-
type: "COMPLEX_ACTION",
|
|
227
|
-
timestampUtcMs: new Date().toISOString(),
|
|
228
|
-
input: {
|
|
229
|
-
nested: {
|
|
230
|
-
deeply: {
|
|
231
|
-
value: [1, 2, 3],
|
|
232
|
-
unicode: "\u00e9\u00e0\u00f9",
|
|
233
|
-
},
|
|
234
|
-
},
|
|
235
|
-
array: ["a", "b", "c"],
|
|
236
|
-
nullValue: null,
|
|
237
|
-
booleans: { yes: true, no: false },
|
|
238
|
-
},
|
|
239
|
-
scope: "document",
|
|
240
|
-
};
|
|
241
|
-
const signature = await signer.sign(action);
|
|
242
|
-
const signedAction = {
|
|
243
|
-
...action,
|
|
244
|
-
context: {
|
|
245
|
-
signer: {
|
|
246
|
-
user: { address: did, chainId: 1, networkId: "eip155" },
|
|
247
|
-
app: { name: "test-app", key: did },
|
|
248
|
-
signatures: [signature],
|
|
249
|
-
},
|
|
250
|
-
},
|
|
251
|
-
};
|
|
252
|
-
const operation = {
|
|
253
|
-
index: 0,
|
|
254
|
-
timestampUtcMs: action.timestampUtcMs,
|
|
255
|
-
hash: "",
|
|
256
|
-
skip: 0,
|
|
257
|
-
action: signedAction,
|
|
258
|
-
};
|
|
259
|
-
const isValid = await verifier(operation, did);
|
|
260
|
-
expect(isValid).toBe(true);
|
|
261
|
-
});
|
|
262
|
-
it("produces different signatures for different actions", async () => {
|
|
263
|
-
const action1 = {
|
|
264
|
-
id: "action-1",
|
|
265
|
-
type: "TEST_ACTION",
|
|
266
|
-
timestampUtcMs: new Date().toISOString(),
|
|
267
|
-
input: { value: 1 },
|
|
268
|
-
scope: "global",
|
|
269
|
-
};
|
|
270
|
-
const action2 = {
|
|
271
|
-
id: "action-2",
|
|
272
|
-
type: "TEST_ACTION",
|
|
273
|
-
timestampUtcMs: new Date().toISOString(),
|
|
274
|
-
input: { value: 2 },
|
|
275
|
-
scope: "global",
|
|
276
|
-
};
|
|
277
|
-
const signature1 = await signer.sign(action1);
|
|
278
|
-
const signature2 = await signer.sign(action2);
|
|
279
|
-
expect(signature1[2]).not.toBe(signature2[2]);
|
|
280
|
-
expect(signature1[4]).not.toBe(signature2[4]);
|
|
281
|
-
});
|
|
282
|
-
it("signatures from different keys fail verification", async () => {
|
|
283
|
-
const did1 = await connectCrypto.did();
|
|
284
|
-
const action = {
|
|
285
|
-
id: "action-1",
|
|
286
|
-
type: "TEST_ACTION",
|
|
287
|
-
timestampUtcMs: new Date().toISOString(),
|
|
288
|
-
input: { foo: "bar" },
|
|
289
|
-
scope: "global",
|
|
290
|
-
};
|
|
291
|
-
const signature = await signer.sign(action);
|
|
292
|
-
const newKeyStorage = new InMemoryKeyStorage();
|
|
293
|
-
const newConnectCrypto = new ConnectCrypto(newKeyStorage);
|
|
294
|
-
const did2 = await newConnectCrypto.did();
|
|
295
|
-
expect(did1).not.toBe(did2);
|
|
296
|
-
const signedAction = {
|
|
297
|
-
...action,
|
|
298
|
-
context: {
|
|
299
|
-
signer: {
|
|
300
|
-
user: { address: did1, chainId: 1, networkId: "eip155" },
|
|
301
|
-
app: { name: "test-app", key: did1 },
|
|
302
|
-
signatures: [signature],
|
|
303
|
-
},
|
|
304
|
-
},
|
|
305
|
-
};
|
|
306
|
-
const operation = {
|
|
307
|
-
index: 0,
|
|
308
|
-
timestampUtcMs: action.timestampUtcMs,
|
|
309
|
-
hash: "",
|
|
310
|
-
skip: 0,
|
|
311
|
-
action: signedAction,
|
|
312
|
-
};
|
|
313
|
-
const isValidWithOriginalKey = await verifier(operation, did1);
|
|
314
|
-
expect(isValidWithOriginalKey).toBe(true);
|
|
315
|
-
const isValidWithDifferentKey = await verifier(operation, did2);
|
|
316
|
-
expect(isValidWithDifferentKey).toBe(false);
|
|
317
|
-
});
|
|
318
|
-
});
|
|
319
|
-
//# sourceMappingURL=signer.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"signer.test.js","sourceRoot":"","sources":["../../../test/utils/signer.test.ts"],"names":[],"mappings":"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"}
|
package/lib/vitest.config.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vitest.config.d.ts","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":";AAEA,wBAKG"}
|
package/lib/vitest.config.js
DELETED
package/lib/vitest.config.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vitest.config.js","sourceRoot":"","sources":["../vitest.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C,eAAe,YAAY,CAAC;IAC1B,IAAI,EAAE;QACJ,OAAO,EAAE,CAAC,mBAAmB,CAAC;QAC9B,OAAO,EAAE,IAAI;KACd;CACF,CAAC,CAAC"}
|