@lit-protocol/vincent-e2e-test-utils 3.0.1 → 3.1.0-alpha
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/package.json +2 -6
- package/dist/src/index.d.ts +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +6 -16
- package/dist/src/index.js.map +1 -1
- package/dist/src/setup-dev-env/app-registration/areAbilitiesAndPoliciesEqual.d.ts +3 -0
- package/dist/src/setup-dev-env/app-registration/areAbilitiesAndPoliciesEqual.d.ts.map +1 -0
- package/dist/src/setup-dev-env/app-registration/areAbilitiesAndPoliciesEqual.js +32 -0
- package/dist/src/setup-dev-env/app-registration/areAbilitiesAndPoliciesEqual.js.map +1 -0
- package/dist/src/setup-dev-env/app-registration/handeAppRegistration.d.ts +14 -0
- package/dist/src/setup-dev-env/app-registration/handeAppRegistration.d.ts.map +1 -0
- package/dist/src/setup-dev-env/app-registration/handeAppRegistration.js +43 -0
- package/dist/src/setup-dev-env/app-registration/handeAppRegistration.js.map +1 -0
- package/dist/src/setup-dev-env/app-registration/registerNewApp.d.ts +17 -0
- package/dist/src/setup-dev-env/app-registration/registerNewApp.d.ts.map +1 -0
- package/dist/src/setup-dev-env/app-registration/registerNewApp.js +46 -0
- package/dist/src/setup-dev-env/app-registration/registerNewApp.js.map +1 -0
- package/dist/src/setup-dev-env/app-registration/registerNewAppVersion.d.ts +16 -0
- package/dist/src/setup-dev-env/app-registration/registerNewAppVersion.d.ts.map +1 -0
- package/dist/src/setup-dev-env/app-registration/registerNewAppVersion.js +68 -0
- package/dist/src/setup-dev-env/app-registration/registerNewAppVersion.js.map +1 -0
- package/dist/src/setup-dev-env/blockchain/installAppUsingUserEoa.d.ts +31 -0
- package/dist/src/setup-dev-env/blockchain/installAppUsingUserEoa.d.ts.map +1 -0
- package/dist/src/setup-dev-env/blockchain/installAppUsingUserEoa.js +40 -0
- package/dist/src/setup-dev-env/blockchain/installAppUsingUserEoa.js.map +1 -0
- package/dist/src/setup-dev-env/blockchain/registerNewAppVersionOnChain.d.ts +12 -0
- package/dist/src/setup-dev-env/blockchain/registerNewAppVersionOnChain.d.ts.map +1 -0
- package/dist/src/setup-dev-env/blockchain/registerNewAppVersionOnChain.js +23 -0
- package/dist/src/setup-dev-env/blockchain/registerNewAppVersionOnChain.js.map +1 -0
- package/dist/src/setup-dev-env/getEnv.d.ts +2 -0
- package/dist/src/setup-dev-env/getEnv.d.ts.map +1 -0
- package/dist/src/setup-dev-env/getEnv.js +15 -0
- package/dist/src/setup-dev-env/getEnv.js.map +1 -0
- package/dist/src/setup-dev-env/index.d.ts +7 -0
- package/dist/src/setup-dev-env/index.d.ts.map +1 -0
- package/dist/src/setup-dev-env/index.js +12 -0
- package/dist/src/setup-dev-env/index.js.map +1 -0
- package/dist/src/setup-dev-env/setupAgentSmartAccount.d.ts +18 -0
- package/dist/src/setup-dev-env/setupAgentSmartAccount.d.ts.map +1 -0
- package/dist/src/setup-dev-env/setupAgentSmartAccount.js +80 -0
- package/dist/src/setup-dev-env/setupAgentSmartAccount.js.map +1 -0
- package/dist/src/setup-dev-env/setupVincentApp.d.ts +19 -0
- package/dist/src/setup-dev-env/setupVincentApp.d.ts.map +1 -0
- package/dist/src/setup-dev-env/setupVincentApp.js +37 -0
- package/dist/src/setup-dev-env/setupVincentApp.js.map +1 -0
- package/dist/src/setup-dev-env/setupVincentDevEnv.d.ts +77 -0
- package/dist/src/setup-dev-env/setupVincentDevEnv.d.ts.map +1 -0
- package/dist/src/setup-dev-env/setupVincentDevEnv.js +63 -0
- package/dist/src/setup-dev-env/setupVincentDevEnv.js.map +1 -0
- package/dist/src/setup-dev-env/smart-account/createPermissionApproval.d.ts +25 -0
- package/dist/src/setup-dev-env/smart-account/createPermissionApproval.d.ts.map +1 -0
- package/dist/src/setup-dev-env/smart-account/createPermissionApproval.js +60 -0
- package/dist/src/setup-dev-env/smart-account/createPermissionApproval.js.map +1 -0
- package/dist/src/setup-dev-env/smart-account/deploySmartAccount.d.ts +15 -0
- package/dist/src/setup-dev-env/smart-account/deploySmartAccount.d.ts.map +1 -0
- package/dist/src/setup-dev-env/smart-account/deploySmartAccount.js +127 -0
- package/dist/src/setup-dev-env/smart-account/deploySmartAccount.js.map +1 -0
- package/dist/src/setup-dev-env/smart-account/deriveSmartAccountAddress.d.ts +3 -0
- package/dist/src/setup-dev-env/smart-account/deriveSmartAccountAddress.d.ts.map +1 -0
- package/dist/src/setup-dev-env/smart-account/deriveSmartAccountAddress.js +16 -0
- package/dist/src/setup-dev-env/smart-account/deriveSmartAccountAddress.js.map +1 -0
- package/dist/src/setup-dev-env/vincent-registry-api/completeAppInstallation.d.ts +15 -0
- package/dist/src/setup-dev-env/vincent-registry-api/completeAppInstallation.d.ts.map +1 -0
- package/dist/src/setup-dev-env/vincent-registry-api/completeAppInstallation.js +56 -0
- package/dist/src/setup-dev-env/vincent-registry-api/completeAppInstallation.js.map +1 -0
- package/dist/src/setup-dev-env/vincent-registry-api/generateAppManagerJwt.d.ts +4 -0
- package/dist/src/setup-dev-env/vincent-registry-api/generateAppManagerJwt.d.ts.map +1 -0
- package/dist/src/setup-dev-env/vincent-registry-api/generateAppManagerJwt.js +28 -0
- package/dist/src/setup-dev-env/vincent-registry-api/generateAppManagerJwt.js.map +1 -0
- package/dist/src/setup-dev-env/vincent-registry-api/installApp.d.ts +16 -0
- package/dist/src/setup-dev-env/vincent-registry-api/installApp.d.ts.map +1 -0
- package/dist/src/setup-dev-env/vincent-registry-api/installApp.js +29 -0
- package/dist/src/setup-dev-env/vincent-registry-api/installApp.js.map +1 -0
- package/dist/src/setup-dev-env/vincent-registry-api/registerApp.d.ts +8 -0
- package/dist/src/setup-dev-env/vincent-registry-api/registerApp.d.ts.map +1 -0
- package/dist/src/setup-dev-env/vincent-registry-api/registerApp.js +30 -0
- package/dist/src/setup-dev-env/vincent-registry-api/registerApp.js.map +1 -0
- package/dist/src/setup-dev-env/vincent-registry-api/registerAppVersion.d.ts +9 -0
- package/dist/src/setup-dev-env/vincent-registry-api/registerAppVersion.d.ts.map +1 -0
- package/dist/src/setup-dev-env/vincent-registry-api/registerAppVersion.js +27 -0
- package/dist/src/setup-dev-env/vincent-registry-api/registerAppVersion.js.map +1 -0
- package/dist/src/setup-dev-env/vincent-registry-api/setActiveAppVersion.d.ts +7 -0
- package/dist/src/setup-dev-env/vincent-registry-api/setActiveAppVersion.d.ts.map +1 -0
- package/dist/src/setup-dev-env/vincent-registry-api/setActiveAppVersion.js +25 -0
- package/dist/src/setup-dev-env/vincent-registry-api/setActiveAppVersion.js.map +1 -0
- package/dist/src/setup-dev-env/wallets/ensureWalletHasCapacityCredit.d.ts +15 -0
- package/dist/src/setup-dev-env/wallets/ensureWalletHasCapacityCredit.d.ts.map +1 -0
- package/dist/src/setup-dev-env/wallets/ensureWalletHasCapacityCredit.js +63 -0
- package/dist/src/setup-dev-env/wallets/ensureWalletHasCapacityCredit.js.map +1 -0
- package/dist/src/setup-dev-env/wallets/ensureWalletHasTokens.d.ts +14 -0
- package/dist/src/setup-dev-env/wallets/ensureWalletHasTokens.d.ts.map +1 -0
- package/dist/src/setup-dev-env/wallets/ensureWalletHasTokens.js +28 -0
- package/dist/src/setup-dev-env/wallets/ensureWalletHasTokens.js.map +1 -0
- package/dist/src/setup-dev-env/wallets/setupWallets.d.ts +48 -0
- package/dist/src/setup-dev-env/wallets/setupWallets.d.ts.map +1 -0
- package/dist/src/setup-dev-env/wallets/setupWallets.js +159 -0
- package/dist/src/setup-dev-env/wallets/setupWallets.js.map +1 -0
- package/package.json +4 -8
- package/dist/src/lib/appManager/ensure-funded.d.ts +0 -2
- package/dist/src/lib/appManager/ensure-funded.d.ts.map +0 -1
- package/dist/src/lib/appManager/ensure-funded.js +0 -11
- package/dist/src/lib/appManager/ensure-funded.js.map +0 -1
- package/dist/src/lib/appManager/index.d.ts +0 -5
- package/dist/src/lib/appManager/index.d.ts.map +0 -1
- package/dist/src/lib/appManager/index.js +0 -12
- package/dist/src/lib/appManager/index.js.map +0 -1
- package/dist/src/lib/appManager/register-new-app-version.d.ts +0 -28
- package/dist/src/lib/appManager/register-new-app-version.d.ts.map +0 -1
- package/dist/src/lib/appManager/register-new-app-version.js +0 -82
- package/dist/src/lib/appManager/register-new-app-version.js.map +0 -1
- package/dist/src/lib/appManager/register-new-app.d.ts +0 -13
- package/dist/src/lib/appManager/register-new-app.d.ts.map +0 -1
- package/dist/src/lib/appManager/register-new-app.js +0 -25
- package/dist/src/lib/appManager/register-new-app.js.map +0 -1
- package/dist/src/lib/appManager/remove-delegatee-from-app.d.ts +0 -7
- package/dist/src/lib/appManager/remove-delegatee-from-app.d.ts.map +0 -1
- package/dist/src/lib/appManager/remove-delegatee-from-app.js +0 -26
- package/dist/src/lib/appManager/remove-delegatee-from-app.js.map +0 -1
- package/dist/src/lib/chain.d.ts +0 -13
- package/dist/src/lib/chain.d.ts.map +0 -1
- package/dist/src/lib/chain.js +0 -30
- package/dist/src/lib/chain.js.map +0 -1
- package/dist/src/lib/create-random-vincent-wallets.d.ts +0 -7
- package/dist/src/lib/create-random-vincent-wallets.d.ts.map +0 -1
- package/dist/src/lib/create-random-vincent-wallets.js +0 -12
- package/dist/src/lib/create-random-vincent-wallets.js.map +0 -1
- package/dist/src/lib/delegatee/ensure-funded.d.ts +0 -2
- package/dist/src/lib/delegatee/ensure-funded.d.ts.map +0 -1
- package/dist/src/lib/delegatee/ensure-funded.js +0 -11
- package/dist/src/lib/delegatee/ensure-funded.js.map +0 -1
- package/dist/src/lib/delegatee/get-app-info.d.ts +0 -5
- package/dist/src/lib/delegatee/get-app-info.d.ts.map +0 -1
- package/dist/src/lib/delegatee/get-app-info.js +0 -19
- package/dist/src/lib/delegatee/get-app-info.js.map +0 -1
- package/dist/src/lib/delegatee/index.d.ts +0 -3
- package/dist/src/lib/delegatee/index.d.ts.map +0 -1
- package/dist/src/lib/delegatee/index.js +0 -8
- package/dist/src/lib/delegatee/index.js.map +0 -1
- package/dist/src/lib/delegator/add-permission-for-abilities.d.ts +0 -4
- package/dist/src/lib/delegator/add-permission-for-abilities.d.ts.map +0 -1
- package/dist/src/lib/delegator/add-permission-for-abilities.js +0 -21
- package/dist/src/lib/delegator/add-permission-for-abilities.js.map +0 -1
- package/dist/src/lib/delegator/agent-pkp.d.ts +0 -20
- package/dist/src/lib/delegator/agent-pkp.d.ts.map +0 -1
- package/dist/src/lib/delegator/agent-pkp.js +0 -96
- package/dist/src/lib/delegator/agent-pkp.js.map +0 -1
- package/dist/src/lib/delegator/get-platform-user-pkp-wallet.d.ts +0 -8
- package/dist/src/lib/delegator/get-platform-user-pkp-wallet.d.ts.map +0 -1
- package/dist/src/lib/delegator/get-platform-user-pkp-wallet.js +0 -77
- package/dist/src/lib/delegator/get-platform-user-pkp-wallet.js.map +0 -1
- package/dist/src/lib/delegator/index.d.ts +0 -7
- package/dist/src/lib/delegator/index.d.ts.map +0 -1
- package/dist/src/lib/delegator/index.js +0 -20
- package/dist/src/lib/delegator/index.js.map +0 -1
- package/dist/src/lib/delegator/permit-vincent-app-version.d.ts +0 -19
- package/dist/src/lib/delegator/permit-vincent-app-version.d.ts.map +0 -1
- package/dist/src/lib/delegator/permit-vincent-app-version.js +0 -45
- package/dist/src/lib/delegator/permit-vincent-app-version.js.map +0 -1
- package/dist/src/lib/delegator/platform-user-pkp.d.ts +0 -10
- package/dist/src/lib/delegator/platform-user-pkp.d.ts.map +0 -1
- package/dist/src/lib/delegator/platform-user-pkp.js +0 -48
- package/dist/src/lib/delegator/platform-user-pkp.js.map +0 -1
- package/dist/src/lib/ensure-capacity-credit.d.ts +0 -4
- package/dist/src/lib/ensure-capacity-credit.d.ts.map +0 -1
- package/dist/src/lib/ensure-capacity-credit.js +0 -57
- package/dist/src/lib/ensure-capacity-credit.js.map +0 -1
- package/dist/src/lib/env.d.ts +0 -30
- package/dist/src/lib/env.d.ts.map +0 -1
- package/dist/src/lib/env.js +0 -58
- package/dist/src/lib/env.js.map +0 -1
- package/dist/src/lib/environment/crossmint.d.ts +0 -3
- package/dist/src/lib/environment/crossmint.d.ts.map +0 -1
- package/dist/src/lib/environment/crossmint.js +0 -23
- package/dist/src/lib/environment/crossmint.js.map +0 -1
- package/dist/src/lib/environment/safe.d.ts +0 -567
- package/dist/src/lib/environment/safe.d.ts.map +0 -1
- package/dist/src/lib/environment/safe.js +0 -41
- package/dist/src/lib/environment/safe.js.map +0 -1
- package/dist/src/lib/environment/zerodev.d.ts +0 -49
- package/dist/src/lib/environment/zerodev.d.ts.map +0 -1
- package/dist/src/lib/environment/zerodev.js +0 -32
- package/dist/src/lib/environment/zerodev.js.map +0 -1
- package/dist/src/lib/funder/check-funder-balance.d.ts +0 -3
- package/dist/src/lib/funder/check-funder-balance.d.ts.map +0 -1
- package/dist/src/lib/funder/check-funder-balance.js +0 -19
- package/dist/src/lib/funder/check-funder-balance.js.map +0 -1
- package/dist/src/lib/funder/ensure-wallet-has-test-tokens.d.ts +0 -5
- package/dist/src/lib/funder/ensure-wallet-has-test-tokens.d.ts.map +0 -1
- package/dist/src/lib/funder/ensure-wallet-has-test-tokens.js +0 -35
- package/dist/src/lib/funder/ensure-wallet-has-test-tokens.js.map +0 -1
- package/dist/src/lib/funder/index.d.ts +0 -5
- package/dist/src/lib/funder/index.d.ts.map +0 -1
- package/dist/src/lib/funder/index.js +0 -10
- package/dist/src/lib/funder/index.js.map +0 -1
- package/dist/src/lib/index.d.ts +0 -18
- package/dist/src/lib/index.d.ts.map +0 -1
- package/dist/src/lib/index.js +0 -31
- package/dist/src/lib/index.js.map +0 -1
- package/dist/src/lib/litContractsClient/LitContractsInstance.d.ts +0 -14
- package/dist/src/lib/litContractsClient/LitContractsInstance.d.ts.map +0 -1
- package/dist/src/lib/litContractsClient/LitContractsInstance.js +0 -48
- package/dist/src/lib/litContractsClient/LitContractsInstance.js.map +0 -1
- package/dist/src/lib/litContractsClient/get-lit-contract-client.d.ts +0 -7
- package/dist/src/lib/litContractsClient/get-lit-contract-client.d.ts.map +0 -1
- package/dist/src/lib/litContractsClient/get-lit-contract-client.js +0 -19
- package/dist/src/lib/litContractsClient/get-lit-contract-client.js.map +0 -1
- package/dist/src/lib/litContractsClient/index.d.ts +0 -3
- package/dist/src/lib/litContractsClient/index.d.ts.map +0 -1
- package/dist/src/lib/litContractsClient/index.js +0 -8
- package/dist/src/lib/litContractsClient/index.js.map +0 -1
- package/dist/src/lib/mint-new-pkp.d.ts +0 -16
- package/dist/src/lib/mint-new-pkp.d.ts.map +0 -1
- package/dist/src/lib/mint-new-pkp.js +0 -40
- package/dist/src/lib/mint-new-pkp.js.map +0 -1
- package/dist/src/lib/setup-vincent-development-environment.d.ts +0 -81
- package/dist/src/lib/setup-vincent-development-environment.d.ts.map +0 -1
- package/dist/src/lib/setup-vincent-development-environment.js +0 -185
- package/dist/src/lib/setup-vincent-development-environment.js.map +0 -1
- package/dist/src/lib/smartAccount/crossmint/setup-crossmint-account.d.ts +0 -3
- package/dist/src/lib/smartAccount/crossmint/setup-crossmint-account.d.ts.map +0 -1
- package/dist/src/lib/smartAccount/crossmint/setup-crossmint-account.js +0 -96
- package/dist/src/lib/smartAccount/crossmint/setup-crossmint-account.js.map +0 -1
- package/dist/src/lib/smartAccount/index.d.ts +0 -5
- package/dist/src/lib/smartAccount/index.d.ts.map +0 -1
- package/dist/src/lib/smartAccount/index.js +0 -10
- package/dist/src/lib/smartAccount/index.js.map +0 -1
- package/dist/src/lib/smartAccount/safe/setup-safe-account.d.ts +0 -15
- package/dist/src/lib/smartAccount/safe/setup-safe-account.d.ts.map +0 -1
- package/dist/src/lib/smartAccount/safe/setup-safe-account.js +0 -92
- package/dist/src/lib/smartAccount/safe/setup-safe-account.js.map +0 -1
- package/dist/src/lib/smartAccount/types.d.ts +0 -30
- package/dist/src/lib/smartAccount/types.d.ts.map +0 -1
- package/dist/src/lib/smartAccount/types.js +0 -3
- package/dist/src/lib/smartAccount/types.js.map +0 -1
- package/dist/src/lib/smartAccount/zerodev/get-permission-empty-validator.d.ts +0 -3
- package/dist/src/lib/smartAccount/zerodev/get-permission-empty-validator.d.ts.map +0 -1
- package/dist/src/lib/smartAccount/zerodev/get-permission-empty-validator.js +0 -24
- package/dist/src/lib/smartAccount/zerodev/get-permission-empty-validator.js.map +0 -1
- package/dist/src/lib/smartAccount/zerodev/setup-zerodev-account.d.ts +0 -18
- package/dist/src/lib/smartAccount/zerodev/setup-zerodev-account.d.ts.map +0 -1
- package/dist/src/lib/smartAccount/zerodev/setup-zerodev-account.js +0 -112
- package/dist/src/lib/smartAccount/zerodev/setup-zerodev-account.js.map +0 -1
- package/dist/src/lib/types.d.ts +0 -17
- package/dist/src/lib/types.d.ts.map +0 -1
- package/dist/src/lib/types.js +0 -3
- package/dist/src/lib/types.js.map +0 -1
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setupAgentSmartAccount = setupAgentSmartAccount;
|
|
4
|
+
const viem_1 = require("viem");
|
|
5
|
+
const installApp_1 = require("./vincent-registry-api/installApp");
|
|
6
|
+
const completeAppInstallation_1 = require("./vincent-registry-api/completeAppInstallation");
|
|
7
|
+
async function setupAgentSmartAccount({ vincentRegistryRpcUrl, vincentApiUrl, vincentRegistryChain, smartAccountChainRpcUrl, smartAccountChain, userEoaPrivateKey, vincentAppId, }) {
|
|
8
|
+
console.log('=== Setting up agent smart account ===');
|
|
9
|
+
const vincentRegistryPublicClient = (0, viem_1.createPublicClient)({
|
|
10
|
+
chain: vincentRegistryChain,
|
|
11
|
+
transport: (0, viem_1.http)(vincentRegistryRpcUrl),
|
|
12
|
+
});
|
|
13
|
+
const smartAccountPublicClient = (0, viem_1.createPublicClient)({
|
|
14
|
+
chain: smartAccountChain,
|
|
15
|
+
transport: (0, viem_1.http)(smartAccountChainRpcUrl),
|
|
16
|
+
});
|
|
17
|
+
// Step 1: Install app via registry API to create PKP and get typed data to sign
|
|
18
|
+
const installData = await (0, installApp_1.installApp)({
|
|
19
|
+
vincentApiUrl,
|
|
20
|
+
appId: vincentAppId,
|
|
21
|
+
userEoaPrivateKey,
|
|
22
|
+
});
|
|
23
|
+
// Step 2: Check if app is already installed
|
|
24
|
+
if (installData.alreadyInstalled === true) {
|
|
25
|
+
console.log('=== App already installed, skipping installation ===');
|
|
26
|
+
console.table({
|
|
27
|
+
'PKP Signer Address': installData.agentSignerAddress,
|
|
28
|
+
'Smart Account Address': installData.agentSmartAccountAddress,
|
|
29
|
+
Status: 'Already installed',
|
|
30
|
+
});
|
|
31
|
+
return {
|
|
32
|
+
agentSmartAccountAddress: installData.agentSmartAccountAddress,
|
|
33
|
+
agentSignerAddress: installData.agentSignerAddress,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
// Step 3: Sign typed data and complete installation via API (gas-sponsored)
|
|
37
|
+
const result = await (0, completeAppInstallation_1.completeAppInstallation)({
|
|
38
|
+
vincentApiUrl,
|
|
39
|
+
userEoaPrivateKey,
|
|
40
|
+
appId: vincentAppId,
|
|
41
|
+
appInstallationDataToSign: installData.appInstallationDataToSign,
|
|
42
|
+
agentSmartAccountDeploymentDataToSign: installData.agentSmartAccountDeploymentDataToSign,
|
|
43
|
+
sessionKeyApprovalDataToSign: installData.sessionKeyApprovalDataToSign,
|
|
44
|
+
agentSignerAddress: installData.agentSignerAddress,
|
|
45
|
+
});
|
|
46
|
+
const deploymentTxHash = result.deployAgentSmartAccountTransactionHash;
|
|
47
|
+
const serializedPermissionAccount = result.serializedPermissionAccount;
|
|
48
|
+
const permitAppVersionTxHash = result.completeAppInstallationTransactionHash;
|
|
49
|
+
// Wait for all transactions to be confirmed
|
|
50
|
+
// Note: Session key approval is NOT a transaction - it's just serialization
|
|
51
|
+
// The permission plugin will be enabled when the PKP makes its first transaction
|
|
52
|
+
console.log('[setupAgentSmartAccount] Waiting for transaction confirmations');
|
|
53
|
+
await Promise.all([
|
|
54
|
+
// Smart account deployment happens on smart account chain
|
|
55
|
+
smartAccountPublicClient.waitForTransactionReceipt({
|
|
56
|
+
hash: deploymentTxHash,
|
|
57
|
+
confirmations: 2,
|
|
58
|
+
}),
|
|
59
|
+
// Permit app version happens on Vincent Registry chain
|
|
60
|
+
vincentRegistryPublicClient.waitForTransactionReceipt({
|
|
61
|
+
hash: permitAppVersionTxHash,
|
|
62
|
+
confirmations: 2,
|
|
63
|
+
}),
|
|
64
|
+
]);
|
|
65
|
+
console.table({
|
|
66
|
+
'PKP Signer Address': installData.agentSignerAddress,
|
|
67
|
+
'Smart Account Address': installData.agentSmartAccountAddress,
|
|
68
|
+
'Smart Account Deployment Tx': deploymentTxHash,
|
|
69
|
+
'Serialized Permission Account': serializedPermissionAccount.substring(0, 50) + '...',
|
|
70
|
+
'Permit App Version Tx': permitAppVersionTxHash,
|
|
71
|
+
});
|
|
72
|
+
return {
|
|
73
|
+
agentSmartAccountAddress: installData.agentSmartAccountAddress,
|
|
74
|
+
agentSignerAddress: installData.agentSignerAddress,
|
|
75
|
+
deploymentTxHash,
|
|
76
|
+
serializedPermissionAccount,
|
|
77
|
+
permitAppVersionTxHash,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=setupAgentSmartAccount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupAgentSmartAccount.js","sourceRoot":"","sources":["../../../src/setup-dev-env/setupAgentSmartAccount.ts"],"names":[],"mappings":";;AAcA,wDAkGC;AA/GD,+BAAgD;AAEhD,kEAA+D;AAC/D,4FAAyF;AAUlF,KAAK,UAAU,sBAAsB,CAAC,EAC3C,qBAAqB,EACrB,aAAa,EACb,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,GASb;IACC,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IAEtD,MAAM,2BAA2B,GAAG,IAAA,yBAAkB,EAAC;QACrD,KAAK,EAAE,oBAAoB;QAC3B,SAAS,EAAE,IAAA,WAAI,EAAC,qBAAqB,CAAC;KACvC,CAAC,CAAC;IAEH,MAAM,wBAAwB,GAAG,IAAA,yBAAkB,EAAC;QAClD,KAAK,EAAE,iBAAiB;QACxB,SAAS,EAAE,IAAA,WAAI,EAAC,uBAAuB,CAAC;KACzC,CAAC,CAAC;IAEH,gFAAgF;IAChF,MAAM,WAAW,GAAG,MAAM,IAAA,uBAAU,EAAC;QACnC,aAAa;QACb,KAAK,EAAE,YAAY;QACnB,iBAAiB;KAClB,CAAC,CAAC;IAEH,4CAA4C;IAC5C,IAAI,WAAW,CAAC,gBAAgB,KAAK,IAAI,EAAE,CAAC;QAC1C,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;QACpE,OAAO,CAAC,KAAK,CAAC;YACZ,oBAAoB,EAAE,WAAW,CAAC,kBAAkB;YACpD,uBAAuB,EAAE,WAAW,CAAC,wBAAwB;YAC7D,MAAM,EAAE,mBAAmB;SAC5B,CAAC,CAAC;QAEH,OAAO;YACL,wBAAwB,EAAE,WAAW,CAAC,wBAAmC;YACzE,kBAAkB,EAAE,WAAW,CAAC,kBAA6B;SAC9D,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,MAAM,MAAM,GAAG,MAAM,IAAA,iDAAuB,EAAC;QAC3C,aAAa;QACb,iBAAiB;QACjB,KAAK,EAAE,YAAY;QACnB,yBAAyB,EAAE,WAAW,CAAC,yBAAyB;QAChE,qCAAqC,EAAE,WAAW,CAAC,qCAAqC;QACxF,4BAA4B,EAAE,WAAW,CAAC,4BAA4B;QACtE,kBAAkB,EAAE,WAAW,CAAC,kBAAkB;KACnD,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,MAAM,CAAC,sCAAsC,CAAC;IACvE,MAAM,2BAA2B,GAAG,MAAM,CAAC,2BAA2B,CAAC;IACvE,MAAM,sBAAsB,GAAG,MAAM,CAAC,sCAAsC,CAAC;IAE7E,4CAA4C;IAC5C,4EAA4E;IAC5E,iFAAiF;IACjF,OAAO,CAAC,GAAG,CAAC,gEAAgE,CAAC,CAAC;IAC9E,MAAM,OAAO,CAAC,GAAG,CAAC;QAChB,0DAA0D;QAC1D,wBAAwB,CAAC,yBAAyB,CAAC;YACjD,IAAI,EAAE,gBAAiC;YACvC,aAAa,EAAE,CAAC;SACjB,CAAC;QACF,uDAAuD;QACvD,2BAA2B,CAAC,yBAAyB,CAAC;YACpD,IAAI,EAAE,sBAAuC;YAC7C,aAAa,EAAE,CAAC;SACjB,CAAC;KACH,CAAC,CAAC;IAEH,OAAO,CAAC,KAAK,CAAC;QACZ,oBAAoB,EAAE,WAAW,CAAC,kBAAkB;QACpD,uBAAuB,EAAE,WAAW,CAAC,wBAAwB;QAC7D,6BAA6B,EAAE,gBAAgB;QAC/C,+BAA+B,EAAE,2BAA2B,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK;QACrF,uBAAuB,EAAE,sBAAsB;KAChD,CAAC,CAAC;IAEH,OAAO;QACL,wBAAwB,EAAE,WAAW,CAAC,wBAAmC;QACzE,kBAAkB,EAAE,WAAW,CAAC,kBAA6B;QAC7D,gBAAgB;QAChB,2BAA2B;QAC3B,sBAAsB;KACvB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { AppMetadata } from './setupVincentDevEnv';
|
|
2
|
+
export interface SetupVincentAppParams {
|
|
3
|
+
vincentApiUrl: string;
|
|
4
|
+
vincentRegistryRpcUrl: string;
|
|
5
|
+
appMetadata: AppMetadata;
|
|
6
|
+
appManagerPrivateKey: `0x${string}`;
|
|
7
|
+
appDelegateePrivateKey: `0x${string}`;
|
|
8
|
+
appDelegatees: `0x${string}`[];
|
|
9
|
+
abilityIpfsCids: string[];
|
|
10
|
+
abilityPolicies: string[][];
|
|
11
|
+
}
|
|
12
|
+
export interface VincentAppInfo {
|
|
13
|
+
appId: number;
|
|
14
|
+
appVersion: number;
|
|
15
|
+
accountIndexHash?: string;
|
|
16
|
+
txHash?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function setupVincentApp({ vincentApiUrl, vincentRegistryRpcUrl, appMetadata, appManagerPrivateKey, appDelegateePrivateKey, appDelegatees, abilityIpfsCids, abilityPolicies, }: SetupVincentAppParams): Promise<VincentAppInfo>;
|
|
19
|
+
//# sourceMappingURL=setupVincentApp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupVincentApp.d.ts","sourceRoot":"","sources":["../../../src/setup-dev-env/setupVincentApp.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,qBAAqB;IACpC,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,oBAAoB,EAAE,KAAK,MAAM,EAAE,CAAC;IACpC,sBAAsB,EAAE,KAAK,MAAM,EAAE,CAAC;IACtC,aAAa,EAAE,KAAK,MAAM,EAAE,EAAE,CAAC;IAC/B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,eAAe,CAAC,EACpC,aAAa,EACb,qBAAqB,EACrB,WAAW,EACX,oBAAoB,EACpB,sBAAsB,EACtB,aAAa,EACb,eAAe,EACf,eAAe,GAChB,EAAE,qBAAqB,GAAG,OAAO,CAAC,cAAc,CAAC,CAkCjD"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setupVincentApp = setupVincentApp;
|
|
4
|
+
const handeAppRegistration_1 = require("./app-registration/handeAppRegistration");
|
|
5
|
+
const setActiveAppVersion_1 = require("./vincent-registry-api/setActiveAppVersion");
|
|
6
|
+
async function setupVincentApp({ vincentApiUrl, vincentRegistryRpcUrl, appMetadata, appManagerPrivateKey, appDelegateePrivateKey, appDelegatees, abilityIpfsCids, abilityPolicies, }) {
|
|
7
|
+
console.log('=== Setting up Vincent App ===');
|
|
8
|
+
// Step 1: Handle app registration (new app or new version)
|
|
9
|
+
// This registers on-chain and with the API
|
|
10
|
+
const registration = await (0, handeAppRegistration_1.handleAppRegistration)({
|
|
11
|
+
vincentApiUrl,
|
|
12
|
+
vincentRegistryRpcUrl,
|
|
13
|
+
appManagerPrivateKey,
|
|
14
|
+
appDelegateePrivateKey,
|
|
15
|
+
appMetadata,
|
|
16
|
+
appDelegatees,
|
|
17
|
+
abilityIpfsCids,
|
|
18
|
+
abilityPolicies,
|
|
19
|
+
});
|
|
20
|
+
// Step 2: Set active version
|
|
21
|
+
// For new apps: handleAppRegistration already called registerAppWithVincentApi
|
|
22
|
+
// For new versions: handleAppRegistration already called registerAppVersionWithVincentApi
|
|
23
|
+
// Now we just need to set the active version
|
|
24
|
+
await (0, setActiveAppVersion_1.setActiveVersion)({
|
|
25
|
+
vincentApiUrl,
|
|
26
|
+
appManagerPrivateKey,
|
|
27
|
+
appId: registration.appId,
|
|
28
|
+
activeVersion: registration.appVersion,
|
|
29
|
+
});
|
|
30
|
+
return {
|
|
31
|
+
appId: registration.appId,
|
|
32
|
+
appVersion: registration.appVersion,
|
|
33
|
+
accountIndexHash: 'accountIndexHash' in registration ? registration.accountIndexHash : undefined,
|
|
34
|
+
txHash: registration.txHash,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=setupVincentApp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupVincentApp.js","sourceRoot":"","sources":["../../../src/setup-dev-env/setupVincentApp.ts"],"names":[],"mappings":";;AAsBA,0CA2CC;AAjED,kFAAgF;AAChF,oFAA8E;AAqBvE,KAAK,UAAU,eAAe,CAAC,EACpC,aAAa,EACb,qBAAqB,EACrB,WAAW,EACX,oBAAoB,EACpB,sBAAsB,EACtB,aAAa,EACb,eAAe,EACf,eAAe,GACO;IACtB,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAE9C,2DAA2D;IAC3D,2CAA2C;IAC3C,MAAM,YAAY,GAAG,MAAM,IAAA,4CAAqB,EAAC;QAC/C,aAAa;QACb,qBAAqB;QACrB,oBAAoB;QACpB,sBAAsB;QACtB,WAAW;QACX,aAAa;QACb,eAAe;QACf,eAAe;KAChB,CAAC,CAAC;IAEH,6BAA6B;IAC7B,+EAA+E;IAC/E,0FAA0F;IAC1F,6CAA6C;IAC7C,MAAM,IAAA,sCAAgB,EAAC;QACrB,aAAa;QACb,oBAAoB;QACpB,KAAK,EAAE,YAAY,CAAC,KAAK;QACzB,aAAa,EAAE,YAAY,CAAC,UAAU;KACvC,CAAC,CAAC;IAEH,OAAO;QACL,KAAK,EAAE,YAAY,CAAC,KAAK;QACzB,UAAU,EAAE,YAAY,CAAC,UAAU;QACnC,gBAAgB,EACd,kBAAkB,IAAI,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS;QAChF,MAAM,EAAE,YAAY,CAAC,MAAM;KAC5B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import type { Address, Chain, PrivateKeyAccount, PublicClient } from 'viem';
|
|
2
|
+
import type { Wallet } from 'ethers';
|
|
3
|
+
export interface VincentDevEnvironment {
|
|
4
|
+
vincentRegistryRpcUrl: string;
|
|
5
|
+
vincentRegistryChain: Chain;
|
|
6
|
+
smartAccountChainRpcUrl: string;
|
|
7
|
+
smartAccountChain: Chain;
|
|
8
|
+
appId: number;
|
|
9
|
+
appVersion: number;
|
|
10
|
+
accountIndexHash?: string;
|
|
11
|
+
accounts: {
|
|
12
|
+
funder: PrivateKeyAccount;
|
|
13
|
+
appManager: PrivateKeyAccount;
|
|
14
|
+
appDelegatee: PrivateKeyAccount;
|
|
15
|
+
userEoa: PrivateKeyAccount;
|
|
16
|
+
};
|
|
17
|
+
ethersWallets: {
|
|
18
|
+
funder: Wallet;
|
|
19
|
+
appManager: Wallet;
|
|
20
|
+
appDelegatee: Wallet;
|
|
21
|
+
userEoa: Wallet;
|
|
22
|
+
};
|
|
23
|
+
clients: {
|
|
24
|
+
vincentRegistryPublicClient: PublicClient;
|
|
25
|
+
chronicleYellowstonePublicClient: PublicClient;
|
|
26
|
+
};
|
|
27
|
+
agentSmartAccount: {
|
|
28
|
+
address: Address;
|
|
29
|
+
agentSignerAddress: Address;
|
|
30
|
+
deploymentTxHash?: string;
|
|
31
|
+
serializedPermissionAccount?: string;
|
|
32
|
+
permitAppVersionTxHash?: string;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export interface AppMetadata {
|
|
36
|
+
name: string;
|
|
37
|
+
description: string;
|
|
38
|
+
contactEmail: string;
|
|
39
|
+
appUrl: string;
|
|
40
|
+
logo?: string;
|
|
41
|
+
deploymentStatus?: 'dev' | 'test' | 'prod';
|
|
42
|
+
}
|
|
43
|
+
interface FundingConfig {
|
|
44
|
+
funder?: {
|
|
45
|
+
minAmountVincentRegistryChain?: bigint;
|
|
46
|
+
minAmountChronicleYellowstone?: bigint;
|
|
47
|
+
};
|
|
48
|
+
appManagerMinAmount?: {
|
|
49
|
+
minAmountVincentRegistryChain?: bigint;
|
|
50
|
+
};
|
|
51
|
+
userEoaMinAmount?: {
|
|
52
|
+
minAmountVincentRegistryChain?: bigint;
|
|
53
|
+
};
|
|
54
|
+
appDelegateeMinAmount?: {
|
|
55
|
+
minAmountChronicleYellowstone?: bigint;
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
export interface SetupConfig {
|
|
59
|
+
vincentRegistryRpcUrl: string;
|
|
60
|
+
vincentRegistryChain: Chain;
|
|
61
|
+
smartAccountChainRpcUrl: string;
|
|
62
|
+
smartAccountChain: Chain;
|
|
63
|
+
vincentApiUrl: string;
|
|
64
|
+
privateKeys: {
|
|
65
|
+
appManager: `0x${string}`;
|
|
66
|
+
appDelegatee: `0x${string}`;
|
|
67
|
+
userEoa: `0x${string}`;
|
|
68
|
+
funder: `0x${string}`;
|
|
69
|
+
};
|
|
70
|
+
appMetadata: AppMetadata;
|
|
71
|
+
abilityIpfsCids: string[];
|
|
72
|
+
abilityPolicies: string[][];
|
|
73
|
+
funding?: FundingConfig;
|
|
74
|
+
}
|
|
75
|
+
export declare function setupVincentDevelopmentEnvironment(config: SetupConfig): Promise<VincentDevEnvironment>;
|
|
76
|
+
export {};
|
|
77
|
+
//# sourceMappingURL=setupVincentDevEnv.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupVincentDevEnv.d.ts","sourceRoot":"","sources":["../../../src/setup-dev-env/setupVincentDevEnv.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAC5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAMrC,MAAM,WAAW,qBAAqB;IACpC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,KAAK,CAAC;IAC5B,uBAAuB,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,KAAK,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE;QACR,MAAM,EAAE,iBAAiB,CAAC;QAC1B,UAAU,EAAE,iBAAiB,CAAC;QAC9B,YAAY,EAAE,iBAAiB,CAAC;QAChC,OAAO,EAAE,iBAAiB,CAAC;KAC5B,CAAC;IACF,aAAa,EAAE;QACb,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,OAAO,EAAE;QACP,2BAA2B,EAAE,YAAY,CAAC;QAC1C,gCAAgC,EAAE,YAAY,CAAC;KAChD,CAAC;IACF,iBAAiB,EAAE;QACjB,OAAO,EAAE,OAAO,CAAC;QACjB,kBAAkB,EAAE,OAAO,CAAC;QAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,2BAA2B,CAAC,EAAE,MAAM,CAAC;QACrC,sBAAsB,CAAC,EAAE,MAAM,CAAC;KACjC,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;CAC5C;AAED,UAAU,aAAa;IACrB,MAAM,CAAC,EAAE;QACP,6BAA6B,CAAC,EAAE,MAAM,CAAC;QACvC,6BAA6B,CAAC,EAAE,MAAM,CAAC;KACxC,CAAC;IACF,mBAAmB,CAAC,EAAE;QACpB,6BAA6B,CAAC,EAAE,MAAM,CAAC;KACxC,CAAC;IACF,gBAAgB,CAAC,EAAE;QACjB,6BAA6B,CAAC,EAAE,MAAM,CAAC;KACxC,CAAC;IACF,qBAAqB,CAAC,EAAE;QACtB,6BAA6B,CAAC,EAAE,MAAM,CAAC;KACxC,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,qBAAqB,EAAE,MAAM,CAAC;IAC9B,oBAAoB,EAAE,KAAK,CAAC;IAC5B,uBAAuB,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,KAAK,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE;QACX,UAAU,EAAE,KAAK,MAAM,EAAE,CAAC;QAC1B,YAAY,EAAE,KAAK,MAAM,EAAE,CAAC;QAC5B,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC;KACvB,CAAC;IACF,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,EAAE,MAAM,EAAE,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,wBAAsB,kCAAkC,CACtD,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,qBAAqB,CAAC,CA4DhC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setupVincentDevelopmentEnvironment = setupVincentDevelopmentEnvironment;
|
|
4
|
+
const setupWallets_1 = require("./wallets/setupWallets");
|
|
5
|
+
const setupVincentApp_1 = require("./setupVincentApp");
|
|
6
|
+
const setupAgentSmartAccount_1 = require("./setupAgentSmartAccount");
|
|
7
|
+
async function setupVincentDevelopmentEnvironment(config) {
|
|
8
|
+
console.log('=== Setting up Vincent Development Environment ===');
|
|
9
|
+
console.table({
|
|
10
|
+
VINCENT_REGISTRY_NETWORK: config.vincentRegistryChain.name,
|
|
11
|
+
VINCENT_REGISTRY_CHAIN_ID: config.vincentRegistryChain.id,
|
|
12
|
+
VINCENT_REGISTRY_RPC_URL: config.vincentRegistryRpcUrl,
|
|
13
|
+
});
|
|
14
|
+
// Phase 1: Setup wallets and fund them
|
|
15
|
+
const { accounts, ethersWallets, clients } = await (0, setupWallets_1.setupWallets)({
|
|
16
|
+
privateKeys: config.privateKeys,
|
|
17
|
+
vincentRegistryChain: config.vincentRegistryChain,
|
|
18
|
+
vincentRegistryRpcUrl: config.vincentRegistryRpcUrl,
|
|
19
|
+
funding: config.funding,
|
|
20
|
+
});
|
|
21
|
+
// Phase 2: Setup Vincent app (registration and API configuration)
|
|
22
|
+
const appInfo = await (0, setupVincentApp_1.setupVincentApp)({
|
|
23
|
+
vincentRegistryRpcUrl: config.vincentRegistryRpcUrl,
|
|
24
|
+
vincentApiUrl: config.vincentApiUrl,
|
|
25
|
+
appManagerPrivateKey: config.privateKeys.appManager,
|
|
26
|
+
appDelegateePrivateKey: config.privateKeys.appDelegatee,
|
|
27
|
+
appDelegatees: [accounts.appDelegatee.address],
|
|
28
|
+
appMetadata: config.appMetadata,
|
|
29
|
+
abilityIpfsCids: config.abilityIpfsCids,
|
|
30
|
+
abilityPolicies: config.abilityPolicies,
|
|
31
|
+
});
|
|
32
|
+
// Phase 3: Setup user's agent smart account (sign typed data and complete installation)
|
|
33
|
+
const agentSmartAccountInfo = await (0, setupAgentSmartAccount_1.setupAgentSmartAccount)({
|
|
34
|
+
vincentRegistryRpcUrl: config.vincentRegistryRpcUrl,
|
|
35
|
+
vincentApiUrl: config.vincentApiUrl,
|
|
36
|
+
vincentRegistryChain: config.vincentRegistryChain,
|
|
37
|
+
smartAccountChainRpcUrl: config.smartAccountChainRpcUrl,
|
|
38
|
+
smartAccountChain: config.smartAccountChain,
|
|
39
|
+
userEoaPrivateKey: config.privateKeys.userEoa,
|
|
40
|
+
vincentAppId: appInfo.appId,
|
|
41
|
+
});
|
|
42
|
+
console.log('=== Vincent Development Environment Setup Complete ===');
|
|
43
|
+
return {
|
|
44
|
+
vincentRegistryRpcUrl: config.vincentRegistryRpcUrl,
|
|
45
|
+
vincentRegistryChain: config.vincentRegistryChain,
|
|
46
|
+
smartAccountChainRpcUrl: config.smartAccountChainRpcUrl,
|
|
47
|
+
smartAccountChain: config.smartAccountChain,
|
|
48
|
+
appId: appInfo.appId,
|
|
49
|
+
appVersion: appInfo.appVersion,
|
|
50
|
+
accountIndexHash: appInfo.accountIndexHash,
|
|
51
|
+
accounts,
|
|
52
|
+
ethersWallets,
|
|
53
|
+
clients,
|
|
54
|
+
agentSmartAccount: {
|
|
55
|
+
address: agentSmartAccountInfo.agentSmartAccountAddress,
|
|
56
|
+
agentSignerAddress: agentSmartAccountInfo.agentSignerAddress,
|
|
57
|
+
deploymentTxHash: agentSmartAccountInfo.deploymentTxHash,
|
|
58
|
+
serializedPermissionAccount: agentSmartAccountInfo.serializedPermissionAccount,
|
|
59
|
+
permitAppVersionTxHash: agentSmartAccountInfo.permitAppVersionTxHash,
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=setupVincentDevEnv.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupVincentDevEnv.js","sourceRoot":"","sources":["../../../src/setup-dev-env/setupVincentDevEnv.ts"],"names":[],"mappings":";;AAmFA,gFA8DC;AA9ID,yDAAsD;AACtD,uDAAoD;AACpD,qEAAkE;AA8E3D,KAAK,UAAU,kCAAkC,CACtD,MAAmB;IAEnB,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAClE,OAAO,CAAC,KAAK,CAAC;QACZ,wBAAwB,EAAE,MAAM,CAAC,oBAAoB,CAAC,IAAI;QAC1D,yBAAyB,EAAE,MAAM,CAAC,oBAAoB,CAAC,EAAE;QACzD,wBAAwB,EAAE,MAAM,CAAC,qBAAqB;KACvD,CAAC,CAAC;IAEH,uCAAuC;IACvC,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,2BAAY,EAAC;QAC9D,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;QACjD,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;QACnD,OAAO,EAAE,MAAM,CAAC,OAAO;KACxB,CAAC,CAAC;IAEH,kEAAkE;IAClE,MAAM,OAAO,GAAG,MAAM,IAAA,iCAAe,EAAC;QACpC,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;QACnD,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,oBAAoB,EAAE,MAAM,CAAC,WAAW,CAAC,UAAU;QACnD,sBAAsB,EAAE,MAAM,CAAC,WAAW,CAAC,YAAY;QACvD,aAAa,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC;QAC9C,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,eAAe,EAAE,MAAM,CAAC,eAAe;KACxC,CAAC,CAAC;IAEH,wFAAwF;IACxF,MAAM,qBAAqB,GAAG,MAAM,IAAA,+CAAsB,EAAC;QACzD,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;QACnD,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;QACjD,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;QACvD,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,iBAAiB,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO;QAC7C,YAAY,EAAE,OAAO,CAAC,KAAK;KAC5B,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;IAEtE,OAAO;QACL,qBAAqB,EAAE,MAAM,CAAC,qBAAqB;QACnD,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;QACjD,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;QACvD,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;QAC3C,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,QAAQ;QACR,aAAa;QACb,OAAO;QACP,iBAAiB,EAAE;YACjB,OAAO,EAAE,qBAAqB,CAAC,wBAAwB;YACvD,kBAAkB,EAAE,qBAAqB,CAAC,kBAAkB;YAC5D,gBAAgB,EAAE,qBAAqB,CAAC,gBAAgB;YACxD,2BAA2B,EAAE,qBAAqB,CAAC,2BAA2B;YAC9E,sBAAsB,EAAE,qBAAqB,CAAC,sBAAsB;SACrE;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Address, Chain } from 'viem';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a serialized permission approval that allows a session key (PKP) to act on behalf of the smart account.
|
|
4
|
+
*
|
|
5
|
+
* This follows the ZeroDev pattern from transaction-automation.ts:
|
|
6
|
+
* 1. Owner creates an account with BOTH validators (EOA sudo + session key permission)
|
|
7
|
+
* 2. Serializes the permission account
|
|
8
|
+
* 3. Session key can later deserialize and use it to sign transactions
|
|
9
|
+
*
|
|
10
|
+
* The serialized approval contains:
|
|
11
|
+
* - Smart account configuration (sudo validator = EOA)
|
|
12
|
+
* - Permission validator configuration (session key = PKP with sudo policy)
|
|
13
|
+
* - All necessary data for the session key to reconstruct the account
|
|
14
|
+
*
|
|
15
|
+
* @param params Configuration for creating the permission approval
|
|
16
|
+
* @returns Serialized permission approval string that can be deserialized by the session key
|
|
17
|
+
*/
|
|
18
|
+
export declare function createPermissionApproval({ userEoaPrivateKey, sessionKeyAddress, accountIndexHash, targetChain, targetChainRpcUrl, }: {
|
|
19
|
+
userEoaPrivateKey: `0x${string}`;
|
|
20
|
+
sessionKeyAddress: Address;
|
|
21
|
+
accountIndexHash: string;
|
|
22
|
+
targetChain: Chain;
|
|
23
|
+
targetChainRpcUrl: string;
|
|
24
|
+
}): Promise<string>;
|
|
25
|
+
//# sourceMappingURL=createPermissionApproval.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPermissionApproval.d.ts","sourceRoot":"","sources":["../../../../src/setup-dev-env/smart-account/createPermissionApproval.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,MAAM,CAAC;AAU3C;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,wBAAwB,CAAC,EAC7C,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,GAClB,EAAE;IACD,iBAAiB,EAAE,KAAK,MAAM,EAAE,CAAC;IACjC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,KAAK,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,GAAG,OAAO,CAAC,MAAM,CAAC,CAqClB"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createPermissionApproval = createPermissionApproval;
|
|
4
|
+
const viem_1 = require("viem");
|
|
5
|
+
const accounts_1 = require("viem/accounts");
|
|
6
|
+
const sdk_1 = require("@zerodev/sdk");
|
|
7
|
+
const ecdsa_validator_1 = require("@zerodev/ecdsa-validator");
|
|
8
|
+
const permissions_1 = require("@zerodev/permissions");
|
|
9
|
+
const signers_1 = require("@zerodev/permissions/signers");
|
|
10
|
+
const policies_1 = require("@zerodev/permissions/policies");
|
|
11
|
+
const constants_1 = require("@zerodev/sdk/constants");
|
|
12
|
+
/**
|
|
13
|
+
* Creates a serialized permission approval that allows a session key (PKP) to act on behalf of the smart account.
|
|
14
|
+
*
|
|
15
|
+
* This follows the ZeroDev pattern from transaction-automation.ts:
|
|
16
|
+
* 1. Owner creates an account with BOTH validators (EOA sudo + session key permission)
|
|
17
|
+
* 2. Serializes the permission account
|
|
18
|
+
* 3. Session key can later deserialize and use it to sign transactions
|
|
19
|
+
*
|
|
20
|
+
* The serialized approval contains:
|
|
21
|
+
* - Smart account configuration (sudo validator = EOA)
|
|
22
|
+
* - Permission validator configuration (session key = PKP with sudo policy)
|
|
23
|
+
* - All necessary data for the session key to reconstruct the account
|
|
24
|
+
*
|
|
25
|
+
* @param params Configuration for creating the permission approval
|
|
26
|
+
* @returns Serialized permission approval string that can be deserialized by the session key
|
|
27
|
+
*/
|
|
28
|
+
async function createPermissionApproval({ userEoaPrivateKey, sessionKeyAddress, accountIndexHash, targetChain, targetChainRpcUrl, }) {
|
|
29
|
+
const publicClient = (0, viem_1.createPublicClient)({
|
|
30
|
+
chain: targetChain,
|
|
31
|
+
transport: (0, viem_1.http)(targetChainRpcUrl),
|
|
32
|
+
});
|
|
33
|
+
const userEoaAccount = (0, accounts_1.privateKeyToAccount)(userEoaPrivateKey);
|
|
34
|
+
const ecdsaValidator = await (0, ecdsa_validator_1.signerToEcdsaValidator)(publicClient, {
|
|
35
|
+
entryPoint: (0, constants_1.getEntryPoint)('0.7'),
|
|
36
|
+
signer: userEoaAccount,
|
|
37
|
+
kernelVersion: constants_1.KERNEL_V3_3,
|
|
38
|
+
});
|
|
39
|
+
const emptySessionKeyAccount = (0, sdk_1.addressToEmptyAccount)(sessionKeyAddress);
|
|
40
|
+
const emptySessionKeySigner = await (0, signers_1.toECDSASigner)({
|
|
41
|
+
signer: emptySessionKeyAccount,
|
|
42
|
+
});
|
|
43
|
+
const permissionPlugin = await (0, permissions_1.toPermissionValidator)(publicClient, {
|
|
44
|
+
entryPoint: (0, constants_1.getEntryPoint)('0.7'),
|
|
45
|
+
signer: emptySessionKeySigner,
|
|
46
|
+
policies: [(0, policies_1.toSudoPolicy)({})],
|
|
47
|
+
kernelVersion: constants_1.KERNEL_V3_3,
|
|
48
|
+
});
|
|
49
|
+
const sessionKeyAccount = await (0, sdk_1.createKernelAccount)(publicClient, {
|
|
50
|
+
entryPoint: (0, constants_1.getEntryPoint)('0.7'),
|
|
51
|
+
plugins: {
|
|
52
|
+
sudo: ecdsaValidator,
|
|
53
|
+
regular: permissionPlugin,
|
|
54
|
+
},
|
|
55
|
+
kernelVersion: constants_1.KERNEL_V3_3,
|
|
56
|
+
index: BigInt(accountIndexHash),
|
|
57
|
+
});
|
|
58
|
+
return await (0, permissions_1.serializePermissionAccount)(sessionKeyAccount);
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=createPermissionApproval.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createPermissionApproval.js","sourceRoot":"","sources":["../../../../src/setup-dev-env/smart-account/createPermissionApproval.ts"],"names":[],"mappings":";;AA0BA,4DAiDC;AA1ED,+BAAgD;AAChD,4CAAoD;AACpD,sCAA0E;AAC1E,8DAAkE;AAClE,sDAAyF;AACzF,0DAA6D;AAC7D,4DAA6D;AAC7D,sDAAoE;AAEpE;;;;;;;;;;;;;;;GAeG;AACI,KAAK,UAAU,wBAAwB,CAAC,EAC7C,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,GAOlB;IACC,MAAM,YAAY,GAAG,IAAA,yBAAkB,EAAC;QACtC,KAAK,EAAE,WAAW;QAClB,SAAS,EAAE,IAAA,WAAI,EAAC,iBAAiB,CAAC;KACnC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,IAAA,8BAAmB,EAAC,iBAAiB,CAAC,CAAC;IAE9D,MAAM,cAAc,GAAG,MAAM,IAAA,wCAAsB,EAAC,YAAY,EAAE;QAChE,UAAU,EAAE,IAAA,yBAAa,EAAC,KAAK,CAAC;QAChC,MAAM,EAAE,cAAc;QACtB,aAAa,EAAE,uBAAW;KAC3B,CAAC,CAAC;IAEH,MAAM,sBAAsB,GAAG,IAAA,2BAAqB,EAAC,iBAAiB,CAAC,CAAC;IACxE,MAAM,qBAAqB,GAAG,MAAM,IAAA,uBAAa,EAAC;QAChD,MAAM,EAAE,sBAAsB;KAC/B,CAAC,CAAC;IAEH,MAAM,gBAAgB,GAAG,MAAM,IAAA,mCAAqB,EAAC,YAAY,EAAE;QACjE,UAAU,EAAE,IAAA,yBAAa,EAAC,KAAK,CAAC;QAChC,MAAM,EAAE,qBAAqB;QAC7B,QAAQ,EAAE,CAAC,IAAA,uBAAY,EAAC,EAAE,CAAC,CAAC;QAC5B,aAAa,EAAE,uBAAW;KAC3B,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,MAAM,IAAA,yBAAmB,EAAC,YAAY,EAAE;QAChE,UAAU,EAAE,IAAA,yBAAa,EAAC,KAAK,CAAC;QAChC,OAAO,EAAE;YACP,IAAI,EAAE,cAAc;YACpB,OAAO,EAAE,gBAAgB;SAC1B;QACD,aAAa,EAAE,uBAAW;QAC1B,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC;KAChC,CAAC,CAAC;IAEH,OAAO,MAAM,IAAA,wCAA0B,EAAC,iBAAiB,CAAC,CAAC;AAC7D,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Address, Chain, Hex } from 'viem';
|
|
2
|
+
export interface SmartAccountInfo {
|
|
3
|
+
smartAccountAddress: Address;
|
|
4
|
+
deploymentTxHash?: Hex;
|
|
5
|
+
}
|
|
6
|
+
export declare function deploySmartAccount({ userEoaPrivateKey, accountIndexHash, targetChain, targetChainRpcUrl, zerodevProjectId, funderPrivateKey, fundAmountBeforeDeployment, }: {
|
|
7
|
+
userEoaPrivateKey: `0x${string}`;
|
|
8
|
+
accountIndexHash: string;
|
|
9
|
+
targetChain: Chain;
|
|
10
|
+
targetChainRpcUrl: string;
|
|
11
|
+
zerodevProjectId: string;
|
|
12
|
+
funderPrivateKey: `0x${string}`;
|
|
13
|
+
fundAmountBeforeDeployment?: bigint;
|
|
14
|
+
}): Promise<SmartAccountInfo>;
|
|
15
|
+
//# sourceMappingURL=deploySmartAccount.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploySmartAccount.d.ts","sourceRoot":"","sources":["../../../../src/setup-dev-env/smart-account/deploySmartAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAShD,MAAM,WAAW,gBAAgB;IAC/B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gBAAgB,CAAC,EAAE,GAAG,CAAC;CACxB;AAED,wBAAsB,kBAAkB,CAAC,EACvC,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,GAC3B,EAAE;IACD,iBAAiB,EAAE,KAAK,MAAM,EAAE,CAAC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,KAAK,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,KAAK,MAAM,EAAE,CAAC;IAChC,0BAA0B,CAAC,EAAE,MAAM,CAAC;CACrC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAyI5B"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deploySmartAccount = deploySmartAccount;
|
|
4
|
+
const viem_1 = require("viem");
|
|
5
|
+
const accounts_1 = require("viem/accounts");
|
|
6
|
+
const sdk_1 = require("@zerodev/sdk");
|
|
7
|
+
const ecdsa_validator_1 = require("@zerodev/ecdsa-validator");
|
|
8
|
+
const constants_1 = require("@zerodev/sdk/constants");
|
|
9
|
+
const ensureWalletHasTokens_1 = require("../wallets/ensureWalletHasTokens");
|
|
10
|
+
async function deploySmartAccount({ userEoaPrivateKey, accountIndexHash, targetChain, targetChainRpcUrl, zerodevProjectId, funderPrivateKey, fundAmountBeforeDeployment, }) {
|
|
11
|
+
console.log(`=== Deploying Smart Account to ${targetChain.name} ===`);
|
|
12
|
+
const publicClient = (0, viem_1.createPublicClient)({
|
|
13
|
+
chain: targetChain,
|
|
14
|
+
transport: (0, viem_1.http)(targetChainRpcUrl),
|
|
15
|
+
});
|
|
16
|
+
const userEoaWalletClient = (0, viem_1.createWalletClient)({
|
|
17
|
+
account: (0, accounts_1.privateKeyToAccount)(userEoaPrivateKey),
|
|
18
|
+
chain: targetChain,
|
|
19
|
+
transport: (0, viem_1.http)(targetChainRpcUrl),
|
|
20
|
+
});
|
|
21
|
+
const funderWalletClient = (0, viem_1.createWalletClient)({
|
|
22
|
+
account: (0, accounts_1.privateKeyToAccount)(funderPrivateKey),
|
|
23
|
+
chain: targetChain,
|
|
24
|
+
transport: (0, viem_1.http)(targetChainRpcUrl),
|
|
25
|
+
});
|
|
26
|
+
const userEoaEcdsaValidator = await (0, ecdsa_validator_1.signerToEcdsaValidator)(publicClient, {
|
|
27
|
+
entryPoint: (0, constants_1.getEntryPoint)('0.7'),
|
|
28
|
+
signer: userEoaWalletClient,
|
|
29
|
+
kernelVersion: constants_1.KERNEL_V3_3,
|
|
30
|
+
});
|
|
31
|
+
const userEoaKernelAccount = await (0, sdk_1.createKernelAccount)(publicClient, {
|
|
32
|
+
entryPoint: (0, constants_1.getEntryPoint)('0.7'),
|
|
33
|
+
plugins: {
|
|
34
|
+
sudo: userEoaEcdsaValidator,
|
|
35
|
+
},
|
|
36
|
+
kernelVersion: constants_1.KERNEL_V3_3,
|
|
37
|
+
index: BigInt(accountIndexHash),
|
|
38
|
+
});
|
|
39
|
+
const zerodevRpcUrl = `https://rpc.zerodev.app/api/v3/${zerodevProjectId}/chain/${targetChain.id}`;
|
|
40
|
+
const kernelClient = (0, sdk_1.createKernelAccountClient)({
|
|
41
|
+
account: userEoaKernelAccount,
|
|
42
|
+
chain: targetChain,
|
|
43
|
+
bundlerTransport: (0, viem_1.http)(zerodevRpcUrl),
|
|
44
|
+
client: publicClient,
|
|
45
|
+
});
|
|
46
|
+
// Check if smart account is already deployed on the target chain
|
|
47
|
+
const existingCode = await publicClient.getCode({
|
|
48
|
+
address: userEoaKernelAccount.address,
|
|
49
|
+
});
|
|
50
|
+
const isAlreadyDeployed = existingCode && existingCode !== '0x';
|
|
51
|
+
if (isAlreadyDeployed) {
|
|
52
|
+
console.log(`Smart account already deployed on ${targetChain.name}`);
|
|
53
|
+
console.table({
|
|
54
|
+
Chain: `${targetChain.name} (${targetChain.id})`,
|
|
55
|
+
'Smart Account Address': userEoaKernelAccount.address,
|
|
56
|
+
Status: 'Already Deployed',
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
// Step 2: Fund the smart account (if fundAmountBeforeDeployment is provided)
|
|
60
|
+
if (fundAmountBeforeDeployment !== undefined) {
|
|
61
|
+
console.log('Funding smart account...');
|
|
62
|
+
const { currentBalance, fundingTxHash } = await (0, ensureWalletHasTokens_1.ensureWalletHasTokens)({
|
|
63
|
+
address: userEoaKernelAccount.address,
|
|
64
|
+
funderWalletClient,
|
|
65
|
+
publicClient,
|
|
66
|
+
minAmount: fundAmountBeforeDeployment,
|
|
67
|
+
});
|
|
68
|
+
console.table({
|
|
69
|
+
'Smart Account Address': userEoaKernelAccount.address,
|
|
70
|
+
Balance: (0, viem_1.formatEther)(currentBalance),
|
|
71
|
+
'Funding Tx Hash': fundingTxHash,
|
|
72
|
+
});
|
|
73
|
+
if (fundingTxHash) {
|
|
74
|
+
console.log('Waiting for funding confirmation...');
|
|
75
|
+
await publicClient.waitForTransactionReceipt({
|
|
76
|
+
hash: fundingTxHash,
|
|
77
|
+
confirmations: 2,
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
else {
|
|
82
|
+
console.log('Skipping funding step (fundAmountBeforeDeployment not provided)');
|
|
83
|
+
}
|
|
84
|
+
// Step 3: Deploy the smart account (only if not already deployed)
|
|
85
|
+
let deploymentTxHash;
|
|
86
|
+
if (!isAlreadyDeployed) {
|
|
87
|
+
console.log('Deploying smart account...');
|
|
88
|
+
const userOpHash = await kernelClient.sendUserOperation({
|
|
89
|
+
callData: await userEoaKernelAccount.encodeCalls([
|
|
90
|
+
{
|
|
91
|
+
to: '0x0000000000000000000000000000000000000000',
|
|
92
|
+
value: 0n,
|
|
93
|
+
data: '0x',
|
|
94
|
+
},
|
|
95
|
+
]),
|
|
96
|
+
});
|
|
97
|
+
console.log(`Deployment UserOp Hash: ${userOpHash}`);
|
|
98
|
+
// Wait for the UserOperation to be included in a block
|
|
99
|
+
const receipt = await kernelClient.waitForUserOperationReceipt({
|
|
100
|
+
hash: userOpHash,
|
|
101
|
+
});
|
|
102
|
+
deploymentTxHash = receipt.receipt.transactionHash;
|
|
103
|
+
console.log(`Deployment Tx Hash: ${deploymentTxHash}`);
|
|
104
|
+
await publicClient.waitForTransactionReceipt({
|
|
105
|
+
hash: deploymentTxHash,
|
|
106
|
+
confirmations: 2,
|
|
107
|
+
});
|
|
108
|
+
// Verify deployment
|
|
109
|
+
const deployedCode = await publicClient.getCode({
|
|
110
|
+
address: userEoaKernelAccount.address,
|
|
111
|
+
});
|
|
112
|
+
if (!deployedCode || deployedCode === '0x') {
|
|
113
|
+
throw new Error(`Smart account deployment failed on ${targetChain.name}, code is still empty (0x)`);
|
|
114
|
+
}
|
|
115
|
+
console.log(`Smart account deployed successfully`);
|
|
116
|
+
console.table({
|
|
117
|
+
Chain: `${targetChain.name} (${targetChain.id})`,
|
|
118
|
+
'Smart Account Address': userEoaKernelAccount.address,
|
|
119
|
+
'Deployment Tx Hash': deploymentTxHash,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
return {
|
|
123
|
+
smartAccountAddress: userEoaKernelAccount.address,
|
|
124
|
+
deploymentTxHash,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=deploySmartAccount.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deploySmartAccount.js","sourceRoot":"","sources":["../../../../src/setup-dev-env/smart-account/deploySmartAccount.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deriveSmartAccountAddress.d.ts","sourceRoot":"","sources":["../../../../src/setup-dev-env/smart-account/deriveSmartAccountAddress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAIpC,wBAAsB,yBAAyB,CAC7C,UAAU,EAAE,OAAO,EACnB,gBAAgB,EAAE,MAAM,EACxB,YAAY,EAAE,GAAG,GAChB,OAAO,CAAC,OAAO,CAAC,CAUlB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.deriveSmartAccountAddress = deriveSmartAccountAddress;
|
|
4
|
+
const ecdsa_validator_1 = require("@zerodev/ecdsa-validator");
|
|
5
|
+
const constants_1 = require("@zerodev/sdk/constants");
|
|
6
|
+
async function deriveSmartAccountAddress(eoaAddress, accountIndexHash, publicClient) {
|
|
7
|
+
const agentAddress = await (0, ecdsa_validator_1.getKernelAddressFromECDSA)({
|
|
8
|
+
entryPoint: (0, constants_1.getEntryPoint)('0.7'),
|
|
9
|
+
kernelVersion: constants_1.KERNEL_V3_1,
|
|
10
|
+
eoaAddress,
|
|
11
|
+
index: BigInt(accountIndexHash),
|
|
12
|
+
publicClient: publicClient,
|
|
13
|
+
});
|
|
14
|
+
return agentAddress;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=deriveSmartAccountAddress.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deriveSmartAccountAddress.js","sourceRoot":"","sources":["../../../../src/setup-dev-env/smart-account/deriveSmartAccountAddress.ts"],"names":[],"mappings":";;AAIA,8DAcC;AAjBD,8DAAqE;AACrE,sDAAoE;AAE7D,KAAK,UAAU,yBAAyB,CAC7C,UAAmB,EACnB,gBAAwB,EACxB,YAAiB;IAEjB,MAAM,YAAY,GAAG,MAAM,IAAA,2CAAyB,EAAC;QACnD,UAAU,EAAE,IAAA,yBAAa,EAAC,KAAK,CAAC;QAChC,aAAa,EAAE,uBAAW;QAC1B,UAAU;QACV,KAAK,EAAE,MAAM,CAAC,gBAAgB,CAAC;QAC/B,YAAY,EAAE,YAAmB;KAClC,CAAC,CAAC;IAEH,OAAO,YAAuB,CAAC;AACjC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface CompleteInstallationResult {
|
|
2
|
+
deployAgentSmartAccountTransactionHash: string;
|
|
3
|
+
serializedPermissionAccount: string;
|
|
4
|
+
completeAppInstallationTransactionHash: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function completeAppInstallation({ vincentApiUrl, userEoaPrivateKey, appId, appInstallationDataToSign, agentSmartAccountDeploymentDataToSign, sessionKeyApprovalDataToSign, agentSignerAddress, }: {
|
|
7
|
+
vincentApiUrl: string;
|
|
8
|
+
userEoaPrivateKey: string;
|
|
9
|
+
appId: number;
|
|
10
|
+
appInstallationDataToSign: any;
|
|
11
|
+
agentSmartAccountDeploymentDataToSign: any;
|
|
12
|
+
sessionKeyApprovalDataToSign: any;
|
|
13
|
+
agentSignerAddress: string;
|
|
14
|
+
}): Promise<CompleteInstallationResult>;
|
|
15
|
+
//# sourceMappingURL=completeAppInstallation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"completeAppInstallation.d.ts","sourceRoot":"","sources":["../../../../src/setup-dev-env/vincent-registry-api/completeAppInstallation.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,0BAA0B;IACzC,sCAAsC,EAAE,MAAM,CAAC;IAC/C,2BAA2B,EAAE,MAAM,CAAC;IACpC,sCAAsC,EAAE,MAAM,CAAC;CAChD;AAED,wBAAsB,uBAAuB,CAAC,EAC5C,aAAa,EACb,iBAAiB,EACjB,KAAK,EACL,yBAAyB,EACzB,qCAAqC,EACrC,4BAA4B,EAC5B,kBAAkB,GACnB,EAAE;IACD,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB,EAAE,GAAG,CAAC;IAC/B,qCAAqC,EAAE,GAAG,CAAC;IAC3C,4BAA4B,EAAE,GAAG,CAAC;IAClC,kBAAkB,EAAE,MAAM,CAAC;CAC5B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAgEtC"}
|