@atxp/base 0.2.21 → 0.3.0
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/baseAppAccount.js +15 -4
- package/dist/baseAppAccount.js.map +1 -1
- package/dist/baseAppPaymentMaker.js +43 -50
- package/dist/baseAppPaymentMaker.js.map +1 -1
- package/dist/eip1271JwtHelper.js +83 -0
- package/dist/eip1271JwtHelper.js.map +1 -0
- package/dist/index.cjs +630 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +157 -6
- package/dist/index.js +623 -5
- package/dist/index.js.map +1 -1
- package/dist/mainWalletPaymentMaker.js +26 -48
- package/dist/mainWalletPaymentMaker.js.map +1 -1
- package/dist/smartWalletHelpers.js +6 -3
- package/dist/smartWalletHelpers.js.map +1 -1
- package/dist/spendPermissionUtils.js +19 -0
- package/dist/spendPermissionUtils.js.map +1 -0
- package/dist/storage.js +6 -4
- package/dist/storage.js.map +1 -1
- package/package.json +22 -8
- package/dist/baseAppAccount.d.ts +0 -28
- package/dist/baseAppAccount.d.ts.map +0 -1
- package/dist/baseAppAccount.ephemeral.test.d.ts +0 -2
- package/dist/baseAppAccount.ephemeral.test.d.ts.map +0 -1
- package/dist/baseAppAccount.ephemeral.test.js +0 -420
- package/dist/baseAppAccount.ephemeral.test.js.map +0 -1
- package/dist/baseAppAccount.mainWallet.test.d.ts +0 -2
- package/dist/baseAppAccount.mainWallet.test.d.ts.map +0 -1
- package/dist/baseAppAccount.mainWallet.test.js +0 -259
- package/dist/baseAppAccount.mainWallet.test.js.map +0 -1
- package/dist/baseAppPaymentMaker.d.ts +0 -16
- package/dist/baseAppPaymentMaker.d.ts.map +0 -1
- package/dist/baseAppPaymentMaker.test.d.ts +0 -2
- package/dist/baseAppPaymentMaker.test.d.ts.map +0 -1
- package/dist/baseAppPaymentMaker.test.js +0 -107
- package/dist/baseAppPaymentMaker.test.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/mainWalletPaymentMaker.d.ts +0 -22
- package/dist/mainWalletPaymentMaker.d.ts.map +0 -1
- package/dist/mainWalletPaymentMaker.test.d.ts +0 -2
- package/dist/mainWalletPaymentMaker.test.d.ts.map +0 -1
- package/dist/mainWalletPaymentMaker.test.js +0 -340
- package/dist/mainWalletPaymentMaker.test.js.map +0 -1
- package/dist/smartWalletHelpers.d.ts +0 -13
- package/dist/smartWalletHelpers.d.ts.map +0 -1
- package/dist/storage.d.ts +0 -51
- package/dist/storage.d.ts.map +0 -1
- package/dist/testHelpers.d.ts +0 -88
- package/dist/testHelpers.d.ts.map +0 -1
- package/dist/testHelpers.js +0 -202
- package/dist/testHelpers.js.map +0 -1
- package/dist/types.d.ts +0 -35
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -3
- package/dist/types.js.map +0 -1
|
@@ -1,20 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { toHex, encodeFunctionData } from 'viem';
|
|
2
2
|
import { USDC_CONTRACT_ADDRESS_BASE } from '@atxp/client';
|
|
3
3
|
import { ConsoleLogger } from '@atxp/common';
|
|
4
|
+
import { constructEIP1271Message, createEIP1271AuthData, createEIP1271JWT } from './eip1271JwtHelper.js';
|
|
5
|
+
|
|
4
6
|
const USDC_DECIMALS = 6;
|
|
5
|
-
|
|
6
|
-
function toBase64Url(data) {
|
|
7
|
-
// Convert string to base64
|
|
8
|
-
const base64 = typeof Buffer !== 'undefined'
|
|
9
|
-
? Buffer.from(data).toString('base64')
|
|
10
|
-
: btoa(data);
|
|
11
|
-
// Convert base64 to base64url
|
|
12
|
-
return base64
|
|
13
|
-
.replace(/\+/g, '-')
|
|
14
|
-
.replace(/\//g, '_')
|
|
15
|
-
.replace(/=/g, '');
|
|
16
|
-
}
|
|
17
|
-
export class MainWalletPaymentMaker {
|
|
7
|
+
class MainWalletPaymentMaker {
|
|
18
8
|
constructor(walletAddress, provider, logger) {
|
|
19
9
|
this.walletAddress = walletAddress;
|
|
20
10
|
this.provider = provider;
|
|
@@ -26,29 +16,19 @@ export class MainWalletPaymentMaker {
|
|
|
26
16
|
this.logger.info(`walletAddress: ${this.walletAddress}`);
|
|
27
17
|
// Generate EIP-1271 auth data for main wallet authentication
|
|
28
18
|
const timestamp = Math.floor(Date.now() / 1000);
|
|
29
|
-
const
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
`Timestamp: ${timestamp}`,
|
|
36
|
-
`Nonce: ${nonce}`
|
|
37
|
-
];
|
|
38
|
-
if (payload.codeChallenge) {
|
|
39
|
-
messageParts.push(`Code Challenge: ${payload.codeChallenge}`);
|
|
40
|
-
}
|
|
41
|
-
if (payload.paymentRequestId) {
|
|
42
|
-
messageParts.push(`Payment Request ID: ${payload.paymentRequestId}`);
|
|
43
|
-
}
|
|
44
|
-
messageParts.push('', '', 'Sign this message to prove you control this wallet.');
|
|
45
|
-
const message = messageParts.join('\n');
|
|
19
|
+
const message = constructEIP1271Message({
|
|
20
|
+
walletAddress: this.walletAddress,
|
|
21
|
+
timestamp,
|
|
22
|
+
codeChallenge: payload.codeChallenge,
|
|
23
|
+
paymentRequestId: payload.paymentRequestId
|
|
24
|
+
});
|
|
46
25
|
// Sign with the main wallet
|
|
47
26
|
// Coinbase Wallet requires hex-encoded messages, while other wallets may accept plain strings
|
|
48
27
|
let messageToSign;
|
|
49
28
|
// Check if this is Coinbase Wallet by looking for provider properties
|
|
50
|
-
const
|
|
51
|
-
|
|
29
|
+
const providerWithCoinbase = this.provider;
|
|
30
|
+
const isCoinbaseWallet = providerWithCoinbase.isCoinbaseWallet ||
|
|
31
|
+
providerWithCoinbase.isCoinbaseBrowser;
|
|
52
32
|
if (isCoinbaseWallet) {
|
|
53
33
|
// Coinbase Wallet requires hex-encoded messages
|
|
54
34
|
messageToSign = toHex(message);
|
|
@@ -63,21 +43,17 @@ export class MainWalletPaymentMaker {
|
|
|
63
43
|
method: 'personal_sign',
|
|
64
44
|
params: [messageToSign, this.walletAddress]
|
|
65
45
|
});
|
|
66
|
-
|
|
67
|
-
const authData = {
|
|
68
|
-
type: 'EIP1271_AUTH',
|
|
46
|
+
const authData = createEIP1271AuthData({
|
|
69
47
|
walletAddress: this.walletAddress,
|
|
70
|
-
message
|
|
71
|
-
signature
|
|
72
|
-
timestamp
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
this.logger.info(`Generated EIP-1271 auth data: ${encodedAuth}`);
|
|
80
|
-
return encodedAuth;
|
|
48
|
+
message,
|
|
49
|
+
signature,
|
|
50
|
+
timestamp,
|
|
51
|
+
codeChallenge: payload.codeChallenge,
|
|
52
|
+
paymentRequestId: payload.paymentRequestId
|
|
53
|
+
});
|
|
54
|
+
const jwtToken = createEIP1271JWT(authData);
|
|
55
|
+
this.logger.info(`Generated EIP-1271 JWT: ${jwtToken}`);
|
|
56
|
+
return jwtToken;
|
|
81
57
|
}
|
|
82
58
|
async makePayment(amount, currency, receiver, _reason) {
|
|
83
59
|
if (currency !== 'USDC') {
|
|
@@ -153,4 +129,6 @@ export class MainWalletPaymentMaker {
|
|
|
153
129
|
this.logger.info(`Transaction confirmed with ${confirmations} confirmations`);
|
|
154
130
|
}
|
|
155
131
|
}
|
|
156
|
-
|
|
132
|
+
|
|
133
|
+
export { MainWalletPaymentMaker };
|
|
134
|
+
//# sourceMappingURL=mainWalletPaymentMaker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mainWalletPaymentMaker.js","
|
|
1
|
+
{"version":3,"file":"mainWalletPaymentMaker.js","sources":["../src/mainWalletPaymentMaker.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { createPublicClient, http } from 'viem';
|
|
2
2
|
import { base } from 'viem/chains';
|
|
3
3
|
import { privateKeyToAccount } from 'viem/accounts';
|
|
4
4
|
import { toCoinbaseSmartAccount, createBundlerClient } from 'viem/account-abstraction';
|
|
5
|
+
|
|
5
6
|
// Coinbase CDP Paymaster and Bundler endpoints
|
|
6
7
|
const COINBASE_BUNDLER_URL = 'https://api.developer.coinbase.com/rpc/v1/base';
|
|
7
8
|
const COINBASE_PAYMASTER_URL = 'https://api.developer.coinbase.com/rpc/v1/base';
|
|
8
9
|
/**
|
|
9
10
|
* Creates an ephemeral smart wallet with paymaster support
|
|
10
11
|
*/
|
|
11
|
-
|
|
12
|
+
async function toEphemeralSmartWallet(privateKey, apiKey) {
|
|
12
13
|
const signer = privateKeyToAccount(privateKey);
|
|
13
14
|
const publicClient = createPublicClient({
|
|
14
15
|
chain: base,
|
|
@@ -38,4 +39,6 @@ export async function toEphemeralSmartWallet(privateKey, apiKey) {
|
|
|
38
39
|
signer,
|
|
39
40
|
};
|
|
40
41
|
}
|
|
41
|
-
|
|
42
|
+
|
|
43
|
+
export { toEphemeralSmartWallet };
|
|
44
|
+
//# sourceMappingURL=smartWalletHelpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartWalletHelpers.js","
|
|
1
|
+
{"version":3,"file":"smartWalletHelpers.js","sources":["../src/smartWalletHelpers.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;AAgBA;AACA,MAAM,oBAAoB,GAAG,gDAAgD;AAC7E,MAAM,sBAAsB,GAAG,gDAAgD;AAS/E;;AAEG;AACI,eAAe,sBAAsB,CAC1C,UAAe,EACf,MAAc,EAAA;AAEd,IAAA,MAAM,MAAM,GAAG,mBAAmB,CAAC,UAAU,CAAC;IAE9C,MAAM,YAAY,GAAG,kBAAkB,CAAC;AACtC,QAAA,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,IAAI,CAAC,CAAA,EAAG,oBAAoB,CAAA,CAAA,EAAI,MAAM,EAAE;AACpD,KAAA,CAAC;;AAGF,IAAA,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC;AAC3C,QAAA,MAAM,EAAE,YAAY;QACpB,MAAM,EAAE,CAAC,MAAM,CAAC;AAChB,QAAA,OAAO,EAAE;AACV,KAAA,CAAC;;IAGF,MAAM,aAAa,GAAG,mBAAmB,CAAC;QACxC,OAAO;AACP,QAAA,MAAM,EAAE,YAAY;QACpB,SAAS,EAAE,IAAI,CAAC,CAAA,EAAG,oBAAoB,CAAA,CAAA,EAAI,MAAM,EAAE,CAAC;AACpD,QAAA,KAAK,EAAE,IAAI;QACX,SAAS,EAAE,IAAI;AACf,QAAA,gBAAgB,EAAE;YAChB,SAAS,EAAE,IAAI,CAAC,CAAA,EAAG,sBAAsB,CAAA,CAAA,EAAI,MAAM,EAAE;AACtD;AACF,KAAA,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAO;AACxB,QAAA,MAAM,EAAE,aAAa;QACrB,OAAO;QACP,MAAM;KACP;AACH;;;;"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Loads the browser-only spend permission module.
|
|
3
|
+
* Throws an error if called in a server environment.
|
|
4
|
+
*
|
|
5
|
+
* Both BaseAppAccount and BaseAppPaymentMaker should only run in browser environments
|
|
6
|
+
* since they require wallet interaction and browser APIs.
|
|
7
|
+
*/
|
|
8
|
+
async function getSpendPermissionModule() {
|
|
9
|
+
// Check if we're in a browser environment
|
|
10
|
+
if (typeof window === 'undefined') {
|
|
11
|
+
throw new Error('Spend permission operations require browser environment. ' +
|
|
12
|
+
'BaseAppAccount and BaseAppPaymentMaker should only be used client-side in Next.js apps.');
|
|
13
|
+
}
|
|
14
|
+
// Use browser version since both classes require browser environment
|
|
15
|
+
return await import('@base-org/account/spend-permission/browser');
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export { getSpendPermissionModule };
|
|
19
|
+
//# sourceMappingURL=spendPermissionUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spendPermissionUtils.js","sources":["../src/spendPermissionUtils.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;AAMG;AACI,eAAe,wBAAwB,GAAA;;AAE5C,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,MAAM,IAAI,KAAK,CACb,2DAA2D;AAC3D,YAAA,yFAAyF,CAC1F;IACH;;AAGA,IAAA,OAAO,MAAM,OAAO,4CAA4C,CAAC;AACnE;;;;"}
|
package/dist/storage.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Type-safe storage wrapper for permission data
|
|
3
3
|
*/
|
|
4
|
-
|
|
4
|
+
class IntermediaryStorage {
|
|
5
5
|
constructor(storage) {
|
|
6
6
|
this.storage = storage;
|
|
7
7
|
}
|
|
@@ -27,7 +27,7 @@ export class IntermediaryStorage {
|
|
|
27
27
|
/**
|
|
28
28
|
* Browser localStorage implementation
|
|
29
29
|
*/
|
|
30
|
-
|
|
30
|
+
class BrowserStorage {
|
|
31
31
|
isAvailable() {
|
|
32
32
|
return typeof window !== 'undefined' && typeof window.localStorage !== 'undefined';
|
|
33
33
|
}
|
|
@@ -50,7 +50,7 @@ export class BrowserStorage {
|
|
|
50
50
|
/**
|
|
51
51
|
* In-memory storage implementation for testing
|
|
52
52
|
*/
|
|
53
|
-
|
|
53
|
+
class MemoryStorage {
|
|
54
54
|
constructor() {
|
|
55
55
|
this.store = new Map();
|
|
56
56
|
}
|
|
@@ -67,4 +67,6 @@ export class MemoryStorage {
|
|
|
67
67
|
this.store.clear();
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
|
-
|
|
70
|
+
|
|
71
|
+
export { BrowserStorage, IntermediaryStorage, MemoryStorage };
|
|
72
|
+
//# sourceMappingURL=storage.js.map
|
package/dist/storage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.js","
|
|
1
|
+
{"version":3,"file":"storage.js","sources":["../src/storage.ts"],"sourcesContent":[null],"names":[],"mappings":"AAwBA;;AAEG;MACU,mBAAmB,CAAA;AAC9B,IAAA,WAAA,CAAoB,OAAyB,EAAA;QAAzB,IAAA,CAAA,OAAO,GAAP,OAAO;IAAqB;AAEhD,IAAA,GAAG,CAAC,GAAW,EAAA;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;AAClC,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,IAAI;AAEtB,QAAA,IAAI;YACF,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC/B,YAAA,OAAO,MAAsB;QAC/B;AAAE,QAAA,MAAM;AACN,YAAA,OAAO,IAAI;QACb;IACF;IAEA,GAAG,CAAC,GAAW,EAAE,IAAkB,EAAA;AACjC,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC7C;AAEA,IAAA,MAAM,CAAC,GAAW,EAAA;AAChB,QAAA,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;IAC1B;AACD;AAED;;AAEG;MACU,cAAc,CAAA;IACjB,WAAW,GAAA;QACjB,OAAO,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,YAAY,KAAK,WAAW;IACpF;AAEA,IAAA,GAAG,CAAC,GAAW,EAAA;AACb,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AAAE,YAAA,OAAO,IAAI;AACpC,QAAA,OAAO,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC;IAClC;IAEA,GAAG,CAAC,GAAW,EAAE,KAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE;AACzB,QAAA,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;IAClC;AAEA,IAAA,MAAM,CAAC,GAAW,EAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE;AACzB,QAAA,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC;IAC9B;AACD;AAED;;AAEG;MACU,aAAa,CAAA;AAA1B,IAAA,WAAA,GAAA;AACU,QAAA,IAAA,CAAA,KAAK,GAAwB,IAAI,GAAG,EAAE;IAiBhD;AAfE,IAAA,GAAG,CAAC,GAAW,EAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI;IACpC;IAEA,GAAG,CAAC,GAAW,EAAE,KAAa,EAAA;QAC5B,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC;IAC5B;AAEA,IAAA,MAAM,CAAC,GAAW,EAAA;AAChB,QAAA,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC;IACxB;IAEA,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;IACpB;AACD;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atxp/base",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "ATXP for Base Mini Apps",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -9,23 +9,36 @@
|
|
|
9
9
|
"directory": "packages/atxp-base"
|
|
10
10
|
},
|
|
11
11
|
"type": "module",
|
|
12
|
-
"
|
|
12
|
+
"sideEffects": false,
|
|
13
|
+
"main": "./dist/index.cjs",
|
|
14
|
+
"module": "./dist/index.js",
|
|
13
15
|
"types": "./dist/index.d.ts",
|
|
16
|
+
"exports": {
|
|
17
|
+
".": {
|
|
18
|
+
"types": "./dist/index.d.ts",
|
|
19
|
+
"import": "./dist/index.js",
|
|
20
|
+
"require": "./dist/index.cjs"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
14
23
|
"files": [
|
|
15
24
|
"dist"
|
|
16
25
|
],
|
|
17
26
|
"scripts": {
|
|
18
|
-
"build": "
|
|
27
|
+
"build": "rollup -c",
|
|
19
28
|
"typecheck": "tsc --noEmit",
|
|
20
29
|
"lint": "eslint . --ext .ts",
|
|
21
30
|
"lint:fix": "eslint . --ext .ts --fix",
|
|
22
|
-
"test": "vitest run"
|
|
31
|
+
"test": "vitest run",
|
|
32
|
+
"prepack": "npm run build && npm run typecheck",
|
|
33
|
+
"pack:dry": "npm pack --dry-run"
|
|
23
34
|
},
|
|
24
35
|
"dependencies": {
|
|
25
|
-
"@atxp/client": "0.
|
|
26
|
-
"@atxp/common": "0.
|
|
27
|
-
"@base-org/account": "2.0
|
|
28
|
-
"bignumber.js": "^9.3.0"
|
|
36
|
+
"@atxp/client": "0.3.0",
|
|
37
|
+
"@atxp/common": "0.3.0",
|
|
38
|
+
"@base-org/account": "^2.1.0",
|
|
39
|
+
"bignumber.js": "^9.3.0"
|
|
40
|
+
},
|
|
41
|
+
"peerDependencies": {
|
|
29
42
|
"viem": "^2.34.0"
|
|
30
43
|
},
|
|
31
44
|
"devDependencies": {
|
|
@@ -39,6 +52,7 @@
|
|
|
39
52
|
"jsdom": "^25.0.1",
|
|
40
53
|
"supertest": "^7.1.4",
|
|
41
54
|
"typescript": "^5.7.3",
|
|
55
|
+
"viem": "^2.34.0",
|
|
42
56
|
"vitest": "^3.0.9"
|
|
43
57
|
}
|
|
44
58
|
}
|
package/dist/baseAppAccount.d.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import type { Account, PaymentMaker } from '@atxp/client';
|
|
2
|
-
import { type MainWalletProvider } from './mainWalletPaymentMaker.js';
|
|
3
|
-
import { SpendPermission } from './types.js';
|
|
4
|
-
import { IStorage } from './storage.js';
|
|
5
|
-
import { type EphemeralSmartWallet } from './smartWalletHelpers.js';
|
|
6
|
-
import { Logger } from '@atxp/common';
|
|
7
|
-
export declare class BaseAppAccount implements Account {
|
|
8
|
-
accountId: string;
|
|
9
|
-
paymentMakers: {
|
|
10
|
-
[key: string]: PaymentMaker;
|
|
11
|
-
};
|
|
12
|
-
private static toStorageKey;
|
|
13
|
-
static initialize(config: {
|
|
14
|
-
walletAddress: string;
|
|
15
|
-
apiKey: string;
|
|
16
|
-
appName: string;
|
|
17
|
-
useEphemeralWallet?: boolean;
|
|
18
|
-
allowance?: bigint;
|
|
19
|
-
periodInDays?: number;
|
|
20
|
-
storage?: IStorage<string>;
|
|
21
|
-
logger?: Logger;
|
|
22
|
-
}): Promise<BaseAppAccount>;
|
|
23
|
-
private static loadSavedWalletAndPermission;
|
|
24
|
-
private static deploySmartWallet;
|
|
25
|
-
constructor(spendPermission: SpendPermission | null, ephemeralSmartWallet: EphemeralSmartWallet | null, logger?: Logger, mainWalletAddress?: string, provider?: MainWalletProvider);
|
|
26
|
-
static clearAllStoredData(userWalletAddress: string, storage?: IStorage<string>): void;
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=baseAppAccount.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"baseAppAccount.d.ts","sourceRoot":"","sources":["../src/baseAppAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG1D,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAI9F,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAA0D,MAAM,cAAc,CAAC;AAChG,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC5F,OAAO,EAAiB,MAAM,EAAE,MAAM,cAAc,CAAC;AAQrD,qBAAa,cAAe,YAAW,OAAO;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,CAAA;KAAE,CAAC;IAE/C,OAAO,CAAC,MAAM,CAAC,YAAY;WAId,UAAU,CAAC,MAAM,EAAE;QAC5B,aAAa,EAAE,MAAM,CAAC;QACtB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC3B,MAAM,CAAC,EAAE,MAAM,CAAA;KAChB,GACA,OAAO,CAAC,cAAc,CAAC;IA6E1B,OAAO,CAAC,MAAM,CAAC,4BAA4B;mBAkBtB,iBAAiB;gBAsBpC,eAAe,EAAE,eAAe,GAAG,IAAI,EACvC,oBAAoB,EAAE,oBAAoB,GAAG,IAAI,EACjD,MAAM,CAAC,EAAE,MAAM,EACf,iBAAiB,CAAC,EAAE,MAAM,EAC1B,QAAQ,CAAC,EAAE,kBAAkB;IAuB/B,MAAM,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI;CAavF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"baseAppAccount.ephemeral.test.d.ts","sourceRoot":"","sources":["../src/baseAppAccount.ephemeral.test.ts"],"names":[],"mappings":""}
|