@zerodev/wallet-core 0.0.1-alpha.6 → 0.0.1-alpha.8
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 +5 -8
- package/dist/_cjs/actions/auth/authenticateWithOAuth.js +3 -7
- package/dist/_cjs/actions/auth/authenticateWithOAuth.js.map +1 -1
- package/dist/_cjs/actions/auth/getUserEmail.js +16 -0
- package/dist/_cjs/actions/auth/getUserEmail.js.map +1 -0
- package/dist/_cjs/actions/auth/index.js +3 -1
- package/dist/_cjs/actions/auth/index.js.map +1 -1
- package/dist/_cjs/actions/auth/loginWithOTP.js +3 -5
- package/dist/_cjs/actions/auth/loginWithOTP.js.map +1 -1
- package/dist/_cjs/actions/auth/loginWithStamp.js +4 -3
- package/dist/_cjs/actions/auth/loginWithStamp.js.map +1 -1
- package/dist/_cjs/actions/auth/registerWithOTP.js +1 -2
- package/dist/_cjs/actions/auth/registerWithOTP.js.map +1 -1
- package/dist/_cjs/actions/index.js +2 -1
- package/dist/_cjs/actions/index.js.map +1 -1
- package/dist/_cjs/actions/wallet/signRawPayload.js +13 -12
- package/dist/_cjs/actions/wallet/signRawPayload.js.map +1 -1
- package/dist/_cjs/actions/wallet/signTransaction.js +12 -11
- package/dist/_cjs/actions/wallet/signTransaction.js.map +1 -1
- package/dist/_cjs/adapters/viem.js +2 -0
- package/dist/_cjs/adapters/viem.js.map +1 -1
- package/dist/_cjs/client/authProxy.js +31 -0
- package/dist/_cjs/client/authProxy.js.map +1 -0
- package/dist/_cjs/client/decorators/client.js +1 -0
- package/dist/_cjs/client/decorators/client.js.map +1 -1
- package/dist/_cjs/client/index.js +3 -1
- package/dist/_cjs/client/index.js.map +1 -1
- package/dist/_cjs/client/transports/rest.js +3 -1
- package/dist/_cjs/client/transports/rest.js.map +1 -1
- package/dist/_cjs/constants.js +2 -1
- package/dist/_cjs/constants.js.map +1 -1
- package/dist/_cjs/core/createZeroDevWallet.js +22 -16
- package/dist/_cjs/core/createZeroDevWallet.js.map +1 -1
- package/dist/_cjs/index.js +3 -1
- package/dist/_cjs/index.js.map +1 -1
- package/dist/_cjs/utils/buildClientSignature.js +39 -0
- package/dist/_cjs/utils/buildClientSignature.js.map +1 -0
- package/dist/_cjs/utils/derToRawSignature.js +63 -0
- package/dist/_cjs/utils/derToRawSignature.js.map +1 -0
- package/dist/_esm/actions/auth/authenticateWithOAuth.js +8 -10
- package/dist/_esm/actions/auth/authenticateWithOAuth.js.map +1 -1
- package/dist/_esm/actions/auth/getUserEmail.js +29 -0
- package/dist/_esm/actions/auth/getUserEmail.js.map +1 -0
- package/dist/_esm/actions/auth/index.js +1 -0
- package/dist/_esm/actions/auth/index.js.map +1 -1
- package/dist/_esm/actions/auth/loginWithOTP.js +14 -12
- package/dist/_esm/actions/auth/loginWithOTP.js.map +1 -1
- package/dist/_esm/actions/auth/loginWithStamp.js +4 -3
- package/dist/_esm/actions/auth/loginWithStamp.js.map +1 -1
- package/dist/_esm/actions/auth/registerWithOTP.js +5 -6
- package/dist/_esm/actions/auth/registerWithOTP.js.map +1 -1
- package/dist/_esm/actions/index.js +1 -1
- package/dist/_esm/actions/index.js.map +1 -1
- package/dist/_esm/actions/wallet/signRawPayload.js +13 -12
- package/dist/_esm/actions/wallet/signRawPayload.js.map +1 -1
- package/dist/_esm/actions/wallet/signTransaction.js +12 -11
- package/dist/_esm/actions/wallet/signTransaction.js.map +1 -1
- package/dist/_esm/adapters/viem.js +2 -0
- package/dist/_esm/adapters/viem.js.map +1 -1
- package/dist/_esm/client/authProxy.js +41 -0
- package/dist/_esm/client/authProxy.js.map +1 -0
- package/dist/_esm/client/decorators/client.js +2 -1
- package/dist/_esm/client/decorators/client.js.map +1 -1
- package/dist/_esm/client/index.js +1 -0
- package/dist/_esm/client/index.js.map +1 -1
- package/dist/_esm/client/transports/rest.js +3 -1
- package/dist/_esm/client/transports/rest.js.map +1 -1
- package/dist/_esm/constants.js +1 -0
- package/dist/_esm/constants.js.map +1 -1
- package/dist/_esm/core/createZeroDevWallet.js +30 -18
- package/dist/_esm/core/createZeroDevWallet.js.map +1 -1
- package/dist/_esm/index.js +2 -0
- package/dist/_esm/index.js.map +1 -1
- package/dist/_esm/utils/buildClientSignature.js +64 -0
- package/dist/_esm/utils/buildClientSignature.js.map +1 -0
- package/dist/_esm/utils/derToRawSignature.js +89 -0
- package/dist/_esm/utils/derToRawSignature.js.map +1 -0
- package/dist/_types/actions/auth/authenticateWithOAuth.d.ts +6 -8
- package/dist/_types/actions/auth/authenticateWithOAuth.d.ts.map +1 -1
- package/dist/_types/actions/auth/getUserEmail.d.ts +29 -0
- package/dist/_types/actions/auth/getUserEmail.d.ts.map +1 -0
- package/dist/_types/actions/auth/index.d.ts +1 -0
- package/dist/_types/actions/auth/index.d.ts.map +1 -1
- package/dist/_types/actions/auth/loginWithOTP.d.ts +15 -15
- package/dist/_types/actions/auth/loginWithOTP.d.ts.map +1 -1
- package/dist/_types/actions/auth/loginWithStamp.d.ts.map +1 -1
- package/dist/_types/actions/auth/registerWithOTP.d.ts +5 -11
- package/dist/_types/actions/auth/registerWithOTP.d.ts.map +1 -1
- package/dist/_types/actions/index.d.ts +1 -1
- package/dist/_types/actions/index.d.ts.map +1 -1
- package/dist/_types/actions/wallet/signRawPayload.d.ts +2 -0
- package/dist/_types/actions/wallet/signRawPayload.d.ts.map +1 -1
- package/dist/_types/actions/wallet/signTransaction.d.ts +2 -0
- package/dist/_types/actions/wallet/signTransaction.d.ts.map +1 -1
- package/dist/_types/adapters/viem.d.ts.map +1 -1
- package/dist/_types/client/authProxy.d.ts +36 -0
- package/dist/_types/client/authProxy.d.ts.map +1 -0
- package/dist/_types/client/decorators/client.d.ts +5 -1
- package/dist/_types/client/decorators/client.d.ts.map +1 -1
- package/dist/_types/client/index.d.ts +1 -0
- package/dist/_types/client/index.d.ts.map +1 -1
- package/dist/_types/client/transports/rest.d.ts +2 -0
- package/dist/_types/client/transports/rest.d.ts.map +1 -1
- package/dist/_types/constants.d.ts +1 -0
- package/dist/_types/constants.d.ts.map +1 -1
- package/dist/_types/core/createZeroDevWallet.d.ts +0 -3
- package/dist/_types/core/createZeroDevWallet.d.ts.map +1 -1
- package/dist/_types/index.d.ts +1 -0
- package/dist/_types/index.d.ts.map +1 -1
- package/dist/_types/utils/buildClientSignature.d.ts +25 -0
- package/dist/_types/utils/buildClientSignature.d.ts.map +1 -0
- package/dist/_types/utils/derToRawSignature.d.ts +11 -0
- package/dist/_types/utils/derToRawSignature.d.ts.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +3 -2
- package/src/actions/auth/authenticateWithOAuth.ts +9 -15
- package/src/actions/auth/getUserEmail.ts +46 -0
- package/src/actions/auth/index.ts +5 -2
- package/src/actions/auth/loginWithOTP.ts +18 -21
- package/src/actions/auth/loginWithStamp.ts +4 -3
- package/src/actions/auth/registerWithOTP.ts +6 -13
- package/src/actions/index.ts +3 -0
- package/src/actions/wallet/signRawPayload.ts +15 -11
- package/src/actions/wallet/signTransaction.ts +15 -11
- package/src/adapters/viem.ts +2 -0
- package/src/client/authProxy.ts +78 -0
- package/src/client/decorators/client.ts +11 -0
- package/src/client/index.ts +7 -0
- package/src/client/transports/rest.ts +5 -1
- package/src/constants.ts +2 -0
- package/src/core/createZeroDevWallet.ts +34 -21
- package/src/index.ts +2 -0
- package/src/utils/buildClientSignature.ts +86 -0
- package/src/utils/derToRawSignature.ts +103 -0
package/dist/_cjs/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.normalizeTimestamp = exports.exportWallet = exports.exportPrivateKey = exports.createWebauthnStamper = exports.createIndexedDbStamper = exports.createIframeStamper = exports.createZeroDevWallet = exports.zeroDevWalletTransport = exports.createClient = exports.createBaseClient = exports.zeroDevWalletActions = exports.toViemAccount = exports.signTransaction = exports.signRawPayload = exports.registerWithOTP = exports.loginWithOTP = exports.getWhoami = exports.getUserWallet = exports.authenticateWithOAuth = exports.authenticateWithEmail = void 0;
|
|
3
|
+
exports.normalizeTimestamp = exports.exportWallet = exports.exportPrivateKey = exports.createWebauthnStamper = exports.createIndexedDbStamper = exports.createIframeStamper = exports.createZeroDevWallet = exports.KMS_SERVER_URL = exports.zeroDevWalletTransport = exports.createClient = exports.createBaseClient = exports.zeroDevWalletActions = exports.toViemAccount = exports.signTransaction = exports.signRawPayload = exports.registerWithOTP = exports.loginWithOTP = exports.getWhoami = exports.getUserWallet = exports.authenticateWithOAuth = exports.authenticateWithEmail = void 0;
|
|
4
4
|
var index_js_1 = require("./actions/index.js");
|
|
5
5
|
Object.defineProperty(exports, "authenticateWithEmail", { enumerable: true, get: function () { return index_js_1.authenticateWithEmail; } });
|
|
6
6
|
Object.defineProperty(exports, "authenticateWithOAuth", { enumerable: true, get: function () { return index_js_1.authenticateWithOAuth; } });
|
|
@@ -18,6 +18,8 @@ var index_js_2 = require("./client/index.js");
|
|
|
18
18
|
Object.defineProperty(exports, "createBaseClient", { enumerable: true, get: function () { return index_js_2.createBaseClient; } });
|
|
19
19
|
Object.defineProperty(exports, "createClient", { enumerable: true, get: function () { return index_js_2.createClient; } });
|
|
20
20
|
Object.defineProperty(exports, "zeroDevWalletTransport", { enumerable: true, get: function () { return index_js_2.zeroDevWalletTransport; } });
|
|
21
|
+
var constants_js_1 = require("./constants.js");
|
|
22
|
+
Object.defineProperty(exports, "KMS_SERVER_URL", { enumerable: true, get: function () { return constants_js_1.KMS_SERVER_URL; } });
|
|
21
23
|
var createZeroDevWallet_js_1 = require("./core/createZeroDevWallet.js");
|
|
22
24
|
Object.defineProperty(exports, "createZeroDevWallet", { enumerable: true, get: function () { return createZeroDevWallet_js_1.createZeroDevWallet; } });
|
|
23
25
|
var index_js_3 = require("./stampers/index.js");
|
package/dist/_cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAwBA,+CAW2B;AATzB,iHAAA,qBAAqB,OAAA;AACrB,iHAAA,qBAAqB,OAAA;AAErB,yGAAA,aAAa,OAAA;AACb,qGAAA,SAAS,OAAA;AACT,wGAAA,YAAY,OAAA;AACZ,2GAAA,eAAe,OAAA;AACf,0GAAA,cAAc,OAAA;AACd,2GAAA,eAAe,OAAA;AAIjB,8CAAkD;AAAzC,wGAAA,aAAa,OAAA;AAGtB,2DAAoE;AAA3D,iHAAA,oBAAoB,OAAA;AAG7B,8CAK0B;AAJxB,4GAAA,gBAAgB,OAAA;AAChB,wGAAA,YAAY,OAAA;AAEZ,kHAAA,sBAAsB,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAwBA,+CAW2B;AATzB,iHAAA,qBAAqB,OAAA;AACrB,iHAAA,qBAAqB,OAAA;AAErB,yGAAA,aAAa,OAAA;AACb,qGAAA,SAAS,OAAA;AACT,wGAAA,YAAY,OAAA;AACZ,2GAAA,eAAe,OAAA;AACf,0GAAA,cAAc,OAAA;AACd,2GAAA,eAAe,OAAA;AAIjB,8CAAkD;AAAzC,wGAAA,aAAa,OAAA;AAGtB,2DAAoE;AAA3D,iHAAA,oBAAoB,OAAA;AAG7B,8CAK0B;AAJxB,4GAAA,gBAAgB,OAAA;AAChB,wGAAA,YAAY,OAAA;AAEZ,kHAAA,sBAAsB,OAAA;AAGxB,+CAA+C;AAAtC,8GAAA,cAAc,OAAA;AAOvB,wEAAmE;AAA1D,6HAAA,mBAAmB,OAAA;AAE5B,gDAI4B;AAH1B,+GAAA,mBAAmB,OAAA;AACnB,kHAAA,sBAAsB,OAAA;AACtB,iHAAA,qBAAqB,OAAA;AAYvB,mEAA8D;AAArD,uHAAA,gBAAgB,OAAA;AACzB,2DAAsD;AAA7C,+GAAA,YAAY,OAAA;AAErB,6CAAqD;AAA5C,8GAAA,kBAAkB,OAAA"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildClientSignature = buildClientSignature;
|
|
4
|
+
const derToRawSignature_js_1 = require("./derToRawSignature.js");
|
|
5
|
+
async function buildClientSignature(params) {
|
|
6
|
+
const { verificationToken, publicKey, stamper } = params;
|
|
7
|
+
const tokenId = extractTokenIdFromJwt(verificationToken);
|
|
8
|
+
const signaturePayload = {
|
|
9
|
+
login: { publicKey },
|
|
10
|
+
tokenId,
|
|
11
|
+
type: 'USAGE_TYPE_LOGIN',
|
|
12
|
+
};
|
|
13
|
+
const message = JSON.stringify(signaturePayload);
|
|
14
|
+
const stamp = await stamper.stamp(message);
|
|
15
|
+
const stampData = JSON.parse(base64UrlDecode(stamp.stampHeaderValue));
|
|
16
|
+
const derSignatureHex = stampData.signature;
|
|
17
|
+
const rawSignature = (0, derToRawSignature_js_1.derToRawSignature)(derSignatureHex);
|
|
18
|
+
return rawSignature;
|
|
19
|
+
}
|
|
20
|
+
function extractTokenIdFromJwt(jwt) {
|
|
21
|
+
const parts = jwt.split('.');
|
|
22
|
+
if (parts.length !== 3) {
|
|
23
|
+
throw new Error('Invalid JWT format');
|
|
24
|
+
}
|
|
25
|
+
const payload = JSON.parse(base64UrlDecode(parts[1]));
|
|
26
|
+
if (!payload.id) {
|
|
27
|
+
throw new Error('JWT payload missing id field');
|
|
28
|
+
}
|
|
29
|
+
return payload.id;
|
|
30
|
+
}
|
|
31
|
+
function base64UrlDecode(str) {
|
|
32
|
+
let base64 = str.replace(/-/g, '+').replace(/_/g, '/');
|
|
33
|
+
const padding = base64.length % 4;
|
|
34
|
+
if (padding) {
|
|
35
|
+
base64 += '='.repeat(4 - padding);
|
|
36
|
+
}
|
|
37
|
+
return atob(base64);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=buildClientSignature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"buildClientSignature.js","sourceRoot":"","sources":["../../../src/utils/buildClientSignature.ts"],"names":[],"mappings":";;AA0BA,oDA6BC;AAtDD,iEAA0D;AAyBnD,KAAK,UAAU,oBAAoB,CACxC,MAAkC;IAElC,MAAM,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,MAAM,CAAA;IAGxD,MAAM,OAAO,GAAG,qBAAqB,CAAC,iBAAiB,CAAC,CAAA;IAGxD,MAAM,gBAAgB,GAAG;QACvB,KAAK,EAAE,EAAE,SAAS,EAAE;QACpB,OAAO;QACP,IAAI,EAAE,kBAAkB;KACzB,CAAA;IACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAA;IAGhD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAI1C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;IACrE,MAAM,eAAe,GAAW,SAAS,CAAC,SAAS,CAAA;IAGnD,MAAM,YAAY,GAAG,IAAA,wCAAiB,EAAC,eAAe,CAAC,CAAA;IAGvD,OAAO,YAAY,CAAA;AACrB,CAAC;AAKD,SAAS,qBAAqB,CAAC,GAAW;IACxC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC5B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;IACvC,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAA;IACtD,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAA;IACjD,CAAC;IAED,OAAO,OAAO,CAAC,EAAE,CAAA;AACnB,CAAC;AAKD,SAAS,eAAe,CAAC,GAAW;IAElC,IAAI,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;IACtD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;IACjC,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAA;IACnC,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAA;AACrB,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.derToRawSignature = derToRawSignature;
|
|
4
|
+
function derToRawSignature(derHex) {
|
|
5
|
+
const der = hexToBytes(derHex);
|
|
6
|
+
if (der[0] !== 0x30) {
|
|
7
|
+
throw new Error('Invalid DER signature: expected SEQUENCE tag (0x30)');
|
|
8
|
+
}
|
|
9
|
+
let offset = 2;
|
|
10
|
+
if (der[offset] !== 0x02) {
|
|
11
|
+
throw new Error('Invalid DER signature: expected INTEGER tag (0x02) for r');
|
|
12
|
+
}
|
|
13
|
+
offset++;
|
|
14
|
+
const rLength = der[offset];
|
|
15
|
+
offset++;
|
|
16
|
+
const rBytes = der.slice(offset, offset + rLength);
|
|
17
|
+
offset += rLength;
|
|
18
|
+
if (der[offset] !== 0x02) {
|
|
19
|
+
throw new Error('Invalid DER signature: expected INTEGER tag (0x02) for s');
|
|
20
|
+
}
|
|
21
|
+
offset++;
|
|
22
|
+
const sLength = der[offset];
|
|
23
|
+
offset++;
|
|
24
|
+
const sBytes = der.slice(offset, offset + sLength);
|
|
25
|
+
const r = padTo32Bytes(stripLeadingZeros(rBytes));
|
|
26
|
+
const s = padTo32Bytes(stripLeadingZeros(sBytes));
|
|
27
|
+
const raw = new Uint8Array(64);
|
|
28
|
+
raw.set(r, 0);
|
|
29
|
+
raw.set(s, 32);
|
|
30
|
+
return bytesToHex(raw);
|
|
31
|
+
}
|
|
32
|
+
function hexToBytes(hex) {
|
|
33
|
+
const cleanHex = hex.startsWith('0x') ? hex.slice(2) : hex;
|
|
34
|
+
const bytes = new Uint8Array(cleanHex.length / 2);
|
|
35
|
+
for (let i = 0; i < bytes.length; i++) {
|
|
36
|
+
bytes[i] = parseInt(cleanHex.slice(i * 2, i * 2 + 2), 16);
|
|
37
|
+
}
|
|
38
|
+
return bytes;
|
|
39
|
+
}
|
|
40
|
+
function bytesToHex(bytes) {
|
|
41
|
+
return Array.from(bytes)
|
|
42
|
+
.map((b) => b.toString(16).padStart(2, '0'))
|
|
43
|
+
.join('');
|
|
44
|
+
}
|
|
45
|
+
function stripLeadingZeros(bytes) {
|
|
46
|
+
let start = 0;
|
|
47
|
+
while (start < bytes.length - 1 && bytes[start] === 0) {
|
|
48
|
+
start++;
|
|
49
|
+
}
|
|
50
|
+
return bytes.slice(start);
|
|
51
|
+
}
|
|
52
|
+
function padTo32Bytes(bytes) {
|
|
53
|
+
if (bytes.length === 32) {
|
|
54
|
+
return bytes;
|
|
55
|
+
}
|
|
56
|
+
if (bytes.length > 32) {
|
|
57
|
+
return bytes.slice(bytes.length - 32);
|
|
58
|
+
}
|
|
59
|
+
const padded = new Uint8Array(32);
|
|
60
|
+
padded.set(bytes, 32 - bytes.length);
|
|
61
|
+
return padded;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=derToRawSignature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"derToRawSignature.js","sourceRoot":"","sources":["../../../src/utils/derToRawSignature.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Authenticates a user with OAuth
|
|
2
|
+
* Authenticates a user with OAuth using cookie-based backend flow
|
|
3
|
+
*
|
|
4
|
+
* The backend reads the OAuth session from a cookie set during the OAuth flow.
|
|
5
|
+
* This requires the OAuth popup flow to complete first via the backend's
|
|
6
|
+
* /oauth/google/login endpoint.
|
|
3
7
|
*
|
|
4
8
|
* @param client - The ZeroDev Wallet client
|
|
5
9
|
* @param params - The parameters for OAuth authentication
|
|
@@ -8,24 +12,18 @@
|
|
|
8
12
|
* @example
|
|
9
13
|
* ```ts
|
|
10
14
|
* const result = await authenticateWithOAuth(client, {
|
|
11
|
-
* oidcToken: 'oauth_token_here',
|
|
12
15
|
* provider: 'google',
|
|
13
16
|
* projectId: 'proj_456',
|
|
14
|
-
* targetPublicKey: '0x...'
|
|
15
17
|
* });
|
|
16
18
|
* ```
|
|
17
19
|
*/
|
|
18
20
|
export async function authenticateWithOAuth(client, params) {
|
|
19
|
-
const {
|
|
21
|
+
const { projectId } = params;
|
|
20
22
|
return await client.request({
|
|
21
23
|
path: `${projectId}/auth/oauth`,
|
|
22
24
|
method: 'POST',
|
|
23
|
-
body:
|
|
24
|
-
|
|
25
|
-
provider,
|
|
26
|
-
targetPublicKey,
|
|
27
|
-
projectId,
|
|
28
|
-
},
|
|
25
|
+
body: null,
|
|
26
|
+
credentials: 'include',
|
|
29
27
|
});
|
|
30
28
|
}
|
|
31
29
|
//# sourceMappingURL=authenticateWithOAuth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authenticateWithOAuth.js","sourceRoot":"","sources":["../../../../src/actions/auth/authenticateWithOAuth.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"authenticateWithOAuth.js","sourceRoot":"","sources":["../../../../src/actions/auth/authenticateWithOAuth.ts"],"names":[],"mappings":"AAoBA;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAc,EACd,MAAuC;IAEvC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAE5B,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,aAAa;QAC/B,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,SAAS;KACvB,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gets the user's email address
|
|
3
|
+
*
|
|
4
|
+
* @param client - The ZeroDev Wallet client
|
|
5
|
+
* @param params - The parameters for the user email request
|
|
6
|
+
* @returns The user's email address
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* const userEmail = await getUserEmail(client, {
|
|
11
|
+
* organizationId: 'org_123',
|
|
12
|
+
* projectId: 'proj_456'
|
|
13
|
+
* });
|
|
14
|
+
* console.log(userEmail.email); // 'user@example.com'
|
|
15
|
+
* ```
|
|
16
|
+
*/
|
|
17
|
+
export async function getUserEmail(client, params) {
|
|
18
|
+
const { organizationId, projectId } = params;
|
|
19
|
+
return await client.request({
|
|
20
|
+
path: `${projectId}/user-email`,
|
|
21
|
+
method: 'POST',
|
|
22
|
+
body: {
|
|
23
|
+
organizationId,
|
|
24
|
+
},
|
|
25
|
+
stamp: true,
|
|
26
|
+
stampPostion: 'headers',
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=getUserEmail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getUserEmail.js","sourceRoot":"","sources":["../../../../src/actions/auth/getUserEmail.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,MAA8B;IAE9B,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAE5C,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,aAAa;QAC/B,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,cAAc;SACf;QACD,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,SAAS;KACxB,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { authenticateWithEmail, } from './authenticateWithEmail.js';
|
|
2
2
|
export { authenticateWithOAuth, } from './authenticateWithOAuth.js';
|
|
3
|
+
export { getUserEmail, } from './getUserEmail.js';
|
|
3
4
|
export { getWhoami, } from './getWhoami.js';
|
|
4
5
|
export { loginWithOTP, } from './loginWithOTP.js';
|
|
5
6
|
export { loginWithStamp, } from './loginWithStamp.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/actions/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,qBAAqB,GAEtB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAGL,qBAAqB,GACtB,MAAM,4BAA4B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/actions/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,qBAAqB,GAEtB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAGL,qBAAqB,GACtB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAGL,YAAY,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAGL,SAAS,GACV,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAGL,YAAY,GACb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAGL,cAAc,GACf,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAIL,eAAe,GAChB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAGL,mBAAmB,GACpB,MAAM,0BAA0B,CAAA"}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Logs in a user with OTP (One-Time Password) authentication
|
|
3
|
-
*
|
|
2
|
+
* Logs in a user with OTP (One-Time Password) authentication via the backend.
|
|
3
|
+
*
|
|
4
|
+
* The backend handles:
|
|
5
|
+
* 1. Parsing the verificationToken JWT to extract email and publicKey
|
|
6
|
+
* 2. Creating/retrieving sub-organization for (projectId, email)
|
|
7
|
+
* 3. Reconstructing the message for signature verification
|
|
8
|
+
* 4. Calling Turnkey.OtpLogin with the appropriate parameters
|
|
9
|
+
* 5. Returning the session to the SDK
|
|
4
10
|
*
|
|
5
11
|
* @param client - The ZeroDev Wallet client
|
|
6
12
|
* @param params - The parameters for OTP login
|
|
@@ -8,12 +14,10 @@
|
|
|
8
14
|
*
|
|
9
15
|
* @example
|
|
10
16
|
* ```ts
|
|
11
|
-
* // After
|
|
17
|
+
* // After verifying OTP via Auth Proxy and building client signature
|
|
12
18
|
* const result = await loginWithOTP(client, {
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* subOrganizationId: 'org_abc',
|
|
16
|
-
* encodedPublicKey: '0x...',
|
|
19
|
+
* verificationToken: '<jwt-from-auth-proxy>',
|
|
20
|
+
* clientSignature: '<raw-signature-hex>',
|
|
17
21
|
* projectId: 'proj_456'
|
|
18
22
|
* });
|
|
19
23
|
*
|
|
@@ -21,15 +25,13 @@
|
|
|
21
25
|
* ```
|
|
22
26
|
*/
|
|
23
27
|
export async function loginWithOTP(client, params) {
|
|
24
|
-
const {
|
|
28
|
+
const { verificationToken, clientSignature, projectId } = params;
|
|
25
29
|
return await client.request({
|
|
26
30
|
path: `${projectId}/auth/login/otp`,
|
|
27
31
|
method: 'POST',
|
|
28
32
|
body: {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
subOrganizationId,
|
|
32
|
-
encodedPublicKey,
|
|
33
|
+
verificationToken,
|
|
34
|
+
clientSignature,
|
|
33
35
|
},
|
|
34
36
|
});
|
|
35
37
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loginWithOTP.js","sourceRoot":"","sources":["../../../../src/actions/auth/loginWithOTP.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loginWithOTP.js","sourceRoot":"","sources":["../../../../src/actions/auth/loginWithOTP.ts"],"names":[],"mappings":"AAgBA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAc,EACd,MAA8B;IAE9B,MAAM,EAAE,iBAAiB,EAAE,eAAe,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAEhE,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,iBAAiB;QACnC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,iBAAiB;YACjB,eAAe;SAChB;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { canonicalizeEx } from 'json-canonicalize';
|
|
1
2
|
/**
|
|
2
3
|
* Logs in a user with a stamp
|
|
3
4
|
*
|
|
@@ -19,14 +20,14 @@ export async function loginWithStamp(client, params) {
|
|
|
19
20
|
const timestampMs = Date.now();
|
|
20
21
|
const timestampMsString = timestampMs.toString();
|
|
21
22
|
const timestampIso = new Date(timestampMs).toISOString();
|
|
22
|
-
const stampPayload =
|
|
23
|
+
const stampPayload = canonicalizeEx({
|
|
23
24
|
organizationId,
|
|
24
25
|
parameters: {
|
|
25
26
|
publicKey: targetPublicKey,
|
|
26
27
|
},
|
|
27
28
|
timestampMs: timestampMsString,
|
|
28
29
|
type: 'ACTIVITY_TYPE_STAMP_LOGIN',
|
|
29
|
-
})
|
|
30
|
+
});
|
|
30
31
|
let stamp;
|
|
31
32
|
if (stampWith === 'indexedDb') {
|
|
32
33
|
stamp = await client.indexedDbStamper.stamp(stampPayload);
|
|
@@ -38,7 +39,7 @@ export async function loginWithStamp(client, params) {
|
|
|
38
39
|
stamp = await client.indexedDbStamper.stamp(stampPayload);
|
|
39
40
|
}
|
|
40
41
|
return client.request({
|
|
41
|
-
path: `${projectId}/auth/login/
|
|
42
|
+
path: `${projectId}/auth/login/stamp`,
|
|
42
43
|
method: 'POST',
|
|
43
44
|
body: {
|
|
44
45
|
subOrganizationId: organizationId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loginWithStamp.js","sourceRoot":"","sources":["../../../../src/actions/auth/loginWithStamp.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"loginWithStamp.js","sourceRoot":"","sources":["../../../../src/actions/auth/loginWithStamp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAyBlD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,MAAgC;IAEhC,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;IAExE,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;IAC9B,MAAM,iBAAiB,GAAG,WAAW,CAAC,QAAQ,EAAE,CAAA;IAChD,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,WAAW,EAAE,CAAA;IAExD,MAAM,YAAY,GAAG,cAAc,CAAC;QAClC,cAAc;QACd,UAAU,EAAE;YACV,SAAS,EAAE,eAAe;SAC3B;QACD,WAAW,EAAE,iBAAiB;QAC9B,IAAI,EAAE,2BAA2B;KAClC,CAAC,CAAA;IACF,IAAI,KAAY,CAAA;IAChB,IAAI,SAAS,KAAK,WAAW,EAAE,CAAC;QAC9B,KAAK,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAC3D,CAAC;SAAM,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;QACpC,KAAK,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAC1D,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;IAC3D,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC;QACpB,IAAI,EAAE,GAAG,SAAS,mBAAmB;QACrC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,iBAAiB,EAAE,cAAc;YACjC,eAAe;YACf,SAAS,EAAE,YAAY;YACvB,KAAK;SACN;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Initiates OTP (One-Time Password) authentication
|
|
3
3
|
* This will send an OTP code to the specified contact method
|
|
4
4
|
*
|
|
5
5
|
* @param client - The ZeroDev Wallet client
|
|
6
|
-
* @param params - The parameters for OTP
|
|
7
|
-
* @returns The
|
|
6
|
+
* @param params - The parameters for OTP initiation
|
|
7
|
+
* @returns The result including otpId needed for verification
|
|
8
8
|
*
|
|
9
9
|
* @example
|
|
10
10
|
* ```ts
|
|
@@ -17,18 +17,17 @@
|
|
|
17
17
|
* projectId: 'proj_456'
|
|
18
18
|
* });
|
|
19
19
|
*
|
|
20
|
-
* // Use result.otpId for the
|
|
20
|
+
* // Use result.otpId for the verification step
|
|
21
21
|
* ```
|
|
22
22
|
*/
|
|
23
23
|
export async function registerWithOTP(client, params) {
|
|
24
24
|
const { email, contact, projectId, emailCustomization } = params;
|
|
25
25
|
return await client.request({
|
|
26
|
-
path: `${projectId}/auth/
|
|
26
|
+
path: `${projectId}/auth/init/otp`,
|
|
27
27
|
method: 'POST',
|
|
28
28
|
body: {
|
|
29
29
|
email,
|
|
30
30
|
contact,
|
|
31
|
-
projectId,
|
|
32
31
|
emailCustomization,
|
|
33
32
|
},
|
|
34
33
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registerWithOTP.js","sourceRoot":"","sources":["../../../../src/actions/auth/registerWithOTP.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registerWithOTP.js","sourceRoot":"","sources":["../../../../src/actions/auth/registerWithOTP.ts"],"names":[],"mappings":"AA0BA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,MAAiC;IAEjC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,MAAM,CAAA;IAEhE,OAAO,MAAM,MAAM,CAAC,OAAO,CAAC;QAC1B,IAAI,EAAE,GAAG,SAAS,gBAAgB;QAClC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE;YACJ,KAAK;YACL,OAAO;YACP,kBAAkB;SACnB;KACF,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// Auth actions
|
|
2
|
-
export { authenticateWithEmail, authenticateWithOAuth, getWhoami, loginWithOTP, registerWithOTP, registerWithPasskey, } from './auth/index.js';
|
|
2
|
+
export { authenticateWithEmail, authenticateWithOAuth, getUserEmail, getWhoami, loginWithOTP, registerWithOTP, registerWithPasskey, } from './auth/index.js';
|
|
3
3
|
// Wallet actions
|
|
4
4
|
export { getUserWallet, signRawPayload, signTransaction, } from './wallet/index.js';
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAKL,qBAAqB,EACrB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/actions/index.ts"],"names":[],"mappings":"AAAA,eAAe;AACf,OAAO,EAKL,qBAAqB,EACrB,qBAAqB,EAMrB,YAAY,EACZ,SAAS,EAGT,YAAY,EAMZ,eAAe,EACf,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AAExB,iBAAiB;AACjB,OAAO,EAGL,aAAa,EAKb,cAAc,EACd,eAAe,GAChB,MAAM,mBAAmB,CAAA"}
|
|
@@ -17,24 +17,25 @@
|
|
|
17
17
|
* ```
|
|
18
18
|
*/
|
|
19
19
|
export async function signRawPayload(client, params) {
|
|
20
|
-
const { organizationId, projectId, address, payload, encoding = 'PAYLOAD_ENCODING_HEXADECIMAL', hashFunction = 'HASH_FUNCTION_NO_OP', } = params;
|
|
20
|
+
const { organizationId, projectId, token, address, payload, encoding = 'PAYLOAD_ENCODING_HEXADECIMAL', hashFunction = 'HASH_FUNCTION_NO_OP', } = params;
|
|
21
21
|
const { signature } = await client.request({
|
|
22
22
|
path: `${projectId}/sign/raw-payload`,
|
|
23
23
|
body: {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
hashFunction,
|
|
33
|
-
},
|
|
24
|
+
type: 'ACTIVITY_TYPE_SIGN_RAW_PAYLOAD_V2',
|
|
25
|
+
timestampMs: Date.now().toString(),
|
|
26
|
+
organizationId,
|
|
27
|
+
parameters: {
|
|
28
|
+
signWith: address,
|
|
29
|
+
payload,
|
|
30
|
+
encoding,
|
|
31
|
+
hashFunction,
|
|
34
32
|
},
|
|
35
|
-
|
|
33
|
+
},
|
|
34
|
+
headers: {
|
|
35
|
+
Authorization: `Bearer ${token}`,
|
|
36
36
|
},
|
|
37
37
|
stamp: true,
|
|
38
|
+
stampPostion: 'headers',
|
|
38
39
|
});
|
|
39
40
|
return signature;
|
|
40
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signRawPayload.js","sourceRoot":"","sources":["../../../../src/actions/wallet/signRawPayload.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"signRawPayload.js","sourceRoot":"","sources":["../../../../src/actions/wallet/signRawPayload.ts"],"names":[],"mappings":"AAsBA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,MAAc,EACd,MAAgC;IAEhC,MAAM,EACJ,cAAc,EACd,SAAS,EACT,KAAK,EACL,OAAO,EACP,OAAO,EACP,QAAQ,GAAG,8BAA8B,EACzC,YAAY,GAAG,qBAAqB,GACrC,GAAG,MAAM,CAAA;IAEV,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QACzC,IAAI,EAAE,GAAG,SAAS,mBAAmB;QACrC,IAAI,EAAE;YACJ,IAAI,EAAE,mCAAmC;YACzC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;YAClC,cAAc;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE,OAAO;gBACjB,OAAO;gBACP,QAAQ;gBACR,YAAY;aACb;SACF;QACD,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;SACjC;QACD,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,SAAS;KACxB,CAAC,CAAA;IACF,OAAO,SAAgB,CAAA;AACzB,CAAC"}
|
|
@@ -17,23 +17,24 @@
|
|
|
17
17
|
* ```
|
|
18
18
|
*/
|
|
19
19
|
export async function signTransaction(client, params) {
|
|
20
|
-
const { organizationId, projectId, address, unsignedTransaction } = params;
|
|
20
|
+
const { organizationId, projectId, token, address, unsignedTransaction } = params;
|
|
21
21
|
const { signature } = await client.request({
|
|
22
22
|
path: `${projectId}/sign/transaction`,
|
|
23
23
|
body: {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
unsignedTransaction,
|
|
32
|
-
},
|
|
24
|
+
type: 'ACTIVITY_TYPE_SIGN_TRANSACTION_V2',
|
|
25
|
+
timestampMs: Date.now().toString(),
|
|
26
|
+
organizationId,
|
|
27
|
+
parameters: {
|
|
28
|
+
signWith: address,
|
|
29
|
+
type: 'TRANSACTION_TYPE_ETHEREUM',
|
|
30
|
+
unsignedTransaction,
|
|
33
31
|
},
|
|
34
|
-
|
|
32
|
+
},
|
|
33
|
+
headers: {
|
|
34
|
+
Authorization: `Bearer ${token}`,
|
|
35
35
|
},
|
|
36
36
|
stamp: true,
|
|
37
|
+
stampPostion: 'headers',
|
|
37
38
|
});
|
|
38
39
|
return `0x${signature}`;
|
|
39
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signTransaction.js","sourceRoot":"","sources":["../../../../src/actions/wallet/signTransaction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"signTransaction.js","sourceRoot":"","sources":["../../../../src/actions/wallet/signTransaction.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,MAAiC;IAEjC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,GACtE,MAAM,CAAA;IAER,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC;QACzC,IAAI,EAAE,GAAG,SAAS,mBAAmB;QACrC,IAAI,EAAE;YACJ,IAAI,EAAE,mCAAmC;YACzC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;YAClC,cAAc;YACd,UAAU,EAAE;gBACV,QAAQ,EAAE,OAAO;gBACjB,IAAI,EAAE,2BAA2B;gBACjC,mBAAmB;aACpB;SACF;QACD,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,KAAK,EAAE;SACjC;QACD,KAAK,EAAE,IAAI;QACX,YAAY,EAAE,SAAS;KACxB,CAAC,CAAA;IAEF,OAAO,KAAK,SAAS,EAAS,CAAA;AAChC,CAAC"}
|
|
@@ -19,6 +19,7 @@ export async function toViemAccount(params) {
|
|
|
19
19
|
return await client.signRawPayload({
|
|
20
20
|
organizationId,
|
|
21
21
|
projectId,
|
|
22
|
+
token,
|
|
22
23
|
address,
|
|
23
24
|
payload,
|
|
24
25
|
encoding,
|
|
@@ -36,6 +37,7 @@ export async function toViemAccount(params) {
|
|
|
36
37
|
const signature = await client.signTransaction({
|
|
37
38
|
organizationId,
|
|
38
39
|
projectId,
|
|
40
|
+
token,
|
|
39
41
|
address,
|
|
40
42
|
unsignedTransaction: nonHexPrefixedSerializedTx,
|
|
41
43
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viem.js","sourceRoot":"","sources":["../../../src/adapters/viem.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"viem.js","sourceRoot":"","sources":["../../../src/adapters/viem.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
const AUTH_PROXY_BASE_URL = 'https://authproxy.turnkey.com';
|
|
2
|
+
/**
|
|
3
|
+
* Creates an Auth Proxy client for making requests to Turnkey's Auth Proxy
|
|
4
|
+
*
|
|
5
|
+
* Note: This client only handles OTP verification. The actual OTP login
|
|
6
|
+
* is handled by the backend (/auth/login/otp) which manages sub-organization
|
|
7
|
+
* creation and session handling.
|
|
8
|
+
*/
|
|
9
|
+
export function createAuthProxyClient(config) {
|
|
10
|
+
const { authProxyConfigId, baseUrl = AUTH_PROXY_BASE_URL } = config;
|
|
11
|
+
async function request(path, body, method = 'POST') {
|
|
12
|
+
const fetchOptions = {
|
|
13
|
+
method,
|
|
14
|
+
headers: {
|
|
15
|
+
'Content-Type': 'application/json',
|
|
16
|
+
'X-Auth-Proxy-Config-Id': authProxyConfigId,
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
if (method !== 'GET') {
|
|
20
|
+
fetchOptions.body = JSON.stringify(body);
|
|
21
|
+
}
|
|
22
|
+
const response = await fetch(`${baseUrl}${path}`, fetchOptions);
|
|
23
|
+
if (!response.ok) {
|
|
24
|
+
const errorText = await response.text();
|
|
25
|
+
throw new Error(`Auth Proxy request failed: ${response.status} ${response.statusText} - ${errorText}`);
|
|
26
|
+
}
|
|
27
|
+
return response.json();
|
|
28
|
+
}
|
|
29
|
+
return {
|
|
30
|
+
/**
|
|
31
|
+
* Verifies an OTP code with Turnkey's Auth Proxy
|
|
32
|
+
*
|
|
33
|
+
* Returns a verificationToken that should be passed to the backend's
|
|
34
|
+
* /auth/login/otp endpoint along with a client signature.
|
|
35
|
+
*/
|
|
36
|
+
async verifyOtp(params) {
|
|
37
|
+
return request('/v1/otp_verify', params);
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=authProxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authProxy.js","sourceRoot":"","sources":["../../../src/client/authProxy.ts"],"names":[],"mappings":"AAAA,MAAM,mBAAmB,GAAG,+BAA+B,CAAA;AAuB3D;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAA6B;IACjE,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAG,mBAAmB,EAAE,GAAG,MAAM,CAAA;IAEnE,KAAK,UAAU,OAAO,CACpB,IAAY,EACZ,IAAa,EACb,SAAyB,MAAM;QAE/B,MAAM,YAAY,GAAgB;YAChC,MAAM;YACN,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,wBAAwB,EAAE,iBAAiB;aAC5C;SACF,CAAA;QAED,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;YACrB,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAC1C,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,GAAG,IAAI,EAAE,EAAE,YAAY,CAAC,CAAA;QAE/D,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;YACvC,MAAM,IAAI,KAAK,CACb,8BAA8B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,MAAM,SAAS,EAAE,CACtF,CAAA;QACH,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAA;IACxB,CAAC;IAED,OAAO;QACL;;;;;WAKG;QACH,KAAK,CAAC,SAAS,CACb,MAAiC;YAEjC,OAAO,OAAO,CAA6B,gBAAgB,EAAE,MAAM,CAAC,CAAA;QACtE,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { loginWithStamp, } from '../../actions/auth/loginWithStamp.js';
|
|
2
|
-
import { authenticateWithEmail, authenticateWithOAuth, getUserWallet, getWhoami, loginWithOTP, registerWithOTP, registerWithPasskey, signRawPayload, } from '../../actions/index.js';
|
|
2
|
+
import { authenticateWithEmail, authenticateWithOAuth, getUserEmail, getUserWallet, getWhoami, loginWithOTP, registerWithOTP, registerWithPasskey, signRawPayload, } from '../../actions/index.js';
|
|
3
3
|
import { signTransaction, } from '../../actions/wallet/signTransaction.js';
|
|
4
4
|
/**
|
|
5
5
|
* Decorator function that adds ZeroDev Wallet client actions to a client
|
|
@@ -29,6 +29,7 @@ export function zeroDevWalletActions(client) {
|
|
|
29
29
|
authenticateWithEmail: (params) => authenticateWithEmail(client, params),
|
|
30
30
|
authenticateWithOAuth: (params) => authenticateWithOAuth(client, params),
|
|
31
31
|
getWhoami: (params) => getWhoami(client, params),
|
|
32
|
+
getUserEmail: (params) => getUserEmail(client, params),
|
|
32
33
|
// Wallet actions
|
|
33
34
|
getUserWallet: (params) => getUserWallet(client, params),
|
|
34
35
|
signRawPayload: (params) => signRawPayload(client, params),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/client/decorators/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,GACf,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAKL,qBAAqB,EACrB,qBAAqB,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/client/decorators/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,GACf,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAKL,qBAAqB,EACrB,qBAAqB,EAOrB,YAAY,EACZ,aAAa,EACb,SAAS,EAGT,YAAY,EAKZ,eAAe,EACf,mBAAmB,EAGnB,cAAc,GACf,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAGL,eAAe,GAChB,MAAM,yCAAyC,CAAA;AAqFhD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,OAAO;QACL,eAAe;QACf,qBAAqB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC;QACxE,qBAAqB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,qBAAqB,CAAC,MAAM,EAAE,MAAM,CAAC;QACxE,SAAS,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;QAChD,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;QAEtD,iBAAiB;QACjB,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC;QACxD,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;QAC1D,eAAe,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC;QAC5D,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC;QACpE,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC;QAC1D,eAAe,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC;QAC5D,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;KACvD,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAChB,YAAY,GAEb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,qBAAqB,GACtB,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACL,gBAAgB,EAChB,YAAY,GAEb,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAA"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { canonicalizeEx } from 'json-canonicalize';
|
|
1
2
|
import { RestRequestError, RestTimeoutError } from '../../errors/request.js';
|
|
2
3
|
export function rest(url, cfg) {
|
|
3
4
|
const timeoutMs = cfg.timeoutMs ?? 10_000;
|
|
@@ -27,7 +28,7 @@ export function rest(url, cfg) {
|
|
|
27
28
|
stamper = cfg.indexedDbStamper;
|
|
28
29
|
}
|
|
29
30
|
const { body, apiUrl } = args.body;
|
|
30
|
-
const bodyString =
|
|
31
|
+
const bodyString = canonicalizeEx(body ?? args.body);
|
|
31
32
|
const stamp = await stamper.stamp(bodyString);
|
|
32
33
|
// Restructure request body to match backend expectation
|
|
33
34
|
if (args.stampPostion === 'headers') {
|
|
@@ -62,6 +63,7 @@ export function rest(url, cfg) {
|
|
|
62
63
|
headers: requestHeaders,
|
|
63
64
|
body: requestBody != null ? JSON.stringify(requestBody) : null,
|
|
64
65
|
signal: controller.signal,
|
|
66
|
+
...(args.credentials && { credentials: args.credentials }),
|
|
65
67
|
};
|
|
66
68
|
const finalInit = (await cfg.onRequest?.(fullUrl, init)) ?? init;
|
|
67
69
|
const res = await fetch(fullUrl, finalInit);
|