@eth-optimism/actions-sdk 0.0.3 → 0.0.4
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/actions.test.js +22 -2
- package/dist/actions.test.js.map +1 -1
- package/dist/constants/assets.d.ts.map +1 -1
- package/dist/constants/assets.js +2 -1
- package/dist/constants/assets.js.map +1 -1
- package/dist/constants/supportedChains.d.ts +1 -1
- package/dist/constants/supportedChains.d.ts.map +1 -1
- package/dist/constants/supportedChains.js +2 -1
- package/dist/constants/supportedChains.js.map +1 -1
- package/dist/lend/namespaces/WalletLendNamespace.d.ts +8 -2
- package/dist/lend/namespaces/WalletLendNamespace.d.ts.map +1 -1
- package/dist/lend/namespaces/WalletLendNamespace.js +8 -2
- package/dist/lend/namespaces/WalletLendNamespace.js.map +1 -1
- package/dist/lend/providers/morpho/sdk.d.ts.map +1 -1
- package/dist/lend/providers/morpho/sdk.js +0 -1
- package/dist/lend/providers/morpho/sdk.js.map +1 -1
- package/dist/services/ChainManager.d.ts +1 -1
- package/dist/test/MockPrivyClient.d.ts +10 -49
- package/dist/test/MockPrivyClient.d.ts.map +1 -1
- package/dist/test/MockPrivyClient.js +13 -72
- package/dist/test/MockPrivyClient.js.map +1 -1
- package/dist/wallet/core/namespace/WalletNamespace.d.ts +13 -13
- package/dist/wallet/core/namespace/WalletNamespace.d.ts.map +1 -1
- package/dist/wallet/core/namespace/WalletNamespace.js +13 -13
- package/dist/wallet/core/namespace/WalletNamespace.js.map +1 -1
- package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js +55 -33
- package/dist/wallet/core/namespace/__tests__/WalletNamespace.spec.js.map +1 -1
- package/dist/wallet/core/providers/__tests__/WalletProvider.spec.js +43 -15
- package/dist/wallet/core/providers/__tests__/WalletProvider.spec.js.map +1 -1
- package/dist/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.js +14 -4
- package/dist/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.js.map +1 -1
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts +16 -3
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.d.ts.map +1 -1
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js +18 -5
- package/dist/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.js.map +1 -1
- package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js +31 -12
- package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map +1 -1
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.d.ts.map +1 -1
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js +6 -1
- package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.js.map +1 -1
- package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js +9 -1
- package/dist/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.js.map +1 -1
- package/dist/wallet/node/providers/hosted/types/index.d.ts +6 -1
- package/dist/wallet/node/providers/hosted/types/index.d.ts.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts +10 -5
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.d.ts.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js +11 -6
- package/dist/wallet/node/wallets/hosted/privy/PrivyWallet.js.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.js +26 -28
- package/dist/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.js.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.js +12 -12
- package/dist/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.js.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/utils/createSigner.d.ts +6 -2
- package/dist/wallet/node/wallets/hosted/privy/utils/createSigner.d.ts.map +1 -1
- package/dist/wallet/node/wallets/hosted/privy/utils/createSigner.js +10 -7
- package/dist/wallet/node/wallets/hosted/privy/utils/createSigner.js.map +1 -1
- package/package.json +2 -2
- package/src/actions.test.ts +24 -4
- package/src/constants/assets.ts +8 -1
- package/src/constants/supportedChains.ts +8 -1
- package/src/lend/namespaces/WalletLendNamespace.ts +8 -2
- package/src/lend/providers/morpho/sdk.ts +0 -1
- package/src/test/MockPrivyClient.ts +24 -91
- package/src/wallet/core/namespace/WalletNamespace.ts +13 -13
- package/src/wallet/core/namespace/__tests__/WalletNamespace.spec.ts +60 -61
- package/src/wallet/core/providers/__tests__/WalletProvider.spec.ts +47 -39
- package/src/wallet/core/providers/hosted/registry/__tests__/HostedWalletProviderRegistry.spec.ts +20 -7
- package/src/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.ts +27 -9
- package/src/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts +40 -21
- package/src/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.ts +4 -3
- package/src/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.ts +17 -2
- package/src/wallet/node/providers/hosted/types/index.ts +9 -2
- package/src/wallet/node/wallets/hosted/privy/PrivyWallet.ts +14 -6
- package/src/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.ts +35 -40
- package/src/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.ts +18 -14
- package/src/wallet/node/wallets/hosted/privy/utils/createSigner.ts +11 -9
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PrivyClient } from '@privy-io/
|
|
1
|
+
import type { AuthorizationContext, PrivyClient } from '@privy-io/node';
|
|
2
2
|
import type { LocalAccount } from 'viem';
|
|
3
3
|
import type { ChainManager } from '../../../../../services/ChainManager.js';
|
|
4
4
|
import type { LendConfig, LendProvider } from '../../../../../types/lend/index.js';
|
|
@@ -11,11 +11,24 @@ import type { NodeToActionsOptionsMap, PrivyHostedWalletToActionsWalletOptions }
|
|
|
11
11
|
*/
|
|
12
12
|
export declare class PrivyHostedWalletProvider extends HostedWalletProvider<'privy', NodeToActionsOptionsMap> {
|
|
13
13
|
private readonly privyClient;
|
|
14
|
+
private readonly authorizationContext?;
|
|
14
15
|
/**
|
|
15
16
|
* Create a new Privy wallet provider
|
|
16
|
-
* @param
|
|
17
|
+
* @param params - Configuration parameters
|
|
18
|
+
* @param params.privyClient - Privy client instance
|
|
19
|
+
* @param params.chainManager - Chain manager for multi-chain operations
|
|
20
|
+
* @param params.lendProvider - Optional lend provider for DeFi operations
|
|
21
|
+
* @param params.authorizationContext - Optional authorization context for the Privy client.
|
|
22
|
+
* Used when Privy needs to sign requests.
|
|
23
|
+
* See https://docs.privy.io/controls/authorization-keys/using-owners/sign/automatic#using-the-authorization-context
|
|
24
|
+
* for more information on building and using the authorization context.
|
|
17
25
|
*/
|
|
18
|
-
constructor(
|
|
26
|
+
constructor(params: {
|
|
27
|
+
privyClient: PrivyClient;
|
|
28
|
+
chainManager: ChainManager;
|
|
29
|
+
lendProvider?: LendProvider<LendConfig>;
|
|
30
|
+
authorizationContext?: AuthorizationContext;
|
|
31
|
+
});
|
|
19
32
|
toActionsWallet(params: PrivyHostedWalletToActionsWalletOptions): Promise<Wallet>;
|
|
20
33
|
/**
|
|
21
34
|
* Create a LocalAccount from this Privy wallet
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrivyHostedWalletProvider.d.ts","sourceRoot":"","sources":["../../../../../../src/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"PrivyHostedWalletProvider.d.ts","sourceRoot":"","sources":["../../../../../../src/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACvE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAGxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iEAAiE,CAAA;AACtG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0CAA0C,CAAA;AACtE,OAAO,KAAK,EACV,uBAAuB,EACvB,uCAAuC,EACxC,MAAM,+CAA+C,CAAA;AAItD;;;GAGG;AACH,qBAAa,yBAA0B,SAAQ,oBAAoB,CACjE,OAAO,EACP,uBAAuB,CACxB;IACC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAsB;IAE5D;;;;;;;;;;OAUG;gBACS,MAAM,EAAE;QAClB,WAAW,EAAE,WAAW,CAAA;QACxB,YAAY,EAAE,YAAY,CAAA;QAC1B,YAAY,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAA;QACvC,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;KAC5C;IAMK,eAAe,CACnB,MAAM,EAAE,uCAAuC,GAC9C,OAAO,CAAC,MAAM,CAAC;IAWlB;;;;;;;;;;;OAWG;IACG,YAAY,CAChB,MAAM,EAAE,uBAAuB,CAAC,OAAO,CAAC,GACvC,OAAO,CAAC,YAAY,CAAC;CAOzB"}
|
|
@@ -9,15 +9,24 @@ import { createSigner } from '../../../wallets/hosted/privy/utils/createSigner.j
|
|
|
9
9
|
export class PrivyHostedWalletProvider extends HostedWalletProvider {
|
|
10
10
|
/**
|
|
11
11
|
* Create a new Privy wallet provider
|
|
12
|
-
* @param
|
|
12
|
+
* @param params - Configuration parameters
|
|
13
|
+
* @param params.privyClient - Privy client instance
|
|
14
|
+
* @param params.chainManager - Chain manager for multi-chain operations
|
|
15
|
+
* @param params.lendProvider - Optional lend provider for DeFi operations
|
|
16
|
+
* @param params.authorizationContext - Optional authorization context for the Privy client.
|
|
17
|
+
* Used when Privy needs to sign requests.
|
|
18
|
+
* See https://docs.privy.io/controls/authorization-keys/using-owners/sign/automatic#using-the-authorization-context
|
|
19
|
+
* for more information on building and using the authorization context.
|
|
13
20
|
*/
|
|
14
|
-
constructor(
|
|
15
|
-
super(chainManager, lendProvider);
|
|
16
|
-
this.privyClient = privyClient;
|
|
21
|
+
constructor(params) {
|
|
22
|
+
super(params.chainManager, params.lendProvider);
|
|
23
|
+
this.privyClient = params.privyClient;
|
|
24
|
+
this.authorizationContext = params.authorizationContext;
|
|
17
25
|
}
|
|
18
26
|
async toActionsWallet(params) {
|
|
19
27
|
return PrivyWallet.create({
|
|
20
28
|
privyClient: this.privyClient,
|
|
29
|
+
authorizationContext: this.authorizationContext,
|
|
21
30
|
walletId: params.walletId,
|
|
22
31
|
address: getAddress(params.address),
|
|
23
32
|
chainManager: this.chainManager,
|
|
@@ -37,7 +46,11 @@ export class PrivyHostedWalletProvider extends HostedWalletProvider {
|
|
|
37
46
|
* @throws Error if wallet retrieval fails or signing operations are not supported
|
|
38
47
|
*/
|
|
39
48
|
async createSigner(params) {
|
|
40
|
-
return createSigner({
|
|
49
|
+
return createSigner({
|
|
50
|
+
...params,
|
|
51
|
+
privyClient: this.privyClient,
|
|
52
|
+
authorizationContext: this.authorizationContext,
|
|
53
|
+
});
|
|
41
54
|
}
|
|
42
55
|
}
|
|
43
56
|
//# sourceMappingURL=PrivyHostedWalletProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrivyHostedWalletProvider.js","sourceRoot":"","sources":["../../../../../../src/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAIjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iEAAiE,CAAA;AAMtG,OAAO,EAAE,WAAW,EAAE,MAAM,mDAAmD,CAAA;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,0DAA0D,CAAA;AAEvF;;;GAGG;AACH,MAAM,OAAO,yBAA0B,SAAQ,oBAG9C;
|
|
1
|
+
{"version":3,"file":"PrivyHostedWalletProvider.js","sourceRoot":"","sources":["../../../../../../src/wallet/node/providers/hosted/privy/PrivyHostedWalletProvider.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AAIjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iEAAiE,CAAA;AAMtG,OAAO,EAAE,WAAW,EAAE,MAAM,mDAAmD,CAAA;AAC/E,OAAO,EAAE,YAAY,EAAE,MAAM,0DAA0D,CAAA;AAEvF;;;GAGG;AACH,MAAM,OAAO,yBAA0B,SAAQ,oBAG9C;IAIC;;;;;;;;;;OAUG;IACH,YAAY,MAKX;QACC,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,CAAC,CAAA;QAC/C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAA;QACrC,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAA;IACzD,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,MAA+C;QAE/C,OAAO,WAAW,CAAC,MAAM,CAAC;YACxB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;YAC/C,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;YACnC,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,YAAY,CAChB,MAAwC;QAExC,OAAO,YAAY,CAAC;YAClB,GAAG,MAAM;YACT,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;SAChD,CAAC,CAAA;IACJ,CAAC;CACF"}
|
|
@@ -2,7 +2,7 @@ import { getAddress } from 'viem';
|
|
|
2
2
|
import { unichain } from 'viem/chains';
|
|
3
3
|
import { describe, expect, it, vi } from 'vitest';
|
|
4
4
|
import { MockChainManager } from '../../../../../../test/MockChainManager.js';
|
|
5
|
-
import { createMockPrivyClient } from '../../../../../../test/MockPrivyClient.js';
|
|
5
|
+
import { createMockPrivyClient, createMockPrivyWallet, getMockAuthorizationContext, } from '../../../../../../test/MockPrivyClient.js';
|
|
6
6
|
import { getRandomAddress } from '../../../../../../test/utils.js';
|
|
7
7
|
import { Wallet } from '../../../../../core/wallets/abstract/Wallet.js';
|
|
8
8
|
import { PrivyHostedWalletProvider } from '../PrivyHostedWalletProvider.js';
|
|
@@ -14,10 +14,12 @@ describe('PrivyHostedWalletProvider', () => {
|
|
|
14
14
|
describe('toActionsWallet', () => {
|
|
15
15
|
it('toActionsWallet creates an ActionsWallet with correct address and signer', async () => {
|
|
16
16
|
const privy = createMockPrivyClient('app', 'secret');
|
|
17
|
-
const provider = new PrivyHostedWalletProvider(
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
const provider = new PrivyHostedWalletProvider({
|
|
18
|
+
privyClient: privy,
|
|
19
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
20
|
+
chainManager: mockChainManager,
|
|
20
21
|
});
|
|
22
|
+
const hostedWallet = createMockPrivyWallet();
|
|
21
23
|
const actionsWallet = await provider.toActionsWallet({
|
|
22
24
|
walletId: hostedWallet.id,
|
|
23
25
|
address: hostedWallet.address,
|
|
@@ -28,13 +30,19 @@ describe('PrivyHostedWalletProvider', () => {
|
|
|
28
30
|
});
|
|
29
31
|
it('forwards params to PrivyWallet.create', async () => {
|
|
30
32
|
const privy = createMockPrivyClient('app', 'secret');
|
|
31
|
-
const
|
|
33
|
+
const authorizationContext = getMockAuthorizationContext();
|
|
34
|
+
const provider = new PrivyHostedWalletProvider({
|
|
35
|
+
privyClient: privy,
|
|
36
|
+
authorizationContext,
|
|
37
|
+
chainManager: mockChainManager,
|
|
38
|
+
});
|
|
32
39
|
const spy = vi.spyOn(PrivyWallet, 'create');
|
|
33
40
|
const id = 'mock-wallet-123';
|
|
34
|
-
const addr = getRandomAddress()
|
|
41
|
+
const addr = getRandomAddress();
|
|
35
42
|
await provider.toActionsWallet({ walletId: id, address: addr });
|
|
36
43
|
expect(spy).toHaveBeenCalledWith(expect.objectContaining({
|
|
37
44
|
privyClient: privy,
|
|
45
|
+
authorizationContext,
|
|
38
46
|
walletId: id,
|
|
39
47
|
address: getAddress(addr),
|
|
40
48
|
chainManager: mockChainManager,
|
|
@@ -42,16 +50,25 @@ describe('PrivyHostedWalletProvider', () => {
|
|
|
42
50
|
});
|
|
43
51
|
it('throws on invalid address', async () => {
|
|
44
52
|
const privy = createMockPrivyClient('app', 'secret');
|
|
45
|
-
const provider = new PrivyHostedWalletProvider(
|
|
53
|
+
const provider = new PrivyHostedWalletProvider({
|
|
54
|
+
privyClient: privy,
|
|
55
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
56
|
+
chainManager: mockChainManager,
|
|
57
|
+
});
|
|
46
58
|
await expect(provider.toActionsWallet({ walletId: 'id', address: '0x123' })).rejects.toBeTruthy();
|
|
47
59
|
});
|
|
48
60
|
it('forwards lendProvider when provided to constructor', async () => {
|
|
49
61
|
const privy = createMockPrivyClient('app', 'secret');
|
|
50
62
|
const mockLendProvider = {};
|
|
51
|
-
const provider = new PrivyHostedWalletProvider(
|
|
63
|
+
const provider = new PrivyHostedWalletProvider({
|
|
64
|
+
privyClient: privy,
|
|
65
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
66
|
+
chainManager: mockChainManager,
|
|
67
|
+
lendProvider: mockLendProvider,
|
|
68
|
+
});
|
|
52
69
|
const spy = vi.spyOn(PrivyWallet, 'create');
|
|
53
70
|
const id = 'mock-wallet-123';
|
|
54
|
-
const addr = getRandomAddress()
|
|
71
|
+
const addr = getRandomAddress();
|
|
55
72
|
await provider.toActionsWallet({
|
|
56
73
|
walletId: id,
|
|
57
74
|
address: addr,
|
|
@@ -64,10 +81,12 @@ describe('PrivyHostedWalletProvider', () => {
|
|
|
64
81
|
describe('createSigner', () => {
|
|
65
82
|
it('should create a LocalAccount with correct address', async () => {
|
|
66
83
|
const privy = createMockPrivyClient('app', 'secret');
|
|
67
|
-
const provider = new PrivyHostedWalletProvider(
|
|
68
|
-
|
|
69
|
-
|
|
84
|
+
const provider = new PrivyHostedWalletProvider({
|
|
85
|
+
privyClient: privy,
|
|
86
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
87
|
+
chainManager: mockChainManager,
|
|
70
88
|
});
|
|
89
|
+
const hostedWallet = createMockPrivyWallet();
|
|
71
90
|
const signer = await provider.createSigner({
|
|
72
91
|
walletId: hostedWallet.id,
|
|
73
92
|
address: hostedWallet.address,
|
package/dist/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrivyHostedWalletProvider.spec.js","sourceRoot":"","sources":["../../../../../../../src/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAA;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAGjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,
|
|
1
|
+
{"version":3,"file":"PrivyHostedWalletProvider.spec.js","sourceRoot":"","sources":["../../../../../../../src/wallet/node/providers/hosted/privy/__tests__/PrivyHostedWalletProvider.spec.ts"],"names":[],"mappings":"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"}
|
package/dist/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeHostedWalletProviderRegistry.d.ts","sourceRoot":"","sources":["../../../../../../src/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,yEAAyE,CAAA;AAGtH,OAAO,KAAK,EACV,6BAA6B,EAC7B,cAAc,EACd,iBAAiB,EAClB,MAAM,+CAA+C,CAAA;AAEtD;;;;;;;;GAQG;AACH,qBAAa,gCAAiC,SAAQ,4BAA4B,CAChF,6BAA6B,EAC7B,cAAc,EACd,iBAAiB,CAClB;;
|
|
1
|
+
{"version":3,"file":"NodeHostedWalletProviderRegistry.d.ts","sourceRoot":"","sources":["../../../../../../src/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,yEAAyE,CAAA;AAGtH,OAAO,KAAK,EACV,6BAA6B,EAC7B,cAAc,EACd,iBAAiB,EAClB,MAAM,+CAA+C,CAAA;AAEtD;;;;;;;;GAQG;AACH,qBAAa,gCAAiC,SAAQ,4BAA4B,CAChF,6BAA6B,EAC7B,cAAc,EACd,iBAAiB,CAClB;;CAiCA"}
|
|
@@ -19,7 +19,12 @@ export class NodeHostedWalletProviderRegistry extends HostedWalletProviderRegist
|
|
|
19
19
|
return Boolean(options?.privyClient);
|
|
20
20
|
},
|
|
21
21
|
create({ chainManager, lendProvider }, options) {
|
|
22
|
-
return new PrivyHostedWalletProvider(
|
|
22
|
+
return new PrivyHostedWalletProvider({
|
|
23
|
+
privyClient: options.privyClient,
|
|
24
|
+
chainManager,
|
|
25
|
+
lendProvider,
|
|
26
|
+
authorizationContext: options.authorizationContext,
|
|
27
|
+
});
|
|
23
28
|
},
|
|
24
29
|
});
|
|
25
30
|
this.register({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeHostedWalletProviderRegistry.js","sourceRoot":"","sources":["../../../../../../src/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,yEAAyE,CAAA;AACtH,OAAO,EAAE,yBAAyB,EAAE,MAAM,mEAAmE,CAAA;AAC7G,OAAO,EAAE,2BAA2B,EAAE,MAAM,uEAAuE,CAAA;AAOnH;;;;;;;;GAQG;AACH,MAAM,OAAO,gCAAiC,SAAQ,4BAIrD;IACC;QACE,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,QAAQ,CAAU;YACrB,IAAI,EAAE,OAAO;YACb,eAAe,CAAC,OAAO;gBACrB,OAAO,OAAO,CAAE,OAAmC,EAAE,WAAW,CAAC,CAAA;YACnE,CAAC;YACD,MAAM,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,OAAO;gBAC5C,OAAO,IAAI,yBAAyB,
|
|
1
|
+
{"version":3,"file":"NodeHostedWalletProviderRegistry.js","sourceRoot":"","sources":["../../../../../../src/wallet/node/providers/hosted/registry/NodeHostedWalletProviderRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,yEAAyE,CAAA;AACtH,OAAO,EAAE,yBAAyB,EAAE,MAAM,mEAAmE,CAAA;AAC7G,OAAO,EAAE,2BAA2B,EAAE,MAAM,uEAAuE,CAAA;AAOnH;;;;;;;;GAQG;AACH,MAAM,OAAO,gCAAiC,SAAQ,4BAIrD;IACC;QACE,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,QAAQ,CAAU;YACrB,IAAI,EAAE,OAAO;YACb,eAAe,CAAC,OAAO;gBACrB,OAAO,OAAO,CAAE,OAAmC,EAAE,WAAW,CAAC,CAAA;YACnE,CAAC;YACD,MAAM,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,OAAO;gBAC5C,OAAO,IAAI,yBAAyB,CAAC;oBACnC,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,YAAY;oBACZ,YAAY;oBACZ,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;iBACnD,CAAC,CAAA;YACJ,CAAC;SACF,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,CAAY;YACvB,IAAI,EAAE,SAAS;YACf,eAAe,CAAC,OAAO;gBACrB,MAAM,CAAC,GAAG,OAAoC,CAAA;gBAC9C,OAAO,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;YAC3B,CAAC;YACD,MAAM,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,OAAO;gBAC5C,OAAO,IAAI,2BAA2B,CACpC,OAAO,CAAC,MAAM,EACd,YAAY,EACZ,YAAY,CACb,CAAA;YACH,CAAC;SACF,CAAC,CAAA;IACJ,CAAC;CACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { unichain } from 'viem/chains';
|
|
2
2
|
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
3
3
|
import { MockChainManager } from '../../../../../../test/MockChainManager.js';
|
|
4
|
-
import { createMockPrivyClient } from '../../../../../../test/MockPrivyClient.js';
|
|
4
|
+
import { createMockPrivyClient, getMockAuthorizationContext, } from '../../../../../../test/MockPrivyClient.js';
|
|
5
5
|
import { PrivyHostedWalletProvider } from '../../privy/PrivyHostedWalletProvider.js';
|
|
6
6
|
import { NodeHostedWalletProviderRegistry } from '../NodeHostedWalletProviderRegistry.js';
|
|
7
7
|
import { TurnkeyHostedWalletProvider } from '../../turnkey/TurnkeyHostedWalletProvider.js';
|
|
@@ -21,17 +21,25 @@ describe('NodeHostedWalletProviderRegistry', () => {
|
|
|
21
21
|
const registry = new NodeHostedWalletProviderRegistry();
|
|
22
22
|
const factory = registry.getFactory('privy');
|
|
23
23
|
expect(factory.type).toBe('privy');
|
|
24
|
+
expect(factory.validateOptions?.({
|
|
25
|
+
privyClient: mockPrivyClient,
|
|
26
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
27
|
+
})).toBe(true);
|
|
24
28
|
expect(factory.validateOptions?.({
|
|
25
29
|
privyClient: mockPrivyClient,
|
|
26
30
|
})).toBe(true);
|
|
27
31
|
// Invalid shape should not pass validation
|
|
28
32
|
expect(factory.validateOptions?.({})).toBe(false);
|
|
33
|
+
expect(factory.validateOptions?.({
|
|
34
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
35
|
+
})).toBe(false);
|
|
29
36
|
});
|
|
30
37
|
it('creates a PrivyHostedWalletProvider instance', () => {
|
|
31
38
|
const registry = new NodeHostedWalletProviderRegistry();
|
|
32
39
|
const factory = registry.getFactory('privy');
|
|
33
40
|
const provider = factory.create({ chainManager: mockChainManager }, {
|
|
34
41
|
privyClient: mockPrivyClient,
|
|
42
|
+
authorizationContext: getMockAuthorizationContext(),
|
|
35
43
|
});
|
|
36
44
|
expect(provider).toBeInstanceOf(PrivyHostedWalletProvider);
|
|
37
45
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeHostedWalletProviderRegistry.spec.js","sourceRoot":"","sources":["../../../../../../../src/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAGxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,
|
|
1
|
+
{"version":3,"file":"NodeHostedWalletProviderRegistry.spec.js","sourceRoot":"","sources":["../../../../../../../src/wallet/node/providers/hosted/registry/__tests__/NodeHostedWalletProviderRegistry.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PrivyClient } from '@privy-io/
|
|
1
|
+
import type { AuthorizationContext, PrivyClient } from '@privy-io/node';
|
|
2
2
|
import type { TurnkeySDKClientBase } from '@turnkey/core';
|
|
3
3
|
import type { TurnkeyClient as TurnkeyHttpClient } from '@turnkey/http';
|
|
4
4
|
import type { TurnkeyServerClient } from '@turnkey/sdk-server';
|
|
@@ -24,9 +24,14 @@ export interface NodeOptionsMap {
|
|
|
24
24
|
/**
|
|
25
25
|
* Privy provider configuration
|
|
26
26
|
* @property privyClient Server-side Privy client instance used to query/create wallets
|
|
27
|
+
* @property authorizationContext Optional authorization context for the Privy client.
|
|
28
|
+
* Used when Privy needs to sign requests.
|
|
29
|
+
* See https://docs.privy.io/controls/authorization-keys/using-owners/sign/automatic#using-the-authorization-context
|
|
30
|
+
* for more information on building and using the authorization context.
|
|
27
31
|
*/
|
|
28
32
|
privy: {
|
|
29
33
|
privyClient: PrivyClient;
|
|
34
|
+
authorizationContext?: AuthorizationContext;
|
|
30
35
|
};
|
|
31
36
|
/**
|
|
32
37
|
* Turnkey provider configuration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/wallet/node/providers/hosted/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/wallet/node/providers/hosted/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAA;AACzD,OAAO,KAAK,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,eAAe,CAAA;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+CAA+C,CAAA;AAChG,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mEAAmE,CAAA;AAClH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,uEAAuE,CAAA;AAExH;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,cAAc,GAClD,MAAM,6BAA6B,GACnC,MAAM,uBAAuB,CAAA;AAE/B;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;;OAOG;IACH,KAAK,EAAE;QACL,WAAW,EAAE,WAAW,CAAA;QACxB,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;KAC5C,CAAA;IACD;;;;OAIG;IACH,OAAO,EAAE;QACP,MAAM,EAAE,iBAAiB,GAAG,mBAAmB,GAAG,oBAAoB,CAAA;KACvE,CAAA;CACF;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,yCAAyC,GAAG;IACtD,cAAc,EAAE,MAAM,CAAA;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,uCAAuC,GAAG;IACpD,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,6BAA6B,GAAG;IAC1C,KAAK,EAAE,yBAAyB,CAAA;IAChC,OAAO,EAAE,2BAA2B,CAAA;CACrC,CAAA;AAED;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,KAAK,EAAE,uCAAuC,CAAA;IAC9C,OAAO,EAAE,yCAAyC,CAAA;CACnD,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,+BAA+B,GAAG,2BAA2B,CACvE,iBAAiB,EACjB,6BAA6B,EAC7B,cAAc,EACd,uBAAuB,CACxB,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PrivyClient } from '@privy-io/
|
|
1
|
+
import type { AuthorizationContext, PrivyClient } from '@privy-io/node';
|
|
2
2
|
import { type Address, type LocalAccount } from 'viem';
|
|
3
3
|
import type { ChainManager } from '../../../../../services/ChainManager.js';
|
|
4
4
|
import type { LendConfig, LendProvider } from '../../../../../types/lend/index.js';
|
|
@@ -12,15 +12,20 @@ export declare class PrivyWallet extends EOAWallet {
|
|
|
12
12
|
signer: LocalAccount;
|
|
13
13
|
readonly address: Address;
|
|
14
14
|
private privyClient;
|
|
15
|
+
private authorizationContext?;
|
|
15
16
|
/**
|
|
16
|
-
* Create a new Privy wallet
|
|
17
|
-
* @param
|
|
18
|
-
* @param
|
|
19
|
-
* @param
|
|
17
|
+
* Create a new Privy wallet instance
|
|
18
|
+
* @param privyClient - Privy client instance for wallet operations
|
|
19
|
+
* @param authorizationContext - Authorization context for signing requests
|
|
20
|
+
* @param walletId - Privy wallet identifier
|
|
21
|
+
* @param address - Ethereum address of the wallet
|
|
22
|
+
* @param chainManager - Chain manager for multi-chain operations
|
|
23
|
+
* @param lendProvider - Optional lend provider for DeFi operations
|
|
20
24
|
*/
|
|
21
25
|
private constructor();
|
|
22
26
|
static create(params: {
|
|
23
27
|
privyClient: PrivyClient;
|
|
28
|
+
authorizationContext?: AuthorizationContext;
|
|
24
29
|
walletId: string;
|
|
25
30
|
address: Address;
|
|
26
31
|
chainManager: ChainManager;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrivyWallet.d.ts","sourceRoot":"","sources":["../../../../../../src/wallet/node/wallets/hosted/privy/PrivyWallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"PrivyWallet.d.ts","sourceRoot":"","sources":["../../../../../../src/wallet/node/wallets/hosted/privy/PrivyWallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACvE,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,MAAM,CAAA;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACrE,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAA;AAGlE;;;GAGG;AACH,qBAAa,WAAY,SAAQ,SAAS;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAG,YAAY,CAAA;IAC5B,SAAgB,OAAO,EAAE,OAAO,CAAA;IAChC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,oBAAoB,CAAC,CAAsB;IACnD;;;;;;;;OAQG;IACH,OAAO;WAeM,MAAM,CAAC,MAAM,EAAE;QAC1B,WAAW,EAAE,WAAW,CAAA;QACxB,oBAAoB,CAAC,EAAE,oBAAoB,CAAA;QAC3C,QAAQ,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,OAAO,CAAA;QAChB,YAAY,EAAE,YAAY,CAAA;QAC1B,YAAY,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,CAAA;KACxC,GAAG,OAAO,CAAC,WAAW,CAAC;IAaxB;;OAEG;cACa,qBAAqB;IAIrC;;;;;;;OAOG;YACW,YAAY;CAQ3B"}
|
|
@@ -6,19 +6,23 @@ import { createSigner } from './utils/createSigner.js';
|
|
|
6
6
|
*/
|
|
7
7
|
export class PrivyWallet extends EOAWallet {
|
|
8
8
|
/**
|
|
9
|
-
* Create a new Privy wallet
|
|
10
|
-
* @param
|
|
11
|
-
* @param
|
|
12
|
-
* @param
|
|
9
|
+
* Create a new Privy wallet instance
|
|
10
|
+
* @param privyClient - Privy client instance for wallet operations
|
|
11
|
+
* @param authorizationContext - Authorization context for signing requests
|
|
12
|
+
* @param walletId - Privy wallet identifier
|
|
13
|
+
* @param address - Ethereum address of the wallet
|
|
14
|
+
* @param chainManager - Chain manager for multi-chain operations
|
|
15
|
+
* @param lendProvider - Optional lend provider for DeFi operations
|
|
13
16
|
*/
|
|
14
|
-
constructor(privyClient, walletId, address, chainManager, lendProvider) {
|
|
17
|
+
constructor(privyClient, walletId, address, chainManager, lendProvider, authorizationContext) {
|
|
15
18
|
super(chainManager, lendProvider);
|
|
16
19
|
this.privyClient = privyClient;
|
|
20
|
+
this.authorizationContext = authorizationContext;
|
|
17
21
|
this.walletId = walletId;
|
|
18
22
|
this.address = address;
|
|
19
23
|
}
|
|
20
24
|
static async create(params) {
|
|
21
|
-
const wallet = new PrivyWallet(params.privyClient, params.walletId, params.address, params.chainManager, params.lendProvider);
|
|
25
|
+
const wallet = new PrivyWallet(params.privyClient, params.walletId, params.address, params.chainManager, params.lendProvider, params.authorizationContext);
|
|
22
26
|
await wallet.initialize();
|
|
23
27
|
return wallet;
|
|
24
28
|
}
|
|
@@ -41,6 +45,7 @@ export class PrivyWallet extends EOAWallet {
|
|
|
41
45
|
walletId: this.walletId,
|
|
42
46
|
address: this.address,
|
|
43
47
|
privyClient: this.privyClient,
|
|
48
|
+
authorizationContext: this.authorizationContext,
|
|
44
49
|
});
|
|
45
50
|
}
|
|
46
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrivyWallet.js","sourceRoot":"","sources":["../../../../../../src/wallet/node/wallets/hosted/privy/PrivyWallet.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,0DAA0D,CAAA;AAEvF;;;GAGG;AACH,MAAM,OAAO,WAAY,SAAQ,SAAS;IAMxC
|
|
1
|
+
{"version":3,"file":"PrivyWallet.js","sourceRoot":"","sources":["../../../../../../src/wallet/node/wallets/hosted/privy/PrivyWallet.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAA;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,0DAA0D,CAAA;AAEvF;;;GAGG;AACH,MAAM,OAAO,WAAY,SAAQ,SAAS;IAMxC;;;;;;;;OAQG;IACH,YACE,WAAwB,EACxB,QAAgB,EAChB,OAAgB,EAChB,YAA0B,EAC1B,YAAuC,EACvC,oBAA2C;QAE3C,KAAK,CAAC,YAAY,EAAE,YAAY,CAAC,CAAA;QACjC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;QAC9B,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAA;QAChD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAOnB;QACC,MAAM,MAAM,GAAG,IAAI,WAAW,CAC5B,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,oBAAoB,CAC5B,CAAA;QACD,MAAM,MAAM,CAAC,UAAU,EAAE,CAAA;QACzB,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,qBAAqB;QACnC,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAA;IACzC,CAAC;IAED;;;;;;;OAOG;IACK,KAAK,CAAC,YAAY;QACxB,OAAO,YAAY,CAAC;YAClB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,oBAAoB,EAAE,IAAI,CAAC,oBAAoB;SAChD,CAAC,CAAA;IACJ,CAAC;CACF"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { createViemAccount } from '@privy-io/
|
|
1
|
+
import { createViemAccount } from '@privy-io/node/viem';
|
|
2
2
|
import { createWalletClient, getAddress, } from 'viem';
|
|
3
3
|
import { unichain } from 'viem/chains';
|
|
4
|
-
import { describe, expect, it, vi } from 'vitest';
|
|
4
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
5
5
|
import { MockChainManager } from '../../../../../../test/MockChainManager.js';
|
|
6
|
-
import { createMockPrivyClient } from '../../../../../../test/MockPrivyClient.js';
|
|
6
|
+
import { createMockPrivyClient, createMockPrivyWallet, getMockAuthorizationContext, } from '../../../../../../test/MockPrivyClient.js';
|
|
7
7
|
import { getRandomAddress } from '../../../../../../test/utils.js';
|
|
8
8
|
import { PrivyWallet } from '../PrivyWallet.js';
|
|
9
9
|
vi.mock('viem', async () => ({
|
|
@@ -16,9 +16,9 @@ vi.mock('viem/accounts', async () => ({
|
|
|
16
16
|
...(await vi.importActual('viem/accounts')),
|
|
17
17
|
toAccount: vi.fn(),
|
|
18
18
|
}));
|
|
19
|
-
vi.mock('@privy-io/
|
|
19
|
+
vi.mock('@privy-io/node/viem', async () => ({
|
|
20
20
|
// @ts-ignore - importActual returns unknown
|
|
21
|
-
...(await vi.importActual('@privy-io/
|
|
21
|
+
...(await vi.importActual('@privy-io/node/viem')),
|
|
22
22
|
createViemAccount: vi.fn(),
|
|
23
23
|
}));
|
|
24
24
|
const mockAddress = getRandomAddress();
|
|
@@ -34,10 +34,11 @@ const mockLocalAccount = {
|
|
|
34
34
|
signTypedData: vi.fn(),
|
|
35
35
|
};
|
|
36
36
|
describe('PrivyWallet', () => {
|
|
37
|
+
beforeEach(() => {
|
|
38
|
+
vi.clearAllMocks();
|
|
39
|
+
});
|
|
37
40
|
it('should return the correct wallet ID', async () => {
|
|
38
|
-
const createdWallet =
|
|
39
|
-
chainType: 'ethereum',
|
|
40
|
-
});
|
|
41
|
+
const createdWallet = createMockPrivyWallet();
|
|
41
42
|
const wallet = await createAndInitPrivyWallet({
|
|
42
43
|
address: getAddress(createdWallet.address),
|
|
43
44
|
walletId: createdWallet.id,
|
|
@@ -45,9 +46,7 @@ describe('PrivyWallet', () => {
|
|
|
45
46
|
expect(wallet.walletId).toBe(createdWallet.id);
|
|
46
47
|
});
|
|
47
48
|
it('should return the correct address', async () => {
|
|
48
|
-
const createdWallet =
|
|
49
|
-
chainType: 'ethereum',
|
|
50
|
-
});
|
|
49
|
+
const createdWallet = createMockPrivyWallet();
|
|
51
50
|
const wallet = await createAndInitPrivyWallet({
|
|
52
51
|
address: getAddress(createdWallet.address),
|
|
53
52
|
walletId: createdWallet.id,
|
|
@@ -56,26 +55,27 @@ describe('PrivyWallet', () => {
|
|
|
56
55
|
});
|
|
57
56
|
it('should create an account with correct configuration', async () => {
|
|
58
57
|
// Create a wallet using the mock client first
|
|
59
|
-
const createdWallet =
|
|
60
|
-
chainType: 'ethereum',
|
|
61
|
-
});
|
|
58
|
+
const createdWallet = createMockPrivyWallet();
|
|
62
59
|
vi.mocked(createViemAccount).mockResolvedValue(mockLocalAccount);
|
|
60
|
+
const authorizationContext = getMockAuthorizationContext();
|
|
63
61
|
const wallet = await createAndInitPrivyWallet({
|
|
64
62
|
address: getAddress(createdWallet.address),
|
|
65
63
|
walletId: createdWallet.id,
|
|
64
|
+
authorizationContext,
|
|
66
65
|
});
|
|
67
|
-
expect(createViemAccount).toHaveBeenCalledWith({
|
|
66
|
+
expect(createViemAccount).toHaveBeenCalledWith(mockPrivyClient, {
|
|
68
67
|
walletId: createdWallet.id,
|
|
69
68
|
address: createdWallet.address,
|
|
70
|
-
|
|
69
|
+
authorizationContext,
|
|
71
70
|
});
|
|
72
71
|
expect(wallet.signer).toBe(mockLocalAccount);
|
|
73
72
|
});
|
|
74
73
|
it('should create a wallet client with correct configuration', async () => {
|
|
75
|
-
const createdWallet =
|
|
76
|
-
|
|
74
|
+
const createdWallet = createMockPrivyWallet();
|
|
75
|
+
const wallet = await createAndInitPrivyWallet({
|
|
76
|
+
walletId: createdWallet.id,
|
|
77
|
+
address: createdWallet.address,
|
|
77
78
|
});
|
|
78
|
-
const wallet = await createAndInitPrivyWallet();
|
|
79
79
|
const mockWalletClient = {
|
|
80
80
|
account: mockLocalAccount,
|
|
81
81
|
address: createdWallet.address,
|
|
@@ -90,16 +90,14 @@ describe('PrivyWallet', () => {
|
|
|
90
90
|
expect(walletClient).toBe(mockWalletClient);
|
|
91
91
|
});
|
|
92
92
|
});
|
|
93
|
-
async function createAndInitPrivyWallet(params
|
|
94
|
-
const {
|
|
95
|
-
const createdWallet = await privyClient.walletApi.createWallet({
|
|
96
|
-
chainType: 'ethereum',
|
|
97
|
-
});
|
|
93
|
+
async function createAndInitPrivyWallet(params) {
|
|
94
|
+
const { walletId, address, authorizationContext } = params;
|
|
98
95
|
return PrivyWallet.create({
|
|
99
|
-
privyClient,
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
96
|
+
privyClient: mockPrivyClient,
|
|
97
|
+
authorizationContext: authorizationContext ?? getMockAuthorizationContext(),
|
|
98
|
+
walletId,
|
|
99
|
+
address,
|
|
100
|
+
chainManager: mockChainManager,
|
|
103
101
|
});
|
|
104
102
|
}
|
|
105
103
|
//# sourceMappingURL=PrivyWallet.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PrivyWallet.spec.js","sourceRoot":"","sources":["../../../../../../../src/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"PrivyWallet.spec.js","sourceRoot":"","sources":["../../../../../../../src/wallet/node/wallets/hosted/privy/__tests__/PrivyWallet.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { createViemAccount } from '@privy-io/
|
|
1
|
+
import { createViemAccount } from '@privy-io/node/viem';
|
|
2
2
|
import { describe, expect, it, vi } from 'vitest';
|
|
3
|
-
import { createMockPrivyClient } from '../../../../../../../test/MockPrivyClient.js';
|
|
3
|
+
import { createMockPrivyClient, createMockPrivyWallet, getMockAuthorizationContext, } from '../../../../../../../test/MockPrivyClient.js';
|
|
4
4
|
import { getRandomAddress } from '../../../../../../../test/utils.js';
|
|
5
5
|
import { createSigner } from '../createSigner.js';
|
|
6
|
-
vi.mock('@privy-io/
|
|
6
|
+
vi.mock('@privy-io/node/viem', async () => ({
|
|
7
7
|
// @ts-ignore - importActual returns unknown
|
|
8
|
-
...(await vi.importActual('@privy-io/
|
|
8
|
+
...(await vi.importActual('@privy-io/node/viem')),
|
|
9
9
|
createViemAccount: vi.fn(),
|
|
10
10
|
}));
|
|
11
11
|
describe('createSigner (Node Privy)', () => {
|
|
@@ -18,20 +18,20 @@ describe('createSigner (Node Privy)', () => {
|
|
|
18
18
|
signTransaction: vi.fn(),
|
|
19
19
|
signTypedData: vi.fn(),
|
|
20
20
|
};
|
|
21
|
-
it('should create a LocalAccount with correct configuration',
|
|
22
|
-
const createdWallet =
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const signer = await createSigner({
|
|
21
|
+
it('should create a LocalAccount with correct configuration', () => {
|
|
22
|
+
const createdWallet = createMockPrivyWallet();
|
|
23
|
+
vi.mocked(createViemAccount).mockReturnValue(mockLocalAccount);
|
|
24
|
+
const authorizationContext = getMockAuthorizationContext();
|
|
25
|
+
const signer = createSigner({
|
|
27
26
|
privyClient: mockPrivyClient,
|
|
27
|
+
authorizationContext: authorizationContext,
|
|
28
28
|
walletId: createdWallet.id,
|
|
29
29
|
address: createdWallet.address,
|
|
30
30
|
});
|
|
31
|
-
expect(createViemAccount).toHaveBeenCalledWith({
|
|
31
|
+
expect(createViemAccount).toHaveBeenCalledWith(mockPrivyClient, {
|
|
32
32
|
walletId: createdWallet.id,
|
|
33
33
|
address: createdWallet.address,
|
|
34
|
-
|
|
34
|
+
authorizationContext,
|
|
35
35
|
});
|
|
36
36
|
expect(signer).toBe(mockLocalAccount);
|
|
37
37
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSigner.spec.js","sourceRoot":"","sources":["../../../../../../../../src/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"createSigner.spec.js","sourceRoot":"","sources":["../../../../../../../../src/wallet/node/wallets/hosted/privy/utils/__tests__/createSigner.spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAEjD,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,2BAA2B,GAC5B,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,0DAA0D,CAAA;AAEvF,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IAC1C,4CAA4C;IAC5C,GAAG,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;IACjD,iBAAiB,EAAE,EAAE,CAAC,EAAE,EAAE;CAC3B,CAAC,CAAC,CAAA;AAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,MAAM,WAAW,GAAG,gBAAgB,EAAE,CAAA;IACtC,MAAM,eAAe,GAAG,qBAAqB,CAC3C,aAAa,EACb,iBAAiB,CAClB,CAAA;IACD,MAAM,gBAAgB,GAAG;QACvB,OAAO,EAAE,WAAW;QACpB,WAAW,EAAE,EAAE,CAAC,EAAE,EAAE;QACpB,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE;QACb,eAAe,EAAE,EAAE,CAAC,EAAE,EAAE;QACxB,aAAa,EAAE,EAAE,CAAC,EAAE,EAAE;KACI,CAAA;IAE5B,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;QACjE,MAAM,aAAa,GAAG,qBAAqB,EAAE,CAAA;QAC7C,EAAE,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAA;QAC9D,MAAM,oBAAoB,GAAG,2BAA2B,EAAE,CAAA;QAE1D,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,WAAW,EAAE,eAAe;YAC5B,oBAAoB,EAAE,oBAAoB;YAC1C,QAAQ,EAAE,aAAa,CAAC,EAAE;YAC1B,OAAO,EAAE,aAAa,CAAC,OAAO;SAC/B,CAAC,CAAA;QAEF,MAAM,CAAC,iBAAiB,CAAC,CAAC,oBAAoB,CAAC,eAAe,EAAE;YAC9D,QAAQ,EAAE,aAAa,CAAC,EAAE;YAC1B,OAAO,EAAE,aAAa,CAAC,OAAO;YAC9B,oBAAoB;SACrB,CAAC,CAAA;QACF,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;IACvC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|