@atxp/base 0.10.7 → 0.10.10
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/baseAccount.d.ts +5 -1
- package/dist/baseAccount.d.ts.map +1 -1
- package/dist/baseAccount.js +37 -0
- package/dist/baseAccount.js.map +1 -1
- package/dist/baseAppAccount.d.ts +5 -1
- package/dist/baseAppAccount.d.ts.map +1 -1
- package/dist/baseAppAccount.js +29 -0
- package/dist/baseAppAccount.js.map +1 -1
- package/dist/index.cjs +65 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +9 -1
- package/dist/index.js +65 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/dist/baseAppPaymentMaker.d.ts +0 -24
- package/dist/baseConstants.d.ts +0 -10
- package/dist/basePaymentMaker.d.ts +0 -23
- package/dist/cache.d.ts +0 -19
- package/dist/mainWalletPaymentMaker.d.ts +0 -30
- package/dist/smartWalletHelpers.d.ts +0 -19
- package/dist/spendPermissionShim.d.ts +0 -19
- package/dist/testHelpers.d.ts +0 -79
- package/dist/types.d.ts +0 -41
package/dist/baseAccount.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Account, PaymentMaker } from '@atxp/client';
|
|
2
|
-
import type { AccountId, Source } from '@atxp/common';
|
|
2
|
+
import type { AccountId, Source, AuthorizeParams, AuthorizeResult } from '@atxp/common';
|
|
3
3
|
import { LocalAccount } from 'viem';
|
|
4
4
|
export declare class BaseAccount implements Account {
|
|
5
5
|
private _accountId;
|
|
@@ -25,5 +25,9 @@ export declare class BaseAccount implements Account {
|
|
|
25
25
|
* Base accounts don't support spend permissions, so this returns null.
|
|
26
26
|
*/
|
|
27
27
|
createSpendPermission(_resourceUrl: string): Promise<string | null>;
|
|
28
|
+
/**
|
|
29
|
+
* Authorize a payment through the appropriate channel for Base accounts.
|
|
30
|
+
*/
|
|
31
|
+
authorize(params: AuthorizeParams): Promise<AuthorizeResult>;
|
|
28
32
|
}
|
|
29
33
|
//# sourceMappingURL=baseAccount.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseAccount.d.ts","sourceRoot":"","sources":["../src/baseAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAO,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"baseAccount.d.ts","sourceRoot":"","sources":["../src/baseAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAO,MAAM,cAAc,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAe,MAAM,cAAc,CAAC;AAIrG,OAAO,EAA0C,YAAY,EAAE,MAAM,MAAM,CAAC;AAG5E,qBAAa,WAAY,YAAW,OAAO;IACzC,OAAO,CAAC,UAAU,CAAY;IAC9B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,OAAO,CAAoB;gBAEvB,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM;IAsBvD;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAIxC;;;OAGG;IACH,eAAe,IAAI,YAAY;IAI/B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAQrC;;;OAGG;IACG,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIzE;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;CAsCnE"}
|
package/dist/baseAccount.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { BigNumber } from 'bignumber.js';
|
|
1
2
|
import { privateKeyToAccount } from 'viem/accounts';
|
|
2
3
|
import { BasePaymentMaker } from './basePaymentMaker.js';
|
|
3
4
|
import { createWalletClient, http } from 'viem';
|
|
@@ -53,6 +54,42 @@ class BaseAccount {
|
|
|
53
54
|
async createSpendPermission(_resourceUrl) {
|
|
54
55
|
return null;
|
|
55
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Authorize a payment through the appropriate channel for Base accounts.
|
|
59
|
+
*/
|
|
60
|
+
async authorize(params) {
|
|
61
|
+
const { protocol } = params;
|
|
62
|
+
switch (protocol) {
|
|
63
|
+
case 'x402': {
|
|
64
|
+
const { createPaymentHeader } = await import('x402/client');
|
|
65
|
+
if (!params.paymentRequirements) {
|
|
66
|
+
throw new Error('BaseAccount: x402 authorize requires paymentRequirements');
|
|
67
|
+
}
|
|
68
|
+
const reqs = params.paymentRequirements;
|
|
69
|
+
const x402Version = reqs.x402Version || 1;
|
|
70
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
71
|
+
const paymentHeader = await createPaymentHeader(this.getLocalAccount(), x402Version, reqs);
|
|
72
|
+
return { protocol, credential: paymentHeader };
|
|
73
|
+
}
|
|
74
|
+
case 'atxp': {
|
|
75
|
+
const destination = {
|
|
76
|
+
chain: 'base',
|
|
77
|
+
currency: 'USDC',
|
|
78
|
+
address: params.destination,
|
|
79
|
+
amount: new BigNumber(params.amount),
|
|
80
|
+
};
|
|
81
|
+
const result = await this.paymentMakers[0].makePayment([destination], params.memo || '');
|
|
82
|
+
if (!result) {
|
|
83
|
+
throw new Error('BaseAccount: payment execution returned no result');
|
|
84
|
+
}
|
|
85
|
+
return { protocol, credential: JSON.stringify({ transactionId: result.transactionId, chain: result.chain, currency: result.currency }) };
|
|
86
|
+
}
|
|
87
|
+
case 'mpp':
|
|
88
|
+
throw new Error('BaseAccount does not support MPP protocol');
|
|
89
|
+
default:
|
|
90
|
+
throw new Error(`BaseAccount: unsupported protocol '${protocol}'`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
56
93
|
}
|
|
57
94
|
|
|
58
95
|
export { BaseAccount };
|
package/dist/baseAccount.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseAccount.js","sources":["../src/baseAccount.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"baseAccount.js","sources":["../src/baseAccount.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
|
package/dist/baseAppAccount.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Account, PaymentMaker, AccountId, Source } from '@atxp/common';
|
|
1
|
+
import type { Account, PaymentMaker, AccountId, Source, AuthorizeParams, AuthorizeResult } from '@atxp/common';
|
|
2
2
|
import { type MainWalletProvider } from './mainWalletPaymentMaker.js';
|
|
3
3
|
import { SpendPermission, Eip1193Provider } from './types.js';
|
|
4
4
|
import { ICache } from './cache.js';
|
|
@@ -40,5 +40,9 @@ export declare class BaseAppAccount implements Account {
|
|
|
40
40
|
* BaseAppAccount doesn't support spend permissions, so this returns null.
|
|
41
41
|
*/
|
|
42
42
|
createSpendPermission(_resourceUrl: string): Promise<string | null>;
|
|
43
|
+
/**
|
|
44
|
+
* Authorize a payment through the appropriate channel for Base browser accounts.
|
|
45
|
+
*/
|
|
46
|
+
authorize(params: AuthorizeParams): Promise<AuthorizeResult>;
|
|
43
47
|
}
|
|
44
48
|
//# sourceMappingURL=baseAppAccount.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseAppAccount.d.ts","sourceRoot":"","sources":["../src/baseAppAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"baseAppAccount.d.ts","sourceRoot":"","sources":["../src/baseAppAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAe,MAAM,cAAc,CAAC;AAK5H,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAI9F,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE9D,OAAO,EAAE,MAAM,EAAsD,MAAM,YAAY,CAAC;AACxF,OAAO,EAA0B,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC5F,OAAO,EAAiB,MAAM,EAAE,MAAM,cAAc,CAAC;AAKrD,qBAAa,cAAe,YAAW,OAAO;IAC5C,OAAO,CAAC,UAAU,CAAY;IAC9B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,OAAO,CAAC,iBAAiB,CAAC,CAAS;IACnC,OAAO,CAAC,oBAAoB,CAAC,CAAuB;IACpD,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,MAAM,CAAC,UAAU;WAIZ,UAAU,CAAC,MAAM,EAAE;QAC5B,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,eAAe,CAAC;QAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;QACvB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GACA,OAAO,CAAC,cAAc,CAAC;IAgE1B,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,EAC7B,OAAO,GAAE,MAAgB;IA4B3B;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,SAAS,CAAC;IAIlC,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAgBrC;;;;OAIG;IAEH,MAAM,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,IAAI;IAclF;;;OAGG;IACG,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIzE;;OAEG;IACG,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;CA0BnE"}
|
package/dist/baseAppAccount.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ConsoleLogger, BrowserCache, ChainEnum, WalletTypeEnum } from '@atxp/common';
|
|
2
|
+
import { BigNumber } from 'bignumber.js';
|
|
2
3
|
import { getBaseUSDCAddress } from './baseConstants.js';
|
|
3
4
|
import { BaseAppPaymentMaker } from './baseAppPaymentMaker.js';
|
|
4
5
|
import { MainWalletPaymentMaker } from './mainWalletPaymentMaker.js';
|
|
@@ -163,6 +164,34 @@ class BaseAppAccount {
|
|
|
163
164
|
async createSpendPermission(_resourceUrl) {
|
|
164
165
|
return null;
|
|
165
166
|
}
|
|
167
|
+
/**
|
|
168
|
+
* Authorize a payment through the appropriate channel for Base browser accounts.
|
|
169
|
+
*/
|
|
170
|
+
async authorize(params) {
|
|
171
|
+
const { protocol } = params;
|
|
172
|
+
switch (protocol) {
|
|
173
|
+
case 'atxp': {
|
|
174
|
+
const chain = this.chainId === 84532 ? ChainEnum.BaseSepolia : ChainEnum.Base;
|
|
175
|
+
const destination = {
|
|
176
|
+
chain,
|
|
177
|
+
currency: 'USDC',
|
|
178
|
+
address: params.destination,
|
|
179
|
+
amount: new BigNumber(params.amount),
|
|
180
|
+
};
|
|
181
|
+
const result = await this.paymentMakers[0].makePayment([destination], params.memo || '');
|
|
182
|
+
if (!result) {
|
|
183
|
+
throw new Error('BaseAppAccount: payment execution returned no result');
|
|
184
|
+
}
|
|
185
|
+
return { protocol, credential: JSON.stringify(result) };
|
|
186
|
+
}
|
|
187
|
+
case 'x402':
|
|
188
|
+
throw new Error('BaseAppAccount does not support x402 protocol');
|
|
189
|
+
case 'mpp':
|
|
190
|
+
throw new Error('BaseAppAccount does not support MPP protocol');
|
|
191
|
+
default:
|
|
192
|
+
throw new Error(`BaseAppAccount: unsupported protocol '${protocol}'`);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
166
195
|
}
|
|
167
196
|
|
|
168
197
|
export { BaseAppAccount };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseAppAccount.js","sources":["../src/baseAppAccount.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"baseAppAccount.js","sources":["../src/baseAppAccount.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;;;;;;AAeA,MAAM,iBAAiB,GAAG,GAAG;AAC7B,MAAM,sBAAsB,GAAG,CAAC;MAEnB,cAAc,CAAA;IAOjB,OAAO,UAAU,CAAC,iBAAyB,EAAA;QACjD,OAAO,CAAA,qBAAA,EAAwB,iBAAiB,CAAA,CAAE;IACpD;AAEA,IAAA,aAAa,UAAU,CAAC,MASrB,EAAA;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,IAAI,aAAa,EAAE;QACnD,MAAM,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,IAAI,IAAI,CAAC;QAC7D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC;;AAG1C,QAAA,MAAM,WAAW,GAAG,kBAAkB,CAAC,OAAO,CAAC;;;AAI/C,QAAA,IAAI;AACF,YAAA,MAAM,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC;QAC7D;QAAE,OAAO,KAAK,EAAE;;AAEd,YAAA,MAAM,CAAC,IAAI,CAAC,iEAAiE,KAAK,CAAA,CAAE,CAAC;QACvF;;QAGA,IAAI,CAAC,kBAAkB,EAAE;YACvB,MAAM,CAAC,IAAI,CAAC,CAAA,oCAAA,EAAuC,MAAM,CAAC,aAAa,CAAA,CAAE,CAAC;AAC1E,YAAA,OAAO,IAAI,cAAc,CACvB,IAAI;AACJ,YAAA,IAAI;YACJ,MAAM,EACN,MAAM,CAAC,aAAa,EACpB,MAAM,CAAC,QAAQ,EACf,OAAO,CACR;QACH;;QAGA,MAAM,SAAS,GAAG,MAAM,EAAE,KAAK,IAAI,IAAI,YAAY,EAAE;AACrD,QAAA,MAAM,KAAK,GAAG,IAAI,iBAAiB,CAAC,SAAS,CAAC;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC;;QAGtD,MAAM,YAAY,GAAG,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,QAAQ,CAAC;QACvE,IAAI,YAAY,EAAE;YAChB,MAAM,oBAAoB,GAAG,MAAM,sBAAsB,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC;AAC3F,YAAA,OAAO,IAAI,cAAc,CAAC,YAAY,CAAC,UAAU,EAAE,oBAAoB,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC;QACjH;AAEA,QAAA,MAAM,UAAU,GAAG,kBAAkB,EAAE;QACvC,MAAM,WAAW,GAAG,MAAM,sBAAsB,CAAC,UAAU,EAAE,OAAO,CAAC;QACrE,MAAM,CAAC,IAAI,CAAC,CAAA,4BAAA,EAA+B,WAAW,CAAC,OAAO,CAAA,CAAE,CAAC;AACjE,QAAA,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,CAAA,uBAAA,EAA0B,WAAW,CAAC,OAAO,CAAA,CAAE,CAAC;AAE5D,QAAA,MAAM,UAAU,GAAG,MAAM,sBAAsB,CAAC;YAC9C,OAAO,EAAE,MAAM,CAAC,aAAa;YAC7B,OAAO,EAAE,WAAW,CAAC,OAAO;AAC5B,YAAA,KAAK,EAAE,WAAW;AAClB,YAAA,OAAO,EAAE,OAAO;AAChB,YAAA,SAAS,EAAE,MAAM,EAAE,SAAS,IAAI,iBAAiB;AACjD,YAAA,YAAY,EAAE,MAAM,EAAE,YAAY,IAAI,sBAAsB;YAC5D,QAAQ,EAAE,MAAM,CAAC,QAAQ;AAC1B,SAAA,CAAC;;QAGF,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAC,UAAU,EAAE,UAAU,EAAC,CAAC;AAE7C,QAAA,OAAO,IAAI,cAAc,CAAC,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC;IAC3F;AAEQ,IAAA,OAAO,4BAA4B,CACzC,eAAkC,EAClC,QAAgB,EAAA;QAEhB,MAAM,UAAU,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC;AAChD,QAAA,IAAI,CAAC,UAAU;AAAE,YAAA,OAAO,IAAI;;AAG5B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AACzC,QAAA,MAAM,aAAa,GAAG,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC/E,QAAA,IAAI,aAAa,IAAI,GAAG,EAAE;AACxB,YAAA,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC;AAChC,YAAA,OAAO,IAAI;QACb;AAEA,QAAA,OAAO,UAAU;IACnB;AAEQ,IAAA,aAAa,iBAAiB,CACpC,WAAiC,EAAA;QAEjC,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,iBAAiB,CAAC;AAC1D,YAAA,KAAK,EAAE,CAAC;oBACN,EAAE,EAAE,WAAW,CAAC,OAAO;AACvB,oBAAA,KAAK,EAAE,EAAE;AACT,oBAAA,IAAI,EAAE;iBACP,CAAC;AACF,YAAA,SAAS,EAAE;AACZ,SAAA,CAAC;QAEF,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,2BAA2B,CAAC;AACnE,YAAA,IAAI,EAAE;AACP,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;AACpB,YAAA,MAAM,IAAI,KAAK,CAAC,CAAA,yCAAA,EAA4C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA,CAAE,CAAC;QACxF;IACF;AAEA,IAAA,WAAA,CACE,eAAuC,EACvC,oBAAiD,EACjD,MAAe,EACf,iBAA0B,EAC1B,QAA6B,EAC7B,OAAA,GAAkB,IAAI,CAAC,EAAE,EAAA;AAEzB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO;QACtB,IAAI,oBAAoB,EAAE;;YAExB,IAAI,CAAC,eAAe,EAAE;AACpB,gBAAA,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC;YAC3E;;YAEA,IAAI,CAAC,UAAU,GAAG,CAAA,KAAA,EAAQ,oBAAoB,CAAC,OAAO,EAAe;AACrE,YAAA,IAAI,CAAC,oBAAoB,GAAG,oBAAoB;YAChD,IAAI,CAAC,aAAa,GAAG;gBACnB,IAAI,mBAAmB,CAAC,eAAe,EAAE,oBAAoB,EAAE,MAAM,EAAE,OAAO;aAC/E;QACH;aAAO;;AAEL,YAAA,IAAI,CAAC,iBAAiB,IAAI,CAAC,QAAQ,EAAE;AACnC,gBAAA,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC;YACvF;;AAEA,YAAA,IAAI,CAAC,UAAU,GAAG,CAAA,KAAA,EAAQ,iBAAiB,EAAe;AAC1D,YAAA,IAAI,CAAC,iBAAiB,GAAG,iBAAiB;YAC1C,IAAI,CAAC,aAAa,GAAG;gBACnB,IAAI,sBAAsB,CAAC,iBAAiB,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO;aACxE;QACH;IACF;AAEA;;AAEG;AACH,IAAA,MAAM,YAAY,GAAA;QAChB,OAAO,IAAI,CAAC,UAAU;IACxB;AAEA,IAAA,MAAM,UAAU,GAAA;QACd,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,EAAE,OAAO,IAAI,IAAI,CAAC,iBAAiB;QAC5E,IAAI,CAAC,OAAO,EAAE;AACZ,YAAA,OAAO,EAAE;QACX;;AAGA,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,KAAK,KAAK,GAAG,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,IAAI;AAE7E,QAAA,OAAO,CAAC;gBACN,OAAO;gBACP,KAAK;AACL,gBAAA,UAAU,EAAE,IAAI,CAAC,oBAAoB,GAAG,cAAc,CAAC,KAAK,GAAG,cAAc,CAAC;AAC/E,aAAA,CAAC;IACJ;AAEA;;;;AAIG;AAEH,IAAA,OAAO,kBAAkB,CAAC,iBAAyB,EAAE,KAAsB,EAAA;;QAEzE,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE;;AAEvC,YAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,gBAAA,MAAM,IAAI,KAAK,CAAC,oFAAoF,CAAC;YACvG;YACA,KAAK,GAAG,YAAY;QACtB;QAEA,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC;IAClD;AAEA;;;AAGG;IACH,MAAM,qBAAqB,CAAC,YAAoB,EAAA;AAC9C,QAAA,OAAO,IAAI;IACb;AAEA;;AAEG;IACH,MAAM,SAAS,CAAC,MAAuB,EAAA;AACrC,QAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM;QAE3B,QAAQ,QAAQ;YACd,KAAK,MAAM,EAAE;AACX,gBAAA,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,KAAK,KAAK,GAAG,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC,IAAI;AAC7E,gBAAA,MAAM,WAAW,GAAgB;oBAC/B,KAAK;AACL,oBAAA,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,MAAM,CAAC,WAAW;AAC3B,oBAAA,MAAM,EAAE,IAAI,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC;iBACrC;gBACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;gBACxF,IAAI,CAAC,MAAM,EAAE;AACX,oBAAA,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC;gBACzE;AACA,gBAAA,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACzD;AACA,YAAA,KAAK,MAAM;AACT,gBAAA,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC;AAClE,YAAA,KAAK,KAAK;AACR,gBAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC;AACjE,YAAA;AACE,gBAAA,MAAM,IAAI,KAAK,CAAC,yCAAyC,QAAQ,CAAA,CAAA,CAAG,CAAC;;IAE3E;AACD;;;;"}
|
package/dist/index.cjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var common = require('@atxp/common');
|
|
4
|
+
var bignumber_js = require('bignumber.js');
|
|
4
5
|
var chains = require('viem/chains');
|
|
5
6
|
var viem = require('viem');
|
|
6
7
|
var accounts = require('viem/accounts');
|
|
7
8
|
var accountAbstraction = require('viem/account-abstraction');
|
|
8
9
|
var client = require('@atxp/client');
|
|
9
|
-
var bignumber_js = require('bignumber.js');
|
|
10
10
|
|
|
11
11
|
const USDC_CONTRACT_ADDRESS_BASE = "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913"; // USDC on Base mainnet
|
|
12
12
|
const USDC_CONTRACT_ADDRESS_BASE_SEPOLIA = "0x036CbD53842c5426634e7929541eC2318f3dCF7e"; // USDC on Base Sepolia testnet
|
|
@@ -5504,6 +5504,34 @@ class BaseAppAccount {
|
|
|
5504
5504
|
async createSpendPermission(_resourceUrl) {
|
|
5505
5505
|
return null;
|
|
5506
5506
|
}
|
|
5507
|
+
/**
|
|
5508
|
+
* Authorize a payment through the appropriate channel for Base browser accounts.
|
|
5509
|
+
*/
|
|
5510
|
+
async authorize(params) {
|
|
5511
|
+
const { protocol } = params;
|
|
5512
|
+
switch (protocol) {
|
|
5513
|
+
case 'atxp': {
|
|
5514
|
+
const chain = this.chainId === 84532 ? common.ChainEnum.BaseSepolia : common.ChainEnum.Base;
|
|
5515
|
+
const destination = {
|
|
5516
|
+
chain,
|
|
5517
|
+
currency: 'USDC',
|
|
5518
|
+
address: params.destination,
|
|
5519
|
+
amount: new bignumber_js.BigNumber(params.amount),
|
|
5520
|
+
};
|
|
5521
|
+
const result = await this.paymentMakers[0].makePayment([destination], params.memo || '');
|
|
5522
|
+
if (!result) {
|
|
5523
|
+
throw new Error('BaseAppAccount: payment execution returned no result');
|
|
5524
|
+
}
|
|
5525
|
+
return { protocol, credential: JSON.stringify(result) };
|
|
5526
|
+
}
|
|
5527
|
+
case 'x402':
|
|
5528
|
+
throw new Error('BaseAppAccount does not support x402 protocol');
|
|
5529
|
+
case 'mpp':
|
|
5530
|
+
throw new Error('BaseAppAccount does not support MPP protocol');
|
|
5531
|
+
default:
|
|
5532
|
+
throw new Error(`BaseAppAccount: unsupported protocol '${protocol}'`);
|
|
5533
|
+
}
|
|
5534
|
+
}
|
|
5507
5535
|
}
|
|
5508
5536
|
|
|
5509
5537
|
// Helper function to convert to base64url that works in both Node.js and browsers
|
|
@@ -5743,6 +5771,42 @@ class BaseAccount {
|
|
|
5743
5771
|
async createSpendPermission(_resourceUrl) {
|
|
5744
5772
|
return null;
|
|
5745
5773
|
}
|
|
5774
|
+
/**
|
|
5775
|
+
* Authorize a payment through the appropriate channel for Base accounts.
|
|
5776
|
+
*/
|
|
5777
|
+
async authorize(params) {
|
|
5778
|
+
const { protocol } = params;
|
|
5779
|
+
switch (protocol) {
|
|
5780
|
+
case 'x402': {
|
|
5781
|
+
const { createPaymentHeader } = await import('x402/client');
|
|
5782
|
+
if (!params.paymentRequirements) {
|
|
5783
|
+
throw new Error('BaseAccount: x402 authorize requires paymentRequirements');
|
|
5784
|
+
}
|
|
5785
|
+
const reqs = params.paymentRequirements;
|
|
5786
|
+
const x402Version = reqs.x402Version || 1;
|
|
5787
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
5788
|
+
const paymentHeader = await createPaymentHeader(this.getLocalAccount(), x402Version, reqs);
|
|
5789
|
+
return { protocol, credential: paymentHeader };
|
|
5790
|
+
}
|
|
5791
|
+
case 'atxp': {
|
|
5792
|
+
const destination = {
|
|
5793
|
+
chain: 'base',
|
|
5794
|
+
currency: 'USDC',
|
|
5795
|
+
address: params.destination,
|
|
5796
|
+
amount: new bignumber_js.BigNumber(params.amount),
|
|
5797
|
+
};
|
|
5798
|
+
const result = await this.paymentMakers[0].makePayment([destination], params.memo || '');
|
|
5799
|
+
if (!result) {
|
|
5800
|
+
throw new Error('BaseAccount: payment execution returned no result');
|
|
5801
|
+
}
|
|
5802
|
+
return { protocol, credential: JSON.stringify({ transactionId: result.transactionId, chain: result.chain, currency: result.currency }) };
|
|
5803
|
+
}
|
|
5804
|
+
case 'mpp':
|
|
5805
|
+
throw new Error('BaseAccount does not support MPP protocol');
|
|
5806
|
+
default:
|
|
5807
|
+
throw new Error(`BaseAccount: unsupported protocol '${protocol}'`);
|
|
5808
|
+
}
|
|
5809
|
+
}
|
|
5746
5810
|
}
|
|
5747
5811
|
|
|
5748
5812
|
Object.defineProperty(exports, "ATXPAccount", {
|