@safe-global/protocol-kit 4.1.0-alpha.0 → 4.1.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/Safe.d.ts +10 -3
- package/dist/src/Safe.js +67 -72
- package/dist/src/Safe.js.map +1 -1
- package/dist/src/SafeFactory.js +1 -1
- package/dist/src/SafeFactory.js.map +1 -1
- package/dist/src/SafeProvider.d.ts +2 -2
- package/dist/src/SafeProvider.js +7 -3
- package/dist/src/SafeProvider.js.map +1 -1
- package/dist/src/contracts/contractInstances.js +0 -3
- package/dist/src/contracts/contractInstances.js.map +1 -1
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.js +3 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/types/passkeys.d.ts +3 -2
- package/dist/src/types/transactions.d.ts +21 -0
- package/dist/src/utils/index.d.ts +1 -0
- package/dist/src/utils/index.js +1 -0
- package/dist/src/utils/index.js.map +1 -1
- package/dist/src/utils/passkeys/PasskeySigner.d.ts +15 -3
- package/dist/src/utils/passkeys/PasskeySigner.js +32 -35
- package/dist/src/utils/passkeys/PasskeySigner.js.map +1 -1
- package/dist/src/utils/passkeys/extractPasskeyData.d.ts +18 -0
- package/dist/src/utils/passkeys/extractPasskeyData.js +60 -0
- package/dist/src/utils/passkeys/extractPasskeyData.js.map +1 -0
- package/dist/src/utils/passkeys/index.d.ts +2 -0
- package/dist/src/utils/passkeys/index.js +19 -0
- package/dist/src/utils/passkeys/index.js.map +1 -0
- package/dist/src/utils/safeVersions.d.ts +2 -1
- package/dist/src/utils/safeVersions.js +3 -1
- package/dist/src/utils/safeVersions.js.map +1 -1
- package/dist/src/utils/transactions/utils.d.ts +12 -3
- package/dist/src/utils/transactions/utils.js +11 -7
- package/dist/src/utils/transactions/utils.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
package/dist/src/index.js
CHANGED
|
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.PasskeySigner = exports.SafeProvider = exports.generateTypedData = exports.hashSafeMessage = exports.getEip712MessageTypes = exports.getEip712TxTypes = exports.preimageSafeMessageHash = exports.preimageSafeTransactionHash = exports.buildSignatureBytes = exports.buildContractSignature = exports.generateEIP712Signature = exports.generateSignature = exports.validateEthereumAddress = exports.validateEip3770Address = exports.standardizeSafeTransactionData = exports.getPredictedSafeAddressInitCode = exports.predictSafeAddress = exports.isGasTokenCompatibleWithHandlePayment = exports.getSafeWebAuthnSignerFactoryContract = exports.getSignMessageLibContract = exports.getSafeContract = exports.getProxyFactoryContract = exports.getMultiSendContract = exports.getMultiSendCallOnlyContract = exports.getERC20Decimals = exports.getCreateCallContract = exports.getCompatibilityFallbackHandlerContract = exports.encodeSetupCallData = exports.encodeMultiSendData = exports.encodeCreateProxyWithNonce = exports.SignMessageLibBaseContract = exports.SafeProxyFactoryBaseContract = exports.SafeFactory = exports.SafeBaseContract = exports.PREDETERMINED_SALT_NONCE = exports.MultiSendBaseContract = exports.MultiSendCallOnlyBaseContract = exports.EthSafeSignature = exports.DEFAULT_SAFE_VERSION = exports.createERC20TokenTransferTransaction = exports.CreateCallBaseContract = exports.ContractManager = exports.estimateSafeDeploymentGas = exports.estimateSafeTxGas = exports.estimateTxGas = exports.estimateTxBaseGas = void 0;
|
|
20
|
+
exports.PasskeySigner = exports.SafeProvider = exports.generateTypedData = exports.hashSafeMessage = exports.getEip712MessageTypes = exports.getEip712TxTypes = exports.preimageSafeMessageHash = exports.preimageSafeTransactionHash = exports.buildSignatureBytes = exports.buildContractSignature = exports.generateEIP712Signature = exports.generateSignature = exports.validateEthereumAddress = exports.validateEip3770Address = exports.standardizeSafeTransactionData = exports.getPredictedSafeAddressInitCode = exports.predictSafeAddress = exports.isGasTokenCompatibleWithHandlePayment = exports.getSafeWebAuthnSignerFactoryContract = exports.getSignMessageLibContract = exports.getSafeContract = exports.getProxyFactoryContract = exports.getMultiSendContract = exports.getMultiSendCallOnlyContract = exports.getERC20Decimals = exports.getCreateCallContract = exports.getCompatibilityFallbackHandlerContract = exports.encodeSetupCallData = exports.encodeMultiSendData = exports.encodeCreateProxyWithNonce = exports.SignMessageLibBaseContract = exports.SafeProxyFactoryBaseContract = exports.SafeFactory = exports.SafeBaseContract = exports.PREDETERMINED_SALT_NONCE = exports.MultiSendBaseContract = exports.MultiSendCallOnlyBaseContract = exports.EthSafeSignature = exports.DEFAULT_SAFE_VERSION = exports.createERC20TokenTransferTransaction = exports.CreateCallBaseContract = exports.ContractManager = exports.extractPasskeyCoordinates = exports.extractPasskeyData = exports.estimateSafeDeploymentGas = exports.estimateSafeTxGas = exports.estimateTxGas = exports.estimateTxBaseGas = void 0;
|
|
21
21
|
const Safe_1 = __importDefault(require("./Safe"));
|
|
22
22
|
const SafeProvider_1 = __importDefault(require("./SafeProvider"));
|
|
23
23
|
exports.SafeProvider = SafeProvider_1.default;
|
|
@@ -55,6 +55,8 @@ Object.defineProperty(exports, "estimateTxBaseGas", { enumerable: true, get: fun
|
|
|
55
55
|
Object.defineProperty(exports, "estimateTxGas", { enumerable: true, get: function () { return utils_2.estimateTxGas; } });
|
|
56
56
|
Object.defineProperty(exports, "estimateSafeTxGas", { enumerable: true, get: function () { return utils_2.estimateSafeTxGas; } });
|
|
57
57
|
Object.defineProperty(exports, "estimateSafeDeploymentGas", { enumerable: true, get: function () { return utils_2.estimateSafeDeploymentGas; } });
|
|
58
|
+
Object.defineProperty(exports, "extractPasskeyData", { enumerable: true, get: function () { return utils_2.extractPasskeyData; } });
|
|
59
|
+
Object.defineProperty(exports, "extractPasskeyCoordinates", { enumerable: true, get: function () { return utils_2.extractPasskeyCoordinates; } });
|
|
58
60
|
Object.defineProperty(exports, "validateEthereumAddress", { enumerable: true, get: function () { return utils_2.validateEthereumAddress; } });
|
|
59
61
|
Object.defineProperty(exports, "validateEip3770Address", { enumerable: true, get: function () { return utils_2.validateEip3770Address; } });
|
|
60
62
|
const utils_3 = require("./utils/transactions/utils");
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,kDAAyB;AACzB,kEAAyC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,kDAAyB;AACzB,kEAAyC;AAkHvC,uBAlHK,sBAAY,CAkHL;AAjHd,2CAOoB;AAkElB,uGAxEA,kCAAsB,OAwEA;AAKtB,sGA5EA,iCAAqB,OA4EA;AADrB,8GA1EA,yCAA6B,OA0EA;AAG7B,iGA5EA,4BAAgB,OA4EA;AAEhB,6GA7EA,wCAA4B,OA6EA;AAE5B,2GA9EA,sCAA0B,OA8EA;AA5E5B,+CAAyD;AAmEvD,qGAnEO,6BAAoB,OAmEP;AAlEtB,iFAS4C;AAsE1C,wHA9EA,iEAAuC,OA8EA;AACvC,sGA9EA,+CAAqB,OA8EA;AAErB,6GA/EA,sDAA4B,OA+EA;AAC5B,qGA/EA,8CAAoB,OA+EA;AACpB,wGA/EA,iDAAuB,OA+EA;AACvB,gGA/EA,yCAAe,OA+EA;AACf,0GA/EA,mDAAyB,OA+EA;AACzB,qHA/EA,8DAAoC,OA+EA;AA7EtC,6CAM0B;AAsDxB,yGA3DA,gCAAwB,OA2DA;AAMxB,2GAhEA,kCAA0B,OAgEA;AAE1B,oGAjEA,2BAAmB,OAiEA;AAWnB,mGA3EA,0BAAkB,OA2EA;AAClB,gHA3EA,uCAA+B,OA2EA;AAzEjC,iFAAwD;AA8CtD,0BA9CK,yBAAe,CA8CL;AA7CjB,gEAAuC;AAsDrC,sBAtDK,qBAAW,CAsDL;AArDb,mCAUgB;AAsCd,iGA/CA,wBAAgB,OA+CA;AAVhB,kGApCA,yBAAiB,OAoCA;AACjB,8FApCA,qBAAa,OAoCA;AACb,kGApCA,yBAAiB,OAoCA;AACjB,0GApCA,iCAAyB,OAoCA;AACzB,mGApCA,0BAAkB,OAoCA;AAClB,0GApCA,iCAAyB,OAoCA;AA+BzB,wGAlEA,+BAAuB,OAkEA;AADvB,uGAhEA,8BAAsB,OAgEA;AA7DxB,sDAAgG;AA8C9F,oGA9CO,2BAAmB,OA8CP;AAcnB,+GA5D4B,sCAA8B,OA4D5B;AA3DhC,2CAIuB;AA6CrB,iGAhDA,yBAAgB,OAgDA;AAOhB,sHAtDA,8CAAqC,OAsDA;AAvBrC,oHA9BA,4CAAmC,OA8BA;AA3BrC,oDAOiC;AAiD/B,kGAvDA,yBAAiB,OAuDA;AACjB,wGAvDA,+BAAuB,OAuDA;AACvB,uGAvDA,8BAAsB,OAuDA;AACtB,oGAvDA,2BAAmB,OAuDA;AACnB,4GAvDA,mCAA2B,OAuDA;AAC3B,wGAvDA,+BAAuB,OAuDA;AApDzB,6CAKwB;AAgDtB,iGApDA,0BAAgB,OAoDA;AAChB,sGApDA,+BAAqB,OAoDA;AACrB,gGApDA,yBAAe,OAoDA;AACf,kGApDA,2BAAiB,OAoDA;AAjDnB,mFAA0D;AAmDxD,wBAnDK,uBAAa,CAmDL;AAGf,0CAAuB;AAEvB,kBAAe,cAAI,CAAA"}
|
|
@@ -54,10 +54,31 @@ export type RemoveOwnerTxParams = {
|
|
|
54
54
|
/** threshold - The new threshold */
|
|
55
55
|
threshold?: number;
|
|
56
56
|
};
|
|
57
|
+
export type RemovePasskeyOwnerTxParams = {
|
|
58
|
+
/** passkey - The passkey of the owner that will be removed */
|
|
59
|
+
passkey: PasskeyArgType;
|
|
60
|
+
/** threshold - The new threshold */
|
|
61
|
+
threshold?: number;
|
|
62
|
+
};
|
|
57
63
|
export type SwapOwnerTxParams = {
|
|
58
64
|
/** oldOwnerAddress - The old owner address */
|
|
59
65
|
oldOwnerAddress: string;
|
|
60
66
|
/** newOwnerAddress - The new owner address */
|
|
61
67
|
newOwnerAddress: string;
|
|
68
|
+
} | {
|
|
69
|
+
/** oldOwnerPasskey - The old owner passkey */
|
|
70
|
+
oldOwnerPasskey: PasskeyArgType;
|
|
71
|
+
/** newOwnerAddress - The new owner address */
|
|
72
|
+
newOwnerAddress: string;
|
|
73
|
+
} | {
|
|
74
|
+
/** oldOwnerAddress - The old owner address */
|
|
75
|
+
oldOwnerAddress: string;
|
|
76
|
+
/** newOwnerPasskey - The new owner passkey */
|
|
77
|
+
newOwnerPasskey: PasskeyArgType;
|
|
78
|
+
} | {
|
|
79
|
+
/** oldOwnerPasskey - The old owner passkey */
|
|
80
|
+
oldOwnerPasskey: PasskeyArgType;
|
|
81
|
+
/** newOwnerPasskey - The new owner passkey */
|
|
82
|
+
newOwnerPasskey: PasskeyArgType;
|
|
62
83
|
};
|
|
63
84
|
export {};
|
package/dist/src/utils/index.js
CHANGED
|
@@ -20,4 +20,5 @@ __exportStar(require("./eip-712"), exports);
|
|
|
20
20
|
__exportStar(require("./safeVersions"), exports);
|
|
21
21
|
__exportStar(require("./signatures"), exports);
|
|
22
22
|
__exportStar(require("./transactions"), exports);
|
|
23
|
+
__exportStar(require("./passkeys"), exports);
|
|
23
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAAyB;AACzB,6CAA0B;AAC1B,4CAAyB;AACzB,iDAA8B;AAC9B,+CAA4B;AAC5B,iDAA8B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAAyB;AACzB,6CAA0B;AAC1B,4CAAyB;AACzB,iDAA8B;AAC9B,+CAA4B;AAC5B,iDAA8B;AAC9B,6CAA0B"}
|
|
@@ -21,10 +21,13 @@ declare class PasskeySigner extends AbstractSigner {
|
|
|
21
21
|
* Safe WebAuthn signer factory Contract.
|
|
22
22
|
*/
|
|
23
23
|
safeWebAuthnSignerFactoryContract: SafeWebAuthnSignerFactoryContractImplementationType;
|
|
24
|
-
constructor(passkeyRawId: ArrayBuffer, coordinates: PasskeyCoordinates, safeWebAuthnSignerFactoryContract: SafeWebAuthnSignerFactoryContractImplementationType, provider: Provider);
|
|
25
|
-
static init(passkey: PasskeyArgType, safeWebAuthnSignerFactoryContract: SafeWebAuthnSignerFactoryContractImplementationType, provider: Provider): Promise<PasskeySigner>;
|
|
26
24
|
/**
|
|
27
|
-
*
|
|
25
|
+
* P256 Verifier Contract address.
|
|
26
|
+
*/
|
|
27
|
+
verifierAddress: string;
|
|
28
|
+
constructor(passkey: PasskeyArgType, safeWebAuthnSignerFactoryContract: SafeWebAuthnSignerFactoryContractImplementationType, provider: Provider);
|
|
29
|
+
/**
|
|
30
|
+
* Returns the address associated with the passkey signer.
|
|
28
31
|
* @returns {Promise<string>} A promise that resolves to the signer's address.
|
|
29
32
|
*/
|
|
30
33
|
getAddress(): Promise<string>;
|
|
@@ -33,6 +36,15 @@ declare class PasskeySigner extends AbstractSigner {
|
|
|
33
36
|
* @returns {string} The encoded data to create a signer.
|
|
34
37
|
*/
|
|
35
38
|
encodeCreateSigner(): string;
|
|
39
|
+
/**
|
|
40
|
+
* Creates the deployment transaction to create a passkey signer.
|
|
41
|
+
* @returns {string} The deployment transaction to create a passkey signer.
|
|
42
|
+
*/
|
|
43
|
+
createPasskeyDeploymentTransaction(): Promise<{
|
|
44
|
+
to: string;
|
|
45
|
+
value: string;
|
|
46
|
+
data: string;
|
|
47
|
+
}>;
|
|
36
48
|
/**
|
|
37
49
|
* Signs the provided data using the passkey.
|
|
38
50
|
* @param {Uint8Array} data - The data to be signed.
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const ethers_1 = require("ethers");
|
|
4
|
-
const
|
|
4
|
+
const constants_1 = require("../constants");
|
|
5
|
+
const extractPasskeyData_1 = require("./extractPasskeyData");
|
|
5
6
|
// FIXME: use the production deployment packages instead of a hardcoded address
|
|
6
7
|
const P256_VERIFIER_ADDRESS = process.env.TEST_NETWORK === 'hardhat'
|
|
7
8
|
? '0x0287C6F8975f2571E8FAa1D34fe638B1468D563D' // In Hardhat, use the local deployed FCLP256Verifier contract
|
|
@@ -13,25 +14,23 @@ const P256_VERIFIER_ADDRESS = process.env.TEST_NETWORK === 'hardhat'
|
|
|
13
14
|
* @extends {AbstractSigner}
|
|
14
15
|
*/
|
|
15
16
|
class PasskeySigner extends ethers_1.AbstractSigner {
|
|
16
|
-
constructor(
|
|
17
|
+
constructor(passkey, safeWebAuthnSignerFactoryContract, provider) {
|
|
17
18
|
super(provider);
|
|
18
|
-
|
|
19
|
+
const { rawId, coordinates, customVerifierAddress } = passkey;
|
|
20
|
+
this.passkeyRawId = (0, extractPasskeyData_1.hexStringToUint8Array)(rawId);
|
|
19
21
|
this.coordinates = coordinates;
|
|
22
|
+
this.verifierAddress = customVerifierAddress || P256_VERIFIER_ADDRESS;
|
|
20
23
|
this.safeWebAuthnSignerFactoryContract = safeWebAuthnSignerFactoryContract;
|
|
21
24
|
}
|
|
22
|
-
static async init(passkey, safeWebAuthnSignerFactoryContract, provider) {
|
|
23
|
-
const coordinates = await extractPasskeyCoordinates(passkey.publicKey);
|
|
24
|
-
return new PasskeySigner(passkey.rawId, coordinates, safeWebAuthnSignerFactoryContract, provider);
|
|
25
|
-
}
|
|
26
25
|
/**
|
|
27
|
-
* Returns the address associated with the
|
|
26
|
+
* Returns the address associated with the passkey signer.
|
|
28
27
|
* @returns {Promise<string>} A promise that resolves to the signer's address.
|
|
29
28
|
*/
|
|
30
29
|
async getAddress() {
|
|
31
30
|
const [signerAddress] = await this.safeWebAuthnSignerFactoryContract.getSigner([
|
|
32
31
|
BigInt(this.coordinates.x),
|
|
33
32
|
BigInt(this.coordinates.y),
|
|
34
|
-
BigInt(
|
|
33
|
+
BigInt(this.verifierAddress)
|
|
35
34
|
]);
|
|
36
35
|
return signerAddress;
|
|
37
36
|
}
|
|
@@ -43,9 +42,26 @@ class PasskeySigner extends ethers_1.AbstractSigner {
|
|
|
43
42
|
return this.safeWebAuthnSignerFactoryContract.encode('createSigner', [
|
|
44
43
|
BigInt(this.coordinates.x),
|
|
45
44
|
BigInt(this.coordinates.y),
|
|
46
|
-
BigInt(
|
|
45
|
+
BigInt(this.verifierAddress)
|
|
47
46
|
]);
|
|
48
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Creates the deployment transaction to create a passkey signer.
|
|
50
|
+
* @returns {string} The deployment transaction to create a passkey signer.
|
|
51
|
+
*/
|
|
52
|
+
async createPasskeyDeploymentTransaction() {
|
|
53
|
+
const passkeyAddress = await this.getAddress();
|
|
54
|
+
const isPasskeyDeployed = (await this.provider?.getCode(passkeyAddress)) !== constants_1.EMPTY_DATA;
|
|
55
|
+
if (isPasskeyDeployed) {
|
|
56
|
+
throw new Error('Passkey Signer contract already deployed');
|
|
57
|
+
}
|
|
58
|
+
const passkeySignerDeploymentTransaction = {
|
|
59
|
+
to: await this.safeWebAuthnSignerFactoryContract.getAddress(),
|
|
60
|
+
value: '0',
|
|
61
|
+
data: this.encodeCreateSigner()
|
|
62
|
+
};
|
|
63
|
+
return passkeySignerDeploymentTransaction;
|
|
64
|
+
}
|
|
49
65
|
/**
|
|
50
66
|
* Signs the provided data using the passkey.
|
|
51
67
|
* @param {Uint8Array} data - The data to be signed.
|
|
@@ -70,7 +86,12 @@ class PasskeySigner extends ethers_1.AbstractSigner {
|
|
|
70
86
|
]);
|
|
71
87
|
}
|
|
72
88
|
connect(provider) {
|
|
73
|
-
|
|
89
|
+
const passkey = {
|
|
90
|
+
rawId: Buffer.from(this.passkeyRawId).toString('hex'),
|
|
91
|
+
coordinates: this.coordinates,
|
|
92
|
+
customVerifierAddress: this.verifierAddress
|
|
93
|
+
};
|
|
94
|
+
return new PasskeySigner(passkey, this.safeWebAuthnSignerFactoryContract, provider);
|
|
74
95
|
}
|
|
75
96
|
signTransaction() {
|
|
76
97
|
throw new Error('Passkey Signers cannot sign transactions, they can only sign data.');
|
|
@@ -86,30 +107,6 @@ class PasskeySigner extends ethers_1.AbstractSigner {
|
|
|
86
107
|
}
|
|
87
108
|
}
|
|
88
109
|
exports.default = PasskeySigner;
|
|
89
|
-
/**
|
|
90
|
-
* Extracts and returns coordinates from a given passkey public key.
|
|
91
|
-
*
|
|
92
|
-
* @param {ArrayBuffer} publicKey - The public key of the passkey from which coordinates will be extracted.
|
|
93
|
-
* @returns {Promise<PasskeyCoordinates>} A promise that resolves to an object containing the coordinates derived from the public key of the passkey.
|
|
94
|
-
* @throws {Error} Throws an error if the coordinates could not be extracted via `crypto.subtle.exportKey()`
|
|
95
|
-
*/
|
|
96
|
-
async function extractPasskeyCoordinates(publicKey) {
|
|
97
|
-
const algorithm = {
|
|
98
|
-
name: 'ECDSA',
|
|
99
|
-
namedCurve: 'P-256',
|
|
100
|
-
hash: { name: 'SHA-256' }
|
|
101
|
-
};
|
|
102
|
-
const key = await crypto.subtle.importKey('spki', publicKey, algorithm, true, ['verify']);
|
|
103
|
-
const { x, y } = await crypto.subtle.exportKey('jwk', key);
|
|
104
|
-
const isValidCoordinates = !!x && !!y;
|
|
105
|
-
if (!isValidCoordinates) {
|
|
106
|
-
throw new Error('Failed to generate passkey Coordinates. crypto.subtle.exportKey() failed');
|
|
107
|
-
}
|
|
108
|
-
return {
|
|
109
|
-
x: '0x' + buffer_1.Buffer.from(x, 'base64').toString('hex'),
|
|
110
|
-
y: '0x' + buffer_1.Buffer.from(y, 'base64').toString('hex')
|
|
111
|
-
};
|
|
112
|
-
}
|
|
113
110
|
/**
|
|
114
111
|
* Compute the additional client data JSON fields. This is the fields other than `type` and
|
|
115
112
|
* `challenge` (including `origin` and any other additional client data fields that may be
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PasskeySigner.js","sourceRoot":"","sources":["../../../../src/utils/passkeys/PasskeySigner.ts"],"names":[],"mappings":";;AAAA,mCAAyD;
|
|
1
|
+
{"version":3,"file":"PasskeySigner.js","sourceRoot":"","sources":["../../../../src/utils/passkeys/PasskeySigner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { PasskeyCoordinates, PasskeyArgType } from '../../types/passkeys';
|
|
2
|
+
/**
|
|
3
|
+
* Extracts and returns the passkey data (coordinates and rawId) from a given passkey Credential.
|
|
4
|
+
*
|
|
5
|
+
* @param {Credential} passkeyCredential - The passkey credential generated via `navigator.credentials.create()` using correct parameters.
|
|
6
|
+
* @returns {Promise<PasskeyArgType>} A promise that resolves to an object containing the coordinates and the rawId derived from the passkey.
|
|
7
|
+
* @throws {Error} Throws an error if the coordinates could not be extracted
|
|
8
|
+
*/
|
|
9
|
+
export declare function extractPasskeyData(passkeyCredential: Credential): Promise<PasskeyArgType>;
|
|
10
|
+
/**
|
|
11
|
+
* Extracts and returns coordinates from a given passkey public key.
|
|
12
|
+
*
|
|
13
|
+
* @param {ArrayBuffer} publicKey - The public key of the passkey from which coordinates will be extracted.
|
|
14
|
+
* @returns {Promise<PasskeyCoordinates>} A promise that resolves to an object containing the coordinates derived from the public key of the passkey.
|
|
15
|
+
* @throws {Error} Throws an error if the coordinates could not be extracted via `crypto.subtle.exportKey()`
|
|
16
|
+
*/
|
|
17
|
+
export declare function extractPasskeyCoordinates(publicKey: ArrayBuffer): Promise<PasskeyCoordinates>;
|
|
18
|
+
export declare function hexStringToUint8Array(hexString: string): Uint8Array;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.hexStringToUint8Array = exports.extractPasskeyCoordinates = exports.extractPasskeyData = void 0;
|
|
4
|
+
const buffer_1 = require("buffer");
|
|
5
|
+
/**
|
|
6
|
+
* Extracts and returns the passkey data (coordinates and rawId) from a given passkey Credential.
|
|
7
|
+
*
|
|
8
|
+
* @param {Credential} passkeyCredential - The passkey credential generated via `navigator.credentials.create()` using correct parameters.
|
|
9
|
+
* @returns {Promise<PasskeyArgType>} A promise that resolves to an object containing the coordinates and the rawId derived from the passkey.
|
|
10
|
+
* @throws {Error} Throws an error if the coordinates could not be extracted
|
|
11
|
+
*/
|
|
12
|
+
async function extractPasskeyData(passkeyCredential) {
|
|
13
|
+
const passkey = passkeyCredential;
|
|
14
|
+
const attestationResponse = passkey.response;
|
|
15
|
+
const publicKey = attestationResponse.getPublicKey();
|
|
16
|
+
if (!publicKey) {
|
|
17
|
+
throw new Error('Failed to generate passkey Coordinates. getPublicKey() failed');
|
|
18
|
+
}
|
|
19
|
+
const coordinates = await extractPasskeyCoordinates(publicKey);
|
|
20
|
+
const rawId = buffer_1.Buffer.from(passkey.rawId).toString('hex');
|
|
21
|
+
return {
|
|
22
|
+
rawId,
|
|
23
|
+
coordinates
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
exports.extractPasskeyData = extractPasskeyData;
|
|
27
|
+
/**
|
|
28
|
+
* Extracts and returns coordinates from a given passkey public key.
|
|
29
|
+
*
|
|
30
|
+
* @param {ArrayBuffer} publicKey - The public key of the passkey from which coordinates will be extracted.
|
|
31
|
+
* @returns {Promise<PasskeyCoordinates>} A promise that resolves to an object containing the coordinates derived from the public key of the passkey.
|
|
32
|
+
* @throws {Error} Throws an error if the coordinates could not be extracted via `crypto.subtle.exportKey()`
|
|
33
|
+
*/
|
|
34
|
+
async function extractPasskeyCoordinates(publicKey) {
|
|
35
|
+
const algorithm = {
|
|
36
|
+
name: 'ECDSA',
|
|
37
|
+
namedCurve: 'P-256',
|
|
38
|
+
hash: { name: 'SHA-256' }
|
|
39
|
+
};
|
|
40
|
+
const key = await crypto.subtle.importKey('spki', publicKey, algorithm, true, ['verify']);
|
|
41
|
+
const { x, y } = await crypto.subtle.exportKey('jwk', key);
|
|
42
|
+
const isValidCoordinates = !!x && !!y;
|
|
43
|
+
if (!isValidCoordinates) {
|
|
44
|
+
throw new Error('Failed to generate passkey Coordinates. crypto.subtle.exportKey() failed');
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
x: '0x' + buffer_1.Buffer.from(x, 'base64').toString('hex'),
|
|
48
|
+
y: '0x' + buffer_1.Buffer.from(y, 'base64').toString('hex')
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
exports.extractPasskeyCoordinates = extractPasskeyCoordinates;
|
|
52
|
+
function hexStringToUint8Array(hexString) {
|
|
53
|
+
const arr = [];
|
|
54
|
+
for (let i = 0; i < hexString.length; i += 2) {
|
|
55
|
+
arr.push(parseInt(hexString.substr(i, 2), 16));
|
|
56
|
+
}
|
|
57
|
+
return new Uint8Array(arr);
|
|
58
|
+
}
|
|
59
|
+
exports.hexStringToUint8Array = hexStringToUint8Array;
|
|
60
|
+
//# sourceMappingURL=extractPasskeyData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extractPasskeyData.js","sourceRoot":"","sources":["../../../../src/utils/passkeys/extractPasskeyData.ts"],"names":[],"mappings":";;;AAAA,mCAA+B;AAG/B;;;;;;GAMG;AACI,KAAK,UAAU,kBAAkB,CAAC,iBAA6B;IACpE,MAAM,OAAO,GAAG,iBAAwC,CAAA;IACxD,MAAM,mBAAmB,GAAG,OAAO,CAAC,QAA4C,CAAA;IAEhF,MAAM,SAAS,GAAG,mBAAmB,CAAC,YAAY,EAAE,CAAA;IAEpD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC,CAAA;IAClF,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,yBAAyB,CAAC,SAAS,CAAC,CAAA;IAC9D,MAAM,KAAK,GAAG,eAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IAExD,OAAO;QACL,KAAK;QACL,WAAW;KACZ,CAAA;AACH,CAAC;AAjBD,gDAiBC;AAED;;;;;;GAMG;AACI,KAAK,UAAU,yBAAyB,CAC7C,SAAsB;IAEtB,MAAM,SAAS,GAAG;QAChB,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,OAAO;QACnB,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;KAC1B,CAAA;IAED,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IAEzF,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAA;IAE1D,MAAM,kBAAkB,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAErC,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,0EAA0E,CAAC,CAAA;IAC7F,CAAC;IAED,OAAO;QACL,CAAC,EAAE,IAAI,GAAG,eAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;QAClD,CAAC,EAAE,IAAI,GAAG,eAAM,CAAC,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC;KACnD,CAAA;AACH,CAAC;AAvBD,8DAuBC;AAED,SAAgB,qBAAqB,CAAC,SAAiB;IACrD,MAAM,GAAG,GAAG,EAAE,CAAA;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;IAChD,CAAC;IACD,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;AAC5B,CAAC;AAND,sDAMC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./extractPasskeyData"), exports);
|
|
18
|
+
__exportStar(require("./PasskeySigner"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/passkeys/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAoC;AACpC,kDAA+B"}
|
|
@@ -11,7 +11,8 @@ export declare enum SAFE_FEATURES {
|
|
|
11
11
|
ETH_SIGN = "ETH_SIGN",
|
|
12
12
|
ACCOUNT_ABSTRACTION = "ACCOUNT_ABSTRACTION",
|
|
13
13
|
REQUIRED_TXGAS = "REQUIRED_TXGAS",
|
|
14
|
-
SIMULATE_AND_REVERT = "SIMULATE_AND_REVERT"
|
|
14
|
+
SIMULATE_AND_REVERT = "SIMULATE_AND_REVERT",
|
|
15
|
+
PASSKEY_SIGNER = "PASSKEY_SIGNER"
|
|
15
16
|
}
|
|
16
17
|
export declare const hasSafeFeature: (feature: SAFE_FEATURES, version: string) => boolean;
|
|
17
18
|
export type SafeContractCompatibleWithFallbackHandler = SafeContract_v1_1_1 | SafeContract_v1_2_0 | SafeContract_v1_3_0 | SafeContract_v1_4_1;
|
|
@@ -14,6 +14,7 @@ var SAFE_FEATURES;
|
|
|
14
14
|
SAFE_FEATURES["ACCOUNT_ABSTRACTION"] = "ACCOUNT_ABSTRACTION";
|
|
15
15
|
SAFE_FEATURES["REQUIRED_TXGAS"] = "REQUIRED_TXGAS";
|
|
16
16
|
SAFE_FEATURES["SIMULATE_AND_REVERT"] = "SIMULATE_AND_REVERT";
|
|
17
|
+
SAFE_FEATURES["PASSKEY_SIGNER"] = "PASSKEY_SIGNER";
|
|
17
18
|
})(SAFE_FEATURES || (exports.SAFE_FEATURES = SAFE_FEATURES = {}));
|
|
18
19
|
const SAFE_FEATURES_BY_VERSION = {
|
|
19
20
|
[SAFE_FEATURES.SAFE_TX_GAS_OPTIONAL]: '>=1.3.0',
|
|
@@ -22,7 +23,8 @@ const SAFE_FEATURES_BY_VERSION = {
|
|
|
22
23
|
[SAFE_FEATURES.ETH_SIGN]: '>=1.1.0',
|
|
23
24
|
[SAFE_FEATURES.ACCOUNT_ABSTRACTION]: '>=1.3.0',
|
|
24
25
|
[SAFE_FEATURES.REQUIRED_TXGAS]: '<=1.2.0',
|
|
25
|
-
[SAFE_FEATURES.SIMULATE_AND_REVERT]: '>=1.3.0'
|
|
26
|
+
[SAFE_FEATURES.SIMULATE_AND_REVERT]: '>=1.3.0',
|
|
27
|
+
[SAFE_FEATURES.PASSKEY_SIGNER]: '>=1.3.0'
|
|
26
28
|
};
|
|
27
29
|
const hasSafeFeature = (feature, version) => {
|
|
28
30
|
if (!(feature in SAFE_FEATURES_BY_VERSION)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safeVersions.js","sourceRoot":"","sources":["../../../src/utils/safeVersions.ts"],"names":[],"mappings":";;;;;;AAAA,2EAAwD;AAQxD,IAAY,
|
|
1
|
+
{"version":3,"file":"safeVersions.js","sourceRoot":"","sources":["../../../src/utils/safeVersions.ts"],"names":[],"mappings":";;;;;;AAAA,2EAAwD;AAQxD,IAAY,aASX;AATD,WAAY,aAAa;IACvB,8DAA6C,CAAA;IAC7C,kDAAiC,CAAA;IACjC,gEAA+C,CAAA;IAC/C,sCAAqB,CAAA;IACrB,4DAA2C,CAAA;IAC3C,kDAAiC,CAAA;IACjC,4DAA2C,CAAA;IAC3C,kDAAiC,CAAA;AACnC,CAAC,EATW,aAAa,6BAAb,aAAa,QASxB;AAED,MAAM,wBAAwB,GAAkC;IAC9D,CAAC,aAAa,CAAC,oBAAoB,CAAC,EAAE,SAAS;IAC/C,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,SAAS;IACzC,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAE,SAAS;IAChD,CAAC,aAAa,CAAC,QAAQ,CAAC,EAAE,SAAS;IACnC,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,SAAS;IAC9C,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,SAAS;IACzC,CAAC,aAAa,CAAC,mBAAmB,CAAC,EAAE,SAAS;IAC9C,CAAC,aAAa,CAAC,cAAc,CAAC,EAAE,SAAS;CAC1C,CAAA;AAEM,MAAM,cAAc,GAAG,CAAC,OAAsB,EAAE,OAAe,EAAW,EAAE;IACjF,IAAI,CAAC,CAAC,OAAO,IAAI,wBAAwB,CAAC,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAA;IACd,CAAC;IAED,OAAO,IAAA,mBAAe,EAAC,OAAO,EAAE,wBAAwB,CAAC,OAAO,CAAC,CAAC,CAAA;AACpE,CAAC,CAAA;AANY,QAAA,cAAc,kBAM1B;AAmBM,KAAK,UAAU,yCAAyC,CAC7D,YAA4C;IAE5C,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,CAAA;IAEnD,IAAI,CAAC,IAAA,sBAAc,EAAC,aAAa,CAAC,cAAc,EAAE,WAAW,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,KAAK,CAAC,8EAA8E,CAAC,CAAA;IACjG,CAAC;IAED,OAAO,YAAuD,CAAA;AAChE,CAAC;AAVD,8FAUC;AAEM,KAAK,UAAU,6CAA6C,CACjE,YAA4C;IAE5C,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,UAAU,EAAE,CAAA;IAEnD,IAAI,CAAC,IAAA,sBAAc,EAAC,aAAa,CAAC,mBAAmB,EAAE,WAAW,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF,CAAA;IACH,CAAC;IAED,OAAO,YAA2D,CAAA;AACpE,CAAC;AAZD,sGAYC"}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
import { AddOwnerTxParams, AddPasskeyOwnerTxParams, StandardizeSafeTransactionDataProps } from '../../types';
|
|
1
|
+
import { AddOwnerTxParams, AddPasskeyOwnerTxParams, PasskeyArgType, RemoveOwnerTxParams, RemovePasskeyOwnerTxParams, StandardizeSafeTransactionDataProps, SwapOwnerTxParams } from '../../types';
|
|
2
2
|
import { MetaTransactionData, SafeMultisigTransactionResponse, SafeTransaction, SafeTransactionData, SafeTransactionDataPartial } from '@safe-global/safe-core-sdk-types';
|
|
3
3
|
export declare function standardizeMetaTransactionData(tx: SafeTransactionDataPartial): MetaTransactionData;
|
|
4
4
|
export declare function standardizeSafeTransactionData({ safeContract, predictedSafe, provider, tx, contractNetworks }: StandardizeSafeTransactionDataProps): Promise<SafeTransactionData>;
|
|
5
5
|
export declare function encodeMultiSendData(txs: MetaTransactionData[]): string;
|
|
6
6
|
export declare function decodeMultiSendData(encodedData: string): MetaTransactionData[];
|
|
7
7
|
export declare function isSafeMultisigTransactionResponse(safeTransaction: SafeTransaction | SafeMultisigTransactionResponse): safeTransaction is SafeMultisigTransactionResponse;
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
type PasskeyParam = {
|
|
9
|
+
passkey: PasskeyArgType;
|
|
10
|
+
};
|
|
11
|
+
export declare function isPasskeyParam(params: AddOwnerTxParams | AddPasskeyOwnerTxParams | RemoveOwnerTxParams | RemovePasskeyOwnerTxParams): params is PasskeyParam;
|
|
12
|
+
export declare function isOldOwnerPasskey(params: SwapOwnerTxParams): params is SwapOwnerTxParams & {
|
|
13
|
+
oldOwnerPasskey: PasskeyArgType;
|
|
14
|
+
};
|
|
15
|
+
export declare function isNewOwnerPasskey(params: SwapOwnerTxParams): params is SwapOwnerTxParams & {
|
|
16
|
+
newOwnerPasskey: PasskeyArgType;
|
|
17
|
+
};
|
|
18
|
+
export {};
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.isNewOwnerPasskey = exports.isOldOwnerPasskey = exports.isPasskeyParam = exports.isSafeMultisigTransactionResponse = exports.decodeMultiSendData = exports.encodeMultiSendData = exports.standardizeSafeTransactionData = exports.standardizeMetaTransactionData = void 0;
|
|
7
7
|
const ethers_1 = require("ethers");
|
|
8
8
|
const SafeProvider_1 = __importDefault(require("../../SafeProvider"));
|
|
9
9
|
const config_1 = require("../../contracts/config");
|
|
@@ -112,12 +112,16 @@ function isSafeMultisigTransactionResponse(safeTransaction) {
|
|
|
112
112
|
return safeTransaction.isExecuted !== undefined;
|
|
113
113
|
}
|
|
114
114
|
exports.isSafeMultisigTransactionResponse = isSafeMultisigTransactionResponse;
|
|
115
|
-
function
|
|
116
|
-
return params.ownerAddress !== undefined;
|
|
117
|
-
}
|
|
118
|
-
exports.isAddOwnerTxParams = isAddOwnerTxParams;
|
|
119
|
-
function isAddPasskeyOwnerTxParams(params) {
|
|
115
|
+
function isPasskeyParam(params) {
|
|
120
116
|
return params.passkey !== undefined;
|
|
121
117
|
}
|
|
122
|
-
exports.
|
|
118
|
+
exports.isPasskeyParam = isPasskeyParam;
|
|
119
|
+
function isOldOwnerPasskey(params) {
|
|
120
|
+
return params.oldOwnerPasskey !== undefined;
|
|
121
|
+
}
|
|
122
|
+
exports.isOldOwnerPasskey = isOldOwnerPasskey;
|
|
123
|
+
function isNewOwnerPasskey(params) {
|
|
124
|
+
return params.newOwnerPasskey !== undefined;
|
|
125
|
+
}
|
|
126
|
+
exports.isNewOwnerPasskey = isNewOwnerPasskey;
|
|
123
127
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/utils/transactions/utils.ts"],"names":[],"mappings":";;;;;;AAAA,mCAAoF;AACpF,0FAAiE;AACjE,uEAAiF;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/utils/transactions/utils.ts"],"names":[],"mappings":"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"}
|