Skip to content

Commit 33f0576

Browse files
authored
Use GCP KMS wallet from SDK (#169)
1 parent e1eb437 commit 33f0576

File tree

6 files changed

+39
-57
lines changed

6 files changed

+39
-57
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
"@thirdweb-dev/chains": "^0.1.46",
4545
"@thirdweb-dev/sdk": "0.0.0-dev-b1d4b3b-20230922050105",
4646
"@thirdweb-dev/service-utils": "^0.4.2",
47-
"@thirdweb-dev/wallets": "^1.1.23",
47+
"@thirdweb-dev/wallets": "0.0.0-dev-d86829b-20230927000710",
4848
"body-parser": "^1.20.2",
4949
"cookie": "^0.5.0",
5050
"copyfiles": "^2.4.1",

server/utils/cache/getWallet.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
import { EVMWallet, EthersWallet } from "@thirdweb-dev/wallets";
1+
import { EVMWallet } from "@thirdweb-dev/wallets";
22
import { getAwsKmsWallet } from "../../../server/utils/wallets/getAwsKmsWallet";
3-
import { getGcpKmsSigner } from "../../../server/utils/wallets/getGcpKmsSigner";
43
import { getLocalWallet } from "../../../server/utils/wallets/getLocalWallet";
54
import { getWalletDetails } from "../../../src/db/wallets/getWalletDetails";
65
import { PrismaTransaction } from "../../../src/schema/prisma";
76
import { WalletType } from "../../../src/schema/wallet";
7+
import { getGcpKmsWallet } from "../wallets/getGcpKmsWallet";
88
import { getSmartWallet } from "../wallets/getSmartWallet";
99

1010
const walletsCache = new Map<string, EVMWallet>();
@@ -46,11 +46,10 @@ export const getWallet = async <TWallet extends EVMWallet>({
4646
});
4747
break;
4848
case WalletType.gcpKms:
49-
const signer = getGcpKmsSigner({
49+
wallet = getGcpKmsWallet({
5050
gcpKmsKeyId: walletDetails.gcpKmsKeyId!,
5151
gcpKmsKeyVersionId: walletDetails.gcpKmsKeyVersionId!,
5252
});
53-
wallet = new EthersWallet(signer);
5453
break;
5554
case WalletType.local:
5655
wallet = await getLocalWallet({ chainId, walletAddress });

server/utils/wallets/createGcpKmsWallet.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { KeyManagementServiceClient } from "@google-cloud/kms";
22
import { createWalletDetails } from "../../../src/db/wallets/createWalletDetails";
33
import { WalletType } from "../../../src/schema/wallet";
44
import { env } from "../../../src/utils/env";
5-
import { getGcpKmsSigner } from "./getGcpKmsSigner";
5+
import { getGcpKmsWallet } from "./getGcpKmsWallet";
66

77
export const createGcpKmsWallet = async (): Promise<string> => {
88
if (env.WALLET_CONFIGURATION.type !== WalletType.gcpKms) {
@@ -37,12 +37,12 @@ export const createGcpKmsWallet = async (): Promise<string> => {
3737

3838
await client.close();
3939

40-
const signer = getGcpKmsSigner({
40+
const wallet = getGcpKmsWallet({
4141
gcpKmsKeyId: cryptoKeyId,
4242
gcpKmsKeyVersionId: "1",
4343
});
4444

45-
const walletAddress = await signer.getAddress();
45+
const walletAddress = await wallet.getAddress();
4646
await createWalletDetails({
4747
type: WalletType.gcpKms,
4848
address: walletAddress,

server/utils/wallets/getGcpKmsSigner.ts renamed to server/utils/wallets/getGcpKmsWallet.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
1-
import { GcpKmsSigner } from "ethers-gcp-kms-signer";
1+
import { GcpKmsWallet } from "@thirdweb-dev/wallets/evm/wallets/gcp-kms";
22
import { WalletType } from "../../../src/schema/wallet";
33
import { env } from "../../../src/utils/env";
44

5-
interface GetGcpKmsSignerParams {
5+
interface GetGcpKmsWalletParams {
66
gcpKmsKeyId: string;
77
gcpKmsKeyVersionId: string;
88
}
99

10-
export const getGcpKmsSigner = ({
10+
export const getGcpKmsWallet = ({
1111
gcpKmsKeyId,
1212
gcpKmsKeyVersionId,
13-
}: GetGcpKmsSignerParams) => {
13+
}: GetGcpKmsWalletParams) => {
1414
if (env.WALLET_CONFIGURATION.type !== WalletType.gcpKms) {
1515
throw new Error(`Server was not configured for GCP KMS.`);
1616
}
1717

18-
return new GcpKmsSigner({
18+
return new GcpKmsWallet({
1919
projectId: env.WALLET_CONFIGURATION.gcpApplicationProjectId,
2020
locationId: env.WALLET_CONFIGURATION.gcpKmsLocationId,
2121
keyRingId: env.WALLET_CONFIGURATION.gcpKmsKeyRingId,

server/utils/wallets/importGcpKmsWallet.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { createWalletDetails } from "../../../src/db/wallets/createWalletDetails";
22
import { WalletType } from "../../../src/schema/wallet";
33
import { env } from "../../../src/utils/env";
4-
import { getGcpKmsSigner } from "./getGcpKmsSigner";
4+
import { getGcpKmsWallet } from "./getGcpKmsWallet";
55

66
interface ImportGcpKmsWalletParams {
77
gcpKmsKeyId: string;
@@ -17,9 +17,9 @@ export const importGcpKmsWallet = async ({
1717
}
1818

1919
const gcpKmsResourcePath = `projects/${env.WALLET_CONFIGURATION.gcpApplicationProjectId}/locations/${env.WALLET_CONFIGURATION.gcpKmsLocationId}/keyRings/${env.WALLET_CONFIGURATION.gcpKmsKeyRingId}/cryptoKeys/${gcpKmsKeyId}/cryptoKeysVersion/${gcpKmsKeyVersionId}`;
20-
const signer = getGcpKmsSigner({ gcpKmsKeyId, gcpKmsKeyVersionId });
20+
const wallet = getGcpKmsWallet({ gcpKmsKeyId, gcpKmsKeyVersionId });
2121

22-
const walletAddress = await signer.getAddress();
22+
const walletAddress = await wallet.getAddress();
2323
await createWalletDetails({
2424
type: WalletType.gcpKms,
2525
address: walletAddress,

yarn.lock

Lines changed: 24 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1958,18 +1958,18 @@
19581958
resolved "https://registry.yarnpkg.com/@openzeppelin/contracts/-/contracts-4.3.3.tgz#ff6ee919fc2a1abaf72b22814bfb72ed129ec137"
19591959
integrity sha512-tDBopO1c98Yk7Cv/PZlHqrvtVjlgK5R4J6jxLwoO7qxK4xqOiZG+zSkIvGFpPZ0ikc3QOED3plgdqjgNTnBc7g==
19601960

1961-
"@paperxyz/embedded-wallet-service-sdk@^1.1.3":
1962-
version "1.1.3"
1963-
resolved "https://registry.yarnpkg.com/@paperxyz/embedded-wallet-service-sdk/-/embedded-wallet-service-sdk-1.1.3.tgz#f2a65f27843a04dd6ada21f15924b502d296401b"
1964-
integrity sha512-3lPiUjFYTikj/amsBo+TlTDd+jFIUZ0+4BVFmROwM6qL4zecB2LQojcUq3I0Td8ho9yevdI+EQ57p6XWaq18yg==
1961+
"@paperxyz/embedded-wallet-service-sdk@^1.2.4":
1962+
version "1.2.4"
1963+
resolved "https://registry.yarnpkg.com/@paperxyz/embedded-wallet-service-sdk/-/embedded-wallet-service-sdk-1.2.4.tgz#2f7f33f7b237ca36b0ac762563bd110c08712c4b"
1964+
integrity sha512-yCOvGB6aEQB06UWowBgu0+thXOwxcHLF3j+e0YgiWtvEpZ8EgbfqbuL9NHN0zJJsTNjF05T39haDQMOBgrMpYA==
19651965
dependencies:
19661966
"@ethersproject/abstract-signer" "^5.7.0"
19671967
"@ethersproject/bytes" "^5.7.0"
19681968
"@ethersproject/properties" "^5.7.0"
19691969
"@ethersproject/providers" "^5.7.2"
19701970
"@paperxyz/sdk-common-utilities" "*"
19711971

1972-
"@paperxyz/sdk-common-utilities@*":
1972+
"@paperxyz/sdk-common-utilities@*", "@paperxyz/sdk-common-utilities@^0.1.0":
19731973
version "0.1.0"
19741974
resolved "https://registry.yarnpkg.com/@paperxyz/sdk-common-utilities/-/sdk-common-utilities-0.1.0.tgz#a948ef20d080b63e8bc0caa3ef337177a782f370"
19751975
integrity sha512-+zE2wp9gI5kjI6yHdrigeqLRDueAFz70v6hUKOT98Nyy4yL8YUR3OvXFAnAyZLXrr0v1uLlDYQdBz0fI2StmGg==
@@ -2795,23 +2795,16 @@
27952795
resolved "https://registry.yarnpkg.com/@thirdweb-dev/chains/-/chains-0.0.0-dev-b1d4b3b-20230922050105.tgz#dc628c6189af628a9cb05af07201b0f79794fbd2"
27962796
integrity sha512-lvZfKqjcl3puCAe/WFLOcxCGq+X/U+6NbJPr2fZHihIunvegHv/43evP7FIWuFBJzN8QLmgsaG9ufHy6ePoqyw==
27972797

2798-
"@thirdweb-dev/chains@0.1.50":
2799-
version "0.1.50"
2800-
resolved "https://registry.yarnpkg.com/@thirdweb-dev/chains/-/chains-0.1.50.tgz#857ce24a30821497974e55d75e721905cb35ca33"
2801-
integrity sha512-0rpBdFVgTE5mjgbafoBkpUnq0izx9NZz0mfFammQXWb08eQZUueuBHOVNhK2pRQT346SpQLtf65Oqag82+zZoA==
2798+
"@thirdweb-dev/chains@0.0.0-dev-d86829b-20230927000710":
2799+
version "0.0.0-dev-d86829b-20230927000710"
2800+
resolved "https://registry.yarnpkg.com/@thirdweb-dev/chains/-/chains-0.0.0-dev-d86829b-20230927000710.tgz#2035236423bf0ff2a47683185e0f1a1bc5104255"
2801+
integrity sha512-V6AGRv4XqHoHJuBwSj4rhautLoZnM6LkRBnFSQsqXxfmZwsK0IU79+Rxf/EWtSI+XEM/mTekme//q0HVp4YJUg==
28022802

28032803
"@thirdweb-dev/chains@^0.1.46":
28042804
version "0.1.46"
28052805
resolved "https://registry.yarnpkg.com/@thirdweb-dev/chains/-/chains-0.1.46.tgz#d115c0b8efb02e74ee38ef8c1237bdf476e62717"
28062806
integrity sha512-AVDLJZ6ttFY8jPzQTKe3mRMnCAQcUzK6eX5vjs9A5CqUCdq7mBmuMM4x3fRs/80FR4vRdEaEYkdRv6HCjCHxGw==
28072807

2808-
"@thirdweb-dev/contracts-js@1.3.12":
2809-
version "1.3.12"
2810-
resolved "https://registry.yarnpkg.com/@thirdweb-dev/contracts-js/-/contracts-js-1.3.12.tgz#57aa2ad364ad78a2816cd045f5a555514fee4891"
2811-
integrity sha512-CBgxCYea7fst4bSS1dXDDOOB2rb9FsgFCAUzQPSQIlpqajOJES1fEPZc/TlFz7u444AYxA/9NoHesQ9RipQUgA==
2812-
dependencies:
2813-
"@thirdweb-dev/contracts" "3.8.5"
2814-
28152808
"@thirdweb-dev/contracts-js@1.3.13":
28162809
version "1.3.13"
28172810
resolved "https://registry.yarnpkg.com/@thirdweb-dev/contracts-js/-/contracts-js-1.3.13.tgz#17b07f7ead147177aa979dd8f850030d4b31bc68"
@@ -2830,17 +2823,6 @@
28302823
"@thirdweb-dev/dynamic-contracts" "^1.1.2"
28312824
erc721a-upgradeable "^3.3.0"
28322825

2833-
"@thirdweb-dev/contracts@3.8.5":
2834-
version "3.8.5"
2835-
resolved "https://registry.yarnpkg.com/@thirdweb-dev/contracts/-/contracts-3.8.5.tgz#7c9e95808c74a43830408cb1c8a2f477c45cc371"
2836-
integrity sha512-JUAeJJlNLw+Lb/8StER8k74VEi5kXDaQx6Ko3cyJnKTWHpZ28xvGIPphkgOFaLw6cG/q4xB423crcZnQZw9YLQ==
2837-
dependencies:
2838-
"@chainlink/contracts" "^0.6.1"
2839-
"@openzeppelin/contracts" "4.7.3"
2840-
"@openzeppelin/contracts-upgradeable" "4.7.3"
2841-
"@thirdweb-dev/dynamic-contracts" "^1.1.2"
2842-
erc721a-upgradeable "^3.3.0"
2843-
28442826
"@thirdweb-dev/dynamic-contracts@^1.1.2":
28452827
version "1.1.4"
28462828
resolved "https://registry.yarnpkg.com/@thirdweb-dev/dynamic-contracts/-/dynamic-contracts-1.1.4.tgz#f14de117bad647d0f32073325627f4b31963446f"
@@ -2874,13 +2856,13 @@
28742856
yaml "^2.3.1"
28752857
zod "^3.20.2"
28762858

2877-
"@thirdweb-dev/sdk@3.10.59":
2878-
version "3.10.59"
2879-
resolved "https://registry.yarnpkg.com/@thirdweb-dev/sdk/-/sdk-3.10.59.tgz#9f820ee511a5bf20d865958961a125be05b7acb6"
2880-
integrity sha512-uDGc2yavYRiXP1+etUaDNLJdzaTSFRPQNoKNqzbR1HMHMHb/KHHPXHKO50AuKpc5pMw8/f+OmCphF0qTMTZu1Q==
2859+
"@thirdweb-dev/sdk@0.0.0-dev-d86829b-20230927000710":
2860+
version "0.0.0-dev-d86829b-20230927000710"
2861+
resolved "https://registry.yarnpkg.com/@thirdweb-dev/sdk/-/sdk-0.0.0-dev-d86829b-20230927000710.tgz#5bfbae7eee26bc67684434740925ab5c99e31d0d"
2862+
integrity sha512-629sIYKBKN78N5Sv2bHfjUqJU5XUYYC8WEPW4gLe7IT72aK/F+VzpUtuM36JNsRf7uGbtb2tgpDUh6vdl7JGCw==
28812863
dependencies:
2882-
"@thirdweb-dev/chains" "0.1.50"
2883-
"@thirdweb-dev/contracts-js" "1.3.12"
2864+
"@thirdweb-dev/chains" "0.0.0-dev-d86829b-20230927000710"
2865+
"@thirdweb-dev/contracts-js" "1.3.13"
28842866
"@thirdweb-dev/generated-abis" "0.0.1"
28852867
"@thirdweb-dev/storage" "1.2.10"
28862868
abitype "^0.2.5"
@@ -2915,10 +2897,10 @@
29152897
form-data "^4.0.0"
29162898
uuid "^9.0.0"
29172899

2918-
"@thirdweb-dev/wallets@^1.1.23":
2919-
version "1.1.23"
2920-
resolved "https://registry.yarnpkg.com/@thirdweb-dev/wallets/-/wallets-1.1.23.tgz#c6d30dea71a477a7a18f91c8745b5afab84443a3"
2921-
integrity sha512-xwFdUK3izhFdfJFq1NZnjrG03rHjxteSfxi8VV1TNL7izl36WLFbW/IkLMYnxQ8Yb90l8E7ET29mXS6VQHChjQ==
2900+
"@thirdweb-dev/wallets@0.0.0-dev-d86829b-20230927000710":
2901+
version "0.0.0-dev-d86829b-20230927000710"
2902+
resolved "https://registry.yarnpkg.com/@thirdweb-dev/wallets/-/wallets-0.0.0-dev-d86829b-20230927000710.tgz#aec384d6f3bbe3c4bb206a3c8bf58a0040d0fdb7"
2903+
integrity sha512-j2/381RERxTjDgX4eHp/yeAxbq0KTCcbwlE9uMPEO+YBd5+fa4zWF0RDTZCB+WjkLk9q0iFEEPPHPtkZGe173Q==
29222904
dependencies:
29232905
"@account-abstraction/contracts" "^0.5.0"
29242906
"@account-abstraction/sdk" "^0.5.0"
@@ -2928,13 +2910,14 @@
29282910
"@magic-ext/connect" "^6.7.2"
29292911
"@magic-ext/oauth" "^7.6.2"
29302912
"@magic-sdk/provider" "^13.6.2"
2931-
"@paperxyz/embedded-wallet-service-sdk" "^1.1.3"
2913+
"@paperxyz/embedded-wallet-service-sdk" "^1.2.4"
2914+
"@paperxyz/sdk-common-utilities" "^0.1.0"
29322915
"@safe-global/safe-core-sdk" "^3.3.4"
29332916
"@safe-global/safe-ethers-adapters" "0.1.0-alpha.17"
29342917
"@safe-global/safe-ethers-lib" "^1.9.4"
2935-
"@thirdweb-dev/chains" "0.1.50"
2936-
"@thirdweb-dev/contracts-js" "1.3.12"
2937-
"@thirdweb-dev/sdk" "3.10.59"
2918+
"@thirdweb-dev/chains" "0.0.0-dev-d86829b-20230927000710"
2919+
"@thirdweb-dev/contracts-js" "1.3.13"
2920+
"@thirdweb-dev/sdk" "0.0.0-dev-d86829b-20230927000710"
29382921
"@walletconnect/core" "^2.9.1"
29392922
"@walletconnect/ethereum-provider" "^2.9.1"
29402923
"@walletconnect/jsonrpc-utils" "^1.0.8"

0 commit comments

Comments
 (0)