@andrewkimjoseph/celina-sdk 0.13.1 → 0.15.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/README.md +5 -3
- package/build/aa/create-aa-client.d.ts +44 -0
- package/build/aa/create-aa-client.js +115 -0
- package/build/aa/create-aa-client.js.map +1 -0
- package/build/aa/gas-sponsorship.d.ts +27 -0
- package/build/aa/gas-sponsorship.js +65 -0
- package/build/aa/gas-sponsorship.js.map +1 -0
- package/build/aa/index.d.ts +4 -0
- package/build/aa/index.js +4 -0
- package/build/aa/index.js.map +1 -0
- package/build/aa/prepared-calls.d.ts +8 -0
- package/build/aa/prepared-calls.js +27 -0
- package/build/aa/prepared-calls.js.map +1 -0
- package/build/aa/types.d.ts +61 -0
- package/build/aa/types.js +2 -0
- package/build/aa/types.js.map +1 -0
- package/build/index.d.ts +2 -0
- package/build/index.js +1 -0
- package/build/index.js.map +1 -1
- package/build/services/aave.service.js +3 -2
- package/build/services/aave.service.js.map +1 -1
- package/build/services/gooddollar.service.js +3 -2
- package/build/services/gooddollar.service.js.map +1 -1
- package/build/services/mento-fx.service.js +2 -2
- package/build/services/mento-fx.service.js.map +1 -1
- package/build/services/transaction.service.js +3 -3
- package/build/services/transaction.service.js.map +1 -1
- package/build/services/uniswap.service.js +2 -1
- package/build/services/uniswap.service.js.map +1 -1
- package/build/src/aa/create-aa-client.d.ts +44 -0
- package/build/src/aa/create-aa-client.js +115 -0
- package/build/src/aa/create-aa-client.js.map +1 -0
- package/build/src/aa/gas-sponsorship.d.ts +27 -0
- package/build/src/aa/gas-sponsorship.js +65 -0
- package/build/src/aa/gas-sponsorship.js.map +1 -0
- package/build/src/aa/index.d.ts +4 -0
- package/build/src/aa/index.js +4 -0
- package/build/src/aa/index.js.map +1 -0
- package/build/src/aa/prepared-calls.d.ts +8 -0
- package/build/src/aa/prepared-calls.js +27 -0
- package/build/src/aa/prepared-calls.js.map +1 -0
- package/build/src/aa/types.d.ts +61 -0
- package/build/src/aa/types.js +2 -0
- package/build/src/aa/types.js.map +1 -0
- package/build/src/index.d.ts +2 -0
- package/build/src/index.js +1 -0
- package/build/src/index.js.map +1 -1
- package/build/src/services/aave.service.js +3 -2
- package/build/src/services/aave.service.js.map +1 -1
- package/build/src/services/gooddollar.service.js +3 -2
- package/build/src/services/gooddollar.service.js.map +1 -1
- package/build/src/services/mento-fx.service.js +2 -2
- package/build/src/services/mento-fx.service.js.map +1 -1
- package/build/src/services/transaction.service.js +3 -3
- package/build/src/services/transaction.service.js.map +1 -1
- package/build/src/services/uniswap.service.js +2 -1
- package/build/src/services/uniswap.service.js.map +1 -1
- package/build/src/types/prepared.d.ts +21 -6
- package/build/src/types/prepared.js +4 -1
- package/build/src/types/prepared.js.map +1 -1
- package/build/types/prepared.d.ts +21 -6
- package/build/types/prepared.js +4 -1
- package/build/types/prepared.js.map +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
# Celina SDK
|
|
6
6
|
|
|
7
|
-
Celo mainnet library for frontend apps and agents: **reads
|
|
7
|
+
Celo mainnet library for frontend apps and agents: **reads**, **unsigned transaction preparation**, and optional **ERC-4337 AA** via `createAAClient` (app-owned gas sponsorship credentials).
|
|
8
8
|
|
|
9
|
-
Pair with [wagmi](https://wagmi.sh) / viem
|
|
9
|
+
Pair with [wagmi](https://wagmi.sh) / viem for EOA signing, or `createAAClient` for sponsored/batched UserOps.
|
|
10
10
|
|
|
11
11
|
## Stack
|
|
12
12
|
|
|
@@ -97,7 +97,9 @@ Optional `attributionTags` in `createCelinaClient({ attributionTags: [...] })` a
|
|
|
97
97
|
|
|
98
98
|
Before opening the wallet, simulate each step against current chain state with `@andrewkimjoseph/celina-sdk/simulation` (`simulatePreparedStep`). Local **celina-mcp** stdio writes use the same helper in `executePreparedFlow` before broadcast.
|
|
99
99
|
|
|
100
|
-
|
|
100
|
+
For **sponsored / batched UserOps**, use [`createAAClient`](docs/guides/account-abstraction.md) with an app-owned gas sponsorship provider (v1: Pimlico). MCP does not host sponsorship API keys.
|
|
101
|
+
|
|
102
|
+
See [Prepared flows](docs/concepts/prepared-flows.md), [Prepared-step simulation](docs/guides/prepared-step-simulation.md), and [Account Abstraction](docs/guides/account-abstraction.md).
|
|
101
103
|
|
|
102
104
|
### MCP session wallet (not in the SDK)
|
|
103
105
|
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { type Hex, type PrivateKeyAccount, type PublicClient } from "viem";
|
|
2
|
+
import type { PreparedFlow, SerializedPreparedFlow } from "../types/prepared.js";
|
|
3
|
+
import { GasSponsorshipService } from "./gas-sponsorship.js";
|
|
4
|
+
import type { CreateAAClientOptions, GasSponsorshipProviderId, SendPreparedFlowOptions, SendPreparedFlowResult } from "./types.js";
|
|
5
|
+
/**
|
|
6
|
+
* Derive the counterfactual Simple Smart Account address for an EOA owner
|
|
7
|
+
* (EntryPoint 0.7) without submitting a UserOp.
|
|
8
|
+
*/
|
|
9
|
+
export declare function deriveSmartAccountAddress(owner: PrivateKeyAccount | Hex, publicClient?: PublicClient): Promise<{
|
|
10
|
+
eoaAddress: `0x${string}`;
|
|
11
|
+
smartAccountAddress: `0x${string}`;
|
|
12
|
+
}>;
|
|
13
|
+
export type AAClient = {
|
|
14
|
+
/** Gas sponsorship backend id (e.g. `"pimlico"`). */
|
|
15
|
+
provider: GasSponsorshipProviderId;
|
|
16
|
+
/** EOA that owns the smart account. */
|
|
17
|
+
eoaAddress: `0x${string}`;
|
|
18
|
+
/** Counterfactual / deployed Simple Smart Account address. */
|
|
19
|
+
smartAccountAddress: `0x${string}`;
|
|
20
|
+
/** Underlying sponsorship service (URLs, paymaster, fees). */
|
|
21
|
+
gasSponsorship: GasSponsorshipService;
|
|
22
|
+
/**
|
|
23
|
+
* Tags applied in `sendPreparedFlow` via `appendCelinaCalldataTag`.
|
|
24
|
+
* `undefined` means step `data` is passed through unchanged.
|
|
25
|
+
*/
|
|
26
|
+
attributionTags: string[] | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* Submit `prepare*` output (ordered `steps` / prepared transactions) as sponsored UserOp(s).
|
|
29
|
+
* When `attributionTags` were set on this client, each step’s `data` is dual-tagged
|
|
30
|
+
* before submit; otherwise `data` is used as-is (including tags from `prepare*`).
|
|
31
|
+
*/
|
|
32
|
+
sendPreparedFlow: (flow: PreparedFlow | SerializedPreparedFlow, options?: SendPreparedFlowOptions) => Promise<SendPreparedFlowResult>;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Create an ERC-4337 AA client on Celo mainnet (Simple Smart Account, EntryPoint 0.7).
|
|
36
|
+
*
|
|
37
|
+
* Pass an explicit `gasSponsorship` provider object — credentials are app-owned
|
|
38
|
+
* and never stored by Celina. v1 supports `provider: "pimlico"`.
|
|
39
|
+
*
|
|
40
|
+
* Optional `attributionTags` are applied in `sendPreparedFlow` via
|
|
41
|
+
* `appendCelinaCalldataTag` (same dual format as `prepare*`). Omit them to
|
|
42
|
+
* pass step calldata through unchanged.
|
|
43
|
+
*/
|
|
44
|
+
export declare function createAAClient(options: CreateAAClientOptions): Promise<AAClient>;
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { createPublicClient, http, } from "viem";
|
|
2
|
+
import { entryPoint07Address } from "viem/account-abstraction";
|
|
3
|
+
import { privateKeyToAccount } from "viem/accounts";
|
|
4
|
+
import { createSmartAccountClient } from "permissionless";
|
|
5
|
+
import { toSimpleSmartAccount } from "permissionless/accounts";
|
|
6
|
+
import { CHAIN, DEFAULT_RPC_URL } from "../config/chains.js";
|
|
7
|
+
import { GasSponsorshipService } from "./gas-sponsorship.js";
|
|
8
|
+
import { preparedStepsToUserOpCalls } from "./prepared-calls.js";
|
|
9
|
+
function resolveOwner(owner) {
|
|
10
|
+
if (typeof owner === "string") {
|
|
11
|
+
return privateKeyToAccount(owner);
|
|
12
|
+
}
|
|
13
|
+
return owner;
|
|
14
|
+
}
|
|
15
|
+
function defaultPublicClient() {
|
|
16
|
+
return createPublicClient({
|
|
17
|
+
chain: CHAIN,
|
|
18
|
+
transport: http(DEFAULT_RPC_URL),
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Derive the counterfactual Simple Smart Account address for an EOA owner
|
|
23
|
+
* (EntryPoint 0.7) without submitting a UserOp.
|
|
24
|
+
*/
|
|
25
|
+
export async function deriveSmartAccountAddress(owner, publicClient) {
|
|
26
|
+
const eoaAccount = resolveOwner(owner);
|
|
27
|
+
const client = publicClient ?? defaultPublicClient();
|
|
28
|
+
const smartAccount = await toSimpleSmartAccount({
|
|
29
|
+
client,
|
|
30
|
+
owner: eoaAccount,
|
|
31
|
+
entryPoint: {
|
|
32
|
+
address: entryPoint07Address,
|
|
33
|
+
version: "0.7",
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
return {
|
|
37
|
+
eoaAddress: eoaAccount.address,
|
|
38
|
+
smartAccountAddress: smartAccount.address,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Create an ERC-4337 AA client on Celo mainnet (Simple Smart Account, EntryPoint 0.7).
|
|
43
|
+
*
|
|
44
|
+
* Pass an explicit `gasSponsorship` provider object — credentials are app-owned
|
|
45
|
+
* and never stored by Celina. v1 supports `provider: "pimlico"`.
|
|
46
|
+
*
|
|
47
|
+
* Optional `attributionTags` are applied in `sendPreparedFlow` via
|
|
48
|
+
* `appendCelinaCalldataTag` (same dual format as `prepare*`). Omit them to
|
|
49
|
+
* pass step calldata through unchanged.
|
|
50
|
+
*/
|
|
51
|
+
export async function createAAClient(options) {
|
|
52
|
+
const eoaAccount = resolveOwner(options.owner);
|
|
53
|
+
const publicClient = options.publicClient ?? defaultPublicClient();
|
|
54
|
+
const attributionTags = options.attributionTags;
|
|
55
|
+
const gasSponsorship = new GasSponsorshipService(options.gasSponsorship, CHAIN.id);
|
|
56
|
+
const smartAccount = await toSimpleSmartAccount({
|
|
57
|
+
client: publicClient,
|
|
58
|
+
owner: eoaAccount,
|
|
59
|
+
entryPoint: {
|
|
60
|
+
address: entryPoint07Address,
|
|
61
|
+
version: "0.7",
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
const paymaster = gasSponsorship.getPaymasterClient();
|
|
65
|
+
const smartAccountClient = createSmartAccountClient({
|
|
66
|
+
account: smartAccount,
|
|
67
|
+
chain: CHAIN,
|
|
68
|
+
bundlerTransport: gasSponsorship.createBundlerTransport(),
|
|
69
|
+
paymaster,
|
|
70
|
+
userOperation: {
|
|
71
|
+
estimateFeesPerGas: async () => gasSponsorship.estimateFeesPerGas(),
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
async function sendPreparedFlow(flow, sendOptions) {
|
|
75
|
+
const mode = sendOptions?.mode ?? "batch";
|
|
76
|
+
const calls = preparedStepsToUserOpCalls(flow.steps, attributionTags);
|
|
77
|
+
const userOpHashes = [];
|
|
78
|
+
const transactionHashes = [];
|
|
79
|
+
if (mode === "batch") {
|
|
80
|
+
const userOpHash = await smartAccountClient.sendUserOperation({ calls });
|
|
81
|
+
userOpHashes.push(userOpHash);
|
|
82
|
+
const receipt = await smartAccountClient.waitForUserOperationReceipt({
|
|
83
|
+
hash: userOpHash,
|
|
84
|
+
});
|
|
85
|
+
if (!receipt.success) {
|
|
86
|
+
return { mode, userOpHashes, transactionHashes, success: false };
|
|
87
|
+
}
|
|
88
|
+
transactionHashes.push(receipt.receipt.transactionHash);
|
|
89
|
+
return { mode, userOpHashes, transactionHashes, success: true };
|
|
90
|
+
}
|
|
91
|
+
for (const call of calls) {
|
|
92
|
+
const userOpHash = await smartAccountClient.sendUserOperation({
|
|
93
|
+
calls: [call],
|
|
94
|
+
});
|
|
95
|
+
userOpHashes.push(userOpHash);
|
|
96
|
+
const receipt = await smartAccountClient.waitForUserOperationReceipt({
|
|
97
|
+
hash: userOpHash,
|
|
98
|
+
});
|
|
99
|
+
if (!receipt.success) {
|
|
100
|
+
return { mode, userOpHashes, transactionHashes, success: false };
|
|
101
|
+
}
|
|
102
|
+
transactionHashes.push(receipt.receipt.transactionHash);
|
|
103
|
+
}
|
|
104
|
+
return { mode, userOpHashes, transactionHashes, success: true };
|
|
105
|
+
}
|
|
106
|
+
return {
|
|
107
|
+
provider: gasSponsorship.provider,
|
|
108
|
+
eoaAddress: eoaAccount.address,
|
|
109
|
+
smartAccountAddress: smartAccount.address,
|
|
110
|
+
gasSponsorship,
|
|
111
|
+
attributionTags,
|
|
112
|
+
sendPreparedFlow,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=create-aa-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-aa-client.js","sourceRoot":"","sources":["../../src/aa/create-aa-client.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,IAAI,GAIL,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAK7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAQjE,SAAS,YAAY,CAAC,KAA8B;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,mBAAmB;IAC1B,OAAO,kBAAkB,CAAC;QACxB,KAAK,EAAE,KAAK;QACZ,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC;KACjC,CAAiB,CAAC;AACrB,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,KAA8B,EAC9B,YAA2B;IAK3B,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,YAAY,IAAI,mBAAmB,EAAE,CAAC;IACrD,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC;QAC9C,MAAM;QACN,KAAK,EAAE,UAAU;QACjB,UAAU,EAAE;YACV,OAAO,EAAE,mBAAmB;YAC5B,OAAO,EAAE,KAAK;SACf;KACF,CAAC,CAAC;IACH,OAAO;QACL,UAAU,EAAE,UAAU,CAAC,OAAO;QAC9B,mBAAmB,EAAE,YAAY,CAAC,OAAO;KAC1C,CAAC;AACJ,CAAC;AA2BD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAA8B;IAE9B,MAAM,UAAU,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,mBAAmB,EAAE,CAAC;IACnE,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC;IAChD,MAAM,cAAc,GAAG,IAAI,qBAAqB,CAC9C,OAAO,CAAC,cAAc,EACtB,KAAK,CAAC,EAAE,CACT,CAAC;IAEF,MAAM,YAAY,GAAG,MAAM,oBAAoB,CAAC;QAC9C,MAAM,EAAE,YAAY;QACpB,KAAK,EAAE,UAAU;QACjB,UAAU,EAAE;YACV,OAAO,EAAE,mBAAmB;YAC5B,OAAO,EAAE,KAAK;SACf;KACF,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,cAAc,CAAC,kBAAkB,EAAE,CAAC;IACtD,MAAM,kBAAkB,GAAG,wBAAwB,CAAC;QAClD,OAAO,EAAE,YAAY;QACrB,KAAK,EAAE,KAAK;QACZ,gBAAgB,EAAE,cAAc,CAAC,sBAAsB,EAAE;QACzD,SAAS;QACT,aAAa,EAAE;YACb,kBAAkB,EAAE,KAAK,IAAI,EAAE,CAAC,cAAc,CAAC,kBAAkB,EAAE;SACpE;KACF,CAAC,CAAC;IAEH,KAAK,UAAU,gBAAgB,CAC7B,IAA2C,EAC3C,WAAqC;QAErC,MAAM,IAAI,GAAG,WAAW,EAAE,IAAI,IAAI,OAAO,CAAC;QAC1C,MAAM,KAAK,GAAG,0BAA0B,CAAC,IAAI,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;QACtE,MAAM,YAAY,GAAoB,EAAE,CAAC;QACzC,MAAM,iBAAiB,GAAoB,EAAE,CAAC;QAE9C,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YACzE,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,2BAA2B,CAAC;gBACnE,IAAI,EAAE,UAAU;aACjB,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACrB,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YACnE,CAAC;YACD,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YACxD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;QAClE,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,MAAM,kBAAkB,CAAC,iBAAiB,CAAC;gBAC5D,KAAK,EAAE,CAAC,IAAI,CAAC;aACd,CAAC,CAAC;YACH,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC9B,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,2BAA2B,CAAC;gBACnE,IAAI,EAAE,UAAU;aACjB,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;gBACrB,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YACnE,CAAC;YACD,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QAC1D,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,iBAAiB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAClE,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,cAAc,CAAC,QAAQ;QACjC,UAAU,EAAE,UAAU,CAAC,OAAO;QAC9B,mBAAmB,EAAE,YAAY,CAAC,OAAO;QACzC,cAAc;QACd,eAAe;QACf,gBAAgB;KACjB,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type Transport } from "viem";
|
|
2
|
+
import { createPimlicoClient } from "permissionless/clients/pimlico";
|
|
3
|
+
import type { GasSponsorshipConfig, GasSponsorshipProviderId } from "./types.js";
|
|
4
|
+
type PimlicoClient = ReturnType<typeof createPimlicoClient>;
|
|
5
|
+
/**
|
|
6
|
+
* Provider-agnostic gas sponsorship wiring (bundler URL, paymaster, fees).
|
|
7
|
+
* v1 supports `provider: "pimlico"`; add branches for future providers without renaming this type.
|
|
8
|
+
*/
|
|
9
|
+
export declare class GasSponsorshipService {
|
|
10
|
+
readonly provider: GasSponsorshipProviderId;
|
|
11
|
+
private readonly config;
|
|
12
|
+
private readonly chainId;
|
|
13
|
+
private pimlicoClient;
|
|
14
|
+
constructor(config: GasSponsorshipConfig, chainId?: number);
|
|
15
|
+
/** Bundler / paymaster JSON-RPC URL for the configured provider and chain. */
|
|
16
|
+
getRpcUrl(chainId?: number): string;
|
|
17
|
+
/** viem transport pointed at the sponsorship backend RPC. */
|
|
18
|
+
createBundlerTransport(): Transport;
|
|
19
|
+
/** Provider client used as paymaster (and fee oracle in v1). */
|
|
20
|
+
getPaymasterClient(): PimlicoClient;
|
|
21
|
+
/** Fee fields for UserOp construction. */
|
|
22
|
+
estimateFeesPerGas(): Promise<{
|
|
23
|
+
maxFeePerGas: bigint;
|
|
24
|
+
maxPriorityFeePerGas: bigint;
|
|
25
|
+
}>;
|
|
26
|
+
}
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { http } from "viem";
|
|
2
|
+
import { entryPoint07Address } from "viem/account-abstraction";
|
|
3
|
+
import { createPimlicoClient } from "permissionless/clients/pimlico";
|
|
4
|
+
import { CHAIN } from "../config/chains.js";
|
|
5
|
+
/**
|
|
6
|
+
* Provider-agnostic gas sponsorship wiring (bundler URL, paymaster, fees).
|
|
7
|
+
* v1 supports `provider: "pimlico"`; add branches for future providers without renaming this type.
|
|
8
|
+
*/
|
|
9
|
+
export class GasSponsorshipService {
|
|
10
|
+
provider;
|
|
11
|
+
config;
|
|
12
|
+
chainId;
|
|
13
|
+
pimlicoClient = null;
|
|
14
|
+
constructor(config, chainId = CHAIN.id) {
|
|
15
|
+
this.config = config;
|
|
16
|
+
this.provider = config.provider;
|
|
17
|
+
this.chainId = chainId;
|
|
18
|
+
if (config.provider === "pimlico") {
|
|
19
|
+
const key = config.pimlico.apiKey?.trim();
|
|
20
|
+
if (!key) {
|
|
21
|
+
throw new Error("gasSponsorship.pimlico.apiKey is required when provider is \"pimlico\"");
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/** Bundler / paymaster JSON-RPC URL for the configured provider and chain. */
|
|
26
|
+
getRpcUrl(chainId = this.chainId) {
|
|
27
|
+
if (this.config.provider === "pimlico") {
|
|
28
|
+
const apiKey = this.config.pimlico.apiKey.trim();
|
|
29
|
+
return `https://api.pimlico.io/v2/${chainId}/rpc?apikey=${apiKey}`;
|
|
30
|
+
}
|
|
31
|
+
const _exhaustive = this.config.provider;
|
|
32
|
+
throw new Error(`Unsupported gas sponsorship provider: ${String(_exhaustive)}`);
|
|
33
|
+
}
|
|
34
|
+
/** viem transport pointed at the sponsorship backend RPC. */
|
|
35
|
+
createBundlerTransport() {
|
|
36
|
+
return http(this.getRpcUrl());
|
|
37
|
+
}
|
|
38
|
+
/** Provider client used as paymaster (and fee oracle in v1). */
|
|
39
|
+
getPaymasterClient() {
|
|
40
|
+
if (this.config.provider !== "pimlico") {
|
|
41
|
+
const _exhaustive = this.config.provider;
|
|
42
|
+
throw new Error(`Unsupported gas sponsorship provider: ${String(_exhaustive)}`);
|
|
43
|
+
}
|
|
44
|
+
if (!this.pimlicoClient) {
|
|
45
|
+
this.pimlicoClient = createPimlicoClient({
|
|
46
|
+
transport: this.createBundlerTransport(),
|
|
47
|
+
entryPoint: {
|
|
48
|
+
address: entryPoint07Address,
|
|
49
|
+
version: "0.7",
|
|
50
|
+
},
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return this.pimlicoClient;
|
|
54
|
+
}
|
|
55
|
+
/** Fee fields for UserOp construction. */
|
|
56
|
+
async estimateFeesPerGas() {
|
|
57
|
+
if (this.config.provider === "pimlico") {
|
|
58
|
+
const prices = await this.getPaymasterClient().getUserOperationGasPrice();
|
|
59
|
+
return prices.fast;
|
|
60
|
+
}
|
|
61
|
+
const _exhaustive = this.config.provider;
|
|
62
|
+
throw new Error(`Unsupported gas sponsorship provider: ${String(_exhaustive)}`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=gas-sponsorship.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gas-sponsorship.js","sourceRoot":"","sources":["../../src/aa/gas-sponsorship.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAkB,MAAM,MAAM,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAK5C;;;GAGG;AACH,MAAM,OAAO,qBAAqB;IACvB,QAAQ,CAA2B;IAC3B,MAAM,CAAuB;IAC7B,OAAO,CAAS;IACzB,aAAa,GAAyB,IAAI,CAAC;IAEnD,YAAY,MAA4B,EAAE,UAAkB,KAAK,CAAC,EAAE;QAClE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAChC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;YAC1C,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,MAAM,IAAI,KAAK,CACb,wEAAwE,CACzE,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,8EAA8E;IAC9E,SAAS,CAAC,UAAkB,IAAI,CAAC,OAAO;QACtC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACjD,OAAO,6BAA6B,OAAO,eAAe,MAAM,EAAE,CAAC;QACrE,CAAC;QACD,MAAM,WAAW,GAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,yCAAyC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,6DAA6D;IAC7D,sBAAsB;QACpB,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,gEAAgE;IAChE,kBAAkB;QAChB,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,WAAW,GAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,yCAAyC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;QAClF,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,GAAG,mBAAmB,CAAC;gBACvC,SAAS,EAAE,IAAI,CAAC,sBAAsB,EAAE;gBACxC,UAAU,EAAE;oBACV,OAAO,EAAE,mBAAmB;oBAC5B,OAAO,EAAE,KAAK;iBACf;aACF,CAAC,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED,0CAA0C;IAC1C,KAAK,CAAC,kBAAkB;QAItB,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC,wBAAwB,EAAE,CAAC;YAC1E,OAAO,MAAM,CAAC,IAAI,CAAC;QACrB,CAAC;QACD,MAAM,WAAW,GAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;QAChD,MAAM,IAAI,KAAK,CAAC,yCAAyC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;CACF"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { createAAClient, deriveSmartAccountAddress, type AAClient } from "./create-aa-client.js";
|
|
2
|
+
export { GasSponsorshipService } from "./gas-sponsorship.js";
|
|
3
|
+
export { preparedStepsToUserOpCalls } from "./prepared-calls.js";
|
|
4
|
+
export type { CreateAAClientOptions, GasSponsorshipConfig, GasSponsorshipProviderId, PimlicoGasSponsorshipConfig, SendPreparedFlowMode, SendPreparedFlowOptions, SendPreparedFlowResult, UserOpCall, } from "./types.js";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/aa/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAiB,MAAM,uBAAuB,CAAC;AACjG,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PreparedTx } from "../types/prepared.js";
|
|
2
|
+
import type { UserOpCall } from "./types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Map Celina prepared steps to smart-account `calls`.
|
|
5
|
+
* When `attributionTags` is provided, each step's `data` is dual-tagged
|
|
6
|
+
* via {@link appendCelinaCalldataTag}; otherwise `data` is preserved as-is.
|
|
7
|
+
*/
|
|
8
|
+
export declare function preparedStepsToUserOpCalls(steps: PreparedTx[], attributionTags?: string[]): UserOpCall[];
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { appendCelinaCalldataTag } from "../config/celina-tag.js";
|
|
2
|
+
/**
|
|
3
|
+
* Map Celina prepared steps to smart-account `calls`.
|
|
4
|
+
* When `attributionTags` is provided, each step's `data` is dual-tagged
|
|
5
|
+
* via {@link appendCelinaCalldataTag}; otherwise `data` is preserved as-is.
|
|
6
|
+
*/
|
|
7
|
+
export function preparedStepsToUserOpCalls(steps, attributionTags) {
|
|
8
|
+
if (!steps.length) {
|
|
9
|
+
throw new Error("prepared flow has no steps");
|
|
10
|
+
}
|
|
11
|
+
const shouldTag = attributionTags !== undefined;
|
|
12
|
+
return steps.map((step) => {
|
|
13
|
+
const value = step.value !== undefined && step.value !== ""
|
|
14
|
+
? BigInt(step.value)
|
|
15
|
+
: undefined;
|
|
16
|
+
let data = step.data;
|
|
17
|
+
if (shouldTag && data !== undefined) {
|
|
18
|
+
data = appendCelinaCalldataTag(data, attributionTags);
|
|
19
|
+
}
|
|
20
|
+
return {
|
|
21
|
+
to: step.to,
|
|
22
|
+
...(data !== undefined ? { data } : {}),
|
|
23
|
+
...(value !== undefined && value > 0n ? { value } : {}),
|
|
24
|
+
};
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=prepared-calls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prepared-calls.js","sourceRoot":"","sources":["../../src/aa/prepared-calls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAIlE;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAmB,EACnB,eAA0B;IAE1B,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,SAAS,GAAG,eAAe,KAAK,SAAS,CAAC;IAChD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,MAAM,KAAK,GACT,IAAI,CAAC,KAAK,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,EAAE;YAC3C,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YACpB,CAAC,CAAC,SAAS,CAAC;QAChB,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrB,IAAI,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACpC,IAAI,GAAG,uBAAuB,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;QACxD,CAAC;QACD,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvC,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,KAAK,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxD,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { Hex, PrivateKeyAccount, PublicClient } from "viem";
|
|
2
|
+
/** Supported gas sponsorship backends. Extends with new union members over time. */
|
|
3
|
+
export type GasSponsorshipProviderId = "pimlico";
|
|
4
|
+
/** Pimlico-specific credentials (app-owned; never stored by Celina). */
|
|
5
|
+
export type PimlicoGasSponsorshipConfig = {
|
|
6
|
+
/** App-owned Pimlico API key. */
|
|
7
|
+
apiKey: string;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Explicit gas sponsorship config for {@link createAAClient}.
|
|
11
|
+
* Discriminant `provider` selects which nested object is required.
|
|
12
|
+
*/
|
|
13
|
+
export type GasSponsorshipConfig = {
|
|
14
|
+
provider: "pimlico";
|
|
15
|
+
pimlico: PimlicoGasSponsorshipConfig;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Options for {@link createAAClient}.
|
|
19
|
+
*
|
|
20
|
+
* Set `attributionTags` here for hand-built prepared steps (tagged at `sendPreparedFlow`).
|
|
21
|
+
* For `prepare*` flows, you can set the same tags on `createCelinaClient` instead —
|
|
22
|
+
* use one consistent list per send path so suffixes do not stack with mismatched tags.
|
|
23
|
+
*/
|
|
24
|
+
export type CreateAAClientOptions = {
|
|
25
|
+
/** EOA owner of the Simple Smart Account (account or private key hex). */
|
|
26
|
+
owner: PrivateKeyAccount | Hex;
|
|
27
|
+
/** Explicit sponsorship provider + credentials. */
|
|
28
|
+
gasSponsorship: GasSponsorshipConfig;
|
|
29
|
+
/** Optional Celo public client; defaults to Forno mainnet. */
|
|
30
|
+
publicClient?: PublicClient;
|
|
31
|
+
/**
|
|
32
|
+
* Optional custom tags applied via `appendCelinaCalldataTag` on each step's `data`
|
|
33
|
+
* in `sendPreparedFlow` (legacy `CELINA|…` + ERC-8021). When omitted, step data
|
|
34
|
+
* is passed through unchanged.
|
|
35
|
+
*/
|
|
36
|
+
attributionTags?: string[];
|
|
37
|
+
};
|
|
38
|
+
/** How to map prepared transactions (`prepare*` output / ordered `steps`) into UserOperations. */
|
|
39
|
+
export type SendPreparedFlowMode = "batch" | "sequential";
|
|
40
|
+
export type SendPreparedFlowOptions = {
|
|
41
|
+
/**
|
|
42
|
+
* How to submit the prepared transactions (`steps`).
|
|
43
|
+
* `batch` (default): all steps in one UserOp.
|
|
44
|
+
* `sequential`: one UserOp per step.
|
|
45
|
+
*/
|
|
46
|
+
mode?: SendPreparedFlowMode;
|
|
47
|
+
};
|
|
48
|
+
export type UserOpCall = {
|
|
49
|
+
to: `0x${string}`;
|
|
50
|
+
data?: `0x${string}`;
|
|
51
|
+
value?: bigint;
|
|
52
|
+
};
|
|
53
|
+
/** Result of submitting prepared transactions as sponsored UserOp(s). */
|
|
54
|
+
export type SendPreparedFlowResult = {
|
|
55
|
+
mode: SendPreparedFlowMode;
|
|
56
|
+
/** UserOperation hash(es) submitted to the bundler. */
|
|
57
|
+
userOpHashes: `0x${string}`[];
|
|
58
|
+
/** Transaction hash(es) from UserOp receipt(s). */
|
|
59
|
+
transactionHashes: `0x${string}`[];
|
|
60
|
+
success: boolean;
|
|
61
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/aa/types.ts"],"names":[],"mappings":""}
|
package/build/index.d.ts
CHANGED
|
@@ -91,6 +91,8 @@ export { AAVE_POOL, AAVE_SUPPORTED_SYMBOLS, resolveAaveAsset, } from "./config/a
|
|
|
91
91
|
export { CHAIN, DEFAULT_RPC_URL } from "./config/chains.js";
|
|
92
92
|
export { appendCelinaCalldataTag, buildCelinaAttributionTag, buildErc8021AttributionSuffix, CELINA_DATA_SUFFIX, checkAttributionInCalldata, collectAttributionTags, ERC_8021_MARKER, normalizeAttributionTags, parseCelinaLegacyAttributionSuffix, stripErc8021SuffixIfPresent, toErc8021AttributionCodes, verifyAttributionInCalldata, } from "./config/celina-tag.js";
|
|
93
93
|
export type { AttributionCheckResult, AttributionVerificationResult, } from "./config/celina-tag.js";
|
|
94
|
+
export { createAAClient, deriveSmartAccountAddress, GasSponsorshipService, preparedStepsToUserOpCalls, } from "./aa/index.js";
|
|
95
|
+
export type { AAClient, CreateAAClientOptions, GasSponsorshipConfig, GasSponsorshipProviderId, PimlicoGasSponsorshipConfig, SendPreparedFlowMode, SendPreparedFlowOptions, SendPreparedFlowResult, UserOpCall, } from "./aa/index.js";
|
|
94
96
|
export type { AaveAsset } from "./config/aave.js";
|
|
95
97
|
export { GOODDOLLAR_CUSD_EXCHANGE_ID, GOODDOLLAR_IDENTITY_ADDRESS, GOODDOLLAR_MENTO_BROKER, GOODDOLLAR_MENTO_EXCHANGE_PROVIDER, GOODDOLLAR_RESERVE_COLLATERAL, GOODDOLLAR_TOKEN_ADDRESS, GOODDOLLAR_UBI_SCHEME_ADDRESS, isGoodDollarUsdReservePair, } from "./config/gooddollar.js";
|
|
96
98
|
export type { GoodDollarReserveSwapParams, GoodDollarReserveQuoteOptions, GoodDollarReserveAmountSide } from "./services/gooddollar.service.js";
|
package/build/index.js
CHANGED
|
@@ -58,6 +58,7 @@ export { serializePreparedFlow } from "./types/prepared.js";
|
|
|
58
58
|
export { AAVE_POOL, AAVE_SUPPORTED_SYMBOLS, resolveAaveAsset, } from "./config/aave.js";
|
|
59
59
|
export { CHAIN, DEFAULT_RPC_URL } from "./config/chains.js";
|
|
60
60
|
export { appendCelinaCalldataTag, buildCelinaAttributionTag, buildErc8021AttributionSuffix, CELINA_DATA_SUFFIX, checkAttributionInCalldata, collectAttributionTags, ERC_8021_MARKER, normalizeAttributionTags, parseCelinaLegacyAttributionSuffix, stripErc8021SuffixIfPresent, toErc8021AttributionCodes, verifyAttributionInCalldata, } from "./config/celina-tag.js";
|
|
61
|
+
export { createAAClient, deriveSmartAccountAddress, GasSponsorshipService, preparedStepsToUserOpCalls, } from "./aa/index.js";
|
|
61
62
|
export { GOODDOLLAR_CUSD_EXCHANGE_ID, GOODDOLLAR_IDENTITY_ADDRESS, GOODDOLLAR_MENTO_BROKER, GOODDOLLAR_MENTO_EXCHANGE_PROVIDER, GOODDOLLAR_RESERVE_COLLATERAL, GOODDOLLAR_TOKEN_ADDRESS, GOODDOLLAR_UBI_SCHEME_ADDRESS, isGoodDollarUsdReservePair, } from "./config/gooddollar.js";
|
|
62
63
|
export { SelfService, } from "./services/self.service.js";
|
|
63
64
|
export { SelfApiError, SelfExpiredSessionError, } from "./clients/self-api.js";
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { aavePoolAbi } from "../abis/aave-pool.js";
|
|
|
4
4
|
import { AAVE_ASSETS, AAVE_POOL, resolveAaveAsset, } from "../config/aave.js";
|
|
5
5
|
import { appendCelinaCalldataTag } from "../config/celina-tag.js";
|
|
6
6
|
import { serializePreparedFlow, } from "../types/prepared.js";
|
|
7
|
+
import { CHAIN } from "../config/chains.js";
|
|
7
8
|
import { TokenService } from "./token.service.js";
|
|
8
9
|
/** Aave V3 supplied balance reads and supply/withdraw prepared flows on Celo mainnet. */
|
|
9
10
|
export class AaveService {
|
|
@@ -152,7 +153,7 @@ export class AaveService {
|
|
|
152
153
|
description: `Supply ${amount} ${asset.symbol} to Aave V3`,
|
|
153
154
|
});
|
|
154
155
|
const flow = {
|
|
155
|
-
|
|
156
|
+
chainId: CHAIN.id,
|
|
156
157
|
from,
|
|
157
158
|
summary: `Supply ${amount} ${asset.symbol} to Aave V3 on Celo`,
|
|
158
159
|
steps,
|
|
@@ -190,7 +191,7 @@ export class AaveService {
|
|
|
190
191
|
}), this.attributionTags);
|
|
191
192
|
const amountLabel = withdrawMax ? "max" : amount;
|
|
192
193
|
const flow = {
|
|
193
|
-
|
|
194
|
+
chainId: CHAIN.id,
|
|
194
195
|
from,
|
|
195
196
|
summary: `Withdraw ${amountLabel} ${asset.symbol} from Aave V3 on Celo`,
|
|
196
197
|
steps: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aave.service.js","sourceRoot":"","sources":["../../src/services/aave.service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"aave.service.js","sourceRoot":"","sources":["../../src/services/aave.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ import { ubiSchemeAbi } from "../abis/ubi-scheme.js";
|
|
|
8
8
|
import { GOODDOLLAR_CUSD_EXCHANGE_ID, GOODDOLLAR_IDENTITY_ADDRESS, GOODDOLLAR_MENTO_BROKER, GOODDOLLAR_MENTO_EXCHANGE_PROVIDER, GOODDOLLAR_RESERVE_COLLATERAL, GOODDOLLAR_TOKEN_ADDRESS, GOODDOLLAR_UBI_SCHEME_ADDRESS, isGoodDollarUsdReservePair, } from "../config/gooddollar.js";
|
|
9
9
|
import { appendCelinaCalldataTag } from "../config/celina-tag.js";
|
|
10
10
|
import { serializePreparedFlow, } from "../types/prepared.js";
|
|
11
|
+
import { CHAIN } from "../config/chains.js";
|
|
11
12
|
import { ALLOWANCE_MAPPING_SLOTS, erc20AllowanceStateOverride, } from "../utils/erc20-allowance-storage.js";
|
|
12
13
|
import { TokenService } from "./token.service.js";
|
|
13
14
|
import { formatUnixDate } from "../utils/format-date.js";
|
|
@@ -368,7 +369,7 @@ export class GoodDollarService {
|
|
|
368
369
|
? `Claim daily GoodDollar UBI (${eligibility.claimableAmountFormatted}) via connected wallet → root ${eligibility.whitelistedRoot}`
|
|
369
370
|
: `Claim daily GoodDollar UBI (${eligibility.claimableAmountFormatted})`;
|
|
370
371
|
const flow = {
|
|
371
|
-
|
|
372
|
+
chainId: CHAIN.id,
|
|
372
373
|
from,
|
|
373
374
|
summary,
|
|
374
375
|
steps: [
|
|
@@ -618,7 +619,7 @@ export class GoodDollarService {
|
|
|
618
619
|
});
|
|
619
620
|
await this.estimateReserveSwapGas(client, from, swapData, tokenInAddr, allowance < amountInWei);
|
|
620
621
|
const flow = {
|
|
621
|
-
|
|
622
|
+
chainId: CHAIN.id,
|
|
622
623
|
from,
|
|
623
624
|
summary: `GoodDollar reserve: ${displayIn} ${resolvedIn.symbol} → ${displayOut} ${resolvedOut.symbol}${recipient !== from ? ` (recipient ${recipient})` : ""}`,
|
|
624
625
|
steps,
|