@manahippo/aptos-wallet-adapter 0.1.10 → 0.1.13
Sign up to get free protection for your applications and to get access to all the features.
- package/README.md +188 -4
- package/dist/WalletAdapters/FewchaWallet.d.ts +2 -2
- package/dist/WalletAdapters/FewchaWallet.d.ts.map +1 -1
- package/dist/WalletAdapters/FewchaWallet.js +5 -7
- package/dist/WalletAdapters/FewchaWallet.js.map +1 -1
- package/dist/WalletAdapters/NightlyWallet.d.ts +42 -0
- package/dist/WalletAdapters/NightlyWallet.d.ts.map +1 -0
- package/dist/WalletAdapters/NightlyWallet.js +201 -0
- package/dist/WalletAdapters/NightlyWallet.js.map +1 -0
- package/dist/WalletAdapters/index.d.ts +1 -0
- package/dist/WalletAdapters/index.d.ts.map +1 -1
- package/dist/WalletAdapters/index.js +1 -0
- package/dist/WalletAdapters/index.js.map +1 -1
- package/dist/config/aptosConstants.d.ts +3 -1
- package/dist/config/aptosConstants.d.ts.map +1 -1
- package/dist/config/aptosConstants.js +3 -1
- package/dist/config/aptosConstants.js.map +1 -1
- package/package.json +3 -3
- package/src/WalletAdapters/FewchaWallet.ts +7 -6
- package/src/WalletAdapters/NightlyWallet.ts +260 -0
- package/src/WalletAdapters/index.ts +1 -0
- package/src/config/aptosConstants.ts +4 -1
package/README.md
CHANGED
@@ -3,24 +3,208 @@
|
|
3
3
|
React `WalletProvider` supporting loads of aptos wallets.
|
4
4
|
|
5
5
|
Supports:
|
6
|
+
|
6
7
|
- [Aptos official wallet](https://github.com/aptos-labs/aptos-core/releases/tag/wallet-v0.1.1)
|
7
8
|
- [Martian wallet](https://martianwallet.xyz/)
|
8
9
|
- [Fewcha wallet](https://fewcha.app/)
|
9
10
|
- [Hippo wallet](https://github.com/hippospace/hippo-wallet)
|
10
11
|
- [Hippo web wallet](https://hippo-wallet-test.web.app/)
|
11
12
|
|
12
|
-
|
13
13
|
Working on (PR welcome):
|
14
14
|
|
15
15
|
- [Nightly wallet](https://chrome.google.com/webstore/detail/nightly/injggoambcadlfkkjcgdfbejanmgfgfm/related?hl=en&authuser=0)
|
16
16
|
- [Pontem wallet](https://pontem.network/)
|
17
17
|
|
18
|
+
# Installation
|
19
|
+
|
20
|
+
with `yarn`
|
21
|
+
|
22
|
+
```
|
23
|
+
yarn add @manahippo/aptos-wallet-adapter
|
24
|
+
```
|
25
|
+
|
26
|
+
with `npm`
|
18
27
|
|
19
|
-
|
28
|
+
```
|
29
|
+
npm install @manahippo/aptos-wallet-adapter
|
30
|
+
```
|
31
|
+
|
32
|
+
# Examples
|
33
|
+
|
34
|
+
## **Frontend Integration**
|
20
35
|
|
21
36
|
Here's an example of how we integrate the adapter into [hippo's frontend](https://github.com/hippospace/hippo-frontend/blob/main/src/Providers.tsx):
|
22
37
|
|
38
|
+
### **Wallet integration**
|
39
|
+
|
40
|
+
Wallets source code [here](https://github.com/hippospace/aptos-wallet-adapter/tree/main/src/WalletAdatpers).
|
41
|
+
|
42
|
+
# Use React Provider
|
43
|
+
|
44
|
+
```
|
45
|
+
import React from "react";
|
46
|
+
import {
|
47
|
+
WalletProvider,
|
48
|
+
HippoWalletAdapter,
|
49
|
+
AptosWalletAdapter,
|
50
|
+
HippoExtensionWalletAdapter,
|
51
|
+
MartianWalletAdapter,
|
52
|
+
FewchaWalletAdapter
|
53
|
+
} from '@manahippo/aptos-wallet-adapter';
|
54
|
+
|
55
|
+
const wallets = () => [
|
56
|
+
new HippoWalletAdapter(),
|
57
|
+
new MartianWalletAdapter(),
|
58
|
+
new AptosWalletAdapter(),
|
59
|
+
new FewchaWalletAdapter(),
|
60
|
+
new HippoExtensionWalletAdapter()
|
61
|
+
];
|
62
|
+
|
63
|
+
const App: React.FC = () => {
|
64
|
+
return (
|
65
|
+
<WalletProvider
|
66
|
+
wallets={wallets}
|
67
|
+
onError={(error: Error) => {
|
68
|
+
console.log('Handle Error Message', error)
|
69
|
+
}}>
|
70
|
+
{/* your website */}
|
71
|
+
</WalletProvider>
|
72
|
+
);
|
73
|
+
};
|
74
|
+
|
75
|
+
export default App;
|
76
|
+
```
|
77
|
+
|
78
|
+
# Web3 Hook
|
79
|
+
|
80
|
+
```
|
81
|
+
import { useWallet } from '@manahippo/aptos-wallet-adapter';
|
82
|
+
|
83
|
+
const { connected, account, ...rest } = useWallet();
|
84
|
+
|
85
|
+
/*
|
86
|
+
** Properties available: **
|
87
|
+
|
88
|
+
wallets: Wallet[]; - Array of wallets
|
89
|
+
wallet: Wallet | null; - Selected wallet
|
90
|
+
account(): AccountKeys | null; - Wallet info: address, publicKey, authKey
|
91
|
+
connected: boolean; - check the website is connected yet
|
92
|
+
connect(walletName: string): Promise<void>; - trigger connect popup
|
93
|
+
disconnect(): Promise<void>; - trigger disconnect action
|
94
|
+
signAndSubmitTransaction(
|
95
|
+
transaction: TransactionPayload
|
96
|
+
): Promise<PendingTransaction>; - function to sign and submit the transaction to chain
|
97
|
+
*/
|
98
|
+
```
|
99
|
+
|
100
|
+
# Connect & Disconnect
|
101
|
+
|
102
|
+
```
|
103
|
+
const { wallets, connect, disconnect, isConnected } = useWallet();
|
104
|
+
const wallet = 'Aptos Wallet' // Name can be found in the adapters files in https://github.com/hippospace/aptos-wallet-adapter/tree/main/src/WalletAdatpers
|
105
|
+
|
106
|
+
if (!isConnected) {
|
107
|
+
return (
|
108
|
+
<Button
|
109
|
+
onClick={() => {
|
110
|
+
connect(wallet);
|
111
|
+
}}
|
112
|
+
>
|
113
|
+
Connect
|
114
|
+
</Button>
|
115
|
+
);
|
116
|
+
} else {
|
117
|
+
return (
|
118
|
+
<Button
|
119
|
+
onClick={() => {
|
120
|
+
disconnect();
|
121
|
+
}}
|
122
|
+
>
|
123
|
+
Disconnect
|
124
|
+
</Button>
|
125
|
+
);
|
126
|
+
}
|
127
|
+
```
|
128
|
+
|
129
|
+
# Hippo Wallet Client
|
130
|
+
|
131
|
+
```
|
132
|
+
import { HippoSwapClient, HippoWalletClient } from '@manahippo/hippo-sdk';
|
133
|
+
import { getParserRepo } from '@manahippo/hippo-sdk';
|
134
|
+
|
135
|
+
export const hippoWalletClient = async (account: ActiveAptosWallet) => {
|
136
|
+
if (!account) return undefined;
|
137
|
+
const { netConf } = readConfig();
|
138
|
+
const repo = getParserRepo();
|
139
|
+
const walletClient = await HippoWalletClient.createInTwoCalls(
|
140
|
+
netConf,
|
141
|
+
aptosClient,
|
142
|
+
repo,
|
143
|
+
account
|
144
|
+
);
|
145
|
+
|
146
|
+
return walletClient;
|
147
|
+
};
|
148
|
+
```
|
149
|
+
|
150
|
+
# Hippo Swap Client
|
151
|
+
|
152
|
+
```
|
153
|
+
import { HippoSwapClient, HippoWalletClient } from '@manahippo/hippo-sdk';
|
154
|
+
import { getParserRepo } from '@manahippo/hippo-sdk/';
|
155
|
+
|
156
|
+
export const hippoSwapClient = async () => {
|
157
|
+
const { netConf } = readConfig();
|
158
|
+
const repo = getParserRepo();
|
159
|
+
const swapClient = await HippoSwapClient.createInOneCall(netConf, aptosClient, repo);
|
160
|
+
|
161
|
+
return swapClient;
|
162
|
+
};
|
163
|
+
```
|
164
|
+
|
165
|
+
# Submit and sign transaction
|
166
|
+
|
167
|
+
**Request faucet**
|
168
|
+
|
169
|
+
```
|
170
|
+
const { signAndSubmitTransaction } = useWallet();
|
171
|
+
|
172
|
+
const payload = await hippoWallet?.makeFaucetMintToPayload(uiAmtUsed, symbol);
|
173
|
+
if (payload) {
|
174
|
+
const result = await signAndSubmitTransaction(payload);
|
175
|
+
if (result) {
|
176
|
+
message.success('Transaction Success');
|
177
|
+
await hippoWallet?.refreshStores();
|
178
|
+
}
|
179
|
+
}
|
180
|
+
```
|
181
|
+
|
182
|
+
**Swap Token**
|
183
|
+
|
184
|
+
```
|
185
|
+
const bestQuote = await hippoSwap.getBestQuoteBySymbols(fromSymbol, toSymbol, uiAmtIn, 3);
|
186
|
+
if (!bestQuote) {
|
187
|
+
throw new Error(`No route exists from ${fromSymbol} to ${toSymbol}`);
|
188
|
+
}
|
189
|
+
const payload = await bestQuote.bestRoute.makeSwapPayload(uiAmtIn, uiAmtOutMin);
|
190
|
+
const result = await signAndSubmitTransaction(payload);
|
191
|
+
if (result) {
|
192
|
+
message.success('Transaction Success');
|
193
|
+
setRefresh(true);
|
194
|
+
}
|
195
|
+
```
|
23
196
|
|
24
|
-
|
197
|
+
**Deposit Transaction**
|
25
198
|
|
26
|
-
|
199
|
+
```
|
200
|
+
const pool = hippoSwap.getDirectPoolsBySymbolsAndPoolType(lhsSymbol, rhsSymbol, poolType);
|
201
|
+
if (pool.length === 0) {
|
202
|
+
throw new Error('Desired pool does not exist');
|
203
|
+
}
|
204
|
+
const payload = await pool[0].makeAddLiquidityPayload(lhsUiAmt, rhsUiAmt);
|
205
|
+
const result = await signAndSubmitTransaction(payload);
|
206
|
+
if (result) {
|
207
|
+
message.success('Transaction Success');
|
208
|
+
setRefresh(true);
|
209
|
+
}
|
210
|
+
```
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { PendingTransaction, SubmitTransactionRequest, TransactionPayload } from 'aptos/dist/api/data-contracts';
|
2
|
-
import {
|
2
|
+
import { Web3ProviderType } from '@fewcha/web3';
|
3
3
|
import { AccountKeys, BaseWalletAdapter, WalletName, WalletReadyState } from './BaseAdapter';
|
4
4
|
export declare const FewchaWalletName: WalletName<"Fewcha Wallet">;
|
5
5
|
export interface FewchaAdapterConfig {
|
@@ -10,7 +10,7 @@ export declare class FewchaWalletAdapter extends BaseWalletAdapter {
|
|
10
10
|
name: WalletName<"Fewcha Wallet">;
|
11
11
|
url: string;
|
12
12
|
icon: string;
|
13
|
-
protected _provider:
|
13
|
+
protected _provider: Web3ProviderType | undefined;
|
14
14
|
protected _timeout: number;
|
15
15
|
protected _readyState: WalletReadyState;
|
16
16
|
protected _connecting: boolean;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"FewchaWallet.d.ts","sourceRoot":"","sources":["../../src/WalletAdapters/FewchaWallet.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAQvC,OAAa,EAAgB,
|
1
|
+
{"version":3,"file":"FewchaWallet.d.ts","sourceRoot":"","sources":["../../src/WalletAdapters/FewchaWallet.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAQvC,OAAa,EAAgB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,EACL,WAAW,EACX,iBAAiB,EAGjB,UAAU,EACV,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAEvB,eAAO,MAAM,gBAAgB,6BAAiD,CAAC;AAK/E,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,mBAAoB,SAAQ,iBAAiB;IACxD,IAAI,8BAAoB;IAExB,GAAG,SAAyB;IAE5B,IAAI,SAAwE;IAE5E,SAAS,CAAC,SAAS,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAGlD,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE3B,SAAS,CAAC,WAAW,EAAE,gBAAgB,CAA8B;IAErE,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC;IAE/B,SAAS,CAAC,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;gBAElB,EAGV,OAAe,EAChB,GAAE,mBAAwB;IAgD3B,IAAI,aAAa,IAAI,WAAW,CAM/B;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,UAAU,IAAI,gBAAgB,CAEjC;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAsBxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAc3B,eAAe,CAAC,WAAW,EAAE,kBAAkB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IA0BnF,wBAAwB,CAAC,WAAW,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAwB7F"}
|
@@ -72,13 +72,11 @@ class FewchaWalletAdapter extends BaseAdapter_1.BaseWalletAdapter {
|
|
72
72
|
}
|
73
73
|
window.addEventListener('aptos#connected', () => __awaiter(this, void 0, void 0, function* () {
|
74
74
|
var _a, _b;
|
75
|
-
const
|
75
|
+
const publicAccount = yield ((_a = this._provider) === null || _a === void 0 ? void 0 : _a.account());
|
76
76
|
const isConnected = yield ((_b = this._provider) === null || _b === void 0 ? void 0 : _b.isConnected());
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
publicKey: publicKey
|
81
|
-
};
|
77
|
+
console.log('loginnnn>>', publicAccount, publicAccount === null || publicAccount === void 0 ? void 0 : publicAccount.publicKey);
|
78
|
+
if ((publicAccount === null || publicAccount === void 0 ? void 0 : publicAccount.publicKey) && isConnected) {
|
79
|
+
this._wallet = Object.assign({ connected: isConnected }, publicAccount);
|
82
80
|
this.emit('connect', this._wallet.publicKey);
|
83
81
|
}
|
84
82
|
}));
|
@@ -176,7 +174,7 @@ class FewchaWalletAdapter extends BaseAdapter_1.BaseWalletAdapter {
|
|
176
174
|
throw new errors_1.WalletNotConnectedError();
|
177
175
|
try {
|
178
176
|
const provider = this._provider;
|
179
|
-
const tx = yield aptosConstants_1.aptosClient.generateTransaction(wallet.
|
177
|
+
const tx = yield aptosConstants_1.aptosClient.generateTransaction(wallet.address, transaction);
|
180
178
|
yield (provider === null || provider === void 0 ? void 0 : provider.signAndSubmitTransaction(tx));
|
181
179
|
const promise = yield new Promise((resolve, reject) => {
|
182
180
|
this.once('success', resolve);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"FewchaWallet.js","sourceRoot":"","sources":["../../src/WalletAdapters/FewchaWallet.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,6DAAsE;AACtE,sDAKmC;AACnC,
|
1
|
+
{"version":3,"file":"FewchaWallet.js","sourceRoot":"","sources":["../../src/WalletAdapters/FewchaWallet.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import { PendingTransaction, SubmitTransactionRequest, TransactionPayload } from 'aptos/dist/api/data-contracts';
|
2
|
+
import { AccountKeys, BaseWalletAdapter, WalletName, WalletReadyState } from './BaseAdapter';
|
3
|
+
interface INightlyWallet {
|
4
|
+
requestId: number;
|
5
|
+
connect: (onDisconnect?: () => void, eager?: boolean) => Promise<any>;
|
6
|
+
account: () => Promise<string>;
|
7
|
+
isConnected: () => Promise<boolean>;
|
8
|
+
signAndSubmitTransaction(transaction: any): Promise<void>;
|
9
|
+
signTransaction(transaction: any): Promise<any>;
|
10
|
+
disconnect(): Promise<void>;
|
11
|
+
}
|
12
|
+
export declare const NightlyWalletName: WalletName<"Nightly Wallet">;
|
13
|
+
export interface NightlyWalletAdapterConfig {
|
14
|
+
provider?: INightlyWallet;
|
15
|
+
timeout?: number;
|
16
|
+
}
|
17
|
+
export declare class NightlyWalletAdapter extends BaseWalletAdapter {
|
18
|
+
name: WalletName<"Nightly Wallet">;
|
19
|
+
url: string;
|
20
|
+
icon: string;
|
21
|
+
protected _provider: INightlyWallet | undefined;
|
22
|
+
protected _timeout: number;
|
23
|
+
protected _readyState: WalletReadyState;
|
24
|
+
protected _connecting: boolean;
|
25
|
+
protected _wallet: {
|
26
|
+
publicKey?: string;
|
27
|
+
address?: string;
|
28
|
+
authKey?: string;
|
29
|
+
isConnected: boolean;
|
30
|
+
} | null;
|
31
|
+
constructor({ timeout }?: NightlyWalletAdapterConfig);
|
32
|
+
get publicAccount(): AccountKeys;
|
33
|
+
get connecting(): boolean;
|
34
|
+
get connected(): boolean;
|
35
|
+
get readyState(): WalletReadyState;
|
36
|
+
connect(): Promise<void>;
|
37
|
+
disconnect(): Promise<void>;
|
38
|
+
signTransaction(transaction: TransactionPayload): Promise<SubmitTransactionRequest>;
|
39
|
+
signAndSubmitTransaction(tempTransaction: TransactionPayload): Promise<PendingTransaction>;
|
40
|
+
}
|
41
|
+
export {};
|
42
|
+
//# sourceMappingURL=NightlyWallet.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"NightlyWallet.d.ts","sourceRoot":"","sources":["../../src/WalletAdapters/NightlyWallet.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAElB,wBAAwB,EACxB,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAevC,OAAO,EACL,WAAW,EAGX,iBAAiB,EAGjB,UAAU,EACV,gBAAgB,EACjB,MAAM,eAAe,CAAC;AAEvB,UAAU,cAAc;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;IACtE,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,WAAW,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACpC,wBAAwB,CAAC,WAAW,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1D,eAAe,CAAC,WAAW,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAChD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAUD,eAAO,MAAM,iBAAiB,8BAAmD,CAAC;AAElF,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,oBAAqB,SAAQ,iBAAiB;IACzD,IAAI,+BAAqB;IAEzB,GAAG,SAC6G;IAEhH,IAAI,SAC4J;IAEhK,SAAS,CAAC,SAAS,EAAE,cAAc,GAAG,SAAS,CAAC;IAGhD,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC;IAE3B,SAAS,CAAC,WAAW,EAAE,gBAAgB,CAGJ;IAEnC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC;IAE/B,SAAS,CAAC,OAAO,EAAE;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,OAAO,CAAC;KACtB,GAAG,IAAI,CAAC;gBAEG,EAGV,OAAe,EAChB,GAAE,0BAA+B;IAqBlC,IAAI,aAAa,IAAI,WAAW,CAM/B;IAED,IAAI,UAAU,IAAI,OAAO,CAExB;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,UAAU,IAAI,gBAAgB,CAEjC;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IA+BxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B,eAAe,CAAC,WAAW,EAAE,kBAAkB,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAsBnF,wBAAwB,CAAC,eAAe,EAAE,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA2DjG"}
|
@@ -0,0 +1,201 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
12
|
+
exports.NightlyWalletAdapter = exports.NightlyWalletName = void 0;
|
13
|
+
const aptos_1 = require("aptos");
|
14
|
+
const aptos_types_1 = require("aptos/dist/transaction_builder/aptos_types");
|
15
|
+
const bcs_1 = require("aptos/dist/transaction_builder/bcs");
|
16
|
+
const aptosConstants_1 = require("../config/aptosConstants");
|
17
|
+
const errors_1 = require("../WalletProviders/errors");
|
18
|
+
const BaseAdapter_1 = require("./BaseAdapter");
|
19
|
+
exports.NightlyWalletName = 'Nightly Wallet';
|
20
|
+
class NightlyWalletAdapter extends BaseAdapter_1.BaseWalletAdapter {
|
21
|
+
constructor({
|
22
|
+
// provider,
|
23
|
+
// network = WalletAdapterNetwork.Mainnet,
|
24
|
+
timeout = 10000 } = {}) {
|
25
|
+
var _a;
|
26
|
+
super();
|
27
|
+
this.name = exports.NightlyWalletName;
|
28
|
+
this.url = 'https://chrome.google.com/webstore/detail/nightly/injggoambcadlfkkjcgdfbejanmgfgfm/related?hl=en&authuser=0';
|
29
|
+
this.icon = 'https://lh3.googleusercontent.com/Ha38j09tA-70EiZ17pculpj1KUKDP07ytX4DJx_fumDfod_X2nRTiUg2Y9tDwRBs5jDj-gu52hwaPYVPgq1xAuFA1Q=w128-h128-e365-rj-sc0x00ffffff';
|
30
|
+
this._readyState = typeof window === 'undefined' || typeof document === 'undefined'
|
31
|
+
? BaseAdapter_1.WalletReadyState.Unsupported
|
32
|
+
: BaseAdapter_1.WalletReadyState.NotDetected;
|
33
|
+
this._provider = (_a = window.nightly) === null || _a === void 0 ? void 0 : _a.aptos;
|
34
|
+
// this._network = network;
|
35
|
+
this._timeout = timeout;
|
36
|
+
this._connecting = false;
|
37
|
+
this._wallet = null;
|
38
|
+
if (this._readyState !== BaseAdapter_1.WalletReadyState.Unsupported) {
|
39
|
+
(0, BaseAdapter_1.scopePollingDetectionStrategy)(() => {
|
40
|
+
var _a;
|
41
|
+
if ((_a = window.nightly) === null || _a === void 0 ? void 0 : _a.aptos) {
|
42
|
+
this._readyState = BaseAdapter_1.WalletReadyState.Installed;
|
43
|
+
this.emit('readyStateChange', this._readyState);
|
44
|
+
return true;
|
45
|
+
}
|
46
|
+
return false;
|
47
|
+
});
|
48
|
+
}
|
49
|
+
}
|
50
|
+
get publicAccount() {
|
51
|
+
var _a, _b, _c;
|
52
|
+
return {
|
53
|
+
publicKey: ((_a = this._wallet) === null || _a === void 0 ? void 0 : _a.publicKey) || null,
|
54
|
+
address: ((_b = this._wallet) === null || _b === void 0 ? void 0 : _b.address) || null,
|
55
|
+
authKey: ((_c = this._wallet) === null || _c === void 0 ? void 0 : _c.authKey) || null
|
56
|
+
};
|
57
|
+
}
|
58
|
+
get connecting() {
|
59
|
+
return this._connecting;
|
60
|
+
}
|
61
|
+
get connected() {
|
62
|
+
var _a;
|
63
|
+
return !!((_a = this._wallet) === null || _a === void 0 ? void 0 : _a.isConnected);
|
64
|
+
}
|
65
|
+
get readyState() {
|
66
|
+
return this._readyState;
|
67
|
+
}
|
68
|
+
connect() {
|
69
|
+
var _a;
|
70
|
+
return __awaiter(this, void 0, void 0, function* () {
|
71
|
+
try {
|
72
|
+
if (this.connected || this.connecting)
|
73
|
+
return;
|
74
|
+
if (!(this._readyState === BaseAdapter_1.WalletReadyState.Loadable ||
|
75
|
+
this._readyState === BaseAdapter_1.WalletReadyState.Installed))
|
76
|
+
throw new errors_1.WalletNotReadyError();
|
77
|
+
this._connecting = true;
|
78
|
+
const provider = this._provider || ((_a = window.nightly) === null || _a === void 0 ? void 0 : _a.aptos);
|
79
|
+
const publicKey = yield (provider === null || provider === void 0 ? void 0 : provider.connect(() => {
|
80
|
+
console.log('Trigger disconnect Aptos');
|
81
|
+
}));
|
82
|
+
this._wallet = {
|
83
|
+
publicKey: publicKey === null || publicKey === void 0 ? void 0 : publicKey.asString(),
|
84
|
+
address: publicKey === null || publicKey === void 0 ? void 0 : publicKey.address(),
|
85
|
+
isConnected: true
|
86
|
+
};
|
87
|
+
this.emit('connect', this._wallet.publicKey || '');
|
88
|
+
}
|
89
|
+
catch (error) {
|
90
|
+
this.emit('error', error);
|
91
|
+
throw error;
|
92
|
+
}
|
93
|
+
finally {
|
94
|
+
this._connecting = false;
|
95
|
+
}
|
96
|
+
});
|
97
|
+
}
|
98
|
+
disconnect() {
|
99
|
+
var _a;
|
100
|
+
return __awaiter(this, void 0, void 0, function* () {
|
101
|
+
const wallet = this._wallet;
|
102
|
+
if (wallet) {
|
103
|
+
this._wallet = null;
|
104
|
+
try {
|
105
|
+
const provider = this._provider || ((_a = window.nightly) === null || _a === void 0 ? void 0 : _a.aptos);
|
106
|
+
yield (provider === null || provider === void 0 ? void 0 : provider.disconnect());
|
107
|
+
}
|
108
|
+
catch (error) {
|
109
|
+
this.emit('error', new errors_1.WalletDisconnectionError(error === null || error === void 0 ? void 0 : error.message, error));
|
110
|
+
}
|
111
|
+
}
|
112
|
+
this.emit('disconnect');
|
113
|
+
});
|
114
|
+
}
|
115
|
+
signTransaction(transaction) {
|
116
|
+
var _a;
|
117
|
+
return __awaiter(this, void 0, void 0, function* () {
|
118
|
+
try {
|
119
|
+
const wallet = this._wallet;
|
120
|
+
if (!wallet)
|
121
|
+
throw new errors_1.WalletNotConnectedError();
|
122
|
+
try {
|
123
|
+
const provider = this._provider || ((_a = window.nightly) === null || _a === void 0 ? void 0 : _a.aptos);
|
124
|
+
const response = yield (provider === null || provider === void 0 ? void 0 : provider.signTransaction(transaction));
|
125
|
+
if (response) {
|
126
|
+
return response;
|
127
|
+
}
|
128
|
+
else {
|
129
|
+
throw new Error('Transaction failed');
|
130
|
+
}
|
131
|
+
}
|
132
|
+
catch (error) {
|
133
|
+
throw new errors_1.WalletSignTransactionError(error === null || error === void 0 ? void 0 : error.message, error);
|
134
|
+
}
|
135
|
+
}
|
136
|
+
catch (error) {
|
137
|
+
this.emit('error', error);
|
138
|
+
throw error;
|
139
|
+
}
|
140
|
+
});
|
141
|
+
}
|
142
|
+
signAndSubmitTransaction(tempTransaction) {
|
143
|
+
var _a;
|
144
|
+
return __awaiter(this, void 0, void 0, function* () {
|
145
|
+
try {
|
146
|
+
const wallet = this._wallet;
|
147
|
+
if (!wallet)
|
148
|
+
throw new errors_1.WalletNotConnectedError();
|
149
|
+
try {
|
150
|
+
const provider = this._provider || ((_a = window.nightly) === null || _a === void 0 ? void 0 : _a.aptos);
|
151
|
+
const client = aptosConstants_1.aptosClient;
|
152
|
+
const [{ sequence_number: sequnceNumber }, chainId] = yield Promise.all([
|
153
|
+
client.getAccount(wallet.address || ''),
|
154
|
+
client.getChainId()
|
155
|
+
]);
|
156
|
+
const transaction = tempTransaction;
|
157
|
+
const [txAddress, module, funcName] = transaction.function.split('::');
|
158
|
+
const token = new aptos_types_1.TypeTagStruct(aptos_types_1.StructTag.fromString(transaction.type_arguments[0]));
|
159
|
+
const argts = transaction.arguments.map((arg) => {
|
160
|
+
if (typeof arg === 'string') {
|
161
|
+
return (0, bcs_1.bcsSerializeUint64)(parseInt(arg));
|
162
|
+
}
|
163
|
+
else if (typeof arg === 'boolean') {
|
164
|
+
const serializer = new aptos_1.BCS.Serializer();
|
165
|
+
serializer.serializeBool(arg);
|
166
|
+
return serializer.getBytes();
|
167
|
+
}
|
168
|
+
else if (typeof arg === 'number') {
|
169
|
+
return (0, bcs_1.bcsSerializeUint64)(arg);
|
170
|
+
}
|
171
|
+
else {
|
172
|
+
return arg;
|
173
|
+
}
|
174
|
+
});
|
175
|
+
console.log('txnpayload>>', transaction.arguments, argts);
|
176
|
+
const txnPayload = new aptos_types_1.TransactionPayloadScriptFunction(aptos_types_1.ScriptFunction.natural(`${txAddress}::${module}`, funcName, [token], [...argts]));
|
177
|
+
const rawTxn = new aptos_1.TxnBuilderTypes.RawTransaction(aptos_1.TxnBuilderTypes.AccountAddress.fromHex(wallet.address || ''), BigInt(sequnceNumber), txnPayload, BigInt(1000), BigInt(1), BigInt(Math.floor(Date.now() / 1000) + 10), new aptos_1.TxnBuilderTypes.ChainId(chainId));
|
178
|
+
const bcsTxn = yield (provider === null || provider === void 0 ? void 0 : provider.signTransaction(rawTxn));
|
179
|
+
const response = yield aptosConstants_1.aptosClient.submitSignedBCSTransaction(bcsTxn);
|
180
|
+
if (response) {
|
181
|
+
console.log('tx response>>>', response);
|
182
|
+
return response;
|
183
|
+
}
|
184
|
+
else {
|
185
|
+
throw new Error('Transaction failed');
|
186
|
+
}
|
187
|
+
}
|
188
|
+
catch (error) {
|
189
|
+
const errMsg = error instanceof Error ? error.message : error.response.data.message;
|
190
|
+
throw new errors_1.WalletSignTransactionError(errMsg);
|
191
|
+
}
|
192
|
+
}
|
193
|
+
catch (error) {
|
194
|
+
this.emit('error', error);
|
195
|
+
throw error;
|
196
|
+
}
|
197
|
+
});
|
198
|
+
}
|
199
|
+
}
|
200
|
+
exports.NightlyWalletAdapter = NightlyWalletAdapter;
|
201
|
+
//# sourceMappingURL=NightlyWallet.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"NightlyWallet.js","sourceRoot":"","sources":["../../src/WalletAdapters/NightlyWallet.ts"],"names":[],"mappings":"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"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/WalletAdapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC"}
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/WalletAdapters/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC"}
|
@@ -21,4 +21,5 @@ __exportStar(require("./HippoWallet"), exports);
|
|
21
21
|
__exportStar(require("./MartianWallet"), exports);
|
22
22
|
__exportStar(require("./MultiMaskWallet"), exports);
|
23
23
|
__exportStar(require("./FewchaWallet"), exports);
|
24
|
+
__exportStar(require("./NightlyWallet"), exports);
|
24
25
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/WalletAdapters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,gDAA8B;AAC9B,yDAAuC;AACvC,gDAA8B;AAC9B,kDAAgC;AAChC,oDAAkC;AAClC,iDAA+B"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/WalletAdapters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,gDAA8B;AAC9B,yDAAuC;AACvC,gDAA8B;AAC9B,kDAAgC;AAChC,oDAAkC;AAClC,iDAA+B;AAC/B,kDAAgC"}
|
@@ -1,9 +1,11 @@
|
|
1
|
-
import { AptosClient } from 'aptos';
|
1
|
+
import { AptosClient, FaucetClient } from 'aptos';
|
2
2
|
export declare const WEBWALLET_URL = "https://hippo-wallet-test.web.app";
|
3
3
|
export declare const LOCAL_NODE_URL = "http://127.0.0.1:8080";
|
4
4
|
export declare const DEVNET_NODE_URL = "https://fullnode.devnet.aptoslabs.com";
|
5
5
|
export declare const LOCAL_FAUCET_URL = "http://127.0.0.1:8000";
|
6
6
|
export declare const DEVNET_FAUCET_URL = "https://faucet.devnet.aptoslabs.com";
|
7
7
|
export declare const NODE_URL = "https://fullnode.devnet.aptoslabs.com";
|
8
|
+
export declare const FAUCET_URL = "https://faucet.devnet.aptoslabs.com";
|
8
9
|
export declare const aptosClient: AptosClient;
|
10
|
+
export declare const faucetClient: FaucetClient;
|
9
11
|
//# sourceMappingURL=aptosConstants.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"aptosConstants.d.ts","sourceRoot":"","sources":["../../src/config/aptosConstants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;
|
1
|
+
{"version":3,"file":"aptosConstants.d.ts","sourceRoot":"","sources":["../../src/config/aptosConstants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAElD,eAAO,MAAM,aAAa,sCAAsC,CAAC;AAGjE,eAAO,MAAM,cAAc,0BAA0B,CAAC;AACtD,eAAO,MAAM,eAAe,0CAA0C,CAAC;AACvE,eAAO,MAAM,gBAAgB,0BAA0B,CAAC;AACxD,eAAO,MAAM,iBAAiB,wCAAwC,CAAC;AAEvE,eAAO,MAAM,QAAQ,0CAAkB,CAAC;AACxC,eAAO,MAAM,UAAU,wCAAoB,CAAC;AAE5C,eAAO,MAAM,WAAW,aAA4B,CAAC;AACrD,eAAO,MAAM,YAAY,cAAyC,CAAC"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.aptosClient = exports.NODE_URL = exports.DEVNET_FAUCET_URL = exports.LOCAL_FAUCET_URL = exports.DEVNET_NODE_URL = exports.LOCAL_NODE_URL = exports.WEBWALLET_URL = void 0;
|
3
|
+
exports.faucetClient = exports.aptosClient = exports.FAUCET_URL = exports.NODE_URL = exports.DEVNET_FAUCET_URL = exports.LOCAL_FAUCET_URL = exports.DEVNET_NODE_URL = exports.LOCAL_NODE_URL = exports.WEBWALLET_URL = void 0;
|
4
4
|
const aptos_1 = require("aptos");
|
5
5
|
exports.WEBWALLET_URL = 'https://hippo-wallet-test.web.app';
|
6
6
|
// export const WEBWALLET_URL = 'http://localhost:3030';
|
@@ -9,5 +9,7 @@ exports.DEVNET_NODE_URL = 'https://fullnode.devnet.aptoslabs.com';
|
|
9
9
|
exports.LOCAL_FAUCET_URL = 'http://127.0.0.1:8000';
|
10
10
|
exports.DEVNET_FAUCET_URL = 'https://faucet.devnet.aptoslabs.com';
|
11
11
|
exports.NODE_URL = exports.DEVNET_NODE_URL;
|
12
|
+
exports.FAUCET_URL = exports.DEVNET_FAUCET_URL;
|
12
13
|
exports.aptosClient = new aptos_1.AptosClient(exports.NODE_URL);
|
14
|
+
exports.faucetClient = new aptos_1.FaucetClient(exports.NODE_URL, exports.FAUCET_URL);
|
13
15
|
//# sourceMappingURL=aptosConstants.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"aptosConstants.js","sourceRoot":"","sources":["../../src/config/aptosConstants.ts"],"names":[],"mappings":";;;AAAA,
|
1
|
+
{"version":3,"file":"aptosConstants.js","sourceRoot":"","sources":["../../src/config/aptosConstants.ts"],"names":[],"mappings":";;;AAAA,iCAAkD;AAErC,QAAA,aAAa,GAAG,mCAAmC,CAAC;AACjE,wDAAwD;AAE3C,QAAA,cAAc,GAAG,uBAAuB,CAAC;AACzC,QAAA,eAAe,GAAG,uCAAuC,CAAC;AAC1D,QAAA,gBAAgB,GAAG,uBAAuB,CAAC;AAC3C,QAAA,iBAAiB,GAAG,qCAAqC,CAAC;AAE1D,QAAA,QAAQ,GAAG,uBAAe,CAAC;AAC3B,QAAA,UAAU,GAAG,yBAAiB,CAAC;AAE/B,QAAA,WAAW,GAAG,IAAI,mBAAW,CAAC,gBAAQ,CAAC,CAAC;AACxC,QAAA,YAAY,GAAG,IAAI,oBAAY,CAAC,gBAAQ,EAAE,kBAAU,CAAC,CAAC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@manahippo/aptos-wallet-adapter",
|
3
|
-
"version": "0.1.
|
3
|
+
"version": "0.1.13",
|
4
4
|
"main": "dist/index.js",
|
5
5
|
"typings": "dist/index.d.ts",
|
6
6
|
"files": [
|
@@ -18,7 +18,7 @@
|
|
18
18
|
"@types/jest": "^27.0.1",
|
19
19
|
"@types/node": "^16.7.13",
|
20
20
|
"@types/react": "^18.0.0",
|
21
|
-
"aptos": "^
|
21
|
+
"aptos": "^1.2.0",
|
22
22
|
"eslint-config-airbnb-typescript": "^17.0.0",
|
23
23
|
"eslint-config-prettier": "^8.5.0",
|
24
24
|
"eslint-plugin-prettier": "^4.2.1",
|
@@ -29,6 +29,6 @@
|
|
29
29
|
"typescript": "^4.7.4"
|
30
30
|
},
|
31
31
|
"dependencies": {
|
32
|
-
"@fewcha/web3": "^0.
|
32
|
+
"@fewcha/web3": "^0.1.4"
|
33
33
|
}
|
34
34
|
}
|
@@ -10,7 +10,7 @@ import {
|
|
10
10
|
WalletNotReadyError,
|
11
11
|
WalletSignTransactionError
|
12
12
|
} from '../WalletProviders/errors';
|
13
|
-
import Web3, { Web3Provider,
|
13
|
+
import Web3, { Web3Provider, Web3ProviderType } from '@fewcha/web3';
|
14
14
|
import {
|
15
15
|
AccountKeys,
|
16
16
|
BaseWalletAdapter,
|
@@ -38,7 +38,7 @@ export class FewchaWalletAdapter extends BaseWalletAdapter {
|
|
38
38
|
|
39
39
|
icon = 'https://miro.medium.com/fit/c/176/176/1*a0WaY-q7gjCRiuryRG6TkQ.png';
|
40
40
|
|
41
|
-
protected _provider:
|
41
|
+
protected _provider: Web3ProviderType | undefined;
|
42
42
|
|
43
43
|
// protected _network: WalletAdapterNetwork;
|
44
44
|
protected _timeout: number;
|
@@ -80,12 +80,13 @@ export class FewchaWalletAdapter extends BaseWalletAdapter {
|
|
80
80
|
}
|
81
81
|
|
82
82
|
window.addEventListener('aptos#connected', async () => {
|
83
|
-
const
|
83
|
+
const publicAccount = await this._provider?.account();
|
84
84
|
const isConnected = await this._provider?.isConnected();
|
85
|
-
|
85
|
+
console.log('loginnnn>>', publicAccount, publicAccount?.publicKey);
|
86
|
+
if (publicAccount?.publicKey && isConnected) {
|
86
87
|
this._wallet = {
|
87
88
|
connected: isConnected,
|
88
|
-
|
89
|
+
...publicAccount
|
89
90
|
};
|
90
91
|
this.emit('connect', this._wallet.publicKey);
|
91
92
|
}
|
@@ -189,7 +190,7 @@ export class FewchaWalletAdapter extends BaseWalletAdapter {
|
|
189
190
|
|
190
191
|
try {
|
191
192
|
const provider = this._provider;
|
192
|
-
const tx = await aptosClient.generateTransaction(wallet.
|
193
|
+
const tx = await aptosClient.generateTransaction(wallet.address, transaction);
|
193
194
|
await provider?.signAndSubmitTransaction(tx);
|
194
195
|
|
195
196
|
const promise = await new Promise((resolve, reject) => {
|
@@ -0,0 +1,260 @@
|
|
1
|
+
import { TxnBuilderTypes, BCS } from 'aptos';
|
2
|
+
import {
|
3
|
+
PendingTransaction,
|
4
|
+
ScriptFunctionPayload,
|
5
|
+
SubmitTransactionRequest,
|
6
|
+
TransactionPayload
|
7
|
+
} from 'aptos/dist/api/data-contracts';
|
8
|
+
import {
|
9
|
+
ScriptFunction,
|
10
|
+
StructTag,
|
11
|
+
TransactionPayloadScriptFunction,
|
12
|
+
TypeTagStruct
|
13
|
+
} from 'aptos/dist/transaction_builder/aptos_types';
|
14
|
+
import { bcsSerializeUint64, bcsToBytes, Seq } from 'aptos/dist/transaction_builder/bcs';
|
15
|
+
import { aptosClient } from '../config/aptosConstants';
|
16
|
+
import {
|
17
|
+
WalletDisconnectionError,
|
18
|
+
WalletNotConnectedError,
|
19
|
+
WalletNotReadyError,
|
20
|
+
WalletSignTransactionError
|
21
|
+
} from '../WalletProviders/errors';
|
22
|
+
import {
|
23
|
+
AccountKeys,
|
24
|
+
Address,
|
25
|
+
AuthKey,
|
26
|
+
BaseWalletAdapter,
|
27
|
+
PublicKey,
|
28
|
+
scopePollingDetectionStrategy,
|
29
|
+
WalletName,
|
30
|
+
WalletReadyState
|
31
|
+
} from './BaseAdapter';
|
32
|
+
|
33
|
+
interface INightlyWallet {
|
34
|
+
requestId: number;
|
35
|
+
connect: (onDisconnect?: () => void, eager?: boolean) => Promise<any>;
|
36
|
+
account: () => Promise<string>;
|
37
|
+
isConnected: () => Promise<boolean>;
|
38
|
+
signAndSubmitTransaction(transaction: any): Promise<void>;
|
39
|
+
signTransaction(transaction: any): Promise<any>;
|
40
|
+
disconnect(): Promise<void>;
|
41
|
+
}
|
42
|
+
|
43
|
+
interface NightlyWindow extends Window {
|
44
|
+
nightly?: {
|
45
|
+
aptos: INightlyWallet;
|
46
|
+
};
|
47
|
+
}
|
48
|
+
|
49
|
+
declare const window: NightlyWindow;
|
50
|
+
|
51
|
+
export const NightlyWalletName = 'Nightly Wallet' as WalletName<'Nightly Wallet'>;
|
52
|
+
|
53
|
+
export interface NightlyWalletAdapterConfig {
|
54
|
+
provider?: INightlyWallet;
|
55
|
+
// network?: WalletAdapterNetwork;
|
56
|
+
timeout?: number;
|
57
|
+
}
|
58
|
+
|
59
|
+
export class NightlyWalletAdapter extends BaseWalletAdapter {
|
60
|
+
name = NightlyWalletName;
|
61
|
+
|
62
|
+
url =
|
63
|
+
'https://chrome.google.com/webstore/detail/nightly/injggoambcadlfkkjcgdfbejanmgfgfm/related?hl=en&authuser=0';
|
64
|
+
|
65
|
+
icon =
|
66
|
+
'https://lh3.googleusercontent.com/Ha38j09tA-70EiZ17pculpj1KUKDP07ytX4DJx_fumDfod_X2nRTiUg2Y9tDwRBs5jDj-gu52hwaPYVPgq1xAuFA1Q=w128-h128-e365-rj-sc0x00ffffff';
|
67
|
+
|
68
|
+
protected _provider: INightlyWallet | undefined;
|
69
|
+
|
70
|
+
// protected _network: WalletAdapterNetwork;
|
71
|
+
protected _timeout: number;
|
72
|
+
|
73
|
+
protected _readyState: WalletReadyState =
|
74
|
+
typeof window === 'undefined' || typeof document === 'undefined'
|
75
|
+
? WalletReadyState.Unsupported
|
76
|
+
: WalletReadyState.NotDetected;
|
77
|
+
|
78
|
+
protected _connecting: boolean;
|
79
|
+
|
80
|
+
protected _wallet: {
|
81
|
+
publicKey?: string;
|
82
|
+
address?: string;
|
83
|
+
authKey?: string;
|
84
|
+
isConnected: boolean;
|
85
|
+
} | null;
|
86
|
+
|
87
|
+
constructor({
|
88
|
+
// provider,
|
89
|
+
// network = WalletAdapterNetwork.Mainnet,
|
90
|
+
timeout = 10000
|
91
|
+
}: NightlyWalletAdapterConfig = {}) {
|
92
|
+
super();
|
93
|
+
|
94
|
+
this._provider = window.nightly?.aptos;
|
95
|
+
// this._network = network;
|
96
|
+
this._timeout = timeout;
|
97
|
+
this._connecting = false;
|
98
|
+
this._wallet = null;
|
99
|
+
|
100
|
+
if (this._readyState !== WalletReadyState.Unsupported) {
|
101
|
+
scopePollingDetectionStrategy(() => {
|
102
|
+
if (window.nightly?.aptos) {
|
103
|
+
this._readyState = WalletReadyState.Installed;
|
104
|
+
this.emit('readyStateChange', this._readyState);
|
105
|
+
return true;
|
106
|
+
}
|
107
|
+
return false;
|
108
|
+
});
|
109
|
+
}
|
110
|
+
}
|
111
|
+
|
112
|
+
get publicAccount(): AccountKeys {
|
113
|
+
return {
|
114
|
+
publicKey: this._wallet?.publicKey || null,
|
115
|
+
address: this._wallet?.address || null,
|
116
|
+
authKey: this._wallet?.authKey || null
|
117
|
+
};
|
118
|
+
}
|
119
|
+
|
120
|
+
get connecting(): boolean {
|
121
|
+
return this._connecting;
|
122
|
+
}
|
123
|
+
|
124
|
+
get connected(): boolean {
|
125
|
+
return !!this._wallet?.isConnected;
|
126
|
+
}
|
127
|
+
|
128
|
+
get readyState(): WalletReadyState {
|
129
|
+
return this._readyState;
|
130
|
+
}
|
131
|
+
|
132
|
+
async connect(): Promise<void> {
|
133
|
+
try {
|
134
|
+
if (this.connected || this.connecting) return;
|
135
|
+
if (
|
136
|
+
!(
|
137
|
+
this._readyState === WalletReadyState.Loadable ||
|
138
|
+
this._readyState === WalletReadyState.Installed
|
139
|
+
)
|
140
|
+
)
|
141
|
+
throw new WalletNotReadyError();
|
142
|
+
this._connecting = true;
|
143
|
+
|
144
|
+
const provider = this._provider || window.nightly?.aptos;
|
145
|
+
const publicKey = await provider?.connect(() => {
|
146
|
+
console.log('Trigger disconnect Aptos');
|
147
|
+
});
|
148
|
+
this._wallet = {
|
149
|
+
publicKey: publicKey?.asString(),
|
150
|
+
address: publicKey?.address(),
|
151
|
+
isConnected: true
|
152
|
+
};
|
153
|
+
|
154
|
+
this.emit('connect', this._wallet.publicKey || '');
|
155
|
+
} catch (error: any) {
|
156
|
+
this.emit('error', error);
|
157
|
+
throw error;
|
158
|
+
} finally {
|
159
|
+
this._connecting = false;
|
160
|
+
}
|
161
|
+
}
|
162
|
+
|
163
|
+
async disconnect(): Promise<void> {
|
164
|
+
const wallet = this._wallet;
|
165
|
+
if (wallet) {
|
166
|
+
this._wallet = null;
|
167
|
+
|
168
|
+
try {
|
169
|
+
const provider = this._provider || window.nightly?.aptos;
|
170
|
+
await provider?.disconnect();
|
171
|
+
} catch (error: any) {
|
172
|
+
this.emit('error', new WalletDisconnectionError(error?.message, error));
|
173
|
+
}
|
174
|
+
}
|
175
|
+
|
176
|
+
this.emit('disconnect');
|
177
|
+
}
|
178
|
+
|
179
|
+
async signTransaction(transaction: TransactionPayload): Promise<SubmitTransactionRequest> {
|
180
|
+
try {
|
181
|
+
const wallet = this._wallet;
|
182
|
+
if (!wallet) throw new WalletNotConnectedError();
|
183
|
+
|
184
|
+
try {
|
185
|
+
const provider = this._provider || window.nightly?.aptos;
|
186
|
+
const response = await provider?.signTransaction(transaction);
|
187
|
+
if (response) {
|
188
|
+
return response;
|
189
|
+
} else {
|
190
|
+
throw new Error('Transaction failed');
|
191
|
+
}
|
192
|
+
} catch (error: any) {
|
193
|
+
throw new WalletSignTransactionError(error?.message, error);
|
194
|
+
}
|
195
|
+
} catch (error: any) {
|
196
|
+
this.emit('error', error);
|
197
|
+
throw error;
|
198
|
+
}
|
199
|
+
}
|
200
|
+
|
201
|
+
async signAndSubmitTransaction(tempTransaction: TransactionPayload): Promise<PendingTransaction> {
|
202
|
+
try {
|
203
|
+
const wallet = this._wallet;
|
204
|
+
if (!wallet) throw new WalletNotConnectedError();
|
205
|
+
|
206
|
+
try {
|
207
|
+
const provider = this._provider || window.nightly?.aptos;
|
208
|
+
const client = aptosClient;
|
209
|
+
const [{ sequence_number: sequnceNumber }, chainId] = await Promise.all([
|
210
|
+
client.getAccount(wallet.address || ''),
|
211
|
+
client.getChainId()
|
212
|
+
]);
|
213
|
+
const transaction = tempTransaction as ScriptFunctionPayload;
|
214
|
+
const [txAddress, module, funcName] = transaction.function.split('::');
|
215
|
+
const token = new TypeTagStruct(StructTag.fromString(transaction.type_arguments[0]));
|
216
|
+
const argts = transaction.arguments.map((arg) => {
|
217
|
+
if (typeof arg === 'string') {
|
218
|
+
return bcsSerializeUint64(parseInt(arg));
|
219
|
+
} else if (typeof arg === 'boolean') {
|
220
|
+
const serializer = new BCS.Serializer();
|
221
|
+
serializer.serializeBool(arg);
|
222
|
+
return serializer.getBytes();
|
223
|
+
} else if (typeof arg === 'number') {
|
224
|
+
return bcsSerializeUint64(arg);
|
225
|
+
} else {
|
226
|
+
return arg;
|
227
|
+
}
|
228
|
+
});
|
229
|
+
console.log('txnpayload>>', transaction.arguments, argts);
|
230
|
+
const txnPayload = new TransactionPayloadScriptFunction(
|
231
|
+
ScriptFunction.natural(`${txAddress}::${module}`, funcName, [token], [...argts])
|
232
|
+
);
|
233
|
+
|
234
|
+
const rawTxn = new TxnBuilderTypes.RawTransaction(
|
235
|
+
TxnBuilderTypes.AccountAddress.fromHex(wallet.address || ''),
|
236
|
+
BigInt(sequnceNumber),
|
237
|
+
txnPayload,
|
238
|
+
BigInt(1000),
|
239
|
+
BigInt(1),
|
240
|
+
BigInt(Math.floor(Date.now() / 1000) + 10),
|
241
|
+
new TxnBuilderTypes.ChainId(chainId)
|
242
|
+
);
|
243
|
+
const bcsTxn = await provider?.signTransaction(rawTxn);
|
244
|
+
const response = await aptosClient.submitSignedBCSTransaction(bcsTxn);
|
245
|
+
if (response) {
|
246
|
+
console.log('tx response>>>', response);
|
247
|
+
return response;
|
248
|
+
} else {
|
249
|
+
throw new Error('Transaction failed');
|
250
|
+
}
|
251
|
+
} catch (error: any) {
|
252
|
+
const errMsg = error instanceof Error ? error.message : error.response.data.message;
|
253
|
+
throw new WalletSignTransactionError(errMsg);
|
254
|
+
}
|
255
|
+
} catch (error: any) {
|
256
|
+
this.emit('error', error);
|
257
|
+
throw error;
|
258
|
+
}
|
259
|
+
}
|
260
|
+
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { AptosClient } from 'aptos';
|
1
|
+
import { AptosClient, FaucetClient } from 'aptos';
|
2
2
|
|
3
3
|
export const WEBWALLET_URL = 'https://hippo-wallet-test.web.app';
|
4
4
|
// export const WEBWALLET_URL = 'http://localhost:3030';
|
@@ -9,4 +9,7 @@ export const LOCAL_FAUCET_URL = 'http://127.0.0.1:8000';
|
|
9
9
|
export const DEVNET_FAUCET_URL = 'https://faucet.devnet.aptoslabs.com';
|
10
10
|
|
11
11
|
export const NODE_URL = DEVNET_NODE_URL;
|
12
|
+
export const FAUCET_URL = DEVNET_FAUCET_URL;
|
13
|
+
|
12
14
|
export const aptosClient = new AptosClient(NODE_URL);
|
15
|
+
export const faucetClient = new FaucetClient(NODE_URL, FAUCET_URL);
|